@raketa-cloud/admin 0.0.23 → 0.0.25

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 (67) hide show
  1. package/package.json +1 -1
  2. package/src/Adapter.js +65 -9
  3. package/src/HonoAdapter.js +3 -1
  4. package/src/routeArticlesModule.js +60 -69
  5. package/src/routeEventsModule.js +75 -69
  6. package/src/routePagesModule.js +59 -69
  7. package/src/views/article_revisions/_nav.ejs +5 -5
  8. package/src/views/article_revisions/codes/edit_form.ejs +4 -4
  9. package/src/views/article_revisions/general/edit_form.ejs +4 -5
  10. package/src/views/article_revisions/locks/create_form.ejs +2 -2
  11. package/src/views/article_revisions/meta/edit_form.ejs +4 -4
  12. package/src/views/article_revisions/publishes/_form.ejs +2 -2
  13. package/src/views/article_revisions/publishes/create_form.ejs +1 -2
  14. package/src/views/article_revisions/tags/edit_form.ejs +4 -30
  15. package/src/views/article_revisions/visuals/edit_form.ejs +4 -4
  16. package/src/views/articles/_form.ejs +4 -6
  17. package/src/views/articles/create_form.ejs +1 -1
  18. package/src/views/articles/deletes/create_form.ejs +3 -3
  19. package/src/views/articles/index.ejs +7 -7
  20. package/src/views/articles/show.ejs +17 -17
  21. package/src/views/articles/translations/_form.ejs +2 -2
  22. package/src/views/articles/translations/create_form.ejs +2 -2
  23. package/src/views/articles/urls/create_form.ejs +2 -2
  24. package/src/views/event_revisions/_nav.ejs +5 -5
  25. package/src/views/event_revisions/codes/edit_form.ejs +4 -4
  26. package/src/views/event_revisions/general/edit_form.ejs +4 -5
  27. package/src/views/event_revisions/locks/create_form.ejs +2 -2
  28. package/src/views/event_revisions/meta/edit_form.ejs +4 -4
  29. package/src/views/event_revisions/publishes/_form.ejs +2 -2
  30. package/src/views/event_revisions/publishes/create_form.ejs +1 -2
  31. package/src/views/event_revisions/tags/edit_form.ejs +4 -30
  32. package/src/views/event_revisions/visuals/edit_form.ejs +4 -4
  33. package/src/views/events/_form.ejs +6 -8
  34. package/src/views/events/create_form.ejs +1 -1
  35. package/src/views/events/deletes/create_form.ejs +3 -3
  36. package/src/views/events/index.ejs +7 -7
  37. package/src/views/events/show.ejs +17 -17
  38. package/src/views/events/translations/_form.ejs +2 -3
  39. package/src/views/events/translations/create_form.ejs +2 -3
  40. package/src/views/events/urls/create_form.ejs +2 -2
  41. package/src/views/page_revisions/_nav.ejs +5 -5
  42. package/src/views/page_revisions/codes/edit_form.ejs +5 -5
  43. package/src/views/page_revisions/general/edit_form.ejs +5 -5
  44. package/src/views/page_revisions/locks/create_form.ejs +2 -2
  45. package/src/views/page_revisions/meta/edit_form.ejs +5 -5
  46. package/src/views/page_revisions/publishes/_form.ejs +2 -2
  47. package/src/views/page_revisions/publishes/create_form.ejs +1 -1
  48. package/src/views/page_revisions/tags/edit_form.ejs +4 -30
  49. package/src/views/page_revisions/visuals/edit_form.ejs +4 -4
  50. package/src/views/pages/_form.ejs +4 -8
  51. package/src/views/pages/create_form.ejs +1 -1
  52. package/src/views/pages/deletes/create_form.ejs +3 -3
  53. package/src/views/pages/index.ejs +7 -7
  54. package/src/views/pages/show.ejs +17 -17
  55. package/src/views/pages/translations/_form.ejs +2 -2
  56. package/src/views/pages/translations/create_form.ejs +2 -2
  57. package/src/views/pages/urls/create_form.ejs +2 -2
  58. package/src/views/redirects/create_form.ejs +1 -1
  59. package/src/views/redirects/edit_form.ejs +2 -2
  60. package/src/views/settings/general/edit_form.ejs +2 -2
  61. package/src/views/settings/layout/edit_form.ejs +1 -1
  62. package/src/views/settings/meta/edit_form.ejs +2 -2
  63. package/src/views/tags/create_form.ejs +2 -2
  64. package/src/views/tags/edit_form.ejs +2 -2
  65. package/src/views/articles/edit_form.ejs +0 -3
  66. package/src/views/events/edit_form.ejs +0 -3
  67. package/src/views/pages/edit_form.ejs +0 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raketa-cloud/admin",
