@raketa-cloud/admin 1.8.3 → 1.8.6

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 (320) hide show
  1. package/dist/application.css +36 -0
  2. package/package.json +2 -2
  3. package/src/cloud/ResourceChanges.js +41 -0
  4. package/src/cloud/ResourceRevisions.js +242 -0
  5. package/src/cloud/Resources.js +219 -0
  6. package/src/cloud/documents/common.js +0 -30
  7. package/src/cloud/documents/resourcesDocuments.js +371 -0
  8. package/src/handlers/_shared/getResourceUpdateDestination.js +11 -0
  9. package/src/handlers/resource_revisions/CancelSchedulesHandler.js +31 -0
  10. package/src/handlers/resource_revisions/CodeHandler.js +70 -0
  11. package/src/handlers/resource_revisions/GeneralHandler.js +72 -0
  12. package/src/handlers/{article_revisions → resource_revisions}/LocksHandler.js +15 -10
  13. package/src/handlers/resource_revisions/MetaHandler.js +70 -0
  14. package/src/handlers/{article_revisions → resource_revisions}/PublishesHandler.js +27 -19
  15. package/src/handlers/resource_revisions/ResourceRevisionsHandler.js +65 -0
  16. package/src/handlers/{article_revisions → resource_revisions}/RevertsHandler.js +7 -5
  17. package/src/handlers/{page_revisions → resource_revisions}/TagHandler.js +31 -16
  18. package/src/handlers/resource_revisions/UnlocksHandler.js +29 -0
  19. package/src/handlers/resource_revisions/VisualHandler.js +71 -0
  20. package/src/handlers/{article_revisions → resource_revisions}/WidgetHandler.js +11 -6
  21. package/src/handlers/{pages → resources}/ChangeHandler.js +5 -3
  22. package/src/handlers/resources/ClonesHandler.js +24 -0
  23. package/src/handlers/resources/DeletesHandler.js +79 -0
  24. package/src/handlers/{pages → resources}/ExportsHandler.js +8 -4
  25. package/src/handlers/resources/HistoryHandler.js +39 -0
  26. package/src/handlers/{pages/PagesAPIHandler.js → resources/ResourcesAPIHandler.js} +4 -2
  27. package/src/handlers/{pages/PagesHandler.js → resources/ResourcesHandler.js} +35 -18
  28. package/src/handlers/{pages → resources}/TranslationsHandler.js +65 -37
  29. package/src/handlers/resources/URLsHandler.js +84 -0
  30. package/src/helpers/CSVExportHelper.js +5 -6
  31. package/src/index.js +28 -69
  32. package/src/routeArticlesModule.js +7 -167
  33. package/src/routeEventsModule.js +7 -182
  34. package/src/routePagesModule.js +7 -179
  35. package/src/routeResource.js +197 -0
  36. package/src/routeStandard.js +1 -1
  37. package/src/setupCloud.js +10 -30
  38. package/src/tests/HonoAdapter.coverage.test.js +640 -0
  39. package/src/tests/HonoAdapter.test.js +3 -0
  40. package/src/tests/buildResourcePath.test.js +69 -0
  41. package/src/tests/handlers/_shared/getResourceUpdateDestination.test.js +63 -0
  42. package/src/tests/handlers/{article_revisions/CancelScheduledHandler.test → resource_revisions/CancelSchedulesHandler.test}/create.test.js +26 -26
  43. package/src/tests/handlers/{page_revisions/CodesHandler.test → resource_revisions/CodeHandler.test}/edit_form.test.js +13 -16
  44. package/src/tests/handlers/{article_revisions/CodesHandler.test → resource_revisions/CodeHandler.test}/update.test.js +38 -57
  45. package/src/tests/handlers/resource_revisions/GeneralHandler.test/edit_form.test.js +58 -0
  46. package/src/tests/handlers/{article_revisions → resource_revisions}/GeneralHandler.test/update.test.js +39 -53
  47. package/src/tests/handlers/{event_revisions → resource_revisions}/LocksHandler.test/create.test.js +34 -31
  48. package/src/tests/handlers/{event_revisions → resource_revisions}/LocksHandler.test/create_form.test.js +16 -12
  49. package/src/tests/handlers/{page_revisions → resource_revisions}/MetaHandler.test/edit_form.test.js +13 -9
  50. package/src/tests/handlers/{article_revisions → resource_revisions}/MetaHandler.test/update.test.js +38 -57
  51. package/src/tests/handlers/{article_revisions → resource_revisions}/PublishesHandler.test/create.test.js +60 -72
  52. package/src/tests/handlers/{page_revisions → resource_revisions}/PublishesHandler.test/create_form.test.js +14 -10
  53. package/src/tests/handlers/resource_revisions/ResourceRevisionsHandler.test/create.test.js +87 -0
  54. package/src/tests/handlers/{article_revisions/ArticleRevisionsHandler.test → resource_revisions/ResourceRevisionsHandler.test}/destroy.test.js +13 -13
  55. package/src/tests/handlers/resource_revisions/RevertsHandler.test/create.test.js +83 -0
  56. package/src/tests/handlers/{event_revisions → resource_revisions}/TagHandler.test/edit_form.test.js +23 -19
  57. package/src/tests/handlers/{article_revisions → resource_revisions}/TagHandler.test/update.test.js +44 -49
  58. package/src/tests/handlers/{article_revisions → resource_revisions}/UnlocksHandler.test/create.test.js +22 -22
  59. package/src/tests/handlers/{page_revisions/VisualHandler.test.test → resource_revisions/VisualHandler.test}/edit_form.test.js +13 -16
  60. package/src/tests/handlers/resource_revisions/VisualHandler.test/update.test.js +130 -0
  61. package/src/tests/handlers/{event_revisions → resource_revisions}/WidgetHandler.test/show.test.js +11 -7
  62. package/src/tests/handlers/{event_revisions → resource_revisions}/WidgetHandler.test/update.test.js +28 -14
  63. package/src/tests/handlers/resources/ChangeHandler.test/show.test.js +57 -0
  64. package/src/tests/handlers/resources/ClonesHandler.test/create.test.js +57 -0
  65. package/src/tests/handlers/{articles → resources}/DeletesHandler.test/create.test.js +30 -30
  66. package/src/tests/handlers/resources/DeletesHandler.test/create_form.test.js +60 -0
  67. package/src/tests/handlers/{articles → resources}/ExportsHandler.test/index.test.js +57 -57
  68. package/src/tests/handlers/{articles/ArticlesHistoryHandler.test → resources/HistoryHandler.test}/index.test.js +19 -20
  69. package/src/tests/handlers/resources/ResourcesAPIHandler.test/index.test.js +41 -0
  70. package/src/tests/handlers/{pages/PagesHandler.test → resources/ResourcesHandler.test}/create.test.js +23 -22
  71. package/src/tests/handlers/{events/EventsHandler.test → resources/ResourcesHandler.test}/create_form.test.js +12 -11
  72. package/src/tests/handlers/{events/EventsHandler.test → resources/ResourcesHandler.test}/index.test.js +18 -18
  73. package/src/tests/handlers/resources/ResourcesHandler.test/show.test.js +111 -0
  74. package/src/tests/handlers/resources/TranslationsHandler.test/create.test.js +320 -0
  75. package/src/tests/handlers/resources/TranslationsHandler.test/create_form.test.js +85 -0
  76. package/src/tests/handlers/resources/TranslationsHandler.test/index.test.js +99 -0
  77. package/src/tests/handlers/{articles → resources}/URLsHandler.test/create.test.js +48 -43
  78. package/src/tests/handlers/resources/URLsHandler.test/create_form.test.js +55 -0
  79. package/src/tests/routeArticlesModule.test.js +43 -0
  80. package/src/tests/routeCategoriesModule.test.js +23 -0
  81. package/src/tests/routeEventsModule.test.js +43 -0
  82. package/src/tests/routePagesModule.test.js +43 -0
  83. package/src/tests/routeResource.test.js +202 -0
  84. package/src/tests/routeSettings.test.js +40 -0
  85. package/src/tests/routeStandard.test.js +70 -0
  86. package/src/tests/setGlobalContext.test.js +12 -0
  87. package/src/tests/setupAuthentication.test.js +407 -0
  88. package/src/tests/setupCloud.test.js +51 -0
  89. package/src/tests/support/factory.js +15 -86
  90. package/src/views/article_revisions/_nav.ejs +6 -6
  91. package/src/views/article_revisions/codes/_form.ejs +2 -2
  92. package/src/views/article_revisions/general/_form.ejs +3 -3
  93. package/src/views/article_revisions/locks/_form.ejs +2 -2
  94. package/src/views/article_revisions/meta/_form.ejs +2 -2
  95. package/src/views/article_revisions/publishes/_form.ejs +3 -3
  96. package/src/views/article_revisions/tags/_form.ejs +2 -2
  97. package/src/views/article_revisions/visuals/_form.ejs +2 -2
  98. package/src/views/articles/_form.ejs +9 -9
  99. package/src/views/articles/_shared/_export_button.ejs +1 -1
  100. package/src/views/articles/_shared/_history_toolbar.ejs +2 -2
  101. package/src/views/articles/_shared/_revision_operator.ejs +8 -0
  102. package/src/views/articles/_shared/_revision_toolbar.ejs +7 -7
  103. package/src/views/articles/_shared/_title.ejs +2 -2
  104. package/src/views/articles/_shared/_toolbar.ejs +6 -6
  105. package/src/views/articles/_shared/history_table.ejs +1 -1
  106. package/src/views/articles/create_form.ejs +1 -1
  107. package/src/views/articles/deletes/create_form.ejs +3 -3
  108. package/src/views/articles/history/index.ejs +4 -4
  109. package/src/views/articles/index.ejs +14 -12
  110. package/src/views/articles/show.ejs +8 -22
  111. package/src/views/articles/translations/_translation_toolbar.ejs +2 -2
  112. package/src/views/articles/translations/create_form.ejs +2 -2
  113. package/src/views/articles/translations/index.ejs +3 -3
  114. package/src/views/articles/urls/create_form.ejs +3 -3
  115. package/src/views/event_revisions/_nav.ejs +6 -6
  116. package/src/views/event_revisions/codes/_form.ejs +2 -2
  117. package/src/views/event_revisions/general/_form.ejs +5 -5
  118. package/src/views/event_revisions/locks/_form.ejs +2 -2
  119. package/src/views/event_revisions/meta/_form.ejs +2 -2
  120. package/src/views/event_revisions/publishes/_form.ejs +3 -3
  121. package/src/views/event_revisions/tags/_form.ejs +2 -2
  122. package/src/views/event_revisions/visuals/_form.ejs +2 -2
  123. package/src/views/events/_form.ejs +6 -6
  124. package/src/views/events/_shared/_export_button.ejs +1 -1
  125. package/src/views/events/_shared/_history_toolbar.ejs +2 -2
  126. package/src/views/events/_shared/_revision_operator.ejs +8 -0
  127. package/src/views/events/_shared/_revision_toolbar.ejs +7 -7
  128. package/src/views/events/_shared/_title.ejs +2 -2
  129. package/src/views/events/_shared/_toolbar.ejs +6 -6
  130. package/src/views/events/_shared/history_table.ejs +1 -1
  131. package/src/views/events/create_form.ejs +1 -1
  132. package/src/views/events/deletes/create_form.ejs +3 -3
  133. package/src/views/events/history/index.ejs +4 -4
  134. package/src/views/events/index.ejs +14 -12
  135. package/src/views/events/show.ejs +8 -22
  136. package/src/views/events/translations/_translation_toolbar.ejs +2 -2
  137. package/src/views/events/translations/create_form.ejs +2 -2
  138. package/src/views/events/translations/index.ejs +3 -3
  139. package/src/views/events/urls/create_form.ejs +3 -3
  140. package/src/views/layouts/application.ejs +30 -0
  141. package/src/views/page_revisions/_nav.ejs +6 -6
  142. package/src/views/page_revisions/codes/_form.ejs +2 -2
  143. package/src/views/page_revisions/general/_form.ejs +2 -2
  144. package/src/views/page_revisions/locks/_form.ejs +2 -2
  145. package/src/views/page_revisions/meta/_form.ejs +2 -2
  146. package/src/views/page_revisions/publishes/_form.ejs +3 -3
  147. package/src/views/page_revisions/tags/_form.ejs +2 -2
  148. package/src/views/page_revisions/visuals/_form.ejs +2 -2
  149. package/src/views/pages/_form.ejs +3 -3
  150. package/src/views/pages/_shared/_export_button.ejs +1 -1
  151. package/src/views/pages/_shared/_history_toolbar.ejs +2 -2
  152. package/src/views/pages/_shared/_revision_operator.ejs +8 -0
  153. package/src/views/pages/_shared/_revision_toolbar.ejs +7 -7
  154. package/src/views/pages/_shared/_title.ejs +2 -2
  155. package/src/views/pages/_shared/_toolbar.ejs +6 -6
  156. package/src/views/pages/_shared/history_table.ejs +1 -1
  157. package/src/views/pages/create_form.ejs +1 -1
  158. package/src/views/pages/deletes/create_form.ejs +3 -3
  159. package/src/views/pages/history/index.ejs +4 -4
  160. package/src/views/pages/index.ejs +12 -10
  161. package/src/views/pages/show.ejs +8 -22
  162. package/src/views/pages/translations/_translation_toolbar.ejs +2 -2
  163. package/src/views/pages/translations/create_form.ejs +2 -2
  164. package/src/views/pages/translations/index.ejs +3 -3
  165. package/src/views/pages/urls/create_form.ejs +3 -3
  166. package/src/cloud/ArticleChanges.js +0 -36
  167. package/src/cloud/ArticleRevisions.js +0 -239
  168. package/src/cloud/Articles.js +0 -216
  169. package/src/cloud/EventChanges.js +0 -36
  170. package/src/cloud/EventRevisions.js +0 -246
  171. package/src/cloud/Events.js +0 -231
  172. package/src/cloud/PageChanges.js +0 -36
  173. package/src/cloud/PageRevisions.js +0 -226
  174. package/src/cloud/Pages.js +0 -204
  175. package/src/cloud/documents/articlesDocuments.js +0 -375
  176. package/src/cloud/documents/eventsDocuments.js +0 -390
  177. package/src/cloud/documents/pagesDocuments.js +0 -370
  178. package/src/handlers/_shared/getArticlesUpdateDestination.js +0 -7
  179. package/src/handlers/_shared/getEventsUpdateDestination.js +0 -7
  180. package/src/handlers/_shared/getPagesUpdateDestination.js +0 -8
  181. package/src/handlers/article_revisions/ArticleRevisionsHandler.js +0 -57
  182. package/src/handlers/article_revisions/CancelSchedulesHandler.js +0 -26
  183. package/src/handlers/article_revisions/CodeHandler.js +0 -75
  184. package/src/handlers/article_revisions/GeneralHandler.js +0 -77
  185. package/src/handlers/article_revisions/MetaHandler.js +0 -75
  186. package/src/handlers/article_revisions/TagHandler.js +0 -83
  187. package/src/handlers/article_revisions/UnlocksHandler.js +0 -24
  188. package/src/handlers/article_revisions/VisualHandler.js +0 -75
  189. package/src/handlers/articles/ArticlesAPIHandler.js +0 -15
  190. package/src/handlers/articles/ArticlesHandler.js +0 -126
  191. package/src/handlers/articles/ChangeHandler.js +0 -22
  192. package/src/handlers/articles/ClonesHandler.js +0 -19
  193. package/src/handlers/articles/DeletesHandler.js +0 -72
  194. package/src/handlers/articles/ExportsHandler.js +0 -35
  195. package/src/handlers/articles/HistoryHandler.js +0 -31
  196. package/src/handlers/articles/TranslationsHandler.js +0 -231
  197. package/src/handlers/articles/URLsHandler.js +0 -83
  198. package/src/handlers/event_revisions/CancelSchedulesHandler.js +0 -26
  199. package/src/handlers/event_revisions/CodeHandler.js +0 -73
  200. package/src/handlers/event_revisions/EventRevisionsHandler.js +0 -55
  201. package/src/handlers/event_revisions/GeneralHandler.js +0 -75
  202. package/src/handlers/event_revisions/LocksHandler.js +0 -65
  203. package/src/handlers/event_revisions/MetaHandler.js +0 -73
  204. package/src/handlers/event_revisions/PublishesHandler.js +0 -112
  205. package/src/handlers/event_revisions/RevertsHandler.js +0 -26
  206. package/src/handlers/event_revisions/TagHandler.js +0 -80
  207. package/src/handlers/event_revisions/UnlocksHandler.js +0 -24
  208. package/src/handlers/event_revisions/VisualHandler.js +0 -73
  209. package/src/handlers/event_revisions/WidgetHandler.js +0 -41
  210. package/src/handlers/events/ChangeHandler.js +0 -22
  211. package/src/handlers/events/ClonesHandler.js +0 -19
  212. package/src/handlers/events/DeletesHandler.js +0 -72
  213. package/src/handlers/events/EventsAPIHandler.js +0 -15
  214. package/src/handlers/events/EventsHandler.js +0 -128
  215. package/src/handlers/events/ExportsHandler.js +0 -35
  216. package/src/handlers/events/HistoryHandler.js +0 -31
  217. package/src/handlers/events/TranslationsHandler.js +0 -233
  218. package/src/handlers/events/URLsHandler.js +0 -81
  219. package/src/handlers/page_revisions/CancelSchedulesHandler.js +0 -26
  220. package/src/handlers/page_revisions/CodeHandler.js +0 -59
  221. package/src/handlers/page_revisions/GeneralHandler.js +0 -61
  222. package/src/handlers/page_revisions/LocksHandler.js +0 -69
  223. package/src/handlers/page_revisions/MetaHandler.js +0 -59
  224. package/src/handlers/page_revisions/PageRevisionsHandler.js +0 -55
  225. package/src/handlers/page_revisions/PublishesHandler.js +0 -112
  226. package/src/handlers/page_revisions/RevertsHandler.js +0 -26
  227. package/src/handlers/page_revisions/UnlocksHandler.js +0 -22
  228. package/src/handlers/page_revisions/VisualHandler.js +0 -60
  229. package/src/handlers/page_revisions/WidgetHandler.js +0 -41
  230. package/src/handlers/pages/ClonesHandler.js +0 -19
  231. package/src/handlers/pages/DeletesHandler.js +0 -68
  232. package/src/handlers/pages/HistoryHandler.js +0 -31
  233. package/src/handlers/pages/URLsHandler.js +0 -77
  234. package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/create.test.js +0 -87
  235. package/src/tests/handlers/article_revisions/CodesHandler.test/edit_form.test.js +0 -56
  236. package/src/tests/handlers/article_revisions/GeneralHandler.test/edit_form.test.js +0 -59
  237. package/src/tests/handlers/article_revisions/LocksHandler.test/create.test.js +0 -142
  238. package/src/tests/handlers/article_revisions/LocksHandler.test/create_form.test.js +0 -55
  239. package/src/tests/handlers/article_revisions/MetaHandler.test/edit_form.test.js +0 -56
  240. package/src/tests/handlers/article_revisions/PublishesHandler.test/create_form.test.js +0 -48
  241. package/src/tests/handlers/article_revisions/RevertsHandler.test/create.test.js +0 -86
  242. package/src/tests/handlers/article_revisions/TagHandler.test/edit_form.test.js +0 -72
  243. package/src/tests/handlers/article_revisions/VisualHandler.test.test/edit_form.test.js +0 -56
  244. package/src/tests/handlers/article_revisions/VisualHandler.test.test/update.test.js +0 -146
  245. package/src/tests/handlers/article_revisions/WidgetHandler.test/show.test.js +0 -46
  246. package/src/tests/handlers/article_revisions/WidgetHandler.test/update.test.js +0 -103
  247. package/src/tests/handlers/articles/ArticlesAPIHandler.test/index.test.js +0 -43
  248. package/src/tests/handlers/articles/ArticlesHandler.test/create.test.js +0 -172
  249. package/src/tests/handlers/articles/ArticlesHandler.test/create_form.test.js +0 -44
  250. package/src/tests/handlers/articles/ArticlesHandler.test/index.test.js +0 -73
  251. package/src/tests/handlers/articles/ArticlesHandler.test/show.test.js +0 -120
  252. package/src/tests/handlers/articles/ChangeHandler.test/show.test.js +0 -59
  253. package/src/tests/handlers/articles/ClonesHandler.test/create.test.js +0 -57
  254. package/src/tests/handlers/articles/DeletesHandler.test/create_form.test.js +0 -60
  255. package/src/tests/handlers/articles/TranslationHandler.test/create.test.js +0 -297
  256. package/src/tests/handlers/articles/TranslationHandler.test/create_form.test.js +0 -71
  257. package/src/tests/handlers/articles/TranslationHandler.test/index.test.js +0 -91
  258. package/src/tests/handlers/articles/URLsHandler.test/create_form.test.js +0 -55
  259. package/src/tests/handlers/event_revisions/CancelScheduledHandler.test/create.test.js +0 -90
  260. package/src/tests/handlers/event_revisions/CodesHandler.test/edit_form.test.js +0 -60
  261. package/src/tests/handlers/event_revisions/CodesHandler.test/update.test.js +0 -171
  262. package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/create.test.js +0 -87
  263. package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/destroy.test.js +0 -57
  264. package/src/tests/handlers/event_revisions/GeneralHandler.test/edit_form.test.js +0 -63
  265. package/src/tests/handlers/event_revisions/GeneralHandler.test/update.test.js +0 -172
  266. package/src/tests/handlers/event_revisions/MetaHandler.test/edit_form.test.js +0 -60
  267. package/src/tests/handlers/event_revisions/MetaHandler.test/update.test.js +0 -173
  268. package/src/tests/handlers/event_revisions/PublishesHandler.test/create.test.js +0 -333
  269. package/src/tests/handlers/event_revisions/PublishesHandler.test/create_form.test.js +0 -48
  270. package/src/tests/handlers/event_revisions/RevertsHandler.test/create.test.js +0 -83
  271. package/src/tests/handlers/event_revisions/TagHandler.test/update.test.js +0 -163
  272. package/src/tests/handlers/event_revisions/UnlocksHandler.test/create.test.js +0 -84
  273. package/src/tests/handlers/event_revisions/VisualHandler.test.test/edit_form.test.js +0 -60
  274. package/src/tests/handlers/event_revisions/VisualHandler.test.test/update.test.js +0 -156
  275. package/src/tests/handlers/events/ChangeHandler.test/show.test.js +0 -59
  276. package/src/tests/handlers/events/ClonesHandler.test/create.test.js +0 -57
  277. package/src/tests/handlers/events/DeletesHandler.test/create.test.js +0 -115
  278. package/src/tests/handlers/events/DeletesHandler.test/create_form.test.js +0 -60
  279. package/src/tests/handlers/events/EventsAPIHandler.test/index.test.js +0 -39
  280. package/src/tests/handlers/events/EventsHandler.test/create.test.js +0 -172
  281. package/src/tests/handlers/events/EventsHandler.test/show.test.js +0 -120
  282. package/src/tests/handlers/events/EventsHistoryHandler.test/index.test.js +0 -87
  283. package/src/tests/handlers/events/ExportsHandler.test/index.test.js +0 -212
  284. package/src/tests/handlers/events/TranslationHandler.test/create.test.js +0 -303
  285. package/src/tests/handlers/events/TranslationHandler.test/create_form.test.js +0 -71
  286. package/src/tests/handlers/events/TranslationHandler.test/index.test.js +0 -91
  287. package/src/tests/handlers/events/URLsHandler.test/create.test.js +0 -160
  288. package/src/tests/handlers/events/URLsHandler.test/create_form.test.js +0 -55
  289. package/src/tests/handlers/page_revisions/CancelScheduledHandler.test/create.test.js +0 -86
  290. package/src/tests/handlers/page_revisions/CodesHandler.test/update.test.js +0 -204
  291. package/src/tests/handlers/page_revisions/GeneralHandler.test/edit_form.test.js +0 -54
  292. package/src/tests/handlers/page_revisions/GeneralHandler.test/update.test.js +0 -219
  293. package/src/tests/handlers/page_revisions/LocksHandler.test/create.test.js +0 -138
  294. package/src/tests/handlers/page_revisions/LocksHandler.test/create_form.test.js +0 -55
  295. package/src/tests/handlers/page_revisions/MetaHandler.test/update.test.js +0 -211
  296. package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/create.test.js +0 -85
  297. package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/destroy.test.js +0 -57
  298. package/src/tests/handlers/page_revisions/PublishesHandler.test/create.test.js +0 -333
  299. package/src/tests/handlers/page_revisions/RevertsHandler.test/create.test.js +0 -83
  300. package/src/tests/handlers/page_revisions/TagHandler.test/edit_form.test.js +0 -100
  301. package/src/tests/handlers/page_revisions/TagHandler.test/update.test.js +0 -223
  302. package/src/tests/handlers/page_revisions/UnlocksHandler.test/create.test.js +0 -80
  303. package/src/tests/handlers/page_revisions/VisualHandler.test.test/update.test.js +0 -183
  304. package/src/tests/handlers/page_revisions/WidgetHandler.test/show.test.js +0 -46
  305. package/src/tests/handlers/page_revisions/WidgetHandler.test/update.test.js +0 -103
  306. package/src/tests/handlers/pages/ChangeHandler.test/show.test.js +0 -59
  307. package/src/tests/handlers/pages/ConesHandler.test/create.test.js +0 -57
  308. package/src/tests/handlers/pages/DeletesHandler.test/create.test.js +0 -115
  309. package/src/tests/handlers/pages/DeletesHandler.test/create_form.test.js +0 -60
  310. package/src/tests/handlers/pages/ExportsHandler.test/index.test.js +0 -212
  311. package/src/tests/handlers/pages/PagesAPIHandler.test/index.test.js +0 -39
  312. package/src/tests/handlers/pages/PagesHandler.test/create_form.test.js +0 -41
  313. package/src/tests/handlers/pages/PagesHandler.test/index.test.js +0 -69
  314. package/src/tests/handlers/pages/PagesHandler.test/show.test.js +0 -118
  315. package/src/tests/handlers/pages/PagesHistoryHandler.test/index.test.js +0 -87
  316. package/src/tests/handlers/pages/TranslationHandler.test/create.test.js +0 -290
  317. package/src/tests/handlers/pages/TranslationHandler.test/create_form.test.js +0 -71
  318. package/src/tests/handlers/pages/TranslationHandler.test/index.test.js +0 -87
  319. package/src/tests/handlers/pages/URLsHandler.test/create.test.js +0 -160
  320. package/src/tests/handlers/pages/URLsHandler.test/create_form.test.js +0 -58
