@opengis/cms 0.0.22 → 0.0.26

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 (274) hide show
  1. package/dist/index-W-qQIppj-DRzFSjU1.js +2452 -0
  2. package/dist/index.html +28 -34
  3. package/dist/index.js +13915 -0
  4. package/dist/index.umd.cjs +153 -0
  5. package/package.json +4 -11
  6. package/dist/assets/AddUser-CX-McfRW.js +0 -1
  7. package/dist/assets/ApiKeys-DSv1exYv.js +0 -16
  8. package/dist/assets/Appearance-DDtOUvCV.js +0 -6
  9. package/dist/assets/ArticlesPage-D6B3cZsl.js +0 -6
  10. package/dist/assets/BuilderPage-CCeSMVWe.js +0 -1
  11. package/dist/assets/CollectionsBreadcrumb.vue_vue_type_script_setup_true_lang-DVYVfYF4.js +0 -1
  12. package/dist/assets/CollectionsPage-CHk8Cn5k.js +0 -1
  13. package/dist/assets/Dashboard-Bs7sXO6h.js +0 -11
  14. package/dist/assets/EditCollectionPage-gPuLJrN8.js +0 -41
  15. package/dist/assets/EmailPage-DhlWsPxk.js +0 -1
  16. package/dist/assets/EmptyData-Ct-xQv_N.js +0 -1
  17. package/dist/assets/FeedbackPage-DtaOncVv.js +0 -1
  18. package/dist/assets/Logs-CZ5klHNK.js +0 -1
  19. package/dist/assets/MediaBreadcrumb-BpOxt5PK.js +0 -11
  20. package/dist/assets/MediaPage-DqRcZFlO.js +0 -16
  21. package/dist/assets/MenuAddPage-BLcoVgrS.js +0 -1
  22. package/dist/assets/MenuItemPage-B2otXqkz.js +0 -20
  23. package/dist/assets/MenuPage-C00m4Fc_.js +0 -1
  24. package/dist/assets/MonacoEditor.vue_vue_type_script_setup_true_lang-CjoEsC67.js +0 -3
  25. package/dist/assets/PermissionsPage-LtqcCJ14.js +0 -1
  26. package/dist/assets/Settings-BHH6RoBP.js +0 -1
  27. package/dist/assets/SettingsTable-CY5pZx1z.js +0 -1
  28. package/dist/assets/SettingsTitle-t4WJBFxZ.js +0 -1
  29. package/dist/assets/SingletonsPage-Bn2Ypjhs.js +0 -6
  30. package/dist/assets/TagsPage-DAiakEth.js +0 -1
  31. package/dist/assets/UniversalTable.vue_vue_type_script_setup_true_lang-BQ5m4aZd.js +0 -11
  32. package/dist/assets/UniversalTablePagination.vue_vue_type_script_setup_true_lang-DppVBws0.js +0 -1
  33. package/dist/assets/Users-CMH5j0db.js +0 -1
  34. package/dist/assets/UsersPage-CDGreEib.js +0 -1
  35. package/dist/assets/arrow-up-DCe0WsrM.js +0 -16
  36. package/dist/assets/calendar-o9t4MkD2.js +0 -6
  37. package/dist/assets/chevron-left-WFftVS9c.js +0 -6
  38. package/dist/assets/chevron-right-BiiSb3Be.js +0 -6
  39. package/dist/assets/contentForm-unZQhjCu.js +0 -6
  40. package/dist/assets/en-BDx3Svx8.js +0 -1
  41. package/dist/assets/eye-Dijywc6g.js +0 -6
  42. package/dist/assets/file-B_duymIT.js +0 -6
  43. package/dist/assets/general-CkN_0qIV.js +0 -1
  44. package/dist/assets/index-BIp7eSXk.js +0 -1
  45. package/dist/assets/index-DCW2e4Az.js +0 -9
  46. package/dist/assets/index-DGweaj24.js +0 -1
  47. package/dist/assets/index-W-qQIppj-BDlsxaGB.js +0 -1
  48. package/dist/assets/index-W-qQIppj-BsopI3Hz-BIZR-dhy.js +0 -1
  49. package/dist/assets/index-oQz9FOqL.css +0 -1
  50. package/dist/assets/index-yMJAVBXk.js +0 -290
  51. package/dist/assets/list-CXRbSNky.js +0 -6
  52. package/dist/assets/logo-Cct5WB26.png +0 -0
  53. package/dist/assets/pencil-CwnPP4IJ.js +0 -6
  54. package/dist/assets/plus-DLR44m6p.js +0 -6
  55. package/dist/assets/save-FeDrOUOd.js +0 -6
  56. package/dist/assets/search-C4-fHihx.js +0 -6
  57. package/dist/assets/square-pen-xVs4e8Yb.js +0 -6
  58. package/dist/assets/trash-2-BGXMNU3d.js +0 -6
  59. package/dist/assets/uk-BA7DIKEL.js +0 -1
  60. package/dist/assets/useDebounce-DFq3rxAW.js +0 -1
  61. package/dist/assets/vs-form-reletion-link-C-xrdHDl.js +0 -20
  62. package/dist/assets/vs-form-reletion-link-bk-9ZkDH.css +0 -1
  63. package/dist/assets/vue.-sixQ7xP-CUPNuJcq.js +0 -1
  64. package/dist/assets/vuedraggable.umd-W_2WTF6i.js +0 -14
  65. package/dist/assets/x-D2t-wfBe.js +0 -6
  66. package/module/cms/card/cms.content.table/index.yml +0 -17
  67. package/module/cms/card/cms.content.table/main_info.hbs +0 -26
  68. package/module/cms/card/cms.menu.table/content_info.hbs +0 -16
  69. package/module/cms/card/cms.menu.table/index.yml +0 -18
  70. package/module/cms/card/cms.menu.table/main_info.hbs +0 -22
  71. package/module/cms/card/cms.settings.table/index.yml +0 -13
  72. package/module/cms/card/cms.settings.table/main_info.hbs +0 -20
  73. package/module/cms/cls/content.status.json +0 -18
  74. package/module/cms/cls/user_type.json +0 -10
  75. package/module/cms/form/admin.users.form.json +0 -78
  76. package/module/cms/form/cms.content.form.json +0 -79
  77. package/module/cms/form/cms.menu.form.json +0 -69
  78. package/module/cms/form/cms.settings.form.json +0 -32
  79. package/module/cms/menu.json +0 -24
  80. package/module/cms/router.js +0 -169
  81. package/module/cms/select/cms.page_type.sql +0 -2
  82. package/module/cms/select/collection.sql +0 -1
  83. package/module/cms/select/locale.sql +0 -17
  84. package/module/cms/select/news_tag_id.sql +0 -12
  85. package/module/cms/select/tag_id.sql +0 -1
  86. package/module/cms/table/admin.users.table.json +0 -54
  87. package/module/cms/table/cms.content.table.json +0 -106
  88. package/module/cms/table/cms.menu.table.json +0 -73
  89. package/module/cms/table/cms.settings.table.json +0 -57
  90. package/module/cms/table/collection.default.table.json +0 -102
  91. package/module/cms/table/single.default.table.json +0 -115
  92. package/src/App.css +0 -52
  93. package/src/App.vue +0 -62
  94. package/src/assets/image.png +0 -0
  95. package/src/assets/main.css +0 -3
  96. package/src/assets/tailwind-3.4.17.js +0 -113
  97. package/src/components/LanguageSwitcher.vue +0 -73
  98. package/src/components/SettingsCard.vue +0 -40
  99. package/src/components/builder/CreateForm.vue +0 -128
  100. package/src/components/builder/formTypeSchema.js +0 -145
  101. package/src/components/builder/tabs/index.ts +0 -9
  102. package/src/components/builder/tabs/vs-builder-edit.vue +0 -133
  103. package/src/components/builder/tabs/vs-builder-monaco.vue +0 -29
  104. package/src/components/builder/tabs/vs-builder-preview.vue +0 -39
  105. package/src/components/builder/vs-builder-datatable-controls.vue +0 -138
  106. package/src/components/builder/vs-builder-datatable-form.vue +0 -80
  107. package/src/components/builder/vs-builder-datatable.vue +0 -191
  108. package/src/components/builder/vs-builder-list-item.vue +0 -110
  109. package/src/components/collections/CollectionsBreadcrumb.vue +0 -52
  110. package/src/components/collections/CollectionsGrid.vue +0 -176
  111. package/src/components/collections/ContentBlock.vue +0 -75
  112. package/src/components/collections/formWrapper.vue +0 -156
  113. package/src/components/dashboard/ContentItem.vue +0 -82
  114. package/src/components/dashboard/DashboardHeader.vue +0 -33
  115. package/src/components/dashboard/QuickActions.vue +0 -84
  116. package/src/components/dashboard/RecentContent.vue +0 -54
  117. package/src/components/dashboard/StatCard.vue +0 -63
  118. package/src/components/dashboard/StatsGrid.vue +0 -28
  119. package/src/components/form-components/MonacoEditor.vue +0 -104
  120. package/src/components/form-components/VsFormMeta.vue +0 -40
  121. package/src/components/form-components/VsFormTags.vue +0 -150
  122. package/src/components/form-components/custom-datatable/vs-form-custom-datatable-add.vue +0 -84
  123. package/src/components/form-components/custom-datatable/vs-form-custom-datatable-controls.vue +0 -106
  124. package/src/components/form-components/index.js +0 -23
  125. package/src/components/form-components/reference/vs-form-reference-add.vue +0 -92
  126. package/src/components/form-components/reference/vs-form-reference-controls.vue +0 -101
  127. package/src/components/form-components/reference-list/referenceOptionList.js +0 -78
  128. package/src/components/form-components/reference-list/vs-form-reference-add.vue +0 -145
  129. package/src/components/form-components/reference-list/vs-form-reference-choce.vue +0 -39
  130. package/src/components/form-components/reference-list/vs-form-reference-controls.vue +0 -110
  131. package/src/components/form-components/reference-skeleton/about-skeleton.vue +0 -37
  132. package/src/components/form-components/reference-skeleton/banner-skeleton.vue +0 -29
  133. package/src/components/form-components/reference-skeleton/body-skeleton.vue +0 -56
  134. package/src/components/form-components/reference-skeleton/cards-skeleton.vue +0 -47
  135. package/src/components/form-components/reference-skeleton/documents-skeleton.vue +0 -64
  136. package/src/components/form-components/reference-skeleton/faq-skeleton.vue +0 -64
  137. package/src/components/form-components/reference-skeleton/form-skeleton.vue +0 -41
  138. package/src/components/form-components/reference-skeleton/index.js +0 -36
  139. package/src/components/form-components/reference-skeleton/infoLine-skeleton.vue +0 -37
  140. package/src/components/form-components/reference-skeleton/news-skeleton.vue +0 -54
  141. package/src/components/form-components/reference-skeleton/slider-skeleton.vue +0 -41
  142. package/src/components/form-components/reference-skeleton/tabs-skeleton.vue +0 -40
  143. package/src/components/form-components/reference-skeleton/team-skeleton.vue +0 -103
  144. package/src/components/form-components/reference-skeleton/usefulLinks-skeleton.vue +0 -52
  145. package/src/components/form-components/reference-skeleton/video-skeleton.vue +0 -36
  146. package/src/components/form-components/testReferenceTypes.js +0 -773
  147. package/src/components/form-components/vs-form-color-picker.vue +0 -29
  148. package/src/components/form-components/vs-form-custom-datatable.vue +0 -214
  149. package/src/components/form-components/vs-form-integer.vue +0 -86
  150. package/src/components/form-components/vs-form-key-value.vue +0 -201
  151. package/src/components/form-components/vs-form-marcdown-md.vue +0 -3
  152. package/src/components/form-components/vs-form-media-select.vue +0 -780
  153. package/src/components/form-components/vs-form-reference-list.vue +0 -97
  154. package/src/components/form-components/vs-form-reference.vue +0 -59
  155. package/src/components/form-components/vs-form-relation.vue +0 -30
  156. package/src/components/form-components/vs-form-reletion-link.vue +0 -34
  157. package/src/components/form-components/vs-form-select-collection.vue +0 -0
  158. package/src/components/form-components/vs-form-slug.vue +0 -72
  159. package/src/components/form-components/vs-form-tiptap.vue +0 -7
  160. package/src/components/form-components/vs-richtext-md.vue +0 -3
  161. package/src/components/icons/BellIcon.vue +0 -17
  162. package/src/components/icons/GlobeIcon.vue +0 -18
  163. package/src/components/icons/KeyIcon.vue +0 -20
  164. package/src/components/icons/PaletteIcon.vue +0 -22
  165. package/src/components/icons/SettingsIcon.vue +0 -19
  166. package/src/components/icons/ShieldIcon.vue +0 -18
  167. package/src/components/icons/UsersIcon.vue +0 -19
  168. package/src/components/icons/icon-chevron-right.vue +0 -16
  169. package/src/components/icons/icon-drag.vue +0 -20
  170. package/src/components/icons/icon-file-text.vue +0 -21
  171. package/src/components/icons/icon-folder.vue +0 -18
  172. package/src/components/icons/icon-grid.vue +0 -17
  173. package/src/components/icons/icon-group.vue +0 -19
  174. package/src/components/icons/icon-home.vue +0 -16
  175. package/src/components/icons/icon-image.vue +0 -18
  176. package/src/components/icons/icon-list.vue +0 -20
  177. package/src/components/icons/icon-more.vue +0 -17
  178. package/src/components/icons/icon-plus.vue +0 -17
  179. package/src/components/icons-types/icon-array.vue +0 -22
  180. package/src/components/icons-types/icon-boolean.vue +0 -18
  181. package/src/components/icons-types/icon-datalist.vue +0 -22
  182. package/src/components/icons-types/icon-date.vue +0 -20
  183. package/src/components/icons-types/icon-datetime.vue +0 -20
  184. package/src/components/icons-types/icon-file.vue +0 -21
  185. package/src/components/icons-types/icon-gallery.vue +0 -18
  186. package/src/components/icons-types/icon-image.vue +0 -19
  187. package/src/components/icons-types/icon-integer.vue +0 -20
  188. package/src/components/icons-types/icon-merkdown.vue +0 -18
  189. package/src/components/icons-types/icon-multiselect.vue +0 -22
  190. package/src/components/icons-types/icon-number.vue +0 -20
  191. package/src/components/icons-types/icon-radio.vue +0 -22
  192. package/src/components/icons-types/icon-reference-list.vue +0 -22
  193. package/src/components/icons-types/icon-reference.vue +0 -20
  194. package/src/components/icons-types/icon-relation.vue +0 -22
  195. package/src/components/icons-types/icon-richtext.vue +0 -18
  196. package/src/components/icons-types/icon-select.vue +0 -22
  197. package/src/components/icons-types/icon-slug.vue +0 -19
  198. package/src/components/icons-types/icon-text.vue +0 -19
  199. package/src/components/icons-types/index.js +0 -43
  200. package/src/components/layout/Layout.vue +0 -67
  201. package/src/components/layout/Sidebar.vue +0 -128
  202. package/src/components/media/FileUploadProgress.vue +0 -29
  203. package/src/components/media/MediaBreadcrumb.vue +0 -42
  204. package/src/components/media/MediaCreateFolder.vue +0 -59
  205. package/src/components/media/MediaFileInfo.vue +0 -148
  206. package/src/components/media/MediaGrid.vue +0 -148
  207. package/src/components/media/MediaList.vue +0 -148
  208. package/src/components/media/MediaViewControls.vue +0 -38
  209. package/src/components/media/TypeTag.vue +0 -23
  210. package/src/components/menu/AddNewItemInTree.vue +0 -75
  211. package/src/components/menu/MenuBody.vue +0 -149
  212. package/src/components/menu/MenuItem.vue +0 -73
  213. package/src/components/menu/MenuList.vue +0 -101
  214. package/src/components/referencec/index.ts +0 -7
  215. package/src/components/referencec/vs-reference-faq.vue +0 -61
  216. package/src/components/referencec/vs-reference-user-card.vue +0 -40
  217. package/src/components/settings/NotificationSettings.vue +0 -32
  218. package/src/components/settings/SettingsTable.vue +0 -50
  219. package/src/components/settings/SettingsTitle.vue +0 -33
  220. package/src/components/settings/SettingsToggleItem.vue +0 -25
  221. package/src/components/sidebar/DropdownMenu.vue +0 -34
  222. package/src/components/sidebar/SettingsSidebar.vue +0 -121
  223. package/src/components/sidebar/SidebarFooter.vue +0 -52
  224. package/src/components/sidebar/SidebarHeader.vue +0 -57
  225. package/src/components/sidebar/SidebarMenu.vue +0 -78
  226. package/src/components/ui/EmptyData.vue +0 -76
  227. package/src/components/ui/UniversalTable.vue +0 -310
  228. package/src/components/ui/UniversalTableFilters.vue +0 -0
  229. package/src/components/ui/UniversalTablePagination.vue +0 -118
  230. package/src/components/ui/VsPreview.vue +0 -75
  231. package/src/composables/useCollectionView.ts +0 -21
  232. package/src/composables/useDebounce.ts +0 -26
  233. package/src/composables/useMonaco.ts +0 -28
  234. package/src/composables/useTheme.ts +0 -40
  235. package/src/content/test-slug/metadata.json +0 -1
  236. package/src/i18n.ts +0 -75
  237. package/src/index.css +0 -3
  238. package/src/index.ts +0 -122
  239. package/src/locales/en.json +0 -778
  240. package/src/locales/uk.json +0 -797
  241. package/src/main.ts +0 -41
  242. package/src/pages/Dashboard.vue +0 -168
  243. package/src/pages/EmailPage.vue +0 -183
  244. package/src/pages/FeedbackPage.vue +0 -232
  245. package/src/pages/MediaPage.vue +0 -372
  246. package/src/pages/TagsPage.vue +0 -207
  247. package/src/pages/builder/BuilderPage.vue +0 -195
  248. package/src/pages/builder/EditCollectionPage.vue +0 -163
  249. package/src/pages/collections/ArticlesPage.vue +0 -385
  250. package/src/pages/collections/CollectionsPage.vue +0 -146
  251. package/src/pages/collections/SingletonsPage.vue +0 -119
  252. package/src/pages/collections/contentForm.vue +0 -484
  253. package/src/pages/collections/schema/seo.ts +0 -27
  254. package/src/pages/menu/MenuAddPage.vue +0 -123
  255. package/src/pages/menu/MenuItemPage.vue +0 -183
  256. package/src/pages/menu/MenuPage.vue +0 -133
  257. package/src/pages/settings/ApiKeys.vue +0 -75
  258. package/src/pages/settings/Appearance.vue +0 -80
  259. package/src/pages/settings/Logs.vue +0 -260
  260. package/src/pages/settings/PermissionsPage.vue +0 -237
  261. package/src/pages/settings/Settings.vue +0 -186
  262. package/src/pages/settings/Users.vue +0 -109
  263. package/src/pages/settings/general.vue +0 -154
  264. package/src/pages/settings/generalScheme.js +0 -132
  265. package/src/pages/users/AddUser.vue +0 -106
  266. package/src/pages/users/UsersPage.vue +0 -98
  267. package/src/props/builder.ts +0 -67
  268. package/src/props/content.ts +0 -56
  269. package/src/props/media.ts +0 -63
  270. package/src/router/index.ts +0 -181
  271. package/src/types/fastify-auth.d.ts +0 -4
  272. package/src/utils/getField.js +0 -270
  273. package/src/utils/translit.js +0 -19
  274. package/src/vite-env.d.ts +0 -1
