neue Archivfunktion und Optimierung an Artikelbearbeitung
This commit is contained in:
@@ -91,6 +91,35 @@ export async function adminView(root, { back }) {
|
||||
);
|
||||
}
|
||||
|
||||
/** Steht bei den Konten, nicht bei der Bereinigung: Es geht darum,
|
||||
* WER hinzukommen darf - das gehört zur Kontenverwaltung. */
|
||||
function registrationToggle() {
|
||||
const box = el("input", {
|
||||
type: "checkbox",
|
||||
checked: config.allow_self_registration,
|
||||
disabled: config.locked_by_env,
|
||||
onchange: (ev) => guarded(async () => {
|
||||
await put("/api/admin/settings", {
|
||||
allow_self_registration: ev.target.checked,
|
||||
});
|
||||
say(ev.target.checked
|
||||
? "Selbstregistrierung eingeschaltet."
|
||||
: "Selbstregistrierung abgeschaltet – Zugang nur noch per Einladung.");
|
||||
}),
|
||||
});
|
||||
|
||||
return el("div.reg-toggle", {},
|
||||
el("label.checkline", {}, box,
|
||||
el("span", {}, "Selbstregistrierung erlauben")),
|
||||
config.locked_by_env
|
||||
? el("p.sub", {},
|
||||
"Über die Umgebungsvariable ALLOW_SELF_REGISTRATION festgelegt " +
|
||||
"und hier nicht änderbar.")
|
||||
: el("p.sub", {},
|
||||
"Ist sie aus, kommen neue Personen nur über „Konto anlegen“ " +
|
||||
"oder eine Listeneinladung hinein."));
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// Neues Konto
|
||||
// -------------------------------------------------------------------
|
||||
@@ -275,12 +304,14 @@ export async function adminView(root, { back }) {
|
||||
type: "number", min: "0", max: "600",
|
||||
value: String(config.auto_delete_months),
|
||||
});
|
||||
const selfReg = el("input", {
|
||||
type: "checkbox",
|
||||
checked: config.allow_self_registration,
|
||||
disabled: config.locked_by_env,
|
||||
const archive = el("input.months", {
|
||||
type: "number", min: "0", max: "600",
|
||||
value: String(config.auto_archive_months),
|
||||
});
|
||||
const archiveDelete = el("input.months", {
|
||||
type: "number", min: "0", max: "600",
|
||||
value: String(config.archive_delete_months),
|
||||
});
|
||||
|
||||
return el("section.card", {},
|
||||
el("h2", {}, "Automatische Bereinigung"),
|
||||
el("p.lead", {},
|
||||
@@ -293,13 +324,17 @@ export async function adminView(root, { back }) {
|
||||
el("label", {}, "Löschen nach … Monaten Deaktivierung"),
|
||||
remove,
|
||||
|
||||
el("label.checkline", {}, selfReg,
|
||||
el("span", {}, "Selbstregistrierung erlauben")),
|
||||
config.locked_by_env
|
||||
? el("p.sub", {},
|
||||
"Über die Umgebungsvariable ALLOW_SELF_REGISTRATION festgelegt " +
|
||||
"und hier nicht änderbar.")
|
||||
: null,
|
||||
el("h3.device-heading", {}, "Listen"),
|
||||
el("label", {}, "Archivieren nach … Monaten ohne Öffnen"),
|
||||
archive,
|
||||
el("p.sub", {},
|
||||
"Gilt je Person: Die Liste verschwindet nur aus der Übersicht " +
|
||||
"derjenigen, die sie nicht geöffnet hat."),
|
||||
el("label", {}, "Löschen nach … Monaten im Archiv"),
|
||||
archiveDelete,
|
||||
el("p.sub", {},
|
||||
"Maßgeblich ist allein das Archivdatum des Eigentümers. Er wird " +
|
||||
"7 Tage und 1 Tag vorher per E-Mail gewarnt."),
|
||||
|
||||
el("button.primary", {
|
||||
type: "button",
|
||||
@@ -307,9 +342,8 @@ export async function adminView(root, { back }) {
|
||||
await put("/api/admin/settings", {
|
||||
auto_deactivate_months: Number(deactivate.value) || 0,
|
||||
auto_delete_months: Number(remove.value) || 0,
|
||||
...(config.locked_by_env
|
||||
? {}
|
||||
: { allow_self_registration: selfReg.checked }),
|
||||
auto_archive_months: Number(archive.value) || 0,
|
||||
archive_delete_months: Number(archiveDelete.value) || 0,
|
||||
});
|
||||
say("Einstellungen gespeichert.");
|
||||
}),
|
||||
@@ -335,6 +369,7 @@ export async function adminView(root, { back }) {
|
||||
statsCard(),
|
||||
el("section.card", {},
|
||||
el("h2", {}, "Konten"),
|
||||
registrationToggle(),
|
||||
el("ul.admin-users", {}, users.map(userRow))),
|
||||
createCard(),
|
||||
automationCard()
|
||||
|
||||
Reference in New Issue
Block a user