@@ -0,0 +1,69 @@
1
+ import buildResourcePath from "../buildResourcePath";
2
+
3
+ describe("buildResourcePath", () => {
4
+ const prefix_map = {
5
+ page: "/",
6
+ article: "/blog",
7
+ event: "/events",
8
+ };
9
+
10
+ test("strips locale when locale matches defaultLocale", () => {
11
+ const result = buildResourcePath({
12
+ prefix_map,
13
+ resource: { slug: "about" },
14
+ resourceType: "page",
15
+ locale: "en",
16
+ defaultLocale: "en",
17
+ });
18
+
19
+ expect(result).toBe("/about");
20
+ });
21
+
22
+ test("prepends locale when not default", () => {
23
+ const result = buildResourcePath({
24
+ prefix_map,
25
+ resource: { slug: "hello" },
26
+ resourceType: "article",
27
+ locale: "bg",
28
+ defaultLocale: "en",
29
+ });
30
+
31
+ expect(result).toBe("/bg/blog/hello");
32
+ });
33
+
34
+ test("works for nested prefix", () => {
35
+ const result = buildResourcePath({
36
+ prefix_map,
37
+ resource: { slug: "summit" },
38
+ resourceType: "event",
39
+ locale: "de",
40
+ defaultLocale: "en",
41
+ });
42
+
43
+ expect(result).toBe("/de/events/summit");
44
+ });
45
+
46
+ test("collapses leading double slash for page resourceType in default locale", () => {
47
+ const result = buildResourcePath({
48
+ prefix_map,
49
+ resource: { slug: "" },
50
+ resourceType: "page",
51
+ locale: "en",
52
+ defaultLocale: "en",
53
+ });
54
+
55
+ expect(result).toBe("/");
56
+ });
57
+
58
+ test("throws when resourceType has no prefix mapping", () => {
59
+ expect(() =>
60
+ buildResourcePath({
61
+ prefix_map,
62
+ resource: { slug: "foo" },
63
+ resourceType: "unknown",
64
+ locale: "en",
65
+ defaultLocale: "en",
66
+ })
67
+ ).toThrow("Unknown resource type: unknown");
68
+ });
69
+ });
@@ -0,0 +1,63 @@
1
+ import getResourceUpdateDestination from "../../../handlers/_shared/getResourceUpdateDestination";
2
+
3
+ describe("getResourceUpdateDestination", () => {
4
+ function buildCtx(body) {
5
+ return {
6
+ locale: "en",
7
+ resourceConfig: {
8
+ resourceType: "article",
9
+ },
10
+ body,
11
+ };
12
+ }
13
+
14
+ test("returns edit destination with success flag when _next is not publish", () => {
15
+ const ctx = buildCtx({ _next: "save" });
16
+
17
+ const result = getResourceUpdateDestination(ctx, "42", "general");
18
+
19
+ expect(result).toBe("/en/article_revisions/42/general/edit?success=1");
20
+ });
21
+
22
+ test("returns publishes/new destination when _next is publish", () => {
23
+ const ctx = buildCtx({ _next: "publish" });
24
+
25
+ const result = getResourceUpdateDestination(ctx, "42", "general");
26
+
27
+ expect(result).toBe("/en/article_revisions/42/publishes/new");
28
+ });
29
+
30
+ test("returns edit destination when body is missing", () => {
31
+ const ctx = buildCtx(undefined);
32
+
33
+ const result = getResourceUpdateDestination(ctx, "42", "meta");
34
+
35
+ expect(result).toBe("/en/article_revisions/42/meta/edit?success=1");
36
+ });
37
+
38
+ test("returns edit destination when body has no _next", () => {
39
+ const ctx = buildCtx({});
40
+
41
+ const result = getResourceUpdateDestination(ctx, "7", "visuals");
42
+
43
+ expect(result).toBe("/en/article_revisions/7/visuals/edit?success=1");
44
+ });
45
+
46
+ test("uses locale from ctx", () => {
47
+ const ctx = buildCtx({});
48
+ ctx.locale = "bg";
49
+
50
+ const result = getResourceUpdateDestination(ctx, "42", "tags");
51
+
52
+ expect(result).toBe("/bg/article_revisions/42/tags/edit?success=1");
53
+ });
54
+
55
+ test("uses resourceType from ctx.resourceConfig", () => {
56
+ const ctx = buildCtx({});
57
+ ctx.resourceConfig.resourceType = "event";
58
+
59
+ const result = getResourceUpdateDestination(ctx, "42", "codes");
60
+
61
+ expect(result).toBe("/en/event_revisions/42/codes/edit?success=1");
62
+ });
63
+ });
@@ -1,45 +1,45 @@
1
1
  import Factory from "../../../support/factory";
