refactor(settings/general): drop redundant blockquotes, collapse 3 cards into 2

App-title and language sit in one App identity card now (both single-field
sections; separate cards were chrome-heavy). The trivial info blockquotes
that paraphrased the field labels are gone, and the per-field descriptions
on the user creation defaults dropped because the section blockquote
already says when the values apply. The "User creation rules" label is
renamed to "User creation defaults" so the card title matches its scope.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-25 09:11:48 +02:00
parent fdbf30379c
commit 5d5cce7ad5
3 changed files with 30 additions and 51 deletions

View File

@@ -1283,7 +1283,7 @@
"User can not be registered": "Benutzer kann nicht registriert werden", "User can not be registered": "Benutzer kann nicht registriert werden",
"User can not be updated": "Benutzer kann nicht aktualisiert werden", "User can not be updated": "Benutzer kann nicht aktualisiert werden",
"User created": "Benutzer erstellt", "User created": "Benutzer erstellt",
"User creation rules": "Benutzeranlage-Regeln", "User creation defaults": "Standardwerte für Benutzeranlage",
"User custom fields": "Benutzerzusatzfelder", "User custom fields": "Benutzerzusatzfelder",
"User deleted": "Benutzer gelöscht", "User deleted": "Benutzer gelöscht",
"User ID": "Benutzer-ID", "User ID": "Benutzer-ID",

View File

@@ -1283,7 +1283,7 @@
"User can not be registered": "User can not be registered", "User can not be registered": "User can not be registered",
"User can not be updated": "User can not be updated", "User can not be updated": "User can not be updated",
"User created": "User created", "User created": "User created",
"User creation rules": "User creation rules", "User creation defaults": "User creation defaults",
"User custom fields": "User custom fields", "User custom fields": "User custom fields",
"User deleted": "User deleted", "User deleted": "User deleted",
"User ID": "User ID", "User ID": "User ID",

View File

