@opengis/cms 0.0.17 → 0.0.18
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.
- package/module/cms/card/cms.content.table/index.yml +17 -0
- package/module/cms/card/cms.content.table/main_info.hbs +26 -0
- package/module/cms/card/cms.menu.table/content_info.hbs +16 -0
- package/module/cms/card/cms.menu.table/index.yml +18 -0
- package/module/cms/card/cms.menu.table/main_info.hbs +22 -0
- package/module/cms/card/cms.settings.table/index.yml +13 -0
- package/module/cms/card/cms.settings.table/main_info.hbs +20 -0
- package/module/cms/cls/content.status.json +18 -0
- package/module/cms/cls/user_type.json +10 -0
- package/module/cms/form/admin.users.form.json +78 -0
- package/module/cms/form/cms.content.form.json +79 -0
- package/module/cms/form/cms.menu.form.json +69 -0
- package/module/cms/form/cms.settings.form.json +32 -0
- package/module/cms/menu.json +24 -0
- package/module/cms/router.js +154 -0
- package/module/cms/select/cms.page_type.sql +2 -0
- package/module/cms/select/collection.sql +1 -0
- package/module/cms/select/locale.sql +17 -0
- package/module/cms/select/news_tag_id.sql +12 -0
- package/module/cms/select/tag_id.sql +1 -0
- package/module/cms/table/admin.users.table.json +54 -0
- package/module/cms/table/cms.content.table.json +106 -0
- package/module/cms/table/cms.menu.table.json +73 -0
- package/module/cms/table/cms.settings.table.json +57 -0
- package/module/cms/table/collection.default.table.json +102 -0
- package/module/cms/table/single.default.table.json +115 -0
- package/package.json +2 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
component: default
|
|
2
|
+
|
|
3
|
+
tokens:
|
|
4
|
+
edit: { table: cms.content.table, form: cms.content.form, id: '{{id}}', ignoreCheck: true }
|
|
5
|
+
|
|
6
|
+
panels:
|
|
7
|
+
- type: container
|
|
8
|
+
col: 5
|
|
9
|
+
items:
|
|
10
|
+
- name: main_info
|
|
11
|
+
- component: vs-widget-file
|
|
12
|
+
- type: tabs
|
|
13
|
+
col: 7
|
|
14
|
+
items:
|
|
15
|
+
- component: vs-widget-history
|
|
16
|
+
title: Історія редагування
|
|
17
|
+
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<div>
|
|
2
|
+
<div class="flex justify-between items-center pb-[5px]">
|
|
3
|
+
<div class="font-semibold text-[16px] dark:text-white">Загальна інформація</div>
|
|
4
|
+
<div class="flex gap-[5px] items-center">
|
|
5
|
+
{{{button this token=(token table="cms.content.table" form="cms.content.form" id=content_id) edit=1 }}}
|
|
6
|
+
{{{button this token=(token table="cms.content.table" id=content_id) del=1 }}}
|
|
7
|
+
</div>
|
|
8
|
+
</div>
|
|
9
|
+
{{{descriptionList
|
|
10
|
+
this
|
|
11
|
+
comma=";"
|
|
12
|
+
columns="
|
|
13
|
+
Назва,title,
|
|
14
|
+
Slug,slug,
|
|
15
|
+
Тип контенту,{{select content_type_id data='collection'}},
|
|
16
|
+
Статус,{{{badge status data='content.status'}}},
|
|
17
|
+
Дата публікації,{{formatDate published_at}},
|
|
18
|
+
Локаль,locale,
|
|
19
|
+
Головне зображення,{{{buttonFilePreview main_image}}},
|
|
20
|
+
Користувач; який створив запис, {{select created_by data='user_id'}},
|
|
21
|
+
Дата створення, {{formatDate created_at}},
|
|
22
|
+
Дата оновлення, {{formatDate updated_at}}
|
|
23
|
+
"
|
|
24
|
+
}}}
|
|
25
|
+
</div>
|
|
26
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<div>
|
|
2
|
+
<div class="font-semibold text-[16px] dark:text-white mb-2">Контент меню</div>
|
|
3
|
+
{{#if content}}
|
|
4
|
+
<div class="bg-gray-50 dark:bg-gray-800 p-4 rounded-lg mb-4">
|
|
5
|
+
<div class="font-semibold text-sm mb-2">YAML формат:</div>
|
|
6
|
+
<pre class="bg-gray-900 text-green-400 p-4 rounded-lg font-mono text-sm overflow-auto whitespace-pre-wrap">{{content}}</pre>
|
|
7
|
+
</div>
|
|
8
|
+
{{/if}}
|
|
9
|
+
{{#if items}}
|
|
10
|
+
<div class="bg-gray-50 dark:bg-gray-800 p-4 rounded-lg">
|
|
11
|
+
<div class="font-semibold text-sm mb-2">JSON формат:</div>
|
|
12
|
+
<pre class="bg-gray-900 text-green-400 p-4 rounded-lg font-mono text-sm overflow-auto whitespace-pre-wrap">{{json items}}</pre>
|
|
13
|
+
</div>
|
|
14
|
+
{{/if}}
|
|
15
|
+
</div>
|
|
16
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
component: default
|
|
2
|
+
|
|
3
|
+
tokens:
|
|
4
|
+
edit: { table: cms.menu.table, form: cms.menu.form, id: '{{id}}', ignoreCheck: true }
|
|
5
|
+
|
|
6
|
+
panels:
|
|
7
|
+
- type: container
|
|
8
|
+
col: 5
|
|
9
|
+
items:
|
|
10
|
+
- name: main_info
|
|
11
|
+
- type: tabs
|
|
12
|
+
col: 7
|
|
13
|
+
items:
|
|
14
|
+
- name: content_info
|
|
15
|
+
title: Контент меню
|
|
16
|
+
- component: vs-widget-history
|
|
17
|
+
title: Історія редагування
|
|
18
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<div>
|
|
2
|
+
<div class="flex justify-between items-center pb-[5px]">
|
|
3
|
+
<div class="font-semibold text-[16px] dark:text-white">Загальна інформація</div>
|
|
4
|
+
<div class="flex gap-[5px] items-center">
|
|
5
|
+
{{{button this token=(token table="cms.menu.table" form="cms.menu.form" id=menu_id) edit=1 }}}
|
|
6
|
+
{{{button this token=(token table="cms.menu.table" id=menu_id) del=1 }}}
|
|
7
|
+
</div>
|
|
8
|
+
</div>
|
|
9
|
+
{{{descriptionList
|
|
10
|
+
this
|
|
11
|
+
comma=";"
|
|
12
|
+
columns="
|
|
13
|
+
Назва меню,name,
|
|
14
|
+
Локаль,locale,
|
|
15
|
+
Опис,description,
|
|
16
|
+
Користувач; який створив запис, {{select created_by data='user_id'}},
|
|
17
|
+
Дата створення, {{formatDate created_at}},
|
|
18
|
+
Дата оновлення, {{formatDate updated_at}}
|
|
19
|
+
"
|
|
20
|
+
}}}
|
|
21
|
+
</div>
|
|
22
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
component: default
|
|
2
|
+
|
|
3
|
+
tokens:
|
|
4
|
+
edit: { table: cms.settings.table, form: cms.settings.form, id: '{{id}}', ignoreCheck: true }
|
|
5
|
+
|
|
6
|
+
panels:
|
|
7
|
+
- type: container
|
|
8
|
+
col: 12
|
|
9
|
+
items:
|
|
10
|
+
- name: main_info
|
|
11
|
+
- component: vs-widget-history
|
|
12
|
+
title: Історія редагування
|
|
13
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<div>
|
|
2
|
+
<div class="flex justify-between items-center pb-[5px]">
|
|
3
|
+
<div class="font-semibold text-[16px] dark:text-white">Налаштування</div>
|
|
4
|
+
<div class="flex gap-[5px] items-center">
|
|
5
|
+
{{{button this token=(token table="cms.settings.table" form="cms.settings.form" id=id) edit=1 }}}
|
|
6
|
+
</div>
|
|
7
|
+
</div>
|
|
8
|
+
{{{descriptionList
|
|
9
|
+
this
|
|
10
|
+
comma=";"
|
|
11
|
+
columns="
|
|
12
|
+
Ключ,key,
|
|
13
|
+
Значення,value,
|
|
14
|
+
Користувач; який створив запис, {{select created_by data='user_id'}},
|
|
15
|
+
Дата створення, {{formatDate created_at}},
|
|
16
|
+
Дата оновлення, {{formatDate updated_at}}
|
|
17
|
+
"
|
|
18
|
+
}}}
|
|
19
|
+
</div>
|
|
20
|
+
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": {
|
|
3
|
+
"user_name": {
|
|
4
|
+
"type": "Text",
|
|
5
|
+
"rules": [
|
|
6
|
+
"required"
|
|
7
|
+
],
|
|
8
|
+
"ua": "Ім'я",
|
|
9
|
+
"i": "Вноситься ім'я користувача, що буде відображатися у системі"
|
|
10
|
+
},
|
|
11
|
+
"sur_name": {
|
|
12
|
+
"type": "Text",
|
|
13
|
+
"rules": [
|
|
14
|
+
"required"
|
|
15
|
+
],
|
|
16
|
+
"ua": "Прізвище",
|
|
17
|
+
"i": "Вноситься прізвище користувача, що буде відображатися у системі"
|
|
18
|
+
},
|
|
19
|
+
"father_name": {
|
|
20
|
+
"ua": "По-батькові",
|
|
21
|
+
"type": "Text"
|
|
22
|
+
},
|
|
23
|
+
"phone": {
|
|
24
|
+
"type": "Text",
|
|
25
|
+
"mask": "+389999999999",
|
|
26
|
+
"ua": "Телефон",
|
|
27
|
+
"i": "Вноситься телефон користувача"
|
|
28
|
+
},
|
|
29
|
+
"email": {
|
|
30
|
+
"type": "Text",
|
|
31
|
+
"ua": "E-mail",
|
|
32
|
+
"i": "Вноситься електронна адреса користувача",
|
|
33
|
+
"rules": [
|
|
34
|
+
"email"
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
"login": {
|
|
38
|
+
"type": "Text",
|
|
39
|
+
"ua": "Логін",
|
|
40
|
+
"i": "Вноситься довільний логін користувача латинськими літерами, що буде використовуватися для входу в систему",
|
|
41
|
+
"rules": [
|
|
42
|
+
"required"
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
"password": {
|
|
46
|
+
"type": "Text",
|
|
47
|
+
"ua": "Пароль",
|
|
48
|
+
"rules": [
|
|
49
|
+
"required",
|
|
50
|
+
{
|
|
51
|
+
"type": "regexp",
|
|
52
|
+
"pattern": "^.{8,}$",
|
|
53
|
+
"message": "Пароль повинен бути більше 8 символів"
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"i": "Вноситься пароль, що буде використовуватися для входу в систему (рекомендоване використання складних паролів)"
|
|
57
|
+
},
|
|
58
|
+
"avatar": {
|
|
59
|
+
"type": "File",
|
|
60
|
+
"ua": "Аватар",
|
|
61
|
+
"i": "Додається зображення, що буде відображено в системі у якості аватара цього користувача"
|
|
62
|
+
},
|
|
63
|
+
"user_type": {
|
|
64
|
+
"type": "Select",
|
|
65
|
+
"ua": "Тип користувача",
|
|
66
|
+
"i": "Вноситься тип користувача",
|
|
67
|
+
"data": "user_type"
|
|
68
|
+
},
|
|
69
|
+
"enabled": {
|
|
70
|
+
"type": "Switcher",
|
|
71
|
+
"label": "Доступ"
|
|
72
|
+
},
|
|
73
|
+
"twofa": {
|
|
74
|
+
"type": "Switcher",
|
|
75
|
+
"label": "Двофакторна авторизація"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"style": {
|
|
3
|
+
"navigation": true
|
|
4
|
+
},
|
|
5
|
+
"schema": {
|
|
6
|
+
"d0": {
|
|
7
|
+
"type": "HTML",
|
|
8
|
+
"title": "Загальна інформація",
|
|
9
|
+
"text": "<h2 class='text-xl font-bold text-left'>Загальна інформація про контент</h2>",
|
|
10
|
+
"col": 12
|
|
11
|
+
},
|
|
12
|
+
"title": {
|
|
13
|
+
"ua": "Назва",
|
|
14
|
+
"col": 12,
|
|
15
|
+
"type": "Text",
|
|
16
|
+
"validators": [
|
|
17
|
+
"required"
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
"slug": {
|
|
21
|
+
"ua": "Slug",
|
|
22
|
+
"col": 12,
|
|
23
|
+
"type": "Text",
|
|
24
|
+
"parent": "title",
|
|
25
|
+
"validators": [
|
|
26
|
+
"required"
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
"content_type_id": {
|
|
30
|
+
"ua": "Тип контенту",
|
|
31
|
+
"col": 6,
|
|
32
|
+
"type": "Autocomplete",
|
|
33
|
+
"data": "collection",
|
|
34
|
+
"validators": [
|
|
35
|
+
"required"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"status": {
|
|
39
|
+
"ua": "Статус",
|
|
40
|
+
"col": 6,
|
|
41
|
+
"type": "Select",
|
|
42
|
+
"data": "content.status",
|
|
43
|
+
"validators": [
|
|
44
|
+
"required"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"published_at": {
|
|
48
|
+
"ua": "Дата публікації",
|
|
49
|
+
"col": 6,
|
|
50
|
+
"type": "Date",
|
|
51
|
+
"mode": "datetime",
|
|
52
|
+
"validators": [
|
|
53
|
+
"required"
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
"locale": {
|
|
57
|
+
"ua": "Локаль",
|
|
58
|
+
"col": 6,
|
|
59
|
+
"type": "Select",
|
|
60
|
+
"defaultValue": "uk",
|
|
61
|
+
"options": [
|
|
62
|
+
{
|
|
63
|
+
"id": "uk",
|
|
64
|
+
"text": "Українська"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"id": "en",
|
|
68
|
+
"text": "English"
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
},
|
|
72
|
+
"main_image": {
|
|
73
|
+
"ua": "Головне зображення",
|
|
74
|
+
"col": 12,
|
|
75
|
+
"type": "File"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"style": {
|
|
3
|
+
"navigation": true
|
|
4
|
+
},
|
|
5
|
+
"schema": {
|
|
6
|
+
"d0": {
|
|
7
|
+
"type": "HTML",
|
|
8
|
+
"title": "Загальна інформація",
|
|
9
|
+
"text": "<h2 class='text-xl font-bold text-left'>Загальна інформація про меню</h2>",
|
|
10
|
+
"col": 12
|
|
11
|
+
},
|
|
12
|
+
"name": {
|
|
13
|
+
"ua": "Назва меню",
|
|
14
|
+
"col": 12,
|
|
15
|
+
"type": "Text",
|
|
16
|
+
"validators": [
|
|
17
|
+
"required"
|
|
18
|
+
],
|
|
19
|
+
"i": "Унікальна назва меню"
|
|
20
|
+
},
|
|
21
|
+
"locale": {
|
|
22
|
+
"ua": "Локаль",
|
|
23
|
+
"col": 6,
|
|
24
|
+
"type": "Select",
|
|
25
|
+
"defaultValue": "uk",
|
|
26
|
+
"options": [
|
|
27
|
+
{
|
|
28
|
+
"id": "uk",
|
|
29
|
+
"text": "Українська"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "en",
|
|
33
|
+
"text": "English"
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
"validators": [
|
|
37
|
+
"required"
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
"description": {
|
|
41
|
+
"ua": "Опис",
|
|
42
|
+
"col": 12,
|
|
43
|
+
"type": "TextArea",
|
|
44
|
+
"i": "Опис меню для адміністратора"
|
|
45
|
+
},
|
|
46
|
+
"d1": {
|
|
47
|
+
"type": "HTML",
|
|
48
|
+
"title": "Структура меню",
|
|
49
|
+
"text": "<h2 class='text-xl font-bold text-left'>Структура меню</h2>",
|
|
50
|
+
"col": 12
|
|
51
|
+
},
|
|
52
|
+
"content": {
|
|
53
|
+
"ua": "Контент меню (YAML)",
|
|
54
|
+
"col": 12,
|
|
55
|
+
"type": "TextArea",
|
|
56
|
+
"syntax": "yaml",
|
|
57
|
+
"i": "Структура меню у форматі YAML"
|
|
58
|
+
},
|
|
59
|
+
"items": {
|
|
60
|
+
"ua": "Елементи меню (JSON)",
|
|
61
|
+
"col": 12,
|
|
62
|
+
"type": "TextArea",
|
|
63
|
+
"syntax": "json",
|
|
64
|
+
"i": "Структура меню у форматі JSON",
|
|
65
|
+
"hidden": true
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"style": {
|
|
3
|
+
"navigation": true
|
|
4
|
+
},
|
|
5
|
+
"schema": {
|
|
6
|
+
"d0": {
|
|
7
|
+
"type": "HTML",
|
|
8
|
+
"title": "Налаштування",
|
|
9
|
+
"text": "<h2 class='text-xl font-bold text-left'>Налаштування системи</h2>",
|
|
10
|
+
"col": 12
|
|
11
|
+
},
|
|
12
|
+
"key": {
|
|
13
|
+
"ua": "Ключ",
|
|
14
|
+
"col": 12,
|
|
15
|
+
"type": "Text",
|
|
16
|
+
"validators": [
|
|
17
|
+
"required"
|
|
18
|
+
],
|
|
19
|
+
"i": "Унікальний ключ налаштування"
|
|
20
|
+
},
|
|
21
|
+
"value": {
|
|
22
|
+
"ua": "Значення",
|
|
23
|
+
"col": 12,
|
|
24
|
+
"type": "TextArea",
|
|
25
|
+
"validators": [
|
|
26
|
+
"required"
|
|
27
|
+
],
|
|
28
|
+
"i": "Значення налаштування"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"order": 1,
|
|
4
|
+
"ua": "CMS",
|
|
5
|
+
"menu": [
|
|
6
|
+
{
|
|
7
|
+
"path": "cms.content",
|
|
8
|
+
"table": "cms.content.table",
|
|
9
|
+
"ua": "Контент"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"path": "cms.menu",
|
|
13
|
+
"table": "cms.menu.table",
|
|
14
|
+
"ua": "Меню"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"path": "cms.settings",
|
|
18
|
+
"table": "cms.settings.table",
|
|
19
|
+
"ua": "Налаштування"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CMS Module Router Configuration
|
|
3
|
+
*
|
|
4
|
+
* This file provides router routes for CMS module (content, menu, settings).
|
|
5
|
+
* Uses existing CMS components from the project.
|
|
6
|
+
*
|
|
7
|
+
* Usage in your project:
|
|
8
|
+
* ```js
|
|
9
|
+
* import { cmsRoutes } from './module/cms/router.js';
|
|
10
|
+
* import { createRouter, createWebHistory } from 'vue-router';
|
|
11
|
+
*
|
|
12
|
+
* const router = createRouter({
|
|
13
|
+
* history: createWebHistory(),
|
|
14
|
+
* routes: [
|
|
15
|
+
* ...cmsRoutes,
|
|
16
|
+
* // your other routes
|
|
17
|
+
* ]
|
|
18
|
+
* });
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
export const cmsRoutes = [
|
|
23
|
+
// Table routes - display list of items
|
|
24
|
+
{
|
|
25
|
+
path: '/cms.content',
|
|
26
|
+
component: () => import('../../src/pages/collections/ArticlesPage.vue'),
|
|
27
|
+
name: 'cms-content',
|
|
28
|
+
meta: {
|
|
29
|
+
title: 'navigation.collections',
|
|
30
|
+
table: 'cms.content.table'
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
path: '/cms.menu',
|
|
35
|
+
component: () => import('../../src/pages/menu/MenuPage.vue'),
|
|
36
|
+
name: 'cms-menu',
|
|
37
|
+
meta: {
|
|
38
|
+
title: 'menu.title',
|
|
39
|
+
table: 'cms.menu.table'
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
path: '/cms.settings',
|
|
44
|
+
component: () => import('../../src/pages/settings/Settings.vue'),
|
|
45
|
+
name: 'cms-settings',
|
|
46
|
+
meta: {
|
|
47
|
+
title: 'settings.title',
|
|
48
|
+
table: 'cms.settings.table'
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
// Card routes - display detailed view (using contentForm for content)
|
|
52
|
+
{
|
|
53
|
+
path: '/cms.content/:id',
|
|
54
|
+
component: () => import('../../src/pages/collections/contentForm.vue'),
|
|
55
|
+
name: 'cms-content-card',
|
|
56
|
+
meta: {
|
|
57
|
+
title: 'articles.title',
|
|
58
|
+
type: 'articles',
|
|
59
|
+
table: 'cms.content.table',
|
|
60
|
+
card: 'cms.content.table'
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
path: '/cms.menu/:id',
|
|
65
|
+
component: () => import('../../src/pages/menu/MenuItemPage.vue'),
|
|
66
|
+
name: 'cms-menu-card',
|
|
67
|
+
meta: {
|
|
68
|
+
title: 'menu.editMenu',
|
|
69
|
+
type: 'single',
|
|
70
|
+
table: 'cms.menu.table',
|
|
71
|
+
card: 'cms.menu.table'
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
path: '/cms.settings/:id',
|
|
76
|
+
component: () => import('../../src/pages/settings/general.vue'),
|
|
77
|
+
name: 'cms-settings-card',
|
|
78
|
+
meta: {
|
|
79
|
+
title: 'settings.general.general',
|
|
80
|
+
table: 'cms.settings.table',
|
|
81
|
+
card: 'cms.settings.table'
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
// Add routes - create new item
|
|
85
|
+
{
|
|
86
|
+
path: '/cms.content/add',
|
|
87
|
+
component: () => import('../../src/pages/collections/contentForm.vue'),
|
|
88
|
+
name: 'cms-content-add',
|
|
89
|
+
meta: {
|
|
90
|
+
title: 'articles.createArticle',
|
|
91
|
+
type: 'articles',
|
|
92
|
+
table: 'cms.content.table',
|
|
93
|
+
form: 'cms.content.form'
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
path: '/cms.menu/add',
|
|
98
|
+
component: () => import('../../src/pages/menu/MenuAddPage.vue'),
|
|
99
|
+
name: 'cms-menu-add',
|
|
100
|
+
meta: {
|
|
101
|
+
title: 'menu.menuAdd',
|
|
102
|
+
type: 'single',
|
|
103
|
+
table: 'cms.menu.table',
|
|
104
|
+
form: 'cms.menu.form'
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
path: '/cms.settings/add',
|
|
109
|
+
component: () => import('../../src/pages/settings/general.vue'),
|
|
110
|
+
name: 'cms-settings-add',
|
|
111
|
+
meta: {
|
|
112
|
+
title: 'settings.general.general',
|
|
113
|
+
table: 'cms.settings.table',
|
|
114
|
+
form: 'cms.settings.form'
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
// Edit routes - edit existing item
|
|
118
|
+
{
|
|
119
|
+
path: '/cms.content/edit/:id',
|
|
120
|
+
component: () => import('../../src/pages/collections/contentForm.vue'),
|
|
121
|
+
name: 'cms-content-edit',
|
|
122
|
+
meta: {
|
|
123
|
+
title: 'articles.title',
|
|
124
|
+
type: 'articles',
|
|
125
|
+
table: 'cms.content.table',
|
|
126
|
+
form: 'cms.content.form'
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
path: '/cms.menu/edit/:id',
|
|
131
|
+
component: () => import('../../src/pages/menu/MenuItemPage.vue'),
|
|
132
|
+
name: 'cms-menu-edit',
|
|
133
|
+
meta: {
|
|
134
|
+
title: 'menu.editMenu',
|
|
135
|
+
type: 'single',
|
|
136
|
+
table: 'cms.menu.table',
|
|
137
|
+
form: 'cms.menu.form'
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
path: '/cms.settings/edit/:id',
|
|
142
|
+
component: () => import('../../src/pages/settings/general.vue'),
|
|
143
|
+
name: 'cms-settings-edit',
|
|
144
|
+
meta: {
|
|
145
|
+
title: 'settings.general.general',
|
|
146
|
+
table: 'cms.settings.table',
|
|
147
|
+
form: 'cms.settings.form'
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
];
|
|
151
|
+
|
|
152
|
+
// Export default for direct router creation (optional)
|
|
153
|
+
export default cmsRoutes;
|
|
154
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
SELECT content_type_id, name FROM site.content_types where type='collection'
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
SELECT DISTINCT locale as id,
|
|
2
|
+
CASE
|
|
3
|
+
WHEN locale = 'uk' THEN 'Українська'
|
|
4
|
+
WHEN locale = 'en' THEN 'English'
|
|
5
|
+
ELSE locale
|
|
6
|
+
END as text
|
|
7
|
+
FROM site.contents
|
|
8
|
+
UNION
|
|
9
|
+
SELECT DISTINCT locale as id,
|
|
10
|
+
CASE
|
|
11
|
+
WHEN locale = 'uk' THEN 'Українська'
|
|
12
|
+
WHEN locale = 'en' THEN 'English'
|
|
13
|
+
ELSE locale
|
|
14
|
+
END as text
|
|
15
|
+
FROM site.menus
|
|
16
|
+
ORDER BY id
|
|
17
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
select a.id, a.title, tags from data.news a
|
|
2
|
+
left join lateral(select array_agg(tag_id) as tags from site.tag_data b where a.id=b.data_id)b on 1=1
|
|
3
|
+
|
|
4
|
+
where
|
|
5
|
+
case when '{{parent}}'<> ''
|
|
6
|
+
then '{{parent}}'=any(b.tags)
|
|
7
|
+
else true
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
and status='published'
|
|
11
|
+
|
|
12
|
+
order by a.updated_at
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
select tag_id, value from site.tags order by value
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ua": "Користувачі",
|
|
3
|
+
"key": "uid",
|
|
4
|
+
"order": "cdate desc",
|
|
5
|
+
"access": "admin",
|
|
6
|
+
"sqlColumns": "*",
|
|
7
|
+
"form": "admin.users.form",
|
|
8
|
+
"table": "admin.users",
|
|
9
|
+
"sql": [
|
|
10
|
+
{
|
|
11
|
+
"name": "social_auth_sql",
|
|
12
|
+
"sql": "select social_auth_obj,social_auth_date from admin.users_social_auth where uid=t.uid limit 1"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"sql": "SELECT coalesce(sur_name, '') || ' ' || coalesce(user_name, '') || ' ' || coalesce(father_name, '') as full_name FROM admin.users WHERE uid = t.uid",
|
|
16
|
+
"name": "full_name_sql"
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"columns": [
|
|
20
|
+
{
|
|
21
|
+
"ua": "ПІБ",
|
|
22
|
+
"name": "full_name",
|
|
23
|
+
"format": "select",
|
|
24
|
+
"data": "full_name_sql"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"ua": "Тип користувача",
|
|
28
|
+
"name": "user_type_text",
|
|
29
|
+
"format": "select",
|
|
30
|
+
"data": "user_type_text"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"ua": "Статус доступу",
|
|
34
|
+
"name": "enabled"
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
"filters": [
|
|
38
|
+
{
|
|
39
|
+
"label": "Тип користувача",
|
|
40
|
+
"type": "Check",
|
|
41
|
+
"name": "user_type",
|
|
42
|
+
"data": "user_type"
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
"meta": {
|
|
46
|
+
"title": "full_name",
|
|
47
|
+
"search": "user_name,user_rnokpp"
|
|
48
|
+
},
|
|
49
|
+
"actions": [
|
|
50
|
+
"edit",
|
|
51
|
+
"del",
|
|
52
|
+
"add"
|
|
53
|
+
]
|
|
54
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
{
|
|
2
|
+
"key": "content_id",
|
|
3
|
+
"table": "site.contents",
|
|
4
|
+
"public": true,
|
|
5
|
+
"actions": [
|
|
6
|
+
"add",
|
|
7
|
+
"edit",
|
|
8
|
+
"del"
|
|
9
|
+
],
|
|
10
|
+
"controls": [
|
|
11
|
+
"search",
|
|
12
|
+
"list",
|
|
13
|
+
"add"
|
|
14
|
+
],
|
|
15
|
+
"access": "user",
|
|
16
|
+
"order": "published_at desc, created_at desc",
|
|
17
|
+
"meta": {
|
|
18
|
+
"title": "title",
|
|
19
|
+
"search": "title,slug"
|
|
20
|
+
},
|
|
21
|
+
"title": "Контент",
|
|
22
|
+
"form": "cms.content.form",
|
|
23
|
+
"sqlColumns": "*",
|
|
24
|
+
"columns": [
|
|
25
|
+
{
|
|
26
|
+
"ua": "Назва",
|
|
27
|
+
"meta": "title",
|
|
28
|
+
"name": "title",
|
|
29
|
+
"format": "slot",
|
|
30
|
+
"slot": "<div><p>{{data?.title}}</p><p class='text-xs text-gray-500'>{{data?.slug}}</p></div>",
|
|
31
|
+
"link": "/collections/{content_type_id}/{content_id}"
|
|
32
|
+
"width": 400
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"ua": "Тип контенту",
|
|
36
|
+
"name": "content_type_id",
|
|
37
|
+
"data": "collection",
|
|
38
|
+
"format": "badge",
|
|
39
|
+
"width": 200
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"ua": "Статус",
|
|
43
|
+
"name": "status",
|
|
44
|
+
"data": "content.status",
|
|
45
|
+
"format": "badge",
|
|
46
|
+
"edit": true,
|
|
47
|
+
"width": 150
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"ua": "Дата публікації",
|
|
51
|
+
"name": "published_at",
|
|
52
|
+
"format": "datetime",
|
|
53
|
+
"width": 180
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"ua": "Створено",
|
|
57
|
+
"name": "created_at",
|
|
58
|
+
"format": "datetime",
|
|
59
|
+
"width": 180
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"ua": "Оновлено",
|
|
63
|
+
"name": "updated_at",
|
|
64
|
+
"format": "datetime",
|
|
65
|
+
"width": 180,
|
|
66
|
+
"hidden": true
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"ua": "Slug",
|
|
70
|
+
"name": "slug",
|
|
71
|
+
"format": "text",
|
|
72
|
+
"width": 250,
|
|
73
|
+
"hidden": true
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
"filterList": [
|
|
77
|
+
{
|
|
78
|
+
"ua": "Пошук",
|
|
79
|
+
"name": "search",
|
|
80
|
+
"type": "Text"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"ua": "Тип контенту",
|
|
84
|
+
"type": "Check",
|
|
85
|
+
"name": "content_type_id",
|
|
86
|
+
"data": "collection"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"ua": "Статус",
|
|
90
|
+
"name": "status",
|
|
91
|
+
"data": "content.status",
|
|
92
|
+
"type": "Check"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"ua": "Дата публікації",
|
|
96
|
+
"name": "published_at",
|
|
97
|
+
"type": "Date"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"ua": "Дата створення",
|
|
101
|
+
"name": "created_at",
|
|
102
|
+
"type": "Date"
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
}
|
|
106
|
+
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"key": "menu_id",
|
|
3
|
+
"table": "site.menus",
|
|
4
|
+
"public": true,
|
|
5
|
+
"actions": [
|
|
6
|
+
"add",
|
|
7
|
+
"edit",
|
|
8
|
+
"del"
|
|
9
|
+
],
|
|
10
|
+
"controls": [
|
|
11
|
+
"search",
|
|
12
|
+
"list",
|
|
13
|
+
"add"
|
|
14
|
+
],
|
|
15
|
+
"access": "user",
|
|
16
|
+
"order": "created_at desc",
|
|
17
|
+
"meta": {
|
|
18
|
+
"title": "name",
|
|
19
|
+
"search": "name,description"
|
|
20
|
+
},
|
|
21
|
+
"title": "Меню",
|
|
22
|
+
"form": "cms.menu.form",
|
|
23
|
+
"sqlColumns": "*",
|
|
24
|
+
"columns": [
|
|
25
|
+
{
|
|
26
|
+
"ua": "Назва",
|
|
27
|
+
"meta": "title",
|
|
28
|
+
"name": "name",
|
|
29
|
+
"format": "slot",
|
|
30
|
+
"slot": "<div><p>{{data?.name}}</p><p class='text-xs text-gray-500'>{{data?.description}}</p></div>",
|
|
31
|
+
"link": "/menu/{menu_id}",
|
|
32
|
+
"width": 300
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"ua": "Локаль",
|
|
36
|
+
"name": "locale",
|
|
37
|
+
"format": "badge",
|
|
38
|
+
"width": 100
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"ua": "Опис",
|
|
42
|
+
"name": "description",
|
|
43
|
+
"format": "text",
|
|
44
|
+
"width": 300,
|
|
45
|
+
"hidden": true
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"ua": "Створено",
|
|
49
|
+
"name": "created_at",
|
|
50
|
+
"format": "datetime",
|
|
51
|
+
"width": 180
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"ua": "Оновлено",
|
|
55
|
+
"name": "updated_at",
|
|
56
|
+
"format": "datetime",
|
|
57
|
+
"width": 180
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"filterList": [
|
|
61
|
+
{
|
|
62
|
+
"ua": "Пошук",
|
|
63
|
+
"name": "search",
|
|
64
|
+
"type": "Text"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"ua": "Локаль",
|
|
68
|
+
"name": "locale",
|
|
69
|
+
"type": "Check"
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"key": "id",
|
|
3
|
+
"table": "site.settings",
|
|
4
|
+
"public": false,
|
|
5
|
+
"actions": [
|
|
6
|
+
"edit"
|
|
7
|
+
],
|
|
8
|
+
"controls": [
|
|
9
|
+
"search",
|
|
10
|
+
"list"
|
|
11
|
+
],
|
|
12
|
+
"access": "admin",
|
|
13
|
+
"order": "key asc",
|
|
14
|
+
"meta": {
|
|
15
|
+
"title": "key",
|
|
16
|
+
"search": "key,value"
|
|
17
|
+
},
|
|
18
|
+
"title": "Налаштування",
|
|
19
|
+
"form": "cms.settings.form",
|
|
20
|
+
"sqlColumns": "*",
|
|
21
|
+
"columns": [
|
|
22
|
+
{
|
|
23
|
+
"ua": "Ключ",
|
|
24
|
+
"meta": "title",
|
|
25
|
+
"name": "key",
|
|
26
|
+
"format": "text",
|
|
27
|
+
"width": 250
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"ua": "Значення",
|
|
31
|
+
"name": "value",
|
|
32
|
+
"format": "text",
|
|
33
|
+
"width": 400
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"ua": "Створено",
|
|
37
|
+
"name": "created_at",
|
|
38
|
+
"format": "datetime",
|
|
39
|
+
"width": 180,
|
|
40
|
+
"hidden": true
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"ua": "Оновлено",
|
|
44
|
+
"name": "updated_at",
|
|
45
|
+
"format": "datetime",
|
|
46
|
+
"width": 180
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"filterList": [
|
|
50
|
+
{
|
|
51
|
+
"ua": "Пошук",
|
|
52
|
+
"name": "search",
|
|
53
|
+
"type": "Text"
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"table": "site.contents",
|
|
3
|
+
"columns": [
|
|
4
|
+
{
|
|
5
|
+
"label": "Slug",
|
|
6
|
+
"name": "slug",
|
|
7
|
+
"parent": "title",
|
|
8
|
+
"required": true,
|
|
9
|
+
"type": "slug"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"label": "Title",
|
|
13
|
+
"name": "title",
|
|
14
|
+
"required": true,
|
|
15
|
+
"type": "text",
|
|
16
|
+
"localization": true
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"label": "Status",
|
|
20
|
+
"name": "status",
|
|
21
|
+
"type": "select",
|
|
22
|
+
"data": "content.status",
|
|
23
|
+
"options": [
|
|
24
|
+
{
|
|
25
|
+
"id": "draft",
|
|
26
|
+
"text": "Draft"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "published",
|
|
30
|
+
"text": "Published"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "archived",
|
|
34
|
+
"text": "Archived"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "delayPublished",
|
|
38
|
+
"text": "Delay Published"
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"required": true
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"label": "Publish at",
|
|
45
|
+
"name": "published_at",
|
|
46
|
+
"required": true,
|
|
47
|
+
"type": "datetime"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"label": "Зображення",
|
|
51
|
+
"name": "main_image",
|
|
52
|
+
"type": "mediaselect"
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
"filters": [
|
|
56
|
+
{
|
|
57
|
+
"extra": false,
|
|
58
|
+
"id": "status",
|
|
59
|
+
"name": "status",
|
|
60
|
+
"title": "Статус",
|
|
61
|
+
"type": "Check",
|
|
62
|
+
"data": "content.status",
|
|
63
|
+
"ua": "Статус"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"extra": false,
|
|
67
|
+
"label": "Publish at",
|
|
68
|
+
"name": "published_at",
|
|
69
|
+
"type": "Date"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"extra": false,
|
|
73
|
+
"label": "Закріплені",
|
|
74
|
+
"name": "is_pin",
|
|
75
|
+
"type": "Check"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"extra": false,
|
|
79
|
+
"name": "tag_list",
|
|
80
|
+
"type": "Tags",
|
|
81
|
+
"sql": "id in (select b.data_id from site.tags a left join site.tag_data b on a.tag_id=b.tag_id where a.tag_id=any($1))",
|
|
82
|
+
"label": "Теги"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"extra": false,
|
|
86
|
+
"columns": "slug,title",
|
|
87
|
+
"id": "search",
|
|
88
|
+
"name": "search",
|
|
89
|
+
"placeholder": "Пошук по тексту",
|
|
90
|
+
"title": "Пошук по тексту",
|
|
91
|
+
"type": "Text"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"extra": false,
|
|
95
|
+
"id": "created_at",
|
|
96
|
+
"name": "created_at",
|
|
97
|
+
"title": "Дата створення",
|
|
98
|
+
"type": "Date",
|
|
99
|
+
"ua": "Дата створення"
|
|
100
|
+
}
|
|
101
|
+
]
|
|
102
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{
|
|
2
|
+
"table": "site.contents",
|
|
3
|
+
"columns": [
|
|
4
|
+
{
|
|
5
|
+
"label": "Slug",
|
|
6
|
+
"name": "slug",
|
|
7
|
+
"parent": "title",
|
|
8
|
+
"required": true,
|
|
9
|
+
"type": "slug"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"label": "Title",
|
|
13
|
+
"name": "title",
|
|
14
|
+
"required": true,
|
|
15
|
+
"type": "text",
|
|
16
|
+
"localization": true
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"label": "Status",
|
|
20
|
+
"name": "status",
|
|
21
|
+
"type": "select",
|
|
22
|
+
"data": "content.status",
|
|
23
|
+
"options": [
|
|
24
|
+
{
|
|
25
|
+
"id": "draft",
|
|
26
|
+
"text": "Draft"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "published",
|
|
30
|
+
"text": "Published"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "archived",
|
|
34
|
+
"text": "Archived"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "delayPublished",
|
|
38
|
+
"text": "Delay Published"
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"required": true
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"label": "Publish at",
|
|
45
|
+
"name": "published_at",
|
|
46
|
+
"required": true,
|
|
47
|
+
"type": "datetime"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"label": "Контент",
|
|
51
|
+
"name": "single_body",
|
|
52
|
+
"type": "richtext",
|
|
53
|
+
"localization": true
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"name": "single_sections",
|
|
57
|
+
"label": "Секції",
|
|
58
|
+
"type": "reference",
|
|
59
|
+
"localization": true
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"label": "Зображення",
|
|
63
|
+
"name": "main_image",
|
|
64
|
+
"type": "mediaselect"
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"filters": [
|
|
68
|
+
{
|
|
69
|
+
"extra": false,
|
|
70
|
+
"id": "status",
|
|
71
|
+
"name": "status",
|
|
72
|
+
"title": "Статус",
|
|
73
|
+
"type": "Check",
|
|
74
|
+
"data": "content.status",
|
|
75
|
+
"ua": "Статус"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"extra": false,
|
|
79
|
+
"label": "Publish at",
|
|
80
|
+
"name": "published_at",
|
|
81
|
+
"type": "Date"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"extra": false,
|
|
85
|
+
"label": "Контент",
|
|
86
|
+
"name": "single_body",
|
|
87
|
+
"sql": "content_id in (select object_id from site.content_data where field_key='single_body' and field_value ~ $1)",
|
|
88
|
+
"type": "Text"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"extra": false,
|
|
92
|
+
"name": "tag_list",
|
|
93
|
+
"type": "Tags",
|
|
94
|
+
"sql": "content_id in (select b.data_id from site.tags a left join site.tag_data b on a.tag_id=b.tag_id where a.tag_id=any($1))",
|
|
95
|
+
"label": "Теги"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"extra": false,
|
|
99
|
+
"columns": "slug,title",
|
|
100
|
+
"id": "search",
|
|
101
|
+
"name": "search",
|
|
102
|
+
"placeholder": "Пошук по тексту",
|
|
103
|
+
"title": "Пошук по тексту",
|
|
104
|
+
"type": "Text"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"extra": false,
|
|
108
|
+
"id": "created_at",
|
|
109
|
+
"name": "created_at",
|
|
110
|
+
"title": "Дата створення",
|
|
111
|
+
"type": "Date",
|
|
112
|
+
"ua": "Дата створення"
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengis/cms",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.18",
|
|
4
4
|
"description": "cms",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "Softpro",
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"license": "EULA",
|
|
10
10
|
"files": [
|
|
11
11
|
"dist/*",
|
|
12
|
+
"module/*",
|
|
12
13
|
"src/index.ts",
|
|
13
14
|
"server",
|
|
14
15
|
"plugin.js"
|