@unbrained/pm-web 2026.7.17-1 → 2026.7.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/dist/app.d.ts +1 -15
- package/dist/app.js +1 -15
- package/dist/app.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +1 -1
- package/public/index.html +28 -32
- package/public/src/app.js +0 -14
- package/public/src/app.js.map +1 -1
- package/public/src/app.ts +0 -15
- package/public/src/components/modals.js +3 -5
- package/public/src/components/modals.js.map +1 -1
- package/public/src/components/modals.ts +3 -6
- package/public/src/sw.ts +0 -3
- package/public/src/views/auth.js +7 -8
- package/public/src/views/auth.js.map +1 -1
- package/public/src/views/auth.ts +7 -8
- package/public/src/views/settings.js +48 -73
- package/public/src/views/settings.js.map +1 -1
- package/public/src/views/settings.ts +48 -77
- package/public/sw.js +0 -3
- package/public/src/i18n/de.json +0 -117
- package/public/src/i18n/en.json +0 -117
- package/public/src/i18n/es.json +0 -117
- package/public/src/i18n/zh.json +0 -117
- package/public/src/i18n.js +0 -287
- package/public/src/i18n.js.map +0 -1
- package/public/src/i18n.ts +0 -306
|
@@ -51,20 +51,17 @@ export function confirmDialog(
|
|
|
51
51
|
title: string,
|
|
52
52
|
desc: string,
|
|
53
53
|
onConfirm: () => void,
|
|
54
|
-
danger = false
|
|
55
|
-
labels?: { cancel?: string; confirm?: string },
|
|
54
|
+
danger = false
|
|
56
55
|
): void {
|
|
57
56
|
const id = 'confirm-dialog-' + Date.now();
|
|
58
|
-
const cancelLabel = labels?.cancel ?? 'Cancel';
|
|
59
|
-
const confirmLabel = labels?.confirm ?? (danger ? 'Delete' : 'Confirm');
|
|
60
57
|
createModal(id, '', `
|
|
61
58
|
<div class="confirm-dialog">
|
|
62
59
|
<div class="confirm-dialog-icon">${danger ? '⚠' : '?'}</div>
|
|
63
60
|
<div class="confirm-dialog-title">${escHtml(title)}</div>
|
|
64
61
|
<div class="confirm-dialog-desc">${escHtml(desc)}</div>
|
|
65
62
|
<div class="confirm-dialog-actions">
|
|
66
|
-
<button class="btn btn-ghost" onclick="window.__app.hideModal('${id}')"
|
|
67
|
-
<button class="btn ${danger ? 'btn-danger' : 'btn-primary'}" id="${id}-ok">${
|
|
63
|
+
<button class="btn btn-ghost" onclick="window.__app.hideModal('${id}')">Cancel</button>
|
|
64
|
+
<button class="btn ${danger ? 'btn-danger' : 'btn-primary'}" id="${id}-ok">${danger ? 'Delete' : 'Confirm'}</button>
|
|
68
65
|
</div>
|
|
69
66
|
</div>`
|
|
70
67
|
, '');
|
package/public/src/sw.ts
CHANGED
package/public/src/views/auth.js
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
import { state } from '../state.js';
|
|
5
5
|
import { api } from '../api.js';
|
|
6
6
|
import { bootApp } from '../app.js';
|
|
7
|
-
import { t, translateError } from '../i18n.js';
|
|
8
7
|
async function configureOidcLogin() {
|
|
9
8
|
const button = document.getElementById('oidc-login');
|
|
10
9
|
const divider = document.getElementById('oidc-divider');
|
|
@@ -15,7 +14,7 @@ async function configureOidcLogin() {
|
|
|
15
14
|
button.hidden = !config.enabled;
|
|
16
15
|
if (divider)
|
|
17
16
|
divider.hidden = !config.enabled;
|
|
18
|
-
button.textContent =
|
|
17
|
+
button.textContent = `Continue with ${config.label}`;
|
|
19
18
|
}
|
|
20
19
|
catch {
|
|
21
20
|
button.hidden = true;
|
|
@@ -35,13 +34,13 @@ export function switchAuthTab(tab) {
|
|
|
35
34
|
fieldName.style.display = tab === 'register' ? '' : 'none';
|
|
36
35
|
const authTitle = document.getElementById('auth-title');
|
|
37
36
|
if (authTitle)
|
|
38
|
-
authTitle.textContent = tab === 'login' ?
|
|
37
|
+
authTitle.textContent = tab === 'login' ? 'Welcome back' : 'Create account';
|
|
39
38
|
const authSub = document.getElementById('auth-sub');
|
|
40
39
|
if (authSub)
|
|
41
|
-
authSub.textContent = tab === 'login' ?
|
|
40
|
+
authSub.textContent = tab === 'login' ? 'Sign in to your account to continue' : 'Join pm-web and start managing projects';
|
|
42
41
|
const authBtnText = document.getElementById('auth-btn-text');
|
|
43
42
|
if (authBtnText)
|
|
44
|
-
authBtnText.textContent = tab === 'login' ?
|
|
43
|
+
authBtnText.textContent = tab === 'login' ? 'Sign In' : 'Create Account';
|
|
45
44
|
const authError = document.getElementById('auth-error');
|
|
46
45
|
if (authError)
|
|
47
46
|
authError.style.display = 'none';
|
|
@@ -62,7 +61,7 @@ export async function submitAuth(e) {
|
|
|
62
61
|
btn.disabled = true;
|
|
63
62
|
const span = btn.querySelector('span');
|
|
64
63
|
if (span)
|
|
65
|
-
span.textContent =
|
|
64
|
+
span.textContent = 'Please wait…';
|
|
66
65
|
try {
|
|
67
66
|
let data;
|
|
68
67
|
if (state.authTab === 'login') {
|
|
@@ -75,11 +74,11 @@ export async function submitAuth(e) {
|
|
|
75
74
|
await bootApp();
|
|
76
75
|
}
|
|
77
76
|
catch (err) {
|
|
78
|
-
errEl.textContent =
|
|
77
|
+
errEl.textContent = err instanceof Error ? err.message : String(err);
|
|
79
78
|
errEl.style.display = 'block';
|
|
80
79
|
btn.disabled = false;
|
|
81
80
|
if (span)
|
|
82
|
-
span.textContent = state.authTab === 'login' ?
|
|
81
|
+
span.textContent = state.authTab === 'login' ? 'Sign In' : 'Create Account';
|
|
83
82
|
}
|
|
84
83
|
}
|
|
85
84
|
export async function logout() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["auth.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,YAAY;AACZ,kEAAkE;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["auth.ts"],"names":[],"mappings":"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"}
|
package/public/src/views/auth.ts
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
import { state } from '../state.js';
|
|
5
5
|
import { api } from '../api.js';
|
|
6
6
|
import { bootApp } from '../app.js';
|
|
7
|
-
import { t, translateError } from '../i18n.js';
|
|
8
7
|
import type { User } from '../types.js';
|
|
9
8
|
|
|
10
9
|
async function configureOidcLogin(): Promise<void> {
|
|
@@ -15,7 +14,7 @@ async function configureOidcLogin(): Promise<void> {
|
|
|
15
14
|
const config = await api('GET', '/auth/oidc/config') as { enabled: boolean; label: string };
|
|
16
15
|
button.hidden = !config.enabled;
|
|
17
16
|
if (divider) divider.hidden = !config.enabled;
|
|
18
|
-
button.textContent =
|
|
17
|
+
button.textContent = `Continue with ${config.label}`;
|
|
19
18
|
} catch {
|
|
20
19
|
button.hidden = true;
|
|
21
20
|
if (divider) divider.hidden = true;
|
|
@@ -33,11 +32,11 @@ export function switchAuthTab(tab: 'login' | 'register'): void {
|
|
|
33
32
|
const fieldName = document.getElementById('field-name') as HTMLElement | null;
|
|
34
33
|
if (fieldName) fieldName.style.display = tab==='register' ? '' : 'none';
|
|
35
34
|
const authTitle = document.getElementById('auth-title');
|
|
36
|
-
if (authTitle) authTitle.textContent = tab==='login' ?
|
|
35
|
+
if (authTitle) authTitle.textContent = tab==='login' ? 'Welcome back' : 'Create account';
|
|
37
36
|
const authSub = document.getElementById('auth-sub');
|
|
38
|
-
if (authSub) authSub.textContent = tab==='login' ?
|
|
37
|
+
if (authSub) authSub.textContent = tab==='login' ? 'Sign in to your account to continue' : 'Join pm-web and start managing projects';
|
|
39
38
|
const authBtnText = document.getElementById('auth-btn-text');
|
|
40
|
-
if (authBtnText) authBtnText.textContent = tab==='login' ?
|
|
39
|
+
if (authBtnText) authBtnText.textContent = tab==='login' ? 'Sign In' : 'Create Account';
|
|
41
40
|
const authError = document.getElementById('auth-error') as HTMLElement | null;
|
|
42
41
|
if (authError) authError.style.display = 'none';
|
|
43
42
|
}
|
|
@@ -59,7 +58,7 @@ export async function submitAuth(e: Event): Promise<void> {
|
|
|
59
58
|
errEl.style.display = 'none';
|
|
60
59
|
btn.disabled = true;
|
|
61
60
|
const span = btn.querySelector('span');
|
|
62
|
-
if (span) span.textContent =
|
|
61
|
+
if (span) span.textContent = 'Please wait…';
|
|
63
62
|
|
|
64
63
|
try {
|
|
65
64
|
let data: { user: User };
|
|
@@ -71,10 +70,10 @@ export async function submitAuth(e: Event): Promise<void> {
|
|
|
71
70
|
state.user = data.user;
|
|
72
71
|
await bootApp();
|
|
73
72
|
} catch(err: unknown) {
|
|
74
|
-
errEl.textContent =
|
|
73
|
+
errEl.textContent = err instanceof Error ? err.message : String(err);
|
|
75
74
|
errEl.style.display = 'block';
|
|
76
75
|
btn.disabled = false;
|
|
77
|
-
if (span) span.textContent = state.authTab==='login' ?
|
|
76
|
+
if (span) span.textContent = state.authTab==='login' ? 'Sign In' : 'Create Account';
|
|
78
77
|
}
|
|
79
78
|
}
|
|
80
79
|
|
|
@@ -6,7 +6,6 @@ import { api } from '../api.js';
|
|
|
6
6
|
import { escHtml } from '../utils.js';
|
|
7
7
|
import { toast } from '../components/toast.js';
|
|
8
8
|
import { confirmDialog } from '../components/modals.js';
|
|
9
|
-
import { t, translateError, localeDate, getLocale, SUPPORTED_LOCALES } from '../i18n.js';
|
|
10
9
|
function avatarInitial(name) {
|
|
11
10
|
return (name.trim()[0] || '?').toUpperCase();
|
|
12
11
|
}
|
|
@@ -18,45 +17,21 @@ function avatarBg(seed) {
|
|
|
18
17
|
const hue = hash % 360;
|
|
19
18
|
return `hsl(${hue},55%,45%)`;
|
|
20
19
|
}
|
|
21
|
-
/** Compile-time-complete mapping from supported locale → settings label key. */
|
|
22
|
-
const LOCALE_LABEL_KEYS = {
|
|
23
|
-
en: 'settings.languageEn',
|
|
24
|
-
de: 'settings.languageDe',
|
|
25
|
-
es: 'settings.languageEs',
|
|
26
|
-
zh: 'settings.languageZh',
|
|
27
|
-
};
|
|
28
20
|
export function renderSettingsView() {
|
|
29
21
|
const el = document.getElementById('content-settings');
|
|
30
22
|
if (!el)
|
|
31
23
|
return;
|
|
32
24
|
const u = state.user || {};
|
|
33
25
|
const createdInfo = u.created_at
|
|
34
|
-
? `<span style="display:block;margin-top:4px;font-size:12px;color:var(--text-muted)"
|
|
26
|
+
? `<span style="display:block;margin-top:4px;font-size:12px;color:var(--text-muted)">Account created ${new Date(u.created_at).toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' })}</span>`
|
|
35
27
|
: '';
|
|
36
|
-
const currentLocale = getLocale();
|
|
37
|
-
const langOptions = SUPPORTED_LOCALES.map((loc) => {
|
|
38
|
-
const label = t(LOCALE_LABEL_KEYS[loc]);
|
|
39
|
-
return `<option value="${loc}"${loc === currentLocale ? ' selected' : ''}>${escHtml(label)}</option>`;
|
|
40
|
-
}).join('');
|
|
41
28
|
el.innerHTML = `
|
|
42
29
|
<div class="page-header">
|
|
43
|
-
<div><div class="page-title"
|
|
30
|
+
<div><div class="page-title">Settings</div><div class="page-subtitle">Manage your profile and account</div></div>
|
|
44
31
|
</div>
|
|
45
32
|
<div style="max-width:560px;display:flex;flex-direction:column;gap:20px">
|
|
46
33
|
<div class="card">
|
|
47
|
-
<div class="card-header"><div class="card-title"
|
|
48
|
-
<div class="card-body">
|
|
49
|
-
<div class="form-group">
|
|
50
|
-
<label class="form-label" for="settings-language">${escHtml(t('settings.language'))}</label>
|
|
51
|
-
<select class="form-input" id="settings-language" onchange="window.__app.changeLanguage(this.value)" aria-label="${escHtml(t('settings.language'))}">
|
|
52
|
-
${langOptions}
|
|
53
|
-
</select>
|
|
54
|
-
<div style="font-size:12px;color:var(--text-muted);margin-top:6px">${escHtml(t('settings.languageHint'))}</div>
|
|
55
|
-
</div>
|
|
56
|
-
</div>
|
|
57
|
-
</div>
|
|
58
|
-
<div class="card">
|
|
59
|
-
<div class="card-header"><div class="card-title">${escHtml(t('settings.profile'))}</div></div>
|
|
34
|
+
<div class="card-header"><div class="card-title">Profile</div></div>
|
|
60
35
|
<div class="card-body">
|
|
61
36
|
<div style="display:flex;align-items:center;gap:16px;margin-bottom:20px">
|
|
62
37
|
<div style="width:64px;height:64px;border-radius:50%;background:${avatarBg(u.email || u.display_name || '?')};display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;color:#fff;flex-shrink:0;user-select:none" aria-hidden="true">${escHtml(avatarInitial(u.display_name || u.email || '?'))}</div>
|
|
@@ -66,60 +41,60 @@ export function renderSettingsView() {
|
|
|
66
41
|
</div>
|
|
67
42
|
</div>
|
|
68
43
|
<div class="form-group">
|
|
69
|
-
<label class="form-label" for="settings-display-name"
|
|
70
|
-
<input class="form-input" id="settings-display-name" type="text" value="${escHtml(u.display_name || u.email || '')}" placeholder="
|
|
44
|
+
<label class="form-label" for="settings-display-name">Display Name</label>
|
|
45
|
+
<input class="form-input" id="settings-display-name" type="text" value="${escHtml(u.display_name || u.email || '')}" placeholder="Your display name" aria-label="Display name">
|
|
71
46
|
</div>
|
|
72
47
|
<div class="form-group">
|
|
73
|
-
<label class="form-label"
|
|
74
|
-
<input class="form-input" type="text" value="${escHtml(u.email || '')}" disabled style="opacity:0.6;cursor:not-allowed" aria-label="
|
|
48
|
+
<label class="form-label">Email</label>
|
|
49
|
+
<input class="form-input" type="text" value="${escHtml(u.email || '')}" disabled style="opacity:0.6;cursor:not-allowed" aria-label="Email address (read only)">
|
|
75
50
|
${createdInfo}
|
|
76
51
|
</div>
|
|
77
52
|
<div class="form-error" id="settings-profile-error" style="display:none" role="alert"></div>
|
|
78
|
-
<button class="btn btn-primary btn-sm" id="settings-profile-btn" onclick="window.__app.saveProfile()" aria-label="
|
|
53
|
+
<button class="btn btn-primary btn-sm" id="settings-profile-btn" onclick="window.__app.saveProfile()" aria-label="Save profile changes"><span>Save Profile</span></button>
|
|
79
54
|
</div>
|
|
80
55
|
</div>
|
|
81
56
|
<div class="card">
|
|
82
|
-
<div class="card-header"><div class="card-title"
|
|
57
|
+
<div class="card-header"><div class="card-title">Change Password</div></div>
|
|
83
58
|
<div class="card-body">
|
|
84
59
|
<div class="form-group">
|
|
85
|
-
<label class="form-label" for="settings-current-pw"
|
|
86
|
-
<input class="form-input" id="settings-current-pw" type="password" placeholder="
|
|
60
|
+
<label class="form-label" for="settings-current-pw">Current Password</label>
|
|
61
|
+
<input class="form-input" id="settings-current-pw" type="password" placeholder="Current password" autocomplete="current-password" aria-label="Current password">
|
|
87
62
|
</div>
|
|
88
63
|
<div class="form-group">
|
|
89
|
-
<label class="form-label" for="settings-new-pw"
|
|
90
|
-
<input class="form-input" id="settings-new-pw" type="password" placeholder="
|
|
64
|
+
<label class="form-label" for="settings-new-pw">New Password</label>
|
|
65
|
+
<input class="form-input" id="settings-new-pw" type="password" placeholder="New password" autocomplete="new-password" aria-label="New password">
|
|
91
66
|
</div>
|
|
92
67
|
<div class="form-group">
|
|
93
|
-
<label class="form-label" for="settings-confirm-pw"
|
|
94
|
-
<input class="form-input" id="settings-confirm-pw" type="password" placeholder="
|
|
68
|
+
<label class="form-label" for="settings-confirm-pw">Confirm New Password</label>
|
|
69
|
+
<input class="form-input" id="settings-confirm-pw" type="password" placeholder="Confirm new password" autocomplete="new-password" aria-label="Confirm new password">
|
|
95
70
|
</div>
|
|
96
71
|
<div class="form-error" id="settings-pw-error" style="display:none" role="alert"></div>
|
|
97
|
-
<button class="btn btn-primary btn-sm" id="settings-pw-btn" onclick="window.__app.changePassword()" aria-label="
|
|
72
|
+
<button class="btn btn-primary btn-sm" id="settings-pw-btn" onclick="window.__app.changePassword()" aria-label="Change password"><span>Change Password</span></button>
|
|
98
73
|
</div>
|
|
99
74
|
</div>
|
|
100
75
|
<div class="card">
|
|
101
76
|
<div class="card-header">
|
|
102
|
-
<div class="card-title"
|
|
103
|
-
${u.has_github_token ? `<span style="font-size:12px;color:var(--status-closed)"
|
|
77
|
+
<div class="card-title">GitHub Token</div>
|
|
78
|
+
${u.has_github_token ? `<span style="font-size:12px;color:var(--status-closed)">✓ Token configured</span>` : `<span style="font-size:12px;color:var(--text-muted)">No token set</span>`}
|
|
104
79
|
</div>
|
|
105
80
|
<div class="card-body">
|
|
106
81
|
<div style="margin-bottom:12px;padding:10px 12px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);font-size:12px;color:var(--text-secondary)">
|
|
107
|
-
<strong style="color:var(--text-primary)"
|
|
82
|
+
<strong style="color:var(--text-primary)">How to get a token:</strong>
|
|
108
83
|
<ol style="margin-top:6px;padding-left:18px;line-height:1.8">
|
|
109
|
-
<li
|
|
110
|
-
<li
|
|
111
|
-
<li
|
|
84
|
+
<li>Go to GitHub → Settings → Developer settings → Personal access tokens</li>
|
|
85
|
+
<li>Generate a new token with <code style="font-family:monospace;background:var(--bg-base);padding:0 3px;border-radius:3px">repo</code> scope</li>
|
|
86
|
+
<li>Paste the token below and click Save</li>
|
|
112
87
|
</ol>
|
|
113
88
|
</div>
|
|
114
89
|
<div class="form-group">
|
|
115
|
-
<label class="form-label" for="settings-github-token"
|
|
116
|
-
<input class="form-input" id="settings-github-token" type="password" placeholder="${
|
|
117
|
-
<div style="font-size:11px;color:var(--text-muted);margin-top:4px"
|
|
90
|
+
<label class="form-label" for="settings-github-token">Personal Access Token (PAT)</label>
|
|
91
|
+
<input class="form-input" id="settings-github-token" type="password" placeholder="${u.has_github_token ? 'Leave blank to keep current token' : 'ghp_…'}" autocomplete="off" aria-label="GitHub personal access token">
|
|
92
|
+
<div style="font-size:11px;color:var(--text-muted);margin-top:4px">Used for GitHub integration. Needs <code style="font-family:monospace;background:var(--bg-input);padding:0 3px;border-radius:3px">repo</code> scope.</div>
|
|
118
93
|
</div>
|
|
119
94
|
<div class="form-error" id="settings-github-error" style="display:none" role="alert"></div>
|
|
120
95
|
<div style="display:flex;gap:8px">
|
|
121
|
-
<button class="btn btn-primary btn-sm" id="settings-github-btn" onclick="window.__app.saveGitHubToken()" aria-label="
|
|
122
|
-
${u.has_github_token ? `<button class="btn btn-danger btn-sm" onclick="window.__app.clearGitHubToken()" aria-label="
|
|
96
|
+
<button class="btn btn-primary btn-sm" id="settings-github-btn" onclick="window.__app.saveGitHubToken()" aria-label="Save GitHub token"><span>Save Token</span></button>
|
|
97
|
+
${u.has_github_token ? `<button class="btn btn-danger btn-sm" onclick="window.__app.clearGitHubToken()" aria-label="Clear GitHub token">Clear Token</button>` : ''}
|
|
123
98
|
</div>
|
|
124
99
|
</div>
|
|
125
100
|
</div>
|
|
@@ -131,7 +106,7 @@ export async function saveProfile() {
|
|
|
131
106
|
const btn = document.getElementById('settings-profile-btn');
|
|
132
107
|
if (!displayName) {
|
|
133
108
|
if (errEl) {
|
|
134
|
-
errEl.textContent =
|
|
109
|
+
errEl.textContent = 'Display name cannot be empty';
|
|
135
110
|
errEl.style.display = 'block';
|
|
136
111
|
}
|
|
137
112
|
return;
|
|
@@ -142,7 +117,7 @@ export async function saveProfile() {
|
|
|
142
117
|
btn.disabled = true;
|
|
143
118
|
const sp = btn.querySelector('span');
|
|
144
119
|
if (sp)
|
|
145
|
-
sp.textContent =
|
|
120
|
+
sp.textContent = 'Saving…';
|
|
146
121
|
}
|
|
147
122
|
try {
|
|
148
123
|
const data = await api('PATCH', '/auth/profile', { displayName });
|
|
@@ -160,12 +135,12 @@ export async function saveProfile() {
|
|
|
160
135
|
const nameEl = document.getElementById('user-name-display');
|
|
161
136
|
if (nameEl)
|
|
162
137
|
nameEl.textContent = u.display_name || u.email;
|
|
163
|
-
toast(
|
|
138
|
+
toast('Profile saved', 'success');
|
|
164
139
|
renderSettingsView();
|
|
165
140
|
}
|
|
166
141
|
catch (err) {
|
|
167
142
|
if (errEl) {
|
|
168
|
-
errEl.textContent =
|
|
143
|
+
errEl.textContent = err instanceof Error ? err.message : String(err);
|
|
169
144
|
errEl.style.display = 'block';
|
|
170
145
|
}
|
|
171
146
|
}
|
|
@@ -174,7 +149,7 @@ export async function saveProfile() {
|
|
|
174
149
|
btn.disabled = false;
|
|
175
150
|
const sp = btn.querySelector('span');
|
|
176
151
|
if (sp)
|
|
177
|
-
sp.textContent =
|
|
152
|
+
sp.textContent = 'Save Profile';
|
|
178
153
|
}
|
|
179
154
|
}
|
|
180
155
|
}
|
|
@@ -188,21 +163,21 @@ export async function changePassword() {
|
|
|
188
163
|
errEl.style.display = 'none';
|
|
189
164
|
if (!currentPassword || !newPassword || !confirmPassword) {
|
|
190
165
|
if (errEl) {
|
|
191
|
-
errEl.textContent =
|
|
166
|
+
errEl.textContent = 'All fields are required';
|
|
192
167
|
errEl.style.display = 'block';
|
|
193
168
|
}
|
|
194
169
|
return;
|
|
195
170
|
}
|
|
196
171
|
if (newPassword !== confirmPassword) {
|
|
197
172
|
if (errEl) {
|
|
198
|
-
errEl.textContent =
|
|
173
|
+
errEl.textContent = 'New passwords do not match';
|
|
199
174
|
errEl.style.display = 'block';
|
|
200
175
|
}
|
|
201
176
|
return;
|
|
202
177
|
}
|
|
203
178
|
if (newPassword.length < 6) {
|
|
204
179
|
if (errEl) {
|
|
205
|
-
errEl.textContent =
|
|
180
|
+
errEl.textContent = 'New password must be at least 6 characters';
|
|
206
181
|
errEl.style.display = 'block';
|
|
207
182
|
}
|
|
208
183
|
return;
|
|
@@ -211,11 +186,11 @@ export async function changePassword() {
|
|
|
211
186
|
btn.disabled = true;
|
|
212
187
|
const sp = btn.querySelector('span');
|
|
213
188
|
if (sp)
|
|
214
|
-
sp.textContent =
|
|
189
|
+
sp.textContent = 'Changing…';
|
|
215
190
|
}
|
|
216
191
|
try {
|
|
217
192
|
await api('POST', '/auth/change-password', { currentPassword, newPassword });
|
|
218
|
-
toast(
|
|
193
|
+
toast('Password changed successfully', 'success');
|
|
219
194
|
const curEl = document.getElementById('settings-current-pw');
|
|
220
195
|
const newEl = document.getElementById('settings-new-pw');
|
|
221
196
|
const confEl = document.getElementById('settings-confirm-pw');
|
|
@@ -228,7 +203,7 @@ export async function changePassword() {
|
|
|
228
203
|
}
|
|
229
204
|
catch (err) {
|
|
230
205
|
if (errEl) {
|
|
231
|
-
errEl.textContent =
|
|
206
|
+
errEl.textContent = err instanceof Error ? err.message : String(err);
|
|
232
207
|
errEl.style.display = 'block';
|
|
233
208
|
}
|
|
234
209
|
}
|
|
@@ -237,7 +212,7 @@ export async function changePassword() {
|
|
|
237
212
|
btn.disabled = false;
|
|
238
213
|
const sp = btn.querySelector('span');
|
|
239
214
|
if (sp)
|
|
240
|
-
sp.textContent =
|
|
215
|
+
sp.textContent = 'Change Password';
|
|
241
216
|
}
|
|
242
217
|
}
|
|
243
218
|
}
|
|
@@ -247,7 +222,7 @@ export async function saveGitHubToken() {
|
|
|
247
222
|
const btn = document.getElementById('settings-github-btn');
|
|
248
223
|
if (!token) {
|
|
249
224
|
if (errEl) {
|
|
250
|
-
errEl.textContent =
|
|
225
|
+
errEl.textContent = 'Please enter a token';
|
|
251
226
|
errEl.style.display = 'block';
|
|
252
227
|
}
|
|
253
228
|
return;
|
|
@@ -258,17 +233,17 @@ export async function saveGitHubToken() {
|
|
|
258
233
|
btn.disabled = true;
|
|
259
234
|
const sp = btn.querySelector('span');
|
|
260
235
|
if (sp)
|
|
261
|
-
sp.textContent =
|
|
236
|
+
sp.textContent = 'Saving…';
|
|
262
237
|
}
|
|
263
238
|
try {
|
|
264
239
|
const data = await api('PATCH', '/auth/github-token', { token });
|
|
265
240
|
state.user.has_github_token = data.hasToken !== undefined ? data.hasToken : true;
|
|
266
|
-
toast(
|
|
241
|
+
toast('GitHub token saved', 'success');
|
|
267
242
|
renderSettingsView();
|
|
268
243
|
}
|
|
269
244
|
catch (err) {
|
|
270
245
|
if (errEl) {
|
|
271
|
-
errEl.textContent =
|
|
246
|
+
errEl.textContent = err instanceof Error ? err.message : String(err);
|
|
272
247
|
errEl.style.display = 'block';
|
|
273
248
|
}
|
|
274
249
|
}
|
|
@@ -277,21 +252,21 @@ export async function saveGitHubToken() {
|
|
|
277
252
|
btn.disabled = false;
|
|
278
253
|
const sp = btn.querySelector('span');
|
|
279
254
|
if (sp)
|
|
280
|
-
sp.textContent =
|
|
255
|
+
sp.textContent = 'Save Token';
|
|
281
256
|
}
|
|
282
257
|
}
|
|
283
258
|
}
|
|
284
259
|
export function clearGitHubToken() {
|
|
285
|
-
confirmDialog(
|
|
260
|
+
confirmDialog('Clear GitHub Token?', 'Your GitHub integration will stop working.', async () => {
|
|
286
261
|
try {
|
|
287
262
|
const data = await api('PATCH', '/auth/github-token', { token: '' });
|
|
288
263
|
state.user.has_github_token = false;
|
|
289
|
-
toast(
|
|
264
|
+
toast('GitHub token cleared', 'success');
|
|
290
265
|
renderSettingsView();
|
|
291
266
|
}
|
|
292
267
|
catch (err) {
|
|
293
|
-
toast(
|
|
268
|
+
toast(err instanceof Error ? err.message : String(err), 'error');
|
|
294
269
|
}
|
|
295
|
-
}
|
|
270
|
+
});
|
|
296
271
|
}
|
|
297
272
|
//# sourceMappingURL=settings.js.map
|
|
@@ -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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"}
|