Die zwei Häuser sind getrennt -- und die Tür geht in beide Richtungen
Filipe: "ich will dass du zuerst die komplette site vn der workspace
seite trennst. da soll nichts verknüpft sein. wenn ich bei der einen
was mache soll nichts bei der anderen passieren. … es soll nur für
dogfather eine kachel geben wo er mit einem einfachen klick von der
einen auf die anderen seite kommt aber sonst garnichts."
Das kehrt die Entscheidung vom 10.09.2026 um ("getrennt wird das
AUSSEHEN, nicht der Bestand"). Wer den alten Kommentar liest, liest
einen überholten Stand -- das steht jetzt an jeder betroffenen Stelle.
WAS GEMESSEN WAR, BEVOR ETWAS GEBAUT WURDE
* Nur drei Module trennten nach Haus (Aufgaben, Bereiche, Dateien).
Chat, Kalender, Wissen, Material, Personenlisten und der Rest nicht.
* Die Trennung war EINSEITIG: nurHaus() griff nur auf crew.
* siehtModis() hebelte sie für DogFather auf der Agenturseite aus --
in seiner Gesprächsliste standen dort beide Häuser nebeneinander.
* Keine haus-Spalte in der Datenbank.
* Der Bestand kreuzte aber kaum: 0 von 86 Terminen gemischt, 0 von 7
Zweier-/Gruppengesprächen, genau EIN Kanal.
WAS JETZT DASTEHT
* Drei Rollenmengen in crew-adresse.js (crew / agentur / beide) und
hausVonRolle(); eine unbekannte Rolle bekommt null, kein Haus.
* Spalte `haus` an acht Wurzeltabellen, nachgetragen aus Belegen:
238 Zeilen eindeutig, die Wissensablage geschlossen der Agentur,
vier Restzeilen namentlich, der gemischte Kanal aufgelöst
(die zwei Scouts gehen heraus, die 7 Nachrichten sind alle vom
Team). Offen bleiben: null.
* nurHaus, hausBedingung und darfAnlegen gelten in BEIDE Richtungen.
* Der siehtModis-Durchgriff ist weg -- aber in DREI Fällen, nicht
zwei: Prüfadressen bekommen gar kein Haus und verhalten sich exakt
wie vorher. Die erste Fassung hatte das übersehen und 19 Prüfungen
umgeworfen, an denen nichts kaputt war.
* Kalender: getrennt, aber "belegt" bleibt (Filipes Entscheidung).
Die Blöcke tragen NUR Beginn und Dauer -- kein Titel, keine Person.
Gebaut als Gegenstück zur Liste (meine Termine MINUS die sichtbaren),
damit beide nicht auseinanderlaufen können.
* Die Wissens-Kachel ist auf der Team-Adresse weg UND die Route
antwortet dort mit 404 -- eine fehlende Kachel ist nur eine Bitte.
* Die Wechsel-Kachel für DogFather geht jetzt in beide Richtungen.
GEPRÜFT: pruef-haus-trennung 97 statt 81, 0 Fehler (vorher 7, alle
haben die alte Regel behauptet). Die neuen Abschnitte sind DORT
eingezogen statt in eine zweite Datei -- `pruef-haustrennung.mjs` hätte
sich von `pruef-haus-trennung.mjs` um einen Bindestrich unterschieden.
Dazu grün: haus-seiten, crew-adresse, chat, chat-kanaele,
kanal-besetzung, kalender, serien, treffchat, wissen-neu,
modi-checkliste, modi-katalog, rechtetafel, personen-liste, sicht,
verborgen, fremde-sicht, alle-wege.
NICHT VON MIR: pruef-treff (3) und pruef-kachel-universum (2) waren
schon vorher rot -- beim Treff auf dem Stand 40b48e89 nachgemessen,
bei den Farben steht dieselbe Zahl im Kopf der Prüfung selbst.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -73,6 +73,11 @@
|
||||
Brett vergessen, genau wie die Filterliste, die hier schon
|
||||
einmal stehengeblieben ist (siehe unten bei `zeigen`). */
|
||||
brett: 'Vom Brett',
|
||||
/* Der Name steht auch hier, damit Filterleiste und Beschriftung
|
||||
dieselbe Quelle haben. Ohne Eintrag hiesse der Block in der
|
||||
Leiste schlicht "belegt" in Kleinbuchstaben -- und niemand
|
||||
wuesste, dass man ihn abschalten kann. */
|
||||
belegt: 'Belegt (andere Seite)',
|
||||
};
|
||||
/* Jede Art trägt ihre eigene Farbe -- dieselbe Idee wie bei den Kacheln
|
||||
auf der Startseite: Die Farbe gehört zur Sache, nicht zum Rang. */
|
||||
@@ -112,6 +117,17 @@
|
||||
unterscheidet: nicht das helle Blau der Calls, nicht das Violett
|
||||
der Termine, nicht das Tuerkis der Collabs. */
|
||||
brett: '#7f9cc0',
|
||||
/* ==== BELEGT AUF DER ANDEREN SEITE (24.09.2026) ==================
|
||||
|
||||
Der leiseste Ton im ganzen Satz, und das ist Absicht: Ein
|
||||
belegter Block ist keine Verabredung, die man ansieht, sondern
|
||||
eine Stelle, an der man nichts hinlegt. Er soll auffallen, wenn
|
||||
man eine Zeit SUCHT, und sonst nicht.
|
||||
|
||||
Grau und nicht eine der neun Farben -- jede von ihnen hiesse
|
||||
„eine Art von Termin", und genau das ist hier nicht bekannt.
|
||||
Man weiss, DASS etwas ist, und nichts darueber, WAS. */
|
||||
belegt: '#5c6672',
|
||||
};
|
||||
/* Warum ein Zettel vom Brett im Kalender steht -- in Worten, die man
|
||||
ohne Erklaerung versteht. Die Schluessel kommen vom Server; steht
|
||||
@@ -540,6 +556,30 @@
|
||||
checkliste: t.checkliste_aufgaben ?? null,
|
||||
});
|
||||
}
|
||||
/* ==== DIE ZEITEN DER ANDEREN SEITE (24.09.2026) ==================
|
||||
|
||||
Filipe: „Getrennt, aber ‚belegt' bleibt sichtbar."
|
||||
|
||||
Der Server schickt hier NUR Beginn und Dauer -- kein Titel,
|
||||
keine Nummer, keine Person. Der Browser kann also gar nichts
|
||||
ueber die andere Seite verraten, selbst wenn er wollte: Es ist
|
||||
nicht da. Das ist der Grund, warum die Trennung im SERVER
|
||||
gemacht wird und nicht durch Weglassen beim Zeichnen.
|
||||
|
||||
KEINE `id` UND KEIN `ziel`: Damit ist der Block nicht anklickbar
|
||||
und bekommt in der Tagesansicht keine Knoepfe. Ein „erledigt" an
|
||||
einem fremden Termin waere eine Aenderung im anderen Haus --
|
||||
genau das, was nicht mehr passieren soll. */
|
||||
for (const b of roh.belegt || []) {
|
||||
raus.push({
|
||||
art: 'belegt', tag: b.beginn.slice(0, 10), uhr: b.beginn.slice(11, 16),
|
||||
titel: 'belegt', erledigt: false, id: null,
|
||||
farbe: ARTFARBE.belegt,
|
||||
zusatz: [b.dauer_min ? b.dauer_min + ' Min' : null,
|
||||
'auf der anderen Seite'].filter(Boolean).join(' · '),
|
||||
dauer_min: b.dauer_min,
|
||||
});
|
||||
}
|
||||
for (const f of roh.fristen || []) {
|
||||
raus.push({
|
||||
art: 'frist', tag: f.frist, uhr: null,
|
||||
@@ -1271,7 +1311,14 @@
|
||||
|
||||
Dasselbe gilt seit jeher fuer die Frist -- deshalb steht beides
|
||||
in EINER Bedingung und nicht in zwei: Es ist dieselbe Regel. */
|
||||
if (e.art === 'frist' || e.art === 'brett') {
|
||||
if (e.art === 'belegt') {
|
||||
/* KEIN KNOPF. Ein „erledigt" an einem Block der anderen Seite
|
||||
schickte `PATCH /workspace/api/termine/null` -- und waere,
|
||||
wenn es ginge, eine Aenderung im anderen Haus. Hier steht
|
||||
stattdessen der eine Satz, der alles sagt, was man wissen
|
||||
darf. */
|
||||
rechts.append(el('span', 'k-pille__zeit', 'auf der anderen Seite'));
|
||||
} else if (e.art === 'frist' || e.art === 'brett') {
|
||||
const a = el('a', 'schritt', e.art === 'brett' ? 'zum Brett' : 'zur Aufgabe');
|
||||
a.href = e.ziel || 'aufgaben.html';
|
||||
rechts.append(a);
|
||||
|
||||
Reference in New Issue
Block a user