@unbrained/pm-web 2026.8.10 → 2026.8.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/dist/app.d.ts +16 -0
- package/dist/app.js +16 -0
- package/dist/app.js.map +1 -1
- package/dist/auth.d.ts +5 -0
- package/dist/auth.js.map +1 -1
- package/dist/board.d.ts +53 -0
- package/dist/board.js +48 -0
- package/dist/board.js.map +1 -1
- package/dist/crypto.d.ts +23 -0
- package/dist/crypto.js +32 -0
- package/dist/crypto.js.map +1 -1
- package/dist/db.d.ts +19 -0
- package/dist/db.js +19 -0
- package/dist/db.js.map +1 -1
- package/dist/ical.d.ts +72 -0
- package/dist/ical.js +73 -0
- package/dist/ical.js.map +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.js +52 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware/auth.d.ts +8 -0
- package/dist/middleware/auth.js.map +1 -1
- package/dist/oidc.d.ts +87 -0
- package/dist/oidc.js +113 -0
- package/dist/oidc.js.map +1 -1
- package/dist/routes/admin.js +15 -0
- package/dist/routes/admin.js.map +1 -1
- package/dist/routes/extensions.js +10 -0
- package/dist/routes/extensions.js.map +1 -1
- package/dist/routes/github.js +13 -0
- package/dist/routes/github.js.map +1 -1
- package/dist/routes/oidc.d.ts +10 -0
- package/dist/routes/oidc.js +51 -0
- package/dist/routes/oidc.js.map +1 -1
- package/dist/routes/pm.js +132 -1
- package/dist/routes/pm.js.map +1 -1
- package/dist/routes/sharing.js +8 -0
- package/dist/routes/sharing.js.map +1 -1
- package/dist/services/mutation-event-watcher.js +13 -0
- package/dist/services/mutation-event-watcher.js.map +1 -1
- package/dist/services/package-catalog.d.ts +24 -0
- package/dist/services/package-catalog.js +22 -2
- package/dist/services/package-catalog.js.map +1 -1
- package/dist/services/pm-runner.d.ts +82 -0
- package/dist/services/pm-runner.js +121 -0
- package/dist/services/pm-runner.js.map +1 -1
- package/dist/services/project-watcher.d.ts +22 -0
- package/dist/services/project-watcher.js +51 -0
- package/dist/services/project-watcher.js.map +1 -1
- package/dist/services/realtime-bus.d.ts +46 -0
- package/dist/services/realtime-bus.js +59 -0
- package/dist/services/realtime-bus.js.map +1 -1
- package/dist/services/sse.d.ts +134 -0
- package/dist/services/sse.js +145 -0
- package/dist/services/sse.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +5 -3
- package/public/src/app.js +44 -1
- package/public/src/app.js.map +1 -1
- package/public/src/app.ts +44 -1
- package/public/src/components/modals.js +11 -0
- package/public/src/components/modals.js.map +1 -1
- package/public/src/components/modals.ts +11 -0
- package/public/src/components/toast.js +2 -0
- package/public/src/components/toast.js.map +1 -1
- package/public/src/components/toast.ts +2 -0
- package/public/src/constants.js +21 -4
- package/public/src/constants.js.map +1 -1
- package/public/src/constants.ts +21 -4
- package/public/src/filters.js +10 -7
- package/public/src/filters.js.map +1 -1
- package/public/src/filters.ts +10 -7
- package/public/src/i18n/de.json +3 -1
- package/public/src/i18n/en.json +3 -1
- package/public/src/i18n/es.json +3 -1
- package/public/src/i18n/zh.json +3 -1
- package/public/src/i18n.js +11 -1
- package/public/src/i18n.js.map +1 -1
- package/public/src/i18n.ts +13 -1
- package/public/src/state.js +3 -0
- package/public/src/state.js.map +1 -1
- package/public/src/state.ts +3 -0
- package/public/src/sw.ts +71 -7
- package/public/src/theme.js +13 -1
- package/public/src/theme.js.map +1 -1
- package/public/src/theme.ts +15 -1
- package/public/src/types.ts +2 -0
- package/public/src/utils.js +26 -1
- package/public/src/utils.js.map +1 -1
- package/public/src/utils.ts +26 -1
- package/public/src/views/activity.js +1 -0
- package/public/src/views/activity.js.map +1 -1
- package/public/src/views/activity.ts +1 -0
- package/public/src/views/admin.js +134 -0
- package/public/src/views/admin.js.map +1 -1
- package/public/src/views/admin.ts +134 -0
- package/public/src/views/auth.js +31 -0
- package/public/src/views/auth.js.map +1 -1
- package/public/src/views/auth.ts +31 -0
- package/public/src/views/calendar.js +3 -0
- package/public/src/views/calendar.js.map +1 -1
- package/public/src/views/calendar.ts +3 -0
- package/public/src/views/comments-audit.js +1 -0
- package/public/src/views/comments-audit.js.map +1 -1
- package/public/src/views/comments-audit.ts +1 -0
- package/public/src/views/config.js +67 -0
- package/public/src/views/config.js.map +1 -1
- package/public/src/views/config.ts +67 -0
- package/public/src/views/context.js +2 -0
- package/public/src/views/context.js.map +1 -1
- package/public/src/views/context.ts +2 -0
- package/public/src/views/create.js +3 -0
- package/public/src/views/create.js.map +1 -1
- package/public/src/views/create.ts +3 -0
- package/public/src/views/dedupe.js +1 -0
- package/public/src/views/dedupe.js.map +1 -1
- package/public/src/views/dedupe.ts +1 -0
- package/public/src/views/export.js +6 -0
- package/public/src/views/export.js.map +1 -1
- package/public/src/views/export.ts +6 -0
- package/public/src/views/github.js +58 -0
- package/public/src/views/github.js.map +1 -1
- package/public/src/views/github.ts +58 -0
- package/public/src/views/graph-canvas.js +18 -0
- package/public/src/views/graph-canvas.js.map +1 -1
- package/public/src/views/graph-canvas.ts +20 -0
- package/public/src/views/graph.js +41 -0
- package/public/src/views/graph.js.map +1 -1
- package/public/src/views/graph.ts +42 -1
- package/public/src/views/groups.js +45 -0
- package/public/src/views/groups.js.map +1 -1
- package/public/src/views/groups.ts +45 -0
- package/public/src/views/guide.js +3 -0
- package/public/src/views/guide.js.map +1 -1
- package/public/src/views/guide.ts +3 -0
- package/public/src/views/health.js +3 -0
- package/public/src/views/health.js.map +1 -1
- package/public/src/views/health.ts +3 -0
- package/public/src/views/items.js +196 -6
- package/public/src/views/items.js.map +1 -1
- package/public/src/views/items.ts +196 -6
- package/public/src/views/normalize.js +2 -0
- package/public/src/views/normalize.js.map +1 -1
- package/public/src/views/normalize.ts +2 -0
- package/public/src/views/packages.js +67 -5
- package/public/src/views/packages.js.map +1 -1
- package/public/src/views/packages.ts +74 -5
- package/public/src/views/plan-execution.js +6 -0
- package/public/src/views/plan-execution.js.map +1 -1
- package/public/src/views/plan-execution.ts +8 -0
- package/public/src/views/plan.js +145 -0
- package/public/src/views/plan.js.map +1 -1
- package/public/src/views/plan.ts +146 -1
- package/public/src/views/projects.js +60 -0
- package/public/src/views/projects.js.map +1 -1
- package/public/src/views/projects.ts +60 -0
- package/public/src/views/router.js +43 -0
- package/public/src/views/router.js.map +1 -1
- package/public/src/views/router.ts +43 -0
- package/public/src/views/search.js +5 -0
- package/public/src/views/search.js.map +1 -1
- package/public/src/views/search.ts +5 -0
- package/public/src/views/settings.js +36 -0
- package/public/src/views/settings.js.map +1 -1
- package/public/src/views/settings.ts +36 -0
- package/public/src/views/shared.js +1 -0
- package/public/src/views/shared.js.map +1 -1
- package/public/src/views/shared.ts +1 -0
- package/public/src/views/sharing.js +32 -0
- package/public/src/views/sharing.js.map +1 -1
- package/public/src/views/sharing.ts +32 -0
- package/public/src/views/stats.js +1 -0
- package/public/src/views/stats.js.map +1 -1
- package/public/src/views/stats.ts +1 -0
- package/public/src/views/templates.js +4 -0
- package/public/src/views/templates.js.map +1 -1
- package/public/src/views/templates.ts +4 -0
- package/public/src/views/validate.js +1 -0
- package/public/src/views/validate.js.map +1 -1
- package/public/src/views/validate.ts +1 -0
- package/public/sw.js +60 -5
package/public/src/views/auth.js
CHANGED
|
@@ -5,6 +5,11 @@ import { state } from '../state.js';
|
|
|
5
5
|
import { api } from '../api.js';
|
|
6
6
|
import { bootApp } from '../app.js';
|
|
7
7
|
import { t, translateError } from '../i18n.js';
|
|
8
|
+
/**
|
|
9
|
+
* Fetches the OIDC provider configuration and shows or hides the single
|
|
10
|
+
* sign-on login button and divider based on whether it is enabled. Both
|
|
11
|
+
* elements are hidden when the config request fails.
|
|
12
|
+
*/
|
|
8
13
|
async function configureOidcLogin() {
|
|
9
14
|
const button = document.getElementById('oidc-login');
|
|
10
15
|
const divider = document.getElementById('oidc-divider');
|
|
@@ -23,9 +28,20 @@ async function configureOidcLogin() {
|
|
|
23
28
|
divider.hidden = true;
|
|
24
29
|
}
|
|
25
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Redirects the browser to the server endpoint that begins the single
|
|
33
|
+
* sign-on authentication flow.
|
|
34
|
+
*/
|
|
26
35
|
export function startOidcLogin() {
|
|
27
36
|
window.location.assign('/api/auth/oidc/start');
|
|
28
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Switches the authentication panel between login and register modes,
|
|
40
|
+
* updating tab highlighting, the visible name field, and the translated
|
|
41
|
+
* title, subtitle, and button labels.
|
|
42
|
+
*
|
|
43
|
+
* @param tab - 'login' or 'register'.
|
|
44
|
+
*/
|
|
29
45
|
export function switchAuthTab(tab) {
|
|
30
46
|
state.authTab = tab;
|
|
31
47
|
document.getElementById('tab-login')?.classList.toggle('active', tab === 'login');
|
|
@@ -46,6 +62,13 @@ export function switchAuthTab(tab) {
|
|
|
46
62
|
if (authError)
|
|
47
63
|
authError.style.display = 'none';
|
|
48
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Handles the form submission: posts the entered credentials to either the
|
|
67
|
+
* login or register endpoint depending on the active tab, stores the returned
|
|
68
|
+
* user, and boots the application. Shows a translated error message on failure.
|
|
69
|
+
*
|
|
70
|
+
* @param e - form submit event.
|
|
71
|
+
*/
|
|
49
72
|
export async function submitAuth(e) {
|
|
50
73
|
e.preventDefault();
|
|
51
74
|
const btn = document.getElementById('auth-submit');
|
|
@@ -82,6 +105,10 @@ export async function submitAuth(e) {
|
|
|
82
105
|
span.textContent = state.authTab === 'login' ? t('auth.button.login') : t('auth.button.register');
|
|
83
106
|
}
|
|
84
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* Signs the current user out by calling the logout endpoint, clears local
|
|
110
|
+
* state, and returns to the login screen.
|
|
111
|
+
*/
|
|
85
112
|
export async function logout() {
|
|
86
113
|
try {
|
|
87
114
|
await api('POST', '/auth/logout', {});
|
|
@@ -92,6 +119,10 @@ export async function logout() {
|
|
|
92
119
|
state.currentProject = null;
|
|
93
120
|
showAuth();
|
|
94
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Displays the authentication screen, hides the main application view, and
|
|
124
|
+
* refreshes the single sign-on button state.
|
|
125
|
+
*/
|
|
95
126
|
export function showAuth() {
|
|
96
127
|
const authScreen = document.getElementById('auth-screen');
|
|
97
128
|
const mainApp = document.getElementById('main-app');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["auth.ts"],"names":[],"mappings":"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"}
|
package/public/src/views/auth.ts
CHANGED
|
@@ -7,6 +7,11 @@ import { bootApp } from '../app.js';
|
|
|
7
7
|
import { t, translateError } from '../i18n.js';
|
|
8
8
|
import type { User } from '../types.js';
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* Fetches the OIDC provider configuration and shows or hides the single
|
|
12
|
+
* sign-on login button and divider based on whether it is enabled. Both
|
|
13
|
+
* elements are hidden when the config request fails.
|
|
14
|
+
*/
|
|
10
15
|
async function configureOidcLogin(): Promise<void> {
|
|
11
16
|
const button = document.getElementById('oidc-login') as HTMLButtonElement | null;
|
|
12
17
|
const divider = document.getElementById('oidc-divider') as HTMLElement | null;
|
|
@@ -22,10 +27,21 @@ async function configureOidcLogin(): Promise<void> {
|
|
|
22
27
|
}
|
|
23
28
|
}
|
|
24
29
|
|
|
30
|
+
/**
|
|
31
|
+
* Redirects the browser to the server endpoint that begins the single
|
|
32
|
+
* sign-on authentication flow.
|
|
33
|
+
*/
|
|
25
34
|
export function startOidcLogin(): void {
|
|
26
35
|
window.location.assign('/api/auth/oidc/start');
|
|
27
36
|
}
|
|
28
37
|
|
|
38
|
+
/**
|
|
39
|
+
* Switches the authentication panel between login and register modes,
|
|
40
|
+
* updating tab highlighting, the visible name field, and the translated
|
|
41
|
+
* title, subtitle, and button labels.
|
|
42
|
+
*
|
|
43
|
+
* @param tab - 'login' or 'register'.
|
|
44
|
+
*/
|
|
29
45
|
export function switchAuthTab(tab: 'login' | 'register'): void {
|
|
30
46
|
state.authTab = tab;
|
|
31
47
|
document.getElementById('tab-login')?.classList.toggle('active', tab==='login');
|
|
@@ -42,6 +58,13 @@ export function switchAuthTab(tab: 'login' | 'register'): void {
|
|
|
42
58
|
if (authError) authError.style.display = 'none';
|
|
43
59
|
}
|
|
44
60
|
|
|
61
|
+
/**
|
|
62
|
+
* Handles the form submission: posts the entered credentials to either the
|
|
63
|
+
* login or register endpoint depending on the active tab, stores the returned
|
|
64
|
+
* user, and boots the application. Shows a translated error message on failure.
|
|
65
|
+
*
|
|
66
|
+
* @param e - form submit event.
|
|
67
|
+
*/
|
|
45
68
|
export async function submitAuth(e: Event): Promise<void> {
|
|
46
69
|
e.preventDefault();
|
|
47
70
|
const btn = document.getElementById('auth-submit') as HTMLButtonElement | null;
|
|
@@ -78,6 +101,10 @@ export async function submitAuth(e: Event): Promise<void> {
|
|
|
78
101
|
}
|
|
79
102
|
}
|
|
80
103
|
|
|
104
|
+
/**
|
|
105
|
+
* Signs the current user out by calling the logout endpoint, clears local
|
|
106
|
+
* state, and returns to the login screen.
|
|
107
|
+
*/
|
|
81
108
|
export async function logout(): Promise<void> {
|
|
82
109
|
try { await api('POST','/auth/logout',{}); } catch(_) { /* ignore */ }
|
|
83
110
|
state.user = null;
|
|
@@ -86,6 +113,10 @@ export async function logout(): Promise<void> {
|
|
|
86
113
|
showAuth();
|
|
87
114
|
}
|
|
88
115
|
|
|
116
|
+
/**
|
|
117
|
+
* Displays the authentication screen, hides the main application view, and
|
|
118
|
+
* refreshes the single sign-on button state.
|
|
119
|
+
*/
|
|
89
120
|
export function showAuth(): void {
|
|
90
121
|
const authScreen = document.getElementById('auth-screen');
|
|
91
122
|
const mainApp = document.getElementById('main-app');
|
|
@@ -7,6 +7,7 @@ import { escHtml, typeIcon } from '../utils.js';
|
|
|
7
7
|
import { skeletonRows } from '../utils.js';
|
|
8
8
|
import { showModal, createModal } from '../components/modals.js';
|
|
9
9
|
import { renderItemRow } from './items.js';
|
|
10
|
+
/** Renders the calendar view for the current project: a month grid (offset by state.calOffset) of items with deadlines, prev/next/today navigation, an iCalendar export link, and an upcoming-events list. */
|
|
10
11
|
export async function renderCalendarView() {
|
|
11
12
|
const el = document.getElementById('content-calendar');
|
|
12
13
|
if (!el)
|
|
@@ -105,10 +106,12 @@ export async function renderCalendarView() {
|
|
|
105
106
|
contentEl.innerHTML = `<div class="empty-state"><div class="empty-state-text">Error: ${escHtml(err instanceof Error ? err.message : String(err))}</div></div>`;
|
|
106
107
|
}
|
|
107
108
|
}
|
|
109
|
+
/** Shifts the calendar's month offset by the given direction (-1 back, +1 forward) and re-renders the calendar view. */
|
|
108
110
|
export function calNav(dir) {
|
|
109
111
|
state.calOffset = (state.calOffset || 0) + dir;
|
|
110
112
|
renderCalendarView();
|
|
111
113
|
}
|
|
114
|
+
/** Opens a modal listing every project item whose deadline falls on the given ISO date string, fetched fresh from the list endpoint. */
|
|
112
115
|
export function showDayItems(dateStr) {
|
|
113
116
|
if (!state.currentProject)
|
|
114
117
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["calendar.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["calendar.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ import { renderItemRow } from './items.js';
|
|
|
10
10
|
import type { CalendarListItem, CalendarResponse, ListResponse } from '../api-types.js';
|
|
11
11
|
import type { Item } from '../types.js';
|
|
12
12
|
|
|
13
|
+
/** Renders the calendar view for the current project: a month grid (offset by state.calOffset) of items with deadlines, prev/next/today navigation, an iCalendar export link, and an upcoming-events list. */
|
|
13
14
|
export async function renderCalendarView(): Promise<void> {
|
|
14
15
|
const el = document.getElementById('content-calendar');
|
|
15
16
|
if (!el) return;
|
|
@@ -107,11 +108,13 @@ export async function renderCalendarView(): Promise<void> {
|
|
|
107
108
|
}
|
|
108
109
|
}
|
|
109
110
|
|
|
111
|
+
/** Shifts the calendar's month offset by the given direction (-1 back, +1 forward) and re-renders the calendar view. */
|
|
110
112
|
export function calNav(dir: number): void {
|
|
111
113
|
state.calOffset = (state.calOffset || 0) + dir;
|
|
112
114
|
renderCalendarView();
|
|
113
115
|
}
|
|
114
116
|
|
|
117
|
+
/** Opens a modal listing every project item whose deadline falls on the given ISO date string, fetched fresh from the list endpoint. */
|
|
115
118
|
export function showDayItems(dateStr: string): void {
|
|
116
119
|
if (!state.currentProject) return;
|
|
117
120
|
createModal('day-items-modal', `Items due ${dateStr}`, '<div class="loading-state"><div class="loading-spinner"></div></div>', '', true);
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { state } from '../state.js';
|
|
5
5
|
import { api } from '../api.js';
|
|
6
6
|
import { escHtml, statusBadge, typeIcon } from '../utils.js';
|
|
7
|
+
/** Renders the comments audit for the current project: coverage summary cards, a per-type comment breakdown table, and a list of items with their comment counts. */
|
|
7
8
|
export async function renderCommentsAuditView() {
|
|
8
9
|
const el = document.getElementById('content-comments-audit');
|
|
9
10
|
if (!el)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comments-audit.js","sourceRoot":"","sources":["comments-audit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"comments-audit.js","sourceRoot":"","sources":["comments-audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import { api } from '../api.js';
|
|
|
6
6
|
import { escHtml, statusBadge, typeIcon } from '../utils.js';
|
|
7
7
|
import type { CommentsAuditResponse, CommentsAuditItem, CommentsAuditSummary, CommentsAuditTypeRow } from '../api-types.js';
|
|
8
8
|
|
|
9
|
+
/** Renders the comments audit for the current project: coverage summary cards, a per-type comment breakdown table, and a list of items with their comment counts. */
|
|
9
10
|
export async function renderCommentsAuditView(): Promise<void> {
|
|
10
11
|
const el = document.getElementById('content-comments-audit');
|
|
11
12
|
if (!el) return;
|
|
@@ -5,6 +5,12 @@ import { state } from '../state.js';
|
|
|
5
5
|
import { api } from '../api.js';
|
|
6
6
|
import { escHtml } from '../utils.js';
|
|
7
7
|
import { toast } from '../components/toast.js';
|
|
8
|
+
/**
|
|
9
|
+
* Mounts the project config view into the #content-config element. Shows an
|
|
10
|
+
* empty state when no project is selected, otherwise a loading spinner while
|
|
11
|
+
* it fetches the project's pm config and renders the editor, surfacing fetch
|
|
12
|
+
* failures in an empty-state block.
|
|
13
|
+
*/
|
|
8
14
|
export async function renderConfigView() {
|
|
9
15
|
const el = document.getElementById('content-config');
|
|
10
16
|
if (!el)
|
|
@@ -42,12 +48,25 @@ export async function renderConfigView() {
|
|
|
42
48
|
</div>`;
|
|
43
49
|
}
|
|
44
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Renders the config editor into the given element, grouping the config keys
|
|
53
|
+
* by kind (list, simple, object) into their sections plus a custom schema
|
|
54
|
+
* type form, and caches the keys on the element for the mutation helpers.
|
|
55
|
+
* @param el - The container element to populate.
|
|
56
|
+
* @param data - The config response from the API.
|
|
57
|
+
*/
|
|
45
58
|
function renderConfigData(el, data) {
|
|
46
59
|
const { keys } = data;
|
|
47
60
|
// Group keys into categories
|
|
48
61
|
const simpleKeys = keys.filter(k => k.value_kind === 'string' || k.value_kind === 'enum');
|
|
49
62
|
const arrayKeys = keys.filter(k => k.value_kind === 'string_array');
|
|
50
63
|
const objectKeys = keys.filter(k => k.value_kind === 'object');
|
|
64
|
+
/**
|
|
65
|
+
* Renders a list-valued (string_array) config key as a card with one
|
|
66
|
+
* editable row per item, plus add and save controls.
|
|
67
|
+
* @param k - The array config key to render.
|
|
68
|
+
* @returns The card markup string.
|
|
69
|
+
*/
|
|
51
70
|
function renderArrayField(k) {
|
|
52
71
|
const arr = Array.isArray(k.value) ? k.value : [];
|
|
53
72
|
const items = arr.map((item, i) => `
|
|
@@ -72,6 +91,12 @@ function renderConfigData(el, data) {
|
|
|
72
91
|
</div>
|
|
73
92
|
</div>`;
|
|
74
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Renders a scalar (string or enum) config key as a labeled text input
|
|
96
|
+
* with an inline save button.
|
|
97
|
+
* @param k - The scalar config key to render.
|
|
98
|
+
* @returns The form-group markup string.
|
|
99
|
+
*/
|
|
75
100
|
function renderSimpleField(k) {
|
|
76
101
|
const val = k.value !== null && k.value !== undefined ? String(k.value) : '';
|
|
77
102
|
return `
|
|
@@ -86,6 +111,12 @@ function renderConfigData(el, data) {
|
|
|
86
111
|
<div style="font-size:11px;color:var(--text-muted);margin-top:3px">${escHtml(k.summary)}</div>
|
|
87
112
|
</div>`;
|
|
88
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* Renders an object-valued config key as a monospace textarea pre-filled
|
|
116
|
+
* with pretty-printed JSON and a save button.
|
|
117
|
+
* @param k - The object config key to render.
|
|
118
|
+
* @returns The form-group markup string.
|
|
119
|
+
*/
|
|
89
120
|
function renderObjectField(k) {
|
|
90
121
|
const val = k.value !== null && k.value !== undefined ? JSON.stringify(k.value, null, 2) : '{}';
|
|
91
122
|
return `
|
|
@@ -172,6 +203,13 @@ function renderConfigData(el, data) {
|
|
|
172
203
|
el.__configKeys = keys;
|
|
173
204
|
}
|
|
174
205
|
// ─── Array field helpers ───────────────────────────────────────
|
|
206
|
+
/**
|
|
207
|
+
* Adds a new editable row to a list config field from the "Add item" input.
|
|
208
|
+
* Reads and trims the input value, appends a row to the field's container,
|
|
209
|
+
* and clears the input. Does nothing when the input is empty or the container
|
|
210
|
+
* is missing.
|
|
211
|
+
* @param key - The config key of the list field being edited.
|
|
212
|
+
*/
|
|
175
213
|
export function configAddArrayItem(key) {
|
|
176
214
|
const inputEl = document.getElementById(`config-arr-${key}-new`);
|
|
177
215
|
const val = inputEl?.value?.trim();
|
|
@@ -199,6 +237,12 @@ export function configAddArrayItem(key) {
|
|
|
199
237
|
if (inputEl)
|
|
200
238
|
inputEl.value = '';
|
|
201
239
|
}
|
|
240
|
+
/**
|
|
241
|
+
* Removes the row at the given index from a list config field's container and
|
|
242
|
+
* restores the "No items yet" placeholder when the list becomes empty.
|
|
243
|
+
* @param key - The config key of the list field being edited.
|
|
244
|
+
* @param idx - The zero-based index of the row to remove.
|
|
245
|
+
*/
|
|
202
246
|
export function configRemoveArrayItem(key, idx) {
|
|
203
247
|
const container = document.getElementById(`config-arr-${key}-container`);
|
|
204
248
|
if (!container)
|
|
@@ -212,6 +256,12 @@ export function configRemoveArrayItem(key, idx) {
|
|
|
212
256
|
container.innerHTML = '<div style="color:var(--text-muted);font-size:13px;margin-bottom:8px">No items yet</div>';
|
|
213
257
|
}
|
|
214
258
|
}
|
|
259
|
+
/**
|
|
260
|
+
* Saves a list config field by collecting the trimmed, non-empty values from
|
|
261
|
+
* its rows and PATCHing them to the project config API, showing a success or
|
|
262
|
+
* error toast.
|
|
263
|
+
* @param key - The config key of the list field being saved.
|
|
264
|
+
*/
|
|
215
265
|
export async function configSaveArray(key) {
|
|
216
266
|
const pid = state.currentProject?.id;
|
|
217
267
|
if (!pid)
|
|
@@ -229,6 +279,11 @@ export async function configSaveArray(key) {
|
|
|
229
279
|
toast(`Error: ${err instanceof Error ? err.message : String(err)}`, 'error');
|
|
230
280
|
}
|
|
231
281
|
}
|
|
282
|
+
/**
|
|
283
|
+
* Saves a scalar config field by PATCHing its trimmed input value to the
|
|
284
|
+
* project config API, showing a success or error toast.
|
|
285
|
+
* @param key - The config key of the scalar field being saved.
|
|
286
|
+
*/
|
|
232
287
|
export async function configSaveSimple(key) {
|
|
233
288
|
const pid = state.currentProject?.id;
|
|
234
289
|
if (!pid)
|
|
@@ -243,6 +298,12 @@ export async function configSaveSimple(key) {
|
|
|
243
298
|
toast(`Error: ${err instanceof Error ? err.message : String(err)}`, 'error');
|
|
244
299
|
}
|
|
245
300
|
}
|
|
301
|
+
/**
|
|
302
|
+
* Submits the custom schema type form. Validates that a name was entered,
|
|
303
|
+
* collects the optional description, default status, folder, and aliases,
|
|
304
|
+
* POSTs them to the schema add-type endpoint, clears the form on success, and
|
|
305
|
+
* reports the result via toast and the inline error element.
|
|
306
|
+
*/
|
|
246
307
|
export async function addSchemaType() {
|
|
247
308
|
const pid = state.currentProject?.id;
|
|
248
309
|
if (!pid)
|
|
@@ -297,6 +358,12 @@ export async function addSchemaType() {
|
|
|
297
358
|
toast(`Error: ${msg}`, 'error');
|
|
298
359
|
}
|
|
299
360
|
}
|
|
361
|
+
/**
|
|
362
|
+
* Saves an object config field by parsing its textarea as JSON (reporting an
|
|
363
|
+
* error toast on invalid JSON) and PATCHing the parsed value to the project
|
|
364
|
+
* config API, showing a success or error toast.
|
|
365
|
+
* @param key - The config key of the object field being saved.
|
|
366
|
+
*/
|
|
300
367
|
export async function configSaveObject(key) {
|
|
301
368
|
const pid = state.currentProject?.id;
|
|
302
369
|
if (!pid)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["config.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,12 @@ interface ConfigResponse {
|
|
|
23
23
|
changed?: boolean;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
/**
|
|
27
|
+
* Mounts the project config view into the #content-config element. Shows an
|
|
28
|
+
* empty state when no project is selected, otherwise a loading spinner while
|
|
29
|
+
* it fetches the project's pm config and renders the editor, surfacing fetch
|
|
30
|
+
* failures in an empty-state block.
|
|
31
|
+
*/
|
|
26
32
|
export async function renderConfigView(): Promise<void> {
|
|
27
33
|
const el = document.getElementById('content-config');
|
|
28
34
|
if (!el) return;
|
|
@@ -61,6 +67,13 @@ export async function renderConfigView(): Promise<void> {
|
|
|
61
67
|
}
|
|
62
68
|
}
|
|
63
69
|
|
|
70
|
+
/**
|
|
71
|
+
* Renders the config editor into the given element, grouping the config keys
|
|
72
|
+
* by kind (list, simple, object) into their sections plus a custom schema
|
|
73
|
+
* type form, and caches the keys on the element for the mutation helpers.
|
|
74
|
+
* @param el - The container element to populate.
|
|
75
|
+
* @param data - The config response from the API.
|
|
76
|
+
*/
|
|
64
77
|
function renderConfigData(el: HTMLElement, data: ConfigResponse): void {
|
|
65
78
|
const { keys } = data;
|
|
66
79
|
|
|
@@ -69,6 +82,12 @@ function renderConfigData(el: HTMLElement, data: ConfigResponse): void {
|
|
|
69
82
|
const arrayKeys = keys.filter(k => k.value_kind === 'string_array');
|
|
70
83
|
const objectKeys = keys.filter(k => k.value_kind === 'object');
|
|
71
84
|
|
|
85
|
+
/**
|
|
86
|
+
* Renders a list-valued (string_array) config key as a card with one
|
|
87
|
+
* editable row per item, plus add and save controls.
|
|
88
|
+
* @param k - The array config key to render.
|
|
89
|
+
* @returns The card markup string.
|
|
90
|
+
*/
|
|
72
91
|
function renderArrayField(k: ConfigKey): string {
|
|
73
92
|
const arr = Array.isArray(k.value) ? k.value as string[] : [];
|
|
74
93
|
const items = arr.map((item, i) => `
|
|
@@ -94,6 +113,12 @@ function renderConfigData(el: HTMLElement, data: ConfigResponse): void {
|
|
|
94
113
|
</div>`;
|
|
95
114
|
}
|
|
96
115
|
|
|
116
|
+
/**
|
|
117
|
+
* Renders a scalar (string or enum) config key as a labeled text input
|
|
118
|
+
* with an inline save button.
|
|
119
|
+
* @param k - The scalar config key to render.
|
|
120
|
+
* @returns The form-group markup string.
|
|
121
|
+
*/
|
|
97
122
|
function renderSimpleField(k: ConfigKey): string {
|
|
98
123
|
const val = k.value !== null && k.value !== undefined ? String(k.value) : '';
|
|
99
124
|
return `
|
|
@@ -109,6 +134,12 @@ function renderConfigData(el: HTMLElement, data: ConfigResponse): void {
|
|
|
109
134
|
</div>`;
|
|
110
135
|
}
|
|
111
136
|
|
|
137
|
+
/**
|
|
138
|
+
* Renders an object-valued config key as a monospace textarea pre-filled
|
|
139
|
+
* with pretty-printed JSON and a save button.
|
|
140
|
+
* @param k - The object config key to render.
|
|
141
|
+
* @returns The form-group markup string.
|
|
142
|
+
*/
|
|
112
143
|
function renderObjectField(k: ConfigKey): string {
|
|
113
144
|
const val = k.value !== null && k.value !== undefined ? JSON.stringify(k.value, null, 2) : '{}';
|
|
114
145
|
return `
|
|
@@ -199,6 +230,13 @@ function renderConfigData(el: HTMLElement, data: ConfigResponse): void {
|
|
|
199
230
|
|
|
200
231
|
// ─── Array field helpers ───────────────────────────────────────
|
|
201
232
|
|
|
233
|
+
/**
|
|
234
|
+
* Adds a new editable row to a list config field from the "Add item" input.
|
|
235
|
+
* Reads and trims the input value, appends a row to the field's container,
|
|
236
|
+
* and clears the input. Does nothing when the input is empty or the container
|
|
237
|
+
* is missing.
|
|
238
|
+
* @param key - The config key of the list field being edited.
|
|
239
|
+
*/
|
|
202
240
|
export function configAddArrayItem(key: string): void {
|
|
203
241
|
const inputEl = document.getElementById(`config-arr-${key}-new`) as HTMLInputElement | null;
|
|
204
242
|
const val = inputEl?.value?.trim();
|
|
@@ -227,6 +265,12 @@ export function configAddArrayItem(key: string): void {
|
|
|
227
265
|
if (inputEl) inputEl.value = '';
|
|
228
266
|
}
|
|
229
267
|
|
|
268
|
+
/**
|
|
269
|
+
* Removes the row at the given index from a list config field's container and
|
|
270
|
+
* restores the "No items yet" placeholder when the list becomes empty.
|
|
271
|
+
* @param key - The config key of the list field being edited.
|
|
272
|
+
* @param idx - The zero-based index of the row to remove.
|
|
273
|
+
*/
|
|
230
274
|
export function configRemoveArrayItem(key: string, idx: number): void {
|
|
231
275
|
const container = document.getElementById(`config-arr-${key}-container`);
|
|
232
276
|
if (!container) return;
|
|
@@ -242,6 +286,12 @@ export function configRemoveArrayItem(key: string, idx: number): void {
|
|
|
242
286
|
}
|
|
243
287
|
}
|
|
244
288
|
|
|
289
|
+
/**
|
|
290
|
+
* Saves a list config field by collecting the trimmed, non-empty values from
|
|
291
|
+
* its rows and PATCHing them to the project config API, showing a success or
|
|
292
|
+
* error toast.
|
|
293
|
+
* @param key - The config key of the list field being saved.
|
|
294
|
+
*/
|
|
245
295
|
export async function configSaveArray(key: string): Promise<void> {
|
|
246
296
|
const pid = state.currentProject?.id;
|
|
247
297
|
if (!pid) return;
|
|
@@ -260,6 +310,11 @@ export async function configSaveArray(key: string): Promise<void> {
|
|
|
260
310
|
}
|
|
261
311
|
}
|
|
262
312
|
|
|
313
|
+
/**
|
|
314
|
+
* Saves a scalar config field by PATCHing its trimmed input value to the
|
|
315
|
+
* project config API, showing a success or error toast.
|
|
316
|
+
* @param key - The config key of the scalar field being saved.
|
|
317
|
+
*/
|
|
263
318
|
export async function configSaveSimple(key: string): Promise<void> {
|
|
264
319
|
const pid = state.currentProject?.id;
|
|
265
320
|
if (!pid) return;
|
|
@@ -275,6 +330,12 @@ export async function configSaveSimple(key: string): Promise<void> {
|
|
|
275
330
|
}
|
|
276
331
|
}
|
|
277
332
|
|
|
333
|
+
/**
|
|
334
|
+
* Submits the custom schema type form. Validates that a name was entered,
|
|
335
|
+
* collects the optional description, default status, folder, and aliases,
|
|
336
|
+
* POSTs them to the schema add-type endpoint, clears the form on success, and
|
|
337
|
+
* reports the result via toast and the inline error element.
|
|
338
|
+
*/
|
|
278
339
|
export async function addSchemaType(): Promise<void> {
|
|
279
340
|
const pid = state.currentProject?.id;
|
|
280
341
|
if (!pid) return;
|
|
@@ -320,6 +381,12 @@ export async function addSchemaType(): Promise<void> {
|
|
|
320
381
|
}
|
|
321
382
|
}
|
|
322
383
|
|
|
384
|
+
/**
|
|
385
|
+
* Saves an object config field by parsing its textarea as JSON (reporting an
|
|
386
|
+
* error toast on invalid JSON) and PATCHing the parsed value to the project
|
|
387
|
+
* config API, showing a success or error toast.
|
|
388
|
+
* @param key - The config key of the object field being saved.
|
|
389
|
+
*/
|
|
323
390
|
export async function configSaveObject(key: string): Promise<void> {
|
|
324
391
|
const pid = state.currentProject?.id;
|
|
325
392
|
if (!pid) return;
|
|
@@ -5,6 +5,7 @@ import { state } from '../state.js';
|
|
|
5
5
|
import { api } from '../api.js';
|
|
6
6
|
import { escHtml, relTime, typeIcon, statusBadge } from '../utils.js';
|
|
7
7
|
import { TYPE_ICONS } from '../constants.js';
|
|
8
|
+
/** Renders the project context snapshot for the current project, delegating the body markup to renderContextData after loading the context from its endpoint. */
|
|
8
9
|
export async function renderContextView() {
|
|
9
10
|
const el = document.getElementById('content-context');
|
|
10
11
|
if (!el)
|
|
@@ -32,6 +33,7 @@ export async function renderContextView() {
|
|
|
32
33
|
contentEl.innerHTML = `<div class="empty-state"><div class="empty-state-text">Error: ${escHtml(err instanceof Error ? err.message : String(err))}</div></div>`;
|
|
33
34
|
}
|
|
34
35
|
}
|
|
36
|
+
/** Builds the context view body HTML for a loaded context object, emitting summary, active-item, blocked-item, and recent-activity sections (capped at ten activities), and falling back to pretty-printed JSON when none apply. */
|
|
35
37
|
function renderContextData(ctx) {
|
|
36
38
|
if (!ctx || typeof ctx !== 'object') {
|
|
37
39
|
return `<div class="card"><div class="card-body"><div class="context-block">${escHtml(JSON.stringify(ctx, null, 2))}</div></div></div>`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["context.ts"],"names":[],"mappings":"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"}
|