@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.
- package/package.json +1 -1
- package/src/Adapter.js +56 -16
- package/src/HonoAdapter.js +22 -11
- 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 +62 -71
- package/src/routeCollection.js +2 -2
- package/src/routeEventsModule.js +77 -71
- package/src/routeMember.js +2 -2
- package/src/routeNestedCollection.js +2 -2
- package/src/routeNestedMember.js +2 -2
- package/src/routePagesModule.js +61 -71
- 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 -4
- 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 -29
- package/src/views/article_revisions/visuals/edit_form.ejs +3 -3
- package/src/views/articles/_form.ejs +4 -6
- 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 +17 -17
- 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 -4
- 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 -29
- package/src/views/event_revisions/visuals/edit_form.ejs +3 -3
- package/src/views/events/_form.ejs +6 -8
- 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 +17 -17
- package/src/views/events/translations/_form.ejs +2 -3
- package/src/views/events/translations/create_form.ejs +2 -3
- 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 +4 -4
- package/src/views/page_revisions/general/edit_form.ejs +4 -4
- package/src/views/page_revisions/locks/create_form.ejs +2 -2
- package/src/views/page_revisions/meta/edit_form.ejs +4 -4
- 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 -29
- package/src/views/page_revisions/visuals/edit_form.ejs +3 -3
- package/src/views/pages/_form.ejs +4 -8
- 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 +17 -17
- 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/src/views/articles/edit_form.ejs +0 -3
- package/src/views/events/edit_form.ejs +0 -3
- package/src/views/pages/edit_form.ejs +0 -3
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
|
+
);
|
|
108
|
+
|
|
109
|
+
if (existsSync(appPath)) {
|
|
110
|
+
return appPath;
|
|
111
|
+
}
|
|
94
112
|
|
|
95
|
-
|
|
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,
|
|
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(
|
|
120
|
-
const packagePath =
|
|
121
|
-
|
|
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(
|
|
174
|
-
|
|
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(
|
|
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
|
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,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,
|
|
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,
|
|
203
|
-
mapping.forEach((handlerMap) =>
|
|
205
|
+
routeCollection(mapping, resourceConfig) {
|
|
206
|
+
mapping.forEach((handlerMap) =>
|
|
207
|
+
this.createAction(handlerMap, resourceConfig)
|
|
208
|
+
);
|
|
204
209
|
}
|
|
205
210
|
|
|
206
|
-
routeNestedCollection(mapping,
|
|
207
|
-
mapping.forEach((handlerMap) =>
|
|
211
|
+
routeNestedCollection(mapping, resourceConfig) {
|
|
212
|
+
mapping.forEach((handlerMap) =>
|
|
213
|
+
this.createAction(handlerMap, resourceConfig)
|
|
214
|
+
);
|
|
208
215
|
}
|
|
209
216
|
|
|
210
|
-
routeMember(mapping,
|
|
211
|
-
mapping.forEach((handlerMap) =>
|
|
217
|
+
routeMember(mapping, resourceConfig) {
|
|
218
|
+
mapping.forEach((handlerMap) =>
|
|
219
|
+
this.createAction(handlerMap, resourceConfig)
|
|
220
|
+
);
|
|
212
221
|
}
|
|
213
222
|
|
|
214
|
-
routeNestedMember(mapping,
|
|
215
|
-
mapping.forEach((handlerMap) =>
|
|
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
|
|
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
|
|