Files
dogfather-universe/workspace/automation.html
T
DogFatherGitandClaude Opus 5 63036fc33e Wiederholungen bekommen eine eigene Tafel -- und nur den laufenden Monat
Filipe: "ich will da auch noch eine kategorie fuer automatische
wiederholungen. die sollen dann auch nur fuer den monat selbst
angezeigt werden und nicht monate im voraus."

DAS PROBLEM WAR ECHT UND GROSS, UND ES STAND SEIT TAGEN AUF SEINEM
BILDSCHIRM

Der Nachfueller haelt einen Horizont von 180 Tagen gefuellt (siehe
workspace-serien.js). Ein woechentlicher Community-Talk ergibt darin
sechsundzwanzig Zeilen -- und alle standen unter "Steht an". Auf dem
Bild waren es siebenundzwanzig Karten, fast alle derselbe Termin. Die
Liste war damit unbrauchbar fuer genau das, wofuer sie da ist: zu
sehen, was WIRKLICH ansteht.

Jetzt sind es zwei getrennte Fragen:

  STEHT AN            was einmalig bevorsteht
  LAEUFT AUTOMATISCH  was von allein wiederkommt -- und davon nur der
                      LAUFENDE MONAT

Der Monatsschnitt ist die eigentliche Antwort auf "nicht Monate im
Voraus": Eine Wiederholung im November sagt einem heute nichts, was man
nicht schon weiss. Wer weiter schauen will, hat den Kalender -- und
genau das steht als Satz in der Gruppe.

Gerechnet wird auf dem reinen Datumstext (`beginn` beginnt mit
JJJJ-MM), nicht mit `new Date`. Kein Zeitzonenfehler, kein Nachtfehler.
Die Trennung faellt im SERVER, nicht in der Oberflaeche: Eine zweite
Regel im Browser waere die sichere Zusage, dass beide auseinanderlaufen.

DREI AUSSAGEN STATT EINER

pruef-call-kategorien saet jetzt zwei Auspraegungen derselben Serie --
eine in vier, eine in sechzig Tagen -- und misst:

  1. die Wiederholung dieses Monats steht in "Laeuft automatisch"
  2. die des naechsten Monats NICHT
  3. und unter "Steht an" steht keine von beiden

Vorher wird geprueft, dass die beiden ueberhaupt in verschiedenen
Monaten liegen. Ohne diese Zeile waere Nummer 2 an einem 1. des Monats
trivial erfuellt -- gruen, ohne etwas gemessen zu haben.

Zwei Fehler beim Bau der Pruefung, beide von ihr selbst gemeldet:
`page.evaluate` lief in "Target page has been closed" (der Block davor
schliesst seinen Browserkontext -- diese Aussage braucht ohnehin keinen
Browser, sie betrifft die Schnittstelle), und eine Hilfsfunktion stand
nach ihrer ersten Benutzung.

pruef-call-kategorien von 17 auf 22. Neun Pruefungen gelaufen, alle
gruen.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-07 23:26:38 +02:00

