@raketa-cloud/admin 0.0.30 → 0.0.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/package.json +1 -1
  2. package/src/Adapter.js +3 -6
  3. package/src/HonoAdapter.js +3 -3
  4. package/src/Logger.js +21 -0
  5. package/src/cloud/ArticleRevisions.js +30 -1
  6. package/src/cloud/Articles.js +22 -9
  7. package/src/cloud/EventRevisions.js +40 -1
  8. package/src/cloud/Events.js +32 -11
  9. package/src/cloud/PageRevisions.js +20 -1
  10. package/src/cloud/Pages.js +13 -7
  11. package/src/cloud/RaketaClient.js +76 -0
  12. package/src/handlers/article_revisions/CodeHandler.js +18 -34
  13. package/src/handlers/article_revisions/GeneralHandler.js +19 -38
  14. package/src/handlers/article_revisions/LocksHandler.js +11 -6
  15. package/src/handlers/article_revisions/MetaHandler.js +18 -34
  16. package/src/handlers/article_revisions/TagHandler.js +23 -29
  17. package/src/handlers/article_revisions/UnlocksHandler.js +1 -1
  18. package/src/handlers/article_revisions/VisualHandler.js +18 -28
  19. package/src/handlers/articles/ArticlesHandler.js +11 -25
  20. package/src/handlers/articles/DeletesHandler.js +4 -4
  21. package/src/handlers/articles/TranslationsHandler.js +30 -56
  22. package/src/handlers/articles/URLsHandler.js +7 -7
  23. package/src/handlers/event_revisions/CodeHandler.js +22 -36
  24. package/src/handlers/event_revisions/GeneralHandler.js +22 -42
  25. package/src/handlers/event_revisions/LocksHandler.js +7 -6
  26. package/src/handlers/event_revisions/MetaHandler.js +22 -36
  27. package/src/handlers/event_revisions/TagHandler.js +25 -29
  28. package/src/handlers/event_revisions/VisualHandler.js +22 -30
  29. package/src/handlers/events/DeletesHandler.js +4 -4
  30. package/src/handlers/events/EventsHandler.js +13 -27
  31. package/src/handlers/events/TranslationsHandler.js +35 -58
  32. package/src/handlers/events/URLsHandler.js +7 -7
  33. package/src/handlers/page_revisions/CodeHandler.js +8 -34
  34. package/src/handlers/page_revisions/GeneralHandler.js +10 -37
  35. package/src/handlers/page_revisions/LocksHandler.js +11 -6
  36. package/src/handlers/page_revisions/MetaHandler.js +8 -34
  37. package/src/handlers/page_revisions/TagHandler.js +16 -27
  38. package/src/handlers/page_revisions/VisualHandler.js +8 -28
  39. package/src/handlers/pages/DeletesHandler.js +4 -4
  40. package/src/handlers/pages/PagesHandler.js +7 -24
  41. package/src/handlers/pages/TranslationsHandler.js +23 -45
  42. package/src/handlers/pages/URLsHandler.js +7 -7
  43. package/src/helpers/FormBuilder.js +1 -2
  44. package/src/helpers/Inflector.js +6 -0
  45. package/src/index.js +2 -0
  46. package/src/styles/application.css +7 -7
  47. package/src/tests/handlers/RedirectsHandler.test/create.test.js +1 -1
  48. package/src/tests/handlers/RedirectsHandler.test/create_form.test.js +1 -1
  49. package/src/tests/handlers/RedirectsHandler.test/destroy.test.js +1 -1
  50. package/src/tests/handlers/RedirectsHandler.test/edit_form.test.js +1 -1
  51. package/src/tests/handlers/RedirectsHandler.test/index.test.js +1 -1
  52. package/src/tests/handlers/RedirectsHandler.test/show.test.js +1 -1
  53. package/src/tests/handlers/RedirectsHandler.test/update.test.js +1 -1
  54. package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/create.test.js +1 -1
  55. package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/destroy.test.js +1 -1
  56. package/src/tests/handlers/article_revisions/CodesHandler.test/edit_form.test.js +7 -7
  57. package/src/tests/handlers/article_revisions/CodesHandler.test/update.test.js +37 -19
  58. package/src/tests/handlers/article_revisions/GeneralHandler.test/edit_form.test.js +5 -11
  59. package/src/tests/handlers/article_revisions/GeneralHandler.test/update.test.js +36 -28
  60. package/src/tests/handlers/article_revisions/MetaHandler.test/edit_form.test.js +7 -8
  61. package/src/tests/handlers/article_revisions/MetaHandler.test/update.test.js +41 -25
  62. package/src/tests/handlers/article_revisions/PublishesHandler.test/create.test.js +2 -2
  63. package/src/tests/handlers/article_revisions/PublishesHandler.test/create_form.test.js +2 -2
  64. package/src/tests/handlers/article_revisions/RevertsHandler.test/create.test.js +1 -1
  65. package/src/tests/handlers/article_revisions/TagHandler.test/edit_form.test.js +10 -7
  66. package/src/tests/handlers/article_revisions/TagHandler.test/update.test.js +20 -14
  67. package/src/tests/handlers/article_revisions/VisualHandler.test.test/edit_form.test.js +7 -6
  68. package/src/tests/handlers/article_revisions/VisualHandler.test.test/update.test.js +30 -19
  69. package/src/tests/handlers/article_revisions/WidgetHandler.test/show.test.js +2 -2
  70. package/src/tests/handlers/article_revisions/WidgetHandler.test/update.test.js +2 -2
  71. package/src/tests/handlers/articles/ArticlesHandler.test/create.test.js +53 -29
  72. package/src/tests/handlers/articles/ArticlesHandler.test/create_form.test.js +3 -3
  73. package/src/tests/handlers/articles/ArticlesHandler.test/index.test.js +2 -2
  74. package/src/tests/handlers/articles/ArticlesHandler.test/show.test.js +3 -3
  75. package/src/tests/handlers/articles/ClonesHandler.test/create.test.js +1 -1
  76. package/src/tests/handlers/articles/DeletesHandler.test/create.test.js +4 -4
  77. package/src/tests/handlers/articles/DeletesHandler.test/create_form.test.js +2 -2
  78. package/src/tests/handlers/articles/URLsHandler.test/create.test.js +6 -6
  79. package/src/tests/handlers/articles/URLsHandler.test/create_form.test.js +2 -2
  80. package/src/tests/handlers/event_revisions/CodesHandler.test/edit_form.test.js +11 -7
  81. package/src/tests/handlers/event_revisions/CodesHandler.test/update.test.js +43 -19
  82. package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/create.test.js +1 -1
  83. package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/destroy.test.js +1 -1
  84. package/src/tests/handlers/event_revisions/GeneralHandler.test/edit_form.test.js +7 -13
  85. package/src/tests/handlers/event_revisions/GeneralHandler.test/update.test.js +42 -32
  86. package/src/tests/handlers/event_revisions/MetaHandler.test/edit_form.test.js +11 -8
  87. package/src/tests/handlers/event_revisions/MetaHandler.test/update.test.js +47 -25
  88. package/src/tests/handlers/event_revisions/PublishesHandler.test/create.test.js +2 -2
  89. package/src/tests/handlers/event_revisions/PublishesHandler.test/create_form.test.js +2 -2
  90. package/src/tests/handlers/event_revisions/RevertsHandler.test/create.test.js +1 -1
  91. package/src/tests/handlers/event_revisions/TagHandler.test/edit_form.test.js +14 -7
  92. package/src/tests/handlers/event_revisions/TagHandler.test/update.test.js +26 -14
  93. package/src/tests/handlers/event_revisions/VisualHandler.test.test/edit_form.test.js +11 -6
  94. package/src/tests/handlers/event_revisions/VisualHandler.test.test/update.test.js +36 -19
  95. package/src/tests/handlers/event_revisions/WidgetHandler.test/show.test.js +2 -2
  96. package/src/tests/handlers/event_revisions/WidgetHandler.test/update.test.js +2 -2
  97. package/src/tests/handlers/events/ClonesHandler.test/create.test.js +1 -1
  98. package/src/tests/handlers/events/DeletesHandler.test/create.test.js +4 -4
  99. package/src/tests/handlers/events/DeletesHandler.test/create_form.test.js +2 -2
  100. package/src/tests/handlers/events/EventsHandler.test/create.test.js +53 -37
  101. package/src/tests/handlers/events/EventsHandler.test/create_form.test.js +3 -3
  102. package/src/tests/handlers/events/EventsHandler.test/index.test.js +2 -2
  103. package/src/tests/handlers/events/EventsHandler.test/show.test.js +3 -3
  104. package/src/tests/handlers/events/URLsHandler.test/create.test.js +6 -6
  105. package/src/tests/handlers/events/URLsHandler.test/create_form.test.js +2 -2
  106. package/src/tests/handlers/page_revisions/CodesHandler.test/edit_form.test.js +10 -8
  107. package/src/tests/handlers/page_revisions/CodesHandler.test/update.test.js +30 -17
  108. package/src/tests/handlers/page_revisions/GeneralHandler.test/edit_form.test.js +3 -11
  109. package/src/tests/handlers/page_revisions/GeneralHandler.test/update.test.js +38 -22
  110. package/src/tests/handlers/page_revisions/MetaHandler.test/edit_form.test.js +2 -8
  111. package/src/tests/handlers/page_revisions/MetaHandler.test/update.test.js +37 -23
  112. package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/create.test.js +1 -1
  113. package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/destroy.test.js +1 -1
  114. package/src/tests/handlers/page_revisions/PublishesHandler.test/create.test.js +2 -2
  115. package/src/tests/handlers/page_revisions/PublishesHandler.test/create_form.test.js +2 -2
  116. package/src/tests/handlers/page_revisions/RevertsHandler.test/create.test.js +1 -1
  117. package/src/tests/handlers/page_revisions/TagHandler.test/edit_form.test.js +3 -7
  118. package/src/tests/handlers/page_revisions/TagHandler.test/update.test.js +11 -12
  119. package/src/tests/handlers/page_revisions/VisualHandler.test.test/edit_form.test.js +10 -7
  120. package/src/tests/handlers/page_revisions/VisualHandler.test.test/update.test.js +23 -17
  121. package/src/tests/handlers/page_revisions/WidgetHandler.test/show.test.js +2 -2
  122. package/src/tests/handlers/page_revisions/WidgetHandler.test/update.test.js +2 -2
  123. package/src/tests/handlers/pages/ConesHandler.test/create.test.js +1 -1
  124. package/src/tests/handlers/pages/DeletesHandler.test/create.test.js +4 -4
  125. package/src/tests/handlers/pages/DeletesHandler.test/create_form.test.js +2 -2
  126. package/src/tests/handlers/pages/PagesHandler.test/create.test.js +50 -27
  127. package/src/tests/handlers/pages/PagesHandler.test/create_form.test.js +3 -3
  128. package/src/tests/handlers/pages/PagesHandler.test/index.test.js +2 -2
  129. package/src/tests/handlers/pages/PagesHandler.test/show.test.js +3 -3
  130. package/src/tests/handlers/pages/URLsHandler.test/create.test.js +6 -6
  131. package/src/tests/handlers/pages/URLsHandler.test/create_form.test.js +2 -2
  132. package/src/utils.js +12 -0
  133. package/src/views/_shared/_credentials_input.ejs +31 -0
  134. package/src/views/_shared/_layout_input.ejs +5 -0
  135. package/src/views/article_revisions/_nav.ejs +5 -5
  136. package/src/views/article_revisions/codes/edit_form.ejs +17 -6
  137. package/src/views/article_revisions/general/edit_form.ejs +10 -36
  138. package/src/views/article_revisions/locks/create_form.ejs +4 -4
  139. package/src/views/article_revisions/meta/edit_form.ejs +7 -7
  140. package/src/views/article_revisions/tags/edit_form.ejs +5 -5
  141. package/src/views/article_revisions/visuals/edit_form.ejs +5 -9
  142. package/src/views/articles/_form.ejs +6 -37
  143. package/src/views/articles/deletes/create_form.ejs +9 -9
  144. package/src/views/articles/index.ejs +1 -1
  145. package/src/views/articles/translations/_form.ejs +14 -46
  146. package/src/views/articles/urls/create_form.ejs +5 -5
  147. package/src/views/event_revisions/_nav.ejs +5 -5
  148. package/src/views/event_revisions/codes/edit_form.ejs +17 -6
  149. package/src/views/event_revisions/general/edit_form.ejs +12 -38
  150. package/src/views/event_revisions/locks/create_form.ejs +4 -4
  151. package/src/views/event_revisions/meta/edit_form.ejs +7 -7
  152. package/src/views/event_revisions/tags/edit_form.ejs +5 -5
  153. package/src/views/event_revisions/visuals/edit_form.ejs +5 -9
  154. package/src/views/events/_form.ejs +8 -39
  155. package/src/views/events/deletes/create_form.ejs +9 -9
  156. package/src/views/events/index.ejs +1 -1
  157. package/src/views/events/translations/_form.ejs +16 -47
  158. package/src/views/events/urls/create_form.ejs +5 -5
  159. package/src/views/layouts/application.ejs +57 -35
  160. package/src/views/page_revisions/_nav.ejs +5 -5
  161. package/src/views/page_revisions/codes/edit_form.ejs +17 -6
  162. package/src/views/page_revisions/general/edit_form.ejs +8 -35
  163. package/src/views/page_revisions/locks/create_form.ejs +4 -4
  164. package/src/views/page_revisions/meta/edit_form.ejs +7 -7
  165. package/src/views/page_revisions/publishes/_form.ejs +9 -9
  166. package/src/views/page_revisions/tags/edit_form.ejs +5 -5
  167. package/src/views/page_revisions/visuals/edit_form.ejs +5 -9
  168. package/src/views/pages/_form.ejs +5 -36
  169. package/src/views/pages/deletes/create_form.ejs +9 -9
  170. package/src/views/pages/index.ejs +1 -1
  171. package/src/views/pages/translations/_form.ejs +13 -45
  172. package/src/views/pages/urls/create_form.ejs +5 -5
  173. package/tailwind.config.js +1 -0