@@ -18,9 +18,6 @@ $defaultRoleId = (int) ($values['default_role_id'] ?? 0);
$defaultDepartmentId = (int) ($values['default_department_id'] ?? 0); $defaultDepartmentId = (int) ($values['default_department_id'] ?? 0);
$appTitle = (string) ($values['app_title'] ?? ''); $appTitle = (string) ($values['app_title'] ?? '');
$appLocale = (string) ($values['app_locale'] ?? ''); $appLocale = (string) ($values['app_locale'] ?? '');
$defaultTenantDesc = $settings['default_tenant']['description'] ?? 'setting.default_tenant';
$defaultRoleDesc = $settings['default_role']['description'] ?? 'setting.default_role';
$defaultDepartmentDesc = $settings['default_department']['description'] ?? 'setting.default_department';
$appTitleDesc = $settings['app_title']['description'] ?? 'setting.app_title'; $appTitleDesc = $settings['app_title']['description'] ?? 'setting.app_title';
$appLocaleDesc = $settings['app_locale']['description'] ?? 'setting.app_locale'; $appLocaleDesc = $settings['app_locale']['description'] ?? 'setting.app_locale';
$locales = defined('APP_LOCALES') ? APP_LOCALES : []; $locales = defined('APP_LOCALES') ? APP_LOCALES : [];
@@ -63,59 +60,44 @@ $disabledAttr = $isReadOnly ? 'disabled' : '';
<span class="app-details-card-summary-title"><?php e(t('App identity')); ?></span> <span class="app-details-card-summary-title"><?php e(t('App identity')); ?></span>
<span class="app-details-card-summary-meta"> <span class="app-details-card-summary-meta">
<span class="badge" data-variant="neutral"><?php e($appTitle !== '' ? t('Configured') : t('Default')); ?></span> <span class="badge" data-variant="neutral"><?php e($appTitle !== '' ? t('Configured') : t('Default')); ?></span>
</span>
</summary>
<div class="app-details-card-container">
<blockquote data-variant="info">
<small><?php e(t('This setting controls the application name shown across the UI.')); ?></small>
</blockquote>
<label class="app-field">
<span><?php e(t('App title')); ?> <span class="badge" data-variant="info"><?php e(t('Cached')); ?></span></span>
<input type="text" name="app_title" value="<?php e($appTitle); ?>" placeholder="<?php e(appTitle()); ?>" <?php e($readonlyAttr); ?>>
<small><?php e(t($appTitleDesc)); ?></small>
<small class="muted"><?php e(t('Leave empty to use the runtime default title.')); ?></small>
</label>
</div>
</details>
<details class="app-details-card" name="internationalization" data-details-key="internationalization">
<summary>
<span class="app-details-card-summary-title"><?php e(t('Internationalization')); ?></span>
<span class="app-details-card-summary-meta">
<span class="badge" data-variant="neutral"><?php e($appLocale !== '' ? strtoupper($appLocale) : t('Default')); ?></span> <span class="badge" data-variant="neutral"><?php e($appLocale !== '' ? strtoupper($appLocale) : t('Default')); ?></span>
</span> </span>
</summary> </summary>
<div class="app-details-card-container"> <div class="app-details-card-container">
<blockquote data-variant="info"> <div class="grid">
<small><?php e(t('This setting controls the default language for users without a personal preference.')); ?></small> <label class="app-field">
</blockquote> <span><?php e(t('App title')); ?> <span class="badge" data-variant="info"><?php e(t('Cached')); ?></span></span>
<label class="app-field"> <input type="text" name="app_title" value="<?php e($appTitle); ?>" placeholder="<?php e(appTitle()); ?>" <?php e($readonlyAttr); ?>>
<span><?php e(t('Default language')); ?> <span class="badge" data-variant="info"><?php e(t('Cached')); ?></span></span> <small><?php e(t($appTitleDesc)); ?></small>
<select name="app_locale" <?php e($disabledAttr); ?>> </label>
<option value=""><?php e(t('None')); ?></option> <label class="app-field">
<?php foreach ($locales as $locale): ?> <span><?php e(t('Default language')); ?> <span class="badge" data-variant="info"><?php e(t('Cached')); ?></span></span>
<?php <select name="app_locale" <?php e($disabledAttr); ?>>
$label = strtoupper($locale); <option value=""><?php e(t('None')); ?></option>
if ($locale === 'de') { <?php foreach ($locales as $locale): ?>
$label = t('German'); <?php
} elseif ($locale === 'en') { $label = strtoupper($locale);
$label = t('English'); if ($locale === 'de') {
} $label = t('German');
?> } elseif ($locale === 'en') {
<option value="<?php e($locale); ?>" <?php e($appLocale === $locale ? 'selected' : ''); ?>> $label = t('English');
<?php e($label); ?> }
</option> ?>
<?php endforeach; ?> <option value="<?php e($locale); ?>" <?php e($appLocale === $locale ? 'selected' : ''); ?>>
</select> <?php e($label); ?>
<small><?php e(t($appLocaleDesc)); ?></small> </option>
</label> <?php endforeach; ?>
</select>
<small><?php e(t($appLocaleDesc)); ?></small>
</label>
</div>
</div> </div>
</details> </details>
<?php $configuredDefaultsCount = (int) ($defaultTenantId > 0) + (int) ($defaultDepartmentId > 0) + (int) ($defaultRoleId > 0); ?> <?php $configuredDefaultsCount = (int) ($defaultTenantId > 0) + (int) ($defaultDepartmentId > 0) + (int) ($defaultRoleId > 0); ?>
<details class="app-details-card" name="user-creation" data-details-key="user-creation"> <details class="app-details-card" name="user-creation" data-details-key="user-creation">
<summary> <summary>
<span class="app-details-card-summary-title"><?php e(t('User creation rules')); ?></span> <span class="app-details-card-summary-title"><?php e(t('User creation defaults')); ?></span>
<span class="app-details-card-summary-meta"> <span class="app-details-card-summary-meta">
<span class="badge" data-variant="neutral"><?php e(sprintf(t('%d defaults configured'), $configuredDefaultsCount)); ?></span> <span class="badge" data-variant="neutral"><?php e(sprintf(t('%d defaults configured'), $configuredDefaultsCount)); ?></span>
</span> </span>
@@ -138,7 +120,6 @@ $disabledAttr = $isReadOnly ? 'disabled' : '';
<?php endif; ?> <?php endif; ?>
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
<small><?php e(t($defaultTenantDesc)); ?></small>
</label> </label>
<label class="app-field"> <label class="app-field">
<span><?php e(t('Default department')); ?></span> <span><?php e(t('Default department')); ?></span>
@@ -153,7 +134,6 @@ $disabledAttr = $isReadOnly ? 'disabled' : '';
<?php endif; ?> <?php endif; ?>
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
<small><?php e(t($defaultDepartmentDesc)); ?></small>
</label> </label>
</div> </div>
<label class="app-field"> <label class="app-field">
@@ -169,7 +149,6 @@ $disabledAttr = $isReadOnly ? 'disabled' : '';
<?php endif; ?> <?php endif; ?>
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
<small><?php e(t($defaultRoleDesc)); ?></small>
</label> </label>
</div> </div>
</details> </details>