Workspace: Aufgaben bearbeiten, Personenverwaltung im Browser
Aufgaben: - Bearbeiten-Dialog (Titel, Beschreibung, Prioritaet, Frist, Zuordnung). Als natives <dialog>: Fokusfang, Esc zum Schliessen und Abdunklung ohne eigenen Code. - Loeschen nur fuer Management, mit Rueckfrage und Protokolleintrag. Das Konzept will, dass Erledigtes stehen bleibt -- Loeschen ist der Ausnahmefall fuer Fehleintraege, nicht der normale Abschluss. Personen (/workspace/personen.html, nur Management): - Anlegen, Code erneuern, sperren/entsperren, Protokollansicht - Der Code wird genau einmal in der Antwort zurueckgegeben, nie gespeichert; beim Schliessen auch aus dem Dokument entfernt - Selbstschutz: niemand kann sich selbst sperren, und das letzte aktive Management laesst sich nicht sperren -- sonst kaeme niemand mehr hinein - Code fuer sich selbst tauschen nur mit ausdruecklicher Bestaetigung, weil es die eigene Sitzung sofort beendet Zwei Fehler, die beim Testen aufgefallen sind: 1. Rollenpruefung fehlte beim Ausliefern der Seiten. Ein Creator bekam personen.html mit HTTP 200 -- die Schnittstellen wiesen ihn zwar ab, das Geruest der Seite war aber sichtbar. GESCHUETZT ist jetzt eine Zuordnung Pfad -> erlaubte Rollen statt einer blossen Liste. 2. Das Protokoll nannte den falschen Verursacher. personAnlegen trug die NEU ANGELEGTE Person als person_id ein, der Eintrag las sich also so, als haette sie sich selbst angelegt. Akteur und Betroffener sind jetzt getrennt: Akteur in person_id, Betroffener im Text. Ueber die Kommandozeile angelegte Personen zeigen korrekt keinen Akteur.
This commit is contained in:
@@ -81,6 +81,53 @@
|
||||
|
||||
</main>
|
||||
|
||||
<!-- Bearbeiten. Als natives <dialog>: bringt Fokusfang, Schließen mit Esc
|
||||
und die Abdunklung des Hintergrunds ohne eigenen Code mit. -->
|
||||
<dialog class="dialog" id="bearbeiten-dialog">
|
||||
<form method="dialog" id="bearbeiten" class="neu neu--blank">
|
||||
<h2 class="dialog__titel">Aufgabe bearbeiten</h2>
|
||||
|
||||
<div class="neu__zeile">
|
||||
<label class="feld-schild" for="b-titel">Titel</label>
|
||||
<input id="b-titel" maxlength="160" required />
|
||||
</div>
|
||||
<div class="neu__zeile">
|
||||
<label class="feld-schild" for="b-text">Beschreibung</label>
|
||||
<textarea id="b-text" rows="3" maxlength="4000"></textarea>
|
||||
</div>
|
||||
<div class="neu__raster">
|
||||
<div>
|
||||
<label class="feld-schild" for="b-prio">Priorität</label>
|
||||
<select id="b-prio">
|
||||
<option value="hoch">hoch</option>
|
||||
<option value="mittel">mittel</option>
|
||||
<option value="niedrig">niedrig</option>
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<label class="feld-schild" for="b-frist">Frist</label>
|
||||
<input id="b-frist" type="date" />
|
||||
</div>
|
||||
<div id="b-feld-creator" hidden>
|
||||
<label class="feld-schild" for="b-creator">Bereich von</label>
|
||||
<select id="b-creator"><option value="">—</option></select>
|
||||
</div>
|
||||
<div id="b-feld-verant" hidden>
|
||||
<label class="feld-schild" for="b-verant">Verantwortlich</label>
|
||||
<select id="b-verant"><option value="">—</option></select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="fehler" id="b-fehler" role="alert" aria-live="polite"></p>
|
||||
|
||||
<div class="dialog__knoepfe">
|
||||
<button type="button" class="knopf knopf--klein" id="b-speichern">Speichern</button>
|
||||
<button type="button" class="abmelden" id="b-abbrechen">Abbrechen</button>
|
||||
<button type="button" class="abmelden abmelden--warnung" id="b-loeschen" hidden>Löschen</button>
|
||||
</div>
|
||||
</form>
|
||||
</dialog>
|
||||
|
||||
<script src="assets/js/aufgaben.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user