mirror of
https://github.com/LD-Reborn/Berufsschule_HAM.git
synced 2025-12-20 06:51:55 +00:00
Added localization for Admin.cshtml, added url-based collapse state
This commit is contained in:
91
src/Resources/Views.Settings.Admin.resx
Normal file
91
src/Resources/Views.Settings.Admin.resx
Normal file
@@ -0,0 +1,91 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, ...</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, ...</value>
|
||||
</resheader>
|
||||
|
||||
<data name="Users" xml:space="preserve">
|
||||
<value>Benutzer</value>
|
||||
</data>
|
||||
|
||||
<data name="General settings" xml:space="preserve">
|
||||
<value>Allgemeine Einstellungen</value>
|
||||
</data>
|
||||
|
||||
<data name="Default hash algorithm" xml:space="preserve">
|
||||
<value>Standard-Hashalgorithmus</value>
|
||||
</data>
|
||||
|
||||
<data name="Barcode type" xml:space="preserve">
|
||||
<value>Barcode-Typ</value>
|
||||
</data>
|
||||
|
||||
<data name="Barcode text" xml:space="preserve">
|
||||
<value>Barcode-Text</value>
|
||||
</data>
|
||||
|
||||
<data name="Max downloadable user image size" xml:space="preserve">
|
||||
<value>Maximale Download-Größe für Benutzerbilder</value>
|
||||
</data>
|
||||
|
||||
<data name="Presets" xml:space="preserve">
|
||||
<value>Voreinstellungen</value>
|
||||
</data>
|
||||
|
||||
<data name="Preset name" xml:space="preserve">
|
||||
<value>Name der Voreinstellung</value>
|
||||
</data>
|
||||
|
||||
<data name="Attributes" xml:space="preserve">
|
||||
<value>Attribute</value>
|
||||
</data>
|
||||
|
||||
<data name="Name" xml:space="preserve">
|
||||
<value>Name</value>
|
||||
</data>
|
||||
|
||||
<data name="Value" xml:space="preserve">
|
||||
<value>Wert</value>
|
||||
</data>
|
||||
|
||||
<data name="Delete attribute" xml:space="preserve">
|
||||
<value>Attribut löschen</value>
|
||||
</data>
|
||||
|
||||
<data name="Add attribute" xml:space="preserve">
|
||||
<value>Attribut hinzufügen</value>
|
||||
</data>
|
||||
|
||||
<data name="Delete preset" xml:space="preserve">
|
||||
<value>Voreinstellung löschen</value>
|
||||
</data>
|
||||
|
||||
<data name="Add preset" xml:space="preserve">
|
||||
<value>Voreinstellung hinzufügen</value>
|
||||
</data>
|
||||
|
||||
<data name="Apply settings and update presets" xml:space="preserve">
|
||||
<value>Einstellungen übernehmen und Voreinstellungen aktualisieren</value>
|
||||
</data>
|
||||
|
||||
<data name="Settings updated successfully" xml:space="preserve">
|
||||
<value>Einstellungen erfolgreich aktualisiert</value>
|
||||
</data>
|
||||
|
||||
<data name="Unknown error" xml:space="preserve">
|
||||
<value>Unbekannter Fehler</value>
|
||||
</data>
|
||||
|
||||
<data name="Error contacting server" xml:space="preserve">
|
||||
<value>Fehler bei der Kommunikation mit dem Server</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -84,7 +84,7 @@
|
||||
</div>
|
||||
}
|
||||
<div class="row mb-2">
|
||||
<div class="col-md-4">
|
||||
<div class="col-md-8 mt-2">
|
||||
<button type="button" class="btn btn-danger" data-type="deletePreset">@T["Delete preset"]</button>
|
||||
</div>
|
||||
<div class="col-md-4 ms-auto mt-2">
|
||||
@@ -179,10 +179,38 @@
|
||||
}
|
||||
|
||||
document.querySelectorAll('[data-bs-toggle="collapse"]').forEach(toggler => {
|
||||
toggler.addEventListener('click', () => {
|
||||
toggler.addEventListener('click', async () => {
|
||||
const icon = toggler.querySelector('.chevron-svg');
|
||||
icon.classList.toggle('rotate');
|
||||
var target = document.querySelector(toggler.dataset.bsTarget);
|
||||
while (target.classList.contains('collapsing')) {
|
||||
await sleep(10);
|
||||
}
|
||||
icon.parentElement.classList.toggle("no-bottom-border");
|
||||
const collapseId = toggler.dataset.bsTarget.replace('#', '');
|
||||
const isCollapsed = target.classList.contains('show');
|
||||
// Update URL parameter
|
||||
const url = new URL(window.location);
|
||||
url.searchParams.set(collapseId, isCollapsed); // true = open, false = collapsed
|
||||
window.history.replaceState({}, '', url);
|
||||
});
|
||||
});
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const collapseElements = document.querySelectorAll('.collapse');
|
||||
|
||||
collapseElements.forEach(el => {
|
||||
const paramValue = new URL(window.location).searchParams.get(el.id);
|
||||
if (paramValue === 'true') {
|
||||
el.classList.add('show');
|
||||
const toggler = document.querySelector(`[data-bs-target="#${el.id}"]`);
|
||||
if (toggler) {
|
||||
toggler.querySelector('.chevron-svg')?.classList.add('rotate');
|
||||
toggler.classList.add('no-bottom-border');
|
||||
}
|
||||
} else {
|
||||
el.classList.remove('show');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -266,3 +266,7 @@ function unflatten(obj) {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function sleep(ms) {
|
||||
return new Promise(resolve => setTimeout(resolve, ms));
|
||||
}
|
||||
Reference in New Issue
Block a user