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));
});
}
+5 -5
View File
@@ -11,7 +11,7 @@ manifestVersion: 1
id: whatsnext-evolu-relay
category: files
name: Evolu Relay
version: "0.5.5"
version: "0.5.6"
tagline: Encrypted sync and backup for your local-first apps
description: >-
Local-first apps keep your data on your own device and work whether or not you have a
@@ -43,10 +43,10 @@ description: >-
your app at the address shown there. Away from home you will need a way in, such as Tailscale
or a reverse proxy with your own domain.
releaseNotes: >-
The glow behind the page is gone. It arrived in 0.5.2 and it did what it was meant to do, but a status
page is something you glance at, and a coloured wash over the whole window is a lot of decoration for a
glance. The panels keep their edge, their shadow and their top light, so they still read as panels; only
the light behind them is off. The switch is still in the page for anyone who wants it back.
Owners are now listed most recently seen first, in both panels. Until now the rows kept the order in
which owners first showed up, which stops meaning anything after a week. The order follows along on its
own: the page refreshes its lists every few seconds, so a reconnecting owner moves to the top without a
reload.
Everything in 0.5.4: