@raketa-cloud/admin 0.0.24 → 0.0.26

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 (168) hide show
  1. package/package.json +1 -1
  2. package/src/Adapter.js +56 -16
  3. package/src/HonoAdapter.js +22 -11
  4. package/src/handlers/article_revisions/ArticleRevisionsHandler.js +4 -4
  5. package/src/handlers/article_revisions/CodeHandler.js +2 -2
  6. package/src/handlers/article_revisions/GeneralHandler.js +2 -2
  7. package/src/handlers/article_revisions/LocksHandler.js +2 -2
  8. package/src/handlers/article_revisions/MetaHandler.js +2 -2
  9. package/src/handlers/article_revisions/PublishesHandler.js +2 -2
  10. package/src/handlers/article_revisions/RevertsHandler.js +2 -2
  11. package/src/handlers/article_revisions/TagHandler.js +2 -2
  12. package/src/handlers/article_revisions/UnlocksHandler.js +2 -2
  13. package/src/handlers/article_revisions/VisualHandler.js +2 -2
  14. package/src/handlers/articles/ArticlesHandler.js +8 -8
  15. package/src/handlers/articles/ClonesHandler.js +3 -3
  16. package/src/handlers/articles/DeletesHandler.js +5 -5
  17. package/src/handlers/articles/TranslationsHandler.js +2 -2
  18. package/src/handlers/articles/URLsHandler.js +10 -6
  19. package/src/handlers/event_revisions/CodeHandler.js +2 -2
  20. package/src/handlers/event_revisions/EventRevisionsHandler.js +4 -4
  21. package/src/handlers/event_revisions/GeneralHandler.js +2 -2
  22. package/src/handlers/event_revisions/LocksHandler.js +2 -2
  23. package/src/handlers/event_revisions/MetaHandler.js +2 -2
  24. package/src/handlers/event_revisions/PublishesHandler.js +2 -2
  25. package/src/handlers/event_revisions/RevertsHandler.js +2 -2
  26. package/src/handlers/event_revisions/TagHandler.js +2 -2
  27. package/src/handlers/event_revisions/UnlocksHandler.js +2 -2
  28. package/src/handlers/event_revisions/VisualHandler.js +2 -2
  29. package/src/handlers/events/ClonesHandler.js +3 -3
  30. package/src/handlers/events/DeletesHandler.js +5 -5
  31. package/src/handlers/events/EventsHandler.js +8 -8
  32. package/src/handlers/events/TranslationsHandler.js +2 -2
  33. package/src/handlers/events/URLsHandler.js +7 -5
  34. package/src/handlers/page_revisions/CodeHandler.js +2 -2
  35. package/src/handlers/page_revisions/GeneralHandler.js +2 -2
  36. package/src/handlers/page_revisions/LocksHandler.js +2 -2
  37. package/src/handlers/page_revisions/MetaHandler.js +2 -2
  38. package/src/handlers/page_revisions/PageRevisionsHandler.js +4 -4
  39. package/src/handlers/page_revisions/PublishesHandler.js +2 -2
  40. package/src/handlers/page_revisions/RevertsHandler.js +2 -2
  41. package/src/handlers/page_revisions/TagHandler.js +2 -2
  42. package/src/handlers/page_revisions/UnlocksHandler.js +2 -2
  43. package/src/handlers/page_revisions/VisualHandler.js +2 -2
  44. package/src/handlers/pages/ClonesHandler.js +3 -3
  45. package/src/handlers/pages/DeletesHandler.js +5 -5
  46. package/src/handlers/pages/PagesHandler.js +8 -8
  47. package/src/handlers/pages/TranslationsHandler.js +2 -2
  48. package/src/handlers/pages/URLsHandler.js +10 -6
  49. package/src/routeArticlesModule.js +62 -71
  50. package/src/routeCollection.js +2 -2
  51. package/src/routeEventsModule.js +77 -71
  52. package/src/routeMember.js +2 -2
  53. package/src/routeNestedCollection.js +2 -2
  54. package/src/routeNestedMember.js +2 -2
  55. package/src/routePagesModule.js +61 -71
  56. package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/create.test.js +7 -12
  57. package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/destroy.test.js +6 -8
  58. package/src/tests/handlers/article_revisions/CodesHandler.test/update.test.js +7 -12
  59. package/src/tests/handlers/article_revisions/GeneralHandler.test/update.test.js +7 -12
  60. package/src/tests/handlers/article_revisions/MetaHandler.test/update.test.js +7 -12
  61. package/src/tests/handlers/article_revisions/PublishesHandler.test/create.test.js +6 -8
  62. package/src/tests/handlers/article_revisions/RevertsHandler.test/create.test.js +6 -8
  63. package/src/tests/handlers/article_revisions/TagHandler.test/update.test.js +7 -12
  64. package/src/tests/handlers/article_revisions/VisualHandler.test.test/update.test.js +7 -12
  65. package/src/tests/handlers/articles/ArticlesHandler.test/create.test.js +6 -8
  66. package/src/tests/handlers/articles/ArticlesHandler.test/index.test.js +5 -4
  67. package/src/tests/handlers/articles/ArticlesHandler.test/show.test.js +6 -8
  68. package/src/tests/handlers/articles/ClonesHandler.test/create.test.js +6 -8
  69. package/src/tests/handlers/articles/DeletesHandler.test/create.test.js +7 -12
  70. package/src/tests/handlers/articles/DeletesHandler.test/create_form.test.js +6 -8
  71. package/src/tests/handlers/articles/URLsHandler.test/create.test.js +8 -16
  72. package/src/tests/handlers/articles/URLsHandler.test/create_form.test.js +6 -8
  73. package/src/tests/handlers/event_revisions/CodesHandler.test/update.test.js +7 -12
  74. package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/create.test.js +7 -12
  75. package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/destroy.test.js +6 -8
  76. package/src/tests/handlers/event_revisions/GeneralHandler.test/update.test.js +7 -12
  77. package/src/tests/handlers/event_revisions/MetaHandler.test/update.test.js +7 -12
  78. package/src/tests/handlers/event_revisions/PublishesHandler.test/create.test.js +6 -8
  79. package/src/tests/handlers/event_revisions/RevertsHandler.test/create.test.js +7 -12
  80. package/src/tests/handlers/event_revisions/TagHandler.test/update.test.js +7 -12
  81. package/src/tests/handlers/event_revisions/VisualHandler.test.test/update.test.js +7 -12
  82. package/src/tests/handlers/events/ClonesHandler.test/create.test.js +6 -8
  83. package/src/tests/handlers/events/DeletesHandler.test/create.test.js +7 -12
  84. package/src/tests/handlers/events/DeletesHandler.test/create_form.test.js +6 -8
  85. package/src/tests/handlers/events/EventsHandler.test/create.test.js +6 -8
  86. package/src/tests/handlers/events/EventsHandler.test/create_form.test.js +5 -4
  87. package/src/tests/handlers/events/EventsHandler.test/index.test.js +5 -4
  88. package/src/tests/handlers/events/EventsHandler.test/show.test.js +6 -8
  89. package/src/tests/handlers/events/URLsHandler.test/create.test.js +8 -16
  90. package/src/tests/handlers/events/URLsHandler.test/create_form.test.js +6 -8
  91. package/src/tests/handlers/page_revisions/CodesHandler.test/update.test.js +7 -12
  92. package/src/tests/handlers/page_revisions/GeneralHandler.test/update.test.js +7 -12
  93. package/src/tests/handlers/page_revisions/MetaHandler.test/update.test.js +7 -12
  94. package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/create.test.js +7 -12
  95. package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/destroy.test.js +6 -8
  96. package/src/tests/handlers/page_revisions/PublishesHandler.test/create.test.js +6 -8
  97. package/src/tests/handlers/page_revisions/RevertsHandler.test/create.test.js +7 -12
  98. package/src/tests/handlers/page_revisions/TagHandler.test/update.test.js +6 -8
  99. package/src/tests/handlers/page_revisions/VisualHandler.test.test/update.test.js +7 -12
  100. package/src/tests/handlers/pages/ConesHandler.test/create.test.js +6 -8
  101. package/src/tests/handlers/pages/DeletesHandler.test/create.test.js +7 -12
  102. package/src/tests/handlers/pages/DeletesHandler.test/create_form.test.js +6 -8
  103. package/src/tests/handlers/pages/PagesHandler.test/create.test.js +6 -8
  104. package/src/tests/handlers/pages/PagesHandler.test/index.test.js +5 -4
  105. package/src/tests/handlers/pages/PagesHandler.test/show.test.js +6 -8
  106. package/src/tests/handlers/pages/URLsHandler.test/create.test.js +8 -16
  107. package/src/tests/handlers/pages/URLsHandler.test/create_form.test.js +5 -4
  108. package/src/views/article_revisions/_nav.ejs +5 -5
  109. package/src/views/article_revisions/codes/edit_form.ejs +3 -3
  110. package/src/views/article_revisions/general/edit_form.ejs +3 -4
  111. package/src/views/article_revisions/locks/create_form.ejs +2 -2
  112. package/src/views/article_revisions/meta/edit_form.ejs +3 -3
  113. package/src/views/article_revisions/publishes/_form.ejs +2 -2
  114. package/src/views/article_revisions/publishes/create_form.ejs +1 -1
  115. package/src/views/article_revisions/tags/edit_form.ejs +3 -29
  116. package/src/views/article_revisions/visuals/edit_form.ejs +3 -3
  117. package/src/views/articles/_form.ejs +4 -6
  118. package/src/views/articles/create_form.ejs +1 -1
  119. package/src/views/articles/deletes/create_form.ejs +3 -3
  120. package/src/views/articles/index.ejs +7 -7
  121. package/src/views/articles/show.ejs +17 -17
  122. package/src/views/articles/translations/_form.ejs +2 -2
  123. package/src/views/articles/translations/create_form.ejs +2 -2
  124. package/src/views/articles/urls/create_form.ejs +2 -2
  125. package/src/views/event_revisions/_nav.ejs +5 -5
  126. package/src/views/event_revisions/codes/edit_form.ejs +3 -3
  127. package/src/views/event_revisions/general/edit_form.ejs +3 -4
  128. package/src/views/event_revisions/locks/create_form.ejs +2 -2
  129. package/src/views/event_revisions/meta/edit_form.ejs +3 -3
  130. package/src/views/event_revisions/publishes/_form.ejs +2 -2
  131. package/src/views/event_revisions/publishes/create_form.ejs +1 -1
  132. package/src/views/event_revisions/tags/edit_form.ejs +3 -29
  133. package/src/views/event_revisions/visuals/edit_form.ejs +3 -3
  134. package/src/views/events/_form.ejs +6 -8
  135. package/src/views/events/create_form.ejs +1 -1
  136. package/src/views/events/deletes/create_form.ejs +3 -3
  137. package/src/views/events/index.ejs +7 -7
  138. package/src/views/events/show.ejs +17 -17
  139. package/src/views/events/translations/_form.ejs +2 -3
  140. package/src/views/events/translations/create_form.ejs +2 -3
  141. package/src/views/events/urls/create_form.ejs +2 -2
  142. package/src/views/page_revisions/_nav.ejs +5 -5
  143. package/src/views/page_revisions/codes/edit_form.ejs +4 -4
  144. package/src/views/page_revisions/general/edit_form.ejs +4 -4
  145. package/src/views/page_revisions/locks/create_form.ejs +2 -2
  146. package/src/views/page_revisions/meta/edit_form.ejs +4 -4
  147. package/src/views/page_revisions/publishes/_form.ejs +2 -2
  148. package/src/views/page_revisions/publishes/create_form.ejs +1 -2
  149. package/src/views/page_revisions/tags/edit_form.ejs +3 -29
  150. package/src/views/page_revisions/visuals/edit_form.ejs +3 -3
  151. package/src/views/pages/_form.ejs +4 -8
  152. package/src/views/pages/create_form.ejs +1 -1
  153. package/src/views/pages/deletes/create_form.ejs +3 -3
  154. package/src/views/pages/index.ejs +7 -7
  155. package/src/views/pages/show.ejs +17 -17
  156. package/src/views/pages/translations/_form.ejs +2 -2
  157. package/src/views/pages/translations/create_form.ejs +2 -2
  158. package/src/views/pages/urls/create_form.ejs +2 -2
  159. package/src/views/redirects/create_form.ejs +2 -2
  160. package/src/views/redirects/edit_form.ejs +1 -1
  161. package/src/views/settings/general/edit_form.ejs +1 -1
  162. package/src/views/settings/layout/edit_form.ejs +1 -1
  163. package/src/views/settings/meta/edit_form.ejs +2 -2
  164. package/src/views/tags/create_form.ejs +1 -1
  165. package/src/views/tags/edit_form.ejs +1 -1
  166. package/src/views/articles/edit_form.ejs +0 -3
  167. package/src/views/events/edit_form.ejs +0 -3
  168. 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.24",