2
- import ArticleRevisions from "../../../../cloud/ArticleRevisions";
3
- import CancelSchedulesHandler from "../../../../handlers/article_revisions/CancelSchedulesHandler";
2
+ import ResourceRevisions from "../../../../cloud/ResourceRevisions";
3
+ import CancelSchedulesHandler from "../../../../handlers/resource_revisions/CancelSchedulesHandler";
4
4
 
5
5
  function buildCtx(revision) {
6
6
  return {
7
7
  client: {
8
- articleRevisions: new ArticleRevisions(() => ({}), "token"),
8
+ resourceRevisions: new ResourceRevisions(() => ({}), "token"),
9
9
  },
10
10
  params: { parent_id: revision.id },
11
11
  locale: "en",
12
12
  resourceConfig: {
13
- articleType: "article",
14
- articleTypePlural: "articles",
13
+ resourceType: "article",
14
+ resourceTypePlural: "articles",
15
15
  },
16
16
  };
17
17
  }
18
18
 
19
- describe("Article revision schedule cancel", () => {
19
+ describe("Resource revision schedule cancel", () => {
20
20
  test("cancel of schedule successful", async () => {
21
- const revision = Factory.build("article_revision");
21
+ const revision = Factory.build("resource_revision");
22
22
  const ctx = buildCtx(revision);
23
23
 
24
- const mockUnlock = jest
25
- .spyOn(ctx.client.articleRevisions, "cancelSchedule")
24
+ const mockCancel = jest
25
+ .spyOn(ctx.client.resourceRevisions, "cancelSchedule")
26
26
  .mockImplementation(() => ({
27
- revision: revision,
27
+ revision,
28
28
  errors: null,
29
- articleErrors: null,
29
+ resourceErrors: null,
30
30
  }));
31
31
 
32
32
  const result = await CancelSchedulesHandler.create(ctx);
33
33
 
34
- expect(mockUnlock).toHaveBeenCalledWith(revision.id, "en");
34
+ expect(mockCancel).toHaveBeenCalledWith(revision.id, "en", "article");
35
35
 
36
36
  expect(result).toEqual({
37
37
  redirect: `/en/articles/${revision.originalId}`,
38
38
  });
39
39
  });
40
40
 
41
- test("unlock failed with errors", async () => {
42
- const revision = Factory.build("article_revision");
41
+ test("cancel failed with errors", async () => {
42
+ const revision = Factory.build("resource_revision");
43
43
  const ctx = buildCtx(revision);
44
44
  const errors = [
45
45
  {
@@ -48,43 +48,43 @@ describe("Article revision schedule cancel", () => {
48
48
  },
49
49
  ];
50
50
 
51
- const mockUnlock = jest
52
- .spyOn(ctx.client.articleRevisions, "cancelSchedule")
51
+ const mockCancel = jest
52
+ .spyOn(ctx.client.resourceRevisions, "cancelSchedule")
53
53
  .mockImplementation(() => ({
54
54
  revision: null,
55
55
  errors,
56
- articleErrors: null,
56
+ resourceErrors: null,
57
57
  }));
58
58
 
59
59
  await expect(CancelSchedulesHandler.create(ctx)).rejects.toThrow(
60
60
  `Failed to cancel schedule for revision: ${JSON.stringify(errors)}`
61
61
  );
62
62
 
63
- expect(mockUnlock).toHaveBeenCalledWith(revision.id, "en");
63
+ expect(mockCancel).toHaveBeenCalledWith(revision.id, "en", "article");
64
64
  });
65
65
 
66
- test("unlock failed with article errors", async () => {
67
- const revision = Factory.build("article_revision");
66
+ test("cancel failed with resource errors", async () => {
67
+ const revision = Factory.build("resource_revision");
68
68
  const ctx = buildCtx(revision);
69
- const articleErrors = [
69
+ const resourceErrors = [
70
70
  {
71
71
  key: "generalError",
72
72
  message: "Failed to cancel schedule for revision",
73
73
  },
74
74
  ];
75
75
 
76
- const mockUnlock = jest
77
- .spyOn(ctx.client.articleRevisions, "cancelSchedule")
76
+ const mockCancel = jest
77
+ .spyOn(ctx.client.resourceRevisions, "cancelSchedule")
78
78
  .mockImplementation(() => ({
79
79
  revision: null,
80
80
  errors: null,
81
- articleErrors,
81
+ resourceErrors,
82
82
  }));
83
83
 
84
84
  await expect(CancelSchedulesHandler.create(ctx)).rejects.toThrow(
85
- `Failed to cancel schedule for revision: ${JSON.stringify(articleErrors)}`
85
+ `Failed to cancel schedule for revision: ${JSON.stringify(resourceErrors)}`
86
86
  );
87
87
 
88
- expect(mockUnlock).toHaveBeenCalledWith(revision.id, "en");
88
+ expect(mockCancel).toHaveBeenCalledWith(revision.id, "en", "article");
89
89
  });
90
90
  });
@@ -1,37 +1,34 @@
1
- import CodeHandler from "../../../../handlers/page_revisions/CodeHandler";
2
- import PageRevisions from "../../../../cloud/PageRevisions";
1
+ import CodeHandler from "../../../../handlers/resource_revisions/CodeHandler";
2
+ import ResourceRevisions from "../../../../cloud/ResourceRevisions";
3
3
 
4
4
  import Factory from "../../../support/factory";
5
5
 
6
6
  function buildCtx(revision) {
7
7
  return {
8
8
  client: {
9
- pageRevisions: new PageRevisions(() => ({}), "token"),
9
+ resourceRevisions: new ResourceRevisions(() => ({}), "token"),
10
10
  },
11
11
  params: { parent_id: revision.id },
12
12
  locale: "en",
13
+ resourceConfig: {
14
+ resourceType: "article",
15
+ resourceTypePlural: "articles",
16
+ },
13
17
  };
14
18
  }
15
19
 
16
- describe("Page revision code settings", () => {
20
+ describe("Resource revision code settings", () => {
17
21
  test("edit_form when a revision exists", async () => {
18
- const revision = Factory.build("page_revision", {
19
- settings: {
20
- codes: {
21
- structured_json: {},
22
- scripts: [],
23
- },
24
- },
25
- });
22
+ const revision = Factory.build("resource_revision");
26
23
  const ctx = buildCtx(revision);
27
24
 
28
25
  const mockFind = jest
29
- .spyOn(ctx.client.pageRevisions, "find")
26
+ .spyOn(ctx.client.resourceRevisions, "find")
30
27
  .mockImplementation(() => revision);
31
28
 
32
29
  const result = await CodeHandler.edit_form(ctx);
33
30
 
34
- expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
31
+ expect(mockFind).toHaveBeenCalledWith(revision.id, "en", "article");
35
32
 
36
33
  expect(result).toEqual({
37
34
  assigns: {
@@ -46,13 +43,13 @@ describe("Page revision code settings", () => {
46
43
  const ctx = buildCtx({ id: "42" });
47
44
 
48
45
  const mockFind = jest
49
- .spyOn(ctx.client.pageRevisions, "find")
46
+ .spyOn(ctx.client.resourceRevisions, "find")
50
47
  .mockImplementation(() => null);
51
48
 
52
49
  expect(async () => {
53
50
  await CodeHandler.edit_form(ctx);
54
51
  }).rejects.toThrow("Missing revision #42");
55
52
 
56
- expect(mockFind).toHaveBeenCalledWith("42", "en");
53
+ expect(mockFind).toHaveBeenCalledWith("42", "en", "article");
57
54
  });
58
55
  });
@@ -1,12 +1,12 @@
1
- import CodeHandler from "../../../../handlers/article_revisions/CodeHandler";
2
- import ArticleRevisions from "../../../../cloud/ArticleRevisions";
1
+ import CodeHandler from "../../../../handlers/resource_revisions/CodeHandler";
2
+ import ResourceRevisions from "../../../../cloud/ResourceRevisions";
3
3
 
4
4
  import Factory from "../../../support/factory";
5
5
 
6
6
  function buildCtx(revision, updateSettings) {
7
7
  return {
8
8
  client: {
9
- articleRevisions: new ArticleRevisions(() => ({}), "token"),
9
+ resourceRevisions: new ResourceRevisions(() => ({}), "token"),
10
10
  },
11
11
  params: { parent_id: revision.id },
12
12
  resourceParams: {
@@ -14,17 +14,15 @@ function buildCtx(revision, updateSettings) {
14
14
  },
15
15
  locale: "en",
16
16
  resourceConfig: {
17
- articleType: "article",
18
- articleTypePlural: "articles",
17
+ resourceType: "article",
18
+ resourceTypePlural: "articles",
19
19
  },
20
20
  };
21
21
  }
22
22
 
23
- describe("Article revision code settings", () => {
23
+ describe("Resource revision code settings", () => {
24
24
  test("update successful", async () => {
25
- const revision = Factory.build("article_revision", {
26
- publishAt: "2024-10-10T07:05:00Z",
27
- });
25
+ const revision = Factory.build("resource_revision");
28
26
 
29
27
  const updateSettings = {
30
28
  settings: {
@@ -38,35 +36,39 @@ describe("Article revision code settings", () => {
38
36
  const ctx = buildCtx(revision, updateSettings);
39
37
 
40
38
  const mockFind = jest
41
- .spyOn(ctx.client.articleRevisions, "find")
39
+ .spyOn(ctx.client.resourceRevisions, "find")
42
40
  .mockImplementation(() => revision);
43
41
 
44
42
  const mockUpdate = jest
45
- .spyOn(ctx.client.articleRevisions, "update")
43
+ .spyOn(ctx.client.resourceRevisions, "update")
46
44
  .mockImplementation(() => ({
47
- revision: {},
45
+ resource: {},
48
46
  errors: null,
49
47
  }));
50
48
 
51
49
  const result = await CodeHandler.update(ctx);
52
50
 
53
- expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
54
- expect(mockUpdate).toHaveBeenCalledWith(revision.id, "en", {
55
- slug: revision.slug,
56
- title: revision.title,
57
- visibility: revision.visibility,
58
- publishAt: revision.publishAt,
59
- widgets: revision.widgets,
60
- tags: revision.tags.map((t) => t.id),
61
- categories: revision.categories.map((c) => c.id),
62
- settings: {
63
- ...revision.settings,
64
- codes: {
65
- scripts: [{ type: "bla" }],
66
- structured_json: { type: "article" },
51
+ expect(mockFind).toHaveBeenCalledWith(revision.id, "en", "article");
52
+ expect(mockUpdate).toHaveBeenCalledWith(
53
+ revision.id,
54
+ "en",
55
+ {
56
+ slug: revision.slug,
57
+ title: revision.title,
58
+ visibility: revision.visibility,
59
+ widgets: revision.widgets,
60
+ tags: revision.tags.map((t) => t.id),
61
+ categories: revision.categories.map((c) => c.id),
62
+ settings: {
63
+ ...revision.settings,
64
+ codes: {
65
+ scripts: [{ type: "bla" }],
66
+ structured_json: { type: "article" },
67
+ },
67
68
  },
68
69
  },
69
- });
70
+ "article"
71
+ );
70
72
 
71
73
  expect(result).toEqual({
72
74
  redirect: `/en/article_revisions/${revision.id}/codes/edit?success=1`,
@@ -74,9 +76,7 @@ describe("Article revision code settings", () => {
74
76
  });
75
77
 
76
78
  test("update failed", async () => {
77
- const revision = Factory.build("article_revision", {
78
- publishAt: "2024-10-10T07:05:00Z",
79
- });
79
+ const revision = Factory.build("resource_revision");
80
80
 
81
81
  const updateSettings = {
82
82
  settings: {
@@ -90,41 +90,24 @@ describe("Article revision code settings", () => {
90
90
  const ctx = buildCtx(revision, updateSettings);
91
91
 
92
92
  const mockFind = jest
93
- .spyOn(ctx.client.articleRevisions, "find")
93
+ .spyOn(ctx.client.resourceRevisions, "find")
94
94
  .mockImplementation(() => revision);
95
95
 
96
96
  const mockUpdate = jest
97
- .spyOn(ctx.client.articleRevisions, "update")
97
+ .spyOn(ctx.client.resourceRevisions, "update")
98
98
  .mockImplementation(() => ({
99
- revision: {},
99
+ resource: {},
100
100
  errors: [{ key: "generalError", message: "some error" }],
101
101
  }));
102
102
 
103
103
  const result = await CodeHandler.update(ctx);
104
104
 
105
- expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
106
- expect(mockUpdate).toHaveBeenCalledWith(revision.id, "en", {
107
- slug: revision.slug,
108
- title: revision.title,
109
- visibility: revision.visibility,
110
- publishAt: revision.publishAt,
111
- widgets: revision.widgets,
112
- tags: revision.tags.map((t) => t.id),
113
- categories: revision.categories.map((c) => c.id),
114
- settings: {
115
- ...revision.settings,
116
- codes: {
117
- scripts: [{ type: "bla" }],
118
- structured_json: { type: "article" },
119
- },
120
- },
121
- });
105
+ expect(mockFind).toHaveBeenCalledWith(revision.id, "en", "article");
122
106
 
123
107
  expect(result).toEqual({
124
108
  assigns: {
125
109
  resource: {
126
110
  ...revision,
127
- publishAt: "2024-10-10",
128
111
  settings: {
129
112
  ...revision.settings,
130
113
  codes: {
@@ -142,20 +125,18 @@ describe("Article revision code settings", () => {
142
125
  });
143
126
 
144
127
  test("update when a revision does not exist", async () => {
145
- const revision = Factory.build("article_revision");
146
-
147
- const updateSettings = {};
128
+ const revision = Factory.build("resource_revision");
148
129
 
149
- const ctx = buildCtx(revision, updateSettings);
130
+ const ctx = buildCtx(revision, {});
150
131
 
151
132
  const mockFind = jest
152
- .spyOn(ctx.client.articleRevisions, "find")
133
+ .spyOn(ctx.client.resourceRevisions, "find")
153
134
  .mockImplementation(() => null);
154
135
 
155
136
  expect(async () => {
156
137
  await CodeHandler.update(ctx);
157
138
  }).rejects.toThrow(`Missing revision #${revision.id}`);
158
139
 
159
- expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
140
+ expect(mockFind).toHaveBeenCalledWith(revision.id, "en", "article");
160
141
  });
161
142
  });
@@ -0,0 +1,58 @@
1
+ import GeneralHandler from "../../../../handlers/resource_revisions/GeneralHandler";
2
+ import ResourceRevisions from "../../../../cloud/ResourceRevisions";
3
+ import Resources from "../../../../cloud/Resources";
4
+
5
+ import Factory from "../../../support/factory";
6
+
7
+ function buildCtx(revision) {
8
+ return {
9
+ client: {
10
+ resourceRevisions: new ResourceRevisions(() => ({}), "token"),
11
+ resources: new Resources(() => ({}), "token"),
12
+ },
13
+ params: { parent_id: revision.id },
14
+ locale: "en",
15
+ resourceConfig: {
16
+ resourceType: "article",
17
+ resourceTypePlural: "articles",
18
+ },
19
+ };
20
+ }
21
+
22
+ describe("Resource revision general settings", () => {
23
+ test("edit_form when a revision exists", async () => {
24
+ const revision = Factory.build("resource_revision");
25
+ const ctx = buildCtx(revision);
26
+
27
+ const mockFind = jest
28
+ .spyOn(ctx.client.resourceRevisions, "find")
29
+ .mockImplementation(() => revision);
30
+
31
+ const result = await GeneralHandler.edit_form(ctx);
32
+
33
+ expect(mockFind).toHaveBeenCalledWith(revision.id, "en", "article");
34
+
35
+ expect(result).toEqual({
36
+ assigns: {
37
+ resource: revision,
38
+ errors: {},
39
+ visibilityOptions: ctx.client.resources.visibilityOptions(),
40
+ _translations: [],
41
+ },
42
+ });
43
+ });
44
+
45
+ test("edit_form when a revision does not exist", async () => {
46
+ const ctx = buildCtx({ id: "42" });
47
+
48
+ const mockFind = jest
49
+ .spyOn(ctx.client.resourceRevisions, "find")
50
+ .mockImplementation(() => null);
51
+
52
+ expect(async () => {
53
+ await GeneralHandler.edit_form(ctx);
54
+ }).rejects.toThrow("Missing revision #42");
55
+
56
+ expect(mockFind).toHaveBeenCalledWith("42", "en", "article");
57
+ });
58
+ });