release(v1.8.9): fix(oidc, admin): first-save Client ID/Secret (closes #64)
This commit is contained in:
10
CHANGELOG.md
10
CHANGELOG.md
@@ -1,5 +1,15 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## Changes 11/7/2025 (v1.8.9)
|
||||||
|
|
||||||
|
release(v1.8.9): fix(oidc, admin): first-save Client ID/Secret (closes #64)
|
||||||
|
|
||||||
|
- adminPanel.js:
|
||||||
|
- Masked inputs without a saved value now start with data-replace="1".
|
||||||
|
- handleSave() now sends oidc.clientId / oidc.clientSecret on first save (no longer requires clicking “Replace” first).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Changes 11/7/2025 (v1.8.8)
|
## Changes 11/7/2025 (v1.8.8)
|
||||||
|
|
||||||
release(v1.8.8): background ZIP jobs w/ tokenized download + in‑modal progress bar; robust finalize; janitor cleanup — closes #60
|
release(v1.8.8): background ZIP jobs w/ tokenized download + in‑modal progress bar; robust finalize; janitor cleanup — closes #60
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ function wireHeaderTitleLive() {
|
|||||||
|
|
||||||
function renderMaskedInput({ id, label, hasValue, isSecret = false }) {
|
function renderMaskedInput({ id, label, hasValue, isSecret = false }) {
|
||||||
const type = isSecret ? 'password' : 'text';
|
const type = isSecret ? 'password' : 'text';
|
||||||
const disabled = hasValue ? 'disabled data-replace="0" placeholder="•••••• (saved)"' : '';
|
const disabled = hasValue ? 'disabled data-replace="0" placeholder="•••••• (saved)"' : 'data-replace="1"';
|
||||||
const replaceBtn = hasValue
|
const replaceBtn = hasValue
|
||||||
? `<button type="button" class="btn btn-sm btn-outline-secondary" data-replace-for="${id}">Replace</button>`
|
? `<button type="button" class="btn btn-sm btn-outline-secondary" data-replace-for="${id}">Replace</button>`
|
||||||
: '';
|
: '';
|
||||||
@@ -1070,11 +1070,15 @@ function handleSave() {
|
|||||||
const idEl = document.getElementById("oidcClientId");
|
const idEl = document.getElementById("oidcClientId");
|
||||||
const scEl = document.getElementById("oidcClientSecret");
|
const scEl = document.getElementById("oidcClientSecret");
|
||||||
|
|
||||||
if (idEl?.dataset.replace === '1' && idEl.value.trim() !== '') {
|
const idVal = idEl?.value.trim() || '';
|
||||||
payload.oidc.clientId = idEl.value.trim();
|
const secVal = scEl?.value.trim() || '';
|
||||||
|
const idFirstTime = idEl && !idEl.hasAttribute('data-replace'); // no saved value yet
|
||||||
|
const secFirstTime = scEl && !scEl.hasAttribute('data-replace'); // no saved value yet
|
||||||
|
if ((idEl?.dataset.replace === '1' || idFirstTime) && idVal !== '') {
|
||||||
|
payload.oidc.clientId = idVal;
|
||||||
}
|
}
|
||||||
if (scEl?.dataset.replace === '1' && scEl.value.trim() !== '') {
|
if ((scEl?.dataset.replace === '1' || secFirstTime) && secVal !== '') {
|
||||||
payload.oidc.clientSecret = scEl.value.trim();
|
payload.oidc.clientSecret = secVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ooSecretEl = document.getElementById("ooJwtSecret");
|
const ooSecretEl = document.getElementById("ooJwtSecret");
|
||||||
|
|||||||
Reference in New Issue
Block a user