3
+ "version": "0.0.26",
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,4 +1,5 @@
1
1
  import { existsSync, readFileSync } from "node:fs";
2
+ import path from "node:path";
2
3
  import ejs from "ejs";
3
4
  import currentPath from "./currentPath.cjs";
4
5
  import FormBuilder from "./helpers/FormBuilder";
@@ -88,11 +89,38 @@ function putIn(result, key, value) {
88
89
  });
89
90
  }
90
91
 
91
- function getPartialPath(partialPath) {
92
- const packagePath = `${currentPath}/views/${partialPath}`;
93
- const appPath = `${process.cwd()}/src/views/${partialPath}`;
92
+ function sanitizePath(filePath) {
93
+ return path.normalize(path.join(...["/", ...filePath.split("/")]));
94
+ }
95
+
96
+ function getPartialPath(partialPath, views, viewsFallback) {
97
+ const packagePath = sanitizePath(
98
+ `${currentPath}/views/${views}/${partialPath}`
99
+ );
100
+
101
+ const fallbackPackagePath = sanitizePath(
102
+ `${currentPath}/views/${viewsFallback}/${partialPath}`
103
+ );
104
+
105
+ const appPath = sanitizePath(
106
+ `${process.cwd()}/src/views/${views}/${partialPath}`
107
+ );
108
+
109
+ if (existsSync(appPath)) {
110
+ return appPath;
111
+ }
94
112
 
95
- return existsSync(appPath) ? appPath : packagePath;
113
+ if (existsSync(packagePath)) {
114
+ return packagePath;
115
+ }
116
+
117
+ if (existsSync(fallbackPackagePath)) {
118
+ return fallbackPackagePath;
119
+ }
120
+
121
+ throw new Error(
122
+ `Looked for "${partialPath}" in the following places: \n${appPath}\n${packagePath}\n${fallbackPackagePath}\n`
123
+ );
96
124
  }
97
125
 
98
126
  export default class Adapter {
@@ -100,25 +128,28 @@ export default class Adapter {
100
128
  this.router = router;
101
129
  }
102
130
 
103
- routeCollection(_resource, _mapping, _handlerOpts) {
131
+ routeCollection(_resource, _mapping, _resourceConfig) {
104
132
  throw new Error("Implement in an adapter");
105
133
  }
106
134
 
107
- routeNestedCollection(_resource, _mapping, _handlerOpts) {
135
+ routeNestedCollection(_resource, _mapping, _resourceConfig) {
108
136
  throw new Error("Implement in an adapter");
109
137
  }
110
138
 
111
- routeMember(_resource, _mapping, _handlerOpts) {
139
+ routeMember(_resource, _mapping, _resourceConfig) {
112
140
  throw new Error("Implement in an adapter");
113
141
  }
114
142
 
115
- routeNestedMember(_resource, _mapping, _handlerOpts) {
143
+ routeNestedMember(_resource, _mapping, _resourceConfig) {
116
144
  throw new Error("Implement in an adapter");
117
145
  }
118
146
 
119
- getActionPath(resource, action) {
120
- const packagePath = `${currentPath}/views/${resource}/${action}.ejs`;
121
- const appPath = `${process.cwd()}/src/views/${resource}/${action}.ejs`;
147
+ getActionPath(views, viewsFallback, action) {
148
+ const packagePath = viewsFallback
149
+ ? `${currentPath}/views/${viewsFallback}/${action}.ejs`
150
+ : `${currentPath}/views/${views}/${action}.ejs`;
151
+
152
+ const appPath = `${process.cwd()}/src/views/${views}/${action}.ejs`;
122
153
 
123
154
  return existsSync(appPath) ? appPath : packagePath;
124
155
  }
@@ -145,9 +176,10 @@ export default class Adapter {
145
176
  });
146
177
  }
147
178
 
148
- renderPartial(assigns) {
179
+ renderPartial(assigns, views, viewsFallback) {
149
180
  return function render(relativePath, localAssigns) {
150
- const partialPath = getPartialPath(relativePath);
181
+ const partialPath = getPartialPath(relativePath, views, viewsFallback);
182
+
151
183
  try {
152
184
  // Synchronously read the partial file as ejs does not support async/await
153
185
  const partialTemplate = readFileSync(partialPath, "utf8");
@@ -170,10 +202,18 @@ export default class Adapter {
170
202
  };
171
203
  }
172
204
 
173
- async renderAction({ views, action, assigns }, viewHelpersConfig = {}) {
174
- const fullTemplatePath = this.getActionPath(views, action);
205
+ async renderAction(
206
+ { views, viewsFallback, action, assigns },
207
+ viewHelpersConfig = {}
208
+ ) {
209
+ // Pick the parent here in the views so we can reuse stuff...
210
+ const fullTemplatePath = this.getActionPath(views, viewsFallback, action);
175
211
  const renderAssigns = { ...this.getHelpers(viewHelpersConfig), ...assigns };
176
- const renderPartialHelper = this.renderPartial(renderAssigns);
212
+ const renderPartialHelper = this.renderPartial(
213
+ renderAssigns,
214
+ views,
215
+ viewsFallback
216
+ );
177
217
 
178
218
  try {
179
219
  // Synchronously read the full template file
@@ -74,7 +74,7 @@ export default class HonoAdapter extends Adapter {
74
74
 
75
75
  async createAction(
76
76
  [verb, path, resource, views, action, handler, before_filter, after_filter],
77
- handlerOpts
77
+ resourceConfig
78
78
  ) {
79
79
  const method = this.getMethod(verb);
80
80
 
@@ -96,6 +96,7 @@ export default class HonoAdapter extends Adapter {
96
96
  action
97
97
  );
98
98
 
99
+ ctx.resourceConfig = resourceConfig;
99
100
  ctx.locales = this.globalConfig.i18n.locales;
100
101
  ctx.defaultLocale = this.globalConfig.i18n.defaultLocale;
101
102
  ctx.locale = currentLocale;
@@ -111,6 +112,7 @@ export default class HonoAdapter extends Adapter {
111
112
  layout: {
112
113
  ...this.globalConfig.layout,
113
114
  },
115
+ resourceConfig: resourceConfig,
114
116
  };
115
117
 
116
118
  console.info(
@@ -149,7 +151,7 @@ export default class HonoAdapter extends Adapter {
149
151
  redirect,
150
152
  json,
151
153
  assigns: actionAssigns = {},
152
- } = (await handler(ctx, handlerOpts)) || {};
154
+ } = (await handler(ctx, resourceConfig)) || {};
153
155
  assigns.actionAssigns = actionAssigns;
154
156
 
155
157
  this.applyHeaders(headers, routerCtx);
@@ -187,7 +189,8 @@ export default class HonoAdapter extends Adapter {
187
189
 
188
190
  const rendered = this.renderAction(
189
191
  {
190
- views,
192
+ views: views,
193
+ viewsFallback: resourceConfig.viewsFallback,
191
194
  action,
192
195
  assigns: fullAssigns,
193
196
  },
@@ -199,20 +202,28 @@ export default class HonoAdapter extends Adapter {
199
202
  });
200
203
  }
201
204
 
202
- routeCollection(mapping, handlerOpts) {
203
- mapping.forEach((handlerMap) => this.createAction(handlerMap, handlerOpts));
205
+ routeCollection(mapping, resourceConfig) {
206
+ mapping.forEach((handlerMap) =>
207
+ this.createAction(handlerMap, resourceConfig)
208
+ );
204
209
  }
205
210
 
206
- routeNestedCollection(mapping, handlerOpts) {
207
- mapping.forEach((handlerMap) => this.createAction(handlerMap, handlerOpts));
211
+ routeNestedCollection(mapping, resourceConfig) {
212
+ mapping.forEach((handlerMap) =>
213
+ this.createAction(handlerMap, resourceConfig)
214
+ );
208
215
  }
209
216
 
210
- routeMember(mapping, handlerOpts) {
211
- mapping.forEach((handlerMap) => this.createAction(handlerMap, handlerOpts));
217
+ routeMember(mapping, resourceConfig) {
218
+ mapping.forEach((handlerMap) =>
219
+ this.createAction(handlerMap, resourceConfig)
220
+ );
212
221
  }
213
222
 
214
- routeNestedMember(mapping, handlerOpts) {
215
- mapping.forEach((handlerMap) => this.createAction(handlerMap, handlerOpts));
223
+ routeNestedMember(mapping, resourceConfig) {
224
+ mapping.forEach((handlerMap) =>
225
+ this.createAction(handlerMap, resourceConfig)
226
+ );
216
227
  }
217
228
 
218
229
  getMethod(verb) {
@@ -1,4 +1,4 @@
1
- const create = async (ctx, opts) => {
1
+ const create = async (ctx) => {
2
2
  const { parent_id } = ctx.params;
3
3
 
4
4
  const { errors, articleErrors } = await ctx.client.articleRevisions.create(
@@ -17,11 +17,11 @@ const create = async (ctx, opts) => {
17
17
  }
18
18
 
19
19
  return {
20
- redirect: `/${ctx.locale}/${opts.articleTypePlural}/${parent_id}`,
20
+ redirect: `/${ctx.locale}/${ctx.resourceConfig.articleTypePlural}/${parent_id}`,
21
21
  };
22
22
  };
23
23
 
24
- const destroy = async (ctx, opts) => {
24
+ const destroy = async (ctx) => {
25
25
  const { id } = ctx.params;
26
26
 
27
27
  const { errors, revision } = await ctx.client.articleRevisions.delete(
@@ -37,7 +37,7 @@ const destroy = async (ctx, opts) => {
37
37
 
38
38
  return {
39
39
  headers: {
40
- "HX-Redirect": `/${ctx.locale}/${opts.articleTypePlural}/${revision.originalId}`,
40
+ "HX-Redirect": `/${ctx.locale}/${ctx.resourceConfig.articleTypePlural}/${revision.originalId}`,
41
41
  },
42
42
  json: {},
43
43
  };
@@ -28,7 +28,7 @@ const edit_form = async (ctx) => {
28
28
  };
29
29
  };
30
30
 
31
- const update = async (ctx, opts) => {
31
+ const update = async (ctx) => {
32
32
  const { parent_id } = ctx.params;
33
33
 
34
34
  const revision = await ctx.client.articleRevisions.find(
@@ -80,7 +80,7 @@ const update = async (ctx, opts) => {
80
80
  }
81
81
 
82
82
  return {
83
- redirect: `/${ctx.locale}/${opts.articleType}_revisions/${revision.id}/codes/edit`,
83
+ redirect: `/${ctx.locale}/${ctx.resourceConfig.articleType}_revisions/${revision.id}/codes/edit`,
84
84
  };
85
85
  };
86
86
 
@@ -32,7 +32,7 @@ const edit_form = async (ctx) => {
32
32
  };
33
33
  };
34
34
 
35
- const update = async (ctx, opts) => {
35
+ const update = async (ctx) => {
36
36
  const { parent_id } = ctx.params;
37
37
 
38
38
  const revision = await ctx.client.articleRevisions.find(
@@ -85,7 +85,7 @@ const update = async (ctx, opts) => {
85
85
  }
86
86
 
87
87
  return {
88
- redirect: `/${ctx.locale}/${opts.articleType}_revisions/${revision.id}/general/edit`,
88
+ redirect: `/${ctx.locale}/${ctx.resourceConfig.articleType}_revisions/${revision.id}/general/edit`,
89
89
  };
90
90
  };
91
91
 
@@ -20,7 +20,7 @@ const create_form = async (ctx) => {
20
20
  };
21
21
  };
22
22
 
23
- const create = async (ctx, opts) => {
23
+ const create = async (ctx) => {
24
24
  const { parent_id } = ctx.params;
25
25
  const { message } = ctx.resourceParams.lock_settings;
26
26
 
@@ -44,7 +44,7 @@ const create = async (ctx, opts) => {
44
44
  }
45
45
 
46
46
  return {
47
- redirect: `/${ctx.locale}/${opts.articleTypePlural}/${revision.originalId}`,
47
+ redirect: `/${ctx.locale}/${ctx.resourceConfig.articleTypePlural}/${revision.originalId}`,
48
48
  };
49
49
  };
50
50
 
@@ -27,7 +27,7 @@ const edit_form = async (ctx) => {
27
27
  };
28
28
  };
29
29
 
30
- const update = async (ctx, opts) => {
30
+ const update = async (ctx) => {
31
31
  const { parent_id } = ctx.params;
32
32
 
33
33
  const revision = await ctx.client.articleRevisions.find(
@@ -80,7 +80,7 @@ const update = async (ctx, opts) => {
80
80
  }
81
81
 
82
82
  return {
83
- redirect: `/${ctx.locale}/${opts.articleType}_revisions/${revision.id}/meta/edit`,
83
+ redirect: `/${ctx.locale}/${ctx.resourceConfig.articleType}_revisions/${revision.id}/meta/edit`,
84
84
  };
85
85
  };
86
86
 
@@ -46,7 +46,7 @@ function publishArticleParams(
46
46
  return { visibility };
47
47
  }
48
48
 
49
- const create = async (ctx, opts) => {
49
+ const create = async (ctx) => {
50
50
  const { parent_id } = ctx.params;
51
51
  const publishing = ctx.resourceParams.publishing;
52
52
 
@@ -80,7 +80,7 @@ const create = async (ctx, opts) => {
80
80
  }
81
81
 
82
82
  return {
83
- redirect: `/${ctx.locale}/${opts.articleTypePlural}/${revision.originalId}`,
83
+ redirect: `/${ctx.locale}/${ctx.resourceConfig.articleTypePlural}/${revision.originalId}`,
84
84
  };
85
85
  };
86
86
 
@@ -1,4 +1,4 @@
1
- const create = async (ctx, opts) => {
1
+ const create = async (ctx) => {
2
2
  const { parent_id } = ctx.params;
3
3
  const { version } = ctx.resourceParams;
4
4
 
@@ -19,7 +19,7 @@ const create = async (ctx, opts) => {
19
19
  }
20
20
 
21
21
  return {
22
- redirect: `/${ctx.locale}/${opts.articleTypePlural}/${parent_id}`,
22
+ redirect: `/${ctx.locale}/${ctx.resourceConfig.articleTypePlural}/${parent_id}`,
23
23
  };
24
24
  };
25
25
 
@@ -28,7 +28,7 @@ const edit_form = async (ctx) => {
28
28
  };
29
29
  };
30
30
 
31
- const update = async (ctx, opts) => {
31
+ const update = async (ctx) => {
32
32
  const { parent_id } = ctx.params;
33
33
 
34
34
  const revision = await ctx.client.articleRevisions.find(
@@ -79,7 +79,7 @@ const update = async (ctx, opts) => {
79
79
  }
80
80
 
81
81
  return {
82
- redirect: `/${ctx.locale}/${opts.articleType}_revisions/${revision.id}/tags/edit`,
82
+ redirect: `/${ctx.locale}/${ctx.resourceConfig.articleType}_revisions/${revision.id}/tags/edit`,
83
83
  };
84
84
  };
85
85
 
@@ -1,4 +1,4 @@
1
- const create = async (ctx, opts) => {
1
+ const create = async (ctx) => {
2
2
  const { parent_id } = ctx.params;
3
3
 
4
4
  const { revision, errors, articleErrors } =
@@ -13,7 +13,7 @@ const create = async (ctx, opts) => {
13
13
  }
14
14
 
15
15
  return {
16
- redirect: `/${ctx.locale}/${opts.articleType}/${revision.originalId}`,
16
+ redirect: `/${ctx.locale}/${ctx.resourceConfig.articleType}/${revision.originalId}`,
17
17
  };
18
18
  };
19
19
 
@@ -25,7 +25,7 @@ const edit_form = async (ctx) => {
25
25
  };
26
26
  };
27
27
 
28
- const update = async (ctx, opts) => {
28
+ const update = async (ctx) => {
29
29
  const { parent_id } = ctx.params;
30
30
 
31
31
  const revision = await ctx.client.articleRevisions.find(
@@ -74,7 +74,7 @@ const update = async (ctx, opts) => {
74
74
  }
75
75
 
76
76
  return {
77
- redirect: `/${ctx.locale}/${opts.articleType}_revisions/${revision.id}/visuals/edit`,
77
+ redirect: `/${ctx.locale}/${ctx.resourceConfig.articleType}_revisions/${revision.id}/visuals/edit`,
78
78
  };
79
79
  };
80
80
 
@@ -1,10 +1,10 @@
1
1
  import { toUTCISO8601String } from "../../utils";
2
2
 
3
- const index = async (ctx, opts) => {
3
+ const index = async (ctx) => {
4
4
  const items = await ctx.client.articles.list(
5
5
  ctx.query,
6
6
  ctx.locale,
7
- opts.articleType
7
+ ctx.resourceConfig.articleType
8
8
  );
9
9
  const tags = await ctx.client.tags.all(ctx.locale);
10
10
 
@@ -17,12 +17,12 @@ const index = async (ctx, opts) => {
17
17
  };
18
18
  };
19
19
 
20
- const show = async (ctx, opts) => {
20
+ const show = async (ctx) => {
21
21
  const { id } = ctx.params;
22
22
  const resource = await ctx.client.articles.find(id, ctx.locale);
23
23
 
24
24
  if (!resource) {
25
- throw new Error(`Missing ${opts.articleType} #${id}`);
25
+ throw new Error(`Missing ${ctx.resourceConfig.articleType} #${id}`);
26
26
  }
27
27
 
28
28
  const revisions = await ctx.client.articleRevisions.all(id, ctx.locale);
@@ -40,7 +40,7 @@ const show = async (ctx, opts) => {
40
40
  if (translation) {
41
41
  return {
42
42
  locale,
43
- path: `/${locale}/${opts.articleTypePlural}/${translation.id}`,
43
+ path: `/${locale}/${ctx.resourceConfig.articleTypePlural}/${translation.id}`,
44
44
  };
45
45
  }
46
46
 
@@ -65,7 +65,7 @@ const create_form = async (ctx) => {
65
65
  };
66
66
  };
67
67
 
68
- const create = async (ctx, opts) => {
68
+ const create = async (ctx) => {
69
69
  const params = { ...ctx.resourceParams.resource };
70
70
 
71
71
  params.meta_image = JSON.parse(params.meta_image || "{}");
@@ -93,7 +93,7 @@ const create = async (ctx, opts) => {
93
93
  categories: params.categories || [],
94
94
  },
95
95
  ctx.locale,
96
- opts.articleType
96
+ ctx.resourceConfig.articleType
97
97
  );
98
98
 
99
99
  if (errors) {
@@ -111,7 +111,7 @@ const create = async (ctx, opts) => {
111
111
  }
112
112
 
113
113
  return {
114
- redirect: `/${ctx.locale}/${opts.articleTypePlural}`,
114
+ redirect: `/${ctx.locale}/${ctx.resourceConfig.articleTypePlural}`,
115
115
  };
116
116
  };
117
117
 
@@ -1,16 +1,16 @@
1
- const create = async (ctx, opts) => {
1
+ const create = async (ctx) => {
2
2
  const { parent_id } = ctx.params;
3
3
 
4
4
  const { errors } = await ctx.client.articles.clone(parent_id, ctx.locale);
5
5
 
6
6
  if (errors) {
7
7
  throw new Error(
8
- `Error cloning ${opts.articleType}: ${JSON.stringify(errors)}`
8
+ `Error cloning ${ctx.resourceConfig.articleType}: ${JSON.stringify(errors)}`
9
9
  );
10
10
  }
11
11
 
12
12
  return {
13
- redirect: `/${ctx.locale}/${opts.articleTypePlural}`,
13
+ redirect: `/${ctx.locale}/${ctx.resourceConfig.articleTypePlural}`,
14
14
  };
15
15
  };
16
16
 
@@ -1,9 +1,9 @@
1
- const create_form = async (ctx, opts) => {
1
+ const create_form = async (ctx) => {
2
2
  const { parent_id } = ctx.params;
3
3
  const article = await ctx.client.articles.find(parent_id, ctx.locale);
4
4
 
5
5
  if (!article) {
6
- throw new Error(`Missing ${opts.articleType} #${parent_id}`);
6
+ throw new Error(`Missing ${ctx.resourceConfig.articleType} #${parent_id}`);
7
7
  }
8
8
 
9
9
  return {
@@ -18,13 +18,13 @@ const create_form = async (ctx, opts) => {
18
18
  };
19
19
  };
20
20
 
21
- const create = async (ctx, opts) => {
21
+ const create = async (ctx) => {
22
22
  const { parent_id } = ctx.params;
23
23
  const params = ctx.resourceParams.deleteAction;
24
24
  const article = await ctx.client.articles.find(parent_id, ctx.locale);
25
25
 
26
26
  if (!article) {
27
- throw new Error(`Missing ${opts.articleType} #${parent_id}`);
27
+ throw new Error(`Missing ${ctx.resourceConfig.articleType} #${parent_id}`);
28
28
  }
29
29
 
30
30
  let redirect = null;
@@ -61,7 +61,7 @@ const create = async (ctx, opts) => {
61
61
  }
62
62
 
63
63
  return {
64
- redirect: `/${ctx.locale}/${opts.articleTypePlural}`,
64
+ redirect: `/${ctx.locale}/${ctx.resourceConfig.articleTypePlural}`,
65
65
  };
66
66
  };
67
67
 
@@ -40,7 +40,7 @@ const create_form = async (ctx) => {
40
40
  };
41
41
  };
42
42
 
43
- const create = async (ctx, opts) => {
43
+ const create = async (ctx) => {
44
44
  const { parent_id } = ctx.params;
45
45
  const blueprint_resource = await ctx.client.articles.find(
46
46
  parent_id,
@@ -96,7 +96,7 @@ const create = async (ctx, opts) => {
96
96
  }
97
97
 
98
98
  return {
99
- redirect: `/${ctx.locale}/${opts.articleTypePlural}/${parent_id}`,
99
+ redirect: `/${ctx.locale}/${ctx.resourceConfig.articleTypePlural}/${parent_id}`,
100
100
  };
101
101
  };
102
102
 
@@ -1,9 +1,11 @@
1
- const create_form = async (ctx, opts) => {
1
+ const create_form = async (ctx) => {
2
2
  const { parent_id } = ctx.params;
3
3
  const article = await ctx.client.articles.find(parent_id, ctx.locale);
4
4
 
5
5
  if (!article) {
6
- throw new Error(`Cannot find ${opts.articleType} with id ${parent_id}`);
6
+ throw new Error(
7
+ `Cannot find ${ctx.resourceConfig.articleType} with id ${parent_id}`
8
+ );
7
9
  }
8
10
 
9
11
  return {
@@ -19,14 +21,16 @@ const create_form = async (ctx, opts) => {
19
21
  };
20
22
  };
21
23
 
22
- const create = async (ctx, opts) => {
24
+ const create = async (ctx) => {
23
25
  const { parent_id } = ctx.params;
24
26
  const change = ctx.resourceParams.change;
25
27
 
26
28
  const article = await ctx.client.articles.find(parent_id, ctx.locale);
27
29
 
28
30
  if (!article) {
29
- throw new Error(`Cannot find ${opts.articleType} with id ${parent_id}`);
31
+ throw new Error(
32
+ `Cannot find ${ctx.resourceConfig.articleType} with id ${parent_id}`
33
+ );
30
34
  }
31
35
 
32
36
  let redirectParams = null;
@@ -41,7 +45,7 @@ const create = async (ctx, opts) => {
41
45
  url: `/${article.slug}`,
42
46
  destination: change.slug,
43
47
  httpResponseCode: 301,
44
- note: `Created with changed URL for a resource of type ${opts.articleType}`,
48
+ note: `Created with changed URL for a resource of type ${ctx.resourceConfig.articleType}`,
45
49
  };
46
50
  }
47
51
 
@@ -65,7 +69,7 @@ const create = async (ctx, opts) => {
65
69
  }
66
70
 
67
71
  return {
68
- redirect: `/${ctx.locale}/${opts.articleTypePlural}/${parent_id}`,
72
+ redirect: `/${ctx.locale}/${ctx.resourceConfig.articleTypePlural}/${parent_id}`,
69
73
  };
70
74
  };
71
75
 
@@ -25,7 +25,7 @@ const edit_form = async (ctx) => {
25
25
  };
26
26
  };
27
27
 
28
- const update = async (ctx, opts) => {
28
+ const update = async (ctx) => {
29
29
  const { parent_id } = ctx.params;
30
30
 
31
31
  const revision = await ctx.client.eventRevisions.find(parent_id, ctx.locale);
@@ -76,7 +76,7 @@ const update = async (ctx, opts) => {
76
76
  }
77
77
 
78
78
  return {
79
- redirect: `/${ctx.locale}/${opts.eventType}_revisions/${revision.id}/codes/edit`,
79
+ redirect: `/${ctx.locale}/${ctx.resourceConfig.eventType}_revisions/${revision.id}/codes/edit`,
80
80
  };
81
81
  };
82
82
 
@@ -1,4 +1,4 @@
1
- const create = async (ctx, opts) => {
1
+ const create = async (ctx) => {
2
2
  const { parent_id } = ctx.params;
3
3
 
4
4
  const { errors, eventErrors } = await ctx.client.eventRevisions.create(
@@ -15,11 +15,11 @@ const create = async (ctx, opts) => {
15
15
  }
16
16
 
17
17
  return {
18
- redirect: `/${ctx.locale}/${opts.eventTypePlural}/${parent_id}`,
18
+ redirect: `/${ctx.locale}/${ctx.resourceConfig.eventTypePlural}/${parent_id}`,
19
19
  };
20
20
  };
21
21
 
22
- const destroy = async (ctx, opts) => {
22
+ const destroy = async (ctx) => {
23
23
  const { id } = ctx.params;
24
24
 
25
25
  const { errors, revision } = await ctx.client.eventRevisions.delete(
@@ -35,7 +35,7 @@ const destroy = async (ctx, opts) => {
35
35
 
36
36
  return {
37
37
  headers: {
38
- "HX-Redirect": `/${ctx.locale}/${opts.eventTypePlural}/${revision.originalId}`,
38
+ "HX-Redirect": `/${ctx.locale}/${ctx.resourceConfig.eventTypePlural}/${revision.originalId}`,
39
39
  },
40
40
  json: {},
41
41
  };
@@ -32,7 +32,7 @@ const edit_form = async (ctx) => {
32
32
  };
33
33
  };
34
34
 
35
- const update = async (ctx, opts) => {
35
+ const update = async (ctx) => {
36
36
  const { parent_id } = ctx.params;
37
37
 
38
38
  const revision = await ctx.client.eventRevisions.find(parent_id, ctx.locale);
@@ -84,7 +84,7 @@ const update = async (ctx, opts) => {
84
84
  }
85
85
 
86
86
  return {
87
- redirect: `/${ctx.locale}/${opts.eventType}_revisions/${revision.id}/general/edit`,
87
+ redirect: `/${ctx.locale}/${ctx.resourceConfig.eventType}_revisions/${revision.id}/general/edit`,
88
88
  };
89
89
  };
90
90
 
@@ -17,7 +17,7 @@ const create_form = async (ctx) => {
17
17
  };
18
18
  };
19
19
 
20
- const create = async (ctx, opts) => {
20
+ const create = async (ctx) => {
21
21
  const { parent_id } = ctx.params;
22
22
  const { message } = ctx.resourceParams.lock_settings;
23
23
 
@@ -41,7 +41,7 @@ const create = async (ctx, opts) => {
41
41
  }
42
42
 
43
43
  return {
44
- redirect: `/${ctx.locale}/${opts.eventTypePlural}/${revision.originalId}`,
44
+ redirect: `/${ctx.locale}/${ctx.resourceConfig.eventTypePlural}/${revision.originalId}`,
45
45
  };
46
46
  };
47
47