@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.
Files changed (163) hide show
  1. package/package.json +1 -1
  2. package/src/cloud/ArticleRevisions.js +30 -1
  3. package/src/cloud/Articles.js +22 -9
  4. package/src/cloud/EventRevisions.js +40 -1
  5. package/src/cloud/Events.js +32 -11
  6. package/src/cloud/PageRevisions.js +20 -1
  7. package/src/cloud/Pages.js +13 -7
  8. package/src/cloud/RaketaClient.js +76 -0
  9. package/src/handlers/article_revisions/CodeHandler.js +18 -34
  10. package/src/handlers/article_revisions/GeneralHandler.js +19 -38
  11. package/src/handlers/article_revisions/LocksHandler.js +11 -6
  12. package/src/handlers/article_revisions/MetaHandler.js +18 -34
  13. package/src/handlers/article_revisions/TagHandler.js +23 -29
  14. package/src/handlers/article_revisions/UnlocksHandler.js +1 -1
  15. package/src/handlers/article_revisions/VisualHandler.js +18 -28
  16. package/src/handlers/articles/ArticlesHandler.js +11 -25
  17. package/src/handlers/articles/DeletesHandler.js +4 -4
  18. package/src/handlers/articles/TranslationsHandler.js +30 -56
  19. package/src/handlers/articles/URLsHandler.js +7 -7
  20. package/src/handlers/event_revisions/CodeHandler.js +22 -36
  21. package/src/handlers/event_revisions/GeneralHandler.js +22 -42
  22. package/src/handlers/event_revisions/LocksHandler.js +7 -6
  23. package/src/handlers/event_revisions/MetaHandler.js +22 -36
  24. package/src/handlers/event_revisions/TagHandler.js +25 -29
  25. package/src/handlers/event_revisions/VisualHandler.js +22 -30
  26. package/src/handlers/events/DeletesHandler.js +4 -4
  27. package/src/handlers/events/EventsHandler.js +13 -27
  28. package/src/handlers/events/TranslationsHandler.js +35 -58
  29. package/src/handlers/events/URLsHandler.js +7 -7
  30. package/src/handlers/page_revisions/CodeHandler.js +8 -34
  31. package/src/handlers/page_revisions/GeneralHandler.js +10 -37
  32. package/src/handlers/page_revisions/LocksHandler.js +11 -6
  33. package/src/handlers/page_revisions/MetaHandler.js +8 -34
  34. package/src/handlers/page_revisions/TagHandler.js +16 -27
  35. package/src/handlers/page_revisions/VisualHandler.js +8 -28
  36. package/src/handlers/pages/DeletesHandler.js +4 -4
  37. package/src/handlers/pages/PagesHandler.js +7 -24
  38. package/src/handlers/pages/TranslationsHandler.js +23 -45
  39. package/src/handlers/pages/URLsHandler.js +7 -7
  40. package/src/helpers/FormBuilder.js +1 -2
  41. package/src/tests/handlers/RedirectsHandler.test/create.test.js +1 -1
  42. package/src/tests/handlers/RedirectsHandler.test/create_form.test.js +1 -1
  43. package/src/tests/handlers/RedirectsHandler.test/destroy.test.js +1 -1
  44. package/src/tests/handlers/RedirectsHandler.test/edit_form.test.js +1 -1
  45. package/src/tests/handlers/RedirectsHandler.test/index.test.js +1 -1
  46. package/src/tests/handlers/RedirectsHandler.test/show.test.js +1 -1
  47. package/src/tests/handlers/RedirectsHandler.test/update.test.js +1 -1
  48. package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/create.test.js +1 -1
  49. package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/destroy.test.js +1 -1
  50. package/src/tests/handlers/article_revisions/CodesHandler.test/edit_form.test.js +7 -7
  51. package/src/tests/handlers/article_revisions/CodesHandler.test/update.test.js +37 -19
  52. package/src/tests/handlers/article_revisions/GeneralHandler.test/edit_form.test.js +5 -11
  53. package/src/tests/handlers/article_revisions/GeneralHandler.test/update.test.js +36 -28
  54. package/src/tests/handlers/article_revisions/MetaHandler.test/edit_form.test.js +7 -8
  55. package/src/tests/handlers/article_revisions/MetaHandler.test/update.test.js +41 -25
  56. package/src/tests/handlers/article_revisions/PublishesHandler.test/create.test.js +2 -2
  57. package/src/tests/handlers/article_revisions/PublishesHandler.test/create_form.test.js +2 -2
  58. package/src/tests/handlers/article_revisions/RevertsHandler.test/create.test.js +1 -1
  59. package/src/tests/handlers/article_revisions/TagHandler.test/edit_form.test.js +10 -7
  60. package/src/tests/handlers/article_revisions/TagHandler.test/update.test.js +20 -14
  61. package/src/tests/handlers/article_revisions/VisualHandler.test.test/edit_form.test.js +7 -6
  62. package/src/tests/handlers/article_revisions/VisualHandler.test.test/update.test.js +30 -19
  63. package/src/tests/handlers/article_revisions/WidgetHandler.test/show.test.js +2 -2
  64. package/src/tests/handlers/article_revisions/WidgetHandler.test/update.test.js +2 -2
  65. package/src/tests/handlers/articles/ArticlesHandler.test/create.test.js +53 -29
  66. package/src/tests/handlers/articles/ArticlesHandler.test/create_form.test.js +3 -3
  67. package/src/tests/handlers/articles/ArticlesHandler.test/index.test.js +2 -2
  68. package/src/tests/handlers/articles/ArticlesHandler.test/show.test.js +3 -3
  69. package/src/tests/handlers/articles/ClonesHandler.test/create.test.js +1 -1
  70. package/src/tests/handlers/articles/DeletesHandler.test/create.test.js +4 -4
  71. package/src/tests/handlers/articles/DeletesHandler.test/create_form.test.js +2 -2
  72. package/src/tests/handlers/articles/URLsHandler.test/create.test.js +6 -6
  73. package/src/tests/handlers/articles/URLsHandler.test/create_form.test.js +2 -2
  74. package/src/tests/handlers/event_revisions/CodesHandler.test/edit_form.test.js +11 -7
  75. package/src/tests/handlers/event_revisions/CodesHandler.test/update.test.js +43 -19
  76. package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/create.test.js +1 -1
  77. package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/destroy.test.js +1 -1
  78. package/src/tests/handlers/event_revisions/GeneralHandler.test/edit_form.test.js +7 -13
  79. package/src/tests/handlers/event_revisions/GeneralHandler.test/update.test.js +42 -32
  80. package/src/tests/handlers/event_revisions/MetaHandler.test/edit_form.test.js +11 -8
  81. package/src/tests/handlers/event_revisions/MetaHandler.test/update.test.js +47 -25
  82. package/src/tests/handlers/event_revisions/PublishesHandler.test/create.test.js +2 -2
  83. package/src/tests/handlers/event_revisions/PublishesHandler.test/create_form.test.js +2 -2
  84. package/src/tests/handlers/event_revisions/RevertsHandler.test/create.test.js +1 -1
  85. package/src/tests/handlers/event_revisions/TagHandler.test/edit_form.test.js +14 -7
  86. package/src/tests/handlers/event_revisions/TagHandler.test/update.test.js +26 -14
  87. package/src/tests/handlers/event_revisions/VisualHandler.test.test/edit_form.test.js +11 -6
  88. package/src/tests/handlers/event_revisions/VisualHandler.test.test/update.test.js +36 -19
  89. package/src/tests/handlers/event_revisions/WidgetHandler.test/show.test.js +2 -2
  90. package/src/tests/handlers/event_revisions/WidgetHandler.test/update.test.js +2 -2
  91. package/src/tests/handlers/events/ClonesHandler.test/create.test.js +1 -1
  92. package/src/tests/handlers/events/DeletesHandler.test/create.test.js +4 -4
  93. package/src/tests/handlers/events/DeletesHandler.test/create_form.test.js +2 -2
  94. package/src/tests/handlers/events/EventsHandler.test/create.test.js +53 -37
  95. package/src/tests/handlers/events/EventsHandler.test/create_form.test.js +3 -3
  96. package/src/tests/handlers/events/EventsHandler.test/index.test.js +2 -2
  97. package/src/tests/handlers/events/EventsHandler.test/show.test.js +3 -3
  98. package/src/tests/handlers/events/URLsHandler.test/create.test.js +6 -6
  99. package/src/tests/handlers/events/URLsHandler.test/create_form.test.js +2 -2
  100. package/src/tests/handlers/page_revisions/CodesHandler.test/edit_form.test.js +10 -8
  101. package/src/tests/handlers/page_revisions/CodesHandler.test/update.test.js +30 -17
  102. package/src/tests/handlers/page_revisions/GeneralHandler.test/edit_form.test.js +3 -11
  103. package/src/tests/handlers/page_revisions/GeneralHandler.test/update.test.js +38 -22
  104. package/src/tests/handlers/page_revisions/MetaHandler.test/edit_form.test.js +2 -8
  105. package/src/tests/handlers/page_revisions/MetaHandler.test/update.test.js +37 -23
  106. package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/create.test.js +1 -1
  107. package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/destroy.test.js +1 -1
  108. package/src/tests/handlers/page_revisions/PublishesHandler.test/create.test.js +2 -2
  109. package/src/tests/handlers/page_revisions/PublishesHandler.test/create_form.test.js +2 -2
  110. package/src/tests/handlers/page_revisions/RevertsHandler.test/create.test.js +1 -1
  111. package/src/tests/handlers/page_revisions/TagHandler.test/edit_form.test.js +3 -7
  112. package/src/tests/handlers/page_revisions/TagHandler.test/update.test.js +11 -12
  113. package/src/tests/handlers/page_revisions/VisualHandler.test.test/edit_form.test.js +10 -7
  114. package/src/tests/handlers/page_revisions/VisualHandler.test.test/update.test.js +23 -17
  115. package/src/tests/handlers/page_revisions/WidgetHandler.test/show.test.js +2 -2
  116. package/src/tests/handlers/page_revisions/WidgetHandler.test/update.test.js +2 -2
  117. package/src/tests/handlers/pages/ConesHandler.test/create.test.js +1 -1
  118. package/src/tests/handlers/pages/DeletesHandler.test/create.test.js +4 -4
  119. package/src/tests/handlers/pages/DeletesHandler.test/create_form.test.js +2 -2
  120. package/src/tests/handlers/pages/PagesHandler.test/create.test.js +50 -27
  121. package/src/tests/handlers/pages/PagesHandler.test/create_form.test.js +3 -3
  122. package/src/tests/handlers/pages/PagesHandler.test/index.test.js +2 -2
  123. package/src/tests/handlers/pages/PagesHandler.test/show.test.js +3 -3
  124. package/src/tests/handlers/pages/URLsHandler.test/create.test.js +6 -6
  125. package/src/tests/handlers/pages/URLsHandler.test/create_form.test.js +2 -2
  126. package/src/utils.js +12 -0
  127. package/src/views/_shared/_credentials_input.ejs +31 -0
  128. package/src/views/_shared/_layout_input.ejs +5 -0
  129. package/src/views/article_revisions/_nav.ejs +5 -5
  130. package/src/views/article_revisions/codes/edit_form.ejs +17 -6
  131. package/src/views/article_revisions/general/edit_form.ejs +10 -36
  132. package/src/views/article_revisions/locks/create_form.ejs +4 -4
  133. package/src/views/article_revisions/meta/edit_form.ejs +7 -7
  134. package/src/views/article_revisions/tags/edit_form.ejs +5 -5
  135. package/src/views/article_revisions/visuals/edit_form.ejs +5 -9
  136. package/src/views/articles/_form.ejs +6 -37
  137. package/src/views/articles/deletes/create_form.ejs +9 -9
  138. package/src/views/articles/translations/_form.ejs +14 -46
  139. package/src/views/articles/urls/create_form.ejs +5 -5
  140. package/src/views/event_revisions/_nav.ejs +5 -5
  141. package/src/views/event_revisions/codes/edit_form.ejs +17 -6
  142. package/src/views/event_revisions/general/edit_form.ejs +12 -38
  143. package/src/views/event_revisions/locks/create_form.ejs +4 -4
  144. package/src/views/event_revisions/meta/edit_form.ejs +7 -7
  145. package/src/views/event_revisions/tags/edit_form.ejs +5 -5
  146. package/src/views/event_revisions/visuals/edit_form.ejs +5 -9
  147. package/src/views/events/_form.ejs +8 -39
  148. package/src/views/events/deletes/create_form.ejs +9 -9
  149. package/src/views/events/translations/_form.ejs +16 -47
  150. package/src/views/events/urls/create_form.ejs +5 -5
  151. package/src/views/layouts/application.ejs +57 -35
  152. package/src/views/page_revisions/_nav.ejs +5 -5
  153. package/src/views/page_revisions/codes/edit_form.ejs +17 -6
  154. package/src/views/page_revisions/general/edit_form.ejs +8 -35
  155. package/src/views/page_revisions/locks/create_form.ejs +4 -4
  156. package/src/views/page_revisions/meta/edit_form.ejs +7 -7
  157. package/src/views/page_revisions/publishes/_form.ejs +9 -9
  158. package/src/views/page_revisions/tags/edit_form.ejs +5 -5
  159. package/src/views/page_revisions/visuals/edit_form.ejs +5 -9
  160. package/src/views/pages/_form.ejs +5 -36
  161. package/src/views/pages/deletes/create_form.ejs +9 -9
  162. package/src/views/pages/translations/_form.ejs +13 -45
  163. package/src/views/pages/urls/create_form.ejs +5 -5
