@geekity/cms 0.34.0 → 0.36.1
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/admin/components/job-status.njk +15 -10
- package/admin/components/upload.njk +26 -0
- package/admin/pages/documents/chooser.njk +30 -0
- package/admin/pages/documents/editor.njk +410 -165
- package/admin/pages/federation/followers.njk +2 -1
- package/admin/pages/media/file.njk +143 -0
- package/admin/pages/media/library.njk +107 -198
- package/admin/pages/settings/general.njk +52 -2
- package/admin/pages/settings/privacy.njk +1 -1
- package/admin/pages/tools/export.njk +54 -51
- package/admin/pages/tools/maintenance.njk +49 -0
- package/admin/pages/users/edit.njk +3 -0
- package/admin/src/admin.css +2 -0
- package/admin/static/admin.css +843 -106
- package/admin/static/copy.js +30 -23
- package/admin/static/item-lookup.js +179 -0
- package/admin/static/job-status.js +158 -0
- package/admin/static/media.js +82 -0
- package/admin/static/upload-drop.js +225 -0
- package/dist/admin/documents.d.ts.map +1 -1
- package/dist/admin/documents.js +141 -24
- package/dist/admin/documents.js.map +1 -1
- package/dist/admin/editor-actions.d.ts.map +1 -1
- package/dist/admin/editor-actions.js +2 -3
- package/dist/admin/editor-actions.js.map +1 -1
- package/dist/admin/editor-fields.d.ts +20 -8
- package/dist/admin/editor-fields.d.ts.map +1 -1
- package/dist/admin/editor-fields.js +35 -12
- package/dist/admin/editor-fields.js.map +1 -1
- package/dist/admin/editor-kinds.d.ts +30 -0
- package/dist/admin/editor-kinds.d.ts.map +1 -0
- package/dist/admin/editor-kinds.js +136 -0
- package/dist/admin/editor-kinds.js.map +1 -0
- package/dist/admin/editor-layout.d.ts +10 -1
- package/dist/admin/editor-layout.d.ts.map +1 -1
- package/dist/admin/editor-layout.js +38 -31
- package/dist/admin/editor-layout.js.map +1 -1
- package/dist/admin/federation.d.ts +1 -1
- package/dist/admin/federation.d.ts.map +1 -1
- package/dist/admin/federation.js +2 -1
- package/dist/admin/federation.js.map +1 -1
- package/dist/admin/formatting.d.ts +2 -0
- package/dist/admin/formatting.d.ts.map +1 -1
- package/dist/admin/formatting.js +8 -0
- package/dist/admin/formatting.js.map +1 -1
- package/dist/admin/index.d.ts +1 -1
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/item-lookup.d.ts +16 -0
- package/dist/admin/item-lookup.d.ts.map +1 -0
- package/dist/admin/item-lookup.js +192 -0
- package/dist/admin/item-lookup.js.map +1 -0
- package/dist/admin/job-status.d.ts +1 -0
- package/dist/admin/job-status.d.ts.map +1 -1
- package/dist/admin/job-status.js +1 -0
- package/dist/admin/job-status.js.map +1 -1
- package/dist/admin/maintenance.d.ts +2 -0
- package/dist/admin/maintenance.d.ts.map +1 -1
- package/dist/admin/maintenance.js +14 -0
- package/dist/admin/maintenance.js.map +1 -1
- package/dist/admin/media.d.ts +47 -36
- package/dist/admin/media.d.ts.map +1 -1
- package/dist/admin/media.js +293 -68
- package/dist/admin/media.js.map +1 -1
- package/dist/admin/preview.d.ts.map +1 -1
- package/dist/admin/preview.js +9 -12
- 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-general.d.ts +6 -0
- package/dist/admin/settings-general.d.ts.map +1 -1
- package/dist/admin/settings-general.js +46 -1
- package/dist/admin/settings-general.js.map +1 -1
- package/dist/admin/templates.d.ts +2 -0
- package/dist/admin/templates.d.ts.map +1 -1
- package/dist/admin/templates.js +4 -0
- package/dist/admin/templates.js.map +1 -1
- package/dist/admin/uploads.d.ts +2 -1
- package/dist/admin/uploads.d.ts.map +1 -1
- package/dist/admin/uploads.js +5 -2
- package/dist/admin/uploads.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -1
- package/dist/cli.js.map +1 -1
- package/dist/cms/app.d.ts.map +1 -1
- package/dist/cms/app.js +1 -0
- package/dist/cms/app.js.map +1 -1
- package/dist/cms/services.d.ts +2 -0
- package/dist/cms/services.d.ts.map +1 -1
- package/dist/cms/services.js +13 -0
- package/dist/cms/services.js.map +1 -1
- package/dist/content/document-form.d.ts +5 -13
- package/dist/content/document-form.d.ts.map +1 -1
- package/dist/content/document-form.js +2 -3
- package/dist/content/document-form.js.map +1 -1
- package/dist/content/excerpt.d.ts +1 -3
- package/dist/content/excerpt.d.ts.map +1 -1
- package/dist/content/excerpt.js +2 -7
- package/dist/content/excerpt.js.map +1 -1
- package/dist/content/post-fields.d.ts +1 -1
- package/dist/content/post-fields.d.ts.map +1 -1
- package/dist/content/post-fields.js +30 -35
- package/dist/content/post-fields.js.map +1 -1
- package/dist/content/post-type.d.ts +2 -3
- package/dist/content/post-type.d.ts.map +1 -1
- package/dist/content/post-type.js +8 -9
- package/dist/content/post-type.js.map +1 -1
- package/dist/content/review-form.d.ts +49 -0
- package/dist/content/review-form.d.ts.map +1 -0
- package/dist/content/review-form.js +282 -0
- package/dist/content/review-form.js.map +1 -0
- package/dist/content/review.d.ts +57 -0
- package/dist/content/review.d.ts.map +1 -0
- package/dist/content/review.js +264 -0
- package/dist/content/review.js.map +1 -0
- package/dist/content/write.d.ts.map +1 -1
- package/dist/content/write.js +6 -9
- package/dist/content/write.js.map +1 -1
- package/dist/exports.d.ts +1 -1
- package/dist/exports.d.ts.map +1 -1
- package/dist/federation/article.d.ts.map +1 -1
- package/dist/federation/article.js +27 -29
- package/dist/federation/article.js.map +1 -1
- package/dist/federation/federation.d.ts +3 -0
- package/dist/federation/federation.d.ts.map +1 -1
- package/dist/federation/federation.js +5 -1
- package/dist/federation/federation.js.map +1 -1
- package/dist/federation/refusals.d.ts +18 -0
- package/dist/federation/refusals.d.ts.map +1 -0
- package/dist/federation/refusals.js +84 -0
- package/dist/federation/refusals.js.map +1 -0
- package/dist/images/variants.d.ts +1 -0
- package/dist/images/variants.d.ts.map +1 -1
- package/dist/images/variants.js +10 -0
- package/dist/images/variants.js.map +1 -1
- package/dist/item-lookup/item-id.d.ts +33 -0
- package/dist/item-lookup/item-id.d.ts.map +1 -0
- package/dist/item-lookup/item-id.js +71 -0
- package/dist/item-lookup/item-id.js.map +1 -0
- package/dist/item-lookup/lookup.d.ts +58 -0
- package/dist/item-lookup/lookup.d.ts.map +1 -0
- package/dist/item-lookup/lookup.js +532 -0
- package/dist/item-lookup/lookup.js.map +1 -0
- package/dist/media/library.d.ts +9 -0
- package/dist/media/library.d.ts.map +1 -1
- package/dist/media/library.js +25 -1
- package/dist/media/library.js.map +1 -1
- package/dist/micropub/create.d.ts +1 -1
- package/dist/micropub/create.d.ts.map +1 -1
- package/dist/micropub/create.js +4 -2
- package/dist/micropub/create.js.map +1 -1
- package/dist/micropub/endpoint.d.ts.map +1 -1
- package/dist/micropub/endpoint.js +3 -10
- package/dist/micropub/endpoint.js.map +1 -1
- package/dist/micropub/update.d.ts.map +1 -1
- package/dist/micropub/update.js +12 -6
- package/dist/micropub/update.js.map +1 -1
- package/dist/plugin.d.ts +26 -2
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js.map +1 -1
- package/dist/settings/names.d.ts +1 -1
- package/dist/settings/names.d.ts.map +1 -1
- package/dist/settings/names.js +8 -1
- package/dist/settings/names.js.map +1 -1
- package/dist/settings/registry.d.ts.map +1 -1
- package/dist/settings/registry.js +2 -1
- package/dist/settings/registry.js.map +1 -1
- package/dist/settings/tmdb.d.ts +5 -0
- package/dist/settings/tmdb.d.ts.map +1 -0
- package/dist/settings/tmdb.js +22 -0
- package/dist/settings/tmdb.js.map +1 -0
- package/dist/store/profiles.d.ts +3 -2
- package/dist/store/profiles.d.ts.map +1 -1
- package/dist/store/profiles.js +2 -4
- package/dist/store/profiles.js.map +1 -1
- package/dist/web/context.d.ts +9 -21
- package/dist/web/context.d.ts.map +1 -1
- package/dist/web/context.js +20 -20
- package/dist/web/context.js.map +1 -1
- package/dist/web/feed-item.d.ts +6 -6
- package/dist/web/feed-item.d.ts.map +1 -1
- package/dist/web/feed-item.js +7 -3
- package/dist/web/feed-item.js.map +1 -1
- package/dist/web/plugin-federation.d.ts +2 -0
- package/dist/web/plugin-federation.d.ts.map +1 -1
- package/dist/web/plugin-federation.js +3 -0
- package/dist/web/plugin-federation.js.map +1 -1
- package/dist/webmention/cited-picture.d.ts +1 -0
- package/dist/webmention/cited-picture.d.ts.map +1 -1
- package/dist/webmention/cited-picture.js +7 -4
- package/dist/webmention/cited-picture.js.map +1 -1
- package/dist/webmention/fetch-public.d.ts +3 -0
- package/dist/webmention/fetch-public.d.ts.map +1 -1
- package/dist/webmention/fetch-public.js +1 -1
- package/dist/webmention/fetch-public.js.map +1 -1
- package/dist/webmention/reply-context/json-ld.d.ts +8 -0
- package/dist/webmention/reply-context/json-ld.d.ts.map +1 -1
- package/dist/webmention/reply-context/json-ld.js +21 -0
- package/dist/webmention/reply-context/json-ld.js.map +1 -1
- package/dist/webmention/service.d.ts.map +1 -1
- package/dist/webmention/service.js +3 -5
- package/dist/webmention/service.js.map +1 -1
- package/package.json +6 -1
- package/themes/default/layouts/post.njk +6 -5
- package/themes/default/partials/post-list.njk +15 -20
- package/themes/default/partials/review.njk +1 -0
- package/themes/default/src/style.css +24 -4
- package/themes/default/static/style.css +33 -5
- package/dist/comments/routes.d.ts +0 -65
- package/dist/comments/routes.d.ts.map +0 -1
- package/dist/comments/routes.js +0 -235
- package/dist/comments/routes.js.map +0 -1
- package/dist/content/media.d.ts +0 -85
- package/dist/content/media.d.ts.map +0 -1
- package/dist/content/media.js +0 -237
- package/dist/content/media.js.map +0 -1
- package/dist/content/read-form.d.ts +0 -31
- package/dist/content/read-form.d.ts.map +0 -1
- package/dist/content/read-form.js +0 -157
- package/dist/content/read-form.js.map +0 -1
- package/dist/content/read.d.ts +0 -29
- package/dist/content/read.d.ts.map +0 -1
- package/dist/content/read.js +0 -82
- package/dist/content/read.js.map +0 -1
- package/dist/export/export-archives.d.ts +0 -29
- package/dist/export/export-archives.d.ts.map +0 -1
- package/dist/export/export-archives.js +0 -88
- package/dist/export/export-archives.js.map +0 -1
- package/dist/federation/mount.d.ts +0 -53
- package/dist/federation/mount.d.ts.map +0 -1
- package/dist/federation/mount.js +0 -344
- package/dist/federation/mount.js.map +0 -1
- package/dist/mail/credentials.d.ts +0 -62
- package/dist/mail/credentials.d.ts.map +0 -1
- package/dist/mail/credentials.js +0 -86
- package/dist/mail/credentials.js.map +0 -1
- package/dist/site/setting-rows.d.ts +0 -45
- package/dist/site/setting-rows.d.ts.map +0 -1
- package/dist/site/setting-rows.js +0 -361
- package/dist/site/setting-rows.js.map +0 -1
- package/dist/site/settings-form.d.ts +0 -30
- package/dist/site/settings-form.d.ts.map +0 -1
- package/dist/site/settings-form.js +0 -54
- package/dist/site/settings-form.js.map +0 -1
- package/dist/site/site-json.d.ts +0 -38
- package/dist/site/site-json.d.ts.map +0 -1
- package/dist/site/site-json.js +0 -69
- package/dist/site/site-json.js.map +0 -1
- package/dist/webmention/routes.d.ts +0 -37
- package/dist/webmention/routes.d.ts.map +0 -1
- package/dist/webmention/routes.js +0 -75
- package/dist/webmention/routes.js.map +0 -1
- package/themes/default/partials/read.njk +0 -5
|
@@ -29,61 +29,64 @@
|
|
|
29
29
|
site, wait until none are, and look again here.
|
|
30
30
|
</p>
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
{%
|
|
38
|
-
|
|
39
|
-
{{ result.files }} {% if result.files == 1 %}file{% else %}files{% endif %},
|
|
40
|
-
{{ result.size }} before compression, {% if result.credentials %}with{% else %}without{% endif %} credentials.
|
|
41
|
-
</p>
|
|
42
|
-
{% if result.credentialsLeftOut.length %}
|
|
43
|
-
<p>Credentials left out: {{ result.credentialsLeftOut | join(', ') }}.</p>
|
|
44
|
-
{% endif %}
|
|
45
|
-
{% if result.undeclared.length %}
|
|
46
|
-
<p>Left out because no declaration says what they are:</p>
|
|
47
|
-
<ul class="list-disc pl-6">
|
|
48
|
-
{% for file in result.undeclared %}<li><code class="break-all">{{ file }}</code></li>{% endfor %}
|
|
49
|
-
</ul>
|
|
50
|
-
{% endif %}
|
|
51
|
-
{% if result.notCarried.length %}
|
|
52
|
-
<p>Left out because an export holds only regular files:</p>
|
|
53
|
-
<ul class="list-disc pl-6">
|
|
54
|
-
{% for entry in result.notCarried %}<li><code class="break-all">{{ entry.path }}</code>, {{ entry.why }}</li>{% endfor %}
|
|
55
|
-
</ul>
|
|
56
|
-
{% endif %}
|
|
57
|
-
{% if archive %}
|
|
32
|
+
<div class="flex flex-col gap-6" data-job-region>
|
|
33
|
+
{% if job %}
|
|
34
|
+
<section id="export-status" aria-labelledby="export-status-heading">
|
|
35
|
+
{% call card() %}
|
|
36
|
+
<h2 id="export-status-heading" class="card-title">Latest export</h2>
|
|
37
|
+
{% call jobStatus(job, exportUrl, verb='Exported', unit='files') %}
|
|
38
|
+
{% if result %}
|
|
58
39
|
<p>
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
or when the next export finishes.
|
|
40
|
+
{{ result.files }} {% if result.files == 1 %}file{% else %}files{% endif %},
|
|
41
|
+
{{ result.size }} before compression, {% if result.credentials %}with{% else %}without{% endif %} credentials.
|
|
62
42
|
</p>
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
43
|
+
{% if result.credentialsLeftOut.length %}
|
|
44
|
+
<p>Credentials left out: {{ result.credentialsLeftOut | join(', ') }}.</p>
|
|
45
|
+
{% endif %}
|
|
46
|
+
{% if result.undeclared.length %}
|
|
47
|
+
<p>Left out because no declaration says what they are:</p>
|
|
48
|
+
<ul class="list-disc pl-6">
|
|
49
|
+
{% for file in result.undeclared %}<li><code class="break-all">{{ file }}</code></li>{% endfor %}
|
|
50
|
+
</ul>
|
|
51
|
+
{% endif %}
|
|
52
|
+
{% if result.notCarried.length %}
|
|
53
|
+
<p>Left out because an export holds only regular files:</p>
|
|
54
|
+
<ul class="list-disc pl-6">
|
|
55
|
+
{% for entry in result.notCarried %}<li><code class="break-all">{{ entry.path }}</code>, {{ entry.why }}</li>{% endfor %}
|
|
56
|
+
</ul>
|
|
57
|
+
{% endif %}
|
|
58
|
+
{% if archive %}
|
|
59
|
+
<p>
|
|
60
|
+
<code class="break-all">{{ archive.name }}</code> is deleted at
|
|
61
|
+
<time datetime="{{ archive.expiresAt }}">{{ archive.expiresAt | date('datetime') }}</time>,
|
|
62
|
+
or when the next export finishes.
|
|
63
|
+
</p>
|
|
64
|
+
<div>{{ buttonLink('Download ' + archive.size, downloadUrl, color='primary') }}</div>
|
|
65
|
+
{% else %}
|
|
66
|
+
<p>The archive was deleted 24 hours after it was written, or a later export replaced it. Export again to download one.</p>
|
|
67
|
+
{% endif %}
|
|
66
68
|
{% endif %}
|
|
67
|
-
{%
|
|
69
|
+
{% endcall %}
|
|
68
70
|
{% endcall %}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
{% endif %}
|
|
71
|
+
</section>
|
|
72
|
+
{% endif %}
|
|
72
73
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
74
|
+
{% if not job or not job.active %}
|
|
75
|
+
{% call card(title='Export the site') %}
|
|
76
|
+
<form method="post" action="{{ exportUrl }}">
|
|
77
|
+
<input type="hidden" name="csrf_token" value="{{ csrfToken }}" />
|
|
78
|
+
{{ field.checkbox('export-with-credentials', fields.withCredentials,
|
|
79
|
+
'Include credentials', checked=withCredentials,
|
|
80
|
+
hint='API keys and logins for other services, such as an email provider. Left out, they are typed in again after an import.') }}
|
|
81
|
+
{{ field.password('export-password', fields.password, 'Your password',
|
|
82
|
+
error=problem, autocomplete='current-password', required=true) }}
|
|
83
|
+
{% call cardActions() %}
|
|
84
|
+
{{ button('Export', type='submit', color='primary') }}
|
|
85
|
+
{% endcall %}
|
|
86
|
+
</form>
|
|
87
|
+
{% endcall %}
|
|
88
|
+
{% endif %}
|
|
89
|
+
</div>
|
|
88
90
|
</div>
|
|
91
|
+
<script defer src="{{ assetPrefix }}job-status.js"></script>
|
|
89
92
|
{% endblock %}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
{% from "components/alert.njk" import alert %}
|
|
4
4
|
{% from "components/button.njk" import button %}
|
|
5
5
|
{% from "components/card.njk" import card, cardActions %}
|
|
6
|
+
{% from "components/job-status.njk" import jobStatus %}
|
|
6
7
|
|
|
7
8
|
{% block title %}{{ heading }}{% endblock %}
|
|
8
9
|
|
|
@@ -47,5 +48,53 @@
|
|
|
47
48
|
<code>geekity maintenance on</code> and <code>off</code> at the command line turn the
|
|
48
49
|
same switch, and a running site notices either within a second.
|
|
49
50
|
</p>
|
|
51
|
+
|
|
52
|
+
<section id="strip-metadata" aria-labelledby="strip-metadata-heading" data-job-region>
|
|
53
|
+
{% call card() %}
|
|
54
|
+
<h2 id="strip-metadata-heading" class="card-title">Location and camera metadata</h2>
|
|
55
|
+
<p class="max-w-prose">
|
|
56
|
+
Location and camera metadata is removed from pictures and videos as they are
|
|
57
|
+
uploaded. Files uploaded before that keep theirs until this sweep runs over
|
|
58
|
+
<code>content/uploads/</code>. It runs in the background, leaves a clean file
|
|
59
|
+
as it is, and keeps each file's modification time.
|
|
60
|
+
</p>
|
|
61
|
+
{% if sweep %}
|
|
62
|
+
{% call jobStatus(sweep, saveUrl + '#strip-metadata', verb='Checked', unit='files') %}
|
|
63
|
+
{% if sweepReport %}
|
|
64
|
+
<p>
|
|
65
|
+
Checked {{ sweepReport.checked }} {% if sweepReport.checked == 1 %}file{% else %}files{% endif %}:
|
|
66
|
+
{{ sweepReport.stripped.length }} stripped, {{ sweepReport.clean }} already clean,
|
|
67
|
+
{{ sweepReport.unreadable.length }} unreadable.
|
|
68
|
+
</p>
|
|
69
|
+
{% if sweepReport.stripped.length %}
|
|
70
|
+
<h3 class="font-semibold">Stripped</h3>
|
|
71
|
+
<ul class="list-disc pl-6">
|
|
72
|
+
{% for file in sweepReport.stripped %}
|
|
73
|
+
<li><code class="break-all">{{ file.path }}</code>: removed {{ file.removed | join(', ') }}</li>
|
|
74
|
+
{% endfor %}
|
|
75
|
+
</ul>
|
|
76
|
+
{% endif %}
|
|
77
|
+
{% if sweepReport.unreadable.length %}
|
|
78
|
+
<h3 class="font-semibold">Left as they were</h3>
|
|
79
|
+
<ul class="list-disc pl-6">
|
|
80
|
+
{% for file in sweepReport.unreadable %}
|
|
81
|
+
<li><code class="break-all">{{ file.path }}</code>: {{ file.problem }}</li>
|
|
82
|
+
{% endfor %}
|
|
83
|
+
</ul>
|
|
84
|
+
{% endif %}
|
|
85
|
+
{% endif %}
|
|
86
|
+
{% endcall %}
|
|
87
|
+
{% endif %}
|
|
88
|
+
{% if not sweep or not sweep.active %}
|
|
89
|
+
<form method="post" action="{{ stripMetadataUrl }}">
|
|
90
|
+
<input type="hidden" name="csrf_token" value="{{ csrfToken }}" />
|
|
91
|
+
{% call cardActions() %}
|
|
92
|
+
{{ button('Run the sweep again' if sweep else 'Strip metadata from every upload', type='submit', color='primary') }}
|
|
93
|
+
{% endcall %}
|
|
94
|
+
</form>
|
|
95
|
+
{% endif %}
|
|
96
|
+
{% endcall %}
|
|
97
|
+
</section>
|
|
50
98
|
</div>
|
|
99
|
+
<script defer src="{{ assetPrefix }}job-status.js"></script>
|
|
51
100
|
{% endblock %}
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
{% from "components/badge.njk" import badge, status %}
|
|
16
16
|
{% from "components/button.njk" import button %}
|
|
17
17
|
{% from "components/card.njk" import card, cardActions %}
|
|
18
|
+
{% from "components/upload.njk" import uploadControl %}
|
|
18
19
|
|
|
19
20
|
{% block title %}Edit {{ account.username }}{% endblock %}
|
|
20
21
|
|
|
@@ -97,6 +98,7 @@
|
|
|
97
98
|
{% set avatarHint %}A path such as <code>/uploads/2026/09/me.jpg</code>, or a full URL.{% endset %}
|
|
98
99
|
{{ field.text('profile-avatar', fields.avatar, 'Avatar', account.profile.avatar,
|
|
99
100
|
hintHtml=avatarHint) }}
|
|
101
|
+
{{ uploadControl('field', 'profile-avatar', uploadsUrl, images=true) }}
|
|
100
102
|
|
|
101
103
|
{{ field.text('profile-job-title', fields.jobTitle, 'Job title', account.profile.jobTitle,
|
|
102
104
|
hint='What they do, printed beside the name on the archive.') }}
|
|
@@ -280,4 +282,5 @@
|
|
|
280
282
|
{% endif %}
|
|
281
283
|
{% endcall %}
|
|
282
284
|
</div>
|
|
285
|
+
<script defer src="{{ assetPrefix }}upload-drop.js"></script>
|
|
283
286
|
{% endblock %}
|