diff --git a/docs/dashboard-tables.md b/docs/dashboard-tables.md index 5911210..87cfb69 100644 --- a/docs/dashboard-tables.md +++ b/docs/dashboard-tables.md @@ -50,10 +50,14 @@ nowrap ones kept everything. ## Checklist for a new table -- Wrap it in `
` (add `tall` for a 70vh vertical cap) and - make that wrapper a **direct child** of `
` if the +- Wrap it in `
` and make that wrapper a **direct child** of `
` if the table has more than a handful of columns. Tables inside `.card`, `.cards` or `details` stay inside their box and just wrap/scroll there. +- Let the page scroll. A table that is the page's feature (paginated lists, + anything that is the last thing on the page) shows every row at full height; + a scrolling island inside a scrolling page just fights the wheel. Add `tall` + (70vh cap, own scrollbar) only when the table is a side feature with real + content below it, as the profile page's version history is. - Give every `td` one of the four classes above according to its content. When in doubt, leave it unclassed: wrapping is the safe default. - Never `cell-tight` a name, a title, a reason sentence or a free-text field. diff --git a/src/web/templates/dashboard/articles.html b/src/web/templates/dashboard/articles.html index 626ce62..f457c56 100644 --- a/src/web/templates/dashboard/articles.html +++ b/src/web/templates/dashboard/articles.html @@ -18,7 +18,7 @@
Reset
{% include "dashboard/_pager.html" %} -{% if articles.len() > 1 %}{% endif %}
+{% if articles.len() > 1 %}{% endif %}
{% for article in articles %} diff --git a/src/web/templates/dashboard/interests.html b/src/web/templates/dashboard/interests.html index 8a45968..040affc 100644 --- a/src/web/templates/dashboard/interests.html +++ b/src/web/templates/dashboard/interests.html @@ -16,7 +16,7 @@
Reset
{% if rows.len() > 1 %}{% endif %} -
first seentitlefeedinterestswordslast stagereasonutilitytriagequalityfitratingpublished
{{ article.first_seen }}
+
{% for row in rows %} diff --git a/src/web/templates/dashboard/jobs.html b/src/web/templates/dashboard/jobs.html index 9dba4d4..0fee14e 100644 --- a/src/web/templates/dashboard/jobs.html +++ b/src/web/templates/dashboard/jobs.html @@ -17,7 +17,7 @@ {% endfor %}

History

-{% if jobs.is_empty() %}

No jobs recorded yet.

{% else %}{% if jobs.len() > 1 %}{% endif %}
interestcategoryweightupdownrated matchesmatched articlesaddedactions
{{ row.name }}
+{% if jobs.is_empty() %}

No jobs recorded yet.

{% else %}{% if jobs.len() > 1 %}{% endif %}
{% for job in jobs %} diff --git a/src/web/templates/dashboard/ratings.html b/src/web/templates/dashboard/ratings.html index f9c6fa4..fb08bc5 100644 --- a/src/web/templates/dashboard/ratings.html +++ b/src/web/templates/dashboard/ratings.html @@ -55,7 +55,7 @@
Reset

{{ pagination.total }} events, newest first. History is append-only; a later explicit event for the same article marks the earlier one superseded. Use the clear verdict to retract.

-
jobnamerequested byrequestedstartedfinisheddurationstatusmessagerun
{{ job.id }}
+
{% for event in events %} @@ -83,7 +83,7 @@
Reset

One row per rated article (its latest explicit event), newest first. {% match last_run %}{% when Some with (run) %}"Used last run" counts the candidates of run #{{ run.id }} ({{ run.date }}, {{ run.status }}) that listed the article among their nearest rated neighbours, and how many of those were selected.{% when None %}No run has happened yet, so "Used last run" is empty.{% endmatch %}

-
EventVerdictValueArticleIssueWhenSourceByNote
+
{% for row in current %} diff --git a/src/web/templates/dashboard/run.html b/src/web/templates/dashboard/run.html index 311aedf..53ecde8 100644 --- a/src/web/templates/dashboard/run.html +++ b/src/web/templates/dashboard/run.html @@ -58,7 +58,7 @@
Reset
{% include "dashboard/_pager.html" %} -{% if candidates.len() > 1 %}{% endif %}
VerdictArticleWhen · byNoteAge → decayNeighbour weightFeed creditIn promptIn rebuildUsed last run
+{% if candidates.len() > 1 %}{% endif %}
{% for candidate in candidates %}{% include "_candidate_row.html" %}{% endfor %}{% if candidates.is_empty() %}{% endif %}
titlefeedwordsstagereasonadmitted byutilityrankclustertriagequalityfitflags
No candidates match this filter.
{% include "dashboard/_pager.html" %} diff --git a/src/web/templates/dashboard/runs.html b/src/web/templates/dashboard/runs.html index 8795599..fb2d348 100644 --- a/src/web/templates/dashboard/runs.html +++ b/src/web/templates/dashboard/runs.html @@ -7,7 +7,7 @@
{% if !status.is_empty() %}Reset{% endif %}
-{% if runs.len() > 1 %}{% endif %}
+{% if runs.len() > 1 %}{% endif %}
{% for run in runs %} diff --git a/src/web/templates/dashboard/settings_history.html b/src/web/templates/dashboard/settings_history.html index 503f3e4..ff5e72f 100644 --- a/src/web/templates/dashboard/settings_history.html +++ b/src/web/templates/dashboard/settings_history.html @@ -3,7 +3,7 @@

Settings history

Every settings change made through the dashboard, newest first. Hand edits to config.toml on disk are not recorded here.

-{% if changes.is_empty() %}

No settings have been changed through the dashboard yet.

{% else %}{% if changes.len() > 1 %}{% endif %}
rundatestatusstarteddurationconsidered → eligible → triaged → assessed → shortlisted → selectedcosttotalwarnings
{{ run.id }}
+{% if changes.is_empty() %}

No settings have been changed through the dashboard yet.

{% else %}{% if changes.len() > 1 %}{% endif %}
{% for change in changes %} diff --git a/src/web/templates/dashboard/stats.html b/src/web/templates/dashboard/stats.html index f564709..23663f0 100644 --- a/src/web/templates/dashboard/stats.html +++ b/src/web/templates/dashboard/stats.html @@ -27,12 +27,12 @@

Spend by day

-{% if cost_rows.is_empty() %}

No provider costs recorded in the window.

{% else %}{% if cost_rows.len() > 1 %}{% endif %}
WhenWhoKeyBeforeAfter
{{ change.changed_at }}
+{% if cost_rows.is_empty() %}

No provider costs recorded in the window.

{% else %}{% if cost_rows.len() > 1 %}{% endif %}
{% for provider in providers %}{% endfor %}{% for row in cost_rows %}{% for cell in row.cells %}{% endfor %}{% endfor %}
day (UTC){{ provider }}total
{{ row.date }}{{ cell }}{{ row.total }}
{% endif %}

Runs in the window

-{% if runs.is_empty() %}

No finished runs in the window.

{% else %}{% if runs.len() > 1 %}{% endif %}
+{% if runs.is_empty() %}

No finished runs in the window.

{% else %}{% if runs.len() > 1 %}{% endif %}
{% for run in runs %}{% endfor %}
rundatestatuscostselectedduration
{{ run.run_id }}{{ run.date }}{{ run.status }}{{ run.cost }}{{ run.selected }}{{ run.duration }}
{% endif %} diff --git a/src/web/templates/dashboard/users.html b/src/web/templates/dashboard/users.html index 4ba7f72..65ab6c5 100644 --- a/src/web/templates/dashboard/users.html +++ b/src/web/templates/dashboard/users.html @@ -15,7 +15,7 @@
{% endfor %}
{% endif %}
-{% if users.len() > 1 %}{% endif %}
+{% if users.len() > 1 %}{% endif %}
{% for user in users %}
UsernameRoleStatusCreatedLast loginOpen sessions
{{ user.username }}