@raketa-cloud/admin 1.8.7 → 1.8.9
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/dist/application.css +0 -4
- package/package.json +1 -1
- package/src/HonoAdapter.js +34 -33
- package/src/index.js +0 -3
- package/src/routeCategoriesModule.js +1 -1
- package/src/routeCollection.js +15 -8
- package/src/routeNestedCollection.js +1 -1
- package/src/routeNestedMember.js +1 -1
- package/src/routeResource.js +19 -21
- package/src/routeStandard.js +6 -6
- package/src/tests/HonoAdapter.coverage.test.js +15 -25
- package/src/tests/routeCategoriesModule.test.js +2 -2
- package/src/tests/routeResource.test.js +12 -37
- package/src/tests/routeStandard.test.js +13 -13
- package/src/views/_shared/_date_fields_input.ejs +13 -0
- package/src/views/{page_revisions → resource_revisions}/general/_form.ejs +1 -0
- package/src/views/{pages → resources}/_form.ejs +1 -0
- package/src/views/{pages → resources}/history/index.ejs +1 -1
- package/src/views/{articles → resources}/index.ejs +6 -0
- package/src/views/{pages → resources}/show.ejs +7 -7
- package/src/views/{articles → resources}/translations/create_form.ejs +2 -2
- package/src/routeArticlesModule.js +0 -15
- package/src/routeEventsModule.js +0 -15
- package/src/routePagesModule.js +0 -15
- package/src/tests/routeArticlesModule.test.js +0 -43
- package/src/tests/routeEventsModule.test.js +0 -43
- package/src/tests/routePagesModule.test.js +0 -43
- package/src/views/article_revisions/_nav.ejs +0 -53
- package/src/views/article_revisions/general/_form.ejs +0 -18
- package/src/views/article_revisions/tags/edit_form.ejs +0 -16
- package/src/views/articles/_form.ejs +0 -45
- package/src/views/articles/_shared/history_table.ejs +0 -74
- package/src/views/articles/deletes/create_form.ejs +0 -68
- package/src/views/articles/history/index.ejs +0 -80
- package/src/views/articles/show.ejs +0 -222
- package/src/views/articles/urls/create_form.ejs +0 -36
- package/src/views/event_revisions/codes/_form.ejs +0 -14
- package/src/views/event_revisions/codes/edit_form.ejs +0 -16
- package/src/views/event_revisions/general/_form.ejs +0 -20
- package/src/views/event_revisions/general/edit_form.ejs +0 -16
- package/src/views/event_revisions/locks/_form.ejs +0 -11
- package/src/views/event_revisions/locks/create_form.ejs +0 -27
- package/src/views/event_revisions/meta/_form.ejs +0 -16
- package/src/views/event_revisions/meta/edit_form.ejs +0 -16
- package/src/views/event_revisions/publishes/_form.ejs +0 -77
- package/src/views/event_revisions/publishes/create_form.ejs +0 -9
- package/src/views/event_revisions/tags/_form.ejs +0 -13
- package/src/views/event_revisions/tags/edit_form.ejs +0 -16
- package/src/views/event_revisions/visuals/_form.ejs +0 -13
- package/src/views/event_revisions/visuals/edit_form.ejs +0 -16
- package/src/views/events/_form.ejs +0 -47
- package/src/views/events/_shared/_addons.ejs +0 -0
- package/src/views/events/_shared/_export_button.ejs +0 -9
- package/src/views/events/_shared/_history_toolbar.ejs +0 -24
- package/src/views/events/_shared/_revision_operator.ejs +0 -8
- package/src/views/events/_shared/_revision_toolbar.ejs +0 -68
- package/src/views/events/_shared/_title.ejs +0 -14
- package/src/views/events/_shared/_toolbar.ejs +0 -45
- package/src/views/events/_shared/history_table.ejs +0 -74
- package/src/views/events/create_form.ejs +0 -9
- package/src/views/events/deletes/create_form.ejs +0 -68
- package/src/views/events/history/index.ejs +0 -80
- package/src/views/events/index.ejs +0 -190
- package/src/views/events/show.ejs +0 -222
- package/src/views/events/translations/_translation_toolbar.ejs +0 -18
- package/src/views/events/translations/create_form.ejs +0 -75
- package/src/views/events/translations/index.ejs +0 -39
- package/src/views/events/urls/create_form.ejs +0 -36
- package/src/views/page_revisions/_nav.ejs +0 -53
- package/src/views/page_revisions/codes/_form.ejs +0 -14
- package/src/views/page_revisions/codes/edit_form.ejs +0 -16
- package/src/views/page_revisions/general/edit_form.ejs +0 -16
- package/src/views/page_revisions/locks/_form.ejs +0 -11
- package/src/views/page_revisions/locks/create_form.ejs +0 -27
- package/src/views/page_revisions/meta/_form.ejs +0 -16
- package/src/views/page_revisions/meta/edit_form.ejs +0 -16
- package/src/views/page_revisions/publishes/_form.ejs +0 -76
- package/src/views/page_revisions/publishes/create_form.ejs +0 -9
- package/src/views/page_revisions/tags/_form.ejs +0 -13
- package/src/views/page_revisions/visuals/_form.ejs +0 -13
- package/src/views/page_revisions/visuals/edit_form.ejs +0 -16
- package/src/views/pages/_shared/_addons.ejs +0 -0
- package/src/views/pages/_shared/_export_button.ejs +0 -9
- package/src/views/pages/_shared/_history_toolbar.ejs +0 -24
- package/src/views/pages/_shared/_revision_operator.ejs +0 -8
- package/src/views/pages/_shared/_revision_toolbar.ejs +0 -68
- package/src/views/pages/_shared/_title.ejs +0 -14
- package/src/views/pages/_shared/_toolbar.ejs +0 -45
- package/src/views/pages/create_form.ejs +0 -9
- package/src/views/pages/index.ejs +0 -185
- package/src/views/pages/translations/_translation_toolbar.ejs +0 -18
- package/src/views/pages/translations/create_form.ejs +0 -75
- package/src/views/pages/translations/index.ejs +0 -39
- /package/src/views/{event_revisions → resource_revisions}/_nav.ejs +0 -0
- /package/src/views/{article_revisions → resource_revisions}/codes/_form.ejs +0 -0
- /package/src/views/{article_revisions → resource_revisions}/codes/edit_form.ejs +0 -0
- /package/src/views/{article_revisions → resource_revisions}/general/edit_form.ejs +0 -0
- /package/src/views/{article_revisions → resource_revisions}/locks/_form.ejs +0 -0
- /package/src/views/{article_revisions → resource_revisions}/locks/create_form.ejs +0 -0
- /package/src/views/{article_revisions → resource_revisions}/meta/_form.ejs +0 -0
- /package/src/views/{article_revisions → resource_revisions}/meta/edit_form.ejs +0 -0
- /package/src/views/{article_revisions → resource_revisions}/publishes/_form.ejs +0 -0
- /package/src/views/{article_revisions → resource_revisions}/publishes/create_form.ejs +0 -0
- /package/src/views/{article_revisions → resource_revisions}/tags/_form.ejs +0 -0
- /package/src/views/{page_revisions → resource_revisions}/tags/edit_form.ejs +0 -0
- /package/src/views/{article_revisions → resource_revisions}/visuals/_form.ejs +0 -0
- /package/src/views/{article_revisions → resource_revisions}/visuals/edit_form.ejs +0 -0
- /package/src/views/{articles → resources}/_shared/_addons.ejs +0 -0
- /package/src/views/{articles → resources}/_shared/_export_button.ejs +0 -0
- /package/src/views/{articles → resources}/_shared/_history_toolbar.ejs +0 -0
- /package/src/views/{articles → resources}/_shared/_revision_operator.ejs +0 -0
- /package/src/views/{articles → resources}/_shared/_revision_toolbar.ejs +0 -0
- /package/src/views/{articles → resources}/_shared/_title.ejs +0 -0
- /package/src/views/{articles → resources}/_shared/_toolbar.ejs +0 -0
- /package/src/views/{pages → resources}/_shared/history_table.ejs +0 -0
- /package/src/views/{articles → resources}/create_form.ejs +0 -0
- /package/src/views/{pages → resources}/deletes/create_form.ejs +0 -0
- /package/src/views/{articles → resources}/translations/_translation_toolbar.ejs +0 -0
- /package/src/views/{articles → resources}/translations/index.ejs +0 -0
- /package/src/views/{pages → resources}/urls/create_form.ejs +0 -0
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
<% if (changes && changes.list.length > 0) { %>
|
|
2
|
-
<% const maxVersion = history.getMaxVersion(changes); %>
|
|
3
|
-
|
|
4
|
-
<div class="mb-4 history-table-wrapper">
|
|
5
|
-
<table class="data-grid">
|
|
6
|
-
<thead>
|
|
7
|
-
<tr>
|
|
8
|
-
<th>#</th>
|
|
9
|
-
<th>Date of change</th>
|
|
10
|
-
<th>Editor</th>
|
|
11
|
-
<th>Action</th>
|
|
12
|
-
<th>Reason</th>
|
|
13
|
-
<th> </th>
|
|
14
|
-
</tr>
|
|
15
|
-
</thead>
|
|
16
|
-
|
|
17
|
-
<tbody>
|
|
18
|
-
<% changes.list.forEach((change)=> { %>
|
|
19
|
-
<tr class="border-b border-mono-25">
|
|
20
|
-
<td class="py-4 pl-2">
|
|
21
|
-
<div class="flex items-center gap-2">
|
|
22
|
-
<%= change.version %>
|
|
23
|
-
</div>
|
|
24
|
-
</td>
|
|
25
|
-
|
|
26
|
-
<td class="whitespace-nowrap">
|
|
27
|
-
<div class="body-3 text-raketa-foreground/50">
|
|
28
|
-
<div class="flex items-center gap-1">
|
|
29
|
-
<time data-pretty-datetime datetime="<%= change.insertedAt %>"><%= utils.formattedDateTime(change.insertedAt) %></time>
|
|
30
|
-
</div>
|
|
31
|
-
</div>
|
|
32
|
-
</td>
|
|
33
|
-
|
|
34
|
-
<td class="whitespace-nowrap">
|
|
35
|
-
<div class="body-3 text-raketa-foreground/50">
|
|
36
|
-
<div class="flex items-center gap-1" title="<%= change.operatorMeta.name %>">
|
|
37
|
-
<% if (change.operatorMeta.avatar) { %>
|
|
38
|
-
<img src="<%= change.operatorMeta.avatar %>" class="rounded-full size-4">
|
|
39
|
-
<% } %>
|
|
40
|
-
|
|
41
|
-
<%= change.operatorMeta.name %>
|
|
42
|
-
</div>
|
|
43
|
-
</div>
|
|
44
|
-
</td>
|
|
45
|
-
|
|
46
|
-
<td class="py-4 pl-2">
|
|
47
|
-
<div class="flex items-center gap-2">
|
|
48
|
-
<%= history.changeAction(change, _context.resourceConfig.resourceType) %>
|
|
49
|
-
</div>
|
|
50
|
-
</td>
|
|
51
|
-
|
|
52
|
-
<td class="py-4 pl-2">
|
|
53
|
-
<div class="flex items-center gap-2">
|
|
54
|
-
<%= history.changeReason(change) %>
|
|
55
|
-
</div>
|
|
56
|
-
</td>
|
|
57
|
-
|
|
58
|
-
<td>
|
|
59
|
-
<%- render_partial(toolbarPath, { maxVersion, change }) %>
|
|
60
|
-
</td>
|
|
61
|
-
</tr>
|
|
62
|
-
<% }); %>
|
|
63
|
-
</tbody>
|
|
64
|
-
</table>
|
|
65
|
-
|
|
66
|
-
<% if (!skipPagination) { %>
|
|
67
|
-
<%- pagination(changes.pagination, _context) %>
|
|
68
|
-
<% } %>
|
|
69
|
-
</div>
|
|
70
|
-
<% } else { %>
|
|
71
|
-
<div class="history-table-wrapper mb-4">
|
|
72
|
-
<p class="text-center py-4">No changes, yet.</p>
|
|
73
|
-
</div>
|
|
74
|
-
<% } %>
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
<div class="page-wrapper">
|
|
2
|
-
<div class="page-title">
|
|
3
|
-
<h1 class="heading-1">
|
|
4
|
-
<span class="opacity-50">Delete / </span>
|
|
5
|
-
<%= record.title %>
|
|
6
|
-
</h1>
|
|
7
|
-
</div>
|
|
8
|
-
|
|
9
|
-
<div class="grid gap-4 md:grid-cols-3">
|
|
10
|
-
<div>
|
|
11
|
-
<% form_for({ resource }, errors, (f) => { %>
|
|
12
|
-
<form action="<%= `/${_context.locale}/${_context.resourceConfig.resourceTypePlural}/${resource.id}/deletes` %>" method="POST" class="form">
|
|
13
|
-
<%- f.field('resource.redirect', { as: 'select', required: true,options: [['301', '301: Redirect to another page'], ['404', '404: Return an error'],['410', '410: Inform Google to remove the content from its index']] }) %>
|
|
14
|
-
<%- f.field('resource.destination', {label: 'Destination URL', required: true}) %>
|
|
15
|
-
|
|
16
|
-
<div class="form-actions">
|
|
17
|
-
<div class="btn-toolbar">
|
|
18
|
-
<%- f.submit('Proceed', { class: 'btn-primary' }) %>
|
|
19
|
-
<a href="<%=`/${_context.locale}/${_context.resourceConfig.resourceTypePlural}/${resource.id}`%>" class="btn-secondary">Back</a>
|
|
20
|
-
</div>
|
|
21
|
-
</div>
|
|
22
|
-
</form>
|
|
23
|
-
<% }) %>
|
|
24
|
-
</div>
|
|
25
|
-
|
|
26
|
-
<div>
|
|
27
|
-
<div class="help">
|
|
28
|
-
<div class="mb-2 flex items-center gap-1">
|
|
29
|
-
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
|
|
30
|
-
<path stroke-linecap="round" stroke-linejoin="round" d="m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z" />
|
|
31
|
-
</svg>
|
|
32
|
-
|
|
33
|
-
<h3 class="heading-3">How to safely retire a page?</h3>
|
|
34
|
-
</div>
|
|
35
|
-
|
|
36
|
-
<div class="markdown">
|
|
37
|
-
<p>Warning: Deleting a page can break existing links. To mitigate this, choose one of these options:</p>
|
|
38
|
-
|
|
39
|
-
<ol>
|
|
40
|
-
<li>Create a redirect to another page</li>
|
|
41
|
-
<li>Set a 410 response to signal Google to remove the page from its index</li>
|
|
42
|
-
<li>Use a 404 response only if absolutely certain</li>
|
|
43
|
-
</ol>
|
|
44
|
-
|
|
45
|
-
<p>In all cases, the current content will be deleted and forgotten like tears in rain — a moment lost in time. You might also consider changing the visibility of the page to private, which will preserve the content but hide it from end users.</p>
|
|
46
|
-
</div>
|
|
47
|
-
</div>
|
|
48
|
-
</div>
|
|
49
|
-
</div>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
<script>
|
|
53
|
-
function onDestinationChange(event) {
|
|
54
|
-
const newValue = event.target.value;
|
|
55
|
-
const requiresRedirect = newValue === "301"
|
|
56
|
-
|
|
57
|
-
document.getElementById("f_resource_destination").parentElement.style.display = requiresRedirect ? "block" : "none";
|
|
58
|
-
document.getElementById("f_resource_destination").required = requiresRedirect;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
onDestinationChange({
|
|
62
|
-
target: {
|
|
63
|
-
value: '<%= resource.redirect %>'
|
|
64
|
-
}
|
|
65
|
-
})
|
|
66
|
-
|
|
67
|
-
document.getElementById("f_resource_redirect").addEventListener("change", onDestinationChange)
|
|
68
|
-
</script>
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
<div class="page-wrapper">
|
|
2
|
-
<div class="page-title">
|
|
3
|
-
<div>
|
|
4
|
-
<h1 class="heading-1">Articles / History of changes</h1>
|
|
5
|
-
<span class="body-2 opacity-50"><%= %></span>
|
|
6
|
-
</div>
|
|
7
|
-
|
|
8
|
-
<div class="actions-toolbar">
|
|
9
|
-
<a href="<%= `/${_context.locale}/${_context.resourceConfig.resourceTypePlural}/${resource.id}` %>" class="btn-text">Back</a>
|
|
10
|
-
<button type="button" data-toggle-sidebar="1" class="p-2.5 rounded hover:bg-neutral-200 transition-all duration-300 ease-in-out dark:hover:bg-neutral-700">
|
|
11
|
-
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
|
|
12
|
-
<path stroke-linecap="round" stroke-linejoin="round" d="m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z" />
|
|
13
|
-
</svg>
|
|
14
|
-
</button>
|
|
15
|
-
</div>
|
|
16
|
-
</div>
|
|
17
|
-
|
|
18
|
-
<%- render_partial('../_shared/history_table.ejs', {
|
|
19
|
-
changes,
|
|
20
|
-
resource,
|
|
21
|
-
_context,
|
|
22
|
-
render_partial,
|
|
23
|
-
skipPagination: false,
|
|
24
|
-
toolbarPath: '../_shared/_history_toolbar.ejs'
|
|
25
|
-
}) %>
|
|
26
|
-
|
|
27
|
-
</div>
|
|
28
|
-
|
|
29
|
-
<div data-sidebar="1" class="search-sidebar <%= Object.keys(_context.query).some(k => k.startsWith('f:')) ? '' : 'hidden' %>">
|
|
30
|
-
<span class="heading-2">Search by</span>
|
|
31
|
-
|
|
32
|
-
<form action="<%= `/${_context.locale}/${_context.resourceConfig.resourceTypePlural}/${resource.id}/history` %>" method="GET" class="form mt-4">
|
|
33
|
-
<input type="hidden" name="order_direction" value="<%= _context.query.order_direction %>" />
|
|
34
|
-
<input type="hidden" name="order_by" value="<%= _context.query.order_by %>" />
|
|
35
|
-
|
|
36
|
-
<div class="mb-4">
|
|
37
|
-
<label for="date_from" class="font-semibold hover:cursor-pointer body-3">From</label>
|
|
38
|
-
<input type="date" name="f:date_from" value="<%= _context.query["f:date_from"] %>" />
|
|
39
|
-
</div>
|
|
40
|
-
|
|
41
|
-
<div class="mb-4">
|
|
42
|
-
<label for="date_to" class="font-semibold hover:cursor-pointer body-3">To</label>
|
|
43
|
-
<input type="date" name="f:date_to" value="<%= _context.query["f:date_to"] %>" />
|
|
44
|
-
</div>
|
|
45
|
-
|
|
46
|
-
<div class="mb-4">
|
|
47
|
-
<%- f.field('f:operator', {
|
|
48
|
-
as: 'select',
|
|
49
|
-
options: editors.map(editor => [editor.id, editor.name]),
|
|
50
|
-
label: "Editor",
|
|
51
|
-
include_blank: 'All Editors',
|
|
52
|
-
value: _context.query["f:operator"]
|
|
53
|
-
}) %>
|
|
54
|
-
</div>
|
|
55
|
-
|
|
56
|
-
<div class="mb-4">
|
|
57
|
-
<label for="" class="font-semibold hover:cursor-pointer body-3">Changes</label>
|
|
58
|
-
<div class="checkbox-group mb-4">
|
|
59
|
-
<% Object.entries(history.changeTypes(_context.resourceConfig.resourceType)).forEach(([key, {label}])=> { %>
|
|
60
|
-
<div class="flex items-center gap-1">
|
|
61
|
-
<% if (utils.includedInCollection(key, _context.query["f:change_type"])) { %>
|
|
62
|
-
<input type="checkbox" name="f:change_type" id='change-<%= key %>' checked value="<%= key %>" class="hover:cursor-pointer">
|
|
63
|
-
<% } else { %>
|
|
64
|
-
<input type="checkbox" name="f:change_type" id='change-<%= key %>' value="<%= key %>" class="hover:cursor-pointer">
|
|
65
|
-
<% } %>
|
|
66
|
-
<label for='change-<%= key %>' class="body-2 hover:cursor-pointer">
|
|
67
|
-
<%= label %>
|
|
68
|
-
</label>
|
|
69
|
-
</div>
|
|
70
|
-
<% }); %>
|
|
71
|
-
</div>
|
|
72
|
-
</div>
|
|
73
|
-
|
|
74
|
-
<div class="btn-toolbar">
|
|
75
|
-
<button type="submit" class="btn-primary">Search</button>
|
|
76
|
-
<a href="<%= `/${_context.locale}/${_context.resourceConfig.resourceTypePlural}/${resource.id}/history` %>" class="btn-text">Clear search</a>
|
|
77
|
-
</div>
|
|
78
|
-
</form>
|
|
79
|
-
</div>
|
|
80
|
-
|
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
<div class="page-wrapper">
|
|
2
|
-
<div class="page-title">
|
|
3
|
-
<%- render_partial('./_shared/_title.ejs') %>
|
|
4
|
-
<%- render_partial('./_shared/_toolbar.ejs') %>
|
|
5
|
-
</div>
|
|
6
|
-
|
|
7
|
-
<div class="flex flex-wrap items-center gap-1 mb-6 -my-4">
|
|
8
|
-
<%
|
|
9
|
-
const availableLocales = Object.keys(_context.locales);
|
|
10
|
-
const totalPossibleTranslations = availableLocales.length - 1;
|
|
11
|
-
const existingTranslationsCount = Object.keys(resource.translations).length;
|
|
12
|
-
const canBeTranslated = existingTranslationsCount < totalPossibleTranslations;
|
|
13
|
-
%>
|
|
14
|
-
|
|
15
|
-
<% Object.keys(_context.locales).forEach(key => { %>
|
|
16
|
-
<% const { name, _code, flag} = _context.locales[key] %>
|
|
17
|
-
<% if (key === _context.locale) { %>
|
|
18
|
-
<img title="<%= name %>" src="<%= flag %>" alt="<%= name %>" class="size-6 rounded-full border dark:border-neutral-700" />
|
|
19
|
-
<% } else if (resource.translations[key]) { %>
|
|
20
|
-
<a href="<%= `/${key}/${_context.resourceConfig.resourceTypePlural}/${resource.translations[key].id}` %>">
|
|
21
|
-
<img title="<%= name %>" src="<%= flag %>" alt="<%= name %>" class="size-6 rounded-full border dark:border-neutral-700" />
|
|
22
|
-
</a>
|
|
23
|
-
<% } else { %>
|
|
24
|
-
<a href="<%= `/${_context.locale}/${_context.resourceConfig.resourceTypePlural}/${resource.id}/translations/new?target_locale=${key}` %>">
|
|
25
|
-
<img title="<%= name %>" src="<%= flag %>" alt="<%= name %>" class="<%= [" transition-all ease-in-out duration-300 size-6 rounded-full border hover:opacity-100 dark:border-neutral-700", key === _context.locale ? "opacity-100" : "opacity-10"].join(" ") %>" />
|
|
26
|
-
</a>
|
|
27
|
-
<% } %>
|
|
28
|
-
<% }); %>
|
|
29
|
-
|
|
30
|
-
<% if (canBeTranslated) { %>
|
|
31
|
-
<a href="<%= `/${_context.locale}/${_context.resourceConfig.resourceTypePlural}/${resource.id}/translations/new` %>" class="btn-text ml-2">
|
|
32
|
-
Translate
|
|
33
|
-
</a>
|
|
34
|
-
<% } %>
|
|
35
|
-
</div>
|
|
36
|
-
|
|
37
|
-
<%
|
|
38
|
-
const openedRevisions = []
|
|
39
|
-
const scheduledRevisions = []
|
|
40
|
-
|
|
41
|
-
revisions.forEach(r => {
|
|
42
|
-
if (r.schedule) {
|
|
43
|
-
scheduledRevisions.push(r)
|
|
44
|
-
} else {
|
|
45
|
-
openedRevisions.push(r)
|
|
46
|
-
}
|
|
47
|
-
})
|
|
48
|
-
%>
|
|
49
|
-
|
|
50
|
-
<% if (openedRevisions.length) { %>
|
|
51
|
-
<div class="pb-8">
|
|
52
|
-
<h4 class="pb-4 heading-3 flex items-center gap-2">
|
|
53
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="size-4 text-raketa-primary">
|
|
54
|
-
<path fill-rule="evenodd" d="M5.625 1.5c-1.036 0-1.875.84-1.875 1.875v17.25c0 1.035.84 1.875 1.875 1.875h12.75c1.035 0 1.875-.84 1.875-1.875V12.75A3.75 3.75 0 0 0 16.5 9h-1.875a1.875 1.875 0 0 1-1.875-1.875V5.25A3.75 3.75 0 0 0 9 1.5H5.625ZM7.5 15a.75.75 0 0 1 .75-.75h7.5a.75.75 0 0 1 0 1.5h-7.5A.75.75 0 0 1 7.5 15Zm.75 2.25a.75.75 0 0 0 0 1.5H12a.75.75 0 0 0 0-1.5H8.25Z" clip-rule="evenodd" />
|
|
55
|
-
<path d="M12.971 1.816A5.23 5.23 0 0 1 14.25 5.25v1.875c0 .207.168.375.375.375H16.5a5.23 5.23 0 0 1 3.434 1.279 9.768 9.768 0 0 0-6.963-6.963Z" />
|
|
56
|
-
</svg>
|
|
57
|
-
|
|
58
|
-
Open revisions
|
|
59
|
-
</h4>
|
|
60
|
-
|
|
61
|
-
<table class="data-grid alt">
|
|
62
|
-
<thead>
|
|
63
|
-
<tr>
|
|
64
|
-
<th>Title</th>
|
|
65
|
-
<th>Created by</th>
|
|
66
|
-
<th>Last change</th>
|
|
67
|
-
<th> </th>
|
|
68
|
-
</tr>
|
|
69
|
-
</thead>
|
|
70
|
-
|
|
71
|
-
<tbody>
|
|
72
|
-
<% openedRevisions.forEach((revision, idx)=> { %>
|
|
73
|
-
<tr class="border-b border-mono-25">
|
|
74
|
-
<td class="py-4 pl-2 w-1/2">
|
|
75
|
-
<div class="flex gap-1 items-center">
|
|
76
|
-
<% if (revision.meta && revision.meta.locked) { %>
|
|
77
|
-
<div title="<%= revision.meta.lockMessage %>">
|
|
78
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="size-4">
|
|
79
|
-
<path fill-rule="evenodd" d="M10 1a4.5 4.5 0 0 0-4.5 4.5V9H5a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-6a2 2 0 0 0-2-2h-.5V5.5A4.5 4.5 0 0 0 10 1Zm3 8V5.5a3 3 0 1 0-6 0V9h6Z" clip-rule="evenodd" />
|
|
80
|
-
</svg>
|
|
81
|
-
</div>
|
|
82
|
-
<% } %>
|
|
83
|
-
|
|
84
|
-
<%= revision.title %>
|
|
85
|
-
</div>
|
|
86
|
-
</td>
|
|
87
|
-
|
|
88
|
-
<td class="whitespace-nowrap">
|
|
89
|
-
<%- render_partial('./_shared/_revision_operator.ejs', { revision }) %>
|
|
90
|
-
</td>
|
|
91
|
-
|
|
92
|
-
<td class="whitespace-nowrap">
|
|
93
|
-
<div class="body-3 text-raketa-foreground/50">
|
|
94
|
-
<div class="flex items-center gap-1">
|
|
95
|
-
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4 text-raketa-foreground">
|
|
96
|
-
<path stroke-linecap="round" stroke-linejoin="round" d="M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />
|
|
97
|
-
</svg>
|
|
98
|
-
|
|
99
|
-
<time data-pretty-datetime datetime="<%= revision.insertedAt %>"><%= utils.formattedDateTime(revision.insertedAt) %></time>
|
|
100
|
-
</div>
|
|
101
|
-
</div>
|
|
102
|
-
</td>
|
|
103
|
-
|
|
104
|
-
<td class="whitespace-nowrap">
|
|
105
|
-
<%- render_partial('./_shared/_revision_toolbar.ejs', { revision }) %>
|
|
106
|
-
</td>
|
|
107
|
-
</tr>
|
|
108
|
-
<% }); %>
|
|
109
|
-
</tbody>
|
|
110
|
-
</table>
|
|
111
|
-
</div>
|
|
112
|
-
<% } %>
|
|
113
|
-
|
|
114
|
-
<% if (scheduledRevisions.length) { %>
|
|
115
|
-
<div class="pb-8">
|
|
116
|
-
<h4 class="pb-4 heading-3 flex items-center gap-2">
|
|
117
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="size-4 text-raketa-primary">
|
|
118
|
-
<path fill-rule="evenodd" d="M5.625 1.5c-1.036 0-1.875.84-1.875 1.875v17.25c0 1.035.84 1.875 1.875 1.875h12.75c1.035 0 1.875-.84 1.875-1.875V12.75A3.75 3.75 0 0 0 16.5 9h-1.875a1.875 1.875 0 0 1-1.875-1.875V5.25A3.75 3.75 0 0 0 9 1.5H5.625ZM7.5 15a.75.75 0 0 1 .75-.75h7.5a.75.75 0 0 1 0 1.5h-7.5A.75.75 0 0 1 7.5 15Zm.75 2.25a.75.75 0 0 0 0 1.5H12a.75.75 0 0 0 0-1.5H8.25Z" clip-rule="evenodd" />
|
|
119
|
-
<path d="M12.971 1.816A5.23 5.23 0 0 1 14.25 5.25v1.875c0 .207.168.375.375.375H16.5a5.23 5.23 0 0 1 3.434 1.279 9.768 9.768 0 0 0-6.963-6.963Z" />
|
|
120
|
-
</svg>
|
|
121
|
-
|
|
122
|
-
Scheduled for publication
|
|
123
|
-
</h4>
|
|
124
|
-
|
|
125
|
-
<table class="data-grid alt">
|
|
126
|
-
<thead>
|
|
127
|
-
<tr>
|
|
128
|
-
<th>Title</th>
|
|
129
|
-
<th>Created by</th>
|
|
130
|
-
<th>Scheduled by</th>
|
|
131
|
-
<th>Publish on</th>
|
|
132
|
-
<th> </th>
|
|
133
|
-
</tr>
|
|
134
|
-
</thead>
|
|
135
|
-
|
|
136
|
-
<tbody>
|
|
137
|
-
<% scheduledRevisions.forEach((revision, idx)=> { %>
|
|
138
|
-
<tr class="border-b border-mono-25">
|
|
139
|
-
<td class="py-4 pl-2 w-1/2">
|
|
140
|
-
<div class="flex gap-1 items-center">
|
|
141
|
-
<%= revision.title %>
|
|
142
|
-
</div>
|
|
143
|
-
</td>
|
|
144
|
-
|
|
145
|
-
<td class="whitespace-nowrap">
|
|
146
|
-
<%- render_partial('./_shared/_revision_operator.ejs', { revision }) %>
|
|
147
|
-
</td>
|
|
148
|
-
|
|
149
|
-
<td class="whitespace-nowrap">
|
|
150
|
-
<div class="body-3 text-raketa-foreground/50">
|
|
151
|
-
<div class="flex items-center gap-1" title="<%= revision.schedule.operatorMeta.name %>">
|
|
152
|
-
<% if (revision.schedule.operatorMeta.avatar) { %>
|
|
153
|
-
<img src="<%= revision.schedule.operatorMeta.avatar %>" class="size-4 rounded-full">
|
|
154
|
-
<% } %>
|
|
155
|
-
<%= revision.schedule.operatorMeta.name %>
|
|
156
|
-
</div>
|
|
157
|
-
</div>
|
|
158
|
-
</td>
|
|
159
|
-
|
|
160
|
-
<td class="whitespace-nowrap">
|
|
161
|
-
<div class="body-3 text-raketa-foreground/50">
|
|
162
|
-
<div class="flex items-center gap-1">
|
|
163
|
-
<svg xmlns="http://www.w3.org/2000/svg" class="size-4 text-raketa-foreground" viewBox="0 0 512 512">
|
|
164
|
-
<path d="M112.91 128A191.85 191.85 0 0064 254c-1.18 106.35 85.65 193.8 192 194 106.2.2 192-85.83 192-192 0-104.54-83.55-189.61-187.5-192a4.36 4.36 0 00-4.5 4.37V152" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" />
|
|
165
|
-
<path d="M233.38 278.63l-79-113a8.13 8.13 0 0111.32-11.32l113 79a32.5 32.5 0 01-37.25 53.26 33.21 33.21 0 01-8.07-7.94z" />
|
|
166
|
-
</svg>
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
<time data-pretty-expiration-time datetime="<%= revision.schedule.mergeAt %>"><%= revision.schedule.mergeAt %></time>
|
|
170
|
-
</div>
|
|
171
|
-
</div>
|
|
172
|
-
</td>
|
|
173
|
-
|
|
174
|
-
<td class="whitespace-nowrap">
|
|
175
|
-
<div class="actions-toolbar justify-end">
|
|
176
|
-
<form action="<%= `/${_context.locale}/${_context.resourceConfig.resourceType}_revisions/${revision.id}/cancel_schedules` %>" method="post" class="inline-flex gap-2 items-center">
|
|
177
|
-
<%- f.submit('Remove schedule', { class: 'btn-text' }) %>
|
|
178
|
-
</form>
|
|
179
|
-
|
|
180
|
-
<a href="/remote/login?redirect_to=/<%= _context.locale %>/admin/<%= _context.resourceConfig.resourceType %>-revisions/<%= revision.id %>/preview" target="_blank" class="btn-text has-icon">
|
|
181
|
-
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
|
|
182
|
-
<path stroke-linecap="round" stroke-linejoin="round" d="M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z" />
|
|
183
|
-
<path stroke-linecap="round" stroke-linejoin="round" d="M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z" />
|
|
184
|
-
</svg>
|
|
185
|
-
|
|
186
|
-
Preview
|
|
187
|
-
</a>
|
|
188
|
-
</div>
|
|
189
|
-
</td>
|
|
190
|
-
</tr>
|
|
191
|
-
<% }); %>
|
|
192
|
-
</tbody>
|
|
193
|
-
</table>
|
|
194
|
-
</div>
|
|
195
|
-
<% } %>
|
|
196
|
-
|
|
197
|
-
<%- render_partial('./_shared/_addons.ejs') %>
|
|
198
|
-
|
|
199
|
-
<div class="mb-4">
|
|
200
|
-
<h4 class="pb-4 heading-3 items-center gap-2 flex">
|
|
201
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="size-4 text-raketa-primary">
|
|
202
|
-
<path d="M3.375 3C2.339 3 1.5 3.84 1.5 4.875v.75c0 1.036.84 1.875 1.875 1.875h17.25c1.035 0 1.875-.84 1.875-1.875v-.75C22.5 3.839 21.66 3 20.625 3H3.375Z" />
|
|
203
|
-
<path fill-rule="evenodd" d="m3.087 9 .54 9.176A3 3 0 0 0 6.62 21h10.757a3 3 0 0 0 2.995-2.824L20.913 9H3.087Zm6.163 3.75A.75.75 0 0 1 10 12h4a.75.75 0 0 1 0 1.5h-4a.75.75 0 0 1-.75-.75Z" clip-rule="evenodd" />
|
|
204
|
-
</svg>
|
|
205
|
-
|
|
206
|
-
History of changes
|
|
207
|
-
</h4>
|
|
208
|
-
|
|
209
|
-
<%- render_partial('./_shared/history_table.ejs', {
|
|
210
|
-
changes,
|
|
211
|
-
resource,
|
|
212
|
-
_context,
|
|
213
|
-
render_partial,
|
|
214
|
-
skipPagination: true,
|
|
215
|
-
toolbarPath: './_shared/_history_toolbar.ejs'
|
|
216
|
-
}) %>
|
|
217
|
-
|
|
218
|
-
<a href="<%= `/${_context.locale}/${_context.resourceConfig.resourceTypePlural}/${resource.id}/history` %>" class="btn-text ml-2 my-8">
|
|
219
|
-
Full page history
|
|
220
|
-
</a>
|
|
221
|
-
</div>
|
|
222
|
-
</div>
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
<div class="page-wrapper">
|
|
2
|
-
<div class="page-title">
|
|
3
|
-
<h1 class="heading-1">
|
|
4
|
-
<span class="opacity-50">Change URL / </span>
|
|
5
|
-
<%= record.title %>
|
|
6
|
-
</h1>
|
|
7
|
-
</div>
|
|
8
|
-
|
|
9
|
-
<div class="grid gap-4 md:grid-cols-3">
|
|
10
|
-
<% form_for({ resource }, errors, (f) => { %>
|
|
11
|
-
<form action="<%= `/${_context.locale}/${_context.resourceConfig.resourceTypePlural}/${resource.id}/urls` %>" method="post" class="form">
|
|
12
|
-
<%- f.field('resource.slug', { label: "URL", required: true, hint: "Only lowercase letters, numbers and dash allowed. Ex: celebrate/friday-13" }) %>
|
|
13
|
-
<%- f.field('resource.redirect', { as: "checkbox", value: "1", label: "Create 301 redirect for the old URL" }) %>
|
|
14
|
-
|
|
15
|
-
<%- f.submit('Save record', { class: 'btn-primary' }) %>
|
|
16
|
-
<a href="<%=`/${_context.locale}/${_context.resourceConfig.resourceTypePlural}/${resource.id}`%>" class="btn-secondary">Back</a>
|
|
17
|
-
</form>
|
|
18
|
-
<% }) %>
|
|
19
|
-
|
|
20
|
-
<div>
|
|
21
|
-
<div class="help">
|
|
22
|
-
<div class="flex items-center gap-1 mb-2">
|
|
23
|
-
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
|
|
24
|
-
<path stroke-linecap="round" stroke-linejoin="round" d="m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z" />
|
|
25
|
-
</svg>
|
|
26
|
-
|
|
27
|
-
<h3 class="heading-3">Changing URL</h3>
|
|
28
|
-
</div>
|
|
29
|
-
|
|
30
|
-
<div class="markdown">
|
|
31
|
-
<p>Caution: Changing a page's URL may create broken links from existing references. If needed, use the redirect checkbox to automatically forward traffic from the old address to the new one, preserving link integrity.</p>
|
|
32
|
-
</div>
|
|
33
|
-
</div>
|
|
34
|
-
</div>
|
|
35
|
-
</div>
|
|
36
|
-
</div>
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
<% form_for({ resource }, errors, (f) => { %>
|
|
2
|
-
<form action="<%= `/${_context.locale}/${_context.resourceConfig.resourceType}_revisions/${resource.id}/codes` %>" method="POST" class="form">
|
|
3
|
-
<%- render_partial('../../_shared/_scripts_input.ejs', { resource, f }) %>
|
|
4
|
-
<%- render_partial('../../_shared/_structured_json_input.ejs', { resource, f }) %>
|
|
5
|
-
|
|
6
|
-
<div class="form-actions">
|
|
7
|
-
<div class="btn-toolbar">
|
|
8
|
-
<%- f.submit('Save', { class: 'btn-primary' }) %>
|
|
9
|
-
<%- f.submit('Save and publish', { class: 'btn-secondary', name: '_next', value: 'publish' }) %>
|
|
10
|
-
<a href="<%= `/${_context.locale}/${_context.resourceConfig.resourceTypePlural}/${resource.originalId}` %>" class="btn-text">Back</a>
|
|
11
|
-
</div>
|
|
12
|
-
</div>
|
|
13
|
-
</form>
|
|
14
|
-
<% }) %>
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
<div class="page-wrapper">
|
|
2
|
-
<div class="page-title">
|
|
3
|
-
<h1 class="heading-1">
|
|
4
|
-
<span class="opacity-50">Code customizations / </span>
|
|
5
|
-
<%= resource.title %>
|
|
6
|
-
</h1>
|
|
7
|
-
</div>
|
|
8
|
-
|
|
9
|
-
<%- render_partial('../_nav.ejs', { resource, active: 'codes' }) %>
|
|
10
|
-
|
|
11
|
-
<div class="grid gap-4 md:grid-cols-3">
|
|
12
|
-
<div>
|
|
13
|
-
<%- render_partial('_form.ejs', { render_partial: render_partial }) %>
|
|
14
|
-
</div>
|
|
15
|
-
</div>
|
|
16
|
-
</div>
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<% form_for({ resource }, errors, (f) => { %>
|
|
2
|
-
<form action="<%= `/${_context.locale}/${_context.resourceConfig.resourceType}_revisions/${resource.id}/general` %>" method="POST" class="form">
|
|
3
|
-
<%- f.field('resource.title', { required: true }) %>
|
|
4
|
-
<%- f.field('resource.slug', { label: "URL", required: true, hint: "Only lowercase letters, numbers and dash allowed. E.g: celebrate-friday-13" }) %>
|
|
5
|
-
<%- f.field('resource.settings.publish_at', { required: true, type: 'date', label: `${Inflector.capitalize(_context.resourceConfig.resourceType)} post date` }) %>
|
|
6
|
-
<%- f.field('resource.settings.starts_at', { required: true, type: 'datetime-local', label: 'Starts at (UTC)' }) %>
|
|
7
|
-
<%- f.field('resource.settings.ends_at', { required: true, type: 'datetime-local', label: 'Ends at (UTC)' }) %>
|
|
8
|
-
<%- f.field('resource.visibility', { as: 'select', required: true, options: visibilityOptions }) %>
|
|
9
|
-
|
|
10
|
-
<%- include('../../_shared/_credentials_input.ejs', { f, visibilityFieldId: "f_resource_visibility"}) %>
|
|
11
|
-
|
|
12
|
-
<div class="form-actions">
|
|
13
|
-
<div class="btn-toolbar">
|
|
14
|
-
<%- f.submit('Save', { class: 'btn-primary' }) %>
|
|
15
|
-
<%- f.submit('Save and publish', { class: 'btn-secondary', name: '_next', value: 'publish' }) %>
|
|
16
|
-
<a href="<%= `/${_context.locale}/${_context.resourceConfig.resourceTypePlural}/${resource.originalId}` %>" class="btn-text">Back</a>
|
|
17
|
-
</div>
|
|
18
|
-
</div>
|
|
19
|
-
</form>
|
|
20
|
-
<% }) %>
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
<div class="page-wrapper">
|
|
2
|
-
<div class="page-title">
|
|
3
|
-
<h1 class="heading-1">
|
|
4
|
-
<span class="opacity-50">General / </span>
|
|
5
|
-
<%= resource.title %>
|
|
6
|
-
</h1>
|
|
7
|
-
</div>
|
|
8
|
-
|
|
9
|
-
<%- render_partial('../_nav.ejs', { resource, active: 'general' }) %>
|
|
10
|
-
|
|
11
|
-
<div class="grid gap-4 md:grid-cols-3">
|
|
12
|
-
<div>
|
|
13
|
-
<%- render_partial('_form.ejs') %>
|
|
14
|
-
</div>
|
|
15
|
-
</div>
|
|
16
|
-
</div>
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
<% form_for({ resource }, errors, (f) => { %>
|
|
2
|
-
<form action="<%= `/${_context.locale}/${_context.resourceConfig.resourceType}_revisions/${resource.id}/locks` %>" method="POST" class="form">
|
|
3
|
-
<%- f.field('resource.message', { as: 'textarea', label: 'Lock Message', required: true }) %>
|
|
4
|
-
<div class="form-actions">
|
|
5
|
-
<div class="btn-toolbar">
|
|
6
|
-
<%- f.submit('Lock revision', { class: 'btn-primary' }) %>
|
|
7
|
-
<a href="<%= `/${_context.locale}/${_context.resourceConfig.resourceTypePlural}/${resource.originalId}` %>" class="btn-secondary">Cancel</a>
|
|
8
|
-
</div>
|
|
9
|
-
</div>
|
|
10
|
-
</form>
|
|
11
|
-
<% }) %>
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
<div class="page-wrapper">
|
|
2
|
-
<div class="page-title">
|
|
3
|
-
<h1 class="heading-1">Lock revision</h1>
|
|
4
|
-
</div>
|
|
5
|
-
|
|
6
|
-
<div class="grid gap-4 md:grid-cols-3">
|
|
7
|
-
<div>
|
|
8
|
-
<%- render_partial('_form.ejs') %>
|
|
9
|
-
</div>
|
|
10
|
-
|
|
11
|
-
<div>
|
|
12
|
-
<div class="help">
|
|
13
|
-
<div class="mb-2 flex items-center gap-1">
|
|
14
|
-
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
|
|
15
|
-
<path stroke-linecap="round" stroke-linejoin="round" d="m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z" />
|
|
16
|
-
</svg>
|
|
17
|
-
|
|
18
|
-
<h3 class="heading-3">How to lock a revision?</h3>
|
|
19
|
-
</div>
|
|
20
|
-
|
|
21
|
-
<div class="markdown">
|
|
22
|
-
<p>You can lock a revision to prevent publishing or deletion by anyone, including yourself. When locking, provide a clear, informative message explaining the reason. Remember that while this feature is designed to facilitate collaboration, any user can still unlock the revision.</p>
|
|
23
|
-
</div>
|
|
24
|
-
</div>
|
|
25
|
-
</div>
|
|
26
|
-
</div>
|
|
27
|
-
</div>
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
<% form_for({ resource }, errors, (f) => { %>
|
|
2
|
-
<form action="<%= `/${_context.locale}/${_context.resourceConfig.resourceType}_revisions/${resource.id}/meta` %>" method="POST" class="form">
|
|
3
|
-
<%- f.field('resource.settings.meta.title', { required: true, label: "Meta title", hint: "Used for both meta and OpenGraph" }) %>
|
|
4
|
-
<%- f.field('resource.settings.meta.description', { as: "textarea", required: true, label: "Meta description", hint: "Used for both meta and OpenGraph" }) %>
|
|
5
|
-
|
|
6
|
-
<raketa-image-picker name="resource[settings][meta][image]" value="<%= JSON.stringify(resource.settings?.meta?.image || {}) %>" label="OpenGraph image"></raketa-image-picker>
|
|
7
|
-
|
|
8
|
-
<div class="form-actions">
|
|
9
|
-
<div class="btn-toolbar">
|
|
10
|
-
<%- f.submit('Save', { class: 'btn-primary' }) %>
|
|
11
|
-
<%- f.submit('Save and publish', { class: 'btn-secondary', name: '_next', value: 'publish' }) %>
|
|
12
|
-
<a href="<%= `/${_context.locale}/${_context.resourceConfig.resourceTypePlural}/${resource.originalId}` %>" class="btn-text">Back</a>
|
|
13
|
-
</div>
|
|
14
|
-
</div>
|
|
15
|
-
</form>
|
|
16
|
-
<% }) %>
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
<div class="page-wrapper">
|
|
2
|
-
<div class="page-title">
|
|
3
|
-
<h1 class="heading-1">
|
|
4
|
-
<span class="opacity-50">OpenGraph & Meta tags / </span>
|
|
5
|
-
<%= resource.title %>
|
|
6
|
-
</h1>
|
|
7
|
-
</div>
|
|
8
|
-
|
|
9
|
-
<%- render_partial('../_nav.ejs', { resource, active: 'meta' }) %>
|
|
10
|
-
|
|
11
|
-
<div class="grid gap-4 md:grid-cols-3">
|
|
12
|
-
<div>
|
|
13
|
-
<%- render_partial('_form.ejs') %>
|
|
14
|
-
</div>
|
|
15
|
-
</div>
|
|
16
|
-
</div>
|