@@ -6,7 +6,7 @@ import Factory from "../../../support/factory";
6
6
  function buildCtx(pageID) {
7
7
  return {
8
8
  client: {
9
- pageRevisions: new PageRevisions({}, "token"),
9
+ pageRevisions: new PageRevisions(() => ({}), "token"),
10
10
  },
11
11
  params: { parent_id: pageID },
12
12
  locale: "en",
@@ -6,7 +6,7 @@ import Factory from "../../../support/factory";
6
6
  function buildCtx(revisionID) {
7
7
  return {
8
8
  client: {
9
- pageRevisions: new PageRevisions({}, "token"),
9
+ pageRevisions: new PageRevisions(() => ({}), "token"),
10
10
  },
11
11
  params: { id: revisionID },
12
12
  locale: "en",
@@ -7,8 +7,8 @@ import Factory from "../../../support/factory";
7
7
  function buildCtx(revision, resourceParams) {
8
8
  return {
9
9
  client: {
10
- pageRevisions: new PageRevisions({}, "token"),
11
- pages: new Pages({}, "token"),
10
+ pageRevisions: new PageRevisions(() => ({}), "token"),
11
+ pages: new Pages(() => ({}), "token"),
12
12
  },
13
13
  params: { parent_id: revision.id },
14
14
  resourceParams,
@@ -7,8 +7,8 @@ import Factory from "../../../support/factory";
7
7
  function buildCtx(revision) {
8
8
  return {
9
9
  client: {
10
- pageRevisions: new PageRevisions({}, "token"),
11
- pages: new Pages({}, "token"),
10
+ pageRevisions: new PageRevisions(() => ({}), "token"),
11
+ pages: new Pages(() => ({}), "token"),
12
12
  },
13
13
  params: { parent_id: revision.id },
14
14
  locale: "en",
@@ -4,7 +4,7 @@ import PageRevisions from "../../../../cloud/PageRevisions";
4
4
  function buildCtx(pageID, version) {
5
5
  return {
6
6
  client: {
7
- pageRevisions: new PageRevisions({}, "token"),
7
+ pageRevisions: new PageRevisions(() => ({}), "token"),
8
8
  },
9
9
  params: { parent_id: pageID },
10
10
  resourceParams: { version },
@@ -7,8 +7,8 @@ import Factory from "../../../support/factory";
7
7
  function buildCtx(revision) {
8
8
  return {
9
9
  client: {
10
- pageRevisions: new PageRevisions({}, "token"),
11
- tags: new Tags({}, "token"),
10
+ pageRevisions: new PageRevisions(() => ({}), "token"),
11
+ tags: new Tags(() => ({}), "token"),
12
12
  },
13
13
  params: { parent_id: revision.id },
14
14
  locale: "en",
@@ -41,11 +41,7 @@ describe("Page revision tags settings", () => {
41
41
 
42
42
  expect(result).toEqual({
43
43
  assigns: {
44
- tag_settings: {
45
- id: revision.id,
46
- originalId: revision.originalId,
47
- tags: revision.tags.map((t) => t.id),
48
- },
44
+ resource: revision,
49
45
  tags: tags,
50
46
  errors: {},
51
47
  _translations: [],
@@ -7,12 +7,12 @@ import Factory from "../../../support/factory";
7
7
  function buildCtx(revision, updateSettings) {
8
8
  return {
9
9
  client: {
10
- pageRevisions: new PageRevisions({}, "token"),
11
- tags: new Tags({}, "token"),
10
+ pageRevisions: new PageRevisions(() => ({}), "token"),
11
+ tags: new Tags(() => ({}), "token"),
12
12
  },
13
13
  params: { parent_id: revision.id },
14
14
  resourceParams: {
15
- tag_settings: updateSettings,
15
+ resource: updateSettings,
16
16
  },
17
17
  locale: "en",
18
18
  resourceConfig: {
@@ -54,10 +54,10 @@ describe("Page revision tags settings", () => {
54
54
  slug: revision.slug,
55
55
  title: revision.title,
56
56
  visibility: revision.visibility,
57
- widgets: JSON.stringify(revision.widgets),
57
+ widgets: revision.widgets,
58
58
  tags: updateSettings.tags,
59
59
  categories: revision.categories.map((c) => c.id),
60
- settings: JSON.stringify(revision.settings),
60
+ settings: revision.settings,
61
61
  });
62
62
 
63
63
  expect(result).toEqual({
@@ -102,22 +102,21 @@ describe("Page revision tags settings", () => {
102
102
  slug: revision.slug,
103
103
  title: revision.title,
104
104
  visibility: revision.visibility,
105
- widgets: JSON.stringify(revision.widgets),
105
+ widgets: revision.widgets,
106
106
  tags: updateSettings.tags,
107
107
  categories: revision.categories.map((c) => c.id),
108
- settings: JSON.stringify(revision.settings),
108
+ settings: revision.settings,
109
109
  });
110
110
  expect(mockTags).toHaveBeenCalledWith("en");
111
111
 
112
112
  expect(result).toEqual({
113
113
  assigns: {
114
- tag_settings: {
115
- ...updateSettings,
116
- id: revision.id,
117
- originalId: revision.originalId,
114
+ resource: {
115
+ ...revision,
116
+ tags: updateSettings.tags,
118
117
  },
119
118
  errors: {
120
- tag_settings: { generalError: "some error" },
119
+ resource: { generalError: "some error" },
121
120
  },
122
121
  tags: tags,
123
122
  _translations: [],
@@ -6,7 +6,7 @@ import Factory from "../../../support/factory";
6
6
  function buildCtx(revision) {
7
7
  return {
8
8
  client: {
9
- pageRevisions: new PageRevisions({}, "token"),
9
+ pageRevisions: new PageRevisions(() => ({}), "token"),
10
10
  },
11
11
  params: { parent_id: revision.id },
12
12
  locale: "en",
@@ -15,7 +15,14 @@ function buildCtx(revision) {
15
15
 
16
16
  describe("Page revision visuals settings", () => {
17
17
  test("edit_form when a revision exists", async () => {
18
- const revision = Factory.build("page_revision");
18
+ const revision = Factory.build("page_revision", {
19
+ settings: {
20
+ layout: "default",
21
+ meta: {
22
+ title: "Meta title",
23
+ },
24
+ },
25
+ });
19
26
  const ctx = buildCtx(revision);
20
27
 
21
28
  const mockFind = jest
@@ -28,11 +35,7 @@ describe("Page revision visuals settings", () => {
28
35
 
29
36
  expect(result).toEqual({
30
37
  assigns: {
31
- visual_settings: {
32
- id: revision.id,
33
- originalId: revision.originalId,
34
- layout: revision.settings.layout,
35
- },
38
+ resource: revision,
36
39
  errors: {},
37
40
  _translations: [],
38
41
  },
@@ -6,11 +6,11 @@ import Factory from "../../../support/factory";
6
6
  function buildCtx(revision, updateSettings) {
7
7
  return {
8
8
  client: {
9
- pageRevisions: new PageRevisions({}, "token"),
9
+ pageRevisions: new PageRevisions(() => ({}), "token"),
10
10
  },
11
11
  params: { parent_id: revision.id },
12
12
  resourceParams: {
13
- visual_settings: updateSettings,
13
+ resource: updateSettings,
14
14
  },
15
15
  locale: "en",
16
16
  resourceConfig: {
@@ -25,7 +25,9 @@ describe("Page revision visuals settings", () => {
25
25
  const revision = Factory.build("page_revision");
26
26
 
27
27
  const updateSettings = {
28
- layout: "bla",
28
+ settings: {
29
+ layout: "bla",
30
+ },
29
31
  };
30
32
 
31
33
  const ctx = buildCtx(revision, updateSettings);
@@ -48,13 +50,13 @@ describe("Page revision visuals settings", () => {
48
50
  slug: revision.slug,
49
51
  title: revision.title,
50
52
  visibility: revision.visibility,
51
- widgets: JSON.stringify(revision.widgets),
53
+ widgets: revision.widgets,
52
54
  tags: revision.tags.map((t) => t.id),
53
55
  categories: revision.categories.map((c) => c.id),
54
- settings: JSON.stringify({
56
+ settings: {
55
57
  ...revision.settings,
56
- layout: updateSettings.layout,
57
- }),
58
+ layout: "bla",
59
+ },
58
60
  });
59
61
 
60
62
  expect(result).toEqual({
@@ -66,7 +68,9 @@ describe("Page revision visuals settings", () => {
66
68
  const revision = Factory.build("page_revision");
67
69
 
68
70
  const updateSettings = {
69
- layout: "bla",
71
+ settings: {
72
+ layout: "bla",
73
+ },
70
74
  };
71
75
 
72
76
  const ctx = buildCtx(revision, updateSettings);
@@ -89,24 +93,26 @@ describe("Page revision visuals settings", () => {
89
93
  slug: revision.slug,
90
94
  title: revision.title,
91
95
  visibility: revision.visibility,
92
- widgets: JSON.stringify(revision.widgets),
96
+ widgets: revision.widgets,
93
97
  tags: revision.tags.map((t) => t.id),
94
98
  categories: revision.categories.map((c) => c.id),
95
- settings: JSON.stringify({
99
+ settings: {
96
100
  ...revision.settings,
97
- layout: updateSettings.layout,
98
- }),
101
+ layout: "bla",
102
+ },
99
103
  });
100
104
 
101
105
  expect(result).toEqual({
102
106
  assigns: {
103
- visual_settings: {
104
- ...updateSettings,
105
- id: revision.id,
106
- originalId: revision.originalId,
107
+ resource: {
108
+ ...revision,
109
+ settings: {
110
+ ...revision.settings,
111
+ layout: "bla",
112
+ },
107
113
  },
108
114
  errors: {
109
- visual_settings: { generalError: "some error" },
115
+ resource: { generalError: "some error" },
110
116
  },
111
117
  _translations: [],
112
118
  },
@@ -7,8 +7,8 @@ import Factory from "../../../support/factory";
7
7
  function buildCtx(revision) {
8
8
  return {
9
9
  client: {
10
- pageRevisions: new PageRevisions({}, "token"),
11
- settings: new Settings({}, "token"),
10
+ pageRevisions: new PageRevisions(() => ({}), "token"),
11
+ settings: new Settings(() => ({}), "token"),
12
12
  },
13
13
  params: { parent_id: revision.id },
14
14
  locale: "en",
@@ -7,8 +7,8 @@ import Factory from "../../../support/factory";
7
7
  function buildCtx(revision, newWidgets) {
8
8
  return {
9
9
  client: {
10
- pageRevisions: new PageRevisions({}, "token"),
11
- settings: new Settings({}, "token"),
10
+ pageRevisions: new PageRevisions(() => ({}), "token"),
11
+ settings: new Settings(() => ({}), "token"),
12
12
  },
13
13
  params: { parent_id: revision.id },
14
14
  resourceParams: {
@@ -5,7 +5,7 @@ import Factory from "../../../support/factory";
5
5
  function buildCtx(page) {
6
6
  return {
7
7
  client: {
8
- pages: new Pages({}, "token"),
8
+ pages: new Pages(() => ({}), "token"),
9
9
  },
10
10
  params: { parent_id: page.id },
11
11
  locale: "en",
@@ -6,11 +6,11 @@ import { remoteConfig } from "../../../support/handlersHelper";
6
6
  function buildCtx(page, updateSettings) {
7
7
  return {
8
8
  client: {
9
- pages: new Pages({}, "token"),
9
+ pages: new Pages(() => ({}), "token"),
10
10
  },
11
11
  params: { parent_id: page.id },
12
12
  resourceParams: {
13
- deleteAction: updateSettings,
13
+ resource: updateSettings,
14
14
  },
15
15
  locale: "en",
16
16
  remoteConfig: remoteConfig(),
@@ -90,9 +90,9 @@ describe("Page delete", () => {
90
90
 
91
91
  expect(result).toEqual({
92
92
  assigns: {
93
- deleteAction: { ...updateSettings, id: page.id },
93
+ resource: { ...updateSettings, id: page.id },
94
94
  errors: {
95
- deleteAction: { redirect: "url: has already been taken" },
95
+ resource: { redirect: "url: has already been taken" },
96
96
  },
97
97
  _translations: [],
98
98
  },
@@ -6,7 +6,7 @@ import { remoteConfig } from "../../../support/handlersHelper";
6
6
  function buildCtx(page) {
7
7
  return {
8
8
  client: {
9
- pages: new Pages({}, "token"),
9
+ pages: new Pages(() => ({}), "token"),
10
10
  },
11
11
  params: { parent_id: page.id },
12
12
  locale: "en",
@@ -33,7 +33,7 @@ describe("Page delete", () => {
33
33
 
34
34
  expect(result).toEqual({
35
35
  assigns: {
36
- deleteAction: {
36
+ resource: {
37
37
  id: page.id,
38
38
  redirect: "",
39
39
  },
@@ -8,8 +8,8 @@ describe("Pages Handler", () => {
8
8
  function buildCtx(params) {
9
9
  return {
10
10
  client: {
11
- pages: new Pages({}, "token"),
12
- tags: new Tags({}, "token"),
11
+ pages: new Pages(() => ({}), "token"),
12
+ tags: new Tags(() => ({}), "token"),
13
13
  },
14
14
  resourceParams: {
15
15
  resource: params,
@@ -28,12 +28,18 @@ describe("Pages Handler", () => {
28
28
  title: "Page title",
29
29
  slug: "url",
30
30
  visibility: "public",
31
- layout: "default",
32
- meta_title: "Meta title",
33
- meta_description: "Meta description",
34
- meta_image: JSON.stringify({ id: 42 }),
35
- username: "admin",
36
- password: "admin123!@#",
31
+ settings: {
32
+ layout: "default",
33
+ meta: {
34
+ title: "Meta title",
35
+ description: "Meta description",
36
+ image: JSON.stringify({ id: 42 }),
37
+ },
38
+ credentials: {
39
+ user: "admin",
40
+ password: "admin123!@#",
41
+ },
42
+ },
37
43
  tags: [tag.id],
38
44
  };
39
45
 
@@ -51,15 +57,15 @@ describe("Pages Handler", () => {
51
57
  slug: params.slug,
52
58
  visibility: params.visibility,
53
59
  settings: {
54
- layout: params.layout,
60
+ layout: params.settings.layout,
55
61
  meta: {
56
- title: params.meta_title,
57
- description: params.meta_description,
58
- image: JSON.parse(params.meta_image),
62
+ title: params.settings.meta.title,
63
+ description: params.settings.meta.description,
64
+ image: JSON.parse(params.settings.meta.image),
59
65
  },
60
66
  credentials: {
61
- user: params.username,
62
- password: params.password,
67
+ user: params.settings.credentials.user,
68
+ password: params.settings.credentials.password,
63
69
  },
64
70
  },
65
71
  widgets: [],
@@ -81,12 +87,18 @@ describe("Pages Handler", () => {
81
87
  title: "Page title",
82
88
  slug: "",
83
89
  visibility: "public",
84
- layout: "default",
85
- meta_title: "Meta title",
86
- meta_description: "Meta description",
87
- meta_image: JSON.stringify({ id: 42 }),
88
- username: "admin",
89
- password: "admin123!@#",
90
+ settings: {
91
+ layout: "default",
92
+ meta: {
93
+ title: "Meta title",
94
+ description: "Meta description",
95
+ image: JSON.stringify({ id: 42 }),
96
+ },
97
+ credentials: {
98
+ user: "admin",
99
+ password: "admin123!@#",
100
+ },
101
+ },
90
102
  tags: [tag.id],
91
103
  };
92
104
 
@@ -112,15 +124,15 @@ describe("Pages Handler", () => {
112
124
  slug: "",
113
125
  visibility: params.visibility,
114
126
  settings: {
115
- layout: params.layout,
127
+ layout: params.settings.layout,
116
128
  meta: {
117
- title: params.meta_title,
118
- description: params.meta_description,
119
- image: JSON.parse(params.meta_image),
129
+ title: params.settings.meta.title,
130
+ description: params.settings.meta.description,
131
+ image: JSON.parse(params.settings.meta.image),
120
132
  },
121
133
  credentials: {
122
- user: params.username,
123
- password: params.password,
134
+ user: params.settings.credentials.user,
135
+ password: params.settings.credentials.password,
124
136
  },
125
137
  },
126
138
  widgets: [],
@@ -133,7 +145,18 @@ describe("Pages Handler", () => {
133
145
 
134
146
  expect(result).toEqual({
135
147
  assigns: {
136
- resource: { ...params, meta_image: JSON.parse(params.meta_image) },
148
+ resource: {
149
+ widgets: [],
150
+ categories: [],
151
+ ...params,
152
+ settings: {
153
+ ...params.settings,
154
+ meta: {
155
+ ...params.settings.meta,
156
+ image: JSON.parse(params.settings.meta.image),
157
+ },
158
+ },
159
+ },
137
160
  tags: [tag],
138
161
  errors: { resource: { slug: "cannot be blank" } },
139
162
  visibilityOptions: ctx.client.pages.visibilityOptions(),
@@ -8,8 +8,8 @@ describe("Pages Handler", () => {
8
8
  function buildCtx() {
9
9
  return {
10
10
  client: {
11
- pages: new Pages({}, "token"),
12
- tags: new Tags({}, "token"),
11
+ pages: new Pages(() => ({}), "token"),
12
+ tags: new Tags(() => ({}), "token"),
13
13
  },
14
14
  query: { foo: "bar" },
15
15
  locale: "en",
@@ -30,7 +30,7 @@ describe("Pages Handler", () => {
30
30
 
31
31
  expect(result).toEqual({
32
32
  assigns: {
33
- resource: { ...ctx.client.pages.defaults(), meta_image: {} },
33
+ resource: { ...ctx.client.pages.defaults() },
34
34
  tags: tags,
35
35
  errors: {},
36
36
  visibilityOptions: ctx.client.pages.visibilityOptions(),
@@ -8,8 +8,8 @@ describe("Pages Handler", () => {
8
8
  function buildCtx() {
9
9
  return {
10
10
  client: {
11
- pages: new Pages({}, "token"),
12
- tags: new Tags({}, "token"),
11
+ pages: new Pages(() => ({}), "token"),
12
+ tags: new Tags(() => ({}), "token"),
13
13
  },
14
14
  query: { foo: "bar" },
15
15
  locale: "en",
@@ -9,9 +9,9 @@ describe("Pages Handler", () => {
9
9
  function buildCtx(page) {
10
10
  return {
11
11
  client: {
12
- pages: new Pages({}, "token"),
13
- pageChanges: new PageChanges({}, "token"),
14
- pageRevisions: new PageRevisions({}, "token"),
12
+ pages: new Pages(() => ({}), "token"),
13
+ pageChanges: new PageChanges(() => ({}), "token"),
14
+ pageRevisions: new PageRevisions(() => ({}), "token"),
15
15
  },
16
16
  params: { id: page.id },
17
17
  locale: "en",
@@ -6,11 +6,11 @@ import { remoteConfig } from "../../../support/handlersHelper";
6
6
  function buildCtx(page, updateSettings) {
7
7
  return {
8
8
  client: {
9
- pages: new Pages({}, "token"),
9
+ pages: new Pages(() => ({}), "token"),
10
10
  },
11
11
  params: { parent_id: page.id },
12
12
  resourceParams: {
13
- change: updateSettings,
13
+ resource: updateSettings,
14
14
  },
15
15
  locale: "en",
16
16
  remoteConfig: remoteConfig(),
@@ -88,8 +88,8 @@ describe("Page change url", () => {
88
88
 
89
89
  expect(result).toEqual({
90
90
  assigns: {
91
- change: { ...updateSettings, id: page.id },
92
- errors: { change: { slug: "has already been taken" } },
91
+ resource: { ...updateSettings, id: page.id },
92
+ errors: { resource: { slug: "has already been taken" } },
93
93
  _translations: [],
94
94
  },
95
95
  });
@@ -137,8 +137,8 @@ describe("Page change url", () => {
137
137
 
138
138
  expect(result).toEqual({
139
139
  assigns: {
140
- change: { ...updateSettings, id: page.id },
141
- errors: { change: { redirect: "url: has already been taken" } },
140
+ resource: { ...updateSettings, id: page.id },
141
+ errors: { resource: { redirect: "url: has already been taken" } },
142
142
  _translations: [],
143
143
  },
144
144
  });
@@ -5,7 +5,7 @@ import Factory from "../../../support/factory";
5
5
  function buildCtx(page) {
6
6
  return {
7
7
  client: {
8
- pages: new Pages({}, "token"),
8
+ pages: new Pages(() => ({}), "token"),
9
9
  },
10
10
  params: { parent_id: page.id },
11
11
  locale: "en",
@@ -34,7 +34,7 @@ describe("Page change url", () => {
34
34
 
35
35
  expect(result).toEqual({
36
36
  assigns: {
37
- change: { slug: page.slug, id: page.id, redirect: null },
37
+ resource: { slug: page.slug, id: page.id, redirect: null },
38
38
  errors: {},
39
39
  _translations: [],
40
40
  },
package/src/utils.js CHANGED
@@ -28,3 +28,15 @@ export function toDateTimeInput(initialDate = null) {
28
28
  now.getMinutes().toString().padStart(2, "0"),
29
29
  ].join("");
30
30
  }
31
+
32
+ export function checkboxesToArray(value) {
33
+ if (Array.isArray(value)) {
34
+ return value;
35
+ }
36
+
37
+ if (!value) {
38
+ return [];
39
+ }
40
+
41
+ return [value];
42
+ }
@@ -0,0 +1,31 @@
1
+ <%- f.field('resource.settings.credentials.user', { required: true, label: "Username" }) %>
2
+ <%- f.field('resource.settings.credentials.password', { required: true }) %>
3
+
4
+ <script>
5
+ function onVisibilityChange(event) {
6
+ const newValue = event.target.value;
7
+
8
+ const userInput = document.getElementById("f_resource_settings_credentials_user");
9
+ const passInput = document.getElementById("f_resource_settings_credentials_password");
10
+
11
+ if (newValue === "protected") {
12
+ userInput.parentElement.style.display = "block";
13
+ userInput.required = true;
14
+ passInput.parentElement.style.display = "block";
15
+ passInput.required = true;
16
+ } else {
17
+ userInput.parentElement.style.display = "none";
18
+ userInput.required = false;
19
+ passInput.parentElement.style.display = "none";
20
+ passInput.required = false;
21
+ }
22
+ }
23
+
24
+ onVisibilityChange({
25
+ target: {
26
+ value: '<%= resource.visibility %>'
27
+ }
28
+ })
29
+
30
+ document.getElementById('<%= visibilityFieldId %>').addEventListener("change", onVisibilityChange)
31
+ </script>
@@ -0,0 +1,5 @@
1
+ <%- f.field('resource.settings.layout', { as: 'select', required: true, options: [
2
+ ["default", "Default"],
3
+ ["landing", "Landing page"],
4
+ ["headless", "Headless"],
5
+ ] }) %>