@raketa-cloud/admin 0.0.16 → 0.0.18
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 +4 -4
- package/src/HonoAdapter.js +14 -19
- package/src/cloud/Articles.js +9 -5
- package/src/cloud/Events.js +9 -5
- package/src/cloud/Pages.js +9 -5
- 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 +20 -16
- package/src/handlers/articles/ClonesHandler.js +5 -3
- package/src/handlers/articles/DeletesHandler.js +10 -7
- package/src/handlers/articles/TranslationsHandler.js +25 -22
- package/src/handlers/articles/URLsHandler.js +11 -7
- 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 +3 -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 +5 -3
- package/src/handlers/events/DeletesHandler.js +10 -7
- package/src/handlers/events/EventsHandler.js +20 -16
- package/src/handlers/events/TranslationsHandler.js +31 -23
- package/src/handlers/events/URLsHandler.js +10 -7
- 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 +5 -3
- package/src/handlers/pages/DeletesHandler.js +6 -7
- package/src/handlers/pages/PagesHandler.js +21 -16
- package/src/handlers/pages/TranslationsHandler.js +24 -22
- package/src/handlers/pages/URLsHandler.js +7 -8
- package/src/index.js +3 -3
- package/src/routeArticlesModule.js +142 -0
- package/src/routeCollection.js +2 -2
- package/src/routeEventsModule.js +142 -0
- package/src/routeMember.js +2 -2
- package/src/routeNestedCollection.js +8 -2
- package/src/routeNestedMember.js +8 -2
- package/src/routePagesModule.js +155 -0
- package/src/routeStandard.js +6 -6
- package/src/tests/handlers/article_revisions/{PageRevisionsHandler.test → ArticleRevisionsHandler.test}/create.test.js +12 -3
- package/src/tests/handlers/article_revisions/{PageRevisionsHandler.test → ArticleRevisionsHandler.test}/destroy.test.js +8 -2
- package/src/tests/handlers/article_revisions/CodesHandler.test/update.test.js +12 -3
- package/src/tests/handlers/article_revisions/GeneralHandler.test/update.test.js +12 -3
- package/src/tests/handlers/article_revisions/MetaHandler.test/update.test.js +12 -3
- package/src/tests/handlers/article_revisions/PublishesHandler.test/create.test.js +8 -2
- package/src/tests/handlers/article_revisions/RevertsHandler.test/create.test.js +12 -3
- package/src/tests/handlers/article_revisions/TagHandler.test/update.test.js +12 -3
- package/src/tests/handlers/article_revisions/VisualHandler.test.test/update.test.js +12 -3
- package/src/tests/handlers/articles/ArticlesHandler.test/create.test.js +11 -5
- package/src/tests/handlers/articles/ArticlesHandler.test/create_form.test.js +5 -2
- package/src/tests/handlers/articles/ArticlesHandler.test/index.test.js +9 -2
- package/src/tests/handlers/articles/ArticlesHandler.test/show.test.js +9 -3
- package/src/tests/handlers/articles/{ConesHandler.test → ClonesHandler.test}/create.test.js +8 -2
- package/src/tests/handlers/articles/DeletesHandler.test/create.test.js +16 -6
- package/src/tests/handlers/articles/DeletesHandler.test/create_form.test.js +10 -3
- package/src/tests/handlers/articles/URLsHandler.test/create.test.js +20 -7
- package/src/tests/handlers/articles/URLsHandler.test/create_form.test.js +8 -2
- package/src/tests/handlers/event_revisions/CodesHandler.test/update.test.js +12 -3
- package/src/tests/handlers/event_revisions/{PageRevisionsHandler.test → EventRevisionsHandler.test}/create.test.js +12 -3
- package/src/tests/handlers/event_revisions/{PageRevisionsHandler.test → EventRevisionsHandler.test}/destroy.test.js +8 -2
- package/src/tests/handlers/event_revisions/GeneralHandler.test/update.test.js +12 -3
- package/src/tests/handlers/event_revisions/MetaHandler.test/update.test.js +12 -3
- package/src/tests/handlers/event_revisions/PublishesHandler.test/create.test.js +8 -2
- package/src/tests/handlers/event_revisions/RevertsHandler.test/create.test.js +12 -3
- package/src/tests/handlers/event_revisions/TagHandler.test/update.test.js +12 -3
- package/src/tests/handlers/event_revisions/VisualHandler.test.test/update.test.js +12 -3
- package/src/tests/handlers/events/{ConesHandler.test → ClonesHandler.test}/create.test.js +8 -2
- package/src/tests/handlers/events/DeletesHandler.test/create.test.js +16 -6
- package/src/tests/handlers/events/DeletesHandler.test/create_form.test.js +10 -3
- package/src/tests/handlers/events/EventsHandler.test/create.test.js +11 -5
- package/src/tests/handlers/events/EventsHandler.test/create_form.test.js +5 -2
- package/src/tests/handlers/events/EventsHandler.test/index.test.js +5 -2
- package/src/tests/handlers/events/EventsHandler.test/show.test.js +9 -3
- package/src/tests/handlers/events/URLsHandler.test/create.test.js +22 -9
- package/src/tests/handlers/events/URLsHandler.test/create_form.test.js +8 -2
- package/src/tests/handlers/page_revisions/CodesHandler.test/update.test.js +12 -3
- package/src/tests/handlers/page_revisions/GeneralHandler.test/update.test.js +12 -3
- package/src/tests/handlers/page_revisions/MetaHandler.test/update.test.js +12 -3
- package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/create.test.js +12 -3
- package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/destroy.test.js +8 -2
- package/src/tests/handlers/page_revisions/PublishesHandler.test/create.test.js +8 -2
- package/src/tests/handlers/page_revisions/RevertsHandler.test/create.test.js +12 -3
- package/src/tests/handlers/page_revisions/TagHandler.test/update.test.js +8 -2
- package/src/tests/handlers/page_revisions/VisualHandler.test.test/update.test.js +12 -3
- package/src/tests/handlers/pages/ConesHandler.test/create.test.js +8 -2
- package/src/tests/handlers/pages/DeletesHandler.test/create.test.js +16 -6
- package/src/tests/handlers/pages/DeletesHandler.test/create_form.test.js +10 -3
- package/src/tests/handlers/pages/PagesHandler.test/create.test.js +11 -5
- package/src/tests/handlers/pages/PagesHandler.test/create_form.test.js +1 -1
- package/src/tests/handlers/pages/PagesHandler.test/index.test.js +5 -2
- package/src/tests/handlers/pages/PagesHandler.test/show.test.js +9 -3
- package/src/tests/handlers/pages/URLsHandler.test/create.test.js +20 -7
- package/src/tests/handlers/pages/URLsHandler.test/create_form.test.js +8 -2
- package/src/tests/routeCollection.test.js +118 -105
- package/src/tests/routeMember.test.js +60 -54
- package/src/tests/routeNestedCollection.test.js +132 -126
- package/src/tests/routeNestedMember.test.js +60 -54
- package/src/views/articles/_form.ejs +17 -17
- package/src/views/articles/show.ejs +9 -9
- package/src/views/articles/translations/_form.ejs +3 -3
- package/src/views/articles/translations/create_form.ejs +6 -8
- package/src/views/events/_form.ejs +19 -19
- package/src/views/events/show.ejs +9 -9
- package/src/views/events/translations/_form.ejs +3 -3
- package/src/views/events/translations/create_form.ejs +7 -8
- package/src/views/pages/_form.ejs +16 -16
- package/src/views/pages/create_form.ejs +1 -1
- package/src/views/pages/show.ejs +9 -9
- package/src/views/pages/translations/_form.ejs +3 -3
- package/src/views/pages/translations/create_form.ejs +7 -9
- package/test/factory.js +3 -3
- package/test/handlersHelper.js +23 -1
- package/src/routeArticles.js +0 -65
- package/src/routeEvents.js +0 -55
- package/src/routePages.js +0 -55
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const create = async (ctx) => {
|
|
1
|
+
const create = async (ctx, opts) => {
|
|
2
2
|
const { parent_id } = ctx.params;
|
|
3
3
|
|
|
4
4
|
const { errors, pageErrors } = await ctx.client.pageRevisions.create(
|
|
@@ -15,11 +15,11 @@ const create = async (ctx) => {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
return {
|
|
18
|
-
redirect: `/${ctx.locale}
|
|
18
|
+
redirect: `/${ctx.locale}/${opts.pageTypePlural}/${parent_id}`,
|
|
19
19
|
};
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
-
const destroy = async (ctx) => {
|
|
22
|
+
const destroy = async (ctx, opts) => {
|
|
23
23
|
const { id } = ctx.params;
|
|
24
24
|
|
|
25
25
|
const { errors, revision } = await ctx.client.pageRevisions.delete(
|
|
@@ -35,7 +35,7 @@ const destroy = async (ctx) => {
|
|
|
35
35
|
|
|
36
36
|
return {
|
|
37
37
|
headers: {
|
|
38
|
-
"HX-Redirect": `/${ctx.locale}
|
|
38
|
+
"HX-Redirect": `/${ctx.locale}/${opts.pageTypePlural}/${revision.originalId}`,
|
|
39
39
|
},
|
|
40
40
|
json: {},
|
|
41
41
|
};
|
|
@@ -43,7 +43,7 @@ function publishPageParams(
|
|
|
43
43
|
return { visibility };
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
const create = async (ctx) => {
|
|
46
|
+
const create = async (ctx, opts) => {
|
|
47
47
|
const { parent_id } = ctx.params;
|
|
48
48
|
const publishing = ctx.resourceParams.publishing;
|
|
49
49
|
|
|
@@ -74,7 +74,7 @@ const create = async (ctx) => {
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
return {
|
|
77
|
-
redirect: `/${ctx.locale}
|
|
77
|
+
redirect: `/${ctx.locale}/${opts.pageTypePlural}/${revision.originalId}`,
|
|
78
78
|
};
|
|
79
79
|
};
|
|
80
80
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const create = async (ctx) => {
|
|
1
|
+
const create = async (ctx, opts) => {
|
|
2
2
|
const { parent_id } = ctx.params;
|
|
3
3
|
const { version } = ctx.resourceParams;
|
|
4
4
|
|
|
@@ -17,7 +17,7 @@ const create = async (ctx) => {
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
return {
|
|
20
|
-
redirect: `/${ctx.locale}
|
|
20
|
+
redirect: `/${ctx.locale}/${opts.pageTypePlural}/${parent_id}`,
|
|
21
21
|
};
|
|
22
22
|
};
|
|
23
23
|
|
|
@@ -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, opts) => {
|
|
29
29
|
const { parent_id } = ctx.params;
|
|
30
30
|
|
|
31
31
|
const revision = await ctx.client.pageRevisions.find(parent_id, ctx.locale);
|
|
@@ -70,7 +70,7 @@ const update = async (ctx) => {
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
return {
|
|
73
|
-
redirect: `/${ctx.locale}
|
|
73
|
+
redirect: `/${ctx.locale}/${opts.pageType}_revisions/${revision.id}/tags/edit`,
|
|
74
74
|
};
|
|
75
75
|
};
|
|
76
76
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const create = async (ctx) => {
|
|
1
|
+
const create = async (ctx, opts) => {
|
|
2
2
|
const { parent_id } = ctx.params;
|
|
3
3
|
|
|
4
4
|
const { revision, errors, pageErrors } =
|
|
@@ -13,7 +13,7 @@ const create = async (ctx) => {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
return {
|
|
16
|
-
redirect: `/${ctx.locale}
|
|
16
|
+
redirect: `/${ctx.locale}/${opts.pageTypePlural}/${revision.originalId}`,
|
|
17
17
|
};
|
|
18
18
|
};
|
|
19
19
|
|
|
@@ -22,7 +22,7 @@ const edit_form = async (ctx) => {
|
|
|
22
22
|
};
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
-
const update = async (ctx) => {
|
|
25
|
+
const update = async (ctx, opts) => {
|
|
26
26
|
const { parent_id } = ctx.params;
|
|
27
27
|
|
|
28
28
|
const revision = await ctx.client.pageRevisions.find(parent_id, ctx.locale);
|
|
@@ -67,7 +67,7 @@ const update = async (ctx) => {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
return {
|
|
70
|
-
redirect: `/${ctx.locale}
|
|
70
|
+
redirect: `/${ctx.locale}/${opts.pageType}_revisions/${revision.id}/visuals/edit`,
|
|
71
71
|
};
|
|
72
72
|
};
|
|
73
73
|
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
const create = async (ctx) => {
|
|
1
|
+
const create = async (ctx, opts) => {
|
|
2
2
|
const { parent_id } = ctx.params;
|
|
3
3
|
|
|
4
4
|
const { errors } = await ctx.client.pages.clone(parent_id, ctx.locale);
|
|
5
5
|
|
|
6
6
|
if (errors) {
|
|
7
|
-
throw new Error(
|
|
7
|
+
throw new Error(
|
|
8
|
+
`Error cloning ${opts.pageType}: ${JSON.stringify(errors)}`
|
|
9
|
+
);
|
|
8
10
|
}
|
|
9
11
|
|
|
10
12
|
return {
|
|
11
|
-
redirect: `/${ctx.locale}
|
|
13
|
+
redirect: `/${ctx.locale}/${opts.pageTypePlural}`,
|
|
12
14
|
};
|
|
13
15
|
};
|
|
14
16
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const create_form = async (ctx) => {
|
|
1
|
+
const create_form = async (ctx, opts) => {
|
|
2
2
|
const { parent_id } = ctx.params;
|
|
3
3
|
const page = await ctx.client.pages.find(parent_id, ctx.locale);
|
|
4
4
|
|
|
5
5
|
if (!page) {
|
|
6
|
-
throw new Error(`Missing
|
|
6
|
+
throw new Error(`Missing ${opts.pageType} #${parent_id}`);
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
return {
|
|
@@ -18,21 +18,20 @@ const create_form = async (ctx) => {
|
|
|
18
18
|
};
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
-
const create = async (ctx) => {
|
|
21
|
+
const create = async (ctx, opts) => {
|
|
22
22
|
const { parent_id } = ctx.params;
|
|
23
23
|
const params = ctx.resourceParams.deleteAction;
|
|
24
24
|
const page = await ctx.client.pages.find(parent_id, ctx.locale);
|
|
25
25
|
|
|
26
26
|
if (!page) {
|
|
27
|
-
throw new Error(`Missing
|
|
27
|
+
throw new Error(`Missing ${opts.pageType} #${parent_id}`);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
let redirect = null;
|
|
31
31
|
|
|
32
32
|
if (params.redirect === "301" || params.redirect === "410") {
|
|
33
33
|
redirect = {
|
|
34
|
-
|
|
35
|
-
url: `/${page.slug}`,
|
|
34
|
+
url: ctx.remoteConfig.resourcePath(page, page.pageType.slug, ctx.locale),
|
|
36
35
|
destination: params.redirect === "301" ? params.destination : "/",
|
|
37
36
|
httpResponseCode: Number.parseInt(params.redirect, 10),
|
|
38
37
|
note: "Created via page deletion process",
|
|
@@ -58,7 +57,7 @@ const create = async (ctx) => {
|
|
|
58
57
|
}
|
|
59
58
|
|
|
60
59
|
return {
|
|
61
|
-
redirect: `/${ctx.locale}
|
|
60
|
+
redirect: `/${ctx.locale}/${opts.pageTypePlural}`,
|
|
62
61
|
};
|
|
63
62
|
};
|
|
64
63
|
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
const index = async (ctx) => {
|
|
2
|
-
const items = await ctx.client.pages.list(
|
|
1
|
+
const index = async (ctx, opts) => {
|
|
2
|
+
const items = await ctx.client.pages.list(
|
|
3
|
+
ctx.query,
|
|
4
|
+
ctx.locale,
|
|
5
|
+
opts.pageType
|
|
6
|
+
);
|
|
7
|
+
|
|
3
8
|
const tags = await ctx.client.tags.all(ctx.locale);
|
|
4
9
|
|
|
5
10
|
return {
|
|
@@ -11,12 +16,12 @@ const index = async (ctx) => {
|
|
|
11
16
|
};
|
|
12
17
|
};
|
|
13
18
|
|
|
14
|
-
const show = async (ctx) => {
|
|
19
|
+
const show = async (ctx, opts) => {
|
|
15
20
|
const { id } = ctx.params;
|
|
16
|
-
const
|
|
21
|
+
const resource = await ctx.client.pages.find(id, ctx.locale);
|
|
17
22
|
|
|
18
|
-
if (!
|
|
19
|
-
throw new Error(`Missing
|
|
23
|
+
if (!resource) {
|
|
24
|
+
throw new Error(`Missing ${opts.pageType} #${id}`);
|
|
20
25
|
}
|
|
21
26
|
|
|
22
27
|
const revisions = await ctx.client.pageRevisions.all(id, ctx.locale);
|
|
@@ -24,17 +29,17 @@ const show = async (ctx) => {
|
|
|
24
29
|
|
|
25
30
|
return {
|
|
26
31
|
assigns: {
|
|
27
|
-
|
|
32
|
+
resource,
|
|
28
33
|
revisions: revisions.list,
|
|
29
34
|
changes: changes.list,
|
|
30
35
|
_translations: Object.keys(ctx.locales)
|
|
31
36
|
.map((locale) => {
|
|
32
|
-
const translation =
|
|
37
|
+
const translation = resource.translations[locale];
|
|
33
38
|
|
|
34
39
|
if (translation) {
|
|
35
40
|
return {
|
|
36
41
|
locale,
|
|
37
|
-
path: `/${locale}
|
|
42
|
+
path: `/${locale}/${opts.pageTypePlural}/${translation.id}`,
|
|
38
43
|
};
|
|
39
44
|
}
|
|
40
45
|
|
|
@@ -50,7 +55,7 @@ const create_form = async (ctx) => {
|
|
|
50
55
|
|
|
51
56
|
return {
|
|
52
57
|
assigns: {
|
|
53
|
-
|
|
58
|
+
resource: { ...ctx.client.pages.defaults(), meta_image: {} },
|
|
54
59
|
tags: tags.list,
|
|
55
60
|
errors: {},
|
|
56
61
|
visibilityOptions: ctx.client.pages.visibilityOptions(),
|
|
@@ -59,8 +64,8 @@ const create_form = async (ctx) => {
|
|
|
59
64
|
};
|
|
60
65
|
};
|
|
61
66
|
|
|
62
|
-
const create = async (ctx) => {
|
|
63
|
-
const params = { ...ctx.resourceParams.
|
|
67
|
+
const create = async (ctx, opts) => {
|
|
68
|
+
const params = { ...ctx.resourceParams.resource };
|
|
64
69
|
|
|
65
70
|
params.meta_image = JSON.parse(params.meta_image || "{}");
|
|
66
71
|
|
|
@@ -86,7 +91,7 @@ const create = async (ctx) => {
|
|
|
86
91
|
categories: params.categories || [],
|
|
87
92
|
},
|
|
88
93
|
ctx.locale,
|
|
89
|
-
|
|
94
|
+
opts.pageType
|
|
90
95
|
);
|
|
91
96
|
|
|
92
97
|
if (errors) {
|
|
@@ -94,9 +99,9 @@ const create = async (ctx) => {
|
|
|
94
99
|
|
|
95
100
|
return {
|
|
96
101
|
assigns: {
|
|
97
|
-
|
|
102
|
+
resource: params,
|
|
98
103
|
tags: tags.list,
|
|
99
|
-
errors: {
|
|
104
|
+
errors: { resource: ctx.client.pages.formatErrors(errors) },
|
|
100
105
|
visibilityOptions: ctx.client.pages.visibilityOptions(),
|
|
101
106
|
_translations: [],
|
|
102
107
|
},
|
|
@@ -104,7 +109,7 @@ const create = async (ctx) => {
|
|
|
104
109
|
}
|
|
105
110
|
|
|
106
111
|
return {
|
|
107
|
-
redirect: `/${ctx.locale}
|
|
112
|
+
redirect: `/${ctx.locale}/${opts.pageTypePlural}`,
|
|
108
113
|
};
|
|
109
114
|
};
|
|
110
115
|
|
|
@@ -1,32 +1,31 @@
|
|
|
1
1
|
const create_form = async (ctx) => {
|
|
2
|
-
// const tags = await ctx.client.tags.all(ctx.locale);
|
|
3
2
|
const { target_locale } = ctx.query;
|
|
4
3
|
const target_locate_tags = await ctx.client.tags.all(target_locale);
|
|
5
4
|
|
|
6
5
|
const { parent_id } = ctx.params;
|
|
7
|
-
const
|
|
6
|
+
const blueprint_resource = await ctx.client.pages.find(parent_id, ctx.locale);
|
|
8
7
|
|
|
9
8
|
const translation = {
|
|
10
|
-
title:
|
|
11
|
-
slug:
|
|
12
|
-
visibility:
|
|
13
|
-
layout:
|
|
14
|
-
meta_title:
|
|
15
|
-
meta_description:
|
|
16
|
-
meta_image:
|
|
17
|
-
username:
|
|
18
|
-
password:
|
|
9
|
+
title: blueprint_resource.title,
|
|
10
|
+
slug: blueprint_resource.slug,
|
|
11
|
+
visibility: blueprint_resource.visibility,
|
|
12
|
+
layout: blueprint_resource.settings.layout,
|
|
13
|
+
meta_title: blueprint_resource.settings.meta.title,
|
|
14
|
+
meta_description: blueprint_resource.settings.meta.description,
|
|
15
|
+
meta_image: blueprint_resource.settings.meta?.image || {},
|
|
16
|
+
username: blueprint_resource.settings.credentials?.user || "",
|
|
17
|
+
password: blueprint_resource.settings.credentials?.password || "",
|
|
19
18
|
tags: [],
|
|
20
|
-
// categories:
|
|
19
|
+
// categories: blueprint_resource.categories, # TODO: this will be added later?
|
|
21
20
|
};
|
|
22
21
|
|
|
23
22
|
return {
|
|
24
23
|
assigns: {
|
|
25
|
-
|
|
24
|
+
resource: blueprint_resource,
|
|
26
25
|
translation: translation,
|
|
27
26
|
targetLocale: target_locale,
|
|
28
27
|
tags: target_locate_tags.list,
|
|
29
|
-
blueprint_tags:
|
|
28
|
+
blueprint_tags: blueprint_resource.tags,
|
|
30
29
|
errors: {},
|
|
31
30
|
visibilityOptions: ctx.client.pages.visibilityOptions(),
|
|
32
31
|
_translations: [],
|
|
@@ -34,12 +33,12 @@ const create_form = async (ctx) => {
|
|
|
34
33
|
};
|
|
35
34
|
};
|
|
36
35
|
|
|
37
|
-
const create = async (ctx) => {
|
|
36
|
+
const create = async (ctx, opts) => {
|
|
38
37
|
const { parent_id } = ctx.params;
|
|
39
|
-
const
|
|
38
|
+
const blueprint_resource = await ctx.client.pages.find(parent_id, ctx.locale);
|
|
40
39
|
|
|
41
40
|
const { target_locale } = ctx.resourceParams;
|
|
42
|
-
const translation = { ...ctx.translation };
|
|
41
|
+
const translation = { ...ctx.resourceParams.translation };
|
|
43
42
|
|
|
44
43
|
translation.meta_image = JSON.parse(translation.meta_image || "{}");
|
|
45
44
|
|
|
@@ -51,7 +50,7 @@ const create = async (ctx) => {
|
|
|
51
50
|
slug: translation.slug,
|
|
52
51
|
visibility: translation.visibility,
|
|
53
52
|
settings: {
|
|
54
|
-
...
|
|
53
|
+
...blueprint_resource.settings,
|
|
55
54
|
layout: translation.layout,
|
|
56
55
|
meta: {
|
|
57
56
|
title: translation.meta_title,
|
|
@@ -63,16 +62,18 @@ const create = async (ctx) => {
|
|
|
63
62
|
password: translation.password || "",
|
|
64
63
|
},
|
|
65
64
|
},
|
|
66
|
-
widgets:
|
|
65
|
+
widgets: blueprint_resource.widgets,
|
|
67
66
|
tags: translation.tags || [],
|
|
68
|
-
categories:
|
|
67
|
+
categories: blueprint_resource.categories.map((category) => category.id),
|
|
69
68
|
}
|
|
70
69
|
);
|
|
70
|
+
|
|
71
71
|
if (errors) {
|
|
72
72
|
const tags = await ctx.client.tags.all(target_locale);
|
|
73
|
+
|
|
73
74
|
return {
|
|
74
75
|
assigns: {
|
|
75
|
-
|
|
76
|
+
resource: blueprint_resource,
|
|
76
77
|
translation: translation,
|
|
77
78
|
targetLocale: translation.target_locate,
|
|
78
79
|
tags: tags.list,
|
|
@@ -82,8 +83,9 @@ const create = async (ctx) => {
|
|
|
82
83
|
},
|
|
83
84
|
};
|
|
84
85
|
}
|
|
86
|
+
|
|
85
87
|
return {
|
|
86
|
-
redirect: `/${ctx.locale}
|
|
88
|
+
redirect: `/${ctx.locale}/${opts.pageTypePlural}/${parent_id}`,
|
|
87
89
|
};
|
|
88
90
|
};
|
|
89
91
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const create_form = async (ctx) => {
|
|
1
|
+
const create_form = async (ctx, opts) => {
|
|
2
2
|
const { parent_id } = ctx.params;
|
|
3
3
|
const page = await ctx.client.pages.find(parent_id, ctx.locale);
|
|
4
4
|
|
|
5
5
|
if (!page) {
|
|
6
|
-
throw new Error(`Cannot find
|
|
6
|
+
throw new Error(`Cannot find ${opts.pageType} with id ${parent_id}`);
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
return {
|
|
@@ -19,25 +19,24 @@ const create_form = async (ctx) => {
|
|
|
19
19
|
};
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
-
const create = async (ctx) => {
|
|
22
|
+
const create = async (ctx, opts) => {
|
|
23
23
|
const { parent_id } = ctx.params;
|
|
24
24
|
const change = ctx.resourceParams.change;
|
|
25
25
|
|
|
26
26
|
const page = await ctx.client.pages.find(parent_id, ctx.locale);
|
|
27
27
|
|
|
28
28
|
if (!page) {
|
|
29
|
-
throw new Error(`Cannot find
|
|
29
|
+
throw new Error(`Cannot find ${opts.pageType} with id ${parent_id}`);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
let redirectParams = null;
|
|
33
33
|
|
|
34
34
|
if (change.redirect) {
|
|
35
35
|
redirectParams = {
|
|
36
|
-
|
|
37
|
-
url: `/${page.slug}`,
|
|
36
|
+
url: ctx.remoteConfig.resourcePath(page, page.pageType.slug, ctx.locale),
|
|
38
37
|
destination: change.slug,
|
|
39
38
|
httpResponseCode: 301,
|
|
40
|
-
note:
|
|
39
|
+
note: `Created with changed URL for a ${opts.pageType}`,
|
|
41
40
|
};
|
|
42
41
|
}
|
|
43
42
|
|
|
@@ -59,7 +58,7 @@ const create = async (ctx) => {
|
|
|
59
58
|
}
|
|
60
59
|
|
|
61
60
|
return {
|
|
62
|
-
redirect: `/${ctx.locale}
|
|
61
|
+
redirect: `/${ctx.locale}/${opts.pageTypePlural}/${parent_id}`,
|
|
63
62
|
};
|
|
64
63
|
};
|
|
65
64
|
|
package/src/index.js
CHANGED
|
@@ -4,9 +4,9 @@ export { default as routeNestedCollection } from "./routeNestedCollection";
|
|
|
4
4
|
export { default as routeMember } from "./routeMember";
|
|
5
5
|
export { default as routeNestedMember } from "./routeNestedMember";
|
|
6
6
|
export { default as setGlobalContext } from "./setGlobalContext";
|
|
7
|
-
export { default as
|
|
8
|
-
export { default as
|
|
9
|
-
export { default as
|
|
7
|
+
export { default as routePagesModule } from "./routePagesModule";
|
|
8
|
+
export { default as routeArticlesModule } from "./routeArticlesModule";
|
|
9
|
+
export { default as routeEventsModule } from "./routeEventsModule";
|
|
10
10
|
export { default as routeSettings } from "./routeSettings";
|
|
11
11
|
export { default as setupCloud } from "./setupCloud";
|
|
12
12
|
export { default as routeStandard } from "./routeStandard";
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import routeCollection from "./routeCollection";
|
|
2
|
+
import routeNestedCollection from "./routeNestedCollection";
|
|
3
|
+
import routeNestedMember from "./routeNestedMember";
|
|
4
|
+
import TranslationsHandler from "./handlers/articles/TranslationsHandler";
|
|
5
|
+
import ArticleRevisionsHandler from "./handlers/article_revisions/ArticleRevisionsHandler";
|
|
6
|
+
import GeneralHandler from "./handlers/article_revisions/GeneralHandler";
|
|
7
|
+
import VisualHandler from "./handlers/article_revisions/VisualHandler";
|
|
8
|
+
import CodeHandler from "./handlers/article_revisions/CodeHandler";
|
|
9
|
+
import MetaHandler from "./handlers/article_revisions/MetaHandler";
|
|
10
|
+
import TagHandler from "./handlers/article_revisions/TagHandler";
|
|
11
|
+
import LocksHandler from "./handlers/article_revisions/LocksHandler";
|
|
12
|
+
import UnlocksHandler from "./handlers/article_revisions/UnlocksHandler";
|
|
13
|
+
import ClonesHandler from "./handlers/articles/ClonesHandler";
|
|
14
|
+
import URLsHandler from "./handlers/articles/URLsHandler";
|
|
15
|
+
import DeletesHandler from "./handlers/articles/DeletesHandler";
|
|
16
|
+
import RevertsHandler from "./handlers/article_revisions/RevertsHandler";
|
|
17
|
+
import PublishesHandler from "./handlers/article_revisions/PublishesHandler";
|
|
18
|
+
import WidgetHandler from "./handlers/article_revisions/WidgetHandler";
|
|
19
|
+
import ArticlesHandler from "./handlers/articles/ArticlesHandler";
|
|
20
|
+
|
|
21
|
+
function routeArticlesModule(
|
|
22
|
+
adapter,
|
|
23
|
+
articleType = "article",
|
|
24
|
+
articleTypePlural = "articles"
|
|
25
|
+
) {
|
|
26
|
+
const baseResource = articleTypePlural;
|
|
27
|
+
const revisionsBaseResource = `${articleType}_revisions`;
|
|
28
|
+
|
|
29
|
+
const handlerOpts = {
|
|
30
|
+
articleType,
|
|
31
|
+
articleTypePlural,
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
routeCollection(adapter, baseResource, ArticlesHandler, handlerOpts);
|
|
35
|
+
routeNestedCollection(
|
|
36
|
+
adapter,
|
|
37
|
+
baseResource,
|
|
38
|
+
"translations",
|
|
39
|
+
TranslationsHandler,
|
|
40
|
+
handlerOpts
|
|
41
|
+
);
|
|
42
|
+
routeNestedCollection(
|
|
43
|
+
adapter,
|
|
44
|
+
baseResource,
|
|
45
|
+
revisionsBaseResource,
|
|
46
|
+
ArticleRevisionsHandler,
|
|
47
|
+
handlerOpts
|
|
48
|
+
);
|
|
49
|
+
routeNestedMember(
|
|
50
|
+
adapter,
|
|
51
|
+
revisionsBaseResource,
|
|
52
|
+
"general",
|
|
53
|
+
GeneralHandler,
|
|
54
|
+
handlerOpts
|
|
55
|
+
);
|
|
56
|
+
routeNestedMember(
|
|
57
|
+
adapter,
|
|
58
|
+
revisionsBaseResource,
|
|
59
|
+
"visuals",
|
|
60
|
+
VisualHandler,
|
|
61
|
+
handlerOpts
|
|
62
|
+
);
|
|
63
|
+
routeNestedMember(
|
|
64
|
+
adapter,
|
|
65
|
+
revisionsBaseResource,
|
|
66
|
+
"codes",
|
|
67
|
+
CodeHandler,
|
|
68
|
+
handlerOpts
|
|
69
|
+
);
|
|
70
|
+
routeNestedMember(
|
|
71
|
+
adapter,
|
|
72
|
+
revisionsBaseResource,
|
|
73
|
+
"meta",
|
|
74
|
+
MetaHandler,
|
|
75
|
+
handlerOpts
|
|
76
|
+
);
|
|
77
|
+
routeNestedMember(
|
|
78
|
+
adapter,
|
|
79
|
+
revisionsBaseResource,
|
|
80
|
+
"tags",
|
|
81
|
+
TagHandler,
|
|
82
|
+
handlerOpts
|
|
83
|
+
);
|
|
84
|
+
routeNestedCollection(
|
|
85
|
+
adapter,
|
|
86
|
+
revisionsBaseResource,
|
|
87
|
+
"locks",
|
|
88
|
+
LocksHandler,
|
|
89
|
+
handlerOpts
|
|
90
|
+
);
|
|
91
|
+
routeNestedCollection(
|
|
92
|
+
adapter,
|
|
93
|
+
revisionsBaseResource,
|
|
94
|
+
"unlocks",
|
|
95
|
+
UnlocksHandler,
|
|
96
|
+
handlerOpts
|
|
97
|
+
);
|
|
98
|
+
routeNestedCollection(
|
|
99
|
+
adapter,
|
|
100
|
+
baseResource,
|
|
101
|
+
"clones",
|
|
102
|
+
ClonesHandler,
|
|
103
|
+
handlerOpts
|
|
104
|
+
);
|
|
105
|
+
routeNestedCollection(
|
|
106
|
+
adapter,
|
|
107
|
+
baseResource,
|
|
108
|
+
"urls",
|
|
109
|
+
URLsHandler,
|
|
110
|
+
handlerOpts
|
|
111
|
+
);
|
|
112
|
+
routeNestedCollection(
|
|
113
|
+
adapter,
|
|
114
|
+
baseResource,
|
|
115
|
+
"deletes",
|
|
116
|
+
DeletesHandler,
|
|
117
|
+
handlerOpts
|
|
118
|
+
);
|
|
119
|
+
routeNestedCollection(
|
|
120
|
+
adapter,
|
|
121
|
+
baseResource,
|
|
122
|
+
`${articleType}_changes/reverts`,
|
|
123
|
+
RevertsHandler,
|
|
124
|
+
handlerOpts
|
|
125
|
+
);
|
|
126
|
+
routeNestedCollection(
|
|
127
|
+
adapter,
|
|
128
|
+
revisionsBaseResource,
|
|
129
|
+
"publishes",
|
|
130
|
+
PublishesHandler,
|
|
131
|
+
handlerOpts
|
|
132
|
+
);
|
|
133
|
+
routeNestedMember(
|
|
134
|
+
adapter,
|
|
135
|
+
`api/${revisionsBaseResource}`,
|
|
136
|
+
"widgets",
|
|
137
|
+
WidgetHandler,
|
|
138
|
+
handlerOpts
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
export default routeArticlesModule;
|
package/src/routeCollection.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const routeCollection = (adapter, resource, handler) => {
|
|
1
|
+
const routeCollection = (adapter, resource, handler, handlerOpts = {}) => {
|
|
2
2
|
const {
|
|
3
3
|
before_filter,
|
|
4
4
|
after_filter,
|
|
@@ -84,7 +84,7 @@ const routeCollection = (adapter, resource, handler) => {
|
|
|
84
84
|
],
|
|
85
85
|
];
|
|
86
86
|
|
|
87
|
-
adapter.routeCollection(mapping);
|
|
87
|
+
adapter.routeCollection(mapping, handlerOpts);
|
|
88
88
|
};
|
|
89
89
|
|
|
90
90
|
export default routeCollection;
|