@raketa-cloud/admin 0.0.16 → 0.0.17

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.
Files changed (134) hide show
  1. package/package.json +1 -1
  2. package/src/Adapter.js +4 -4
  3. package/src/HonoAdapter.js +13 -19
  4. package/src/cloud/Articles.js +9 -5
  5. package/src/cloud/Events.js +9 -5
  6. package/src/cloud/Pages.js +9 -5
  7. package/src/handlers/article_revisions/ArticleRevisionsHandler.js +4 -4
  8. package/src/handlers/article_revisions/CodeHandler.js +2 -2
  9. package/src/handlers/article_revisions/GeneralHandler.js +2 -2
  10. package/src/handlers/article_revisions/LocksHandler.js +2 -2
  11. package/src/handlers/article_revisions/MetaHandler.js +2 -2
  12. package/src/handlers/article_revisions/PublishesHandler.js +2 -2
  13. package/src/handlers/article_revisions/RevertsHandler.js +2 -2
  14. package/src/handlers/article_revisions/TagHandler.js +2 -2
  15. package/src/handlers/article_revisions/UnlocksHandler.js +2 -2
  16. package/src/handlers/article_revisions/VisualHandler.js +2 -2
  17. package/src/handlers/articles/ArticlesHandler.js +20 -16
  18. package/src/handlers/articles/ClonesHandler.js +5 -3
  19. package/src/handlers/articles/DeletesHandler.js +5 -5
  20. package/src/handlers/articles/TranslationsHandler.js +25 -22
  21. package/src/handlers/articles/URLsHandler.js +6 -6
  22. package/src/handlers/event_revisions/CodeHandler.js +2 -2
  23. package/src/handlers/event_revisions/EventRevisionsHandler.js +4 -4
  24. package/src/handlers/event_revisions/GeneralHandler.js +3 -2
  25. package/src/handlers/event_revisions/LocksHandler.js +2 -2
  26. package/src/handlers/event_revisions/MetaHandler.js +2 -2
  27. package/src/handlers/event_revisions/PublishesHandler.js +2 -2
  28. package/src/handlers/event_revisions/RevertsHandler.js +2 -2
  29. package/src/handlers/event_revisions/TagHandler.js +2 -2
  30. package/src/handlers/event_revisions/UnlocksHandler.js +2 -2
  31. package/src/handlers/event_revisions/VisualHandler.js +2 -2
  32. package/src/handlers/events/ClonesHandler.js +5 -3
  33. package/src/handlers/events/DeletesHandler.js +5 -5
  34. package/src/handlers/events/EventsHandler.js +20 -16
  35. package/src/handlers/events/TranslationsHandler.js +31 -23
  36. package/src/handlers/events/URLsHandler.js +5 -5
  37. package/src/handlers/page_revisions/CodeHandler.js +2 -2
  38. package/src/handlers/page_revisions/GeneralHandler.js +2 -2
  39. package/src/handlers/page_revisions/LocksHandler.js +2 -2
  40. package/src/handlers/page_revisions/MetaHandler.js +2 -2
  41. package/src/handlers/page_revisions/PageRevisionsHandler.js +4 -4
  42. package/src/handlers/page_revisions/PublishesHandler.js +2 -2
  43. package/src/handlers/page_revisions/RevertsHandler.js +2 -2
  44. package/src/handlers/page_revisions/TagHandler.js +2 -2
  45. package/src/handlers/page_revisions/UnlocksHandler.js +2 -2
  46. package/src/handlers/page_revisions/VisualHandler.js +2 -2
  47. package/src/handlers/pages/ClonesHandler.js +5 -3
  48. package/src/handlers/pages/DeletesHandler.js +5 -5
  49. package/src/handlers/pages/PagesHandler.js +21 -16
  50. package/src/handlers/pages/TranslationsHandler.js +24 -22
  51. package/src/handlers/pages/URLsHandler.js +6 -6
  52. package/src/index.js +3 -3
  53. package/src/routeArticlesModule.js +142 -0
  54. package/src/routeCollection.js +2 -2
  55. package/src/routeEventsModule.js +142 -0
  56. package/src/routeMember.js +2 -2
  57. package/src/routeNestedCollection.js +8 -2
  58. package/src/routeNestedMember.js +8 -2
  59. package/src/routePagesModule.js +155 -0
  60. package/src/routeStandard.js +6 -6
  61. package/src/tests/handlers/article_revisions/{PageRevisionsHandler.test → ArticleRevisionsHandler.test}/create.test.js +12 -3
  62. package/src/tests/handlers/article_revisions/{PageRevisionsHandler.test → ArticleRevisionsHandler.test}/destroy.test.js +8 -2
  63. package/src/tests/handlers/article_revisions/CodesHandler.test/update.test.js +12 -3
  64. package/src/tests/handlers/article_revisions/GeneralHandler.test/update.test.js +12 -3
  65. package/src/tests/handlers/article_revisions/MetaHandler.test/update.test.js +12 -3
  66. package/src/tests/handlers/article_revisions/PublishesHandler.test/create.test.js +8 -2
  67. package/src/tests/handlers/article_revisions/RevertsHandler.test/create.test.js +12 -3
  68. package/src/tests/handlers/article_revisions/TagHandler.test/update.test.js +12 -3
  69. package/src/tests/handlers/article_revisions/VisualHandler.test.test/update.test.js +12 -3
  70. package/src/tests/handlers/articles/ArticlesHandler.test/create.test.js +11 -5
  71. package/src/tests/handlers/articles/ArticlesHandler.test/create_form.test.js +5 -2
  72. package/src/tests/handlers/articles/ArticlesHandler.test/index.test.js +9 -2
  73. package/src/tests/handlers/articles/ArticlesHandler.test/show.test.js +9 -3
  74. package/src/tests/handlers/articles/{ConesHandler.test → ClonesHandler.test}/create.test.js +8 -2
  75. package/src/tests/handlers/articles/DeletesHandler.test/create.test.js +12 -3
  76. package/src/tests/handlers/articles/DeletesHandler.test/create_form.test.js +8 -2
  77. package/src/tests/handlers/articles/URLsHandler.test/create.test.js +18 -6
  78. package/src/tests/handlers/articles/URLsHandler.test/create_form.test.js +8 -2
  79. package/src/tests/handlers/event_revisions/CodesHandler.test/update.test.js +12 -3
  80. package/src/tests/handlers/event_revisions/{PageRevisionsHandler.test → EventRevisionsHandler.test}/create.test.js +12 -3
  81. package/src/tests/handlers/event_revisions/{PageRevisionsHandler.test → EventRevisionsHandler.test}/destroy.test.js +8 -2
  82. package/src/tests/handlers/event_revisions/GeneralHandler.test/update.test.js +12 -3
  83. package/src/tests/handlers/event_revisions/MetaHandler.test/update.test.js +12 -3
  84. package/src/tests/handlers/event_revisions/PublishesHandler.test/create.test.js +8 -2
  85. package/src/tests/handlers/event_revisions/RevertsHandler.test/create.test.js +12 -3
  86. package/src/tests/handlers/event_revisions/TagHandler.test/update.test.js +12 -3
  87. package/src/tests/handlers/event_revisions/VisualHandler.test.test/update.test.js +12 -3
  88. package/src/tests/handlers/events/{ConesHandler.test → ClonesHandler.test}/create.test.js +8 -2
  89. package/src/tests/handlers/events/DeletesHandler.test/create.test.js +12 -3
  90. package/src/tests/handlers/events/DeletesHandler.test/create_form.test.js +8 -2
  91. package/src/tests/handlers/events/EventsHandler.test/create.test.js +11 -5
  92. package/src/tests/handlers/events/EventsHandler.test/create_form.test.js +5 -2
  93. package/src/tests/handlers/events/EventsHandler.test/index.test.js +5 -2
  94. package/src/tests/handlers/events/EventsHandler.test/show.test.js +9 -3
  95. package/src/tests/handlers/events/URLsHandler.test/create.test.js +18 -6
  96. package/src/tests/handlers/events/URLsHandler.test/create_form.test.js +8 -2
  97. package/src/tests/handlers/page_revisions/CodesHandler.test/update.test.js +12 -3
  98. package/src/tests/handlers/page_revisions/GeneralHandler.test/update.test.js +12 -3
  99. package/src/tests/handlers/page_revisions/MetaHandler.test/update.test.js +12 -3
  100. package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/create.test.js +12 -3
  101. package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/destroy.test.js +8 -2
  102. package/src/tests/handlers/page_revisions/PublishesHandler.test/create.test.js +8 -2
  103. package/src/tests/handlers/page_revisions/RevertsHandler.test/create.test.js +12 -3
  104. package/src/tests/handlers/page_revisions/TagHandler.test/update.test.js +8 -2
  105. package/src/tests/handlers/page_revisions/VisualHandler.test.test/update.test.js +12 -3
  106. package/src/tests/handlers/pages/ConesHandler.test/create.test.js +8 -2
  107. package/src/tests/handlers/pages/DeletesHandler.test/create.test.js +12 -3
  108. package/src/tests/handlers/pages/DeletesHandler.test/create_form.test.js +8 -2
  109. package/src/tests/handlers/pages/PagesHandler.test/create.test.js +11 -5
  110. package/src/tests/handlers/pages/PagesHandler.test/create_form.test.js +1 -1
  111. package/src/tests/handlers/pages/PagesHandler.test/index.test.js +5 -2
  112. package/src/tests/handlers/pages/PagesHandler.test/show.test.js +9 -3
  113. package/src/tests/handlers/pages/URLsHandler.test/create.test.js +16 -4
  114. package/src/tests/handlers/pages/URLsHandler.test/create_form.test.js +8 -2
  115. package/src/tests/routeCollection.test.js +118 -105
  116. package/src/tests/routeMember.test.js +60 -54
  117. package/src/tests/routeNestedCollection.test.js +132 -126
  118. package/src/tests/routeNestedMember.test.js +60 -54
  119. package/src/views/articles/_form.ejs +17 -17
  120. package/src/views/articles/show.ejs +9 -9
  121. package/src/views/articles/translations/_form.ejs +3 -3
  122. package/src/views/articles/translations/create_form.ejs +6 -8
  123. package/src/views/events/_form.ejs +19 -19
  124. package/src/views/events/show.ejs +9 -9
  125. package/src/views/events/translations/_form.ejs +3 -3
  126. package/src/views/events/translations/create_form.ejs +7 -8
  127. package/src/views/pages/_form.ejs +16 -16
  128. package/src/views/pages/create_form.ejs +1 -1
  129. package/src/views/pages/show.ejs +9 -9
  130. package/src/views/pages/translations/_form.ejs +3 -3
  131. package/src/views/pages/translations/create_form.ejs +7 -9
  132. package/src/routeArticles.js +0 -65
  133. package/src/routeEvents.js +0 -55
  134. package/src/routePages.js +0 -55