@@ -1,98 +0,0 @@
1
- <template>
2
- <div class="space-y-6 max-w-7xl mx-auto">
3
- <div class="flex items-center justify-between mb-8">
4
- <div>
5
- <div class="flex items-center gap-2">
6
- <h1 class="text-3xl font-bold text-slate-800 dark:text-slate-100 mb-2">{{ $t("users.createUser") }}</h1>
7
- <a :href="`https://cms.opengis.info/${locale}/config/user-management/`" target="_blank" :title="$t('guide.users')">
8
- <HelpCircle class="w-5 h-5" />
9
- </a>
10
- </div>
11
- <p class="text-slate-600 dark:text-slate-300">{{ $t("users.description") }}</p>
12
- </div>
13
- <router-link
14
- v-if="users?.rows?.length > 0"
15
- to="/users/create/"
16
- class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium h-9 px-4 py-2 bg-blue-600 text-white shadow-md transition-all duration-200 transform
17
- hover:bg-blue-700 hover:shadow-lg hover:scale-105
18
- focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring
19
- disabled:pointer-events-none disabled:opacity-50"
20
- >
21
- <Plus class="w-4 h-4 mr-2" />
22
- {{ $t("users.createUser") }}
23
- </router-link>
24
- </div>
25
- <div class="rounded-xl text-card-foreground shadow-lg border-0 bg-white dark:bg-slate-800 backdrop-blur-sm overflow-hidden">
26
- <EmptyData
27
- v-if="!users || users?.rows?.length === 0"
28
- :title="t('users.emptyTitle')"
29
- :description="t('users.emptyDescription')"
30
- :button-text="t('users.emptyButton')"
31
- :show-button="true"
32
- />
33
- <UniversalTable
34
- v-if="users?.rows?.length > 0"
35
- :columns="users.columns"
36
- :rows="users.rows"
37
- :on-edit="handleEditUser"
38
- @delete="handleDeleteUser"
39
- />
40
- </div>
41
- </div>
42
- </template>
43
-
44
- <script setup>
45
- import { ref, onMounted } from 'vue';
46
- import { useI18n } from 'vue-i18n';
47
- import { Plus, HelpCircle } from 'lucide-vue-next';
48
- import { notify } from '@opengis/core';
49
- import { useRouter } from 'vue-router';
50
- const { t, locale } = useI18n();
51
- import EmptyData from '@/components/ui/EmptyData.vue';
52
- import UniversalTable from '@/components/ui/UniversalTable.vue';
53
-
54
- const router = useRouter();
55
-
56
- const users = ref([]);
57
-
58
- const fetchUsers = async () => {
59
- try {
60
- const response = await fetch('api/data/admin.users.table');
61
- const data = await response.json();
62
- users.value = data;
63
- } catch (error) {
64
- console.error(error);
65
- }
66
- }
67
-
68
- const handleDeleteUser = async (user) => {
69
- try {
70
- let token = await fetch(`/api/form/admin.users.table/${user.uid}`)
71
- token = await token.json();
72
- await fetch(`/api/table/${token.token}`, { method: 'DELETE'})
73
-
74
- notify({
75
- type: "success",
76
- title: t("common.actions.success"),
77
- message: t("users.deleteUserSuccess"),
78
- });
79
-
80
- fetchUsers();
81
- } catch (error) {
82
- notify({
83
- type: "error",
84
- title: t("common.actions.warning"),
85
- message: t("users.deleteUserFailed"),
86
- });
87
- console.error(error);
88
- }
89
- }
90
-
91
- const handleEditUser = async (user) => {
92
- router.push(`/users/edit/${user.uid}`);
93
- }
94
-
95
- onMounted(() => {
96
- fetchUsers();
97
- })
98
- </script>
@@ -1,67 +0,0 @@
1
- /**
2
- * Builder/Content Type definitions
3
- */
4
-
5
- export type ContentTypeStatus = 'draft' | 'published' | 'archived';
6
- export type ContentTypeType = 'collection' | 'single';
7
-
8
- export interface ContentType {
9
- id: string;
10
- content_type_id: string;
11
- name: string;
12
- title: string;
13
- table_name?: string;
14
- columns?: any;
15
- status: ContentTypeStatus;
16
- visible: boolean;
17
- localized: boolean;
18
- type: ContentTypeType;
19
- schema?: any;
20
- description?: string;
21
- icon?: string;
22
- color?: string;
23
- preview_path?: string;
24
- created_at: string;
25
- updated_at: string;
26
- created_by: string;
27
- updated_by?: string;
28
- entries?: number;
29
- fields?: number;
30
- }
31
-
32
- export interface Collection extends ContentType {
33
- entries: number;
34
- fields: number;
35
- }
36
-
37
- export interface FieldType {
38
- type: string;
39
- label: string;
40
- placeholder?: string;
41
- options?: Array<{ text: string; id: string; color?: string }>;
42
- validators?: string[];
43
- conditions?: any[];
44
- mode?: string;
45
- }
46
-
47
- export interface FormTypeSchema {
48
- name: FieldType;
49
- type: FieldType;
50
- subtype?: FieldType;
51
- parent?: FieldType;
52
- options?: FieldType;
53
- }
54
-
55
- export interface BuilderFormData {
56
- name: string;
57
- title: string;
58
- description?: string;
59
- type: ContentTypeType;
60
- status: ContentTypeStatus;
61
- visible: boolean;
62
- localized: boolean;
63
- schema?: any;
64
- icon?: string;
65
- color?: string;
66
- preview_path?: string;
67
- }
@@ -1,56 +0,0 @@
1
- /**
2
- * Content definitions
3
- */
4
-
5
- export interface ContentItem {
6
- id: string;
7
- content_type_id: string;
8
- title?: string;
9
- slug?: string;
10
- status: 'draft' | 'published' | 'archived';
11
- visible: boolean;
12
- created_at: string;
13
- updated_at: string;
14
- created_by: string;
15
- updated_by?: string;
16
- [key: string]: any; // For dynamic fields based on content type schema
17
- }
18
-
19
- export interface ContentEntry extends ContentItem {
20
- // Additional fields that might be present in content entries
21
- description?: string;
22
- content?: string;
23
- excerpt?: string;
24
- featured_image?: string;
25
- tags?: string[];
26
- categories?: string[];
27
- author?: string;
28
- published_at?: string;
29
- }
30
-
31
- export interface ContentFormData {
32
- title?: string;
33
- slug?: string;
34
- status: 'draft' | 'published' | 'archived';
35
- visible: boolean;
36
- [key: string]: any; // For dynamic fields
37
- }
38
-
39
- export interface ContentListResponse {
40
- rows: ContentItem[];
41
- total: number;
42
- page: number;
43
- limit: number;
44
- totalPages: number;
45
- }
46
-
47
- export interface ContentFilters {
48
- status?: 'draft' | 'published' | 'archived';
49
- visible?: boolean;
50
- content_type_id?: string;
51
- search?: string;
52
- page?: number;
53
- limit?: number;
54
- sort?: string;
55
- order?: 'asc' | 'desc';
56
- }
@@ -1,63 +0,0 @@
1
- /**
2
- * Media file type definitions
3
- */
4
-
5
- export type MediaFileType = 'image' | 'document' | 'other';
6
-
7
- export interface MediaFile {
8
- id: string;
9
- filename: string;
10
- filetype: MediaFileType;
11
- filesize: number;
12
- url: string;
13
- description: string | null;
14
- alt: string | null;
15
- mime: string;
16
- preview_url: string | null;
17
- created_at: string;
18
- updated_at: string;
19
- created_by: string;
20
- updated_by: string;
21
- filepath: string;
22
- metadata: string;
23
- exists: boolean;
24
- }
25
-
26
- /**
27
- * Maps MIME types to file types
28
- * @param mime - MIME type
29
- * @returns MediaFileType
30
- */
31
- export function getFileTypeFromMime(mime: string): MediaFileType {
32
- if (mime.startsWith('image/')) return 'image';
33
- if (mime.startsWith('application/pdf') ||
34
- mime.startsWith('application/msword') ||
35
- mime.startsWith('application/vnd.openxmlformats-officedocument')) {
36
- return 'document';
37
- }
38
- return 'other';
39
- }
40
-
41
- /**
42
- * Formats file size to human readable format
43
- * @param bytes - Size in bytes
44
- * @returns string
45
- */
46
- export function formatFileSize(bytes: number): string {
47
- if (bytes === 0) return '0 Bytes';
48
- const k = 1024;
49
- const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
50
- const i = Math.floor(Math.log(bytes) / Math.log(k));
51
- return Number.parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
52
- }
53
-
54
- /**
55
- * Formats date to YYYY-MM-DD
56
- * @param dateString - ISO date string
57
- * @returns string
58
- */
59
- export function formatDate(dateString: string): string {
60
- const date = new Date(dateString);
61
- if (isNaN(date.getTime())) return '';
62
- return date.toISOString().slice(0, 10);
63
- }
@@ -1,181 +0,0 @@
1
- import { createRouter, createWebHistory, type RouteLocationNormalized } from 'vue-router';
2
- import { i18n } from '../i18n.ts';
3
-
4
- const router = createRouter({
5
- history: createWebHistory(),
6
- routes: [
7
- {
8
- path: '/',
9
- name: 'dashboard',
10
- component: () => import('../pages/Dashboard.vue'),
11
- meta: { title: 'dashboard.title' }
12
- },
13
- {
14
- path: '/settings/collections',
15
- name: 'collections',
16
- component: () => import('../pages/builder/BuilderPage.vue'),
17
- meta: { title: 'builder.collections' }
18
- },
19
-
20
- {
21
- path: '/settings/collections/edit/:id',
22
- name: 'editCollection',
23
- component: () => import('../pages/builder/EditCollectionPage.vue'),
24
- meta: { title: 'builder.editCollection' }
25
- },
26
- {
27
- path: '/collections',
28
- name: 'collectionsList',
29
- component: () => import('../pages/collections/CollectionsPage.vue'),
30
- meta: { title: 'navigation.collections' }
31
- },
32
- {
33
- path: '/collections/:id',
34
- name: 'articles',
35
- component: () => import('../pages/collections/ArticlesPage.vue'),
36
- meta: { title: 'articles.title' }
37
- },
38
- {
39
- path: '/collections/:collection/create',
40
- name: 'createArticle',
41
- component: () => import('../pages/collections/contentForm.vue'),
42
- meta: { title: 'articles.createArticle', type: 'articles' }
43
- },
44
- {
45
- path: '/collections/:collection/:id',
46
- name: 'editArticle',
47
- component: () => import('../pages/collections/contentForm.vue'),
48
- meta: { title: 'articles.title', type: 'articles' }
49
- },
50
- {
51
- path: '/singletons',
52
- name: 'singletons',
53
- component: () => import('../pages/collections/SingletonsPage.vue'),
54
- meta: { title: 'singletons.title' }
55
- },
56
- {
57
- path: '/singletons/create',
58
- name: 'createSingleton',
59
- component: () => import('../pages/collections/contentForm.vue'),
60
- meta: { title: 'singletons.createSingleton', type: 'single' }
61
- },
62
- {
63
- path: '/singletons/:id',
64
- name: 'editSingleton',
65
- component: () => import('../pages/collections/contentForm.vue'),
66
- meta: { title: 'singletons.title', type: 'single' }
67
- },
68
- {
69
- path: '/menu',
70
- name: 'singletonsMenu',
71
- component: () => import('../pages/menu/MenuPage.vue'),
72
- meta: { title: 'menu.title' }
73
- },
74
- {
75
- path: '/menu/:id',
76
- name: 'editSingletonMenu',
77
- component: () => import('../pages/menu/MenuItemPage.vue'),
78
- meta: { title: 'menu.editMenu', type: 'single' }
79
- },
80
- {
81
- path: '/menu/create',
82
- name: 'createSingletonMenu',
83
- component: () => import('../pages/menu/MenuAddPage.vue'),
84
- meta: { title: 'menu.menuAdd', type: 'single' }
85
- },
86
- {
87
- path: '/feedback',
88
- name: 'feedback',
89
- component: () => import('../pages/FeedbackPage.vue'),
90
- meta: { title: 'feedback.title' }
91
- },
92
- {
93
- path: '/email',
94
- name: 'email',
95
- component: () => import('../pages/EmailPage.vue'),
96
- meta: { title: 'email.title' }
97
- },
98
- {
99
- path: '/tags',
100
- name: 'tags',
101
- component: () => import('../pages/TagsPage.vue'),
102
- meta: { title: 'tags.title' }
103
- },
104
- {
105
- path: '/users',
106
- name: 'users',
107
- component: () => import('../pages/users/UsersPage.vue'),
108
- meta: { title: 'users.title' }
109
- },
110
- {
111
- path: '/users/edit/:id',
112
- name: 'editUser',
113
- component: () => import('../pages/users/AddUser.vue'),
114
- meta: { title: 'users.editUser' }
115
- },
116
- {
117
- path: '/users/create',
118
- name: 'createUser',
119
- component: () => import('../pages/users/AddUser.vue'),
120
- meta: { title: 'users.createUser' }
121
- },
122
- {
123
- path: '/media',
124
- name: 'media',
125
- component: () => import('../pages/MediaPage.vue'),
126
- meta: { title: 'media.title' }
127
- },
128
- {
129
- path: '/settings',
130
- name: 'settings',
131
- component: () => import('../pages/settings/Settings.vue'),
132
- meta: { title: 'settings.title' }
133
- },
134
- {
135
- path: '/settings/users',
136
- name: 'settingsUsers',
137
- component: () => import('../pages/settings/Users.vue'),
138
- meta: { title: 'settings.users.users' }
139
- },
140
- {
141
- path: '/settings/general',
142
- name: 'general',
143
- component: () => import('../pages/settings/general.vue'),
144
- meta: { title: 'settings.general.general' }
145
- },
146
- {
147
- path: '/settings/api-keys',
148
- name: 'apiKeys',
149
- component: () => import('../pages/settings/ApiKeys.vue'),
150
- meta: { title: 'settings.api-keys.apiKeys' }
151
- },
152
- {
153
- path: '/settings/appearance',
154
- name: 'appearance',
155
- component: () => import('../pages/settings/Appearance.vue'),
156
- meta: { title: 'settings.appearance.appearance' }
157
- },
158
- {
159
- path: '/settings/logs',
160
- name: 'logs',
161
- component: () => import('../pages/settings/Logs.vue'),
162
- meta: { title: 'settings.logs.title' }
163
- },
164
- {
165
- path: '/settings/permissions',
166
- name: 'permissions',
167
- component: () => import('../pages/settings/PermissionsPage.vue'),
168
- meta: { title: 'settings.permissions.title' }
169
- }
170
- ]
171
- });
172
-
173
- export default router;
174
-
175
- router.afterEach((to) => {
176
- const t = i18n.global.t;
177
- const defaultTitle = 'CMS';
178
- document.title = (to.meta && typeof to.meta.title === 'string')
179
- ? t(to.meta.title)
180
- : defaultTitle;
181
- });
@@ -1,4 +0,0 @@
1
- declare module '@opengis/fastify-auth' {
2
- const mod: any;
3
- export default mod;
4
- }