@unbrained/pm-web 2026.8.7 → 2026.8.14
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 +16 -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/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/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.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 +41 -0
- package/public/src/views/packages.js.map +1 -1
- package/public/src/views/packages.ts +41 -0
- 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
|
@@ -9,12 +9,20 @@ import { toast } from '../components/toast.js';
|
|
|
9
9
|
import type { CreateProjectResponse, ListResponse, ProjectsResponse, SchemaResponse } from '../api-types.js';
|
|
10
10
|
import { showView } from '../views/router.js';
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Fetches the user's workspaces from the API, stores them on shared state,
|
|
14
|
+
* and rebuilds the selector dropdown.
|
|
15
|
+
*/
|
|
12
16
|
export async function loadProjects(): Promise<void> {
|
|
13
17
|
const data = await api<ProjectsResponse>('GET','/projects');
|
|
14
18
|
state.projects = data.projects || [];
|
|
15
19
|
renderProjectSelector();
|
|
16
20
|
}
|
|
17
21
|
|
|
22
|
+
/**
|
|
23
|
+
* Rebuilds the selector dropdown options from shared state, preserving the
|
|
24
|
+
* previously selected value.
|
|
25
|
+
*/
|
|
18
26
|
export function renderProjectSelector(): void {
|
|
19
27
|
const sel = document.getElementById('project-selector') as HTMLSelectElement | null;
|
|
20
28
|
if (!sel) return;
|
|
@@ -23,6 +31,13 @@ export function renderProjectSelector(): void {
|
|
|
23
31
|
state.projects.map(p=>`<option value="${p.id}"${p.id===cur?' selected':''}>${escHtml(p.name)}</option>`).join('');
|
|
24
32
|
}
|
|
25
33
|
|
|
34
|
+
/**
|
|
35
|
+
* Loads a project's pm schema from the API and stores it on shared state when
|
|
36
|
+
* it contains at least one type; failures are ignored so views keep using
|
|
37
|
+
* fallback types.
|
|
38
|
+
*
|
|
39
|
+
* @param projectId - identifier of the project whose schema to load.
|
|
40
|
+
*/
|
|
26
41
|
async function fetchProjectSchema(projectId: string): Promise<void> {
|
|
27
42
|
try {
|
|
28
43
|
const schema = await api<SchemaResponse>('GET', `/projects/${projectId}/pm/schema`);
|
|
@@ -32,6 +47,13 @@ async function fetchProjectSchema(projectId: string): Promise<void> {
|
|
|
32
47
|
} catch (_) { /* fallback to constants */ }
|
|
33
48
|
}
|
|
34
49
|
|
|
50
|
+
/**
|
|
51
|
+
* Handles a selection: clears state and returns to the projects view when
|
|
52
|
+
* deselected, otherwise activates the chosen project, wires the SSE stream,
|
|
53
|
+
* fetches its schema, opens the items view, and refreshes the items badge.
|
|
54
|
+
*
|
|
55
|
+
* @param id - identifier of the selected project, or empty string for none.
|
|
56
|
+
*/
|
|
35
57
|
export async function onProjectSelect(id: string): Promise<void> {
|
|
36
58
|
if (!id) {
|
|
37
59
|
state.currentProject = null;
|
|
@@ -56,6 +78,10 @@ export async function onProjectSelect(id: string): Promise<void> {
|
|
|
56
78
|
loadItemsBadge();
|
|
57
79
|
}
|
|
58
80
|
|
|
81
|
+
/**
|
|
82
|
+
* Fetches the open items count for the current project and updates the
|
|
83
|
+
* sidebar items badge, ignoring errors.
|
|
84
|
+
*/
|
|
59
85
|
export async function loadItemsBadge(): Promise<void> {
|
|
60
86
|
if (!state.currentProject) return;
|
|
61
87
|
try {
|
|
@@ -66,6 +92,11 @@ export async function loadItemsBadge(): Promise<void> {
|
|
|
66
92
|
} catch(_) { /* ignore */ }
|
|
67
93
|
}
|
|
68
94
|
|
|
95
|
+
/**
|
|
96
|
+
* Renders the projects landing page: a welcome prompt when no workspaces
|
|
97
|
+
* exist, otherwise a grid of cards each showing name, slug, description,
|
|
98
|
+
* prefix, and creation date.
|
|
99
|
+
*/
|
|
69
100
|
export function renderProjectsView(): void {
|
|
70
101
|
const el = document.getElementById('content-projects');
|
|
71
102
|
if (!el) return;
|
|
@@ -103,12 +134,25 @@ export function renderProjectsView(): void {
|
|
|
103
134
|
</div>`;
|
|
104
135
|
}
|
|
105
136
|
|
|
137
|
+
/**
|
|
138
|
+
* Sets the selector to the given id and triggers the standard selection
|
|
139
|
+
* handler.
|
|
140
|
+
*
|
|
141
|
+
* @param id - identifier of the project to select.
|
|
142
|
+
*/
|
|
106
143
|
export function selectProject(id: string): void {
|
|
107
144
|
const sel = document.getElementById('project-selector') as HTMLSelectElement | null;
|
|
108
145
|
if (sel) sel.value = id;
|
|
109
146
|
onProjectSelect(id);
|
|
110
147
|
}
|
|
111
148
|
|
|
149
|
+
/**
|
|
150
|
+
* Confirms and permanently deletes a project, clears it from state if
|
|
151
|
+
* active, reloads the list, and re-renders the projects view when visible.
|
|
152
|
+
*
|
|
153
|
+
* @param id - identifier of the project to delete.
|
|
154
|
+
* @param name - display name shown in the confirmation prompt.
|
|
155
|
+
*/
|
|
112
156
|
export function deleteProject(id: string, name: string): void {
|
|
113
157
|
confirmDialog('Delete Project?', `Delete project "${name}"? This cannot be undone.`, async () => {
|
|
114
158
|
try {
|
|
@@ -127,6 +171,11 @@ export function deleteProject(id: string, name: string): void {
|
|
|
127
171
|
}, true);
|
|
128
172
|
}
|
|
129
173
|
|
|
174
|
+
/**
|
|
175
|
+
* Constructs the create-project modal form with name, ID prefix, and
|
|
176
|
+
* description fields, and wires the name input to auto-suggest a lowercase
|
|
177
|
+
* prefix until the user edits it.
|
|
178
|
+
*/
|
|
130
179
|
export function buildCreateProjectModal(): void {
|
|
131
180
|
createModal('create-project-modal','New Project',`
|
|
132
181
|
<form id="create-project-form" onsubmit="window.__app.submitCreateProject(event)">
|
|
@@ -160,11 +209,22 @@ export function buildCreateProjectModal(): void {
|
|
|
160
209
|
}
|
|
161
210
|
}
|
|
162
211
|
|
|
212
|
+
/**
|
|
213
|
+
* Form-submit entry point that prevents default and delegates to the shared
|
|
214
|
+
* create handler.
|
|
215
|
+
*
|
|
216
|
+
* @param e - optional submit event.
|
|
217
|
+
*/
|
|
163
218
|
export async function submitCreateProject(e?: Event): Promise<void> {
|
|
164
219
|
e?.preventDefault();
|
|
165
220
|
await submitCreateProject2();
|
|
166
221
|
}
|
|
167
222
|
|
|
223
|
+
/**
|
|
224
|
+
* Reads and validates the create-project form, posts a new project, prepends
|
|
225
|
+
* it to state, rebuilds the selector, closes the modal, and re-renders the
|
|
226
|
+
* projects view; shows inline errors on failure.
|
|
227
|
+
*/
|
|
168
228
|
async function submitCreateProject2(): Promise<void> {
|
|
169
229
|
const nameEl = document.getElementById('cp-name') as HTMLInputElement | null;
|
|
170
230
|
const prefixEl = document.getElementById('cp-prefix') as HTMLInputElement | null;
|
|
@@ -67,12 +67,33 @@ for (const [view, path] of Object.entries(VIEW_TO_PATH)) {
|
|
|
67
67
|
let navigatingInternally = false;
|
|
68
68
|
// Callback invoked when the view changes — used to notify presence service
|
|
69
69
|
let onViewChange = null;
|
|
70
|
+
/**
|
|
71
|
+
* Stores the callback invoked after each view switch, used to notify an
|
|
72
|
+
* external service (for example presence) of the active view.
|
|
73
|
+
*
|
|
74
|
+
* @param cb - function called with the new view name.
|
|
75
|
+
*/
|
|
70
76
|
export function setOnViewChange(cb) {
|
|
71
77
|
onViewChange = cb;
|
|
72
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Returns the URL path registered for a view name, defaulting to the root
|
|
81
|
+
* path when the view is unmapped.
|
|
82
|
+
*
|
|
83
|
+
* @param view - view name to look up.
|
|
84
|
+
* @returns the matching path, or '/' when none is registered.
|
|
85
|
+
*/
|
|
73
86
|
export function getPathForView(view) {
|
|
74
87
|
return VIEW_TO_PATH[view] || '/';
|
|
75
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Returns the view name for a URL path, matching the full normalized path
|
|
91
|
+
* first, then the first path segment for deeper routes (such as an item
|
|
92
|
+
* detail), and finally falling back to projects.
|
|
93
|
+
*
|
|
94
|
+
* @param path - URL pathname to resolve.
|
|
95
|
+
* @returns the resolved view name.
|
|
96
|
+
*/
|
|
76
97
|
export function getViewForPath(path) {
|
|
77
98
|
// Normalize: remove trailing slash except for root
|
|
78
99
|
const normalized = path.replace(/\/$/, '') || '/';
|
|
@@ -83,6 +104,15 @@ export function getViewForPath(path) {
|
|
|
83
104
|
const firstSegment = '/' + normalized.slice(1).split('/')[0];
|
|
84
105
|
return PATH_TO_VIEW[firstSegment] || 'projects';
|
|
85
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Activates a named view: updates the URL via history pushState (unless
|
|
109
|
+
* suppressed), toggles content containers and sidebar highlighting for the
|
|
110
|
+
* new view, calls the matching render function, refreshes the mobile nav,
|
|
111
|
+
* notifies the presence callback, and moves focus into the view.
|
|
112
|
+
*
|
|
113
|
+
* @param view - name of the view to display.
|
|
114
|
+
* @param pushState - whether to push a new history entry (false on popstate).
|
|
115
|
+
*/
|
|
86
116
|
export function showView(view, pushState = true) {
|
|
87
117
|
if (view === 'admin' && !state.user?.is_admin) {
|
|
88
118
|
history.replaceState({ view: 'projects' }, '', '/');
|
|
@@ -206,6 +236,12 @@ export function showView(view, pushState = true) {
|
|
|
206
236
|
activeArea.focus({ preventScroll: true });
|
|
207
237
|
}
|
|
208
238
|
}
|
|
239
|
+
/**
|
|
240
|
+
* Highlights the matching bottom-nav button for the active view and shows or
|
|
241
|
+
* hides the mobile navigation bar depending on whether a project is selected.
|
|
242
|
+
*
|
|
243
|
+
* @param view - currently active view name.
|
|
244
|
+
*/
|
|
209
245
|
function updateMobileNav(view) {
|
|
210
246
|
document.querySelectorAll('.mobile-bottom-nav-item').forEach(el => {
|
|
211
247
|
el.classList.toggle('active', el.dataset.mobview === view);
|
|
@@ -216,6 +252,13 @@ function updateMobileNav(view) {
|
|
|
216
252
|
}
|
|
217
253
|
}
|
|
218
254
|
// Handle browser back/forward
|
|
255
|
+
/**
|
|
256
|
+
* Handles browser back/forward navigation, ignoring popstate events caused
|
|
257
|
+
* by this router's own pushState, then activates the view recorded in the
|
|
258
|
+
* history state.
|
|
259
|
+
*
|
|
260
|
+
* @param e - popstate event from the browser.
|
|
261
|
+
*/
|
|
219
262
|
function onPopState(e) {
|
|
220
263
|
// Ignore if we just pushed state (some browsers fire popstate after pushState)
|
|
221
264
|
if (navigatingInternally) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["router.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,14 +71,35 @@ let navigatingInternally = false;
|
|
|
71
71
|
|
|
72
72
|
// Callback invoked when the view changes — used to notify presence service
|
|
73
73
|
let onViewChange: ((view: string) => void) | null = null;
|
|
74
|
+
/**
|
|
75
|
+
* Stores the callback invoked after each view switch, used to notify an
|
|
76
|
+
* external service (for example presence) of the active view.
|
|
77
|
+
*
|
|
78
|
+
* @param cb - function called with the new view name.
|
|
79
|
+
*/
|
|
74
80
|
export function setOnViewChange(cb: (view: string) => void): void {
|
|
75
81
|
onViewChange = cb;
|
|
76
82
|
}
|
|
77
83
|
|
|
84
|
+
/**
|
|
85
|
+
* Returns the URL path registered for a view name, defaulting to the root
|
|
86
|
+
* path when the view is unmapped.
|
|
87
|
+
*
|
|
88
|
+
* @param view - view name to look up.
|
|
89
|
+
* @returns the matching path, or '/' when none is registered.
|
|
90
|
+
*/
|
|
78
91
|
export function getPathForView(view: string): string {
|
|
79
92
|
return VIEW_TO_PATH[view] || '/';
|
|
80
93
|
}
|
|
81
94
|
|
|
95
|
+
/**
|
|
96
|
+
* Returns the view name for a URL path, matching the full normalized path
|
|
97
|
+
* first, then the first path segment for deeper routes (such as an item
|
|
98
|
+
* detail), and finally falling back to projects.
|
|
99
|
+
*
|
|
100
|
+
* @param path - URL pathname to resolve.
|
|
101
|
+
* @returns the resolved view name.
|
|
102
|
+
*/
|
|
82
103
|
export function getViewForPath(path: string): string {
|
|
83
104
|
// Normalize: remove trailing slash except for root
|
|
84
105
|
const normalized = path.replace(/\/$/, '') || '/';
|
|
@@ -89,6 +110,15 @@ export function getViewForPath(path: string): string {
|
|
|
89
110
|
return PATH_TO_VIEW[firstSegment] || 'projects';
|
|
90
111
|
}
|
|
91
112
|
|
|
113
|
+
/**
|
|
114
|
+
* Activates a named view: updates the URL via history pushState (unless
|
|
115
|
+
* suppressed), toggles content containers and sidebar highlighting for the
|
|
116
|
+
* new view, calls the matching render function, refreshes the mobile nav,
|
|
117
|
+
* notifies the presence callback, and moves focus into the view.
|
|
118
|
+
*
|
|
119
|
+
* @param view - name of the view to display.
|
|
120
|
+
* @param pushState - whether to push a new history entry (false on popstate).
|
|
121
|
+
*/
|
|
92
122
|
export function showView(view: string, pushState = true): void {
|
|
93
123
|
if (view === 'admin' && !state.user?.is_admin) {
|
|
94
124
|
history.replaceState({ view: 'projects' }, '', '/');
|
|
@@ -164,6 +194,12 @@ export function showView(view: string, pushState = true): void {
|
|
|
164
194
|
}
|
|
165
195
|
}
|
|
166
196
|
|
|
197
|
+
/**
|
|
198
|
+
* Highlights the matching bottom-nav button for the active view and shows or
|
|
199
|
+
* hides the mobile navigation bar depending on whether a project is selected.
|
|
200
|
+
*
|
|
201
|
+
* @param view - currently active view name.
|
|
202
|
+
*/
|
|
167
203
|
function updateMobileNav(view: string): void {
|
|
168
204
|
document.querySelectorAll('.mobile-bottom-nav-item').forEach(el => {
|
|
169
205
|
(el as HTMLElement).classList.toggle('active', (el as HTMLElement).dataset.mobview === view);
|
|
@@ -175,6 +211,13 @@ function updateMobileNav(view: string): void {
|
|
|
175
211
|
}
|
|
176
212
|
|
|
177
213
|
// Handle browser back/forward
|
|
214
|
+
/**
|
|
215
|
+
* Handles browser back/forward navigation, ignoring popstate events caused
|
|
216
|
+
* by this router's own pushState, then activates the view recorded in the
|
|
217
|
+
* history state.
|
|
218
|
+
*
|
|
219
|
+
* @param e - popstate event from the browser.
|
|
220
|
+
*/
|
|
178
221
|
function onPopState(e: PopStateEvent): void {
|
|
179
222
|
// Ignore if we just pushed state (some browsers fire popstate after pushState)
|
|
180
223
|
if (navigatingInternally) {
|
|
@@ -7,6 +7,7 @@ import { escHtml } from '../utils.js';
|
|
|
7
7
|
import { toast } from '../components/toast.js';
|
|
8
8
|
import { renderItemRow } from './items.js';
|
|
9
9
|
let searchTimer;
|
|
10
|
+
/** Renders the search view for the current project: a hybrid/semantic/keyword mode toggle, a reindex button, the query input, and the current result list. */
|
|
10
11
|
export function renderSearchView() {
|
|
11
12
|
const el = document.getElementById('content-search');
|
|
12
13
|
if (!el)
|
|
@@ -40,6 +41,7 @@ export function renderSearchView() {
|
|
|
40
41
|
</div>`;
|
|
41
42
|
setTimeout(() => document.getElementById('search-query')?.focus(), 50);
|
|
42
43
|
}
|
|
44
|
+
/** Sets the active search mode, clears existing results, re-renders the search view, and re-runs the search when a query is already present. */
|
|
43
45
|
export function setSearchMode(mode) {
|
|
44
46
|
state.searchMode = mode;
|
|
45
47
|
state.searchResults = [];
|
|
@@ -47,6 +49,7 @@ export function setSearchMode(mode) {
|
|
|
47
49
|
if (state.searchQuery)
|
|
48
50
|
doSearch();
|
|
49
51
|
}
|
|
52
|
+
/** Requests a project reindex for the current search mode via the reindex endpoint, disabling the button while in flight and toasting success or failure. */
|
|
50
53
|
export async function reindexProject() {
|
|
51
54
|
if (!state.currentProject)
|
|
52
55
|
return;
|
|
@@ -68,11 +71,13 @@ export async function reindexProject() {
|
|
|
68
71
|
btn.textContent = '⟳ Reindex';
|
|
69
72
|
}
|
|
70
73
|
}
|
|
74
|
+
/** Debounced input handler that stores the current query and schedules a search after a 350ms idle delay. */
|
|
71
75
|
export function debouncedSearch() {
|
|
72
76
|
clearTimeout(searchTimer);
|
|
73
77
|
state.searchQuery = document.getElementById('search-query')?.value || '';
|
|
74
78
|
searchTimer = setTimeout(doSearch, 350);
|
|
75
79
|
}
|
|
80
|
+
/** Runs a search against the project search endpoint with the current query and mode, storing and rendering the results or a no-results/error state. */
|
|
76
81
|
export async function doSearch() {
|
|
77
82
|
const query = (document.getElementById('search-query')?.value || '').trim();
|
|
78
83
|
if (!query || !state.currentProject)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["search.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["search.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,cAAc;AACd,kEAAkE;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,IAAI,WAA0C,CAAC;AAE/C,8JAA8J;AAC9J,MAAM,UAAU,gBAAgB;IAC9B,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE;QAAE,OAAO;IAChB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAAC,EAAE,CAAC,SAAS,GAAG,wFAAwF,CAAC;QAAC,OAAO;IAAC,CAAC;IAC/I,MAAM,QAAQ,GAAG;QACf,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,2BAA2B,EAAE;QACpE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,yBAAyB,EAAE;QACtE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,kBAAkB,EAAE;KAC9D,CAAC;IACF,EAAE,CAAC,SAAS,GAAG;;4FAE2E,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;;;;UAIpH,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA,EAAE,CAAA,oHAAoH,KAAK,CAAC,UAAU,KAAG,CAAC,CAAC,GAAG,CAAA,CAAC,CAAA,qDAAqD,CAAA,CAAC,CAAA,gDAAgD,0CAA0C,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;;;;;;iIAO/O,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;;;QAGnJ,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,iIAAiI;WACvL,CAAC;IACV,UAAU,CAAC,GAAE,EAAE,CAAA,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,EAAC,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,gJAAgJ;AAChJ,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC;IACzB,gBAAgB,EAAE,CAAC;IACnB,IAAI,KAAK,CAAC,WAAW;QAAE,QAAQ,EAAE,CAAC;AACpC,CAAC;AAED,6JAA6J;AAC7J,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC,KAAK,CAAC,cAAc;QAAE,OAAO;IAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAA6B,CAAC;IAC/E,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;IACpB,GAAG,CAAC,WAAW,GAAG,eAAe,CAAC;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAoB,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,EAAC,aAAa,KAAK,CAAC,cAAc,CAAC,EAAE,aAAa,EAAC,EAAC,IAAI,EAAC,CAAC,CAAC;QAC3E,KAAK,CAAC,qBAAqB,IAAI,GAAG,EAAE,SAAS,CAAC,CAAC;IACjD,CAAC;IAAC,OAAM,GAAY,EAAE,CAAC;QACrB,KAAK,CAAC,mBAAmB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAC,OAAO,CAAC,CAAC;IACvF,CAAC;YAAS,CAAC;QACT,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;QACrB,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,CAAC;AACH,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,eAAe;IAC7B,YAAY,CAAC,WAAW,CAAC,CAAC;IAC1B,KAAK,CAAC,WAAW,GAAI,QAAQ,CAAC,cAAc,CAAC,cAAc,CAA6B,EAAE,KAAK,IAAI,EAAE,CAAC;IACtG,WAAW,GAAG,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,wJAAwJ;AACxJ,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,MAAM,KAAK,GAAG,CAAE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAA6B,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzG,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc;QAAE,OAAO;IAC5C,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;IAC1B,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAC5D,IAAI,SAAS;QAAE,SAAS,CAAC,SAAS,GAAG,sEAAsE,CAAC;IAC5G,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAiB,MAAM,EAAC,aAAa,KAAK,CAAC,cAAc,CAAC,EAAE,YAAY,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,CAAC,UAAU,EAAC,CAAC,CAAC;QAC9H,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACvD,IAAI,SAAS;YAAE,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;gBACnE,CAAC,CAAC,0EAA0E,OAAO,CAAC,KAAK,CAAC,eAAe;gBACzG,CAAC,CAAC,mBAAmB,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAM,GAAY,EAAE,CAAC;QACrB,IAAI,SAAS;YAAE,SAAS,CAAC,SAAS,GAAG,iEAAiE,OAAO,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;IAChL,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB;IAC1B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAC3C,OAAO,yEAAyE,KAAK,CAAC,aAAa,CAAC,MAAM,UAAU,KAAK,CAAC,aAAa,CAAC,MAAM,KAAG,CAAC,CAAA,CAAC,CAAA,GAAG,CAAA,CAAC,CAAA,EAAE;6BAC9H,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAA,EAAE,CAAA,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;AACjG,CAAC"}
|
|
@@ -10,6 +10,7 @@ import type { SearchResponse } from '../api-types.js';
|
|
|
10
10
|
|
|
11
11
|
let searchTimer: ReturnType<typeof setTimeout>;
|
|
12
12
|
|
|
13
|
+
/** Renders the search view for the current project: a hybrid/semantic/keyword mode toggle, a reindex button, the query input, and the current result list. */
|
|
13
14
|
export function renderSearchView(): void {
|
|
14
15
|
const el = document.getElementById('content-search');
|
|
15
16
|
if (!el) return;
|
|
@@ -40,6 +41,7 @@ export function renderSearchView(): void {
|
|
|
40
41
|
setTimeout(()=>document.getElementById('search-query')?.focus(),50);
|
|
41
42
|
}
|
|
42
43
|
|
|
44
|
+
/** Sets the active search mode, clears existing results, re-renders the search view, and re-runs the search when a query is already present. */
|
|
43
45
|
export function setSearchMode(mode: string): void {
|
|
44
46
|
state.searchMode = mode;
|
|
45
47
|
state.searchResults = [];
|
|
@@ -47,6 +49,7 @@ export function setSearchMode(mode: string): void {
|
|
|
47
49
|
if (state.searchQuery) doSearch();
|
|
48
50
|
}
|
|
49
51
|
|
|
52
|
+
/** Requests a project reindex for the current search mode via the reindex endpoint, disabling the button while in flight and toasting success or failure. */
|
|
50
53
|
export async function reindexProject(): Promise<void> {
|
|
51
54
|
if (!state.currentProject) return;
|
|
52
55
|
const btn = document.getElementById('reindex-btn') as HTMLButtonElement | null;
|
|
@@ -65,12 +68,14 @@ export async function reindexProject(): Promise<void> {
|
|
|
65
68
|
}
|
|
66
69
|
}
|
|
67
70
|
|
|
71
|
+
/** Debounced input handler that stores the current query and schedules a search after a 350ms idle delay. */
|
|
68
72
|
export function debouncedSearch(): void {
|
|
69
73
|
clearTimeout(searchTimer);
|
|
70
74
|
state.searchQuery = (document.getElementById('search-query') as HTMLInputElement | null)?.value || '';
|
|
71
75
|
searchTimer = setTimeout(doSearch, 350);
|
|
72
76
|
}
|
|
73
77
|
|
|
78
|
+
/** Runs a search against the project search endpoint with the current query and mode, storing and rendering the results or a no-results/error state. */
|
|
74
79
|
export async function doSearch(): Promise<void> {
|
|
75
80
|
const query = ((document.getElementById('search-query') as HTMLInputElement | null)?.value || '').trim();
|
|
76
81
|
if (!query || !state.currentProject) return;
|
|
@@ -10,6 +10,12 @@ import { t, translateError, localeDate, getLocale, SUPPORTED_LOCALES } from '../
|
|
|
10
10
|
function avatarInitial(name) {
|
|
11
11
|
return (name.trim()[0] || '?').toUpperCase();
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Computes a deterministic avatar background color for a seed string by
|
|
15
|
+
* hashing its characters into an HSL hue.
|
|
16
|
+
* @param seed - The string used to derive the color (e.g. email or name).
|
|
17
|
+
* @returns An `hsl(...)` CSS color string.
|
|
18
|
+
*/
|
|
13
19
|
function avatarBg(seed) {
|
|
14
20
|
let hash = 0;
|
|
15
21
|
for (let i = 0; i < seed.length; i++) {
|
|
@@ -25,6 +31,12 @@ const LOCALE_LABEL_KEYS = {
|
|
|
25
31
|
es: 'settings.languageEs',
|
|
26
32
|
zh: 'settings.languageZh',
|
|
27
33
|
};
|
|
34
|
+
/**
|
|
35
|
+
* Renders the settings view into the #content-settings element: the language
|
|
36
|
+
* selector, profile card with a generated avatar, password change card, and
|
|
37
|
+
* GitHub token card. Reads user-facing strings via i18n and the current user
|
|
38
|
+
* from shared state.
|
|
39
|
+
*/
|
|
28
40
|
export function renderSettingsView() {
|
|
29
41
|
const el = document.getElementById('content-settings');
|
|
30
42
|
if (!el)
|
|
@@ -125,6 +137,13 @@ export function renderSettingsView() {
|
|
|
125
137
|
</div>
|
|
126
138
|
</div>`;
|
|
127
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Saves the display name entered in the profile form. Validates the name is
|
|
142
|
+
* non-empty, PATCHes it to the profile endpoint, merges the returned user
|
|
143
|
+
* into state, updates the header avatar and name, and re-renders the view.
|
|
144
|
+
* Reports errors via the inline error element and restores the button on
|
|
145
|
+
* completion.
|
|
146
|
+
*/
|
|
128
147
|
export async function saveProfile() {
|
|
129
148
|
const displayName = document.getElementById('settings-display-name')?.value?.trim() || '';
|
|
130
149
|
const errEl = document.getElementById('settings-profile-error');
|
|
@@ -178,6 +197,12 @@ export async function saveProfile() {
|
|
|
178
197
|
}
|
|
179
198
|
}
|
|
180
199
|
}
|
|
200
|
+
/**
|
|
201
|
+
* Submits the password change form. Validates that all fields are filled, the
|
|
202
|
+
* new and confirm passwords match, and the new password meets the minimum
|
|
203
|
+
* length, then POSTs the change to the auth endpoint and clears the fields on
|
|
204
|
+
* success. Reports errors via the inline error element.
|
|
205
|
+
*/
|
|
181
206
|
export async function changePassword() {
|
|
182
207
|
const currentPassword = document.getElementById('settings-current-pw')?.value || '';
|
|
183
208
|
const newPassword = document.getElementById('settings-new-pw')?.value || '';
|
|
@@ -241,6 +266,12 @@ export async function changePassword() {
|
|
|
241
266
|
}
|
|
242
267
|
}
|
|
243
268
|
}
|
|
269
|
+
/**
|
|
270
|
+
* Saves the GitHub token entered in the token field. Validates the token is
|
|
271
|
+
* non-empty, PATCHes it to the GitHub token endpoint, updates the user's
|
|
272
|
+
* token flag in state from the response, and re-renders the view. Reports
|
|
273
|
+
* errors via the inline error element.
|
|
274
|
+
*/
|
|
244
275
|
export async function saveGitHubToken() {
|
|
245
276
|
const token = document.getElementById('settings-github-token')?.value?.trim() || '';
|
|
246
277
|
const errEl = document.getElementById('settings-github-error');
|
|
@@ -281,6 +312,11 @@ export async function saveGitHubToken() {
|
|
|
281
312
|
}
|
|
282
313
|
}
|
|
283
314
|
}
|
|
315
|
+
/**
|
|
316
|
+
* Prompts for confirmation, then clears the stored GitHub token by PATCHing
|
|
317
|
+
* an empty token to the token endpoint, resets the user's token flag in
|
|
318
|
+
* state, and re-renders the view, reporting any failure via a toast.
|
|
319
|
+
*/
|
|
284
320
|
export function clearGitHubToken() {
|
|
285
321
|
confirmDialog(t('settings.clearTokenTitle'), t('settings.clearTokenBody'), async () => {
|
|
286
322
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["settings.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,12 @@ function avatarInitial(name: string): string {
|
|
|
14
14
|
return (name.trim()[0] || '?').toUpperCase();
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
/**
|
|
18
|
+
* Computes a deterministic avatar background color for a seed string by
|
|
19
|
+
* hashing its characters into an HSL hue.
|
|
20
|
+
* @param seed - The string used to derive the color (e.g. email or name).
|
|
21
|
+
* @returns An `hsl(...)` CSS color string.
|
|
22
|
+
*/
|
|
17
23
|
function avatarBg(seed: string): string {
|
|
18
24
|
let hash = 0;
|
|
19
25
|
for (let i = 0; i < seed.length; i++) { hash = (hash * 31 + seed.charCodeAt(i)) >>> 0; }
|
|
@@ -29,6 +35,12 @@ const LOCALE_LABEL_KEYS: Record<SupportedLocale, string> = {
|
|
|
29
35
|
zh: 'settings.languageZh',
|
|
30
36
|
};
|
|
31
37
|
|
|
38
|
+
/**
|
|
39
|
+
* Renders the settings view into the #content-settings element: the language
|
|
40
|
+
* selector, profile card with a generated avatar, password change card, and
|
|
41
|
+
* GitHub token card. Reads user-facing strings via i18n and the current user
|
|
42
|
+
* from shared state.
|
|
43
|
+
*/
|
|
32
44
|
export function renderSettingsView(): void {
|
|
33
45
|
const el = document.getElementById('content-settings');
|
|
34
46
|
if (!el) return;
|
|
@@ -129,6 +141,13 @@ export function renderSettingsView(): void {
|
|
|
129
141
|
</div>`;
|
|
130
142
|
}
|
|
131
143
|
|
|
144
|
+
/**
|
|
145
|
+
* Saves the display name entered in the profile form. Validates the name is
|
|
146
|
+
* non-empty, PATCHes it to the profile endpoint, merges the returned user
|
|
147
|
+
* into state, updates the header avatar and name, and re-renders the view.
|
|
148
|
+
* Reports errors via the inline error element and restores the button on
|
|
149
|
+
* completion.
|
|
150
|
+
*/
|
|
132
151
|
export async function saveProfile(): Promise<void> {
|
|
133
152
|
const displayName = (document.getElementById('settings-display-name') as HTMLInputElement | null)?.value?.trim() || '';
|
|
134
153
|
const errEl = document.getElementById('settings-profile-error') as HTMLElement | null;
|
|
@@ -158,6 +177,12 @@ export async function saveProfile(): Promise<void> {
|
|
|
158
177
|
}
|
|
159
178
|
}
|
|
160
179
|
|
|
180
|
+
/**
|
|
181
|
+
* Submits the password change form. Validates that all fields are filled, the
|
|
182
|
+
* new and confirm passwords match, and the new password meets the minimum
|
|
183
|
+
* length, then POSTs the change to the auth endpoint and clears the fields on
|
|
184
|
+
* success. Reports errors via the inline error element.
|
|
185
|
+
*/
|
|
161
186
|
export async function changePassword(): Promise<void> {
|
|
162
187
|
const currentPassword = (document.getElementById('settings-current-pw') as HTMLInputElement | null)?.value || '';
|
|
163
188
|
const newPassword = (document.getElementById('settings-new-pw') as HTMLInputElement | null)?.value || '';
|
|
@@ -185,6 +210,12 @@ export async function changePassword(): Promise<void> {
|
|
|
185
210
|
}
|
|
186
211
|
}
|
|
187
212
|
|
|
213
|
+
/**
|
|
214
|
+
* Saves the GitHub token entered in the token field. Validates the token is
|
|
215
|
+
* non-empty, PATCHes it to the GitHub token endpoint, updates the user's
|
|
216
|
+
* token flag in state from the response, and re-renders the view. Reports
|
|
217
|
+
* errors via the inline error element.
|
|
218
|
+
*/
|
|
188
219
|
export async function saveGitHubToken(): Promise<void> {
|
|
189
220
|
const token = (document.getElementById('settings-github-token') as HTMLInputElement | null)?.value?.trim() || '';
|
|
190
221
|
const errEl = document.getElementById('settings-github-error') as HTMLElement | null;
|
|
@@ -204,6 +235,11 @@ export async function saveGitHubToken(): Promise<void> {
|
|
|
204
235
|
}
|
|
205
236
|
}
|
|
206
237
|
|
|
238
|
+
/**
|
|
239
|
+
* Prompts for confirmation, then clears the stored GitHub token by PATCHing
|
|
240
|
+
* an empty token to the token endpoint, resets the user's token flag in
|
|
241
|
+
* state, and re-renders the view, reporting any failure via a toast.
|
|
242
|
+
*/
|
|
207
243
|
export function clearGitHubToken(): void {
|
|
208
244
|
confirmDialog(t('settings.clearTokenTitle'), t('settings.clearTokenBody'), async () => {
|
|
209
245
|
try {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { api } from '../api.js';
|
|
2
2
|
import { escHtml } from '../utils.js';
|
|
3
3
|
import { skeletonCards } from '../utils.js';
|
|
4
|
+
/** Renders the grid of projects other users have shared with the current user, showing each project's name, slug, description, permission level, and owner. */
|
|
4
5
|
export async function renderSharedView() {
|
|
5
6
|
const el = document.getElementById('content-shared');
|
|
6
7
|
if (!el)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["shared.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE;QAAE,OAAO;IAChB,EAAE,CAAC,SAAS,GAAG;;;;;+BAKc,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAyB,KAAK,EAAE,SAAS,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAoB,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QACtD,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,SAAS,GAAG;;;;;eAKP,CAAC;YACV,OAAO;QACT,CAAC;QACD,GAAG,CAAC,SAAS,GAAG;;UAEV,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;2EAC6C,CAAC,CAAC,EAAE;6CAClC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;kDACV,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;6CACpB,OAAO,CAAC,CAAC,CAAC,WAAW,IAAI,gBAAgB,CAAC;;yCAE9C,OAAO,CAAC,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC;mDACrB,OAAO,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC,WAAW,IAAI,SAAS,CAAC;;iBAE7F,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;aACd,CAAC;IACZ,CAAC;IAAC,OAAM,GAAY,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACtD,IAAI,GAAG;YAAE,GAAG,CAAC,SAAS,GAAG,iEAAiE,OAAO,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;IACpK,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["shared.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,+JAA+J;AAC/J,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE;QAAE,OAAO;IAChB,EAAE,CAAC,SAAS,GAAG;;;;;+BAKc,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAyB,KAAK,EAAE,SAAS,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAoB,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QACtD,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,SAAS,GAAG;;;;;eAKP,CAAC;YACV,OAAO;QACT,CAAC;QACD,GAAG,CAAC,SAAS,GAAG;;UAEV,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;2EAC6C,CAAC,CAAC,EAAE;6CAClC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;kDACV,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;6CACpB,OAAO,CAAC,CAAC,CAAC,WAAW,IAAI,gBAAgB,CAAC;;yCAE9C,OAAO,CAAC,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC;mDACrB,OAAO,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC,WAAW,IAAI,SAAS,CAAC;;iBAE7F,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;aACd,CAAC;IACZ,CAAC;IAAC,OAAM,GAAY,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACtD,IAAI,GAAG;YAAE,GAAG,CAAC,SAAS,GAAG,iEAAiE,OAAO,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;IACpK,CAAC;AACH,CAAC"}
|
|
@@ -7,6 +7,7 @@ import { escHtml } from '../utils.js';
|
|
|
7
7
|
import { skeletonCards } from '../utils.js';
|
|
8
8
|
import type { SharedProject, SharedProjectsResponse } from '../api-types.js';
|
|
9
9
|
|
|
10
|
+
/** Renders the grid of projects other users have shared with the current user, showing each project's name, slug, description, permission level, and owner. */
|
|
10
11
|
export async function renderSharedView(): Promise<void> {
|
|
11
12
|
const el = document.getElementById('content-shared');
|
|
12
13
|
if (!el) return;
|