@opengis/cms 0.0.22 → 0.0.24

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 (211) hide show
  1. package/package.json +2 -10
  2. package/src/index.js +23 -0
  3. package/module/cms/card/cms.content.table/index.yml +0 -17
  4. package/module/cms/card/cms.content.table/main_info.hbs +0 -26
  5. package/module/cms/card/cms.menu.table/content_info.hbs +0 -16
  6. package/module/cms/card/cms.menu.table/index.yml +0 -18
  7. package/module/cms/card/cms.menu.table/main_info.hbs +0 -22
  8. package/module/cms/card/cms.settings.table/index.yml +0 -13
  9. package/module/cms/card/cms.settings.table/main_info.hbs +0 -20
  10. package/module/cms/cls/content.status.json +0 -18
  11. package/module/cms/cls/user_type.json +0 -10
  12. package/module/cms/form/admin.users.form.json +0 -78
  13. package/module/cms/form/cms.content.form.json +0 -79
  14. package/module/cms/form/cms.menu.form.json +0 -69
  15. package/module/cms/form/cms.settings.form.json +0 -32
  16. package/module/cms/menu.json +0 -24
  17. package/module/cms/router.js +0 -169
  18. package/module/cms/select/cms.page_type.sql +0 -2
  19. package/module/cms/select/collection.sql +0 -1
  20. package/module/cms/select/locale.sql +0 -17
  21. package/module/cms/select/news_tag_id.sql +0 -12
  22. package/module/cms/select/tag_id.sql +0 -1
  23. package/module/cms/table/admin.users.table.json +0 -54
  24. package/module/cms/table/cms.content.table.json +0 -106
  25. package/module/cms/table/cms.menu.table.json +0 -73
  26. package/module/cms/table/cms.settings.table.json +0 -57
  27. package/module/cms/table/collection.default.table.json +0 -102
  28. package/module/cms/table/single.default.table.json +0 -115
  29. package/src/App.css +0 -52
  30. package/src/App.vue +0 -62
  31. package/src/assets/image.png +0 -0
  32. package/src/assets/main.css +0 -3
  33. package/src/assets/tailwind-3.4.17.js +0 -113
  34. package/src/components/LanguageSwitcher.vue +0 -73
  35. package/src/components/SettingsCard.vue +0 -40
  36. package/src/components/builder/CreateForm.vue +0 -128
  37. package/src/components/builder/formTypeSchema.js +0 -145
  38. package/src/components/builder/tabs/index.ts +0 -9
  39. package/src/components/builder/tabs/vs-builder-edit.vue +0 -133
  40. package/src/components/builder/tabs/vs-builder-monaco.vue +0 -29
  41. package/src/components/builder/tabs/vs-builder-preview.vue +0 -39
  42. package/src/components/builder/vs-builder-datatable-controls.vue +0 -138
  43. package/src/components/builder/vs-builder-datatable-form.vue +0 -80
  44. package/src/components/builder/vs-builder-datatable.vue +0 -191
  45. package/src/components/builder/vs-builder-list-item.vue +0 -110
  46. package/src/components/collections/CollectionsBreadcrumb.vue +0 -52
  47. package/src/components/collections/CollectionsGrid.vue +0 -176
  48. package/src/components/collections/ContentBlock.vue +0 -75
  49. package/src/components/collections/formWrapper.vue +0 -156
  50. package/src/components/dashboard/ContentItem.vue +0 -82
  51. package/src/components/dashboard/DashboardHeader.vue +0 -33
  52. package/src/components/dashboard/QuickActions.vue +0 -84
  53. package/src/components/dashboard/RecentContent.vue +0 -54
  54. package/src/components/dashboard/StatCard.vue +0 -63
  55. package/src/components/dashboard/StatsGrid.vue +0 -28
  56. package/src/components/form-components/MonacoEditor.vue +0 -104
  57. package/src/components/form-components/VsFormMeta.vue +0 -40
  58. package/src/components/form-components/VsFormTags.vue +0 -150
  59. package/src/components/form-components/custom-datatable/vs-form-custom-datatable-add.vue +0 -84
  60. package/src/components/form-components/custom-datatable/vs-form-custom-datatable-controls.vue +0 -106
  61. package/src/components/form-components/index.js +0 -23
  62. package/src/components/form-components/reference/vs-form-reference-add.vue +0 -92
  63. package/src/components/form-components/reference/vs-form-reference-controls.vue +0 -101
  64. package/src/components/form-components/reference-list/referenceOptionList.js +0 -78
  65. package/src/components/form-components/reference-list/vs-form-reference-add.vue +0 -145
  66. package/src/components/form-components/reference-list/vs-form-reference-choce.vue +0 -39
  67. package/src/components/form-components/reference-list/vs-form-reference-controls.vue +0 -110
  68. package/src/components/form-components/reference-skeleton/about-skeleton.vue +0 -37
  69. package/src/components/form-components/reference-skeleton/banner-skeleton.vue +0 -29
  70. package/src/components/form-components/reference-skeleton/body-skeleton.vue +0 -56
  71. package/src/components/form-components/reference-skeleton/cards-skeleton.vue +0 -47
  72. package/src/components/form-components/reference-skeleton/documents-skeleton.vue +0 -64
  73. package/src/components/form-components/reference-skeleton/faq-skeleton.vue +0 -64
  74. package/src/components/form-components/reference-skeleton/form-skeleton.vue +0 -41
  75. package/src/components/form-components/reference-skeleton/index.js +0 -36
  76. package/src/components/form-components/reference-skeleton/infoLine-skeleton.vue +0 -37
  77. package/src/components/form-components/reference-skeleton/news-skeleton.vue +0 -54
  78. package/src/components/form-components/reference-skeleton/slider-skeleton.vue +0 -41
  79. package/src/components/form-components/reference-skeleton/tabs-skeleton.vue +0 -40
  80. package/src/components/form-components/reference-skeleton/team-skeleton.vue +0 -103
  81. package/src/components/form-components/reference-skeleton/usefulLinks-skeleton.vue +0 -52
  82. package/src/components/form-components/reference-skeleton/video-skeleton.vue +0 -36
  83. package/src/components/form-components/testReferenceTypes.js +0 -773
  84. package/src/components/form-components/vs-form-color-picker.vue +0 -29
  85. package/src/components/form-components/vs-form-custom-datatable.vue +0 -214
  86. package/src/components/form-components/vs-form-integer.vue +0 -86
  87. package/src/components/form-components/vs-form-key-value.vue +0 -201
  88. package/src/components/form-components/vs-form-marcdown-md.vue +0 -3
  89. package/src/components/form-components/vs-form-media-select.vue +0 -780
  90. package/src/components/form-components/vs-form-reference-list.vue +0 -97
  91. package/src/components/form-components/vs-form-reference.vue +0 -59
  92. package/src/components/form-components/vs-form-relation.vue +0 -30
  93. package/src/components/form-components/vs-form-reletion-link.vue +0 -34
  94. package/src/components/form-components/vs-form-select-collection.vue +0 -0
  95. package/src/components/form-components/vs-form-slug.vue +0 -72
  96. package/src/components/form-components/vs-form-tiptap.vue +0 -7
  97. package/src/components/form-components/vs-richtext-md.vue +0 -3
  98. package/src/components/icons/BellIcon.vue +0 -17
  99. package/src/components/icons/GlobeIcon.vue +0 -18
  100. package/src/components/icons/KeyIcon.vue +0 -20
  101. package/src/components/icons/PaletteIcon.vue +0 -22
  102. package/src/components/icons/SettingsIcon.vue +0 -19
  103. package/src/components/icons/ShieldIcon.vue +0 -18
  104. package/src/components/icons/UsersIcon.vue +0 -19
  105. package/src/components/icons/icon-chevron-right.vue +0 -16
  106. package/src/components/icons/icon-drag.vue +0 -20
  107. package/src/components/icons/icon-file-text.vue +0 -21
  108. package/src/components/icons/icon-folder.vue +0 -18
  109. package/src/components/icons/icon-grid.vue +0 -17
  110. package/src/components/icons/icon-group.vue +0 -19
  111. package/src/components/icons/icon-home.vue +0 -16
  112. package/src/components/icons/icon-image.vue +0 -18
  113. package/src/components/icons/icon-list.vue +0 -20
  114. package/src/components/icons/icon-more.vue +0 -17
  115. package/src/components/icons/icon-plus.vue +0 -17
  116. package/src/components/icons-types/icon-array.vue +0 -22
  117. package/src/components/icons-types/icon-boolean.vue +0 -18
  118. package/src/components/icons-types/icon-datalist.vue +0 -22
  119. package/src/components/icons-types/icon-date.vue +0 -20
  120. package/src/components/icons-types/icon-datetime.vue +0 -20
  121. package/src/components/icons-types/icon-file.vue +0 -21
  122. package/src/components/icons-types/icon-gallery.vue +0 -18
  123. package/src/components/icons-types/icon-image.vue +0 -19
  124. package/src/components/icons-types/icon-integer.vue +0 -20
  125. package/src/components/icons-types/icon-merkdown.vue +0 -18
  126. package/src/components/icons-types/icon-multiselect.vue +0 -22
  127. package/src/components/icons-types/icon-number.vue +0 -20
  128. package/src/components/icons-types/icon-radio.vue +0 -22
  129. package/src/components/icons-types/icon-reference-list.vue +0 -22
  130. package/src/components/icons-types/icon-reference.vue +0 -20
  131. package/src/components/icons-types/icon-relation.vue +0 -22
  132. package/src/components/icons-types/icon-richtext.vue +0 -18
  133. package/src/components/icons-types/icon-select.vue +0 -22
  134. package/src/components/icons-types/icon-slug.vue +0 -19
  135. package/src/components/icons-types/icon-text.vue +0 -19
  136. package/src/components/icons-types/index.js +0 -43
  137. package/src/components/layout/Layout.vue +0 -67
  138. package/src/components/layout/Sidebar.vue +0 -128
  139. package/src/components/media/FileUploadProgress.vue +0 -29
  140. package/src/components/media/MediaBreadcrumb.vue +0 -42
  141. package/src/components/media/MediaCreateFolder.vue +0 -59
  142. package/src/components/media/MediaFileInfo.vue +0 -148
  143. package/src/components/media/MediaGrid.vue +0 -148
  144. package/src/components/media/MediaList.vue +0 -148
  145. package/src/components/media/MediaViewControls.vue +0 -38
  146. package/src/components/media/TypeTag.vue +0 -23
  147. package/src/components/menu/AddNewItemInTree.vue +0 -75
  148. package/src/components/menu/MenuBody.vue +0 -149
  149. package/src/components/menu/MenuItem.vue +0 -73
  150. package/src/components/menu/MenuList.vue +0 -101
  151. package/src/components/referencec/index.ts +0 -7
  152. package/src/components/referencec/vs-reference-faq.vue +0 -61
  153. package/src/components/referencec/vs-reference-user-card.vue +0 -40
  154. package/src/components/settings/NotificationSettings.vue +0 -32
  155. package/src/components/settings/SettingsTable.vue +0 -50
  156. package/src/components/settings/SettingsTitle.vue +0 -33
  157. package/src/components/settings/SettingsToggleItem.vue +0 -25
  158. package/src/components/sidebar/DropdownMenu.vue +0 -34
  159. package/src/components/sidebar/SettingsSidebar.vue +0 -121
  160. package/src/components/sidebar/SidebarFooter.vue +0 -52
  161. package/src/components/sidebar/SidebarHeader.vue +0 -57
  162. package/src/components/sidebar/SidebarMenu.vue +0 -78
  163. package/src/components/ui/EmptyData.vue +0 -76
  164. package/src/components/ui/UniversalTable.vue +0 -310
  165. package/src/components/ui/UniversalTableFilters.vue +0 -0
  166. package/src/components/ui/UniversalTablePagination.vue +0 -118
  167. package/src/components/ui/VsPreview.vue +0 -75
  168. package/src/composables/useCollectionView.ts +0 -21
  169. package/src/composables/useDebounce.ts +0 -26
  170. package/src/composables/useMonaco.ts +0 -28
  171. package/src/composables/useTheme.ts +0 -40
  172. package/src/content/test-slug/metadata.json +0 -1
  173. package/src/i18n.ts +0 -75
  174. package/src/index.css +0 -3
  175. package/src/index.ts +0 -122
  176. package/src/locales/en.json +0 -778
  177. package/src/locales/uk.json +0 -797
  178. package/src/main.ts +0 -41
  179. package/src/pages/Dashboard.vue +0 -168
  180. package/src/pages/EmailPage.vue +0 -183
  181. package/src/pages/FeedbackPage.vue +0 -232
  182. package/src/pages/MediaPage.vue +0 -372
  183. package/src/pages/TagsPage.vue +0 -207
  184. package/src/pages/builder/BuilderPage.vue +0 -195
  185. package/src/pages/builder/EditCollectionPage.vue +0 -163
  186. package/src/pages/collections/ArticlesPage.vue +0 -385
  187. package/src/pages/collections/CollectionsPage.vue +0 -146
  188. package/src/pages/collections/SingletonsPage.vue +0 -119
  189. package/src/pages/collections/contentForm.vue +0 -484
  190. package/src/pages/collections/schema/seo.ts +0 -27
  191. package/src/pages/menu/MenuAddPage.vue +0 -123
  192. package/src/pages/menu/MenuItemPage.vue +0 -183
  193. package/src/pages/menu/MenuPage.vue +0 -133
  194. package/src/pages/settings/ApiKeys.vue +0 -75
  195. package/src/pages/settings/Appearance.vue +0 -80
  196. package/src/pages/settings/Logs.vue +0 -260
  197. package/src/pages/settings/PermissionsPage.vue +0 -237
  198. package/src/pages/settings/Settings.vue +0 -186
  199. package/src/pages/settings/Users.vue +0 -109
  200. package/src/pages/settings/general.vue +0 -154
  201. package/src/pages/settings/generalScheme.js +0 -132
  202. package/src/pages/users/AddUser.vue +0 -106
  203. package/src/pages/users/UsersPage.vue +0 -98
  204. package/src/props/builder.ts +0 -67
  205. package/src/props/content.ts +0 -56
  206. package/src/props/media.ts +0 -63
  207. package/src/router/index.ts +0 -181
  208. package/src/types/fastify-auth.d.ts +0 -4
  209. package/src/utils/getField.js +0 -270
  210. package/src/utils/translit.js +0 -19
  211. 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
- }