Changeset 23da947 in Klonkt for src/assets/js/guardian.js


Ignore:
Timestamp:
08/07/2026 11:32:20 PM (5 weeks ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
9ce14b8
Parents:
9588b51
git-author:
Robin <roboburr@…> (08/07/2026 11:32:18 PM)
git-committer:
roboburr <roboburr@…> (08/07/2026 11:32:20 PM)
Message:

Alle poorten zichtbaar, en de lijst ingeklapt (shaer-ahy.1, vervolg)

Barts wens: de negen geplande gates ook tonen, en de lijst compacter -- het liefst
ingeklapt met een uitklap.

DE NEGEN STAAN ERIN, MAAR NIET ALS DICHTE DEUR. Acht ervan bestaan nog niet:
featureColumn() kent de namen niet, dus een voorstel zou stranden op
unknown_feature. En ze als "uit" tonen zou ronduit onwaar zijn -- plaatjes werken
vandaag gewoon. Ze krijgen daarom een eigen stand, "nog niet beschikbaar", met een
gestippelde chip, geen drempel en geen knop. Een lege plek, geen gesloten poort.

Elke geplande rij draagt zijn bead, zodat het paneel meteen de weg wijst naar waar
die gate gebouwd wordt.

Het kind van de geplande gates is voorlopig en dat staat er ook bij: of
accountmigratie een stand is of een besluit per keer hoort bij het bouwen van
shaer-tge beslist te worden, niet hier. Independence is de enige die gezag
OVERDRAAGT en dus als enige onomkeerbaar (shaer-90v).

INGEKLAPT MET EEN SAMENVATTING. Met twaalf poorten duwt een open lijst alles wat
eronder staat -- guardians, volgverzoeken, hulpvragen -- van het scherm. De regel
erboven zegt wat je meestal wilt weten: hoeveel poorten er zijn, hoeveel er aan
staan en hoeveel er op je wachten. Uitklappen blijft over een verversing heen
staan, net als het wardpaneel zelf; anders valt hij elke 45 seconden dicht.

Negen labels in nl/en/de. Suite 611/611.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/assets/js/guardian.js

    r9588b51 r23da947  
    318318  // panel.
    319319  var openPanels = {};   // ward uri -> open, so a refresh does not close it
     320  var openGates = {};    // idem voor de poortenlijst: uitklappen mag niet elke 45s dichtvallen
    320321  // The follow requests and the wards' posts arrive from their own endpoints
    321322  // and are grouped into the panels by ward, so they are cached here rather
     
    500501    // twee dingen die hetzelfde heetten waarvan er een nooit veranderde. Het
    501502    // veranderlijke hoort bovenaan; het beschrijvende gaat naar de regel eronder.
    502     var chip = el('span', 'g-gate-chip g-gate-chip-' + (g.value === true ? 'on' : (g.decided ? 'off' : 'undecided')), stand);
    503     head.appendChild(chip);
     503    // Wat er nog niet is leest niet als een dichte poort maar als een lege plek.
     504    // 'Uit' zou onwaar zijn: plaatjes werken vandaag gewoon.
     505    if (!g.available) stand = T.gate_unavailable || 'not available yet';
     506    var soort = g.available === false ? 'planned'
     507      : (g.value === true ? 'on' : (g.decided ? 'off' : 'undecided'));
     508    head.appendChild(el('span', 'g-gate-chip g-gate-chip-' + soort, stand));
    504509
    505510    var meta = el('div', 'g-gate-meta small');
    506511    meta.appendChild(el('span', 'g-gate-kind', T['gate_kind_' + g.kind] || g.kind));
    507     if (g.threshold) {
     512    if (!g.available) meta.appendChild(el('span', 'g-dim', T.gate_planned_note || ''));
     513    if (g.threshold && g.available) {
    508514      meta.appendChild(el('span', null, (T.gate_threshold || '{need} of {of} guardians')
    509515        .replace('{need}', g.threshold.need).replace('{of}', g.threshold.of)));
    510     } else {
     516    } else if (g.available) {
    511517      // Geen drempel verzinnen die we niet kennen.
    512518      meta.appendChild(el('span', 'g-dim', T.gate_threshold_unknown || ''));
     
    555561    // niet verstelbaar is stond nergens -- terwijl dat de helft van het antwoord
    556562    // is op "wat mag dit kind".
    557     (w.gates || []).forEach(function (g) { set.appendChild(gateRow(w, g)); });
     563    //
     564    // INGEKLAPT met een samenvatting erboven. Met twaalf poorten duwt een open
     565    // lijst alles wat eronder staat -- guardians, volgverzoeken, hulpvragen --
     566    // van het scherm. Wat je meestal wilt weten is "staat er iets open en wacht
     567    // er iets op mij", en dat past op een regel.
     568    if ((w.gates || []).length) {
     569      var lijst = el('div', 'g-gates');
     570      lijst.hidden = !openGates[uri];
     571      w.gates.forEach(function (g) { lijst.appendChild(gateRow(w, g)); });
     572
     573      var aan = w.gates.filter(function (g) { return g.available && g.value === true; }).length;
     574      var wacht = w.gates.reduce(function (n, g) { return n + (g.waiting || 0) + (g.proposal && g.proposal.status === 'open' ? 1 : 0); }, 0);
     575      var kop = el('button', 'quiet small g-gates-toggle');
     576      var zetKop = function () {
     577        kop.textContent = (lijst.hidden ? (T.gates_show || 'Show gates') : (T.gates_hide || 'Hide gates'))
     578          + ' - ' + (T.gates_summary || '{n} gates - {on} on, {wait} waiting')
     579            .replace('{n}', w.gates.length).replace('{on}', aan).replace('{wait}', wacht);
     580      };
     581      zetKop();
     582      kop.addEventListener('click', function () {
     583        lijst.hidden = !lijst.hidden;
     584        openGates[uri] = !lijst.hidden;   // blijft open over een verversing heen
     585        zetKop();
     586      });
     587      set.appendChild(kop);
     588      set.appendChild(lijst);
     589    }
    558590    // Terugval voor een server die de catalogus nog niet stuurt: dan de twee
    559591    // knoppen zoals ze waren, zodat een oudere Klonkt niet met een leeg vak zit.
Note: See TracChangeset for help on using the changeset viewer.