@@ -1,24 +1,22 @@
1
+ import { toDateTimeInput } from "../../utils";
2
+
1
3
  const edit_form = async (ctx) => {
2
4
  const { parent_id } = ctx.params;
3
5
 
4
- const revision = await ctx.client.eventRevisions.find(parent_id, ctx.locale);
6
+ const resource = await ctx.client.eventRevisions.find(parent_id, ctx.locale);
5
7
 
6
- if (!revision) {
8
+ if (!resource) {
7
9
  throw new Error(`Missing revision #${parent_id}`);
8
10
  }
9
11
 
10
- const code_settings = {
11
- id: revision.id,
12
- originalId: revision.originalId,
13
- scripts: JSON.stringify(revision.settings.codes?.scripts || []),
14
- structured_data: JSON.stringify(
15
- revision.settings.codes?.structured_data || {}
16
- ),
17
- };
18
-
19
12
  return {
20
13
  assigns: {
21
- code_settings,
14
+ resource: {
15
+ ...resource,
16
+ publishAt: toDateTimeInput(resource.publishAt),
17
+ startsAt: toDateTimeInput(resource.startsAt),
18
+ endsAt: toDateTimeInput(resource.endsAt),
19
+ },
22
20
  errors: {},
23
21
  _translations: [],
24
22
  },
@@ -34,41 +32,29 @@ const update = async (ctx) => {
34
32
  throw new Error(`Missing revision #${parent_id}`);
35
33
  }
36
34
 
37
- const params = ctx.resourceParams.code_settings;
35
+ const params = ctx.resourceParams.resource;
36
+ const resource = ctx.client.eventRevisions.deepMerge(
37
+ revision,
38
+ ctx.client.eventRevisions.formatDates(params)
39
+ );
38
40
 
39
41
  const { errors } = await ctx.client.eventRevisions.update(
40
42
  revision.id,
41
43
  ctx.locale,
42
- {
43
- slug: revision.slug,
44
- title: revision.title,
45
- visibility: revision.visibility,
46
- publishAt: revision.publishAt,
47
- startsAt: revision.startsAt,
48
- endsAt: revision.endsAt,
49
- widgets: JSON.stringify(revision.widgets),
50
- tags: revision.tags.map((t) => t.id),
51
- categories: revision.categories.map((c) => c.id),
52
- settings: JSON.stringify({
53
- ...revision.settings,
54
- codes: {
55
- scripts: JSON.parse(params.scripts),
56
- structured_data: JSON.parse(params.structured_data),
57
- },
58
- }),
59
- }
44
+ ctx.client.eventRevisions.selectUpdateParams(resource)
60
45
  );
61
46
 
62
47
  if (errors) {
63
48
  return {
64
49
  assigns: {
65
- code_settings: {
66
- ...params,
67
- id: revision.id,
68
- originalId: revision.originalId,
50
+ resource: {
51
+ ...resource,
52
+ publishAt: toDateTimeInput(resource.publishAt),
53
+ startsAt: toDateTimeInput(resource.startsAt),
54
+ endsAt: toDateTimeInput(resource.endsAt),
69
55
  },
70
56
  errors: {
71
- code_settings: ctx.client.eventRevisions.formatErrors(errors),
57
+ resource: ctx.client.eventRevisions.formatErrors(errors),
72
58
  },
73
59
  _translations: [],
74
60
  },
@@ -1,32 +1,24 @@
1
- import { toDateTimeInput, toUTCISO8601String } from "../../utils";
1
+ import { toDateTimeInput } from "../../utils";
2
2
 
3
3
  const edit_form = async (ctx) => {
4
4
  const { parent_id } = ctx.params;
5
5
 
6
- const revision = await ctx.client.eventRevisions.find(parent_id, ctx.locale);
6
+ const resource = await ctx.client.eventRevisions.find(parent_id, ctx.locale);
7
7
 
8
- if (!revision) {
8
+ if (!resource) {
9
9
  throw new Error(`Missing revision #${parent_id}`);
10
10
  }
11
11
 
12
- const general_settings = {
13
- id: revision.id,
14
- originalId: revision.originalId,
15
- title: revision.title,
16
- slug: revision.slug,
17
- publish_at: toDateTimeInput(revision.publishAt),
18
- starts_at: toDateTimeInput(revision.startsAt),
19
- ends_at: toDateTimeInput(revision.endsAt),
20
- visibility: revision.visibility,
21
- username: revision.settings?.credentials?.user || "",
22
- password: revision.settings?.credentials?.password || "",
23
- };
24
-
25
12
  return {
26
13
  assigns: {
27
- general_settings,
28
- errors: {},
14
+ resource: {
15
+ ...resource,
16
+ publishAt: toDateTimeInput(resource.publishAt),
17
+ startsAt: toDateTimeInput(resource.startsAt),
18
+ endsAt: toDateTimeInput(resource.endsAt),
19
+ },
29
20
  visibilityOptions: ctx.client.events.visibilityOptions(),
21
+ errors: {},
30
22
  _translations: [],
31
23
  },
32
24
  };
@@ -41,41 +33,29 @@ const update = async (ctx) => {
41
33
  throw new Error(`Missing revision #${parent_id}`);
42
34
  }
43
35
 
44
- const params = ctx.resourceParams.general_settings;
36
+ const params = ctx.resourceParams.resource;
37
+ const resource = ctx.client.eventRevisions.deepMerge(
38
+ revision,
39
+ ctx.client.eventRevisions.formatDates(params)
40
+ );
45
41
 
46
42
  const { errors } = await ctx.client.eventRevisions.update(
47
43
  revision.id,
48
44
  ctx.locale,
49
- {
50
- slug: params.slug,
51
- title: params.title,
52
- visibility: params.visibility,
53
- publishAt: toUTCISO8601String(params.publish_at),
54
- startsAt: toUTCISO8601String(params.starts_at),
55
- endsAt: toUTCISO8601String(params.ends_at),
56
- widgets: JSON.stringify(revision.widgets),
57
- tags: revision.tags.map((t) => t.id),
58
- categories: revision.categories.map((c) => c.id),
59
- settings: JSON.stringify({
60
- ...revision.settings,
61
- credentials: {
62
- user: params.username,
63
- password: params.password,
64
- },
65
- }),
66
- }
45
+ ctx.client.eventRevisions.selectUpdateParams(resource)
67
46
  );
68
47
 
69
48
  if (errors) {
70
49
  return {
71
50
  assigns: {
72
- general_settings: {
73
- ...params,
74
- id: revision.id,
75
- originalId: revision.originalId,
51
+ resource: {
52
+ ...resource,
53
+ publishAt: toDateTimeInput(resource.publishAt),
54
+ startsAt: toDateTimeInput(resource.startsAt),
55
+ endsAt: toDateTimeInput(resource.endsAt),
76
56
  },
77
57
  errors: {
78
- general_settings: ctx.client.eventRevisions.formatErrors(errors),
58
+ resource: ctx.client.eventRevisions.formatErrors(errors),
79
59
  },
80
60
  visibilityOptions: ctx.client.events.visibilityOptions(),
81
61
  _translations: [],
@@ -3,14 +3,15 @@ const create_form = async (ctx) => {
3
3
 
4
4
  const revision = await ctx.client.eventRevisions.find(parent_id, ctx.locale);
5
5
 
6
- const lock_settings = {
7
- revision,
6
+ const resource = {
7
+ id: revision.id,
8
+ originalId: revision.originalId,
8
9
  message: "",
9
10
  };
10
11
 
11
12
  return {
12
13
  assigns: {
13
- lock_settings,
14
+ resource,
14
15
  errors: {},
15
16
  _translations: [],
16
17
  },
@@ -19,7 +20,7 @@ const create_form = async (ctx) => {
19
20
 
20
21
  const create = async (ctx) => {
21
22
  const { parent_id } = ctx.params;
22
- const { message } = ctx.resourceParams.lock_settings;
23
+ const { message } = ctx.resourceParams.resource;
23
24
 
24
25
  const { revision, errors, eventErrors } =
25
26
  await ctx.client.eventRevisions.lock(parent_id, ctx.locale, message);
@@ -27,9 +28,9 @@ const create = async (ctx) => {
27
28
  if (errors) {
28
29
  return {
29
30
  assigns: {
30
- lock_settings: { revision, message },
31
+ resource: { id: revision.id, originalId: revision.originalId, message },
31
32
  errors: {
32
- lock_settings: ctx.client.events.formatErrors(errors, "message"),
33
+ resource: ctx.client.events.formatErrors(errors, "message"),
33
34
  },
34
35
  _translations: [],
35
36
  },
@@ -1,23 +1,22 @@
1
+ import { toDateTimeInput } from "../../utils";
2
+
1
3
  const edit_form = async (ctx) => {
2
4
  const { parent_id } = ctx.params;
3
5
 
4
- const revision = await ctx.client.eventRevisions.find(parent_id, ctx.locale);
6
+ const resource = await ctx.client.eventRevisions.find(parent_id, ctx.locale);
5
7
 
6
- if (!revision) {
8
+ if (!resource) {
7
9
  throw new Error(`Missing revision #${parent_id}`);
8
10
  }
9
11
 
10
- const meta_settings = {
11
- id: revision.id,
12
- originalId: revision.originalId,
13
- title: revision.settings.meta?.title || "",
14
- description: revision.settings.meta?.description || "",
15
- image: revision.settings.meta?.image || {},
16
- };
17
-
18
12
  return {
19
13
  assigns: {
20
- meta_settings,
14
+ resource: {
15
+ ...resource,
16
+ publishAt: toDateTimeInput(resource.publishAt),
17
+ startsAt: toDateTimeInput(resource.startsAt),
18
+ endsAt: toDateTimeInput(resource.endsAt),
19
+ },
21
20
  errors: {},
22
21
  _translations: [],
23
22
  },
@@ -33,42 +32,29 @@ const update = async (ctx) => {
33
32
  throw new Error(`Missing revision #${parent_id}`);
34
33
  }
35
34
 
36
- const params = ctx.resourceParams.meta_settings;
35
+ const params = ctx.resourceParams.resource;
36
+ const resource = ctx.client.eventRevisions.deepMerge(
37
+ revision,
38
+ ctx.client.eventRevisions.formatDates(params)
39
+ );
37
40
 
38
41
  const { errors } = await ctx.client.eventRevisions.update(
39
42
  revision.id,
40
43
  ctx.locale,
41
- {
42
- slug: revision.slug,
43
- title: revision.title,
44
- visibility: revision.visibility,
45
- publishAt: revision.publishAt,
46
- startsAt: revision.startsAt,
47
- endsAt: revision.endsAt,
48
- widgets: JSON.stringify(revision.widgets),
49
- tags: revision.tags.map((t) => t.id),
50
- categories: revision.categories.map((c) => c.id),
51
- settings: JSON.stringify({
52
- ...revision.settings,
53
- meta: {
54
- title: params.title,
55
- description: params.description,
56
- image: JSON.parse(params.image),
57
- },
58
- }),
59
- }
44
+ ctx.client.eventRevisions.selectUpdateParams(resource)
60
45
  );
61
46
 
62
47
  if (errors) {
63
48
  return {
64
49
  assigns: {
65
- meta_settings: {
66
- ...params,
67
- id: revision.id,
68
- originalId: revision.originalId,
50
+ resource: {
51
+ ...resource,
52
+ publishAt: toDateTimeInput(resource.publishAt),
53
+ startsAt: toDateTimeInput(resource.startsAt),
54
+ endsAt: toDateTimeInput(resource.endsAt),
69
55
  },
70
56
  errors: {
71
- meta_settings: ctx.client.eventRevisions.formatErrors(errors),
57
+ resource: ctx.client.eventRevisions.formatErrors(errors),
72
58
  },
73
59
  _translations: [],
74
60
  },
@@ -1,23 +1,25 @@
1
+ import { toDateTimeInput, checkboxesToArray } from "../../utils";
2
+
1
3
  const edit_form = async (ctx) => {
2
4
  const { parent_id } = ctx.params;
3
5
 
4
- const revision = await ctx.client.eventRevisions.find(parent_id, ctx.locale);
6
+ const resource = await ctx.client.eventRevisions.find(parent_id, ctx.locale);
5
7
 
6
- if (!revision) {
8
+ if (!resource) {
7
9
  throw new Error(`Missing revision #${parent_id}`);
8
10
  }
9
11
 
10
12
  const tags = await ctx.client.tags.all(ctx.locale);
11
13
 
12
- const tag_settings = {
13
- id: revision.id,
14
- originalId: revision.originalId,
15
- tags: revision.tags.map((t) => t.id),
16
- };
17
-
18
14
  return {
19
15
  assigns: {
20
- tag_settings,
16
+ resource: {
17
+ ...resource,
18
+ publishAt: toDateTimeInput(resource.publishAt),
19
+ startsAt: toDateTimeInput(resource.startsAt),
20
+ endsAt: toDateTimeInput(resource.endsAt),
21
+ tags: resource.tags.map((t) => t.id),
22
+ },
21
23
  errors: {},
22
24
  tags: tags.list,
23
25
  _translations: [],
@@ -34,25 +36,18 @@ const update = async (ctx) => {
34
36
  throw new Error(`Missing revision #${parent_id}`);
35
37
  }
36
38
 
37
- const params = ctx.resourceParams.tag_settings;
39
+ const params = ctx.resourceParams.resource ? ctx.resourceParams.resource : {};
40
+ params.tags = checkboxesToArray(params.tags);
41
+
42
+ const resource = ctx.client.eventRevisions.deepMerge(
43
+ revision,
44
+ ctx.client.eventRevisions.formatDates(params)
45
+ );
38
46
 
39
47
  const { errors } = await ctx.client.eventRevisions.update(
40
48
  revision.id,
41
49
  ctx.locale,
42
- {
43
- slug: revision.slug,
44
- title: revision.title,
45
- visibility: revision.visibility,
46
- publishAt: revision.publishAt,
47
- startsAt: revision.startsAt,
48
- endsAt: revision.endsAt,
49
- widgets: JSON.stringify(revision.widgets),
50
- tags: params.tags,
51
- categories: revision.categories.map((c) => c.id),
52
- settings: JSON.stringify({
53
- ...revision.settings,
54
- }),
55
- }
50
+ ctx.client.eventRevisions.selectUpdateParams(resource)
56
51
  );
57
52
 
58
53
  if (errors) {
@@ -60,13 +55,14 @@ const update = async (ctx) => {
60
55
 
61
56
  return {
62
57
  assigns: {
63
- tag_settings: {
64
- ...params,
65
- id: revision.id,
66
- originalId: revision.originalId,
58
+ resource: {
59
+ ...resource,
60
+ publishAt: toDateTimeInput(resource.publishAt),
61
+ startsAt: toDateTimeInput(resource.startsAt),
62
+ endsAt: toDateTimeInput(resource.endsAt),
67
63
  },
68
64
  errors: {
69
- tag_settings: ctx.client.eventRevisions.formatErrors(errors),
65
+ resource: ctx.client.eventRevisions.formatErrors(errors),
70
66
  },
71
67
  tags: tags.list,
72
68
  _translations: [],
@@ -1,21 +1,22 @@
1
+ import { toDateTimeInput } from "../../utils";
2
+
1
3
  const edit_form = async (ctx) => {
2
4
  const { parent_id } = ctx.params;
3
5
 
4
- const revision = await ctx.client.eventRevisions.find(parent_id, ctx.locale);
6
+ const resource = await ctx.client.eventRevisions.find(parent_id, ctx.locale);
5
7
 
6
- if (!revision) {
8
+ if (!resource) {
7
9
  throw new Error(`Missing revision #${parent_id}`);
8
10
  }
9
11
 
10
- const visual_settings = {
11
- id: revision.id,
12
- originalId: revision.originalId,
13
- layout: revision.settings.layout,
14
- };
15
-
16
12
  return {
17
13
  assigns: {
18
- visual_settings,
14
+ resource: {
15
+ ...resource,
16
+ publishAt: toDateTimeInput(resource.publishAt),
17
+ startsAt: toDateTimeInput(resource.startsAt),
18
+ endsAt: toDateTimeInput(resource.endsAt),
19
+ },
19
20
  errors: {},
20
21
  _translations: [],
21
22
  },
@@ -31,38 +32,29 @@ const update = async (ctx) => {
31
32
  throw new Error(`Missing revision #${parent_id}`);
32
33
  }
33
34
 
34
- const params = ctx.resourceParams.visual_settings;
35
+ const params = ctx.resourceParams.resource;
36
+ const resource = ctx.client.eventRevisions.deepMerge(
37
+ revision,
38
+ ctx.client.eventRevisions.formatDates(params)
39
+ );
35
40
 
36
41
  const { errors } = await ctx.client.eventRevisions.update(
37
42
  revision.id,
38
43
  ctx.locale,
39
- {
40
- slug: revision.slug,
41
- title: revision.title,
42
- visibility: revision.visibility,
43
- publishAt: revision.publishAt,
44
- startsAt: revision.startsAt,
45
- endsAt: revision.endsAt,
46
- widgets: JSON.stringify(revision.widgets),
47
- tags: revision.tags.map((t) => t.id),
48
- categories: revision.categories.map((c) => c.id),
49
- settings: JSON.stringify({
50
- ...revision.settings,
51
- layout: params.layout,
52
- }),
53
- }
44
+ ctx.client.eventRevisions.selectUpdateParams(resource)
54
45
  );
55
46
 
56
47
  if (errors) {
57
48
  return {
58
49
  assigns: {
59
- visual_settings: {
60
- ...params,
61
- id: revision.id,
62
- originalId: revision.originalId,
50
+ resource: {
51
+ ...resource,
52
+ publishAt: toDateTimeInput(resource.publishAt),
53
+ startsAt: toDateTimeInput(resource.startsAt),
54
+ endsAt: toDateTimeInput(resource.endsAt),
63
55
  },
64
56
  errors: {
65
- visual_settings: ctx.client.eventRevisions.formatErrors(errors),
57
+ resource: ctx.client.eventRevisions.formatErrors(errors),
66
58
  },
67
59
  _translations: [],
68
60
  },
@@ -8,7 +8,7 @@ const create_form = async (ctx) => {
8
8
 
9
9
  return {
10
10
  assigns: {
11
- deleteAction: {
11
+ resource: {
12
12
  id: event.id,
13
13
  redirect: "",
14
14
  },
@@ -20,7 +20,7 @@ const create_form = async (ctx) => {
20
20
 
21
21
  const create = async (ctx) => {
22
22
  const { parent_id } = ctx.params;
23
- const params = ctx.resourceParams.deleteAction;
23
+ const params = ctx.resourceParams.resource;
24
24
  const event = await ctx.client.events.find(parent_id, ctx.locale);
25
25
 
26
26
  if (!event) {
@@ -51,9 +51,9 @@ const create = async (ctx) => {
51
51
  if (errors) {
52
52
  return {
53
53
  assigns: {
54
- deleteAction: { ...params, id: event.id },
54
+ resource: { ...params, id: event.id },
55
55
  errors: {
56
- deleteAction: ctx.client.events.formatErrors(errors, "redirect"),
56
+ resource: ctx.client.events.formatErrors(errors, "redirect"),
57
57
  },
58
58
  _translations: [],
59
59
  },
@@ -1,4 +1,4 @@
1
- import { toUTCISO8601String } from "../../utils";
1
+ import { toDateTimeInput } from "../../utils";
2
2
 
3
3
  const index = async (ctx) => {
4
4
  const items = await ctx.client.events.list(
@@ -56,7 +56,7 @@ const create_form = async (ctx) => {
56
56
 
57
57
  return {
58
58
  assigns: {
59
- resource: { ...ctx.client.events.defaults(), meta_image: {} },
59
+ resource: { ...ctx.client.events.defaults() },
60
60
  tags: tags.list,
61
61
  errors: {},
62
62
  visibilityOptions: ctx.client.events.visibilityOptions(),
@@ -68,32 +68,13 @@ const create_form = async (ctx) => {
68
68
  const create = async (ctx) => {
69
69
  const params = { ...ctx.resourceParams.resource };
70
70
 
71
- params.meta_image = JSON.parse(params.meta_image || "{}");
71
+ const resource = ctx.client.events.deepMerge(
72
+ ctx.client.events.defaults(),
73
+ ctx.client.events.formatDates(params)
74
+ );
72
75
 
73
76
  const { errors } = await ctx.client.events.create(
74
- {
75
- title: params.title,
76
- slug: params.slug,
77
- visibility: params.visibility,
78
- publishAt: toUTCISO8601String(params.publish_at),
79
- startsAt: toUTCISO8601String(params.starts_at),
80
- endsAt: toUTCISO8601String(params.ends_at),
81
- settings: {
82
- layout: params.layout,
83
- meta: {
84
- title: params.meta_title,
85
- description: params.meta_description,
86
- image: params.meta_image,
87
- },
88
- credentials: {
89
- user: params.username || "",
90
- password: params.password || "",
91
- },
92
- },
93
- widgets: [],
94
- tags: params.tags || [],
95
- categories: params.categories || [],
96
- },
77
+ resource,
97
78
  ctx.locale,
98
79
  ctx.resourceConfig.eventType
99
80
  );
@@ -103,7 +84,12 @@ const create = async (ctx) => {
103
84
 
104
85
  return {
105
86
  assigns: {
106
- resource: params,
87
+ resource: {
88
+ ...resource,
89
+ publishAt: toDateTimeInput(resource.publishAt),
90
+ startsAt: toDateTimeInput(resource.startsAt),
91
+ endsAt: toDateTimeInput(resource.endsAt),
92
+ },
107
93
  tags: tags.list,
108
94
  errors: { resource: ctx.client.events.formatErrors(errors) },
109
95
  visibilityOptions: ctx.client.events.visibilityOptions(),