@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.
- package/package.json +1 -1
- package/src/Adapter.js +48 -19
- package/src/HonoAdapter.js +21 -12
- package/src/handlers/article_revisions/ArticleRevisionsHandler.js +4 -4
- package/src/handlers/article_revisions/CodeHandler.js +2 -2
- package/src/handlers/article_revisions/GeneralHandler.js +2 -2
- package/src/handlers/article_revisions/LocksHandler.js +2 -2
- package/src/handlers/article_revisions/MetaHandler.js +2 -2
- package/src/handlers/article_revisions/PublishesHandler.js +2 -2
- package/src/handlers/article_revisions/RevertsHandler.js +2 -2
- package/src/handlers/article_revisions/TagHandler.js +2 -2
- package/src/handlers/article_revisions/UnlocksHandler.js +2 -2
- package/src/handlers/article_revisions/VisualHandler.js +2 -2
- package/src/handlers/articles/ArticlesHandler.js +8 -8
- package/src/handlers/articles/ClonesHandler.js +3 -3
- package/src/handlers/articles/DeletesHandler.js +5 -5
- package/src/handlers/articles/TranslationsHandler.js +2 -2
- package/src/handlers/articles/URLsHandler.js +10 -6
- package/src/handlers/event_revisions/CodeHandler.js +2 -2
- package/src/handlers/event_revisions/EventRevisionsHandler.js +4 -4
- package/src/handlers/event_revisions/GeneralHandler.js +2 -2
- package/src/handlers/event_revisions/LocksHandler.js +2 -2
- package/src/handlers/event_revisions/MetaHandler.js +2 -2
- package/src/handlers/event_revisions/PublishesHandler.js +2 -2
- package/src/handlers/event_revisions/RevertsHandler.js +2 -2
- package/src/handlers/event_revisions/TagHandler.js +2 -2
- package/src/handlers/event_revisions/UnlocksHandler.js +2 -2
- package/src/handlers/event_revisions/VisualHandler.js +2 -2
- package/src/handlers/events/ClonesHandler.js +3 -3
- package/src/handlers/events/DeletesHandler.js +5 -5
- package/src/handlers/events/EventsHandler.js +8 -8
- package/src/handlers/events/TranslationsHandler.js +2 -2
- package/src/handlers/events/URLsHandler.js +7 -5
- package/src/handlers/page_revisions/CodeHandler.js +2 -2
- package/src/handlers/page_revisions/GeneralHandler.js +2 -2
- package/src/handlers/page_revisions/LocksHandler.js +2 -2
- package/src/handlers/page_revisions/MetaHandler.js +2 -2
- package/src/handlers/page_revisions/PageRevisionsHandler.js +4 -4
- package/src/handlers/page_revisions/PublishesHandler.js +2 -2
- package/src/handlers/page_revisions/RevertsHandler.js +2 -2
- package/src/handlers/page_revisions/TagHandler.js +2 -2
- package/src/handlers/page_revisions/UnlocksHandler.js +2 -2
- package/src/handlers/page_revisions/VisualHandler.js +2 -2
- package/src/handlers/pages/ClonesHandler.js +3 -3
- package/src/handlers/pages/DeletesHandler.js +5 -5
- package/src/handlers/pages/PagesHandler.js +8 -8
- package/src/handlers/pages/TranslationsHandler.js +2 -2
- package/src/handlers/pages/URLsHandler.js +10 -6
- package/src/routeArticlesModule.js +27 -27
- package/src/routeCollection.js +2 -2
- package/src/routeEventsModule.js +32 -32
- package/src/routeMember.js +2 -2
- package/src/routeNestedCollection.js +2 -2
- package/src/routeNestedMember.js +2 -2
- package/src/routePagesModule.js +31 -31
- package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/create.test.js +7 -12
- package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/destroy.test.js +6 -8
- package/src/tests/handlers/article_revisions/CodesHandler.test/update.test.js +7 -12
- package/src/tests/handlers/article_revisions/GeneralHandler.test/update.test.js +7 -12
- package/src/tests/handlers/article_revisions/MetaHandler.test/update.test.js +7 -12
- package/src/tests/handlers/article_revisions/PublishesHandler.test/create.test.js +6 -8
- package/src/tests/handlers/article_revisions/RevertsHandler.test/create.test.js +6 -8
- package/src/tests/handlers/article_revisions/TagHandler.test/update.test.js +7 -12
- package/src/tests/handlers/article_revisions/VisualHandler.test.test/update.test.js +7 -12
- package/src/tests/handlers/articles/ArticlesHandler.test/create.test.js +6 -8
- package/src/tests/handlers/articles/ArticlesHandler.test/index.test.js +5 -4
- package/src/tests/handlers/articles/ArticlesHandler.test/show.test.js +6 -8
- package/src/tests/handlers/articles/ClonesHandler.test/create.test.js +6 -8
- package/src/tests/handlers/articles/DeletesHandler.test/create.test.js +7 -12
- package/src/tests/handlers/articles/DeletesHandler.test/create_form.test.js +6 -8
- package/src/tests/handlers/articles/URLsHandler.test/create.test.js +8 -16
- package/src/tests/handlers/articles/URLsHandler.test/create_form.test.js +6 -8
- package/src/tests/handlers/event_revisions/CodesHandler.test/update.test.js +7 -12
- package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/create.test.js +7 -12
- package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/destroy.test.js +6 -8
- package/src/tests/handlers/event_revisions/GeneralHandler.test/update.test.js +7 -12
- package/src/tests/handlers/event_revisions/MetaHandler.test/update.test.js +7 -12
- package/src/tests/handlers/event_revisions/PublishesHandler.test/create.test.js +6 -8
- package/src/tests/handlers/event_revisions/RevertsHandler.test/create.test.js +7 -12
- package/src/tests/handlers/event_revisions/TagHandler.test/update.test.js +7 -12
- package/src/tests/handlers/event_revisions/VisualHandler.test.test/update.test.js +7 -12
- package/src/tests/handlers/events/ClonesHandler.test/create.test.js +6 -8
- package/src/tests/handlers/events/DeletesHandler.test/create.test.js +7 -12
- package/src/tests/handlers/events/DeletesHandler.test/create_form.test.js +6 -8
- package/src/tests/handlers/events/EventsHandler.test/create.test.js +6 -8
- package/src/tests/handlers/events/EventsHandler.test/create_form.test.js +5 -4
- package/src/tests/handlers/events/EventsHandler.test/index.test.js +5 -4
- package/src/tests/handlers/events/EventsHandler.test/show.test.js +6 -8
- package/src/tests/handlers/events/URLsHandler.test/create.test.js +8 -16
- package/src/tests/handlers/events/URLsHandler.test/create_form.test.js +6 -8
- package/src/tests/handlers/page_revisions/CodesHandler.test/update.test.js +7 -12
- package/src/tests/handlers/page_revisions/GeneralHandler.test/update.test.js +7 -12
- package/src/tests/handlers/page_revisions/MetaHandler.test/update.test.js +7 -12
- package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/create.test.js +7 -12
- package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/destroy.test.js +6 -8
- package/src/tests/handlers/page_revisions/PublishesHandler.test/create.test.js +6 -8
- package/src/tests/handlers/page_revisions/RevertsHandler.test/create.test.js +7 -12
- package/src/tests/handlers/page_revisions/TagHandler.test/update.test.js +6 -8
- package/src/tests/handlers/page_revisions/VisualHandler.test.test/update.test.js +7 -12
- package/src/tests/handlers/pages/ConesHandler.test/create.test.js +6 -8
- package/src/tests/handlers/pages/DeletesHandler.test/create.test.js +7 -12
- package/src/tests/handlers/pages/DeletesHandler.test/create_form.test.js +6 -8
- package/src/tests/handlers/pages/PagesHandler.test/create.test.js +6 -8
- package/src/tests/handlers/pages/PagesHandler.test/index.test.js +5 -4
- package/src/tests/handlers/pages/PagesHandler.test/show.test.js +6 -8
- package/src/tests/handlers/pages/URLsHandler.test/create.test.js +8 -16
- package/src/tests/handlers/pages/URLsHandler.test/create_form.test.js +5 -4
- package/src/views/article_revisions/_nav.ejs +5 -5
- package/src/views/article_revisions/codes/edit_form.ejs +3 -3
- package/src/views/article_revisions/general/edit_form.ejs +3 -3
- package/src/views/article_revisions/locks/create_form.ejs +2 -2
- package/src/views/article_revisions/meta/edit_form.ejs +3 -3
- package/src/views/article_revisions/publishes/_form.ejs +2 -2
- package/src/views/article_revisions/publishes/create_form.ejs +1 -1
- package/src/views/article_revisions/tags/edit_form.ejs +3 -3
- package/src/views/article_revisions/visuals/edit_form.ejs +3 -3
- package/src/views/articles/_form.ejs +3 -3
- package/src/views/articles/create_form.ejs +1 -1
- package/src/views/articles/deletes/create_form.ejs +3 -3
- package/src/views/articles/index.ejs +7 -7
- package/src/views/articles/show.ejs +15 -15
- package/src/views/articles/translations/_form.ejs +2 -2
- package/src/views/articles/translations/create_form.ejs +2 -2
- package/src/views/articles/urls/create_form.ejs +2 -2
- package/src/views/event_revisions/_nav.ejs +5 -5
- package/src/views/event_revisions/codes/edit_form.ejs +3 -3
- package/src/views/event_revisions/general/edit_form.ejs +3 -3
- package/src/views/event_revisions/locks/create_form.ejs +2 -2
- package/src/views/event_revisions/meta/edit_form.ejs +3 -3
- package/src/views/event_revisions/publishes/_form.ejs +2 -2
- package/src/views/event_revisions/publishes/create_form.ejs +1 -1
- package/src/views/event_revisions/tags/edit_form.ejs +3 -3
- package/src/views/event_revisions/visuals/edit_form.ejs +3 -3
- package/src/views/events/_form.ejs +3 -3
- package/src/views/events/create_form.ejs +1 -1
- package/src/views/events/deletes/create_form.ejs +3 -3
- package/src/views/events/index.ejs +7 -7
- package/src/views/events/show.ejs +15 -15
- package/src/views/events/translations/_form.ejs +2 -2
- package/src/views/events/translations/create_form.ejs +2 -2
- package/src/views/events/urls/create_form.ejs +2 -2
- package/src/views/page_revisions/_nav.ejs +5 -5
- package/src/views/page_revisions/codes/edit_form.ejs +3 -3
- package/src/views/page_revisions/general/edit_form.ejs +3 -3
- package/src/views/page_revisions/locks/create_form.ejs +2 -2
- package/src/views/page_revisions/meta/edit_form.ejs +3 -3
- package/src/views/page_revisions/publishes/_form.ejs +2 -2
- package/src/views/page_revisions/publishes/create_form.ejs +1 -2
- package/src/views/page_revisions/tags/edit_form.ejs +3 -3
- package/src/views/page_revisions/visuals/edit_form.ejs +3 -3
- package/src/views/pages/_form.ejs +3 -3
- package/src/views/pages/create_form.ejs +1 -1
- package/src/views/pages/deletes/create_form.ejs +3 -3
- package/src/views/pages/index.ejs +7 -7
- package/src/views/pages/show.ejs +15 -15
- package/src/views/pages/translations/_form.ejs +2 -2
- package/src/views/pages/translations/create_form.ejs +2 -2
- package/src/views/pages/urls/create_form.ejs +2 -2
- package/src/views/redirects/create_form.ejs +2 -2
- package/src/views/redirects/edit_form.ejs +1 -1
- package/src/views/settings/general/edit_form.ejs +1 -1
- package/src/views/settings/layout/edit_form.ejs +1 -1
- package/src/views/settings/meta/edit_form.ejs +2 -2
- package/src/views/tags/create_form.ejs +1 -1
- package/src/views/tags/edit_form.ejs +1 -1
package/package.json
CHANGED
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
|
|
92
|
-
|
|
93
|
-
|
|
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
|
-
|
|
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,
|
|
131
|
+
routeCollection(_resource, _mapping, _resourceConfig) {
|
|
104
132
|
throw new Error("Implement in an adapter");
|
|
105
133
|
}
|
|
106
134
|
|
|
107
|
-
routeNestedCollection(_resource, _mapping,
|
|
135
|
+
routeNestedCollection(_resource, _mapping, _resourceConfig) {
|
|
108
136
|
throw new Error("Implement in an adapter");
|
|
109
137
|
}
|
|
110
138
|
|
|
111
|
-
routeMember(_resource, _mapping,
|
|
139
|
+
routeMember(_resource, _mapping, _resourceConfig) {
|
|
112
140
|
throw new Error("Implement in an adapter");
|
|
113
141
|
}
|
|
114
142
|
|
|
115
|
-
routeNestedMember(_resource, _mapping,
|
|
143
|
+
routeNestedMember(_resource, _mapping, _resourceConfig) {
|
|
116
144
|
throw new Error("Implement in an adapter");
|
|
117
145
|
}
|
|
118
146
|
|
|
119
|
-
getActionPath(views,
|
|
120
|
-
const packagePath =
|
|
121
|
-
? `${currentPath}/views/${
|
|
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,
|
|
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
|
-
|
|
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
|
package/src/HonoAdapter.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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,
|
|
205
|
-
mapping.forEach((handlerMap) =>
|
|
205
|
+
routeCollection(mapping, resourceConfig) {
|
|
206
|
+
mapping.forEach((handlerMap) =>
|
|
207
|
+
this.createAction(handlerMap, resourceConfig)
|
|
208
|
+
);
|
|
206
209
|
}
|
|
207
210
|
|
|
208
|
-
routeNestedCollection(mapping,
|
|
209
|
-
mapping.forEach((handlerMap) =>
|
|
211
|
+
routeNestedCollection(mapping, resourceConfig) {
|
|
212
|
+
mapping.forEach((handlerMap) =>
|
|
213
|
+
this.createAction(handlerMap, resourceConfig)
|
|
214
|
+
);
|
|
210
215
|
}
|
|
211
216
|
|
|
212
|
-
routeMember(mapping,
|
|
213
|
-
mapping.forEach((handlerMap) =>
|
|
217
|
+
routeMember(mapping, resourceConfig) {
|
|
218
|
+
mapping.forEach((handlerMap) =>
|
|
219
|
+
this.createAction(handlerMap, resourceConfig)
|
|
220
|
+
);
|
|
214
221
|
}
|
|
215
222
|
|
|
216
|
-
routeNestedMember(mapping,
|
|
217
|
-
mapping.forEach((handlerMap) =>
|
|
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
|
|
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}/${
|
|
20
|
+
redirect: `/${ctx.locale}/${ctx.resourceConfig.articleTypePlural}/${parent_id}`,
|
|
21
21
|
};
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
-
const destroy = async (ctx
|
|
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}/${
|
|
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
|
|
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}/${
|
|
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
|
|
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}/${
|
|
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
|
|
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}/${
|
|
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
|
|
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}/${
|
|
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
|
|
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}/${
|
|
83
|
+
redirect: `/${ctx.locale}/${ctx.resourceConfig.articleTypePlural}/${revision.originalId}`,
|
|
84
84
|
};
|
|
85
85
|
};
|
|
86
86
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const create = async (ctx
|
|
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}/${
|
|
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
|
|
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}/${
|
|
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
|
|
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}/${
|
|
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
|
|
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}/${
|
|
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
|
|
3
|
+
const index = async (ctx) => {
|
|
4
4
|
const items = await ctx.client.articles.list(
|
|
5
5
|
ctx.query,
|
|
6
6
|
ctx.locale,
|
|
7
|
-
|
|
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
|
|
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 ${
|
|
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}/${
|
|
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
|
|
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
|
-
|
|
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}/${
|
|
114
|
+
redirect: `/${ctx.locale}/${ctx.resourceConfig.articleTypePlural}`,
|
|
115
115
|
};
|
|
116
116
|
};
|
|
117
117
|
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
const create = async (ctx
|
|
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 ${
|
|
8
|
+
`Error cloning ${ctx.resourceConfig.articleType}: ${JSON.stringify(errors)}`
|
|
9
9
|
);
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
return {
|
|
13
|
-
redirect: `/${ctx.locale}/${
|
|
13
|
+
redirect: `/${ctx.locale}/${ctx.resourceConfig.articleTypePlural}`,
|
|
14
14
|
};
|
|
15
15
|
};
|
|
16
16
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const create_form = async (ctx
|
|
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 ${
|
|
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
|
|
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 ${
|
|
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}/${
|
|
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
|
|
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}/${
|
|
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
|
|
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(
|
|
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
|
|
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(
|
|
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 ${
|
|
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}/${
|
|
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
|
|
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}/${
|
|
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
|
|
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}/${
|
|
18
|
+
redirect: `/${ctx.locale}/${ctx.resourceConfig.eventTypePlural}/${parent_id}`,
|
|
19
19
|
};
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
-
const destroy = async (ctx
|
|
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}/${
|
|
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
|
|
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}/${
|
|
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
|
|
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}/${
|
|
44
|
+
redirect: `/${ctx.locale}/${ctx.resourceConfig.eventTypePlural}/${revision.originalId}`,
|
|
45
45
|
};
|
|
46
46
|
};
|
|
47
47
|
|