3
- "version": "0.0.23",
3
+ "version": "0.0.25",
4
4
  "main": "src/index.js",
5
5
  "scripts": {
6
6
  "dev": "npx tailwindcss -i ./src/styles/application.css -o ../../apps/admin/static/application.css --watch",
package/src/Adapter.js CHANGED
@@ -1,6 +1,6 @@
1
- import currentPath from "./currentPath.cjs";
2
- import { existsSync } from "node:fs";
1
+ import { existsSync, readFileSync } from "node:fs";
3
2
  import ejs from "ejs";
3
+ import currentPath from "./currentPath.cjs";
4
4
  import FormBuilder from "./helpers/FormBuilder";
5
5
  import HTMLBuilder from "./helpers/HTMLBuilder";
6
6
  import form_for from "./helpers/form_for";
@@ -88,6 +88,13 @@ function putIn(result, key, value) {
88
88
  });
89
89
  }
90
90
 
91
+ function getPartialPath(partialPath) {
92
+ const packagePath = `${currentPath}/views/${partialPath}`;
93
+ const appPath = `${process.cwd()}/src/views/${partialPath}`;
94
+
95
+ return existsSync(appPath) ? appPath : packagePath;
96
+ }
97
+
91
98
  export default class Adapter {
92
99
  constructor(router) {
93
100
  this.router = router;
@@ -109,9 +116,12 @@ export default class Adapter {
109
116
  throw new Error("Implement in an adapter");
110
117
  }
111
118
 
112
- getActionPath(resource, action) {
113
- const packagePath = `${currentPath}/views/${resource}/${action}.ejs`;
114
- const appPath = `${process.cwd()}/src/views/${resource}/${action}.ejs`;
119
+ getActionPath(views, packageViewsFallback, action) {
120
+ const packagePath = packageViewsFallback
121
+ ? `${currentPath}/views/${packageViewsFallback}/${action}.ejs`
122
+ : `${currentPath}/views/${views}/${action}.ejs`;
123
+
124
+ const appPath = `${process.cwd()}/src/views/${views}/${action}.ejs`;
115
125
 
116
126
  return existsSync(appPath) ? appPath : packagePath;
117
127
  }
@@ -138,13 +148,59 @@ export default class Adapter {
138
148
  });
139
149
  }
140
150
 
141
- async renderAction({ views, action, assigns }, viewHelpersConfig = {}) {
142
- const fullTemplatePath = this.getActionPath(views, action);
151
+ renderPartial(assigns) {
152
+ return function render(relativePath, localAssigns) {
153
+ const partialPath = getPartialPath(relativePath);
154
+ try {
155
+ // Synchronously read the partial file as ejs does not support async/await
156
+ const partialTemplate = readFileSync(partialPath, "utf8");
157
+ const rendered = ejs.render(
158
+ partialTemplate,
159
+ {
160
+ ...assigns,
161
+ ...localAssigns,
162
+ },
163
+ { filename: partialPath }
164
+ );
165
+
166
+ return rendered;
167
+ } catch (e) {
168
+ const error = `Error rendering:\n ${partialPath}`;
169
+ Logger.error(`${error}\n\n${e.stack}`);
170
+
171
+ return renderError(error, e.stack);
172
+ }
173
+ };
174
+ }
175
+
176
+ async renderAction(
177
+ { views, packageViewsFallback, action, assigns },
178
+ viewHelpersConfig = {}
179
+ ) {
180
+ // Pick the parent here in the views so we can reuse stuff...
181
+ const fullTemplatePath = this.getActionPath(
182
+ views,
183
+ packageViewsFallback,
184
+ action
185
+ );
143
186
  const renderAssigns = { ...this.getHelpers(viewHelpersConfig), ...assigns };
187
+ const renderPartialHelper = this.renderPartial(renderAssigns);
144
188
 
145
189
  try {
146
- const rendered = await ejs.renderFile(fullTemplatePath, renderAssigns);
147
- const fullPage = await this.renderLayout(renderAssigns, rendered);
190
+ // Synchronously read the full template file
191
+ const template = readFileSync(fullTemplatePath, "utf8");
192
+
193
+ // Render the full template with synchronous partial rendering
194
+ const rendered = ejs.render(
195
+ template,
196
+ {
197
+ ...renderAssigns,
198
+ render_partial: renderPartialHelper,
199
+ },
200
+ { filename: fullTemplatePath }
201
+ );
202
+
203
+ const fullPage = this.renderLayout(renderAssigns, rendered);
148
204
 
149
205
  return fullPage;
150
206
  } catch (e) {
@@ -111,6 +111,7 @@ export default class HonoAdapter extends Adapter {
111
111
  layout: {
112
112
  ...this.globalConfig.layout,
113
113
  },
114
+ handlerOpts: handlerOpts,
114
115
  };
115
116
 
116
117
  console.info(
@@ -187,7 +188,8 @@ export default class HonoAdapter extends Adapter {
187
188
 
188
189
  const rendered = this.renderAction(
189
190
  {
190
- views,
191
+ views: views,
192
+ packageViewsFallback: handlerOpts.packageViewsFallback,
191
193
  action,
192
194
  assigns: fullAssigns,
193
195
  },
@@ -31,105 +31,96 @@ function routeArticlesModule(
31
31
  articleTypePlural,
32
32
  };
33
33
 
34
- routeCollection(adapter, baseResource, ArticlesHandler, handlerOpts);
34
+ routeCollection(adapter, baseResource, ArticlesHandler, {
35
+ ...handlerOpts,
36
+ packageViewsFallback: "articles",
37
+ });
38
+
35
39
  routeNestedCollection(
36
40
  adapter,
37
41
  baseResource,
38
42
  "translations",
39
43
  TranslationsHandler,
40
- handlerOpts
44
+ { ...handlerOpts, packageViewsFallback: "articles/translations" }
41
45
  );
46
+
42
47
  routeNestedCollection(
43
48
  adapter,
44
49
  baseResource,
45
50
  revisionsBaseResource,
46
51
  ArticleRevisionsHandler,
47
- handlerOpts
48
- );
49
- routeNestedMember(
50
- adapter,
51
- revisionsBaseResource,
52
- "general",
53
- GeneralHandler,
54
- handlerOpts
55
- );
56
- routeNestedMember(
57
- adapter,
58
- revisionsBaseResource,
59
- "visuals",
60
- VisualHandler,
61
- handlerOpts
62
- );
63
- routeNestedMember(
64
- adapter,
65
- revisionsBaseResource,
66
- "codes",
67
- CodeHandler,
68
- handlerOpts
69
- );
70
- routeNestedMember(
71
- adapter,
72
- revisionsBaseResource,
73
- "meta",
74
- MetaHandler,
75
- handlerOpts
76
- );
77
- routeNestedMember(
78
- adapter,
79
- revisionsBaseResource,
80
- "tags",
81
- TagHandler,
82
- handlerOpts
83
- );
84
- routeNestedCollection(
85
- adapter,
86
- revisionsBaseResource,
87
- "locks",
88
- LocksHandler,
89
- handlerOpts
52
+ { ...handlerOpts, packageViewsFallback: "articles/article_revisions" }
90
53
  );
54
+
55
+ routeNestedMember(adapter, revisionsBaseResource, "general", GeneralHandler, {
56
+ ...handlerOpts,
57
+ packageViewsFallback: "article_revisions/general",
58
+ });
59
+
60
+ routeNestedMember(adapter, revisionsBaseResource, "visuals", VisualHandler, {
61
+ ...handlerOpts,
62
+ packageViewsFallback: "article_revisions/visuals",
63
+ });
64
+
65
+ routeNestedMember(adapter, revisionsBaseResource, "codes", CodeHandler, {
66
+ ...handlerOpts,
67
+ packageViewsFallback: "article_revisions/codes",
68
+ });
69
+
70
+ routeNestedMember(adapter, revisionsBaseResource, "meta", MetaHandler, {
71
+ ...handlerOpts,
72
+ packageViewsFallback: "article_revisions/meta",
73
+ });
74
+
75
+ routeNestedMember(adapter, revisionsBaseResource, "tags", TagHandler, {
76
+ ...handlerOpts,
77
+ packageViewsFallback: "article_revisions/tags",
78
+ });
79
+
80
+ routeNestedCollection(adapter, revisionsBaseResource, "locks", LocksHandler, {
81
+ ...handlerOpts,
82
+ packageViewsFallback: "article_revisions/locks",
83
+ });
84
+
91
85
  routeNestedCollection(
92
86
  adapter,
93
87
  revisionsBaseResource,
94
88
  "unlocks",
95
89
  UnlocksHandler,
96
- handlerOpts
97
- );
98
- routeNestedCollection(
99
- adapter,
100
- baseResource,
101
- "clones",
102
- ClonesHandler,
103
- handlerOpts
104
- );
105
- routeNestedCollection(
106
- adapter,
107
- baseResource,
108
- "urls",
109
- URLsHandler,
110
- handlerOpts
111
- );
112
- routeNestedCollection(
113
- adapter,
114
- baseResource,
115
- "deletes",
116
- DeletesHandler,
117
- handlerOpts
90
+ { ...handlerOpts, packageViewsFallback: "article_revisions/unlocks" }
118
91
  );
92
+
93
+ routeNestedCollection(adapter, baseResource, "clones", ClonesHandler, {
94
+ ...handlerOpts,
95
+ packageViewsFallback: "articles/clones",
96
+ });
97
+
98
+ routeNestedCollection(adapter, baseResource, "urls", URLsHandler, {
99
+ ...handlerOpts,
100
+ packageViewsFallback: "articles/urls",
101
+ });
102
+
103
+ routeNestedCollection(adapter, baseResource, "deletes", DeletesHandler, {
104
+ ...handlerOpts,
105
+ packageViewsFallback: "articles/deletes",
106
+ });
107
+
119
108
  routeNestedCollection(
120
109
  adapter,
121
110
  baseResource,
122
111
  `${articleType}_changes/reverts`,
123
112
  RevertsHandler,
124
- handlerOpts
113
+ { ...handlerOpts, packageViewsFallback: "article_changes/reverts" }
125
114
  );
115
+
126
116
  routeNestedCollection(
127
117
  adapter,
128
118
  revisionsBaseResource,
129
119
  "publishes",
130
120
  PublishesHandler,
131
- handlerOpts
121
+ { ...handlerOpts, packageViewsFallback: "article_revisions/publishes" }
132
122
  );
123
+
133
124
  routeNestedMember(
134
125
  adapter,
135
126
  `api/${revisionsBaseResource}`,
@@ -31,105 +31,111 @@ function routeEventsModule(
31
31
  eventTypePlural,
32
32
  };
33
33
 
34
- routeCollection(adapter, baseResource, EventsHandler, handlerOpts);
34
+ routeCollection(adapter, baseResource, EventsHandler, {
35
+ ...handlerOpts,
36
+ packageViewsFallback: "events",
37
+ });
38
+
35
39
  routeNestedCollection(
36
40
  adapter,
37
41
  baseResource,
38
42
  "translations",
39
43
  TranslationsHandler,
40
- handlerOpts
44
+ {
45
+ ...handlerOpts,
46
+ packageViewsFallback: "events/translations",
47
+ }
41
48
  );
49
+
42
50
  routeNestedCollection(
43
51
  adapter,
44
52
  baseResource,
45
53
  revisionsBaseResource,
46
54
  EventRevisionsHandler,
47
- handlerOpts
48
- );
49
- routeNestedMember(
50
- adapter,
51
- revisionsBaseResource,
52
- "general",
53
- GeneralHandler,
54
- handlerOpts
55
- );
56
- routeNestedMember(
57
- adapter,
58
- revisionsBaseResource,
59
- "visuals",
60
- VisualHandler,
61
- handlerOpts
62
- );
63
- routeNestedMember(
64
- adapter,
65
- revisionsBaseResource,
66
- "codes",
67
- CodeHandler,
68
- handlerOpts
69
- );
70
- routeNestedMember(
71
- adapter,
72
- revisionsBaseResource,
73
- "meta",
74
- MetaHandler,
75
- handlerOpts
76
- );
77
- routeNestedMember(
78
- adapter,
79
- revisionsBaseResource,
80
- "tags",
81
- TagHandler,
82
- handlerOpts
83
- );
84
- routeNestedCollection(
85
- adapter,
86
- revisionsBaseResource,
87
- "locks",
88
- LocksHandler,
89
- handlerOpts
55
+ {
56
+ ...handlerOpts,
57
+ packageViewsFallback: "events/event_revisions",
58
+ }
90
59
  );
60
+
61
+ routeNestedMember(adapter, revisionsBaseResource, "general", GeneralHandler, {
62
+ ...handlerOpts,
63
+ packageViewsFallback: "event_revisions/general",
64
+ });
65
+
66
+ routeNestedMember(adapter, revisionsBaseResource, "visuals", VisualHandler, {
67
+ ...handlerOpts,
68
+ packageViewsFallback: "event_revisions/visuals",
69
+ });
70
+
71
+ routeNestedMember(adapter, revisionsBaseResource, "codes", CodeHandler, {
72
+ ...handlerOpts,
73
+ packageViewsFallback: "event_revisions/codes",
74
+ });
75
+
76
+ routeNestedMember(adapter, revisionsBaseResource, "meta", MetaHandler, {
77
+ ...handlerOpts,
78
+ packageViewsFallback: "event_revisions/meta",
79
+ });
80
+
81
+ routeNestedMember(adapter, revisionsBaseResource, "tags", TagHandler, {
82
+ ...handlerOpts,
83
+ packageViewsFallback: "event_revisions/tags",
84
+ });
85
+
86
+ routeNestedCollection(adapter, revisionsBaseResource, "locks", LocksHandler, {
87
+ ...handlerOpts,
88
+ packageViewsFallback: "event_revisions/locs",
89
+ });
90
+
91
91
  routeNestedCollection(
92
92
  adapter,
93
93
  revisionsBaseResource,
94
94
  "unlocks",
95
95
  UnlocksHandler,
96
- handlerOpts
97
- );
98
- routeNestedCollection(
99
- adapter,
100
- baseResource,
101
- "clones",
102
- ClonesHandler,
103
- handlerOpts
104
- );
105
- routeNestedCollection(
106
- adapter,
107
- baseResource,
108
- "urls",
109
- URLsHandler,
110
- handlerOpts
111
- );
112
- routeNestedCollection(
113
- adapter,
114
- baseResource,
115
- "deletes",
116
- DeletesHandler,
117
- handlerOpts
96
+ {
97
+ ...handlerOpts,
98
+ packageViewsFallback: "event_revisions/unlocks",
99
+ }
118
100
  );
101
+
102
+ routeNestedCollection(adapter, baseResource, "clones", ClonesHandler, {
103
+ ...handlerOpts,
104
+ packageViewsFallback: "events/clones",
105
+ });
106
+
107
+ routeNestedCollection(adapter, baseResource, "urls", URLsHandler, {
108
+ ...handlerOpts,
109
+ packageViewsFallback: "events/urls",
110
+ });
111
+
112
+ routeNestedCollection(adapter, baseResource, "deletes", DeletesHandler, {
113
+ ...handlerOpts,
114
+ packageViewsFallback: "events/deletes",
115
+ });
116
+
119
117
  routeNestedCollection(
120
118
  adapter,
121
119
  baseResource,
122
120
  `${eventType}_changes/reverts`,
123
121
  RevertsHandler,
124
- handlerOpts
122
+ {
123
+ ...handlerOpts,
124
+ packageViewsFallback: "event_changes/reverts",
125
+ }
125
126
  );
127
+
126
128
  routeNestedCollection(
127
129
  adapter,
128
130
  revisionsBaseResource,
129
131
  "publishes",
130
132
  PublishesHandler,
131
- handlerOpts
133
+ {
134
+ ...handlerOpts,
135
+ packageViewsFallback: "event_revisions/publishes",
136
+ }
132
137
  );
138
+
133
139
  routeNestedMember(
134
140
  adapter,
135
141
  `api/${revisionsBaseResource}`,
@@ -31,13 +31,17 @@ function routePagesModule(
31
31
  pageTypePlural,
32
32
  };
33
33
 
34
- routeCollection(adapter, pageTypePlural, PagesHandler, handlerOpts);
34
+ routeCollection(adapter, pageTypePlural, PagesHandler, {
35
+ ...handlerOpts,
36
+ packageViewsFallback: "pages",
37
+ });
38
+
35
39
  routeNestedCollection(
36
40
  adapter,
37
41
  baseResource,
38
42
  "translations",
39
43
  TranslationsHandler,
40
- handlerOpts
44
+ { ...handlerOpts, packageViewsFallback: "pages/translations" }
41
45
  );
42
46
 
43
47
  routeNestedCollection(
@@ -45,94 +49,77 @@ function routePagesModule(
45
49
  baseResource,
46
50
  revisionsBaseResource,
47
51
  PageRevisionsHandler,
48
- handlerOpts
52
+ {
53
+ ...handlerOpts,
54
+ packageViewsFallback: "pages/page_revisions",
55
+ }
49
56
  );
50
57
 
51
- routeNestedMember(
52
- adapter,
53
- revisionsBaseResource,
54
- "general",
55
- GeneralHandler,
56
- handlerOpts
57
- );
58
+ routeNestedMember(adapter, revisionsBaseResource, "general", GeneralHandler, {
59
+ ...handlerOpts,
60
+ packageViewsFallback: "page_revisions/general",
61
+ });
58
62
 
59
- routeNestedMember(
60
- adapter,
61
- revisionsBaseResource,
62
- "visuals",
63
- VisualHandler,
64
- handlerOpts
65
- );
63
+ routeNestedMember(adapter, revisionsBaseResource, "visuals", VisualHandler, {
64
+ ...handlerOpts,
65
+ packageViewsFallback: "page_revisions/visual",
66
+ });
66
67
 
67
- routeNestedMember(
68
- adapter,
69
- revisionsBaseResource,
70
- "codes",
71
- CodeHandler,
72
- handlerOpts
73
- );
68
+ routeNestedMember(adapter, revisionsBaseResource, "codes", CodeHandler, {
69
+ ...handlerOpts,
70
+ packageViewsFallback: "page_revisions/codes",
71
+ });
74
72
 
75
- routeNestedMember(
76
- adapter,
77
- revisionsBaseResource,
78
- "meta",
79
- MetaHandler,
80
- handlerOpts
81
- );
73
+ routeNestedMember(adapter, revisionsBaseResource, "meta", MetaHandler, {
74
+ ...handlerOpts,
75
+ packageViewsFallback: "page_revisions/meta",
76
+ });
82
77
 
83
- routeNestedMember(
84
- adapter,
85
- revisionsBaseResource,
86
- "tags",
87
- TagHandler,
88
- handlerOpts
89
- );
78
+ routeNestedMember(adapter, revisionsBaseResource, "tags", TagHandler, {
79
+ ...handlerOpts,
80
+ packageViewsFallback: "page_revisions/tags",
81
+ });
90
82
 
91
- routeNestedCollection(
92
- adapter,
93
- revisionsBaseResource,
94
- "locks",
95
- LocksHandler,
96
- handlerOpts
97
- );
83
+ routeNestedCollection(adapter, revisionsBaseResource, "locks", LocksHandler, {
84
+ ...handlerOpts,
85
+ packageViewsFallback: "page_revisions/locks",
86
+ });
98
87
 
99
88
  routeNestedCollection(
100
89
  adapter,
101
90
  revisionsBaseResource,
102
91
  "unlocks",
103
- UnlocksHandler
92
+ UnlocksHandler,
93
+ {
94
+ ...handlerOpts,
95
+ packageViewsFallback: "page_revisions/unlocks",
96
+ }
104
97
  );
105
98
 
106
- routeNestedCollection(
107
- adapter,
108
- baseResource,
109
- "clones",
110
- ClonesHandler,
111
- handlerOpts
112
- );
99
+ routeNestedCollection(adapter, baseResource, "clones", ClonesHandler, {
100
+ ...handlerOpts,
101
+ packageViewsFallback: "pages/clones",
102
+ });
113
103
 
114
- routeNestedCollection(
115
- adapter,
116
- baseResource,
117
- "urls",
118
- URLsHandler,
119
- handlerOpts
120
- );
104
+ routeNestedCollection(adapter, baseResource, "urls", URLsHandler, {
105
+ ...handlerOpts,
106
+ packageViewsFallback: "pages/urls",
107
+ });
121
108
 
122
- routeNestedCollection(
123
- adapter,
124
- baseResource,
125
- "deletes",
126
- DeletesHandler,
127
- handlerOpts
128
- );
109
+ routeNestedCollection(adapter, baseResource, "deletes", DeletesHandler, {
110
+ ...handlerOpts,
111
+ packageViewsFallback: "pages/deletes",
112
+ });
129
113
 
130
114
  routeNestedCollection(
131
115
  adapter,
132
116
  baseResource,
133
117
  `${pageType}_changes/reverts`,
134
118
  RevertsHandler,
135
- handlerOpts
119
+ {
120
+ ...handlerOpts,
121
+ packageViewsFallback: "page_changes/reverts",
122
+ }
136
123
  );
137
124
 
138
125
  routeNestedCollection(
@@ -140,7 +127,10 @@ function routePagesModule(
140
127
  revisionsBaseResource,
141
128
  "publishes",
142
129
  PublishesHandler,
143
- handlerOpts
130
+ {
131
+ ...handlerOpts,
132
+ packageViewsFallback: "page_revisions/publishes",
133
+ }
144
134
  );
145
135
 
146
136
  routeNestedMember(
@@ -7,31 +7,31 @@
7
7
  <div class="flex items-center justify-between mb-4">
8
8
  <div class="flex items-center border-b-2">
9
9
  <div class=" <%= active === 'general' ? activeClass : inactiveClass %>">
10
- <a href="<%= `/${_context.locale}/article_revisions/${settings.id}/general/edit` %>" class="text-raketa-primary font-semibold">
10
+ <a href="<%= `/${_context.locale}/${_context.handlerOpts.articleType}_revisions/${settings.id}/general/edit` %>" class="text-raketa-primary font-semibold">
11
11
  General
12
12
  </a>
13
13
  </div>
14
14
 
15
15
  <div class="<%= active === 'visuals' ? activeClass : inactiveClass %>">
16
- <a href="<%= `/${_context.locale}/article_revisions/${settings.id}/visuals/edit` %>" class="text-raketa-primary font-semibold">
16
+ <a href="<%= `/${_context.locale}/${_context.handlerOpts.articleType}_revisions/${settings.id}/visuals/edit` %>" class="text-raketa-primary font-semibold">
17
17
  Visuals
18
18
  </a>
19
19
  </div>
20
20
 
21
21
  <div class="<%= active === 'codes' ? activeClass : inactiveClass %>">
22
- <a href="<%= `/${_context.locale}/article_revisions/${settings.id}/codes/edit` %>" class="text-raketa-primary font-semibold">
22
+ <a href="<%= `/${_context.locale}/${_context.handlerOpts.articleType}_revisions/${settings.id}/codes/edit` %>" class="text-raketa-primary font-semibold">
23
23
  Code customizations
24
24
  </a>
25
25
  </div>
26
26
 
27
27
  <div class="<%= active === 'meta' ? activeClass : inactiveClass %>">
28
- <a href="<%= `/${_context.locale}/article_revisions/${settings.id}/meta/edit` %>" class="text-raketa-primary font-semibold">
28
+ <a href="<%= `/${_context.locale}/${_context.handlerOpts.articleType}_revisions/${settings.id}/meta/edit` %>" class="text-raketa-primary font-semibold">
29
29
  Open graph & meta tags
30
30
  </a>
31
31
  </div>
32
32
 
33
33
  <div class="<%= active === 'tags' ? activeClass : inactiveClass %>">
34
- <a href="<%= `/${_context.locale}/article_revisions/${settings.id}/tags/edit` %>" class="text-raketa-primary font-semibold">
34
+ <a href="<%= `/${_context.locale}/${_context.handlerOpts.articleType}_revisions/${settings.id}/tags/edit` %>" class="text-raketa-primary font-semibold">
35
35
  Content tags
36
36
  </a>
37
37
  </div>