@raketa-cloud/admin 0.0.25 → 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 (165) hide show
  1. package/package.json +1 -1
  2. package/src/Adapter.js +48 -19
  3. package/src/HonoAdapter.js +21 -12
  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 +27 -27
  50. package/src/routeCollection.js +2 -2
  51. package/src/routeEventsModule.js +32 -32
  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 +31 -31
  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 -3
  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 -3
  116. package/src/views/article_revisions/visuals/edit_form.ejs +3 -3
  117. package/src/views/articles/_form.ejs +3 -3
  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 +15 -15
  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 -3
  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 -3
  133. package/src/views/event_revisions/visuals/edit_form.ejs +3 -3
  134. package/src/views/events/_form.ejs +3 -3
  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 +15 -15
  139. package/src/views/events/translations/_form.ejs +2 -2
  140. package/src/views/events/translations/create_form.ejs +2 -2
  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 +3 -3
  144. package/src/views/page_revisions/general/edit_form.ejs +3 -3
  145. package/src/views/page_revisions/locks/create_form.ejs +2 -2
  146. package/src/views/page_revisions/meta/edit_form.ejs +3 -3
  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 -3
  150. package/src/views/page_revisions/visuals/edit_form.ejs +3 -3
  151. package/src/views/pages/_form.ejs +3 -3
  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 +15 -15
  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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raketa-cloud/admin",
3
- "version": "0.0.25",
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
+ );
94
108
 
95
- return existsSync(appPath) ? appPath : packagePath;
109
+ if (existsSync(appPath)) {
110
+ return appPath;
111
+ }
112
+
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,25 @@ 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(views, packageViewsFallback, action) {
120
- const packagePath = packageViewsFallback
121
- ? `${currentPath}/views/${packageViewsFallback}/${action}.ejs`
147
+ getActionPath(views, viewsFallback, action) {
148
+ const packagePath = viewsFallback
149
+ ? `${currentPath}/views/${viewsFallback}/${action}.ejs`
122
150
  : `${currentPath}/views/${views}/${action}.ejs`;
123
151
 
124
152
  const appPath = `${process.cwd()}/src/views/${views}/${action}.ejs`;
@@ -148,9 +176,10 @@ export default class Adapter {
148
176
  });
149
177
  }
150
178
 
151
- renderPartial(assigns) {
179
+ renderPartial(assigns, views, viewsFallback) {
152
180
  return function render(relativePath, localAssigns) {
153
- const partialPath = getPartialPath(relativePath);
181
+ const partialPath = getPartialPath(relativePath, views, viewsFallback);
182
+
154
183
  try {
155
184
  // Synchronously read the partial file as ejs does not support async/await
156
185
  const partialTemplate = readFileSync(partialPath, "utf8");
@@ -174,17 +203,17 @@ export default class Adapter {
174
203
  }
175
204
 
176
205
  async renderAction(
177
- { views, packageViewsFallback, action, assigns },
206
+ { views, viewsFallback, action, assigns },
178
207
  viewHelpersConfig = {}
179
208
  ) {
180
209
  // Pick the parent here in the views so we can reuse stuff...
181
- const fullTemplatePath = this.getActionPath(
210
+ const fullTemplatePath = this.getActionPath(views, viewsFallback, action);
211
+ const renderAssigns = { ...this.getHelpers(viewHelpersConfig), ...assigns };
212
+ const renderPartialHelper = this.renderPartial(
213
+ renderAssigns,
182
214
  views,
183
- packageViewsFallback,
184
- action
215
+ viewsFallback
185
216
  );
186
- const renderAssigns = { ...this.getHelpers(viewHelpersConfig), ...assigns };
187
- const renderPartialHelper = this.renderPartial(renderAssigns);
188
217
 
189
218
  try {
190
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,7 +112,7 @@ export default class HonoAdapter extends Adapter {
111
112
  layout: {
112
113
  ...this.globalConfig.layout,
113
114
  },
114
- handlerOpts: handlerOpts,
115
+ resourceConfig: resourceConfig,
115
116
  };
116
117
 
117
118
  console.info(
@@ -150,7 +151,7 @@ export default class HonoAdapter extends Adapter {
150
151
  redirect,
151
152
  json,
152
153
  assigns: actionAssigns = {},
153
- } = (await handler(ctx, handlerOpts)) || {};
154
+ } = (await handler(ctx, resourceConfig)) || {};
154
155
  assigns.actionAssigns = actionAssigns;
155
156
 
156
157
  this.applyHeaders(headers, routerCtx);
@@ -189,7 +190,7 @@ export default class HonoAdapter extends Adapter {
189
190
  const rendered = this.renderAction(
190
191
  {
191
192
  views: views,
192
- packageViewsFallback: handlerOpts.packageViewsFallback,
193
+ viewsFallback: resourceConfig.viewsFallback,
193
194
  action,
194
195
  assigns: fullAssigns,
195
196
  },
@@ -201,20 +202,28 @@ export default class HonoAdapter extends Adapter {
201
202
  });
202
203
  }
203
204
 
204
- routeCollection(mapping, handlerOpts) {
205
- mapping.forEach((handlerMap) => this.createAction(handlerMap, handlerOpts));
205
+ routeCollection(mapping, resourceConfig) {
206
+ mapping.forEach((handlerMap) =>
207
+ this.createAction(handlerMap, resourceConfig)
208
+ );
206
209
  }
207
210
 
208
- routeNestedCollection(mapping, handlerOpts) {
209
- mapping.forEach((handlerMap) => this.createAction(handlerMap, handlerOpts));
211
+ routeNestedCollection(mapping, resourceConfig) {
212
+ mapping.forEach((handlerMap) =>
213
+ this.createAction(handlerMap, resourceConfig)
214
+ );
210
215
  }
211
216
 
212
- routeMember(mapping, handlerOpts) {
213
- mapping.forEach((handlerMap) => this.createAction(handlerMap, handlerOpts));
217
+ routeMember(mapping, resourceConfig) {
218
+ mapping.forEach((handlerMap) =>
219
+ this.createAction(handlerMap, resourceConfig)
220
+ );
214
221
  }
215
222
 
216
- routeNestedMember(mapping, handlerOpts) {
217
- mapping.forEach((handlerMap) => this.createAction(handlerMap, handlerOpts));
223
+ routeNestedMember(mapping, resourceConfig) {
224
+ mapping.forEach((handlerMap) =>
225
+ this.createAction(handlerMap, resourceConfig)
226
+ );
218
227
  }
219
228
 
220
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