@geekity/cms 0.27.0 → 0.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +469 -84
- package/admin/layouts/shell.njk +6 -0
- package/admin/pages/comments/all.njk +3 -1
- package/admin/pages/documents/editor.njk +4 -0
- package/admin/pages/federation/followers.njk +8 -2
- package/admin/pages/plugins/installed.njk +1 -1
- package/admin/pages/tools/dev-mode.njk +47 -0
- package/admin/static/admin.css +8 -0
- package/admin/static/editor-actions.js +13 -9
- package/admin/static/editor.js +31 -17
- package/dist/admin/comments.d.ts +2 -0
- package/dist/admin/comments.d.ts.map +1 -1
- package/dist/admin/comments.js +19 -49
- package/dist/admin/comments.js.map +1 -1
- package/dist/admin/dev-mode.d.ts +9 -0
- package/dist/admin/dev-mode.d.ts.map +1 -0
- package/dist/admin/dev-mode.js +42 -0
- package/dist/admin/dev-mode.js.map +1 -0
- package/dist/admin/documents.d.ts +5 -0
- package/dist/admin/documents.d.ts.map +1 -1
- package/dist/admin/documents.js +45 -17
- package/dist/admin/documents.js.map +1 -1
- package/dist/admin/editor-actions.js +3 -1
- package/dist/admin/editor-actions.js.map +1 -1
- package/dist/admin/federation.d.ts +21 -1
- package/dist/admin/federation.d.ts.map +1 -1
- package/dist/admin/federation.js +19 -7
- package/dist/admin/federation.js.map +1 -1
- package/dist/admin/menu.d.ts.map +1 -1
- package/dist/admin/menu.js +2 -0
- package/dist/admin/menu.js.map +1 -1
- package/dist/admin/own-paragraph.d.ts +7 -0
- package/dist/admin/own-paragraph.d.ts.map +1 -0
- package/dist/admin/own-paragraph.js +9 -0
- package/dist/admin/own-paragraph.js.map +1 -0
- package/dist/admin/plugins.d.ts.map +1 -1
- package/dist/admin/plugins.js +19 -8
- package/dist/admin/plugins.js.map +1 -1
- package/dist/admin/preview.d.ts.map +1 -1
- package/dist/admin/preview.js +4 -1
- package/dist/admin/preview.js.map +1 -1
- package/dist/admin/routes.d.ts.map +1 -1
- package/dist/admin/routes.js +4 -0
- package/dist/admin/routes.js.map +1 -1
- package/dist/admin/settings-email.d.ts.map +1 -1
- package/dist/admin/settings-email.js +4 -0
- package/dist/admin/settings-email.js.map +1 -1
- package/dist/admin/store.d.ts +68 -12
- package/dist/admin/store.d.ts.map +1 -1
- package/dist/admin/store.js +167 -18
- package/dist/admin/store.js.map +1 -1
- package/dist/admin/templates.d.ts +1 -0
- package/dist/admin/templates.d.ts.map +1 -1
- package/dist/admin/templates.js +1 -0
- package/dist/admin/templates.js.map +1 -1
- package/dist/admin/uploads.d.ts +7 -1
- package/dist/admin/uploads.d.ts.map +1 -1
- package/dist/admin/uploads.js +33 -30
- package/dist/admin/uploads.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +78 -12
- package/dist/cli.js.map +1 -1
- package/dist/comments/form.d.ts +3 -1
- package/dist/comments/form.d.ts.map +1 -1
- package/dist/comments/form.js +2 -1
- package/dist/comments/form.js.map +1 -1
- package/dist/comments/index.d.ts +2 -2
- package/dist/comments/index.d.ts.map +1 -1
- package/dist/comments/index.js +1 -1
- package/dist/comments/index.js.map +1 -1
- package/dist/comments/records.d.ts +25 -20
- package/dist/comments/records.d.ts.map +1 -1
- package/dist/comments/records.js +113 -33
- package/dist/comments/records.js.map +1 -1
- package/dist/comments/reply-notices.d.ts +42 -0
- package/dist/comments/reply-notices.d.ts.map +1 -0
- package/dist/comments/reply-notices.js +76 -0
- package/dist/comments/reply-notices.js.map +1 -0
- package/dist/comments/reply-post.d.ts +49 -0
- package/dist/comments/reply-post.d.ts.map +1 -0
- package/dist/comments/reply-post.js +66 -0
- package/dist/comments/reply-post.js.map +1 -0
- package/dist/comments/routes.d.ts +6 -1
- package/dist/comments/routes.d.ts.map +1 -1
- package/dist/comments/routes.js +49 -21
- package/dist/comments/routes.js.map +1 -1
- package/dist/comments/submission.d.ts +8 -25
- package/dist/comments/submission.d.ts.map +1 -1
- package/dist/comments/submission.js +19 -38
- package/dist/comments/submission.js.map +1 -1
- package/dist/comments/viewer.d.ts.map +1 -1
- package/dist/comments/viewer.js +1 -0
- package/dist/comments/viewer.js.map +1 -1
- package/dist/config.d.ts +21 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/content/citation.d.ts +1 -0
- package/dist/content/citation.d.ts.map +1 -1
- package/dist/content/citation.js +2 -0
- package/dist/content/citation.js.map +1 -1
- package/dist/content/markdown.d.ts.map +1 -1
- package/dist/content/markdown.js +33 -1
- package/dist/content/markdown.js.map +1 -1
- package/dist/content/migrated.d.ts +6 -0
- package/dist/content/migrated.d.ts.map +1 -0
- package/dist/content/migrated.js +12 -0
- package/dist/content/migrated.js.map +1 -0
- package/dist/content/original.d.ts +8 -0
- package/dist/content/original.d.ts.map +1 -0
- package/dist/content/original.js +15 -0
- package/dist/content/original.js.map +1 -0
- package/dist/content/parser.d.ts +5 -0
- package/dist/content/parser.d.ts.map +1 -1
- package/dist/content/parser.js +1 -1
- package/dist/content/parser.js.map +1 -1
- package/dist/content/schedule.d.ts +7 -0
- package/dist/content/schedule.d.ts.map +1 -1
- package/dist/content/schedule.js +11 -2
- package/dist/content/schedule.js.map +1 -1
- package/dist/content/store.d.ts +43 -11
- package/dist/content/store.d.ts.map +1 -1
- package/dist/content/store.js +170 -10
- package/dist/content/store.js.map +1 -1
- package/dist/content/sync.d.ts +8 -0
- package/dist/content/sync.d.ts.map +1 -1
- package/dist/content/sync.js +172 -57
- package/dist/content/sync.js.map +1 -1
- package/dist/content/video.d.ts +12 -0
- package/dist/content/video.d.ts.map +1 -0
- package/dist/content/video.js +91 -0
- package/dist/content/video.js.map +1 -0
- package/dist/dev-mode.d.ts +28 -0
- package/dist/dev-mode.d.ts.map +1 -0
- package/dist/dev-mode.js +64 -0
- package/dist/dev-mode.js.map +1 -0
- package/dist/drain.d.ts +9 -3
- package/dist/drain.d.ts.map +1 -1
- package/dist/drain.js +24 -3
- package/dist/drain.js.map +1 -1
- package/dist/federation/article.d.ts.map +1 -1
- package/dist/federation/article.js +2 -1
- package/dist/federation/article.js.map +1 -1
- package/dist/federation/backfill.d.ts +114 -0
- package/dist/federation/backfill.d.ts.map +1 -0
- package/dist/federation/backfill.js +312 -0
- package/dist/federation/backfill.js.map +1 -0
- package/dist/federation/delivery.d.ts +2 -0
- package/dist/federation/delivery.d.ts.map +1 -1
- package/dist/federation/delivery.js +46 -16
- package/dist/federation/delivery.js.map +1 -1
- package/dist/federation/inbox.d.ts.map +1 -1
- package/dist/federation/inbox.js +14 -4
- package/dist/federation/inbox.js.map +1 -1
- package/dist/federation/mount.d.ts.map +1 -1
- package/dist/federation/mount.js +8 -4
- package/dist/federation/mount.js.map +1 -1
- package/dist/federation/records.d.ts +13 -0
- package/dist/federation/records.d.ts.map +1 -1
- package/dist/federation/records.js +49 -10
- package/dist/federation/records.js.map +1 -1
- package/dist/federation/relays.d.ts.map +1 -1
- package/dist/federation/relays.js +16 -1
- package/dist/federation/relays.js.map +1 -1
- package/dist/federation/replies.d.ts +6 -0
- package/dist/federation/replies.d.ts.map +1 -1
- package/dist/federation/replies.js +18 -1
- package/dist/federation/replies.js.map +1 -1
- package/dist/index.d.ts +13 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +95 -14
- package/dist/index.js.map +1 -1
- package/dist/indexnow.d.ts +1 -1
- package/dist/indexnow.d.ts.map +1 -1
- package/dist/indexnow.js +7 -0
- package/dist/indexnow.js.map +1 -1
- package/dist/init.d.ts +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +1 -7
- package/dist/init.js.map +1 -1
- package/dist/mail/service.d.ts +3 -1
- package/dist/mail/service.d.ts.map +1 -1
- package/dist/mail/service.js +17 -0
- package/dist/mail/service.js.map +1 -1
- package/dist/notify.d.ts +1 -1
- package/dist/notify.d.ts.map +1 -1
- package/dist/notify.js +7 -0
- package/dist/notify.js.map +1 -1
- package/dist/plugin.d.ts +67 -4
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js.map +1 -1
- package/dist/plugins/folder.d.ts +2 -0
- package/dist/plugins/folder.d.ts.map +1 -1
- package/dist/plugins/folder.js +26 -5
- package/dist/plugins/folder.js.map +1 -1
- package/dist/plugins/manage.d.ts +8 -6
- package/dist/plugins/manage.d.ts.map +1 -1
- package/dist/plugins/manage.js +1 -4
- package/dist/plugins/manage.js.map +1 -1
- package/dist/plugins/site.d.ts.map +1 -1
- package/dist/plugins/site.js +56 -0
- package/dist/plugins/site.js.map +1 -1
- package/dist/supervisor/control.d.ts +15 -0
- package/dist/supervisor/control.d.ts.map +1 -0
- package/dist/supervisor/control.js +89 -0
- package/dist/supervisor/control.js.map +1 -0
- package/dist/supervisor/primary.d.ts +18 -4
- package/dist/supervisor/primary.d.ts.map +1 -1
- package/dist/supervisor/primary.js +128 -16
- package/dist/supervisor/primary.js.map +1 -1
- package/dist/supervisor/protocol.d.ts +12 -0
- package/dist/supervisor/protocol.d.ts.map +1 -1
- package/dist/supervisor/protocol.js +21 -2
- package/dist/supervisor/protocol.js.map +1 -1
- package/dist/supervisor/supervision.d.ts +1 -0
- package/dist/supervisor/supervision.d.ts.map +1 -1
- package/dist/supervisor/supervision.js +14 -1
- package/dist/supervisor/supervision.js.map +1 -1
- package/dist/supervisor/worker.d.ts.map +1 -1
- package/dist/supervisor/worker.js +31 -6
- package/dist/supervisor/worker.js.map +1 -1
- package/dist/web/context.d.ts +22 -0
- package/dist/web/context.d.ts.map +1 -1
- package/dist/web/context.js +20 -4
- package/dist/web/context.js.map +1 -1
- package/dist/web/conversation.d.ts +155 -16
- package/dist/web/conversation.d.ts.map +1 -1
- package/dist/web/conversation.js +602 -135
- package/dist/web/conversation.js.map +1 -1
- package/dist/web/documents.d.ts +0 -22
- package/dist/web/documents.d.ts.map +1 -1
- package/dist/web/documents.js +1 -34
- package/dist/web/documents.js.map +1 -1
- package/dist/web/feed-item.d.ts +19 -14
- package/dist/web/feed-item.d.ts.map +1 -1
- package/dist/web/feed-item.js +10 -9
- package/dist/web/feed-item.js.map +1 -1
- package/dist/web/feed-rss.d.ts +2 -2
- package/dist/web/feed-rss.d.ts.map +1 -1
- package/dist/web/feed-rss.js +36 -12
- package/dist/web/feed-rss.js.map +1 -1
- package/dist/web/feed-source.d.ts +30 -1
- package/dist/web/feed-source.d.ts.map +1 -1
- package/dist/web/feed-source.js +25 -0
- package/dist/web/feed-source.js.map +1 -1
- package/dist/web/feeds.d.ts +1 -1
- package/dist/web/feeds.d.ts.map +1 -1
- package/dist/web/feeds.js +7 -2
- package/dist/web/feeds.js.map +1 -1
- package/dist/web/guids.d.ts +59 -0
- package/dist/web/guids.d.ts.map +1 -0
- package/dist/web/guids.js +79 -0
- package/dist/web/guids.js.map +1 -0
- package/dist/web/index.d.ts +5 -6
- package/dist/web/index.d.ts.map +1 -1
- package/dist/web/index.js +3 -3
- package/dist/web/index.js.map +1 -1
- package/dist/web/redirects.d.ts +29 -10
- package/dist/web/redirects.d.ts.map +1 -1
- package/dist/web/redirects.js +99 -53
- package/dist/web/redirects.js.map +1 -1
- package/dist/web/render.d.ts +19 -9
- package/dist/web/render.d.ts.map +1 -1
- package/dist/web/render.js +44 -42
- package/dist/web/render.js.map +1 -1
- package/dist/web/routes.d.ts +2 -2
- package/dist/web/routes.d.ts.map +1 -1
- package/dist/web/routes.js +94 -31
- package/dist/web/routes.js.map +1 -1
- package/dist/webmention/index.d.ts +1 -1
- package/dist/webmention/index.d.ts.map +1 -1
- package/dist/webmention/index.js +1 -1
- package/dist/webmention/index.js.map +1 -1
- package/dist/webmention/links.d.ts +55 -0
- package/dist/webmention/links.d.ts.map +1 -1
- package/dist/webmention/links.js +162 -0
- package/dist/webmention/links.js.map +1 -1
- package/dist/webmention/microformats.d.ts +15 -0
- package/dist/webmention/microformats.d.ts.map +1 -1
- package/dist/webmention/microformats.js +63 -1
- package/dist/webmention/microformats.js.map +1 -1
- package/dist/webmention/pingback.js +2 -1
- package/dist/webmention/pingback.js.map +1 -1
- package/dist/webmention/receive.d.ts +5 -0
- package/dist/webmention/receive.d.ts.map +1 -1
- package/dist/webmention/receive.js +99 -3
- package/dist/webmention/receive.js.map +1 -1
- package/dist/webmention/reply-context.d.ts +15 -0
- package/dist/webmention/reply-context.d.ts.map +1 -1
- package/dist/webmention/reply-context.js +29 -0
- package/dist/webmention/reply-context.js.map +1 -1
- package/dist/webmention/reply-contexts.d.ts +6 -0
- package/dist/webmention/reply-contexts.d.ts.map +1 -1
- package/dist/webmention/reply-contexts.js +16 -10
- package/dist/webmention/reply-contexts.js.map +1 -1
- package/dist/webmention/routes.d.ts.map +1 -1
- package/dist/webmention/routes.js +2 -1
- package/dist/webmention/routes.js.map +1 -1
- package/dist/webmention/service.d.ts +31 -2
- package/dist/webmention/service.d.ts.map +1 -1
- package/dist/webmention/service.js +183 -33
- package/dist/webmention/service.js.map +1 -1
- package/package.json +1 -2
- package/themes/default/README.md +390 -75
- package/themes/default/layouts/base.njk +19 -2
- package/themes/default/layouts/comment.njk +90 -0
- package/themes/default/layouts/front-page.njk +9 -47
- package/themes/default/layouts/page.njk +2 -0
- package/themes/default/layouts/post.njk +22 -4
- package/themes/default/partials/backlinks.njk +19 -0
- package/themes/default/partials/body-end.njk +1 -0
- package/themes/default/partials/cited-page.njk +3 -1
- package/themes/default/partials/comment-form.njk +10 -0
- package/themes/default/partials/comment.njk +79 -0
- package/themes/default/partials/conversation.njk +14 -59
- package/themes/default/partials/head-end.njk +1 -0
- package/themes/default/src/style.css +46 -0
- package/themes/default/static/style.css +75 -0
package/admin/layouts/shell.njk
CHANGED
|
@@ -32,6 +32,12 @@
|
|
|
32
32
|
<div class="drawer-content">
|
|
33
33
|
<label for="admin-menu" class="btn btn-sm drawer-button mx-4 mt-4 lg:hidden">Menu</label>
|
|
34
34
|
<main id="main" class="p-4 sm:p-6 lg:p-8">
|
|
35
|
+
{% if devModeUrl %}
|
|
36
|
+
{% from "components/alert.njk" import alert %}
|
|
37
|
+
<div class="mb-6">
|
|
38
|
+
{% call alert(color='warning', polite=true) %}<span>Dev mode is on: nothing this site does is sent to followers, relays, linked sites, feed hubs, search engines or inboxes. <a class="link" href="{{ devModeUrl }}">See what was held</a>.</span>{% endcall %}
|
|
39
|
+
</div>
|
|
40
|
+
{% endif %}
|
|
35
41
|
{% include "components/flash.njk" %}
|
|
36
42
|
{% block content %}{% endblock %}
|
|
37
43
|
</main>
|
|
@@ -95,7 +95,9 @@
|
|
|
95
95
|
{{ rowFields(row, fields, status, csrfToken) }}
|
|
96
96
|
{% set replyLabel %}Reply to {{ row.author }}{% endset %}
|
|
97
97
|
{{ field.textarea('reply-' + loop.index, fields.body, replyLabel, rows='4', required=true,
|
|
98
|
-
hint='Markdown
|
|
98
|
+
hint='Markdown. It is saved as a reply post of yours and shown under this one.') }}
|
|
99
|
+
{{ field.checkbox('reply-listed-' + loop.index, fields.listed, 'Include in posts and feeds',
|
|
100
|
+
hint='Left unticked, the reply is Unlisted: its own page, and no listing or feed.') }}
|
|
99
101
|
<div class="mt-2">{{ button('Post reply', type='submit', color='primary') }}</div>
|
|
100
102
|
</form>
|
|
101
103
|
{% endcall %}
|
|
@@ -46,7 +46,11 @@
|
|
|
46
46
|
<template data-editor-choice>
|
|
47
47
|
<li>
|
|
48
48
|
<label class="flex items-start gap-2">
|
|
49
|
+
{% if fieldId == 'editor-tags' %}
|
|
49
50
|
<input type="checkbox" class="checkbox checkbox-sm mt-0.5" form="editor-suggestions">
|
|
51
|
+
{% else %}
|
|
52
|
+
<input type="radio" class="radio radio-sm mt-0.5" name="{{ action.url }}" form="editor-suggestions">
|
|
53
|
+
{% endif %}
|
|
50
54
|
<span class="flex flex-col">
|
|
51
55
|
<span class="flex flex-wrap items-center gap-2">
|
|
52
56
|
<span class="break-all" data-choice-value></span>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{# /admin/federation: who this site's people are to the fediverse, who follows
|
|
2
2
|
each of them, what arrived in the inbox, and how what went out landed. #}
|
|
3
3
|
{% extends "layouts/shell.njk" %}
|
|
4
|
-
{% from "components/badge.njk" import status %}
|
|
4
|
+
{% from "components/badge.njk" import badge, status %}
|
|
5
5
|
{% from "components/button.njk" import button %}
|
|
6
6
|
{% from "components/card.njk" import card %}
|
|
7
7
|
{% from "components/table.njk" import table %}
|
|
@@ -154,11 +154,17 @@
|
|
|
154
154
|
{{ entry.action }}
|
|
155
155
|
{% endif %}
|
|
156
156
|
{% if entry.post %}
|
|
157
|
-
<a class="link" href="{{ entry.post.editUrl }}">{{ entry.post.title }}</a>
|
|
157
|
+
{% if entry.post.inThread %}in the thread on {% endif %}<a class="link" href="{{ entry.post.editUrl }}">{{ entry.post.title }}</a>
|
|
158
158
|
{% else %}
|
|
159
159
|
<em>something of ours</em>
|
|
160
160
|
{% endif %}
|
|
161
161
|
<span class="whitespace-nowrap text-sm">{{ entry.receivedAt | date('html') }}</span>
|
|
162
|
+
{% if entry.via.kind == 'fetched' %}
|
|
163
|
+
{{ badge('fetched', color='info', style='soft') }}
|
|
164
|
+
{% if entry.via.from %}<a class="link text-sm" href="{{ entry.via.from }}">from the replies to the note it answers</a>{% endif %}
|
|
165
|
+
{% elif entry.via.kind == 'delivered' %}
|
|
166
|
+
{{ badge('delivered') }}
|
|
167
|
+
{% endif %}
|
|
162
168
|
</li>
|
|
163
169
|
{% endfor %}
|
|
164
170
|
</ul>
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
{% if reload %}
|
|
33
33
|
<div id="plugins-reload" class="mb-8 max-w-prose">
|
|
34
34
|
{% call card(title="The plugins folder has changed") %}
|
|
35
|
-
<p>Reload starts a new server with the plugins folder as it is now, then retires this one. No request is turned away
|
|
35
|
+
<p>Reload starts a new server with the plugins folder as it is now, then retires this one. No request is turned away.{% if reload.watching %} The site also reloads by itself once the folder has stood still for a few seconds.{% endif %}</p>
|
|
36
36
|
<dl class="text-sm">
|
|
37
37
|
{% for heading, names in [["Added", reload.changes.added], ["Removed", reload.changes.removed], ["Updated", reload.changes.updated]] %}
|
|
38
38
|
{% if names.length %}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{% extends "layouts/shell.njk" %}
|
|
2
|
+
{% from "components/table.njk" import table %}
|
|
3
|
+
|
|
4
|
+
{% block title %}{{ heading }}{% endblock %}
|
|
5
|
+
|
|
6
|
+
{% block content %}
|
|
7
|
+
<h1 class="mb-6 text-2xl font-bold">{{ heading }}</h1>
|
|
8
|
+
|
|
9
|
+
<div class="flex flex-col gap-6">
|
|
10
|
+
<p class="max-w-prose">
|
|
11
|
+
{% if on %}
|
|
12
|
+
Dev mode is on. Nothing this site does reaches the outside world: no ActivityPub
|
|
13
|
+
delivery or relay follow, no webmention, no rssCloud or WebSub ping, no IndexNow
|
|
14
|
+
submission and no email. Each one is recorded here instead. Run
|
|
15
|
+
<code>geekity dev-mode off</code> to take the site live; nothing held is sent then.
|
|
16
|
+
{% else %}
|
|
17
|
+
Dev mode is off, and the site is live. This is what it held while it was on. To hold
|
|
18
|
+
everything again, run <code>geekity dev-mode on</code>.
|
|
19
|
+
{% endif %}
|
|
20
|
+
</p>
|
|
21
|
+
|
|
22
|
+
<p>{{ heldCount }} held in all{% if rows.length >= shown %}; the newest {{ shown }} entries are listed, and <code>data/dev-mode.jsonl</code> has the rest{% endif %}.</p>
|
|
23
|
+
|
|
24
|
+
{% if rows.length %}
|
|
25
|
+
{% call table('What dev mode held') %}
|
|
26
|
+
<thead>
|
|
27
|
+
<tr>
|
|
28
|
+
<th scope="col">When</th>
|
|
29
|
+
<th scope="col">What</th>
|
|
30
|
+
<th scope="col">Detail</th>
|
|
31
|
+
<th scope="col">Would have gone to</th>
|
|
32
|
+
</tr>
|
|
33
|
+
</thead>
|
|
34
|
+
<tbody>
|
|
35
|
+
{% for row in rows %}
|
|
36
|
+
<tr>
|
|
37
|
+
<td class="whitespace-nowrap"><time datetime="{{ row.at }}">{{ row.at }}</time></td>
|
|
38
|
+
<td class="whitespace-nowrap">{{ row.what }}</td>
|
|
39
|
+
<td class="break-all">{{ row.detail }}</td>
|
|
40
|
+
<td class="break-all">{% for to in row.to %}<div>{{ to }}</div>{% endfor %}</td>
|
|
41
|
+
</tr>
|
|
42
|
+
{% endfor %}
|
|
43
|
+
</tbody>
|
|
44
|
+
{% endcall %}
|
|
45
|
+
{% endif %}
|
|
46
|
+
</div>
|
|
47
|
+
{% endblock %}
|
package/admin/static/admin.css
CHANGED
|
@@ -5728,6 +5728,14 @@
|
|
|
5728
5728
|
padding: .1875rem;
|
|
5729
5729
|
}
|
|
5730
5730
|
|
|
5731
|
+
.radio-sm {
|
|
5732
|
+
padding: .1875rem;
|
|
5733
|
+
}
|
|
5734
|
+
|
|
5735
|
+
.radio-sm[type="radio"] {
|
|
5736
|
+
--size: calc(var(--size-selector, .25rem) * 5);
|
|
5737
|
+
}
|
|
5738
|
+
|
|
5731
5739
|
.table-lg :not(thead, tfoot) tr {
|
|
5732
5740
|
font-size: 1.125rem;
|
|
5733
5741
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/* The buttons running plugins put beside the editor's title, description and
|
|
2
2
|
tags (decision-33). Each posts the form as it stands to its plugin's
|
|
3
|
-
endpoint, which answers { ok, value }, { ok, choices }
|
|
4
|
-
message }, and shows
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
endpoint, which answers { ok, value }, { ok, choices }, { ok, message }
|
|
4
|
+
or { ok: false, message }, and shows a value or choices with Accept and
|
|
5
|
+
Dismiss, and a message in the status line alone. Choices come beside the
|
|
6
|
+
tags field, each drawn from the page's template row with a box to tick,
|
|
7
|
+
under a heading row wherever its group changes, and Accept adds the ticked
|
|
8
|
+
ones; or beside the title, as radio buttons with the first picked, and
|
|
9
|
+
Accept puts the picked one in the title. Accept fills the field and saves
|
|
10
|
+
nothing; a save is still only the form's own buttons.
|
|
9
11
|
|
|
10
12
|
A file rather than an inline script, loaded from the admin's own origin
|
|
11
13
|
like slug.js, so the admin's policy stays `script-src 'self'` and
|
|
@@ -146,10 +148,12 @@
|
|
|
146
148
|
list.hidden = false;
|
|
147
149
|
suggestion.hidden = false;
|
|
148
150
|
say('');
|
|
149
|
-
list.querySelector('input')
|
|
151
|
+
var first = list.querySelector('input');
|
|
152
|
+
if (first.type === 'radio') first.checked = true;
|
|
153
|
+
first.focus();
|
|
150
154
|
return;
|
|
151
155
|
}
|
|
152
|
-
if (answer.ok) {
|
|
156
|
+
if (answer.ok && typeof answer.value === 'string') {
|
|
153
157
|
offered = String(answer.value);
|
|
154
158
|
text.textContent = offered;
|
|
155
159
|
text.hidden = false;
|
|
@@ -159,7 +163,7 @@
|
|
|
159
163
|
accept.focus();
|
|
160
164
|
return;
|
|
161
165
|
}
|
|
162
|
-
say(String(answer.message),
|
|
166
|
+
say(String(answer.message), !answer.ok);
|
|
163
167
|
if (answer.withdrawn) press.hidden = true;
|
|
164
168
|
})
|
|
165
169
|
.catch(function (error) {
|