You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
polish(editor): clarify feed title/url vs. organizers in feed settings
feed.title/feed.url name who PUBLISHES the feed; feed.organizers names who
ORGANIZES the events in it — distinct per the OTE v0.3 spec, but for the
common case (one community publishing its own events) the two end up
holding near-identical values, reading as pointless duplication rather
than the intentional distinction it is.
Feed settings now splits into two headed groups: "About this feed"
(title/description/url) and "Defaults for your events" (license,
textLanguage, organizers), the latter carrying one shared note explaining
the replace-not-merge inheritance pattern all three follow — instead of
three fields with no framing and, previously, no visible relationship to
each other.
Organizers specifically gets three more pieces, DOM-inserted after
renderRepeaterField's own label (same "patch the mounted subtree"
technique already used this session to fix that field's info-tooltip
copy, since REPEATER_SPECS.organizers is shared with the event form's own
organizers field and can't carry feed-specific text):
- A plain-language note adapted from the spec's own wording distinguishing
the two fields.
- "Use the same details as above" — visible only while organizers is
empty, appends one row prefilled from Title/URL, left fully editable.
- An aggregator warning, shown when lib/feed-config.ts's new
likelyAggregatorFeed(events) detects 3+ distinct organizer sets among
events that declare their own (computed from the already-loaded event
list when the view opens) — explaining that the spec requires leaving
the field empty in that case, since filling it would misattribute every
aggregated event to whoever runs the feed. Deliberately conservative:
a single co-organized "guest" event alongside a one-community feed — the
normal case the spec documents — produces exactly 2 distinct sets, not
3, so it never fires on that.
v1 scope is automatic detection only, no manual "this is an aggregator"
toggle — not a real ote.config.json field, so nothing to save it into.
Also extracted #warnings' banner styling into a reusable .warning-box
class for the new organizers warning, rather than duplicating it.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DrGeVXHTNNdPi7MCgSageG
"dialog.feedSettings.title": "Configuración del feed",
47
47
"dialog.feedSettings.hint":
48
48
"Edita el bloque feed de ote.config.json — el perfil y otros ajustes del editor en ese fichero no se tocan.",
49
+
"dialog.feedSettings.aboutGroup": "Sobre este feed",
50
+
"dialog.feedSettings.defaultsGroup": "Valores por defecto para tus eventos",
51
+
"dialog.feedSettings.defaultsGroupNote":
52
+
"Todo evento hereda estos valores salvo que declare el suyo propio — y si lo declara, lo sustituye por completo, nunca se combina con lo que hay aquí.",
"El idioma en el que están escritos el título/descripción de tu feed (y el nombre/descripción de tus eventos). Solo hace falta si usas traducciones.",
66
70
"dialog.feedSettings.organizersInfo":
67
71
"Quién organiza tu comunidad, por defecto. Cada evento hereda esta lista salvo que declare sus propios organizadores, que entonces la REEMPLAZAN, no se combinan con ella.",
72
+
"dialog.feedSettings.organizersNote":
73
+
"El título/URL de arriba dicen quién publica este feed; organizers, quién organiza los eventos que contiene. Si este feed solo publica tus propios eventos, probablemente coincidan. Solo son distintos si agregas eventos de otras comunidades — en ese caso, deja este campo vacío (ver aviso abajo).",
74
+
"dialog.feedSettings.organizersQuickFill": "Usar los mismos datos que arriba",
"Aviso: los eventos de este feed declaran organizadores bastante distintos entre sí. Si este feed agrega eventos de otras comunidades, deja este campo vacío — la spec lo exige: rellenarlo atribuiría cada evento agregado a quien lleva este feed, no a quien realmente lo organiza.",
68
77
"dialog.review.title": "Revisar y enviar",
69
78
"dialog.review.hintRepo":
70
79
"Esto abre un issue de GitHub prerrellenado en el repositorio de destino; una persona mantenedora (o la automatización del repositorio) lo convierte en un pull request.",
"Who runs your community, by default. Every event inherits this list unless it declares its own organizers, which then REPLACES it, not merges.",
431
457
);
432
458
}
459
+
460
+
// title/url above name who PUBLISHES the feed; this field is who
461
+
// ORGANIZES the events in it — the same distinction REPEATER_SPECS'
462
+
// own info text can't carry without leaking feed-specific wording
463
+
// into the event form that reuses it, so it's a separate note here.
464
+
constnote=document.createElement("p");
465
+
note.className="hint organizers-feed-note";
466
+
note.textContent=t(
467
+
"dialog.feedSettings.organizersNote",
468
+
"Title/URL above name who publishes this feed; organizers is who organizes the events in it. If this feed only publishes your own events, they probably match. They only differ once you aggregate events from other communities — leave this empty in that case (see the notice below).",
469
+
);
470
+
471
+
constlabel=rendered.querySelector("label");
472
+
if(label){
473
+
// Inserted in reverse of the desired final order — each .after()
474
+
// on the same reference node pushes the previous insertion down.
"Heads up: the events in this feed declare noticeably different organizers. If this feed aggregates events from other communities, leave this field empty — the spec requires it: filling it would attribute every aggregated event to whoever runs this feed, not who actually organizes each one.",
0 commit comments