Relay 0.5.6: de eigenaars op volgorde van laatst gezien

Meest recent bovenaan, in beide kaders en over de groepen heen. De rijen
stonden in de volgorde van het bestand, dus van binnenkomst. De volgorde
schuift mee zonder herladen: de ronde van vijf seconden bouwt de lijsten
toch al opnieuw op. Alleen de pagina, dus geen nieuwe image.

Erbij gevonden en als open taak genoteerd: lastSeen wordt alleen bij de
verbinding gezet, niet bij een sync erover.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Harmen
2026-09-07 19:24:40 +02:00
co-authored by Claude Fable 5.1
parent cd4c7da0d7
commit 7b3804df89
6 changed files with 64 additions and 13 deletions
+26 -7
View File
@@ -1243,13 +1243,33 @@ body {
}
// ── De lijsten ────────────────────────────────────────────────────────────
// Meest recent gezien bovenaan, over de groepen heen: in het kader met
// geweigerden staat een blokkade van vanmorgen dus boven een afgewezen poging van
// vorige week, en niet andersom omdat "blocked" nu eenmaal eerst kwam. Tot 0.5.5
// stonden de rijen in de volgorde van het bestand, en dat is de volgorde waarin
// eigenaars ooit binnenkwamen; die zegt na een week niets meer. Op verzoek van
// de gebruiker, 07-09-2026.
//
// De volgorde verschuift vanzelf mee: de ronde van vijf seconden bouwt de lijst
// elke keer opnieuw op, dus hier hoeft niets voor herladen te worden. Wat
// "gezien" hier betekent staat bij het relay-proces: het tijdstip van de laatste
// verbinding, niet van de laatste sync erover.
function seenAt(entry) {
var when = new Date(entry.lastSeen || entry.firstSeen || 0).getTime();
return isNaN(when) ? 0 : when;
}
function fillList(id, groups, emptyText) {
var holder = el(id);
var total = 0;
groups.forEach(function (group) { total += group.entries.length; });
var rows = [];
groups.forEach(function (group) {
group.entries.forEach(function (entry) {
rows.push({ entry: entry, kind: group.kind });
});
});
holder.textContent = '';
if (total === 0) {
if (rows.length === 0) {
var empty = document.createElement('p');
empty.className = 'list-empty';
empty.textContent = emptyText;
@@ -1257,10 +1277,9 @@ body {
return;
}
groups.forEach(function (group) {
group.entries.forEach(function (entry) {
holder.appendChild(ownerRow(entry, group.kind));
});
rows.sort(function (a, b) { return seenAt(b.entry) - seenAt(a.entry); });
rows.forEach(function (row) {
holder.appendChild(ownerRow(row.entry, row.kind));
});
}