domma-cms 0.44.0 → 0.45.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/CLAUDE.md +53 -53
- package/README.md +27 -27
- package/admin/css/admin.css +1 -1
- package/admin/dist/domma/domma-tools.css +3 -3
- package/admin/dist/domma/domma-tools.min.js +3 -3
- package/admin/index.html +2 -2
- package/admin/js/app.js +1 -1
- package/admin/js/lib/card-builder.js +2 -2
- package/admin/js/lib/crud-tutorial.js +1 -1
- package/admin/js/lib/effect-defs.js +1 -1
- package/admin/js/lib/effects-builder.js +1 -1
- package/admin/js/lib/image-editor.js +1 -1
- package/admin/js/lib/markdown-toolbar.js +2 -2
- package/admin/js/lib/project-context.js +1 -1
- package/admin/js/lib/project-quick-create.js +1 -1
- package/admin/js/lib/scribe-composer.js +1 -1
- package/admin/js/lib/server-restart.js +1 -1
- package/admin/js/lib/shortcode-context-menu.js +2 -2
- package/admin/js/lib/simple-editor.js +1 -1
- package/admin/js/lib/themes.js +1 -1
- package/admin/js/lib/timeline-builder.js +1 -1
- package/admin/js/templates/action-editor.html +8 -8
- package/admin/js/templates/api-endpoint-editor.html +7 -7
- package/admin/js/templates/api-endpoints.html +1 -1
- package/admin/js/templates/api-reference.html +1 -1
- package/admin/js/templates/block-editor.html +6 -6
- package/admin/js/templates/collection-editor.html +1 -1
- package/admin/js/templates/component-editor.html +2 -2
- package/admin/js/templates/dashboard/cache.html +3 -3
- package/admin/js/templates/dashboard/journeys.html +3 -3
- package/admin/js/templates/dashboard/kpi-strip.html +3 -3
- package/admin/js/templates/dashboard/top-pages.html +1 -1
- package/admin/js/templates/dashboard/traffic-chart.html +1 -1
- package/admin/js/templates/docs/api-actions.html +1 -1
- package/admin/js/templates/docs/api-collections.html +4 -4
- package/admin/js/templates/docs/api-pages.html +2 -2
- package/admin/js/templates/docs/api-plugins.html +1 -1
- package/admin/js/templates/docs/api-settings.html +2 -2
- package/admin/js/templates/docs/api-users.html +1 -1
- package/admin/js/templates/docs/components-howto.html +4 -4
- package/admin/js/templates/docs/components-reference.html +21 -21
- package/admin/js/templates/docs/components-rules.html +14 -14
- package/admin/js/templates/docs/components-walkthrough.html +13 -13
- package/admin/js/templates/docs/tutorial-crud.html +49 -49
- package/admin/js/templates/docs/tutorial-forms.html +4 -4
- package/admin/js/templates/docs/tutorial-plugin.html +10 -10
- package/admin/js/templates/docs/usage-actions.html +6 -6
- package/admin/js/templates/docs/usage-cta-shortcode.html +9 -9
- package/admin/js/templates/docs/usage-dconfig.html +4 -4
- package/admin/js/templates/docs/usage-navigation.html +1 -1
- package/admin/js/templates/docs/usage-pages.html +1 -1
- package/admin/js/templates/docs/usage-shortcodes.html +24 -24
- package/admin/js/templates/docs/usage-users-roles.html +3 -3
- package/admin/js/templates/docs/usage-views.html +4 -4
- package/admin/js/templates/documentation.html +1 -1
- package/admin/js/templates/effects.html +752 -752
- package/admin/js/templates/form-editor.html +5 -5
- package/admin/js/templates/forms.html +17 -17
- package/admin/js/templates/login.html +5 -5
- package/admin/js/templates/menu-editor.html +10 -10
- package/admin/js/templates/my-profile.html +17 -17
- package/admin/js/templates/navigation.html +11 -11
- package/admin/js/templates/notifications.html +1 -1
- package/admin/js/templates/page-editor.html +4 -4
- package/admin/js/templates/pro-docs.html +14 -14
- package/admin/js/templates/role-editor.html +70 -70
- package/admin/js/templates/roles.html +10 -10
- package/admin/js/templates/settings.html +10 -10
- package/admin/js/templates/tutorials.html +3 -3
- package/admin/js/templates/view-editor.html +15 -15
- package/admin/js/views/action-editor.js +1 -1
- package/admin/js/views/actions-list.js +1 -1
- package/admin/js/views/api-endpoint-editor.js +2 -2
- package/admin/js/views/api-endpoints.js +2 -2
- package/admin/js/views/api-tokens.js +3 -3
- package/admin/js/views/blocks.js +2 -2
- package/admin/js/views/collection-editor.js +1 -1
- package/admin/js/views/collection-entries.js +1 -1
- package/admin/js/views/collections.js +1 -1
- package/admin/js/views/component-editor.js +1 -1
- package/admin/js/views/components.js +4 -4
- package/admin/js/views/dashboard/widgets/cache.js +1 -1
- package/admin/js/views/dashboard/widgets/journeys.js +1 -1
- package/admin/js/views/dashboard/widgets/kpi-strip.js +1 -1
- package/admin/js/views/form-editor.js +7 -7
- package/admin/js/views/form-submissions.js +1 -1
- package/admin/js/views/forms.js +1 -1
- package/admin/js/views/layouts.js +1 -1
- package/admin/js/views/login.js +2 -2
- package/admin/js/views/menu-editor.js +3 -3
- package/admin/js/views/menu-locations.js +1 -1
- package/admin/js/views/menus.js +3 -3
- package/admin/js/views/navigation.js +8 -8
- package/admin/js/views/page-editor.js +40 -40
- package/admin/js/views/pages.js +3 -3
- package/admin/js/views/plugin-code.js +2 -2
- package/admin/js/views/plugins.js +1 -1
- package/admin/js/views/project-settings.js +1 -1
- package/admin/js/views/projects.js +1 -1
- package/admin/js/views/roles.js +1 -1
- package/admin/js/views/user-editor.js +1 -1
- package/admin/js/views/users.js +3 -3
- package/admin/js/views/view-editor.js +1 -1
- package/admin/js/views/view-preview.js +1 -1
- package/admin/js/views/views-list.js +1 -1
- package/bin/cli.js +8 -8
- package/bin/lib/config-merge.js +44 -44
- package/bin/update.js +16 -16
- package/config/plugins.json +1 -1
- package/package.json +2 -2
- package/plugins/_template/admin/views/index.js +1 -1
- package/plugins/_template/config.js +1 -1
- package/plugins/_template/plugin.js +1 -1
- package/plugins/analytics/admin/templates/analytics.html +3 -3
- package/plugins/analytics/admin/views/analytics.js +1 -1
- package/plugins/analytics/config.js +1 -1
- package/plugins/analytics/plugin.js +4 -4
- package/plugins/analytics/plugin.json +1 -1
- package/plugins/analytics/public/inject-body.html +2 -2
- package/plugins/analytics/public/inject-head.html +1 -1
- package/plugins/blog/admin/templates/blog.html +4 -4
- package/plugins/blog/admin/views/blog.js +3 -3
- package/plugins/blog/admin/views/categories.js +2 -2
- package/plugins/blog/admin/views/comments.js +4 -4
- package/plugins/blog/admin/views/post-editor.js +1 -1
- package/plugins/blog/plugin.js +2 -2
- package/plugins/blog/plugin.json +4 -4
- package/plugins/contacts/admin/views/contacts.js +8 -8
- package/plugins/contacts/plugin.js +4 -4
- package/plugins/contacts/plugin.json +1 -1
- package/plugins/invoice/admin/templates/editor.html +6 -6
- package/plugins/invoice/admin/templates/index.html +4 -4
- package/plugins/invoice/admin/views/editor.js +3 -3
- package/plugins/invoice/admin/views/index.js +4 -4
- package/plugins/invoice/admin/views/issuers.js +1 -1
- package/plugins/invoice/admin/views/party-view.js +3 -3
- package/plugins/invoice/admin/views/receivers.js +1 -1
- package/plugins/invoice/config.js +1 -1
- package/plugins/invoice/plugin.js +1 -1
- package/plugins/invoice/plugin.json +4 -4
- package/plugins/notes/admin/views/notes.js +4 -4
- package/plugins/notes/plugin.js +1 -1
- package/plugins/notes/plugin.json +1 -1
- package/plugins/site-search/admin/templates/site-search.html +3 -3
- package/plugins/site-search/admin/views/site-search.js +1 -1
- package/plugins/site-search/config.js +1 -1
- package/plugins/site-search/plugin.js +4 -4
- package/plugins/site-search/plugin.json +1 -1
- package/plugins/surveys/admin/templates/results.html +1 -1
- package/plugins/surveys/admin/templates/survey-editor.html +4 -4
- package/plugins/surveys/admin/views/audience.js +6 -6
- package/plugins/surveys/admin/views/results.js +3 -3
- package/plugins/surveys/admin/views/survey-editor.js +1 -1
- package/plugins/surveys/admin/views/surveys.js +2 -2
- package/plugins/surveys/plugin.js +1 -1
- package/plugins/surveys/plugin.json +4 -4
- package/plugins/theme-switcher/admin/views/theme-switcher.js +1 -1
- package/plugins/theme-switcher/plugin.json +3 -3
- package/plugins/theme-switcher/public/inject-body.html +28 -28
- package/plugins/theme-switcher/public/inject-head.html +1 -1
- package/plugins/todo/plugin.js +1 -1
- package/public/css/forms.css +1 -1
- package/public/js/collection-browser.js +1 -1
- package/public/js/collection-context.js +1 -1
- package/public/js/form-logic-engine.js +1 -1
- package/public/js/forms.js +2 -1
- package/public/js/site.js +1 -1
- package/scripts/build.js +14 -14
- package/scripts/create-plugin.js +2 -2
- package/scripts/fresh.js +2 -2
- package/scripts/gen-instance-secret.js +1 -1
- package/scripts/pro.js +12 -12
- package/scripts/reset.js +2 -2
- package/scripts/setup.js +15 -15
- package/scripts/users.js +5 -5
- package/scripts/verify-assets.mjs +6 -6
- package/server/config.js +1 -1
- package/server/middleware/auth.js +253 -253
- package/server/middleware/managerAuth.js +3 -3
- package/server/routes/api/actions.js +4 -4
- package/server/routes/api/api-endpoints.js +7 -7
- package/server/routes/api/api-tokens.js +5 -5
- package/server/routes/api/auth.js +309 -309
- package/server/routes/api/blocks.js +3 -3
- package/server/routes/api/collections.js +18 -18
- package/server/routes/api/dashboard.js +5 -5
- package/server/routes/api/effects.js +2 -2
- package/server/routes/api/endpoints-public.js +5 -5
- package/server/routes/api/forms.js +47 -47
- package/server/routes/api/menu-locations.js +3 -3
- package/server/routes/api/menus.js +7 -7
- package/server/routes/api/navigation.js +42 -42
- package/server/routes/api/notifications.js +2 -2
- package/server/routes/api/pages.js +14 -2
- package/server/routes/api/plugin-marketplace.js +3 -3
- package/server/routes/api/plugins.js +6 -6
- package/server/routes/api/projects.js +9 -9
- package/server/routes/api/scaffold.js +7 -7
- package/server/routes/api/settings.js +6 -6
- package/server/routes/api/sidebar.js +1 -1
- package/server/routes/api/users.js +5 -5
- package/server/routes/api/versions.js +1 -1
- package/server/routes/api/views.js +1 -1
- package/server/routes/docs-public.js +3 -3
- package/server/routes/public.js +14 -14
- package/server/server.js +34 -16
- package/server/services/actions.js +19 -19
- package/server/services/adapters/FileAdapter.js +2 -2
- package/server/services/adapters/MongoAdapter.js +5 -5
- package/server/services/apiEndpoints.js +15 -15
- package/server/services/apiTokens.js +7 -7
- package/server/services/blocks.js +13 -13
- package/server/services/cache/drivers/MemoryDriver.js +3 -3
- package/server/services/cache/drivers/NoneDriver.js +1 -1
- package/server/services/cache/index.js +5 -5
- package/server/services/collections.js +14 -14
- package/server/services/components.js +9 -9
- package/server/services/connectionManager.js +4 -4
- package/server/services/content.js +25 -2
- package/server/services/docs.js +14 -14
- package/server/services/email.js +167 -167
- package/server/services/filterEngine.js +6 -6
- package/server/services/forms.js +18 -10
- package/server/services/health.js +1 -1
- package/server/services/hooks.js +7 -7
- package/server/services/images.js +4 -4
- package/server/services/managerClient.js +1 -1
- package/server/services/markdown.js +79 -79
- package/server/services/menuRender.js +5 -5
- package/server/services/menus-migration.js +3 -3
- package/server/services/menus.js +31 -31
- package/server/services/permissionRegistry.js +1 -1
- package/server/services/pluginFiles.js +5 -5
- package/server/services/pluginInstaller.js +17 -17
- package/server/services/pluginScaffold.js +1 -1
- package/server/services/plugins.js +17 -17
- package/server/services/presetCollections.js +2 -2
- package/server/services/projects.js +35 -26
- package/server/services/recipes/contact-list.json +1 -1
- package/server/services/recipes/onboarding.json +8 -8
- package/server/services/references.js +8 -8
- package/server/services/renderer.js +9 -9
- package/server/services/roles.js +9 -9
- package/server/services/rowAccess.js +10 -10
- package/server/services/scaffolder.js +30 -30
- package/server/services/sidebar-migration.js +10 -10
- package/server/services/sitemap.js +1 -1
- package/server/services/userProfiles.js +199 -199
- package/server/services/userRoles.js +7 -7
- package/server/services/users.js +302 -302
- package/server/services/versions.js +3 -3
- package/server/services/viewPipeline.js +6 -6
- package/server/services/views.js +11 -11
- package/server/templates/page.html +5 -5
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
<div class="card-header" style="display:flex;justify-content:space-between;align-items:center;">
|
|
61
61
|
<h2><span data-icon="eye"></span> Preview</h2>
|
|
62
62
|
<span id="preview-test-badge"
|
|
63
|
-
style="display:none;font-size:.75rem;padding:.2rem .6rem;border-radius:999px;background:color-mix(in srgb, var(--dm-primary) 15%, transparent);color:var(--dm-primary,#6366f1);">Test Mode
|
|
63
|
+
style="display:none;font-size:.75rem;padding:.2rem .6rem;border-radius:999px;background:color-mix(in srgb, var(--dm-primary) 15%, transparent);color:var(--dm-primary,#6366f1);">Test Mode - submissions are stored</span>
|
|
64
64
|
</div>
|
|
65
65
|
<div class="card-body">
|
|
66
66
|
<div id="preview-container"></div>
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
<div class="col-6">
|
|
101
101
|
<label class="form-label">Project</label>
|
|
102
102
|
<select id="field-project" class="form-input">
|
|
103
|
-
<option value=""
|
|
103
|
+
<option value="">- none -</option>
|
|
104
104
|
</select>
|
|
105
105
|
<p class="form-hint text-muted" style="margin-top:.3rem;font-size:.8rem;">Tag this form to a project for grouping.</p>
|
|
106
106
|
</div>
|
|
@@ -141,9 +141,9 @@
|
|
|
141
141
|
<div class="mb-3">
|
|
142
142
|
<label class="form-label">Layout</label>
|
|
143
143
|
<select id="setting-layout" class="form-select">
|
|
144
|
+
<option value="grid">Grid</option>
|
|
144
145
|
<option value="stacked">Stacked</option>
|
|
145
146
|
<option value="inline">Inline</option>
|
|
146
|
-
<option value="grid">Grid</option>
|
|
147
147
|
</select>
|
|
148
148
|
</div>
|
|
149
149
|
<div id="columns-group" style="display:none;">
|
|
@@ -219,11 +219,11 @@
|
|
|
219
219
|
<div class="mb-3">
|
|
220
220
|
<label class="form-label">Action on Submit</label>
|
|
221
221
|
<select id="action-cms-slug" class="form-select">
|
|
222
|
-
<option value=""
|
|
222
|
+
<option value="">- None -</option>
|
|
223
223
|
</select>
|
|
224
224
|
<p class="form-hint text-muted" style="margin-top:.3rem;font-size:.8rem;">
|
|
225
225
|
Run a CMS Action after the entry is stored. Requires Pro (MongoDB).
|
|
226
|
-
Failures are non-fatal
|
|
226
|
+
Failures are non-fatal - the submission is always saved first.
|
|
227
227
|
</p>
|
|
228
228
|
</div>
|
|
229
229
|
</div>
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
<div class="view-header">
|
|
2
|
-
<h1><span data-icon="layout"></span> Forms</h1>
|
|
3
|
-
<div style="display:flex;gap:.5rem;">
|
|
4
|
-
<button id="test-email-btn" class="btn btn-ghost btn-sm">
|
|
5
|
-
<span data-icon="mail"></span> Test Email
|
|
6
|
-
</button>
|
|
7
|
-
<button id="create-form-btn" class="btn btn-primary">
|
|
8
|
-
<span data-icon="plus"></span> Create Form
|
|
9
|
-
</button>
|
|
10
|
-
</div>
|
|
11
|
-
</div>
|
|
12
|
-
|
|
13
|
-
<div class="card">
|
|
14
|
-
<div class="card-body">
|
|
15
|
-
<div id="forms-table"></div>
|
|
16
|
-
</div>
|
|
17
|
-
</div>
|
|
1
|
+
<div class="view-header">
|
|
2
|
+
<h1><span data-icon="layout"></span> Forms</h1>
|
|
3
|
+
<div style="display:flex;gap:.5rem;">
|
|
4
|
+
<button id="test-email-btn" class="btn btn-ghost btn-sm">
|
|
5
|
+
<span data-icon="mail"></span> Test Email
|
|
6
|
+
</button>
|
|
7
|
+
<button id="create-form-btn" class="btn btn-primary">
|
|
8
|
+
<span data-icon="plus"></span> Create Form
|
|
9
|
+
</button>
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
<div class="card">
|
|
14
|
+
<div class="card-body">
|
|
15
|
+
<div id="forms-table"></div>
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
<h1>Domma CMS</h1>
|
|
7
7
|
</div>
|
|
8
8
|
|
|
9
|
-
<!-- ── Step 1: Setup (first-time
|
|
9
|
+
<!-- ── Step 1: Setup (first-time - no users exist) ── -->
|
|
10
10
|
<div id="setup-panel" style="display:none">
|
|
11
|
-
<h2 class="login-heading">Welcome
|
|
11
|
+
<h2 class="login-heading">Welcome - create your admin account</h2>
|
|
12
12
|
<p class="text-muted mb-4">This is a first-time setup. Set up your administrator account to get started.</p>
|
|
13
13
|
<div id="setup-form-container"></div>
|
|
14
14
|
</div>
|
|
15
15
|
|
|
16
|
-
<!-- ── Step 2: Onboarding
|
|
16
|
+
<!-- ── Step 2: Onboarding - Site Identity ── -->
|
|
17
17
|
<div id="onboarding-site-panel" style="display:none">
|
|
18
18
|
<h2 class="login-heading">Name your site</h2>
|
|
19
19
|
<p class="text-muted mb-4">You can change these any time from Settings.</p>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<a href="#" id="ob-site-skip" class="btn-skip">Skip this step</a>
|
|
31
31
|
</div>
|
|
32
32
|
|
|
33
|
-
<!-- ── Step 3: Onboarding
|
|
33
|
+
<!-- ── Step 3: Onboarding - Theme Picker ── -->
|
|
34
34
|
<div id="onboarding-theme-panel" style="display:none">
|
|
35
35
|
<h2 class="login-heading">Choose a theme</h2>
|
|
36
36
|
<p class="text-muted mb-3">Pick the colour scheme for your site. You can change it later.</p>
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
<a href="#" id="ob-theme-skip" class="btn-skip">Skip this step</a>
|
|
41
41
|
</div>
|
|
42
42
|
|
|
43
|
-
<!-- ── Step 4: Onboarding
|
|
43
|
+
<!-- ── Step 4: Onboarding - Done ── -->
|
|
44
44
|
<div id="onboarding-done-panel" style="display:none">
|
|
45
45
|
<div class="ob-done-icon"><span data-icon="check-circle"></span></div>
|
|
46
46
|
<h2 class="login-heading">You're all set!</h2>
|
|
@@ -26,13 +26,13 @@
|
|
|
26
26
|
|
|
27
27
|
<div class="tab-panel" id="me-behaviour" data-panel="me-behaviour">
|
|
28
28
|
<p class="text-muted mb-3" id="me-behaviour-note">
|
|
29
|
-
Variant + style (font / icon size) apply both to the public <strong>navbar</strong> and the <strong>admin sidebar</strong>. The <strong>position</strong> field only affects the public navbar
|
|
29
|
+
Variant + style (font / icon size) apply both to the public <strong>navbar</strong> and the <strong>admin sidebar</strong>. The <strong>position</strong> field only affects the public navbar - the admin sidebar's position is fixed by the admin shell. Footer columns ignore everything here.
|
|
30
30
|
</p>
|
|
31
31
|
<div class="grid grid-cols-2 dm-pe-grid">
|
|
32
32
|
<div class="form-group">
|
|
33
33
|
<label for="me-variant">Variant</label>
|
|
34
34
|
<select id="me-variant" name="variant" class="form-input">
|
|
35
|
-
<option value=""
|
|
35
|
+
<option value="">- default -</option>
|
|
36
36
|
<option value="transparent">Transparent</option>
|
|
37
37
|
<option value="dark">Dark</option>
|
|
38
38
|
<option value="light">Light</option>
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
<div class="form-group">
|
|
43
43
|
<label for="me-position">Position</label>
|
|
44
44
|
<select id="me-position" name="position" class="form-input">
|
|
45
|
-
<option value=""
|
|
45
|
+
<option value="">- default -</option>
|
|
46
46
|
<option value="sticky">Sticky</option>
|
|
47
47
|
<option value="fixed">Fixed</option>
|
|
48
48
|
<option value="static">Static</option>
|
|
@@ -52,11 +52,11 @@
|
|
|
52
52
|
<div class="form-group">
|
|
53
53
|
<label for="me-orientation">Orientation</label>
|
|
54
54
|
<select id="me-orientation" name="orientation" class="form-input">
|
|
55
|
-
<option value=""
|
|
55
|
+
<option value="">- default (horizontal) -</option>
|
|
56
56
|
<option value="horizontal">Horizontal</option>
|
|
57
57
|
<option value="vertical">Vertical</option>
|
|
58
58
|
</select>
|
|
59
|
-
<small class="form-hint">Vertical stacks the items into a column
|
|
59
|
+
<small class="form-hint">Vertical stacks the items into a column - a docked side rail in the navbar slot, an indented list for <code>[menu]</code> and floating panels. Below 993px the navbar always falls back to the mobile drawer.</small>
|
|
60
60
|
</div>
|
|
61
61
|
<div class="form-group dm-vertical-field" style="display:none">
|
|
62
62
|
<label for="me-side">Rail side</label>
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
<div class="form-group dm-float-field" style="display:none">
|
|
97
97
|
<label for="me-float-shadow">Shadow</label>
|
|
98
98
|
<select id="me-float-shadow" name="floatShadow" class="form-input">
|
|
99
|
-
<option value=""
|
|
99
|
+
<option value="">- theme default -</option>
|
|
100
100
|
<option value="none">None</option>
|
|
101
101
|
<option value="sm">Small</option>
|
|
102
102
|
<option value="md">Medium</option>
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
<label for="me-float-accent">Accent colour</label>
|
|
109
109
|
<div class="me-colour-control">
|
|
110
110
|
<select id="me-float-accent" name="floatAccent" class="form-input">
|
|
111
|
-
<option value=""
|
|
111
|
+
<option value="">- none -</option>
|
|
112
112
|
<option value="primary">primary</option>
|
|
113
113
|
<option value="success">success</option>
|
|
114
114
|
<option value="danger">danger</option>
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
<div class="tab-panel" id="me-binding" data-panel="me-binding">
|
|
160
160
|
<p class="text-muted mb-3">
|
|
161
161
|
A binding lets this menu <strong>take over a slot for part of the site</strong> instead of
|
|
162
|
-
being mapped to it everywhere. Pick the slot, then say where it applies
|
|
162
|
+
being mapped to it everywhere. Pick the slot, then say where it applies - a project, a list of
|
|
163
163
|
page URLs, or both. On matching pages this menu replaces whatever
|
|
164
164
|
<a href="#/menu-locations">Menu locations</a> maps to that slot; everywhere else the mapped
|
|
165
165
|
menu still renders. The most specific match wins: an exact page URL beats a wildcard, which
|
|
@@ -169,7 +169,7 @@
|
|
|
169
169
|
<div class="form-group">
|
|
170
170
|
<label for="me-bind-slot">Slot</label>
|
|
171
171
|
<select id="me-bind-slot" name="bindSlot" class="form-input"></select>
|
|
172
|
-
<small class="form-hint">Leave unset for no binding
|
|
172
|
+
<small class="form-hint">Leave unset for no binding - this menu then only renders where it is mapped or where a <code>[menu]</code> shortcode places it.</small>
|
|
173
173
|
</div>
|
|
174
174
|
<div class="form-group">
|
|
175
175
|
<label for="me-bind-projects">Projects</label>
|
|
@@ -196,7 +196,7 @@
|
|
|
196
196
|
<div class="form-group">
|
|
197
197
|
<label for="me-slug">Slug <span class="required">*</span></label>
|
|
198
198
|
<input type="text" id="me-slug" name="slug" class="form-input" required>
|
|
199
|
-
<small class="form-hint">Lowercase alphanumeric + hyphen
|
|
199
|
+
<small class="form-hint">Lowercase alphanumeric + hyphen - affects file name</small>
|
|
200
200
|
</div>
|
|
201
201
|
<div class="form-group">
|
|
202
202
|
<label for="me-name">Name <span class="required">*</span></label>
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
<div class="view-header">
|
|
2
|
-
<h1><span data-icon="user"></span> My Profile</h1>
|
|
3
|
-
</div>
|
|
4
|
-
|
|
5
|
-
<div class="card">
|
|
6
|
-
<div class="card-header"><h2>Account</h2></div>
|
|
7
|
-
<div class="card-body">
|
|
8
|
-
<div id="account-form-container"></div>
|
|
9
|
-
</div>
|
|
10
|
-
</div>
|
|
11
|
-
|
|
12
|
-
<div class="card mt-4" id="profile-card" style="display:none;">
|
|
13
|
-
<div class="card-header"><h2>Profile</h2></div>
|
|
14
|
-
<div class="card-body">
|
|
15
|
-
<div id="profile-form-container"></div>
|
|
16
|
-
</div>
|
|
17
|
-
</div>
|
|
1
|
+
<div class="view-header">
|
|
2
|
+
<h1><span data-icon="user"></span> My Profile</h1>
|
|
3
|
+
</div>
|
|
4
|
+
|
|
5
|
+
<div class="card">
|
|
6
|
+
<div class="card-header"><h2>Account</h2></div>
|
|
7
|
+
<div class="card-body">
|
|
8
|
+
<div id="account-form-container"></div>
|
|
9
|
+
</div>
|
|
10
|
+
</div>
|
|
11
|
+
|
|
12
|
+
<div class="card mt-4" id="profile-card" style="display:none;">
|
|
13
|
+
<div class="card-header"><h2>Profile</h2></div>
|
|
14
|
+
<div class="card-body">
|
|
15
|
+
<div id="profile-form-container"></div>
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
@@ -141,14 +141,14 @@
|
|
|
141
141
|
<label class="form-label">Font Size</label>
|
|
142
142
|
<select id="field-nav-font-size" class="form-select">
|
|
143
143
|
<option value="">Default</option>
|
|
144
|
-
<option value="12px">12px
|
|
145
|
-
<option value="13px">13px
|
|
146
|
-
<option value="14px">14px
|
|
144
|
+
<option value="12px">12px - XS</option>
|
|
145
|
+
<option value="13px">13px - Small</option>
|
|
146
|
+
<option value="14px">14px - Compact</option>
|
|
147
147
|
<option value="15px">15px</option>
|
|
148
|
-
<option value="16px">16px
|
|
148
|
+
<option value="16px">16px - Base</option>
|
|
149
149
|
<option value="17px">17px</option>
|
|
150
|
-
<option value="18px">18px
|
|
151
|
-
<option value="20px">20px
|
|
150
|
+
<option value="18px">18px - Large</option>
|
|
151
|
+
<option value="20px">20px - XL</option>
|
|
152
152
|
</select>
|
|
153
153
|
</div>
|
|
154
154
|
<div class="col-2">
|
|
@@ -180,14 +180,14 @@
|
|
|
180
180
|
<label class="form-label">Icon Size</label>
|
|
181
181
|
<select id="field-nav-icon-size" class="form-select">
|
|
182
182
|
<option value="">Default</option>
|
|
183
|
-
<option value="12px">12px
|
|
184
|
-
<option value="14px">14px
|
|
185
|
-
<option value="16px">16px
|
|
183
|
+
<option value="12px">12px - XS</option>
|
|
184
|
+
<option value="14px">14px - Small</option>
|
|
185
|
+
<option value="16px">16px - Base</option>
|
|
186
186
|
<option value="18px">18px</option>
|
|
187
187
|
<option value="20px">20px</option>
|
|
188
188
|
<option value="22px">22px</option>
|
|
189
|
-
<option value="24px">24px
|
|
190
|
-
<option value="28px">28px
|
|
189
|
+
<option value="24px">24px - Large</option>
|
|
190
|
+
<option value="28px">28px - XL</option>
|
|
191
191
|
</select>
|
|
192
192
|
</div>
|
|
193
193
|
</div>
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<div id="notif-empty" hidden class="card">
|
|
9
9
|
<div class="card-body" style="text-align:center;padding:3rem;color:var(--dm-text-muted)">
|
|
10
10
|
<span data-icon="check-circle" style="font-size:2rem;display:block;margin-bottom:.5rem"></span>
|
|
11
|
-
<p>No notifications
|
|
11
|
+
<p>No notifications - you're all caught up.</p>
|
|
12
12
|
</div>
|
|
13
13
|
</div>
|
|
14
14
|
</div>
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
<div class="col-4">
|
|
90
90
|
<label class="form-label">Visibility</label>
|
|
91
91
|
<select id="field-visibility" class="form-select">
|
|
92
|
-
<option value="public">Public
|
|
92
|
+
<option value="public">Public - everyone</option>
|
|
93
93
|
<option value="subscriber">Subscribers & above</option>
|
|
94
94
|
<option value="editor">Editors & above</option>
|
|
95
95
|
<option value="manager">Managers & above</option>
|
|
@@ -99,9 +99,9 @@
|
|
|
99
99
|
<div class="col-4">
|
|
100
100
|
<label class="form-label">Project</label>
|
|
101
101
|
<select id="field-project" class="form-select">
|
|
102
|
-
<option value="">
|
|
102
|
+
<option value="">Inherit from URL</option>
|
|
103
103
|
</select>
|
|
104
|
-
<small class="form-hint">Pre-filled from URL inheritance; choose explicitly to override.</small>
|
|
104
|
+
<small class="form-hint">Pre-filled from the project you came from, or from URL inheritance; choose explicitly to override.</small>
|
|
105
105
|
</div>
|
|
106
106
|
</div>
|
|
107
107
|
<div class="row mb-3">
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
<textarea id="field-dconfig" class="form-input dconfig-textarea"
|
|
165
165
|
placeholder='{ "#my-btn": { "events": { "click": { "target": "#panel", "toggleClass": "hidden" } } } }'></textarea>
|
|
166
166
|
<small class="form-hint">Declarative click handlers and class toggles applied on page load. Merged with any <code>[dconfig]</code>
|
|
167
|
-
shortcodes in the content body
|
|
167
|
+
shortcodes in the content body - inline shortcodes win on selector conflict. Leave blank if unused.</small>
|
|
168
168
|
</div>
|
|
169
169
|
|
|
170
170
|
<!-- Live Preview -->
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
</tbody>
|
|
47
47
|
</table>
|
|
48
48
|
<p class="text-muted" style="margin-top:.75rem;">Blocked: <code>$out</code>, <code>$merge</code>, <code>$function</code>, <code>$accumulator</code>, <code>$graphLookup</code></p>
|
|
49
|
-
<p>Collections are prefixed <code>cms_</code> in MongoDB
|
|
49
|
+
<p>Collections are prefixed <code>cms_</code> in MongoDB - use this prefix in <code>$lookup</code> <code>from</code> values.</p>
|
|
50
50
|
</div>
|
|
51
51
|
</div>
|
|
52
52
|
|
|
@@ -85,8 +85,8 @@
|
|
|
85
85
|
<tbody>
|
|
86
86
|
<tr><td>Allowed Roles</td><td>Which roles can call <code>GET /api/views/:slug/public</code></td></tr>
|
|
87
87
|
<tr><td>Public</td><td>No authentication required when checked</td></tr>
|
|
88
|
-
<tr><td>Row-Level
|
|
89
|
-
<tr><td>Row-Level
|
|
88
|
+
<tr><td>Row-Level - Owner</td><td>User sees only entries they created</td></tr>
|
|
89
|
+
<tr><td>Row-Level - Field Match</td><td>A specified entry field must match a user property</td></tr>
|
|
90
90
|
</tbody>
|
|
91
91
|
</table>
|
|
92
92
|
</div>
|
|
@@ -156,14 +156,14 @@
|
|
|
156
156
|
<span class="card-collapse-icon" data-icon="chevron-down"></span>
|
|
157
157
|
</div>
|
|
158
158
|
<div class="card-body docs-body">
|
|
159
|
-
<p><strong>updateField</strong>
|
|
159
|
+
<p><strong>updateField</strong> - mark an entry as approved:</p>
|
|
160
160
|
<pre class="code-block"><code>{ "field": "status", "value": "approved" }</code></pre>
|
|
161
|
-
<p><strong>webhook</strong>
|
|
161
|
+
<p><strong>webhook</strong> - notify an external service:</p>
|
|
162
162
|
<pre class="code-block"><code>{
|
|
163
163
|
"url": "https://hooks.example.com/notify",
|
|
164
164
|
"headers": { "X-Secret": "{{env.CMS_PUBLIC_HOOK_SECRET}}" }
|
|
165
165
|
}</code></pre>
|
|
166
|
-
<p><strong>email</strong>
|
|
166
|
+
<p><strong>email</strong> - send confirmation to applicant:</p>
|
|
167
167
|
<pre class="code-block"><code>{
|
|
168
168
|
"to": "{{entry.data.email}}",
|
|
169
169
|
"subject": "Your application was approved",
|
|
@@ -201,13 +201,13 @@
|
|
|
201
201
|
<table class="table table-sm" style="margin-top:1rem;">
|
|
202
202
|
<thead><tr><th>Attribute</th><th>Required</th><th>Default</th><th>Description</th></tr></thead>
|
|
203
203
|
<tbody>
|
|
204
|
-
<tr><td><code>action</code></td><td>Yes</td><td
|
|
205
|
-
<tr><td><code>entry</code></td><td>Yes</td><td
|
|
204
|
+
<tr><td><code>action</code></td><td>Yes</td><td>-</td><td>Action slug</td></tr>
|
|
205
|
+
<tr><td><code>entry</code></td><td>Yes</td><td>-</td><td>Entry UUID to act on</td></tr>
|
|
206
206
|
<tr><td><code>label</code></td><td>No</td><td><code>"Run"</code></td><td>Button text (self-closing only)</td></tr>
|
|
207
207
|
<tr><td><code>style</code></td><td>No</td><td><code>"primary"</code></td><td>primary · secondary · ghost · danger</td></tr>
|
|
208
|
-
<tr><td><code>icon</code></td><td>No</td><td
|
|
209
|
-
<tr><td><code>size</code></td><td>No</td><td
|
|
210
|
-
<tr><td><code>confirm</code></td><td>No</td><td
|
|
208
|
+
<tr><td><code>icon</code></td><td>No</td><td>-</td><td>Domma icon name</td></tr>
|
|
209
|
+
<tr><td><code>size</code></td><td>No</td><td>-</td><td>sm · md · lg</td></tr>
|
|
210
|
+
<tr><td><code>confirm</code></td><td>No</td><td>-</td><td>Confirmation prompt before executing</td></tr>
|
|
211
211
|
</tbody>
|
|
212
212
|
</table>
|
|
213
213
|
</div>
|
|
@@ -229,11 +229,11 @@
|
|
|
229
229
|
<table class="table table-sm" style="margin-top:1rem;">
|
|
230
230
|
<thead><tr><th>Attribute</th><th>Default</th><th>Description</th></tr></thead>
|
|
231
231
|
<tbody>
|
|
232
|
-
<tr><td><code>cta</code></td><td
|
|
232
|
+
<tr><td><code>cta</code></td><td>-</td><td>Action slug - enables per-entry buttons</td></tr>
|
|
233
233
|
<tr><td><code>cta-label</code></td><td><code>"Run"</code></td><td>Button label</td></tr>
|
|
234
|
-
<tr><td><code>cta-icon</code></td><td
|
|
234
|
+
<tr><td><code>cta-icon</code></td><td>-</td><td>Domma icon name</td></tr>
|
|
235
235
|
<tr><td><code>cta-style</code></td><td><code>"primary"</code></td><td>Button variant</td></tr>
|
|
236
|
-
<tr><td><code>cta-confirm</code></td><td
|
|
236
|
+
<tr><td><code>cta-confirm</code></td><td>-</td><td>Confirmation prompt</td></tr>
|
|
237
237
|
</tbody>
|
|
238
238
|
</table>
|
|
239
239
|
<p>All three display modes support CTA buttons: <strong>cards</strong> (card footer), <strong>list</strong> (inline), <strong>table</strong> (dedicated column).</p>
|
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
<div class="view-header">
|
|
2
|
-
<h1><span data-icon="shield"></span> <span id="role-title">Edit Role</span></h1>
|
|
3
|
-
<div>
|
|
4
|
-
<a href="#/roles" class="btn btn-secondary"><span data-icon="arrow-left"></span> Back</a>
|
|
5
|
-
<button id="btn-save-role" class="btn btn-primary"><span data-icon="save"></span> Save</button>
|
|
6
|
-
</div>
|
|
7
|
-
</div>
|
|
8
|
-
|
|
9
|
-
<div class="tabs" id="role-tabs">
|
|
10
|
-
<div class="tab-list">
|
|
11
|
-
<button class="tab-item active">General</button>
|
|
12
|
-
<button class="tab-item">Permissions</button>
|
|
13
|
-
</div>
|
|
14
|
-
<div class="tab-content">
|
|
15
|
-
<!-- General Tab -->
|
|
16
|
-
<div class="tab-panel active" id="panel-general">
|
|
17
|
-
<div class="card">
|
|
18
|
-
<div class="card-body">
|
|
19
|
-
<div class="row">
|
|
20
|
-
<div class="col-6">
|
|
21
|
-
<div class="mb-3">
|
|
22
|
-
<label class="form-label">Name (slug)</label>
|
|
23
|
-
<input id="role-name" type="text" class="form-input" placeholder="e.g. moderator">
|
|
24
|
-
<p class="form-hint">Lowercase identifier. Cannot be changed for the root admin
|
|
25
|
-
role.</p>
|
|
26
|
-
</div>
|
|
27
|
-
</div>
|
|
28
|
-
<div class="col-6">
|
|
29
|
-
<div class="mb-3">
|
|
30
|
-
<label class="form-label">Display Label</label>
|
|
31
|
-
<input id="role-label" type="text" class="form-input" placeholder="e.g. Moderator">
|
|
32
|
-
</div>
|
|
33
|
-
</div>
|
|
34
|
-
</div>
|
|
35
|
-
<div class="row">
|
|
36
|
-
<div class="col-6">
|
|
37
|
-
<div class="mb-3">
|
|
38
|
-
<label class="form-label">Level</label>
|
|
39
|
-
<input id="role-level" type="number" class="form-input" min="0">
|
|
40
|
-
<p class="form-hint">Lower = more privileged. 0 is reserved for the root admin.</p>
|
|
41
|
-
</div>
|
|
42
|
-
</div>
|
|
43
|
-
<div class="col-6">
|
|
44
|
-
<div class="mb-3">
|
|
45
|
-
<label class="form-label">Badge Colour</label>
|
|
46
|
-
<select id="role-badge" class="form-input"></select>
|
|
47
|
-
</div>
|
|
48
|
-
</div>
|
|
49
|
-
</div>
|
|
50
|
-
<div class="row">
|
|
51
|
-
<div class="col-6">
|
|
52
|
-
<div class="mb-3">
|
|
53
|
-
<label class="form-label">Project</label>
|
|
54
|
-
<select id="role-project" class="form-input">
|
|
55
|
-
<option value=""
|
|
56
|
-
</select>
|
|
57
|
-
<p class="form-hint">Tag this role to a project for grouping.</p>
|
|
58
|
-
</div>
|
|
59
|
-
</div>
|
|
60
|
-
</div>
|
|
61
|
-
</div>
|
|
62
|
-
</div>
|
|
63
|
-
</div>
|
|
64
|
-
|
|
65
|
-
<!-- Permissions Tab -->
|
|
66
|
-
<div class="tab-panel" id="panel-permissions">
|
|
67
|
-
<div id="permissions-container"></div>
|
|
68
|
-
</div>
|
|
69
|
-
</div>
|
|
70
|
-
</div>
|
|
1
|
+
<div class="view-header">
|
|
2
|
+
<h1><span data-icon="shield"></span> <span id="role-title">Edit Role</span></h1>
|
|
3
|
+
<div>
|
|
4
|
+
<a href="#/roles" class="btn btn-secondary"><span data-icon="arrow-left"></span> Back</a>
|
|
5
|
+
<button id="btn-save-role" class="btn btn-primary"><span data-icon="save"></span> Save</button>
|
|
6
|
+
</div>
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
<div class="tabs" id="role-tabs">
|
|
10
|
+
<div class="tab-list">
|
|
11
|
+
<button class="tab-item active">General</button>
|
|
12
|
+
<button class="tab-item">Permissions</button>
|
|
13
|
+
</div>
|
|
14
|
+
<div class="tab-content">
|
|
15
|
+
<!-- General Tab -->
|
|
16
|
+
<div class="tab-panel active" id="panel-general">
|
|
17
|
+
<div class="card">
|
|
18
|
+
<div class="card-body">
|
|
19
|
+
<div class="row">
|
|
20
|
+
<div class="col-6">
|
|
21
|
+
<div class="mb-3">
|
|
22
|
+
<label class="form-label">Name (slug)</label>
|
|
23
|
+
<input id="role-name" type="text" class="form-input" placeholder="e.g. moderator">
|
|
24
|
+
<p class="form-hint">Lowercase identifier. Cannot be changed for the root admin
|
|
25
|
+
role.</p>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
<div class="col-6">
|
|
29
|
+
<div class="mb-3">
|
|
30
|
+
<label class="form-label">Display Label</label>
|
|
31
|
+
<input id="role-label" type="text" class="form-input" placeholder="e.g. Moderator">
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
<div class="row">
|
|
36
|
+
<div class="col-6">
|
|
37
|
+
<div class="mb-3">
|
|
38
|
+
<label class="form-label">Level</label>
|
|
39
|
+
<input id="role-level" type="number" class="form-input" min="0">
|
|
40
|
+
<p class="form-hint">Lower = more privileged. 0 is reserved for the root admin.</p>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
<div class="col-6">
|
|
44
|
+
<div class="mb-3">
|
|
45
|
+
<label class="form-label">Badge Colour</label>
|
|
46
|
+
<select id="role-badge" class="form-input"></select>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
<div class="row">
|
|
51
|
+
<div class="col-6">
|
|
52
|
+
<div class="mb-3">
|
|
53
|
+
<label class="form-label">Project</label>
|
|
54
|
+
<select id="role-project" class="form-input">
|
|
55
|
+
<option value="">- none -</option>
|
|
56
|
+
</select>
|
|
57
|
+
<p class="form-hint">Tag this role to a project for grouping.</p>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
<!-- Permissions Tab -->
|
|
66
|
+
<div class="tab-panel" id="panel-permissions">
|
|
67
|
+
<div id="permissions-container"></div>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
<div class="view-header">
|
|
2
|
-
<h1><span data-icon="shield"></span> Roles & Permissions</h1>
|
|
3
|
-
<button id="btn-add-role" class="btn btn-primary"><span data-icon="plus"></span> Add Role</button>
|
|
4
|
-
</div>
|
|
5
|
-
|
|
6
|
-
<div class="card">
|
|
7
|
-
<div class="card-body">
|
|
8
|
-
<div id="roles-table"></div>
|
|
9
|
-
</div>
|
|
10
|
-
</div>
|
|
1
|
+
<div class="view-header">
|
|
2
|
+
<h1><span data-icon="shield"></span> Roles & Permissions</h1>
|
|
3
|
+
<button id="btn-add-role" class="btn btn-primary"><span data-icon="plus"></span> Add Role</button>
|
|
4
|
+
</div>
|
|
5
|
+
|
|
6
|
+
<div class="card">
|
|
7
|
+
<div class="card-body">
|
|
8
|
+
<div id="roles-table"></div>
|
|
9
|
+
</div>
|
|
10
|
+
</div>
|
|
@@ -68,13 +68,13 @@
|
|
|
68
68
|
<div class="col-3">
|
|
69
69
|
<label class="form-label">Font Size</label>
|
|
70
70
|
<select id="field-font-size" class="form-select">
|
|
71
|
-
<option value="13">13px
|
|
72
|
-
<option value="14">14px
|
|
73
|
-
<option value="15">15px
|
|
74
|
-
<option value="16">16px
|
|
75
|
-
<option value="17">17px
|
|
76
|
-
<option value="18">18px
|
|
77
|
-
<option value="20">20px
|
|
71
|
+
<option value="13">13px - Compact</option>
|
|
72
|
+
<option value="14">14px - Small</option>
|
|
73
|
+
<option value="15">15px - Slightly small</option>
|
|
74
|
+
<option value="16">16px - Default</option>
|
|
75
|
+
<option value="17">17px - Slightly large</option>
|
|
76
|
+
<option value="18">18px - Large</option>
|
|
77
|
+
<option value="20">20px - Extra large</option>
|
|
78
78
|
</select>
|
|
79
79
|
<p class="form-hint text-muted" style="margin-top:0.4rem;font-size:0.8rem;">Root font size. All rem/em values
|
|
80
80
|
scale with this.</p>
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
</div>
|
|
125
125
|
<div class="col-12 mt-2">
|
|
126
126
|
<p class="form-hint text-muted" style="font-size:.8rem;">Themes switch based on each visitor's local
|
|
127
|
-
time. Any theme can be used
|
|
127
|
+
time. Any theme can be used - they need not be light/dark pairs.</p>
|
|
128
128
|
</div>
|
|
129
129
|
</div>
|
|
130
130
|
<div class="row mt-3">
|
|
@@ -529,7 +529,7 @@
|
|
|
529
529
|
Status: <strong id="cache-status">checking…</strong>
|
|
530
530
|
</p>
|
|
531
531
|
<p class="text-muted" style="font-size:.875rem;margin-bottom:1rem;">
|
|
532
|
-
Public page renders are cached by URL and role. Writes (page, collection, form, block, view, navigation, site settings) auto-invalidate the relevant tags. Use the button below to flush every cached entry
|
|
532
|
+
Public page renders are cached by URL and role. Writes (page, collection, form, block, view, navigation, site settings) auto-invalidate the relevant tags. Use the button below to flush every cached entry - the next visitor to each page will trigger a fresh render.
|
|
533
533
|
</p>
|
|
534
534
|
<button id="btn-clear-cache" class="btn btn-secondary" type="button"><span data-icon="trash"></span> Clear cache</button>
|
|
535
535
|
<button id="btn-refresh-cache-keys" class="btn btn-ghost" type="button" style="margin-left:8px;"><span data-icon="refresh"></span> Refresh list</button>
|
|
@@ -539,7 +539,7 @@
|
|
|
539
539
|
<div class="col">
|
|
540
540
|
<h4 style="margin-top:1.5rem;">Cached entries <span id="cache-key-count" class="text-muted" style="font-weight:normal;font-size:.875rem;"></span></h4>
|
|
541
541
|
<p class="text-muted" style="font-size:.85rem;margin-bottom:.5rem;">
|
|
542
|
-
Snapshot of what's currently keyed. Newest entries first. Values are not shown
|
|
542
|
+
Snapshot of what's currently keyed. Newest entries first. Values are not shown - they can be large HTML blobs.
|
|
543
543
|
</p>
|
|
544
544
|
<div id="cache-keys-table"></div>
|
|
545
545
|
</div>
|