Consistent OIDC layout, admin app spacing. UX tuneup.

This commit is contained in:
Leo Vasanko
2026-02-17 14:13:03 +00:00
parent 7c75947662
commit 3a05120d06
2 changed files with 27 additions and 50 deletions
-1
View File
@@ -1031,7 +1031,6 @@ async function submitDialog() {
<style scoped>
.view-admin { padding-bottom: var(--space-3xl); }
.admin-section { margin-top: var(--space-xl); }
.admin-section-body { display: flex; flex-direction: column; gap: var(--space-xl); }
.admin-panels { display: flex; flex-direction: column; gap: var(--space-xl); }
</style>
+27 -49
View File
@@ -114,15 +114,14 @@ defineExpose({ focusFirstElement })
<template>
<div class="oidc-detail">
<div class="oidc-header" ref="headerRef" @keydown="handleHeaderKeydown">
<h2>{{ isNew ? 'New OIDC Client' : (client?.name || 'OIDC Client') }}</h2>
</div>
<form @submit.prevent="handleSave" class="oidc-form">
<!-- Client credentials section -->
<section class="oidc-credentials">
<h3>Client Credentials</h3>
<p class="section-description">Configure these values in the client application.</p>
<section class="section-block">
<div class="section-header">
<h2>Client Configuration</h2>
<p class="section-description">Configure these values in the client application.</p>
</div>
<div class="section-body">
<dl class="oidc-dl">
<dt>Authentication Name</dt>
@@ -131,7 +130,7 @@ defineExpose({ focusFirstElement })
<span class="small muted"> (Login With, may affect URLs optional)</span>
</dd>
<dt>Discovery URL</dt>
<dt>Auto Discovery URL</dt>
<dd><output @click="copyText(discoveryUrl, 'OpenID Connect Discovery URL')" title="Click to copy">{{ discoveryUrl }}</output></dd>
<dt>Client ID</dt>
@@ -144,9 +143,9 @@ defineExpose({ focusFirstElement })
</dd>
<template v-if="clientGroups.length">
<dt>Groups Name</dt>
<dt>Groups Claim Name</dt>
<dd>
<output @click="copyText('groups', 'Groups Name')" title="Click to copy">groups</output>
<output @click="copyText('groups', 'Groups Claim Name')" title="Click to copy">groups</output>
</dd>
</template>
@@ -159,16 +158,19 @@ defineExpose({ focusFirstElement })
</dd>
</dl>
<p v-if="clientSecret && isNew" class="warning-text"><strong> Save the secret now it cannot be retrieved later.</strong></p>
<p v-else-if="clientSecret && !isNew" class="warning-text"><strong> Saving will prevent access with the old secret.</strong></p>
<span class="warning-text">
<strong v-if="clientSecret"> {{ isNew ? 'Save the secret now it cannot be retrieved later.' : 'Saving will prevent access with the old secret.' }}</strong>
<span v-else> The client may use groups to check for required permissions.</span>
</span>
</div>
</section>
<hr class="oidc-divider" />
<!-- Editable fields -->
<section class="oidc-settings">
<h3>Client Settings</h3>
<section class="section-block">
<div class="section-header">
<h2>Paskia Configuration</h2>
</div>
<div class="section-body">
<label>Client Name
<input v-model="name" placeholder="My Application" required />
</label>
@@ -177,6 +179,7 @@ defineExpose({ focusFirstElement })
<p class="small muted">This should be provided by the client application.</p>
<textarea v-model="redirectUris" placeholder="(autodiscover one on first use)" rows="3"></textarea>
</label>
</div>
</section>
<!-- Actions -->
@@ -191,11 +194,13 @@ defineExpose({ focusFirstElement })
<style scoped>
.oidc-detail {
max-width: 600px;
display: flex;
flex-direction: column;
gap: var(--space-lg);
}
.oidc-header {
margin-bottom: var(--space-lg);
margin-bottom: 0;
}
.oidc-header h2 {
@@ -208,28 +213,6 @@ defineExpose({ focusFirstElement })
gap: var(--space-lg);
}
.oidc-credentials,
.oidc-settings {
display: flex;
flex-direction: column;
gap: var(--space-sm);
}
.oidc-credentials h3,
.oidc-settings h3 {
margin: 0 0 var(--space-xs) 0;
font-size: 1rem;
display: flex;
align-items: center;
gap: var(--space-sm);
}
.section-description {
margin: 0;
font-size: 0.85rem;
color: var(--color-text-muted);
}
.oidc-dl {
display: grid;
grid-template-columns: auto 1fr;
@@ -261,20 +244,15 @@ defineExpose({ focusFirstElement })
}
.warning-text {
display: block;
font-size: 0.9rem;
margin: var(--space-sm) 0 0 0;
min-height: 1.4em;
}
.oidc-group { display: block; }
.oidc-group { white-space: normal; word-break: break-all; }
.oidc-divider {
border: none;
border-top: 1px solid var(--color-border);
margin: var(--space-sm) 0;
}
.oidc-settings label {
.section-body label {
display: flex;
flex-direction: column;
gap: var(--space-xs);