145 lines
5.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<title>Automationen · Creator Workspace</title>
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#0674b9" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609072322" />
<link rel="stylesheet" href="assets/css/start.css?v=202609072322" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609072322" />
<link rel="stylesheet" href="assets/css/automation.css?v=202609072322" />
<link rel="stylesheet" href="assets/css/module.css?v=202609072322" />
</head>
<body class="start">
<!-- Der Schleier ueber der Buehne (Casper und HasiDog in den unteren
Ecken, siehe start.css). Ein eigenes Element statt eines dritten
Pseudo-Elements -- body hat nur ::before und ::after. -->
<div class="schleier" aria-hidden="true"></div>
<header class="kopfleiste">
<button type="button" class="zurueck-knopf" id="zurueck" hidden>
<svg class="zurueck-knopf__pfeil" viewBox="0 0 24 24" aria-hidden="true">
<path d="M14.5 5.5 8 12l6.5 6.5" />
</svg>
<span class="zurueck-knopf__text">Zurück</span>
</button>
<p class="marke"><span class="marke__text"><a class="zurueck" href="start.html">Creator&nbsp;Workspace</a> · Automationen</span></p>
<div class="kopfleiste__rechts">
<span class="wer" id="wer">…</span>
<button type="button" class="abmelden" id="abmelden">Abmelden</button>
</div>
</header>
<main class="inhalt inhalt--breit">
<section class="kopf-zeile">
<div>
<p class="marke">Was von allein passiert</p>
<h1 class="titel">Automationen</h1>
<p class="unterzeile">
Alles hier läuft ohne Zutun. Diese Seite zeigt, was gerade greift –
und wo du es abschalten kannst.
</p>
</div>
</section>
<p class="fehler" id="fehler" role="alert" aria-live="polite"></p>
<!-- Die KI ist die einzige Automation mit Schalter: Sie kostet
Rechenzeit, die der Website gehört. -->
<section class="ki-kasten" id="ki-kasten">
<div class="ki-kasten__kopf">
<div>
<p class="marke">Lokale KI</p>
<h2 class="ki-kasten__titel">Vorschläge in Calls, Start-Check und Report</h2>
<p class="ki-kasten__text" id="ki-text">Zustand wird geprüft …</p>
</div>
<label class="schalter" id="ki-schalter-block" hidden>
<input type="checkbox" id="ki-schalter" />
<span class="schalter__gleis"><span class="schalter__punkt"></span></span>
<span class="schalter__text"><strong id="ki-schalter-text">Angeschaltet</strong></span>
</label>
</div>
<ul class="ki-kasten__daten" id="ki-daten"></ul>
</section>
<!-- Was gerade tatsächlich anliegt: dieselbe Quelle wie auf dem
Dashboard, hier aber vollständig statt gekürzt. -->
<section class="block">
<div class="block__kopf">
<h2 class="block__titel">Was gerade anliegt</h2>
<span class="block__zahl" id="hinweis-zahl">–</span>
</div>
<p class="block__frage">
Dieselben Hinweise wie auf der Übersicht, hier vollständig. Sie führen keine
eigene Liste – jeder verschwindet, sobald die Sache erledigt ist.
</p>
<div id="hinweise"><p class="leise">Wird geprüft …</p></div>
</section>
<!-- Sicherung und Zustand. Steht bewusst weit oben: Es ist die einzige
Automation, deren Ausfall alles auf einmal kosten würde. -->
<section class="zustand" id="zustand-kasten">
<div class="zustand__kopf">
<div>
<p class="marke">Sicherung &amp; Zustand</p>
<h2 class="zustand__titel" id="zustand-titel">Wird geprüft …</h2>
<p class="zustand__text" id="zustand-text"></p>
</div>
<button type="button" class="knopf knopf--klein" id="jetzt-sichern">Jetzt sichern</button>
</div>
<ul class="zustand__daten" id="zustand-daten"></ul>
<div class="klapp-kopf zustand__listenkopf">
<p class="feldschild">Vorhandene Sicherungen</p>
<button type="button" class="knopf-still" id="sicherungen-schalter"
aria-expanded="false" aria-controls="sicherungen" hidden>
<span id="sicherungen-schalter-text">Alle zeigen</span>
<svg class="klapp-pfeil" viewBox="0 0 24 24" aria-hidden="true">
<path d="m6 9.5 6 6 6-6" />
</svg>
</button>
</div>
<div id="sicherungen" data-klapp="zu"></div>
</section>
<section class="block">
<div class="block__kopf">
<h2 class="block__titel">Läuft dauerhaft im Hintergrund</h2>
</div>
<div class="regeln" id="regeln"></div>
</section>
<section class="block">
<!-- Wie im Personen-Bereich: zugeklappt stehen nur die vier
neuesten Zeilen da, alles Weitere auf Knopfdruck. -->
<div class="block__kopf klapp-kopf">
<h2 class="block__titel">Zuletzt automatisch passiert</h2>
<button type="button" class="knopf-still" id="verlauf-schalter"
aria-expanded="false" aria-controls="verlauf" hidden>
<span id="verlauf-schalter-text">Alle zeigen</span>
<svg class="klapp-pfeil" viewBox="0 0 24 24" aria-hidden="true">
<path d="m6 9.5 6 6 6-6" />
</svg>
</button>
</div>
<p class="block__frage">Aus dem Protokoll – damit nachvollziehbar bleibt, was ohne Zutun geschah.</p>
<div id="verlauf"><p class="leise">Wird geladen …</p></div>
</section>
</main>
<script src="assets/js/wahl.js?v=202609072322" defer></script>
<script src="assets/js/bereiche.js?v=202609072322" defer></script>
<script src="assets/js/kopf.js?v=202609072322" defer></script>
<script src="assets/js/glocke.js?v=202609072322" defer></script>
<script src="assets/js/automation.js?v=202609072322" defer></script>
</body>
</html>