Changeset 8064da1 in Klonkt for src/assets


Ignore:
Timestamp:
08/10/2026 03:35:11 AM (4 weeks ago)
Author:
Bart <bart@…>
Branches:
main
Children:
f06ed56
Parents:
65c5ec6
Message:

De Guardian PWA kende maar één richting, en de knop wist het ook niet

/api/follow-requests bouwde zijn lijst uit listReviews() zonder richting, terwijl
ap_follow_reviews.direction er juist voor bestaat. Bij een uitgaand verzoek IS de
follower de ward, dus de kaart zette het kind zelf onder "Volgverzoeken" -- "je
kind wil je kind volgen" -- en degene om wie het ging viel weg.

Erger was de knop. Accept ging naar /api/follow/:id, dat in ap_pending_follows
zoekt en een uitgaand verzoek daar nooit vindt. Een guardian kon dus op Toestaan
drukken en denken dat het gebeurd was. Nu twee eindpunten, gekozen op richting.

En lokale wards ontbraken helemaal: alleen listForWard() van de INKOMENDE tabel
stond erin, dus wie zijn ward op dezelfde instance heeft zag uitgaande verzoeken
nergens. Die wachtten op iemand die er nooit naar keek.

Zelfde fout als in het paneel en in de melding: de richting is bekend en wordt op
het laatste moment weggegooid. Dit is de derde plek.

Co-Authored-By: Claude Opus 5 <claude@…>

File:
1 edited

Legend:

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

    r65c5ec6 r8064da1  
    952952
    953953  // ── 0b. Follow requests on your wards (§5.3) ────────────────────────────
    954   function answerFollow(id, decision, btn) {
     954  /**
     955   * Twee richtingen, twee eindpunten. Ze deelden er een, en dat kon niet goed
     956   * gaan: /api/follow zoekt in ap_pending_follows en vindt een uitgaand verzoek
     957   * daar nooit. De knop deed dus niets en zei niets -- erger dan geen knop.
     958   */
     959  function answerFollow(id, decision, btn, uitgaand) {
    955960    if (btn) btn.disabled = true;
    956     fetch('/guardian/api/follow/' + encodeURIComponent(id), {
     961    var pad = uitgaand ? '/guardian/api/outgoing-follow/' : '/guardian/api/follow/';
     962    fetch(pad + encodeURIComponent(id), {
    957963      method: 'POST', headers: { 'Content-Type': 'application/json' },
    958964      body: JSON.stringify({ decision: decision, site: S.site }),
     
    960966  }
    961967  function followCard(f) {
     968    var uitgaand = f.direction === 'outgoing';
    962969    var card = el('div', 'g-card');
    963970    var row = el('div', 'row');
    964     // Inside the child's own panel the ward name is a given, so only the
    965     // person asking is named here.
    966     row.appendChild(el('span', 'who grow', f.follower));
     971    // Binnen het paneel van het kind is de ward een gegeven, dus alleen de
     972    // ANDER wordt genoemd -- en wie dat is hangt van de richting af. Zonder dat
     973    // onderscheid stond bij een uitgaand verzoek de ward zelf op de kaart
     974    // ("je kind wil je kind volgen") en verdween degene om wie het ging.
     975    row.appendChild(el('span', 'who grow',
     976      uitgaand ? ((T.follow_out_line || 'wants to follow {who}').replace('{who}', f.target || '?'))
     977               : f.follower));
    967978    var ok = el('button', 'small', T.accept || 'Accept');
    968     ok.addEventListener('click', function () { answerFollow(f.id, 'approve', ok); });
     979    ok.addEventListener('click', function () { answerFollow(f.id, 'approve', ok, uitgaand); });
    969980    var no = el('button', 'quiet small', T.reject || 'Deny');
    970     no.addEventListener('click', function () { answerFollow(f.id, 'reject', no); });
     981    no.addEventListener('click', function () { answerFollow(f.id, 'reject', no, uitgaand); });
    971982    row.appendChild(ok); row.appendChild(no);
    972983    card.appendChild(row);
Note: See TracChangeset for help on using the changeset viewer.