@raketa-cloud/admin 0.0.30 → 0.0.31
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/cloud/ArticleRevisions.js +30 -1
- package/src/cloud/Articles.js +22 -9
- package/src/cloud/EventRevisions.js +40 -1
- package/src/cloud/Events.js +32 -11
- package/src/cloud/PageRevisions.js +20 -1
- package/src/cloud/Pages.js +13 -7
- package/src/cloud/RaketaClient.js +76 -0
- package/src/handlers/article_revisions/CodeHandler.js +18 -34
- package/src/handlers/article_revisions/GeneralHandler.js +19 -38
- package/src/handlers/article_revisions/LocksHandler.js +11 -6
- package/src/handlers/article_revisions/MetaHandler.js +18 -34
- package/src/handlers/article_revisions/TagHandler.js +23 -29
- package/src/handlers/article_revisions/UnlocksHandler.js +1 -1
- package/src/handlers/article_revisions/VisualHandler.js +18 -28
- package/src/handlers/articles/ArticlesHandler.js +11 -25
- package/src/handlers/articles/DeletesHandler.js +4 -4
- package/src/handlers/articles/TranslationsHandler.js +30 -56
- package/src/handlers/articles/URLsHandler.js +7 -7
- package/src/handlers/event_revisions/CodeHandler.js +22 -36
- package/src/handlers/event_revisions/GeneralHandler.js +22 -42
- package/src/handlers/event_revisions/LocksHandler.js +7 -6
- package/src/handlers/event_revisions/MetaHandler.js +22 -36
- package/src/handlers/event_revisions/TagHandler.js +25 -29
- package/src/handlers/event_revisions/VisualHandler.js +22 -30
- package/src/handlers/events/DeletesHandler.js +4 -4
- package/src/handlers/events/EventsHandler.js +13 -27
- package/src/handlers/events/TranslationsHandler.js +35 -58
- package/src/handlers/events/URLsHandler.js +7 -7
- package/src/handlers/page_revisions/CodeHandler.js +8 -34
- package/src/handlers/page_revisions/GeneralHandler.js +10 -37
- package/src/handlers/page_revisions/LocksHandler.js +11 -6
- package/src/handlers/page_revisions/MetaHandler.js +8 -34
- package/src/handlers/page_revisions/TagHandler.js +16 -27
- package/src/handlers/page_revisions/VisualHandler.js +8 -28
- package/src/handlers/pages/DeletesHandler.js +4 -4
- package/src/handlers/pages/PagesHandler.js +7 -24
- package/src/handlers/pages/TranslationsHandler.js +23 -45
- package/src/handlers/pages/URLsHandler.js +7 -7
- package/src/helpers/FormBuilder.js +1 -2
- package/src/tests/handlers/RedirectsHandler.test/create.test.js +1 -1
- package/src/tests/handlers/RedirectsHandler.test/create_form.test.js +1 -1
- package/src/tests/handlers/RedirectsHandler.test/destroy.test.js +1 -1
- package/src/tests/handlers/RedirectsHandler.test/edit_form.test.js +1 -1
- package/src/tests/handlers/RedirectsHandler.test/index.test.js +1 -1
- package/src/tests/handlers/RedirectsHandler.test/show.test.js +1 -1
- package/src/tests/handlers/RedirectsHandler.test/update.test.js +1 -1
- package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/create.test.js +1 -1
- package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/destroy.test.js +1 -1
- package/src/tests/handlers/article_revisions/CodesHandler.test/edit_form.test.js +7 -7
- package/src/tests/handlers/article_revisions/CodesHandler.test/update.test.js +37 -19
- package/src/tests/handlers/article_revisions/GeneralHandler.test/edit_form.test.js +5 -11
- package/src/tests/handlers/article_revisions/GeneralHandler.test/update.test.js +36 -28
- package/src/tests/handlers/article_revisions/MetaHandler.test/edit_form.test.js +7 -8
- package/src/tests/handlers/article_revisions/MetaHandler.test/update.test.js +41 -25
- package/src/tests/handlers/article_revisions/PublishesHandler.test/create.test.js +2 -2
- package/src/tests/handlers/article_revisions/PublishesHandler.test/create_form.test.js +2 -2
- package/src/tests/handlers/article_revisions/RevertsHandler.test/create.test.js +1 -1
- package/src/tests/handlers/article_revisions/TagHandler.test/edit_form.test.js +10 -7
- package/src/tests/handlers/article_revisions/TagHandler.test/update.test.js +20 -14
- package/src/tests/handlers/article_revisions/VisualHandler.test.test/edit_form.test.js +7 -6
- package/src/tests/handlers/article_revisions/VisualHandler.test.test/update.test.js +30 -19
- package/src/tests/handlers/article_revisions/WidgetHandler.test/show.test.js +2 -2
- package/src/tests/handlers/article_revisions/WidgetHandler.test/update.test.js +2 -2
- package/src/tests/handlers/articles/ArticlesHandler.test/create.test.js +53 -29
- package/src/tests/handlers/articles/ArticlesHandler.test/create_form.test.js +3 -3
- package/src/tests/handlers/articles/ArticlesHandler.test/index.test.js +2 -2
- package/src/tests/handlers/articles/ArticlesHandler.test/show.test.js +3 -3
- package/src/tests/handlers/articles/ClonesHandler.test/create.test.js +1 -1
- package/src/tests/handlers/articles/DeletesHandler.test/create.test.js +4 -4
- package/src/tests/handlers/articles/DeletesHandler.test/create_form.test.js +2 -2
- package/src/tests/handlers/articles/URLsHandler.test/create.test.js +6 -6
- package/src/tests/handlers/articles/URLsHandler.test/create_form.test.js +2 -2
- package/src/tests/handlers/event_revisions/CodesHandler.test/edit_form.test.js +11 -7
- package/src/tests/handlers/event_revisions/CodesHandler.test/update.test.js +43 -19
- package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/create.test.js +1 -1
- package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/destroy.test.js +1 -1
- package/src/tests/handlers/event_revisions/GeneralHandler.test/edit_form.test.js +7 -13
- package/src/tests/handlers/event_revisions/GeneralHandler.test/update.test.js +42 -32
- package/src/tests/handlers/event_revisions/MetaHandler.test/edit_form.test.js +11 -8
- package/src/tests/handlers/event_revisions/MetaHandler.test/update.test.js +47 -25
- package/src/tests/handlers/event_revisions/PublishesHandler.test/create.test.js +2 -2
- package/src/tests/handlers/event_revisions/PublishesHandler.test/create_form.test.js +2 -2
- package/src/tests/handlers/event_revisions/RevertsHandler.test/create.test.js +1 -1
- package/src/tests/handlers/event_revisions/TagHandler.test/edit_form.test.js +14 -7
- package/src/tests/handlers/event_revisions/TagHandler.test/update.test.js +26 -14
- package/src/tests/handlers/event_revisions/VisualHandler.test.test/edit_form.test.js +11 -6
- package/src/tests/handlers/event_revisions/VisualHandler.test.test/update.test.js +36 -19
- package/src/tests/handlers/event_revisions/WidgetHandler.test/show.test.js +2 -2
- package/src/tests/handlers/event_revisions/WidgetHandler.test/update.test.js +2 -2
- package/src/tests/handlers/events/ClonesHandler.test/create.test.js +1 -1
- package/src/tests/handlers/events/DeletesHandler.test/create.test.js +4 -4
- package/src/tests/handlers/events/DeletesHandler.test/create_form.test.js +2 -2
- package/src/tests/handlers/events/EventsHandler.test/create.test.js +53 -37
- package/src/tests/handlers/events/EventsHandler.test/create_form.test.js +3 -3
- package/src/tests/handlers/events/EventsHandler.test/index.test.js +2 -2
- package/src/tests/handlers/events/EventsHandler.test/show.test.js +3 -3
- package/src/tests/handlers/events/URLsHandler.test/create.test.js +6 -6
- package/src/tests/handlers/events/URLsHandler.test/create_form.test.js +2 -2
- package/src/tests/handlers/page_revisions/CodesHandler.test/edit_form.test.js +10 -8
- package/src/tests/handlers/page_revisions/CodesHandler.test/update.test.js +30 -17
- package/src/tests/handlers/page_revisions/GeneralHandler.test/edit_form.test.js +3 -11
- package/src/tests/handlers/page_revisions/GeneralHandler.test/update.test.js +38 -22
- package/src/tests/handlers/page_revisions/MetaHandler.test/edit_form.test.js +2 -8
- package/src/tests/handlers/page_revisions/MetaHandler.test/update.test.js +37 -23
- package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/create.test.js +1 -1
- package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/destroy.test.js +1 -1
- package/src/tests/handlers/page_revisions/PublishesHandler.test/create.test.js +2 -2
- package/src/tests/handlers/page_revisions/PublishesHandler.test/create_form.test.js +2 -2
- package/src/tests/handlers/page_revisions/RevertsHandler.test/create.test.js +1 -1
- package/src/tests/handlers/page_revisions/TagHandler.test/edit_form.test.js +3 -7
- package/src/tests/handlers/page_revisions/TagHandler.test/update.test.js +11 -12
- package/src/tests/handlers/page_revisions/VisualHandler.test.test/edit_form.test.js +10 -7
- package/src/tests/handlers/page_revisions/VisualHandler.test.test/update.test.js +23 -17
- package/src/tests/handlers/page_revisions/WidgetHandler.test/show.test.js +2 -2
- package/src/tests/handlers/page_revisions/WidgetHandler.test/update.test.js +2 -2
- package/src/tests/handlers/pages/ConesHandler.test/create.test.js +1 -1
- package/src/tests/handlers/pages/DeletesHandler.test/create.test.js +4 -4
- package/src/tests/handlers/pages/DeletesHandler.test/create_form.test.js +2 -2
- package/src/tests/handlers/pages/PagesHandler.test/create.test.js +50 -27
- package/src/tests/handlers/pages/PagesHandler.test/create_form.test.js +3 -3
- package/src/tests/handlers/pages/PagesHandler.test/index.test.js +2 -2
- package/src/tests/handlers/pages/PagesHandler.test/show.test.js +3 -3
- package/src/tests/handlers/pages/URLsHandler.test/create.test.js +6 -6
- package/src/tests/handlers/pages/URLsHandler.test/create_form.test.js +2 -2
- package/src/utils.js +12 -0
- package/src/views/_shared/_credentials_input.ejs +31 -0
- package/src/views/_shared/_layout_input.ejs +5 -0
- package/src/views/article_revisions/_nav.ejs +5 -5
- package/src/views/article_revisions/codes/edit_form.ejs +17 -6
- package/src/views/article_revisions/general/edit_form.ejs +10 -36
- package/src/views/article_revisions/locks/create_form.ejs +4 -4
- package/src/views/article_revisions/meta/edit_form.ejs +7 -7
- package/src/views/article_revisions/tags/edit_form.ejs +5 -5
- package/src/views/article_revisions/visuals/edit_form.ejs +5 -9
- package/src/views/articles/_form.ejs +6 -37
- package/src/views/articles/deletes/create_form.ejs +9 -9
- package/src/views/articles/translations/_form.ejs +14 -46
- package/src/views/articles/urls/create_form.ejs +5 -5
- package/src/views/event_revisions/_nav.ejs +5 -5
- package/src/views/event_revisions/codes/edit_form.ejs +17 -6
- package/src/views/event_revisions/general/edit_form.ejs +12 -38
- package/src/views/event_revisions/locks/create_form.ejs +4 -4
- package/src/views/event_revisions/meta/edit_form.ejs +7 -7
- package/src/views/event_revisions/tags/edit_form.ejs +5 -5
- package/src/views/event_revisions/visuals/edit_form.ejs +5 -9
- package/src/views/events/_form.ejs +8 -39
- package/src/views/events/deletes/create_form.ejs +9 -9
- package/src/views/events/translations/_form.ejs +16 -47
- package/src/views/events/urls/create_form.ejs +5 -5
- package/src/views/layouts/application.ejs +57 -35
- package/src/views/page_revisions/_nav.ejs +5 -5
- package/src/views/page_revisions/codes/edit_form.ejs +17 -6
- package/src/views/page_revisions/general/edit_form.ejs +8 -35
- package/src/views/page_revisions/locks/create_form.ejs +4 -4
- package/src/views/page_revisions/meta/edit_form.ejs +7 -7
- package/src/views/page_revisions/publishes/_form.ejs +9 -9
- package/src/views/page_revisions/tags/edit_form.ejs +5 -5
- package/src/views/page_revisions/visuals/edit_form.ejs +5 -9
- package/src/views/pages/_form.ejs +5 -36
- package/src/views/pages/deletes/create_form.ejs +9 -9
- package/src/views/pages/translations/_form.ejs +13 -45
- package/src/views/pages/urls/create_form.ejs +5 -5
package/package.json
CHANGED
|
@@ -11,8 +11,32 @@ import {
|
|
|
11
11
|
UpdateArticleWidgetsDocument,
|
|
12
12
|
ReopenArticleChangeDocument,
|
|
13
13
|
} from "./documents/articlesDocuments";
|
|
14
|
+
import { toUTCISO8601String } from "../utils";
|
|
14
15
|
|
|
15
16
|
export default class ArticleRevisions extends RaketaClient {
|
|
17
|
+
selectUpdateParams(revision) {
|
|
18
|
+
return {
|
|
19
|
+
title: revision.title,
|
|
20
|
+
slug: revision.slug,
|
|
21
|
+
publishAt: revision.publishAt,
|
|
22
|
+
widgets: [...revision.widgets],
|
|
23
|
+
settings: {
|
|
24
|
+
...revision.settings,
|
|
25
|
+
},
|
|
26
|
+
visibility: revision.visibility,
|
|
27
|
+
tags: revision.tags.map((t) => (t.id ? t.id : t)),
|
|
28
|
+
categories: revision.categories.map((c) => (c.id ? c.id : c)),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
formatDates(params) {
|
|
33
|
+
if (params.publishAt) {
|
|
34
|
+
params.publishAt = toUTCISO8601String(params.publishAt);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return { ...params };
|
|
38
|
+
}
|
|
39
|
+
|
|
16
40
|
async all(articleId, locale) {
|
|
17
41
|
const { articleRevisions: items } = await this.query(
|
|
18
42
|
ArticleRevisionsDocument,
|
|
@@ -69,13 +93,18 @@ export default class ArticleRevisions extends RaketaClient {
|
|
|
69
93
|
}
|
|
70
94
|
|
|
71
95
|
async update(id, locale, params) {
|
|
96
|
+
const copyParams = { ...params };
|
|
97
|
+
|
|
98
|
+
copyParams.widgets = JSON.stringify(params.widgets || []);
|
|
99
|
+
copyParams.settings = JSON.stringify(params.settings || {});
|
|
100
|
+
|
|
72
101
|
const {
|
|
73
102
|
updateArticle: { errors, article },
|
|
74
103
|
} = await this.query(UpdateArticleDocument, {
|
|
75
104
|
input: {
|
|
76
105
|
id,
|
|
77
106
|
locale,
|
|
78
|
-
article:
|
|
107
|
+
article: copyParams,
|
|
79
108
|
},
|
|
80
109
|
});
|
|
81
110
|
|
package/src/cloud/Articles.js
CHANGED
|
@@ -8,19 +8,30 @@ import {
|
|
|
8
8
|
TranslateArticleDocument,
|
|
9
9
|
ChangeArticleSlugDocument,
|
|
10
10
|
} from "./documents/articlesDocuments";
|
|
11
|
-
import { toDateTimeInput } from "../utils";
|
|
11
|
+
import { toDateTimeInput, toUTCISO8601String } from "../utils";
|
|
12
12
|
|
|
13
13
|
export default class Articles extends RaketaClient {
|
|
14
14
|
defaults() {
|
|
15
15
|
return {
|
|
16
16
|
visibility: "private",
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
publishAt: toDateTimeInput(new Date()),
|
|
18
|
+
settings: {
|
|
19
|
+
layout: "default",
|
|
20
|
+
},
|
|
21
|
+
widgets: [],
|
|
19
22
|
tags: [],
|
|
20
23
|
categories: [],
|
|
21
24
|
};
|
|
22
25
|
}
|
|
23
26
|
|
|
27
|
+
formatDates(params) {
|
|
28
|
+
if (params.publishAt) {
|
|
29
|
+
params.publishAt = toUTCISO8601String(params.publishAt);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return { ...params };
|
|
33
|
+
}
|
|
34
|
+
|
|
24
35
|
visibilityOptions() {
|
|
25
36
|
return [
|
|
26
37
|
["private", "Private"],
|
|
@@ -68,15 +79,16 @@ export default class Articles extends RaketaClient {
|
|
|
68
79
|
}
|
|
69
80
|
|
|
70
81
|
async create(params, locale, articleTypeSlug) {
|
|
71
|
-
|
|
72
|
-
|
|
82
|
+
const paramsCopy = { ...params };
|
|
83
|
+
paramsCopy.widgets = JSON.stringify(paramsCopy.widgets);
|
|
84
|
+
paramsCopy.settings = JSON.stringify(paramsCopy.settings);
|
|
73
85
|
|
|
74
86
|
const {
|
|
75
87
|
createArticle: { errors, article },
|
|
76
88
|
} = await this.query(CreateArticleDocument, {
|
|
77
89
|
input: {
|
|
78
90
|
locale,
|
|
79
|
-
article:
|
|
91
|
+
article: paramsCopy,
|
|
80
92
|
articleTypeSlug,
|
|
81
93
|
},
|
|
82
94
|
});
|
|
@@ -112,8 +124,9 @@ export default class Articles extends RaketaClient {
|
|
|
112
124
|
}
|
|
113
125
|
|
|
114
126
|
async translate(id, locale, params) {
|
|
115
|
-
|
|
116
|
-
|
|
127
|
+
const paramsCopy = { ...params };
|
|
128
|
+
paramsCopy.widgets = JSON.stringify(paramsCopy.widgets);
|
|
129
|
+
paramsCopy.settings = JSON.stringify(paramsCopy.settings);
|
|
117
130
|
|
|
118
131
|
const {
|
|
119
132
|
translateArticle: { errors, article },
|
|
@@ -121,7 +134,7 @@ export default class Articles extends RaketaClient {
|
|
|
121
134
|
input: {
|
|
122
135
|
locale,
|
|
123
136
|
sourceArticleId: id,
|
|
124
|
-
article:
|
|
137
|
+
article: paramsCopy,
|
|
125
138
|
},
|
|
126
139
|
});
|
|
127
140
|
|
|
@@ -11,8 +11,42 @@ import {
|
|
|
11
11
|
UpdateEventWidgetsDocument,
|
|
12
12
|
ReopenEventChangeDocument,
|
|
13
13
|
} from "./documents/eventsDocuments";
|
|
14
|
+
import { toUTCISO8601String } from "../utils";
|
|
14
15
|
|
|
15
16
|
export default class EventRevisions extends RaketaClient {
|
|
17
|
+
selectUpdateParams(revision) {
|
|
18
|
+
return {
|
|
19
|
+
title: revision.title,
|
|
20
|
+
slug: revision.slug,
|
|
21
|
+
publishAt: revision.publishAt,
|
|
22
|
+
startsAt: revision.startsAt,
|
|
23
|
+
endsAt: revision.endsAt,
|
|
24
|
+
widgets: [...revision.widgets],
|
|
25
|
+
settings: {
|
|
26
|
+
...revision.settings,
|
|
27
|
+
},
|
|
28
|
+
visibility: revision.visibility,
|
|
29
|
+
tags: revision.tags.map((t) => (t.id ? t.id : t)),
|
|
30
|
+
categories: revision.categories.map((c) => (c.id ? c.id : c)),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
formatDates(params) {
|
|
35
|
+
if (params.publishAt) {
|
|
36
|
+
params.publishAt = toUTCISO8601String(params.publishAt);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (params.startsAt) {
|
|
40
|
+
params.startsAt = toUTCISO8601String(params.startsAt);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (params.endsAt) {
|
|
44
|
+
params.endsAt = toUTCISO8601String(params.endsAt);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return { ...params };
|
|
48
|
+
}
|
|
49
|
+
|
|
16
50
|
async all(eventId, locale) {
|
|
17
51
|
const { eventRevisions: items } = await this.query(EventRevisionsDocument, {
|
|
18
52
|
input: {
|
|
@@ -66,13 +100,18 @@ export default class EventRevisions extends RaketaClient {
|
|
|
66
100
|
}
|
|
67
101
|
|
|
68
102
|
async update(id, locale, params) {
|
|
103
|
+
const copyParams = { ...params };
|
|
104
|
+
|
|
105
|
+
copyParams.widgets = JSON.stringify(params.widgets || []);
|
|
106
|
+
copyParams.settings = JSON.stringify(params.settings || {});
|
|
107
|
+
|
|
69
108
|
const {
|
|
70
109
|
updateEvent: { errors, event },
|
|
71
110
|
} = await this.query(UpdateEventDocument, {
|
|
72
111
|
input: {
|
|
73
112
|
id,
|
|
74
113
|
locale,
|
|
75
|
-
event:
|
|
114
|
+
event: copyParams,
|
|
76
115
|
},
|
|
77
116
|
});
|
|
78
117
|
|
package/src/cloud/Events.js
CHANGED
|
@@ -8,21 +8,40 @@ import {
|
|
|
8
8
|
TranslateEventDocument,
|
|
9
9
|
ChangeEventSlugDocument,
|
|
10
10
|
} from "./documents/eventsDocuments";
|
|
11
|
-
import { toDateTimeInput } from "../utils";
|
|
11
|
+
import { toDateTimeInput, toUTCISO8601String } from "../utils";
|
|
12
12
|
|
|
13
13
|
export default class Events extends RaketaClient {
|
|
14
14
|
defaults() {
|
|
15
15
|
return {
|
|
16
16
|
visibility: "private",
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
publishAt: toDateTimeInput(),
|
|
18
|
+
startsAt: toDateTimeInput(),
|
|
19
|
+
endsAt: toDateTimeInput(),
|
|
20
|
+
settings: {
|
|
21
|
+
layout: "default",
|
|
22
|
+
},
|
|
23
|
+
widgets: [],
|
|
21
24
|
tags: [],
|
|
22
25
|
categories: [],
|
|
23
26
|
};
|
|
24
27
|
}
|
|
25
28
|
|
|
29
|
+
formatDates(params) {
|
|
30
|
+
if (params.publishAt) {
|
|
31
|
+
params.publishAt = toUTCISO8601String(params.publishAt);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
if (params.startsAt) {
|
|
35
|
+
params.startsAt = toUTCISO8601String(params.startsAt);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (params.endsAt) {
|
|
39
|
+
params.endsAt = toUTCISO8601String(params.endsAt);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return { ...params };
|
|
43
|
+
}
|
|
44
|
+
|
|
26
45
|
visibilityOptions() {
|
|
27
46
|
return [
|
|
28
47
|
["private", "Private"],
|
|
@@ -70,15 +89,16 @@ export default class Events extends RaketaClient {
|
|
|
70
89
|
}
|
|
71
90
|
|
|
72
91
|
async create(params, locale, eventTypeSlug) {
|
|
73
|
-
|
|
74
|
-
|
|
92
|
+
const paramsCopy = { ...params };
|
|
93
|
+
paramsCopy.widgets = JSON.stringify(paramsCopy.widgets);
|
|
94
|
+
paramsCopy.settings = JSON.stringify(paramsCopy.settings);
|
|
75
95
|
|
|
76
96
|
const {
|
|
77
97
|
createEvent: { errors, event },
|
|
78
98
|
} = await this.query(CreateEventDocument, {
|
|
79
99
|
input: {
|
|
80
100
|
locale,
|
|
81
|
-
event:
|
|
101
|
+
event: paramsCopy,
|
|
82
102
|
eventTypeSlug,
|
|
83
103
|
},
|
|
84
104
|
});
|
|
@@ -114,8 +134,9 @@ export default class Events extends RaketaClient {
|
|
|
114
134
|
}
|
|
115
135
|
|
|
116
136
|
async translate(id, locale, params) {
|
|
117
|
-
|
|
118
|
-
|
|
137
|
+
const paramsCopy = { ...params };
|
|
138
|
+
paramsCopy.widgets = JSON.stringify(paramsCopy.widgets);
|
|
139
|
+
paramsCopy.settings = JSON.stringify(paramsCopy.settings);
|
|
119
140
|
|
|
120
141
|
const {
|
|
121
142
|
translateEvent: { errors, event },
|
|
@@ -123,7 +144,7 @@ export default class Events extends RaketaClient {
|
|
|
123
144
|
input: {
|
|
124
145
|
locale,
|
|
125
146
|
sourceEventId: id,
|
|
126
|
-
event:
|
|
147
|
+
event: paramsCopy,
|
|
127
148
|
},
|
|
128
149
|
});
|
|
129
150
|
|
|
@@ -13,6 +13,20 @@ import {
|
|
|
13
13
|
} from "./documents/pagesDocuments";
|
|
14
14
|
|
|
15
15
|
export default class PageRevisions extends RaketaClient {
|
|
16
|
+
selectUpdateParams(revision) {
|
|
17
|
+
return {
|
|
18
|
+
title: revision.title,
|
|
19
|
+
slug: revision.slug,
|
|
20
|
+
widgets: [...revision.widgets],
|
|
21
|
+
settings: {
|
|
22
|
+
...revision.settings,
|
|
23
|
+
},
|
|
24
|
+
visibility: revision.visibility,
|
|
25
|
+
tags: revision.tags.map((t) => (t.id ? t.id : t)),
|
|
26
|
+
categories: revision.categories.map((c) => (c.id ? c.id : c)),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
16
30
|
async all(pageId, locale) {
|
|
17
31
|
const { pageRevisions: items } = await this.query(PageRevisionsDocument, {
|
|
18
32
|
input: {
|
|
@@ -66,13 +80,18 @@ export default class PageRevisions extends RaketaClient {
|
|
|
66
80
|
}
|
|
67
81
|
|
|
68
82
|
async update(id, locale, params) {
|
|
83
|
+
const copyParams = { ...params };
|
|
84
|
+
|
|
85
|
+
copyParams.widgets = JSON.stringify(params.widgets || []);
|
|
86
|
+
copyParams.settings = JSON.stringify(params.settings || {});
|
|
87
|
+
|
|
69
88
|
const {
|
|
70
89
|
updatePage: { errors, page },
|
|
71
90
|
} = await this.query(UpdatePageDocument, {
|
|
72
91
|
input: {
|
|
73
92
|
id,
|
|
74
93
|
locale,
|
|
75
|
-
page:
|
|
94
|
+
page: copyParams,
|
|
76
95
|
},
|
|
77
96
|
});
|
|
78
97
|
|
package/src/cloud/Pages.js
CHANGED
|
@@ -13,9 +13,12 @@ export default class Pages extends RaketaClient {
|
|
|
13
13
|
defaults() {
|
|
14
14
|
return {
|
|
15
15
|
visibility: "private",
|
|
16
|
-
layout: "default",
|
|
17
16
|
tags: [],
|
|
18
17
|
categories: [],
|
|
18
|
+
widgets: [],
|
|
19
|
+
settings: {
|
|
20
|
+
layout: "default",
|
|
21
|
+
},
|
|
19
22
|
};
|
|
20
23
|
}
|
|
21
24
|
|
|
@@ -66,15 +69,16 @@ export default class Pages extends RaketaClient {
|
|
|
66
69
|
}
|
|
67
70
|
|
|
68
71
|
async create(params, locale, pageTypeSlug) {
|
|
69
|
-
|
|
70
|
-
|
|
72
|
+
const paramsCopy = { ...params };
|
|
73
|
+
paramsCopy.widgets = JSON.stringify(paramsCopy.widgets);
|
|
74
|
+
paramsCopy.settings = JSON.stringify(paramsCopy.settings);
|
|
71
75
|
|
|
72
76
|
const {
|
|
73
77
|
createPage: { errors, page },
|
|
74
78
|
} = await this.query(CreatePageDocument, {
|
|
75
79
|
input: {
|
|
76
80
|
locale,
|
|
77
|
-
page:
|
|
81
|
+
page: paramsCopy,
|
|
78
82
|
pageTypeSlug,
|
|
79
83
|
},
|
|
80
84
|
});
|
|
@@ -110,8 +114,10 @@ export default class Pages extends RaketaClient {
|
|
|
110
114
|
}
|
|
111
115
|
|
|
112
116
|
async translate(id, locale, params) {
|
|
113
|
-
|
|
114
|
-
|
|
117
|
+
const copyParams = { ...params };
|
|
118
|
+
|
|
119
|
+
copyParams.widgets = JSON.stringify(copyParams.widgets);
|
|
120
|
+
copyParams.settings = JSON.stringify(copyParams.settings);
|
|
115
121
|
|
|
116
122
|
const {
|
|
117
123
|
translatePage: { errors, page },
|
|
@@ -119,7 +125,7 @@ export default class Pages extends RaketaClient {
|
|
|
119
125
|
input: {
|
|
120
126
|
locale,
|
|
121
127
|
sourcePageId: id,
|
|
122
|
-
page:
|
|
128
|
+
page: copyParams,
|
|
123
129
|
},
|
|
124
130
|
});
|
|
125
131
|
|
|
@@ -8,6 +8,78 @@ function isObjectEmpty(obj) {
|
|
|
8
8
|
return true;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
+
function deepMerge(target, updates) {
|
|
12
|
+
if (typeof target !== "object" || target === null) {
|
|
13
|
+
return updates;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
if (typeof updates !== "object" || updates === null) {
|
|
17
|
+
return target;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
for (let key of Object.keys(updates)) {
|
|
21
|
+
if (Array.isArray(updates[key])) {
|
|
22
|
+
if (!Array.isArray(target[key])) {
|
|
23
|
+
target[key] = [];
|
|
24
|
+
}
|
|
25
|
+
target[key] = updates[key];
|
|
26
|
+
} else if (typeof updates[key] === "object" && updates[key] !== null) {
|
|
27
|
+
if (!target[key] || typeof target[key] !== "object") {
|
|
28
|
+
target[key] = {};
|
|
29
|
+
}
|
|
30
|
+
target[key] = deepMerge(target[key], updates[key]);
|
|
31
|
+
} else {
|
|
32
|
+
target[key] = updates[key];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return target;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function parseJson(str) {
|
|
40
|
+
if (!str) {
|
|
41
|
+
return str;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
try {
|
|
45
|
+
const res = JSON.parse(str);
|
|
46
|
+
|
|
47
|
+
if (typeof res === "object") {
|
|
48
|
+
return res;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return str;
|
|
52
|
+
} catch (e) {
|
|
53
|
+
return str;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function parseJsonFields(params) {
|
|
58
|
+
if (!params) {
|
|
59
|
+
return params;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (typeof params === "string") {
|
|
63
|
+
return parseJson(params);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
for (let key of Object.keys(params)) {
|
|
67
|
+
if (typeof params[key] === "string") {
|
|
68
|
+
params[key] = parseJson(params[key]);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (Array.isArray(params[key])) {
|
|
72
|
+
params[key] = params[key].map((item) => parseJsonFields(item));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if (typeof params[key] === "object") {
|
|
76
|
+
params[key] = parseJsonFields(params[key]);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return params;
|
|
81
|
+
}
|
|
82
|
+
|
|
11
83
|
export default class RaketaClient {
|
|
12
84
|
constructor(getConfig, token) {
|
|
13
85
|
this.getConfig = getConfig;
|
|
@@ -134,4 +206,8 @@ export default class RaketaClient {
|
|
|
134
206
|
|
|
135
207
|
return variables;
|
|
136
208
|
}
|
|
209
|
+
|
|
210
|
+
deepMerge(target, source) {
|
|
211
|
+
return parseJsonFields(deepMerge(structuredClone(target), source));
|
|
212
|
+
}
|
|
137
213
|
}
|
|
@@ -1,27 +1,23 @@
|
|
|
1
|
+
import { toDateTimeInput } from "../../utils";
|
|
2
|
+
|
|
1
3
|
const edit_form = async (ctx) => {
|
|
2
4
|
const { parent_id } = ctx.params;
|
|
3
5
|
|
|
4
|
-
const
|
|
6
|
+
const resource = await ctx.client.articleRevisions.find(
|
|
5
7
|
parent_id,
|
|
6
8
|
ctx.locale
|
|
7
9
|
);
|
|
8
10
|
|
|
9
|
-
if (!
|
|
11
|
+
if (!resource) {
|
|
10
12
|
throw new Error(`Missing revision #${parent_id}`);
|
|
11
13
|
}
|
|
12
14
|
|
|
13
|
-
const code_settings = {
|
|
14
|
-
id: revision.id,
|
|
15
|
-
originalId: revision.originalId,
|
|
16
|
-
scripts: JSON.stringify(revision.settings.codes?.scripts || []),
|
|
17
|
-
structured_data: JSON.stringify(
|
|
18
|
-
revision.settings.codes?.structured_data || {}
|
|
19
|
-
),
|
|
20
|
-
};
|
|
21
|
-
|
|
22
15
|
return {
|
|
23
16
|
assigns: {
|
|
24
|
-
|
|
17
|
+
resource: {
|
|
18
|
+
...resource,
|
|
19
|
+
publishAt: toDateTimeInput(resource.publishAt),
|
|
20
|
+
},
|
|
25
21
|
errors: {},
|
|
26
22
|
_translations: [],
|
|
27
23
|
},
|
|
@@ -40,39 +36,27 @@ const update = async (ctx) => {
|
|
|
40
36
|
throw new Error(`Missing revision #${parent_id}`);
|
|
41
37
|
}
|
|
42
38
|
|
|
43
|
-
const params = ctx.resourceParams.
|
|
39
|
+
const params = ctx.resourceParams.resource;
|
|
40
|
+
const resource = ctx.client.articleRevisions.deepMerge(
|
|
41
|
+
revision,
|
|
42
|
+
ctx.client.articleRevisions.formatDates(params)
|
|
43
|
+
);
|
|
44
44
|
|
|
45
45
|
const { errors } = await ctx.client.articleRevisions.update(
|
|
46
46
|
revision.id,
|
|
47
47
|
ctx.locale,
|
|
48
|
-
|
|
49
|
-
slug: revision.slug,
|
|
50
|
-
title: revision.title,
|
|
51
|
-
visibility: revision.visibility,
|
|
52
|
-
publishAt: revision.publishAt,
|
|
53
|
-
widgets: JSON.stringify(revision.widgets),
|
|
54
|
-
tags: revision.tags.map((t) => t.id),
|
|
55
|
-
categories: revision.categories.map((c) => c.id),
|
|
56
|
-
settings: JSON.stringify({
|
|
57
|
-
...revision.settings,
|
|
58
|
-
codes: {
|
|
59
|
-
scripts: JSON.parse(params.scripts),
|
|
60
|
-
structured_data: JSON.parse(params.structured_data),
|
|
61
|
-
},
|
|
62
|
-
}),
|
|
63
|
-
}
|
|
48
|
+
ctx.client.articleRevisions.selectUpdateParams(resource)
|
|
64
49
|
);
|
|
65
50
|
|
|
66
51
|
if (errors) {
|
|
67
52
|
return {
|
|
68
53
|
assigns: {
|
|
69
|
-
|
|
70
|
-
...
|
|
71
|
-
|
|
72
|
-
originalId: revision.originalId,
|
|
54
|
+
resource: {
|
|
55
|
+
...resource,
|
|
56
|
+
publishAt: toDateTimeInput(resource.publishAt),
|
|
73
57
|
},
|
|
74
58
|
errors: {
|
|
75
|
-
|
|
59
|
+
resource: ctx.client.articleRevisions.formatErrors(errors),
|
|
76
60
|
},
|
|
77
61
|
_translations: [],
|
|
78
62
|
},
|
|
@@ -1,32 +1,25 @@
|
|
|
1
|
-
import { toDateTimeInput
|
|
1
|
+
import { toDateTimeInput } from "../../utils";
|
|
2
|
+
|
|
2
3
|
const edit_form = async (ctx) => {
|
|
3
4
|
const { parent_id } = ctx.params;
|
|
4
5
|
|
|
5
|
-
const
|
|
6
|
+
const resource = await ctx.client.articleRevisions.find(
|
|
6
7
|
parent_id,
|
|
7
8
|
ctx.locale
|
|
8
9
|
);
|
|
9
10
|
|
|
10
|
-
if (!
|
|
11
|
+
if (!resource) {
|
|
11
12
|
throw new Error(`Missing revision #${parent_id}`);
|
|
12
13
|
}
|
|
13
14
|
|
|
14
|
-
const general_settings = {
|
|
15
|
-
id: revision.id,
|
|
16
|
-
originalId: revision.originalId,
|
|
17
|
-
title: revision.title,
|
|
18
|
-
slug: revision.slug,
|
|
19
|
-
publish_at: toDateTimeInput(revision.publishAt),
|
|
20
|
-
visibility: revision.visibility,
|
|
21
|
-
username: revision.settings?.credentials?.user || "",
|
|
22
|
-
password: revision.settings?.credentials?.password || "",
|
|
23
|
-
};
|
|
24
|
-
|
|
25
15
|
return {
|
|
26
16
|
assigns: {
|
|
27
|
-
|
|
28
|
-
|
|
17
|
+
resource: {
|
|
18
|
+
...resource,
|
|
19
|
+
publishAt: toDateTimeInput(resource.publishAt),
|
|
20
|
+
},
|
|
29
21
|
visibilityOptions: ctx.client.articles.visibilityOptions(),
|
|
22
|
+
errors: {},
|
|
30
23
|
_translations: [],
|
|
31
24
|
},
|
|
32
25
|
};
|
|
@@ -44,39 +37,27 @@ const update = async (ctx) => {
|
|
|
44
37
|
throw new Error(`Missing revision #${parent_id}`);
|
|
45
38
|
}
|
|
46
39
|
|
|
47
|
-
const params = ctx.resourceParams.
|
|
40
|
+
const params = ctx.resourceParams.resource;
|
|
41
|
+
const resource = ctx.client.articleRevisions.deepMerge(
|
|
42
|
+
revision,
|
|
43
|
+
ctx.client.articleRevisions.formatDates(params)
|
|
44
|
+
);
|
|
48
45
|
|
|
49
46
|
const { errors } = await ctx.client.articleRevisions.update(
|
|
50
47
|
revision.id,
|
|
51
48
|
ctx.locale,
|
|
52
|
-
|
|
53
|
-
slug: params.slug,
|
|
54
|
-
title: params.title,
|
|
55
|
-
visibility: params.visibility,
|
|
56
|
-
publishAt: toUTCISO8601String(params.publish_at),
|
|
57
|
-
widgets: JSON.stringify(revision.widgets),
|
|
58
|
-
tags: revision.tags.map((t) => t.id),
|
|
59
|
-
categories: revision.categories.map((c) => c.id),
|
|
60
|
-
settings: JSON.stringify({
|
|
61
|
-
...revision.settings,
|
|
62
|
-
credentials: {
|
|
63
|
-
user: params.username,
|
|
64
|
-
password: params.password,
|
|
65
|
-
},
|
|
66
|
-
}),
|
|
67
|
-
}
|
|
49
|
+
ctx.client.articleRevisions.selectUpdateParams(resource)
|
|
68
50
|
);
|
|
69
51
|
|
|
70
52
|
if (errors) {
|
|
71
53
|
return {
|
|
72
54
|
assigns: {
|
|
73
|
-
|
|
74
|
-
...
|
|
75
|
-
|
|
76
|
-
originalId: revision.originalId,
|
|
55
|
+
resource: {
|
|
56
|
+
...resource,
|
|
57
|
+
publishAt: toDateTimeInput(resource.publishAt),
|
|
77
58
|
},
|
|
78
59
|
errors: {
|
|
79
|
-
|
|
60
|
+
resource: ctx.client.articleRevisions.formatErrors(errors),
|
|
80
61
|
},
|
|
81
62
|
visibilityOptions: ctx.client.articles.visibilityOptions(),
|
|
82
63
|
_translations: [],
|
|
@@ -6,14 +6,15 @@ const create_form = async (ctx) => {
|
|
|
6
6
|
ctx.locale
|
|
7
7
|
);
|
|
8
8
|
|
|
9
|
-
const
|
|
10
|
-
revision,
|
|
9
|
+
const resource = {
|
|
10
|
+
id: revision.id,
|
|
11
|
+
originalId: revision.originalId,
|
|
11
12
|
message: "",
|
|
12
13
|
};
|
|
13
14
|
|
|
14
15
|
return {
|
|
15
16
|
assigns: {
|
|
16
|
-
|
|
17
|
+
resource,
|
|
17
18
|
errors: {},
|
|
18
19
|
_translations: [],
|
|
19
20
|
},
|
|
@@ -22,7 +23,7 @@ const create_form = async (ctx) => {
|
|
|
22
23
|
|
|
23
24
|
const create = async (ctx) => {
|
|
24
25
|
const { parent_id } = ctx.params;
|
|
25
|
-
const { message } = ctx.resourceParams.
|
|
26
|
+
const { message } = ctx.resourceParams.resource;
|
|
26
27
|
|
|
27
28
|
const { revision, errors, articleErrors } =
|
|
28
29
|
await ctx.client.articleRevisions.lock(parent_id, ctx.locale, message);
|
|
@@ -30,9 +31,13 @@ const create = async (ctx) => {
|
|
|
30
31
|
if (errors) {
|
|
31
32
|
return {
|
|
32
33
|
assigns: {
|
|
33
|
-
|
|
34
|
+
resource: {
|
|
35
|
+
id: revision.id,
|
|
36
|
+
originalId: revision.originalId,
|
|
37
|
+
message,
|
|
38
|
+
},
|
|
34
39
|
errors: {
|
|
35
|
-
|
|
40
|
+
resource: ctx.client.articles.formatErrors(errors, "message"),
|
|
36
41
|
},
|
|
37
42
|
_translations: [],
|
|
38
43
|
},
|