@opengis/cms 0.0.2 → 0.0.3

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 (144) hide show
  1. package/.gitlab-ci.yml +36 -0
  2. package/config.example +21 -0
  3. package/docs/.vitepress/abbr.mjs +26 -0
  4. package/docs/.vitepress/config.mjs +119 -0
  5. package/docs/.vitepress/navigation.mjs +82 -0
  6. package/docs/.vitepress/theme/Layout.vue +17 -0
  7. package/docs/.vitepress/theme/components/NavigationLinks.vue +102 -0
  8. package/docs/.vitepress/theme/components/Panzoom.vue +169 -0
  9. package/docs/.vitepress/theme/index.mjs +15 -0
  10. package/docs/.vitepress/theme/style.scss +136 -0
  11. package/docs/abbr.json +4 -0
  12. package/docs/api/builder/cms.builder.delete.md +65 -0
  13. package/docs/api/builder/cms.builder.get.md +70 -0
  14. package/docs/api/builder/cms.builder.list.md +98 -0
  15. package/docs/api/builder/cms.builder.post.md +72 -0
  16. package/docs/api/builder/cms.builder.put.md +88 -0
  17. package/docs/api/category/cms.category.delete.md +60 -0
  18. package/docs/api/category/cms.category.get.md +61 -0
  19. package/docs/api/category/cms.category.list.md +77 -0
  20. package/docs/api/category/cms.category.post.md +62 -0
  21. package/docs/api/category/cms.category.put.md +78 -0
  22. package/docs/api/index.md +50 -0
  23. package/docs/api/manager/cms.manager.delete.md +64 -0
  24. package/docs/api/manager/cms.manager.get.md +72 -0
  25. package/docs/api/manager/cms.manager.list.md +96 -0
  26. package/docs/api/manager/cms.manager.post.md +70 -0
  27. package/docs/api/manager/cms.manager.put.md +86 -0
  28. package/docs/api/media/del.md +64 -0
  29. package/docs/api/media/edit.md +92 -0
  30. package/docs/api/media/list.md +70 -0
  31. package/docs/api/media/metadata.md +57 -0
  32. package/docs/api/media/preview.md +33 -0
  33. package/docs/api/media/upload.md +84 -0
  34. package/docs/db/erd.md +173 -0
  35. package/docs/db/index.md +7 -0
  36. package/docs/index.md +39 -0
  37. package/docs/public/logo-dark.svg +24 -0
  38. package/docs/public/logo-light.svg +24 -0
  39. package/docs/public/logo-short.svg +15 -0
  40. package/docs/public/logo.svg +19 -0
  41. package/docs/readme/index.md +6 -0
  42. package/docs/src/vs-button.vue +157 -0
  43. package/docs/vue/basic/button.md +144 -0
  44. package/docs/vue/index.md +9 -0
  45. package/index.html +14 -0
  46. package/package.json +2 -5
  47. package/server/app.js +25 -0
  48. package/server/config.js +5 -0
  49. package/server/index.js +23 -0
  50. package/server/migrations/media.sql +30 -0
  51. package/server/plugins/hook.js +91 -0
  52. package/server/plugins/vite.js +80 -0
  53. package/server/routes/builder/controllers/cms.builder.delete.js +21 -0
  54. package/server/routes/builder/controllers/cms.builder.get.js +17 -0
  55. package/server/routes/builder/controllers/cms.builder.list.js +16 -0
  56. package/server/routes/builder/controllers/cms.builder.post.js +21 -0
  57. package/server/routes/builder/controllers/cms.builder.put.js +23 -0
  58. package/server/routes/builder/index.mjs +22 -0
  59. package/server/routes/category/controllers/cms.category.delete.js +21 -0
  60. package/server/routes/category/controllers/cms.category.get.js +17 -0
  61. package/server/routes/category/controllers/cms.category.list.js +16 -0
  62. package/server/routes/category/controllers/cms.category.post.js +21 -0
  63. package/server/routes/category/controllers/cms.category.put.js +23 -0
  64. package/server/routes/category/index.mjs +22 -0
  65. package/server/routes/manager/controllers/cms.manager.delete.js +22 -0
  66. package/server/routes/manager/controllers/cms.manager.get.js +21 -0
  67. package/server/routes/manager/controllers/cms.manager.list.js +31 -0
  68. package/server/routes/manager/controllers/cms.manager.post.js +28 -0
  69. package/server/routes/manager/controllers/cms.manager.put.js +23 -0
  70. package/server/routes/manager/index.mjs +22 -0
  71. package/server/routes/media/controllers/delete.js +59 -0
  72. package/server/routes/media/controllers/edit.js +94 -0
  73. package/server/routes/media/controllers/list.js +74 -0
  74. package/server/routes/media/controllers/metadata.js +51 -0
  75. package/server/routes/media/controllers/preview.js +47 -0
  76. package/server/routes/media/controllers/upload.js +79 -0
  77. package/server/routes/media/index.mjs +16 -0
  78. package/server/routes/root.mjs +15 -0
  79. package/server/templates/cls/cms.category_type.json +10 -0
  80. package/server/templates/cls/cms.content_review_status.json +10 -0
  81. package/server/templates/cls/cms.content_status.json +10 -0
  82. package/server/templates/cls/cms.content_type.json +10 -0
  83. package/server/templates/cls/cms.lang.json +10 -0
  84. package/server/templates/page/login.html +59 -0
  85. package/server/templates/select/cms.category_id.sql +1 -0
  86. package/server/templates/select/cms.type_id.sql +1 -0
  87. package/src/App.vue +4 -0
  88. package/src/assets/tailwind/tailwind.js +62 -0
  89. package/src/assets/vue.svg +1 -0
  90. package/src/components/builder/vs-builder-content.vue +163 -0
  91. package/src/components/builder/vs-builder-menu.vue +142 -0
  92. package/src/components/formats/index.js +8 -0
  93. package/src/components/formats/vs-manager-table-date.vue +29 -0
  94. package/src/components/formats/vs-manager-table-switch.vue +16 -0
  95. package/src/components/icons/icon-actions.vue +24 -0
  96. package/src/components/icons/icon-arrow-left.vue +19 -0
  97. package/src/components/icons/icon-check.vue +23 -0
  98. package/src/components/icons/icon-chewron-right.vue +16 -0
  99. package/src/components/icons/icon-close.vue +22 -0
  100. package/src/components/icons/icon-edit.vue +22 -0
  101. package/src/components/icons/icon-folder.vue +18 -0
  102. package/src/components/icons/icon-folder2.vue +17 -0
  103. package/src/components/icons/icon-home.vue +16 -0
  104. package/src/components/icons/icon-image.vue +18 -0
  105. package/src/components/icons/icon-logo.vue +22 -0
  106. package/src/components/icons/icon-media.vue +22 -0
  107. package/src/components/icons/icon-point.vue +11 -0
  108. package/src/components/icons/icon-search.vue +22 -0
  109. package/src/components/icons/icon-table.vue +22 -0
  110. package/src/components/icons/icon-users.vue +18 -0
  111. package/src/components/icons/icon.plus.vue +18 -0
  112. package/src/components/manager/children/vs-manager-collection-content.vue +55 -0
  113. package/src/components/manager/children/vs-manager-collection-item-content.vue +116 -0
  114. package/src/components/manager/children/vs-manager-single-content.vue +112 -0
  115. package/src/components/manager/manager-table/vs-manager-colection-table-add.vue +84 -0
  116. package/src/components/manager/manager-table/vs-manager-collection-table.vue +59 -0
  117. package/src/components/manager/vs-manager-menu.vue +73 -0
  118. package/src/components/media/Breadcrumb.vue +73 -0
  119. package/src/components/shared-components/vs-not-data.vue +213 -0
  120. package/src/components/vs-main-menu.vue +53 -0
  121. package/src/helpers/debounce.js +10 -0
  122. package/src/helpers/translite.js +19 -0
  123. package/src/main.js +30 -0
  124. package/src/misc/import-file.js +32 -0
  125. package/src/pages/vs-builder.vue +22 -0
  126. package/src/pages/vs-layout.vue +17 -0
  127. package/src/pages/vs-manager.vue +30 -0
  128. package/src/pages/vs-media.vue +398 -0
  129. package/src/router/router.js +9 -0
  130. package/src/router/routes.config.js +40 -0
  131. package/src/style.css +0 -0
  132. package/src/templates/form-columns.js +70 -0
  133. package/src/templates/form-template.js +22 -0
  134. package/test/config.js +17 -0
  135. package/test/files/eye.svg +4 -0
  136. package/test/helper.js +30 -0
  137. package/test/routes/builder.test.js +99 -0
  138. package/test/routes/category.test.js +97 -0
  139. package/test/routes/manager.test.js +103 -0
  140. package/test/routes/media.test.js +252 -0
  141. package/vite.config.js +37 -0
  142. package/editor/dist/cms.js +0 -5900
  143. package/editor/dist/cms.umd.cjs +0 -19
  144. /package/{editor/dist → public}/vite.svg +0 -0