@@ -24,32 +24,35 @@ describe("routeNestedMember", () => {
24
24
  test("Valid handler mapping is passed to router", () => {
25
25
  routeNestedMember(honoAdapter, "artist", "bio", ArtistHandWithFilters);
26
26
 
27
- expect(adapterSpy).toHaveBeenCalledWith([
27
+ expect(adapterSpy).toHaveBeenCalledWith(
28
28
  [
29
- "GET",
30
- "/artist/:parent_id/bio",
31
- "bio",
32
- "artist/bio",
33
- "show",
34
- ArtistHandWithFilters.show,
29
+ [
30
+ "GET",
31
+ "/artist/:parent_id/bio",
32
+ "bio",
33
+ "artist/bio",
34
+ "show",
35
+ ArtistHandWithFilters.show,
36
+ ],
37
+ [
38
+ "GET",
39
+ "/artist/:parent_id/bio/edit",
40
+ "bio",
41
+ "artist/bio",
42
+ "edit_form",
43
+ ArtistHandWithFilters.edit_form,
44
+ ],
45
+ [
46
+ "POST",
47
+ "/artist/:parent_id/bio",
48
+ "bio",
49
+ "artist/bio",
50
+ "edit_form",
51
+ ArtistHandWithFilters.update,
52
+ ],
35
53
  ],
36
- [
37
- "GET",
38
- "/artist/:parent_id/bio/edit",
39
- "bio",
40
- "artist/bio",
41
- "edit_form",
42
- ArtistHandWithFilters.edit_form,
43
- ],
44
- [
45
- "POST",
46
- "/artist/:parent_id/bio",
47
- "bio",
48
- "artist/bio",
49
- "edit_form",
50
- ArtistHandWithFilters.update,
51
- ],
52
- ]);
54
+ {}
55
+ );
53
56
  });
54
57
 
55
58
  test("Valid handler mapping is passed to router with filters", () => {
@@ -60,37 +63,40 @@ describe("routeNestedMember", () => {
60
63
  ArtistHandWithFiltersWithFilters
61
64
  );
62
65
 
63
- expect(adapterSpy).toHaveBeenCalledWith([
66
+ expect(adapterSpy).toHaveBeenCalledWith(
64
67
  [
65
- "GET",
66
- "/artist/:parent_id/bio",
67
- "bio",
68
- "artist/bio",
69
- "show",
70
- ArtistHandWithFiltersWithFilters.show,
71
- ArtistHandWithFiltersWithFilters.before_filter,
72
- ArtistHandWithFiltersWithFilters.after_filter,
68
+ [
69
+ "GET",
70
+ "/artist/:parent_id/bio",
71
+ "bio",
72
+ "artist/bio",
73
+ "show",
74
+ ArtistHandWithFiltersWithFilters.show,
75
+ ArtistHandWithFiltersWithFilters.before_filter,
76
+ ArtistHandWithFiltersWithFilters.after_filter,
77
+ ],
78
+ [
79
+ "GET",
80
+ "/artist/:parent_id/bio/edit",
81
+ "bio",
82
+ "artist/bio",
83
+ "edit_form",
84
+ ArtistHandWithFiltersWithFilters.edit_form,
85
+ ArtistHandWithFiltersWithFilters.before_filter,
86
+ ArtistHandWithFiltersWithFilters.after_filter,
87
+ ],
88
+ [
89
+ "POST",
90
+ "/artist/:parent_id/bio",
91
+ "bio",
92
+ "artist/bio",
93
+ "edit_form",
94
+ ArtistHandWithFiltersWithFilters.update,
95
+ ArtistHandWithFiltersWithFilters.before_filter,
96
+ ArtistHandWithFiltersWithFilters.after_filter,
97
+ ],
73
98
  ],
74
- [
75
- "GET",
76
- "/artist/:parent_id/bio/edit",
77
- "bio",
78
- "artist/bio",
79
- "edit_form",
80
- ArtistHandWithFiltersWithFilters.edit_form,
81
- ArtistHandWithFiltersWithFilters.before_filter,
82
- ArtistHandWithFiltersWithFilters.after_filter,
83
- ],
84
- [
85
- "POST",
86
- "/artist/:parent_id/bio",
87
- "bio",
88
- "artist/bio",
89
- "edit_form",
90
- ArtistHandWithFiltersWithFilters.update,
91
- ArtistHandWithFiltersWithFilters.before_filter,
92
- ArtistHandWithFiltersWithFilters.after_filter,
93
- ],
94
- ]);
99
+ {}
100
+ );
95
101
  });
96
102
  });
@@ -1,29 +1,29 @@
1
- <% form_for({ article }, errors, (f) => { %>
2
- <form action="<%= article?.id ? `/${_context.locale}/articles/${article.id}` : `/${_context.locale}/articles` %>" method="post" class="form">
3
- <%- f.field('article.title', { required: true }) %>
4
- <%- f.field('article.slug', { label: "URL", required: true }) %>
5
- <%- f.field('article.publish_at', { required: true, type: 'datetime-local' }) %>
1
+ <% form_for({ resource }, errors, (f) => { %>
2
+ <form action="<%= resource?.id ? `/${_context.locale}/articles/${resource.id}` : `/${_context.locale}/articles` %>" method="post" class="form">
3
+ <%- f.field('resource.title', { required: true }) %>
4
+ <%- f.field('resource.slug', { label: "URL", required: true }) %>
5
+ <%- f.field('resource.publish_at', { required: true, type: 'datetime-local' }) %>
6
6
 
7
- <%- f.field('article.visibility', { as: 'select', required: true, options: visibilityOptions }) %>
7
+ <%- f.field('resource.visibility', { as: 'select', required: true, options: visibilityOptions }) %>
8
8
 
9
- <%- f.field('article.username', { required: true }) %>
10
- <%- f.field('article.password', { required: true }) %>
9
+ <%- f.field('resource.username', { required: true }) %>
10
+ <%- f.field('resource.password', { required: true }) %>
11
11
 
12
- <%- f.field('article.layout', { as: 'select', required: true, options: [
12
+ <%- f.field('resource.layout', { as: 'select', required: true, options: [
13
13
  ["default", "Default"],
14
14
  ["landing", "Landing page"],
15
15
  ["headless", "Headless"],
16
16
  ] }) %>
17
17
 
18
- <%- f.field('article.meta_title', { required: true }) %>
19
- <%- f.field('article.meta_description', { as: "textarea", required: true }) %>
18
+ <%- f.field('resource.meta_title', { required: true }) %>
19
+ <%- f.field('resource.meta_description', { as: "textarea", required: true }) %>
20
20
 
21
21
  <raketa-image-picker
22
- name="article[meta_image]"
23
- value="<%= JSON.stringify(article.meta_image) %>"
22
+ name="resource[meta_image]"
23
+ value="<%= JSON.stringify(resource.meta_image) %>"
24
24
  ></raketa-image-picker>
25
25
 
26
- <%- f.field('article.tags', { as: 'checkbox_group', required: true, options: tags.map(tag => [tag.id, tag.name]) }) %>
26
+ <%- f.field('resource.tags', { as: 'checkbox_group', required: true, options: tags.map(tag => [tag.id, tag.name]) }) %>
27
27
 
28
28
  <div class="form-actions">
29
29
  <div class="btn-toolbar">
@@ -32,8 +32,8 @@
32
32
  <a href="<%= `/${_context.locale}/articles` %>" class="btn-secondary">Back to list</a>
33
33
  </div>
34
34
 
35
- <% if (article?.id) {%>
36
- <button hx-delete="<%= `/${_context.locale}/articles/${article.id}` %>" hx-confirm="Are you sure?" class="btn-danger has-icon">
35
+ <% if (resource?.id) {%>
36
+ <button hx-delete="<%= `/${_context.locale}/articles/${resource.id}` %>" hx-confirm="Are you sure?" class="btn-danger has-icon">
37
37
  <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
38
38
  <path stroke-linecap="round" stroke-linejoin="round" d="m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0" />
39
39
  </svg>
@@ -78,7 +78,7 @@
78
78
 
79
79
  onVisibilityChange({
80
80
  target: {
81
- value: '<%= article.visibility %>'
81
+ value: '<%= resource.visibility %>'
82
82
  }
83
83
  })
84
84
 
@@ -1,18 +1,18 @@
1
1
  <div class="page-wrapper">
2
2
  <div class="page-title">
3
3
  <div class="flex items-center gap-4">
4
- <h1 class="heading-1"><%= article.title %></h1>
4
+ <h1 class="heading-1"><%= resource.title %></h1>
5
5
  <div class="flex flex-wrap items-center gap-1">
6
6
  <% Object.keys(_context.locales).forEach(key => { %>
7
7
  <% const { name, _code, flag} = _context.locales[key] %>
8
8
  <% if (key === _context.locale) { %>
9
9
  <img title="<%= name %>" src="<%= flag %>" alt="<%= name %>" class="size-6 rounded-full border dark:border-neutral-700" />
10
- <% } else if (article.translations[key]) { %>
11
- <a href="<%= `/${key}/articles/${article.translations[key].id}` %>">
10
+ <% } else if (resource.translations[key]) { %>
11
+ <a href="<%= `/${key}/articles/${resource.translations[key].id}` %>">
12
12
  <img title="<%= name %>" src="<%= flag %>" alt="<%= name %>" class="size-6 rounded-full border dark:border-neutral-700" />
13
13
  </a>
14
14
  <% } else { %>
15
- <a href="<%= `/${_context.locale}/articles/${article.id}/translations/new?target_locale=${key}` %>">
15
+ <a href="<%= `/${_context.locale}/articles/${resource.id}/translations/new?target_locale=${key}` %>">
16
16
  <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(" ") %>" />
17
17
  </a>
18
18
  <% } %>
@@ -21,13 +21,13 @@
21
21
  </div>
22
22
 
23
23
  <div class="actions-toolbar">
24
- <form method="POST" action="<%= `/${_context.locale}/articles/${article.id}/article_revisions` %>" class="inline-block">
24
+ <form method="POST" action="<%= `/${_context.locale}/articles/${resource.id}/article_revisions` %>" class="inline-block">
25
25
  <button type="submit" class="btn-primary">
26
26
  Start revision
27
27
  </button>
28
28
  </form>
29
29
 
30
- <a href="<%= `/${_context.locale}/articles/${article.id}/urls/new` %>" class="btn-text has-icon">
30
+ <a href="<%= `/${_context.locale}/articles/${resource.id}/urls/new` %>" class="btn-text has-icon">
31
31
  <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
32
32
  <path stroke-linecap="round" stroke-linejoin="round" d="M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622 1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244" />
33
33
  </svg>
@@ -35,7 +35,7 @@
35
35
  Change URL
36
36
  </a>
37
37
 
38
- <form action="<%= `/${_context.locale}/articles/${article.id}/clones` %>" method="post" class="inline-block">
38
+ <form action="<%= `/${_context.locale}/articles/${resource.id}/clones` %>" method="post" class="inline-block">
39
39
  <button type="submit" class="btn-text has-icon">
40
40
  <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
41
41
  <path stroke-linecap="round" stroke-linejoin="round" d="M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75" />
@@ -45,7 +45,7 @@
45
45
  </button>
46
46
  </form>
47
47
 
48
- <a href="<%= `/${_context.locale}/articles/${article.id}/deletes/new` %>" class="btn-danger has-icon">
48
+ <a href="<%= `/${_context.locale}/articles/${resource.id}/deletes/new` %>" class="btn-danger has-icon">
49
49
  <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
50
50
  <path stroke-linecap="round" stroke-linejoin="round" d="m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0" />
51
51
  </svg>
@@ -251,7 +251,7 @@
251
251
  <td>
252
252
  <div class="actions-toolbar justify-end">
253
253
  <% if (maxVersion !== change.version) { %>
254
- <form method="POST" action="<%= `/${_context.locale}/articles/${article.id}/article_changes/reverts` %>" class="inline-block">
254
+ <form method="POST" action="<%= `/${_context.locale}/articles/${resource.id}/article_changes/reverts` %>" class="inline-block">
255
255
  <input type="hidden" name="version" value=<%= change.version %>>
256
256
  <button type="submit" class="btn-text has-icon">
257
257
  <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
@@ -1,5 +1,5 @@
1
1
  <% form_for({ translation }, errors, (f) => { %>
2
- <form action="<%= `/${_context.locale}/articles/${article.id}/translations` %>" method="post" class="form">
2
+ <form action="<%= `/${_context.locale}/articles/${resource.id}/translations` %>" method="post" class="form">
3
3
  <input type="hidden" name="target_locale" value="<%= targetLocale %>" />
4
4
 
5
5
  <%- f.field('translation.title', { required: true }) %>
@@ -30,7 +30,7 @@
30
30
  <div class="btn-toolbar">
31
31
  <%- f.submit('Save record', { class: 'btn-primary' }) %>
32
32
 
33
- <a href="<%= `/${_context.locale}/articles/${article.id}` %>" class="btn-secondary">Cancel</a>
33
+ <a href="<%= `/${_context.locale}/articles/${resource.id}` %>" class="btn-secondary">Cancel</a>
34
34
  </div>
35
35
  </div>
36
36
  </form>
@@ -69,7 +69,7 @@
69
69
 
70
70
  onVisibilityChange({
71
71
  target: {
72
- value: '<%= article.visibility %>'
72
+ value: '<%= resource.visibility %>'
73
73
  }
74
74
  })
75
75
 
@@ -1,11 +1,9 @@
1
- <div class="w-full">
2
- <div class="flex items-center justify-between mt-6 mb-4">
3
- <div class="flex items-center gap-2">
4
- <h1 class="heading-1">Create article translation</h1>
5
- </div>
1
+ <div class="page-wrapper">
2
+ <div class="page-title">
3
+ <h1 class="heading-1">Create article translation</h1>
6
4
  </div>
7
- </div>
8
5
 
9
- <div class="grid gap-4 md:grid-cols-3">
10
- <%- include('_form.ejs') %>
6
+ <div class="grid gap-4 md:grid-cols-3">
7
+ <%- include('_form.ejs') %>
8
+ </div>
11
9
  </div>
@@ -1,31 +1,31 @@
1
- <% form_for({ event }, errors, (f) => { %>
2
- <form action="<%= event?.id ? `/${_context.locale}/events/${event.id}` : `/${_context.locale}/events` %>" method="post" class="form">
3
- <%- f.field('event.title', { required: true }) %>
4
- <%- f.field('event.slug', { label: "URL", required: true }) %>
5
- <%- f.field('event.publish_at', { required: true, type: 'datetime-local' }) %>
6
- <%- f.field('event.starts_at', { required: true, type: 'datetime-local' }) %>
7
- <%- f.field('event.ends_at', { required: true, type: 'datetime-local' }) %>
1
+ <% form_for({ resource }, errors, (f) => { %>
2
+ <form action="<%= resource?.id ? `/${_context.locale}/events/${resource.id}` : `/${_context.locale}/events` %>" method="post" class="form">
3
+ <%- f.field('resource.title', { required: true }) %>
4
+ <%- f.field('resource.slug', { label: "URL", required: true }) %>
5
+ <%- f.field('resource.publish_at', { required: true, type: 'datetime-local' }) %>
6
+ <%- f.field('resource.starts_at', { required: true, type: 'datetime-local' }) %>
7
+ <%- f.field('resource.ends_at', { required: true, type: 'datetime-local' }) %>
8
8
 
9
- <%- f.field('event.visibility', { as: 'select', required: true, options: visibilityOptions }) %>
9
+ <%- f.field('resource.visibility', { as: 'select', required: true, options: visibilityOptions }) %>
10
10
 
11
- <%- f.field('event.username', { required: true }) %>
12
- <%- f.field('event.password', { required: true }) %>
11
+ <%- f.field('resource.username', { required: true }) %>
12
+ <%- f.field('resource.password', { required: true }) %>
13
13
 
14
- <%- f.field('event.layout', { as: 'select', required: true, options: [
14
+ <%- f.field('resource.layout', { as: 'select', required: true, options: [
15
15
  ["default", "Default"],
16
16
  ["landing", "Landing page"],
17
17
  ["headless", "Headless"],
18
18
  ] }) %>
19
19
 
20
- <%- f.field('event.meta_title', { required: true }) %>
21
- <%- f.field('event.meta_description', { as: "textarea", required: true }) %>
20
+ <%- f.field('resource.meta_title', { required: true }) %>
21
+ <%- f.field('resource.meta_description', { as: "textarea", required: true }) %>
22
22
 
23
23
  <raketa-image-picker
24
- name="event[meta_image]"
25
- value="<%= JSON.stringify(event.meta_image) %>"
24
+ name="resource[meta_image]"
25
+ value="<%= JSON.stringify(resource.meta_image) %>"
26
26
  ></raketa-image-picker>
27
27
 
28
- <%- f.field('event.tags', { as: 'checkbox_group', required: true, options: tags.map(tag => [tag.id, tag.name]) }) %>
28
+ <%- f.field('resource.tags', { as: 'checkbox_group', required: true, options: tags.map(tag => [tag.id, tag.name]) }) %>
29
29
 
30
30
  <div class="form-actions">
31
31
  <div class="btn-toolbar">
@@ -34,8 +34,8 @@
34
34
  <a href="<%= `/${_context.locale}/events` %>" class="btn-secondary">Back to list</a>
35
35
  </div>
36
36
 
37
- <% if (event?.id) {%>
38
- <button hx-delete="<%= `/${_context.locale}/events/${event.id}` %>" hx-confirm="Are you sure?" class="btn-danger has-icon">
37
+ <% if (resource?.id) {%>
38
+ <button hx-delete="<%= `/${_context.locale}/events/${resource.id}` %>" hx-confirm="Are you sure?" class="btn-danger has-icon">
39
39
  <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
40
40
  <path stroke-linecap="round" stroke-linejoin="round" d="m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0" />
41
41
  </svg>
@@ -80,7 +80,7 @@
80
80
 
81
81
  onVisibilityChange({
82
82
  target: {
83
- value: '<%= event.visibility %>'
83
+ value: '<%= resource.visibility %>'
84
84
  }
85
85
  })
86
86
 
@@ -1,18 +1,18 @@
1
1
  <div class="page-wrapper">
2
2
  <div class="page-title">
3
3
  <div class="flex items-center gap-4">
4
- <h1 class="heading-1"><%= event.title %></h1>
4
+ <h1 class="heading-1"><%= resource.title %></h1>
5
5
  <div class="flex flex-wrap items-center gap-1">
6
6
  <% Object.keys(_context.locales).forEach(key => { %>
7
7
  <% const { name, _code, flag} = _context.locales[key] %>
8
8
  <% if (key === _context.locale) { %>
9
9
  <img title="<%= name %>" src="<%= flag %>" alt="<%= name %>" class="size-6 rounded-full border dark:border-neutral-700" />
10
- <% } else if (event.translations[key]) { %>
11
- <a href="<%= `/${key}/events/${event.translations[key].id}` %>">
10
+ <% } else if (resource.translations[key]) { %>
11
+ <a href="<%= `/${key}/events/${resource.translations[key].id}` %>">
12
12
  <img title="<%= name %>" src="<%= flag %>" alt="<%= name %>" class="size-6 rounded-full border dark:border-neutral-700" />
13
13
  </a>
14
14
  <% } else { %>
15
- <a href="<%= `/${_context.locale}/events/${event.id}/translations/new?target_locale=${key}` %>">
15
+ <a href="<%= `/${_context.locale}/events/${resource.id}/translations/new?target_locale=${key}` %>">
16
16
  <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(" ") %>" />
17
17
  </a>
18
18
  <% } %>
@@ -21,13 +21,13 @@
21
21
  </div>
22
22
 
23
23
  <div class="actions-toolbar">
24
- <form method="POST" action="<%= `/${_context.locale}/events/${event.id}/event_revisions` %>" class="inline-block">
24
+ <form method="POST" action="<%= `/${_context.locale}/events/${resource.id}/event_revisions` %>" class="inline-block">
25
25
  <button type="submit" class="btn-primary">
26
26
  Start revision
27
27
  </button>
28
28
  </form>
29
29
 
30
- <a href="<%= `/${_context.locale}/events/${event.id}/urls/new` %>" class="btn-text has-icon">
30
+ <a href="<%= `/${_context.locale}/events/${resource.id}/urls/new` %>" class="btn-text has-icon">
31
31
  <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
32
32
  <path stroke-linecap="round" stroke-linejoin="round" d="M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622 1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244" />
33
33
  </svg>
@@ -35,7 +35,7 @@
35
35
  Change URL
36
36
  </a>
37
37
 
38
- <form action="<%= `/${_context.locale}/events/${event.id}/clones` %>" method="post" class="inline-block">
38
+ <form action="<%= `/${_context.locale}/events/${resource.id}/clones` %>" method="post" class="inline-block">
39
39
  <button type="submit" class="btn-text has-icon">
40
40
  <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
41
41
  <path stroke-linecap="round" stroke-linejoin="round" d="M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75" />
@@ -45,7 +45,7 @@
45
45
  </button>
46
46
  </form>
47
47
 
48
- <a href="<%= `/${_context.locale}/events/${event.id}/deletes/new` %>" class="btn-danger has-icon">
48
+ <a href="<%= `/${_context.locale}/events/${resource.id}/deletes/new` %>" class="btn-danger has-icon">
49
49
  <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
50
50
  <path stroke-linecap="round" stroke-linejoin="round" d="m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0" />
51
51
  </svg>
@@ -251,7 +251,7 @@
251
251
  <td>
252
252
  <div class="actions-toolbar justify-end">
253
253
  <% if (maxVersion !== change.version) { %>
254
- <form method="POST" action="<%= `/${_context.locale}/events/${event.id}/event_changes/reverts` %>" class="inline-block">
254
+ <form method="POST" action="<%= `/${_context.locale}/events/${resource.id}/event_changes/reverts` %>" class="inline-block">
255
255
  <input type="hidden" name="version" value=<%= change.version %>>
256
256
  <button type="submit" class="btn-text has-icon">
257
257
  <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
@@ -1,5 +1,5 @@
1
1
  <% form_for({ translation }, errors, (f) => { %>
2
- <form action="<%= `/${_context.locale}/events/${event.id}/translations` %>" method="post" class="form">
2
+ <form action="<%= `/${_context.locale}/events/${resource.id}/translations` %>" method="post" class="form">
3
3
  <input type="hidden" name="target_locale" value="<%= targetLocale %>" />
4
4
 
5
5
  <%- f.field('translation.title', { required: true }) %>
@@ -32,7 +32,7 @@
32
32
  <div class="btn-toolbar">
33
33
  <%- f.submit('Save record', { class: 'btn-primary' }) %>
34
34
 
35
- <a href="<%= `/${_context.locale}/events/${event.id}` %>" class="btn-secondary">Cancel</a>
35
+ <a href="<%= `/${_context.locale}/events/${resource.id}` %>" class="btn-secondary">Cancel</a>
36
36
  </div>
37
37
  </div>
38
38
  </form>
@@ -71,7 +71,7 @@
71
71
 
72
72
  onVisibilityChange({
73
73
  target: {
74
- value: '<%= event.visibility %>'
74
+ value: '<%= resource.visibility %>'
75
75
  }
76
76
  })
77
77
 
@@ -1,11 +1,10 @@
1
- <div class="w-full">
2
- <div class="flex items-center justify-between mt-6 mb-4">
3
- <div class="flex items-center gap-2">
4
- <h1 class="heading-1">Create event translation</h1>
5
- </div>
1
+ <div class="page-wrapper">
2
+ <div class="page-title">
3
+ <h1 class="heading-1">Create event translation</h1>
6
4
  </div>
7
- </div>
8
5
 
9
- <div class="grid gap-4 md:grid-cols-3">
10
- <%- include('_form.ejs') %>
6
+ <div class="grid gap-4 md:grid-cols-3">
7
+ <%- include('_form.ejs') %>
8
+ </div>
11
9
  </div>
10
+
@@ -1,27 +1,27 @@
1
- <% form_for({ page }, errors, (f) => { %>
2
- <form action="<%= page?.id ? `/${_context.locale}/pages/${page.id}` : `/${_context.locale}/pages` %>" method="post" class="form">
3
- <%- f.field('page.title', { required: true }) %>
4
- <%- f.field('page.slug', { label: "URL", required: true }) %>
5
- <%- f.field('page.visibility', { as: 'select', required: true, options: visibilityOptions }) %>
1
+ <% form_for({ resource }, errors, (f) => { %>
2
+ <form action="<%= resource?.id ? `/${_context.locale}/pages/${resource.id}` : `/${_context.locale}/pages` %>" method="post" class="form">
3
+ <%- f.field('resource.title', { required: true }) %>
4
+ <%- f.field('resource.slug', { label: "URL", required: true }) %>
5
+ <%- f.field('resource.visibility', { as: 'select', required: true, options: visibilityOptions }) %>
6
6
 
7
- <%- f.field('page.username', { required: true }) %>
8
- <%- f.field('page.password', { required: true }) %>
7
+ <%- f.field('resource.username', { required: true }) %>
8
+ <%- f.field('resource.password', { required: true }) %>
9
9
 
10
- <%- f.field('page.layout', { as: 'select', required: true, options: [
10
+ <%- f.field('resource.layout', { as: 'select', required: true, options: [
11
11
  ["default", "Default"],
12
12
  ["landing", "Landing page"],
13
13
  ["headless", "Headless"],
14
14
  ] }) %>
15
15
 
16
- <%- f.field('page.meta_title', { required: true }) %>
17
- <%- f.field('page.meta_description', { as: "textarea", required: true }) %>
16
+ <%- f.field('resource.meta_title', { required: true }) %>
17
+ <%- f.field('resource.meta_description', { as: "textarea", required: true }) %>
18
18
 
19
19
  <raketa-image-picker
20
- name="page[meta_image]"
21
- value="<%= JSON.stringify(page.meta_image) %>"
20
+ name="resource[meta_image]"
21
+ value="<%= JSON.stringify(resource.meta_image) %>"
22
22
  ></raketa-image-picker>
23
23
 
24
- <%- f.field('page.tags', { as: 'checkbox_group', required: true, options: tags.map(tag => [tag.id, tag.name]) }) %>
24
+ <%- f.field('resource.tags', { as: 'checkbox_group', required: true, options: tags.map(tag => [tag.id, tag.name]) }) %>
25
25
 
26
26
  <div class="form-actions">
27
27
  <div class="btn-toolbar">
@@ -30,8 +30,8 @@
30
30
  <a href="<%= `/${_context.locale}/pages` %>" class="btn-secondary">Back to list</a>
31
31
  </div>
32
32
 
33
- <% if (page?.id) {%>
34
- <button hx-delete="<%= `/${_context.locale}/pages/${page.id}` %>" hx-confirm="Are you sure?" class="btn-danger has-icon">
33
+ <% if (resource?.id) {%>
34
+ <button hx-delete="<%= `/${_context.locale}/pages/${resource.id}` %>" hx-confirm="Are you sure?" class="btn-danger has-icon">
35
35
  <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
36
36
  <path stroke-linecap="round" stroke-linejoin="round" d="m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0" />
37
37
  </svg>
@@ -76,7 +76,7 @@
76
76
 
77
77
  onVisibilityChange({
78
78
  target: {
79
- value: '<%= page.visibility %>'
79
+ value: '<%= resource.visibility %>'
80
80
  }
81
81
  })
82
82
 
@@ -6,4 +6,4 @@
6
6
  <div class="grid gap-4 md:grid-cols-3">
7
7
  <%- include('_form.ejs') %>
8
8
  </div>
9
- </div>
9
+ </div>
@@ -1,18 +1,18 @@
1
1
  <div class="page-wrapper">
2
2
  <div class="page-title">
3
3
  <div class="flex items-center gap-4">
4
- <h1 class="heading-1"><%= page.title %></h1>
4
+ <h1 class="heading-1"><%= resource.title %></h1>
5
5
  <div class="flex flex-wrap items-center gap-1">
6
6
  <% Object.keys(_context.locales).forEach(key => { %>
7
7
  <% const { name, _code, flag} = _context.locales[key] %>
8
8
  <% if (key === _context.locale) { %>
9
9
  <img title="<%= name %>" src="<%= flag %>" alt="<%= name %>" class="size-6 rounded-full border dark:border-neutral-700" />
10
- <% } else if (page.translations[key]) { %>
11
- <a href="<%= `/${key}/pages/${page.translations[key].id}` %>">
10
+ <% } else if (resource.translations[key]) { %>
11
+ <a href="<%= `/${key}/pages/${resource.translations[key].id}` %>">
12
12
  <img title="<%= name %>" src="<%= flag %>" alt="<%= name %>" class="size-6 rounded-full border dark:border-neutral-700" />
13
13
  </a>
14
14
  <% } else { %>
15
- <a href="<%= `/${_context.locale}/pages/${page.id}/translations/new?target_locale=${key}` %>">
15
+ <a href="<%= `/${_context.locale}/pages/${resource.id}/translations/new?target_locale=${key}` %>">
16
16
  <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(" ") %>" />
17
17
  </a>
18
18
  <% } %>
@@ -21,13 +21,13 @@
21
21
  </div>
22
22
 
23
23
  <div class="actions-toolbar">
24
- <form method="POST" action="<%= `/${_context.locale}/pages/${page.id}/page_revisions` %>" class="inline-block">
24
+ <form method="POST" action="<%= `/${_context.locale}/pages/${resource.id}/page_revisions` %>" class="inline-block">
25
25
  <button type="submit" class="btn-primary">
26
26
  Start revision
27
27
  </button>
28
28
  </form>
29
29
 
30
- <a href="<%= `/${_context.locale}/pages/${page.id}/urls/new` %>" class="btn-text has-icon">
30
+ <a href="<%= `/${_context.locale}/pages/${resource.id}/urls/new` %>" class="btn-text has-icon">
31
31
  <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
32
32
  <path stroke-linecap="round" stroke-linejoin="round" d="M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622 1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244" />
33
33
  </svg>
@@ -35,7 +35,7 @@
35
35
  Change URL
36
36
  </a>
37
37
 
38
- <form action="<%= `/${_context.locale}/pages/${page.id}/clones` %>" method="post" class="inline-block">
38
+ <form action="<%= `/${_context.locale}/pages/${resource.id}/clones` %>" method="post" class="inline-block">
39
39
  <button type="submit" class="btn-text has-icon">
40
40
  <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
41
41
  <path stroke-linecap="round" stroke-linejoin="round" d="M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75" />
@@ -45,7 +45,7 @@
45
45
  </button>
46
46
  </form>
47
47
 
48
- <a href="<%= `/${_context.locale}/pages/${page.id}/deletes/new` %>" class="btn-danger has-icon">
48
+ <a href="<%= `/${_context.locale}/pages/${resource.id}/deletes/new` %>" class="btn-danger has-icon">
49
49
  <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
50
50
  <path stroke-linecap="round" stroke-linejoin="round" d="m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0" />
51
51
  </svg>
@@ -251,7 +251,7 @@
251
251
  <td>
252
252
  <div class="actions-toolbar justify-end">
253
253
  <% if (maxVersion !== change.version) { %>
254
- <form method="POST" action="<%= `/${_context.locale}/pages/${page.id}/page_changes/reverts` %>" class="inline-block">
254
+ <form method="POST" action="<%= `/${_context.locale}/pages/${resource.id}/page_changes/reverts` %>" class="inline-block">
255
255
  <input type="hidden" name="version" value=<%= change.version %>>
256
256
  <button type="submit" class="btn-text has-icon">
257
257
  <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">