@@ -0,0 +1,64 @@
1
+ # `DELETE` /cms-media/:token
2
+
3
+ ## Опис
4
+
5
+ Видалення директорій, файлів через токен, який можна отримати із [списку](./list.md)
6
+
7
+ ## Параметри
8
+
9
+ ```scheme-api
10
+ /api/cms-media/:token?
11
+ ```
12
+
13
+ :::tabs
14
+
15
+ == params
16
+
17
+ | Назва | Тип | Опис |
18
+ | ----- | ------ | ------------- |
19
+ | token | String | Токен |
20
+
21
+ :::
22
+
23
+ ## Відповідь
24
+
25
+ :::tabs
26
+
27
+ == Видалення файлу
28
+
29
+ DELETE Request:
30
+
31
+ ```url
32
+ /api/cms-media/TR2nTuq8jqQck3RgHExmisRpHM
33
+ ```
34
+
35
+ Response:
36
+
37
+ ```json
38
+ {
39
+ "id": "288f3b581905",
40
+ "name": "1234.svg",
41
+ "size": "530",
42
+ "extension": "svg",
43
+ "caption": "Icon",
44
+ "altname": "image alt name"
45
+ }
46
+ ```
47
+
48
+ == Видалення директорії
49
+
50
+ DELETE Request:
51
+
52
+ ```url
53
+ /api/cms-media/TR2nTuq8jqQck3RgHExmisRpHM
54
+ ```
55
+
56
+ Response:
57
+
58
+ ```json
59
+ {
60
+ "name": "subdirname"
61
+ }
62
+ ```
63
+
64
+ :::
@@ -0,0 +1,92 @@
1
+ # `PUT` /cms-media/:token
2
+
3
+ ## Опис
4
+
5
+ Перейменування директорій, редагування метаданих файлів через токен, який можна отримати із [списку](./list.md)
6
+
7
+ ## Параметри
8
+
9
+ ```scheme-api
10
+ /api/cms-media/:token?
11
+ ```
12
+
13
+ :::tabs
14
+
15
+ == body
16
+
17
+ | Назва | Тип | Опис |
18
+ | ------- | ------ | -------------- |
19
+ | name | String | Назва |
20
+ | caption | String | Заголовок |
21
+ | altname | String | Альтернативна назва |
22
+
23
+ == params
24
+
25
+ | Назва | Тип | Опис |
26
+ | ----- | ------ | ------------- |
27
+ | token | String | Токен |
28
+
29
+ :::
30
+
31
+ ## Відповідь
32
+
33
+ ::: tabs
34
+
35
+ == Редагування метаданих
36
+
37
+ PUT Request:
38
+
39
+ ```url
40
+ /api/cms-media/TR2nTuq8jqQck3RgHExmisRpHM
41
+ ```
42
+
43
+ Request payload:
44
+
45
+ ```json
46
+ {
47
+ "name": "123.svg",
48
+ "caption": "Icon",
49
+ "altname": "image alt name"
50
+ }
51
+ ```
52
+
53
+ Response:
54
+
55
+ ```json
56
+ {
57
+ "id": "da993e9e291b",
58
+ "name": "123.svg",
59
+ "relpath": "/media/testdirname/123.svg",
60
+ "size": "530",
61
+ "extension": "svg",
62
+ "caption": "Icon",
63
+ "altname": "image alt name"
64
+ }
65
+ ```
66
+
67
+ ==Перейменування директорії
68
+
69
+ PUT Request:
70
+
71
+ ```url
72
+ /api/cms-media/100ZjMW2ZbMyTYIaqPfvUmf3A4U
73
+ ```
74
+
75
+ Request payload:
76
+
77
+ ```json
78
+ {
79
+ "name": "new directory name"
80
+ }
81
+ ```
82
+
83
+ Response:
84
+
85
+ ```json
86
+ {
87
+ "name": "new directory name",
88
+ "relpath": "/media/new directory name"
89
+ }
90
+ ```
91
+
92
+ :::
@@ -0,0 +1,70 @@
1
+ # `GET` /cms-media
2
+
3
+ ## Опис
4
+
5
+ Повертає список файлів
6
+
7
+ ## Параметри
8
+
9
+ ```scheme-api
10
+ /api/cms-media?dir={dir}
11
+ ```
12
+
13
+ :::tabs
14
+
15
+ == query
16
+
17
+ | Назва | Тип | Опис |
18
+ | ----- | ------ | ------------- |
19
+ | dir | String | Директорія |
20
+
21
+ :::
22
+
23
+ ## Відповідь
24
+
25
+ :::details Приклад відповіді
26
+
27
+ ```url
28
+ /api/cms-media?dir=subdir
29
+ ```
30
+
31
+ ```json
32
+ {
33
+ "token": "kh9GWz8kiQ1ZxqsDHGsiq1jghKc",
34
+ "data": [
35
+ {
36
+ "name": "a24520ac7d302678b1d903900.svg",
37
+ "type": "file",
38
+ "size": 530,
39
+ "extension": "svg",
40
+ "token": "TR2nTuq8jqQck3RgHExmisRpHM",
41
+ "ctime": "2025-03-11T12:53:46.055Z",
42
+ "mtime": "2025-03-11T13:57:15.453Z"
43
+ },
44
+ {
45
+ "name": "subdir2",
46
+ "type": "dir",
47
+ "size": 0,
48
+ "token": "100ZjMW2ZbMyTYIaqPfvUmf3A4U",
49
+ "ctime": "2025-03-11T12:57:15.453Z",
50
+ "mtime": "2025-03-11T13:57:15.453Z"
51
+ }
52
+ ]
53
+ }
54
+ ```
55
+
56
+ :::
57
+
58
+ ## Параметри відповіді
59
+
60
+ | Назва | Тип | Опис |
61
+ | ----- | ------ | ------------- |
62
+ | token | String | Токен для створення піддиректорій в межах даної директорії або завантаження файлів у дану директорію |
63
+ | data | Array | Список файлів в межах даної директорії |
64
+ | data.name | String | Назва файлу / директорії |
65
+ | data.type | String | Тип |
66
+ | data.size | Number | Розмір файлу |
67
+ | data.token | String | Токен для редагування метаданих файлу, перейменування файлу / директорії |
68
+ | data.extension | String | Розширення файлу |
69
+ | data.ctime | String | Дата створення |
70
+ | data.mtime | String | Дата редагування |
@@ -0,0 +1,57 @@
1
+ # `GET` /cms-media-metadata/:token
2
+
3
+ ## Опис
4
+
5
+ Отримання метаданих файлу через токен, який можна отримати із [списку](./list.md)
6
+
7
+ ## Параметри
8
+
9
+ ```scheme-api
10
+ /api/cms-media-metadata/:token
11
+ ```
12
+
13
+ :::tabs
14
+
15
+ == params
16
+
17
+ | Назва | Тип | Опис |
18
+ | ----- | ------ | ------------- |
19
+ | token | String | Токен |
20
+
21
+ :::
22
+
23
+ ## Відповідь
24
+
25
+ :::details Приклад відповіді
26
+
27
+ GET Request:
28
+
29
+ ```url
30
+ /api/cms-media-metadata/TR2nTuq8jqQck3RgHExmisRpHM
31
+ ```
32
+
33
+ Response:
34
+
35
+ ```json
36
+ {
37
+ "id": "bfcf02f9f34f",
38
+ "name": "94a501f4216900853e3736e00.svg",
39
+ "size": 530,
40
+ "extension": "svg",
41
+ "ctime": "2025-03-12T08:27:25.944Z",
42
+ "mtime": "2025-03-12T08:27:25.906Z"
43
+ }
44
+ ```
45
+
46
+ :::
47
+
48
+ ## Параметри відповіді
49
+
50
+ | Назва | Тип | Опис |
51
+ | ----- | ------ | ------------- |
52
+ | id | Array | ID запису в БД, що містить метадані |
53
+ | name | String | Назва файлу |
54
+ | size | Number | Розмір файлу |
55
+ | extension | String | Розширення файлу |
56
+ | ctime | String | Дата створення |
57
+ | mtime | String | Дата редагування |
@@ -0,0 +1,33 @@
1
+ # `GET` /cms-media/:token
2
+
3
+ ## Опис
4
+
5
+ Дозволяє виконати перегляд файлу за токеном зі [списку](./list.md)
6
+
7
+ Є можливість викачати його за умови передачі `query` параметру `download`
8
+
9
+ ## Параметри
10
+
11
+ ```scheme-api
12
+ /api/cms-media/:token
13
+ ```
14
+
15
+ :::tabs
16
+
17
+ == query
18
+
19
+ | Назва | Тип | Опис |
20
+ | ----- | ------ | ------------- |
21
+ | token | String | Token |
22
+
23
+ :::
24
+
25
+ ## Приклади
26
+
27
+ ```url
28
+ /api/cms-media/TR2nTuq8jqQck3RgHExmisRpHM
29
+ ```
30
+
31
+ ```url
32
+ /api/cms-media/TR2nTuq8jqQck3RgHExmisRpHM?download=1
33
+ ```
@@ -0,0 +1,84 @@
1
+ # `POST` /cms-media/:token
2
+
3
+ ## Опис
4
+
5
+ Завантаження файлів / Створення директорій через токен, який можна отримати із [списку](./list.md)
6
+
7
+ ## Параметри
8
+
9
+ ```scheme-api
10
+ /api/cms-media/:token
11
+ ```
12
+
13
+ :::tabs
14
+
15
+ == body
16
+
17
+ | Назва | Тип | Опис |
18
+ | ----- | ------ | ------------- |
19
+ | name | String | Назва директорії |
20
+
21
+ == params
22
+
23
+ | Назва | Тип | Опис |
24
+ | ----- | ------ | ------------- |
25
+ | token | String | Токен |
26
+
27
+ :::
28
+
29
+ ## Відповідь
30
+
31
+ ::: tabs
32
+
33
+ ==Завантаження файлу
34
+
35
+ POST Request:
36
+
37
+ ```url
38
+ /api/cms-media/kh9GWz8kiQ1ZxqsDHGsiq1jghKc
39
+ ```
40
+
41
+ Request payload:
42
+
43
+ file (`multipart/form-data`)
44
+
45
+ Response:
46
+
47
+ ```json
48
+ {
49
+ "dir": "testdirname",
50
+ "id": "1b74cc3b47a0",
51
+ "name": "31555c4bde0681c618c9a6300.svg",
52
+ "type": "file",
53
+ "token": "jbEFF4CQ784KOpcNr0GmO4Rm2Ys"
54
+ }
55
+ ```
56
+
57
+ ==Створення директорії
58
+
59
+ POST Request:
60
+
61
+ ```url
62
+ /api/cms-media/kh9GWz8kiQ1ZxqsDHGsiq1jghKc
63
+ ```
64
+
65
+ Request payload:
66
+
67
+ ```json
68
+ {
69
+ "name": "new dir name"
70
+ }
71
+ ```
72
+
73
+ Response:
74
+
75
+ ```json
76
+ {
77
+ "dir": "/media/testdirname",
78
+ "name": "testdirname",
79
+ "type": "dir",
80
+ "token": "dZI9Pv_tc3y3jVEJvuHxstnuQMQ"
81
+ }
82
+ ```
83
+
84
+ :::
package/docs/db/erd.md ADDED
@@ -0,0 +1,173 @@
1
+ # ERD DataBase
2
+
3
+ ## Схема
4
+
5
+ ``` mermaid
6
+ erDiagram
7
+ gis_metadata_role {
8
+ text metadata_role_id PK
9
+ text metadata_id FK
10
+ string role_code
11
+ text account_id FK
12
+ timestamp cdate
13
+ text uid
14
+ text editor_id
15
+ timestamp editor_date
16
+ }
17
+ gis_metadata_service {
18
+ text metadata_service_id PK
19
+ text metadata_id FK
20
+ text standart_type
21
+ text link
22
+ timestamp cdate
23
+ text uid
24
+ text editor_id
25
+ timestamp editor_date
26
+ }
27
+ gis_metadata {
28
+ text metadata_id PK
29
+ text parent_identifier
30
+ text title
31
+ text resource_type
32
+ text resource_language
33
+ text md_scope
34
+ text keywords
35
+ text coord_ref_system
36
+ geometry geom
37
+ text scale
38
+ text character_encoding
39
+ text spatial_representation
40
+ }
41
+ gis_metadata_service ||--|{ gis_metadata : ""
42
+ gis_metadata_role ||--|{ gis_metadata : ""
43
+ ```
44
+
45
+ ## Метадані - nsdi_metadata.gis_metadata
46
+
47
+ :::tabs
48
+
49
+ ==sql
50
+
51
+ ```sql
52
+
53
+ CREATE TABLE nsdi_metadata.gis_metadata
54
+ (
55
+ metadata_id text NOT NULL DEFAULT admin.next_id(), -- Id метаданих
56
+ parent_identifier text, -- parent Identifier
57
+ title text, -- Назва метаданих
58
+ resource_type text DEFAULT 'dataset'::text, -- Тип метаданих
59
+ resource_language text DEFAULT 1, -- Мова метаданих
60
+ md_scope text, -- Опис метаданих
61
+ keywords text[], -- Ключові слова
62
+ coord_ref_system text DEFAULT '5561'::text, -- Система координат
63
+ geom geometry, -- Охоплення (екстент)
64
+ scale text, -- Масштаб подання даних
65
+ character_encoding text DEFAULT 'UTF-8'::text, -- Система кодування
66
+ spatial_representation text, -- Подання просторових даних
67
+ CONSTRAINT gis_metadata_pkey PRIMARY KEY (metadata_id)
68
+ );
69
+
70
+ ```
71
+ ==table
72
+
73
+ | Назва колонки | Опис | Тип |
74
+ | ---------------------- | ------------------------- | ---------- |
75
+ | metadata_id | Id метаданих | `text` |
76
+ | parent_identifier | parent Identifier | `text` |
77
+ | title | Назва метаданих | `text` |
78
+ | resource_type | Тип метаданих | `text` |
79
+ | resource_language | Мова метаданих | `text` |
80
+ | md_scope | Опис метаданих | `text` |
81
+ | keywords | Ключові слова | `text` |
82
+ | coord_ref_system | Система координат | `text` |
83
+ | geom | Охоплення (екстент) | `geometry` |
84
+ | scale | Масштаб подання даних | `text` |
85
+ | character_encoding | Система кодування | `text` |
86
+ | spatial_representation | Подання просторових даних | `text` |
87
+
88
+ :::
89
+
90
+ ## Організації - nsdi_metadata.gis_metadata_role
91
+
92
+ :::tabs
93
+
94
+ ==sql
95
+
96
+ ```sql
97
+
98
+ CREATE TABLE nsdi_metadata.gis_metadata_role
99
+ (
100
+ metadata_role_id text NOT NULL DEFAULT admin.next_id(), -- Id ролі організації в метаданих
101
+ metadata_id text NOT NULL, -- Id метаданих
102
+ role_code text, -- Функція відповідальної сторони
103
+ account_id text, -- Організація
104
+ cdate timestamp without time zone DEFAULT now(),
105
+ uid text,
106
+ editor_id text, -- Ідентифікатор редактора
107
+ editor_date timestamp without time zone,
108
+ CONSTRAINT gis_metadata_role_pkey PRIMARY KEY (metadata_role_id),
109
+ CONSTRAINT fkey_metadata_role FOREIGN KEY (metadata_id)
110
+ REFERENCES nsdi_metadata.gis_metadata (metadata_id) MATCH SIMPLE
111
+ ON UPDATE NO ACTION ON DELETE NO ACTION,
112
+ CONSTRAINT metadata_acc_id_fkey FOREIGN KEY (account_id)
113
+ REFERENCES nsdi_metadata.gis_metadata_account (metadata_acc_id) MATCH SIMPLE
114
+ ON UPDATE NO ACTION ON DELETE NO ACTION,
115
+ CONSTRAINT metadata_id_role_fkey FOREIGN KEY (metadata_id)
116
+ REFERENCES nsdi_metadata.gis_metadata (metadata_id) MATCH SIMPLE
117
+ ON UPDATE CASCADE ON DELETE CASCADE
118
+ );
119
+
120
+ ```
121
+ ==table
122
+ | Назва колонки | Опис | Тип |
123
+ | ---------------- | ------------------------------- | ----------------------------- |
124
+ | metadata_role_id | Id ролі організації в метаданих | `text` |
125
+ | metadata_id | Id метаданих | `text` |
126
+ | role_code | Функція відповідальної сторони | `text` |
127
+ | account_id | Організація | `text` |
128
+ | cdate | Дата додавання | `timestamp without time zone` |
129
+ | editor_id | Ідентифікатор редактора | `text` |
130
+ | editor_date | Дата редагування | `timestamp without time zone` |
131
+
132
+ :::
133
+
134
+ ## Сервіси - nsdi_metadata.gis_metadata_service
135
+
136
+ :::tabs
137
+ ==sql
138
+
139
+ ```sql
140
+
141
+ CREATE TABLE nsdi_metadata.gis_metadata_service
142
+ (
143
+ metadata_service_id text NOT NULL DEFAULT admin.next_id(), -- Id сервісу в метаданих
144
+ metadata_id text NOT NULL, -- Id метаданих
145
+ standard_type text, -- Стандарт, якому відповідає сервіс
146
+ link text, -- Посилання на сервіс (Онлайн доступ до ресурсу)
147
+ cdate timestamp without time zone DEFAULT now(),
148
+ uid text,
149
+ editor_id text, -- Ідентифікатор редактора
150
+ editor_date timestamp without time zone,
151
+ enabled boolean NOT NULL DEFAULT true,
152
+ CONSTRAINT gis_metadata_service_pkey PRIMARY KEY (metadata_service_id),
153
+ CONSTRAINT fkey_metadata_service FOREIGN KEY (metadata_id)
154
+ REFERENCES nsdi_metadata.gis_metadata (metadata_id) MATCH SIMPLE
155
+ ON UPDATE NO ACTION ON DELETE NO ACTION,
156
+ CONSTRAINT metadata_id_service_fkey FOREIGN KEY (metadata_id)
157
+ REFERENCES nsdi_metadata.gis_metadata (metadata_id) MATCH SIMPLE
158
+ ON UPDATE CASCADE ON DELETE CASCADE
159
+ );
160
+
161
+ ```
162
+ ==table
163
+ | Назва колонки | Опис | Тип |
164
+ | ---------------- | ---------------------------------------------- | ----------------------------- |
165
+ | metadata_role_id | Id сервісу в метаданих | `text` |
166
+ | metadata_id | Id метаданих | `text` |
167
+ | standard_type | Стандарт, якому відповідає сервіс | `text` |
168
+ | link | Посилання на сервіс (Онлайн доступ до ресурсу) | `text` |
169
+ | cdate | Дата додавання | `timestamp without time zone` |
170
+ | editor_id | Ідентифікатор редактора | `text` |
171
+ | editor_date | Дата редагування | `timestamp without time zone` |
172
+
173
+ :::
@@ -0,0 +1,7 @@
1
+ ---
2
+ order: 0
3
+ ---
4
+
5
+ # Список Scheme
6
+
7
+ - **[ERD](erd.md)**
package/docs/index.md ADDED
@@ -0,0 +1,39 @@
1
+ ---
2
+ # https://vitepress.dev/reference/default-theme-home-page
3
+ layout: home
4
+
5
+ hero:
6
+ name: opengis/cms
7
+ text: Документація розробника
8
+ tagline: Документація описує основні процеси розробки в модулі Content Management System
9
+ image:
10
+ light: /logo-light.svg
11
+ dark: /logo-dark.svg
12
+ actions:
13
+ - theme: brand
14
+ text: 'NPM @opengis/cms'
15
+ link: https://www.npmjs.com/package/@opengis/cms
16
+ - theme: brand
17
+ text: GitLab CMS
18
+ link: https://git.softpro.ua/npm/cms
19
+ - theme: alt
20
+ text: Відкрити Readme
21
+ link: /readme/
22
+
23
+ features:
24
+ - icon: 💿
25
+ title: DB
26
+ details: Робота з БД
27
+ link: /db/
28
+ linkText: Переглянути
29
+ - icon: 🔗
30
+ title: API
31
+ details: Робота з API
32
+ link: /api/
33
+ linkText: Переглянути
34
+ - icon: 🚀
35
+ title: Vue
36
+ details: Робота з Vue.js
37
+ link: /vue/
38
+ linkText: Переглянути
39
+ ---
@@ -0,0 +1,24 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg"
2
+ width="24"
3
+ height="24"
4
+ viewBox="0 0 24 24"
5
+ fill="none"
6
+ stroke="#e6e6dc"
7
+ stroke-width="2"
8
+ stroke-linecap="round"
9
+ stroke-linejoin="round"
10
+ class="lucide lucide-square-kanban">
11
+ <rect width="18" height="18" x="3" y="3" rx="2"/>
12
+ <path d="M8 7v9"/>
13
+ <path d="M12 7v4"/>
14
+ <path d="M16 7v7"/>
15
+
16
+ <path d="M19.001 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" stroke="#3494ef"/>
17
+ <path d="M19.001 15.5v1.5" stroke="#3494ef"/>
18
+ <path d="M19.001 21v1.5" stroke="#3494ef"/>
19
+ <path d="M22.032 17.25l-1.299 .75" stroke="#3494ef"/>
20
+ <path d="M17.27 20l-1.3 .75" stroke="#3494ef"/>
21
+ <path d="M15.97 17.25l1.3 .75" stroke="#3494ef"/>
22
+ <path d="M20.733 20l1.3 .75" stroke="#3494ef"/>
23
+
24
+ </svg>
@@ -0,0 +1,24 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg"
2
+ width="24"
3
+ height="24"
4
+ viewBox="0 0 24 24"
5
+ fill="none"
6
+ stroke="#27272b"
7
+ stroke-width="2"
8
+ stroke-linecap="round"
9
+ stroke-linejoin="round"
10
+ class="lucide lucide-square-kanban">
11
+ <rect width="18" height="18" x="3" y="3" rx="2"/>
12
+ <path d="M8 7v9"/>
13
+ <path d="M12 7v4"/>
14
+ <path d="M16 7v7"/>
15
+
16
+ <path d="M19.001 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" stroke="#3494ef"/>
17
+ <path d="M19.001 15.5v1.5" stroke="#3494ef"/>
18
+ <path d="M19.001 21v1.5" stroke="#3494ef"/>
19
+ <path d="M22.032 17.25l-1.299 .75" stroke="#3494ef"/>
20
+ <path d="M17.27 20l-1.3 .75" stroke="#3494ef"/>
21
+ <path d="M15.97 17.25l1.3 .75" stroke="#3494ef"/>
22
+ <path d="M20.733 20l1.3 .75" stroke="#3494ef"/>
23
+
24
+ </svg>
@@ -0,0 +1,15 @@
1
+ <svg width="31" height="30.000000000000004" xmlns="http://www.w3.org/2000/svg" fill="none">
2
+ <defs>
3
+ <clipPath id="clip0_200_320">
4
+ <rect id="svg_1" fill="white" height="30" width="228"/>
5
+ </clipPath>
6
+ </defs>
7
+ <g>
8
+ <title>Layer 1</title>
9
+ <g id="svg_2" clip-path="url(#clip0_200_320)">
10
+ <path id="svg_3" fill="#CE4140" d="m27.3044,11.5405c0.5845,0.3818 1.2274,0.6681 1.9042,0.8501l0,5.1362c-2.7563,0.7427 -4.7867,3.2004 -4.7867,6.1056c0,0.5428 0.0708,1.0797 0.2123,1.5987l-4.5806,2.5651c-0.5138,-0.4892 -1.1044,-0.8918 -1.7535,-1.1931l0,-5.8968c2.2426,-1.029 3.7131,-3.2213 3.7131,-5.7178c0,-0.1581 -0.0062,-0.3162 -0.0185,-0.4743l5.3097,-2.9737zm0.1784,-2.05808l-7.4231,4.15788c0.1323,0.4265 0.2061,0.8799 0.2061,1.3482c0,2.2042 -1.5873,4.0505 -3.7131,4.5218l0,8.2859c1.3105,0.2923 2.4149,1.1066 3.0702,2.2042l7.1985,-4.0296c-0.4122,-0.686 -0.6491,-1.4824 -0.6491,-2.3325c0,-2.5621 2.1442,-4.6411 4.7868,-4.6411l0,-8.0652c-1.3721,0 -2.6026,-0.5578 -3.4763,-1.44958z"/>
11
+ <path id="svg_4" fill="#CE4140" d="m20.1119,2.21018l4.5099,2.52635c-0.1323,0.50706 -0.2,1.02903 -0.2,1.55399c0,0.17597 0.0061,0.35195 0.0215,0.52793l-5.2697,2.94989c-1.0798,-0.71883 -2.3718,-1.11254 -3.6977,-1.11254c-1.3166,0 -2.6025,0.39073 -3.6792,1.10061l-5.28513,-2.95884c0.01231,-0.16703 0.02154,-0.33704 0.02154,-0.50705c0,-0.52496 -0.06768,-1.04693 -0.19996,-1.55399l4.50675,-2.52337c1.2121,1.18115 2.8733,1.87016 4.6329,1.87016c1.7628,0 3.427,-0.69199 4.6391,-1.87314zm-0.4553,-2.21018c-0.8183,1.42275 -2.3841,2.38616 -4.1838,2.38616c-1.7996,0 -3.3654,-0.96341 -4.1837,-2.38318l-7.1309,3.99086c0.39685,0.67707 0.62757,1.45854 0.62757,2.29369c0,0.48022 -0.07383,0.94254 -0.21534,1.37503l7.41387,4.14894c0.8737,-0.9038 2.1134,-1.4675 3.4916,-1.4675c1.3843,0 2.6333,0.5697 3.507,1.4824l7.4077,-4.14595c-0.1415,-0.44144 -0.2215,-0.90972 -0.2215,-1.3959c0,-0.83516 0.2277,-1.61662 0.6276,-2.2937l-7.1401,-3.99085z"/>
12
+ <path id="svg_5" fill="#CE4140" d="m3.67003,11.5278l5.29431,2.9648c-0.01231,0.1641 -0.01846,0.3311 -0.01846,0.4982c0,2.4935 1.47052,4.6828 3.70692,5.7148l0,5.8998c-0.646,0.3012 -1.2397,0.7039 -1.7504,1.1901l-4.57753,-2.5622c0.14151,-0.5189 0.21227,-1.0588 0.21227,-1.6017c0,-2.9081 -2.03036,-5.3629 -4.78673,-6.1055l0,-5.1333c0.67987,-0.1849 1.33204,-0.4772 1.91962,-0.865zm-0.18458,-2.061c-0.87367,0.9008 -2.11034,1.4615 -3.48545,1.4615l0,8.0623c2.64254,0 4.78672,2.0789 4.78672,4.641c0,0.8501 -0.23687,1.6465 -0.6491,2.3325l7.19238,4.0267c0.6553,-1.0947 1.7566,-1.909 3.0671,-2.2013l0,-8.28c-2.1227,-0.4742 -3.707,-2.3175 -3.707,-4.5217c0,-0.4773 0.0739,-0.9366 0.2123,-1.3691l-7.41695,-4.1519z"/>
13
+ </g>
14
+ </g>
15
+ </svg>