@opengis/cms 0.0.57 → 0.0.59
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/README.md +1 -1
- package/dist/AddNewItemInTree-05PSSEFi.js +76 -0
- package/dist/ArticlesPage-BjYzvTWM.js +298 -0
- package/dist/CollectionsBreadcrumb-HePNJb-d.js +4 -0
- package/dist/CollectionsBreadcrumb.vue_vue_type_script_setup_true_lang-BJh-tjam.js +53 -0
- package/dist/CollectionsPage-DHfPNql6.js +124 -0
- package/dist/{CreateForm-BMOBeP4G.js → CreateForm-5FvT45vH.js} +1 -1
- package/dist/Dashboard-CXkg_pk8.js +358 -0
- package/dist/EditCollectionPage-CqYHpEON.js +187 -0
- package/dist/{EmptyData-DaZt_nAm.js → EmptyData-DxPrSXhV.js} +1 -1
- package/dist/{MenuAddPage-Bf48Z-ah.js → MenuAddPage-QTnwCoGh.js} +40 -35
- package/dist/MenuBody-Bi0ONVZf.js +125 -0
- package/dist/MenuItemPage-B7Y9KFyb.js +1027 -0
- package/dist/MenuList-BLIpeqSd.js +172 -0
- package/dist/MenuPage-3W6jZ15H.js +107 -0
- package/dist/MenuWrapper-OrOv6sOb.js +12 -0
- package/dist/MonacoEditor-ByPT8pnv.js +4 -0
- package/dist/MonacoEditor.vue_vue_type_script_setup_true_lang-C8cip9Ci.js +84 -0
- package/dist/{UniversalTable.vue_vue_type_script_setup_true_lang-CJGTsd1V.js → UniversalTable-GBd_pStq.js} +81 -81
- package/dist/{UniversalTablePagination.vue_vue_type_script_setup_true_lang-GYZd_gkA.js → UniversalTablePagination-Dw2hc0nc.js} +47 -47
- package/dist/VsFormTags-CMjiu9sY.js +114 -0
- package/dist/VsPreview-DwETkOpb.js +63 -0
- package/dist/contentForm-Buku-lel.js +489 -0
- package/dist/getField-CpwVE28P.js +179 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +72 -71
- package/dist/style.css +1 -1
- package/dist/vs-builder-edit-D-q1o8tF.js +604 -0
- package/dist/vs-builder-monaco-Cw-f19gc.js +33 -0
- package/dist/vs-builder-preview-BH4VAM3a.js +44 -0
- package/dist/vs-form-custom-datatable-BDZo48w3.js +317 -0
- package/dist/vs-form-integer-BZ855R3g.js +61 -0
- package/dist/vs-form-media-select-NY27EaG1.js +837 -0
- package/dist/vs-form-reference-list-Dtv8fJJU.js +1536 -0
- package/dist/vs-form-reletion-link-BhzNQszm.js +34 -0
- package/dist/vs-form-tiptap-DDFQjRjY.js +4 -0
- package/dist/vs-form-tiptap.vue_vue_type_script_setup_true_lang-DGgsqXwg.js +11 -0
- package/dist/vs-richtext-md-C098v_6Q.js +4 -0
- package/dist/vs-richtext-md.vue_vue_type_script_setup_true_lang-Ct8uTV-J.js +14 -0
- package/locales/en.json +1 -0
- package/locales/uk.json +1 -0
- package/package.json +69 -68
- package/server/functions/utils/mock.reply.js +7 -7
- package/server/routes/cms/controllers/getPermissions.js +15 -15
- package/server/routes/cms/controllers/setPermissions.js +49 -49
- package/server/templates/select/core.user_mentioned.sql +1 -1
- package/dist/ArticlesPage-BcR1hbds.js +0 -286
- package/dist/BuilderPage-CK_osM89.js +0 -386
- package/dist/CollectionsBreadcrumb.vue_vue_type_script_setup_true_lang-CnOe9ORD.js +0 -45
- package/dist/CollectionsPage-JfmrHNR_.js +0 -110
- package/dist/EditCollectionPage-Cw3GQYRe.js +0 -809
- package/dist/MenuItemPage-CXn5HC8j.js +0 -1366
- package/dist/MenuPage-tJZtK46W.js +0 -106
- package/dist/MonacoEditor.vue_vue_type_script_setup_true_lang-B1DrxmQX.js +0 -84
- package/dist/contentForm-B6gHgGkz.js +0 -586
- package/dist/getField-Y5WXnRR0.js +0 -2948
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { mergeModels as u, useModel as m, ref as i, onMounted as c, openBlock as d, createBlock as p, unref as f, createCommentVNode as V } from "vue";
|
|
2
|
+
import { VsInputSelect as v } from "@opengis/form";
|
|
3
|
+
const h = {
|
|
4
|
+
__name: "vs-form-reletion-link",
|
|
5
|
+
props: /* @__PURE__ */ u({
|
|
6
|
+
relation: {
|
|
7
|
+
type: String,
|
|
8
|
+
required: !0
|
|
9
|
+
}
|
|
10
|
+
}, {
|
|
11
|
+
modelValue: {},
|
|
12
|
+
modelModifiers: {}
|
|
13
|
+
}),
|
|
14
|
+
emits: ["update:modelValue"],
|
|
15
|
+
setup(t) {
|
|
16
|
+
const l = m(t, "modelValue"), s = t, o = i([]);
|
|
17
|
+
return c(async () => {
|
|
18
|
+
const e = await (await fetch(`/api/cms-suggest/${s.relation}`)).json();
|
|
19
|
+
o.value = e == null ? void 0 : e.data;
|
|
20
|
+
}), (r, e) => {
|
|
21
|
+
var n;
|
|
22
|
+
return (n = o.value) != null && n.length ? (d(), p(f(v), {
|
|
23
|
+
key: 0,
|
|
24
|
+
mode: "combo",
|
|
25
|
+
modelValue: l.value,
|
|
26
|
+
"onUpdate:modelValue": e[0] || (e[0] = (a) => l.value = a),
|
|
27
|
+
options: o.value
|
|
28
|
+
}, null, 8, ["modelValue", "options"])) : V("", !0);
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
export {
|
|
33
|
+
h as default
|
|
34
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { defineComponent as n, defineAsyncComponent as o, openBlock as c, createBlock as p, unref as r } from "vue";
|
|
2
|
+
const m = /* @__PURE__ */ n({
|
|
3
|
+
__name: "vs-form-tiptap",
|
|
4
|
+
setup(s) {
|
|
5
|
+
const e = o(() => import("@opengis/form").then((t) => t.VsInputRichtext));
|
|
6
|
+
return (t, _) => (c(), p(r(e), { class: "w-full" }));
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
export {
|
|
10
|
+
m as _
|
|
11
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { defineComponent as n, defineAsyncComponent as o, openBlock as c, createBlock as r, unref as p } from "vue";
|
|
2
|
+
const i = /* @__PURE__ */ n({
|
|
3
|
+
__name: "vs-richtext-md",
|
|
4
|
+
setup(s) {
|
|
5
|
+
const e = o(() => import("@opengis/form").then((t) => t.VsInputRichtext));
|
|
6
|
+
return (t, m) => (c(), r(p(e), {
|
|
7
|
+
class: "w-full h-[300px]",
|
|
8
|
+
format: "md"
|
|
9
|
+
}));
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
export {
|
|
13
|
+
i as _
|
|
14
|
+
};
|
package/locales/en.json
CHANGED
|
@@ -128,6 +128,7 @@
|
|
|
128
128
|
"collectionCreationFailed": "Error creating collection",
|
|
129
129
|
"pinPublication": "Pin Publication",
|
|
130
130
|
"enLocalization": "EN localization",
|
|
131
|
+
"translating": "Localizing...",
|
|
131
132
|
"translateContentSuccess": "Content translated successfully",
|
|
132
133
|
"translateContentError": "Error translating content"
|
|
133
134
|
},
|
package/locales/uk.json
CHANGED
|
@@ -128,6 +128,7 @@
|
|
|
128
128
|
"collectionCreationFailed": "Помилка при створенні колекції",
|
|
129
129
|
"pinPublication": "Закріпити публікацію",
|
|
130
130
|
"enLocalization": "EN локалізація",
|
|
131
|
+
"translating": "Локалізація...",
|
|
131
132
|
"translateContentSuccess": "Контент успішно перекладений",
|
|
132
133
|
"translateContentError": "Помилка при перекладі контенту"
|
|
133
134
|
},
|
package/package.json
CHANGED
|
@@ -1,68 +1,69 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@opengis/cms",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "cms",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"author": "Softpro",
|
|
7
|
-
"main": "./dist/index.js",
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"utils.
|
|
17
|
-
"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"build
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
"@
|
|
45
|
-
"@opengis/
|
|
46
|
-
"@opengis/
|
|
47
|
-
"@opengis/
|
|
48
|
-
"@
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"vue-tsc": "^2.2.10"
|
|
67
|
-
|
|
68
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@opengis/cms",
|
|
3
|
+
"version": "0.0.59",
|
|
4
|
+
"description": "cms",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"author": "Softpro",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"license": "EULA",
|
|
10
|
+
"files": [
|
|
11
|
+
"module",
|
|
12
|
+
"locales",
|
|
13
|
+
"dist",
|
|
14
|
+
"server",
|
|
15
|
+
"plugin.js",
|
|
16
|
+
"utils.js",
|
|
17
|
+
"utils.d.ts",
|
|
18
|
+
"input-types.json"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"patch": "npm version patch && git push && npm publish",
|
|
22
|
+
"test": "node --test test/**/*.test.js",
|
|
23
|
+
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
|
|
24
|
+
"dev": "NODE_ENV=dev bun --env-file=.env.ip server ",
|
|
25
|
+
"admin": "vite admin",
|
|
26
|
+
"build": "vite build admin",
|
|
27
|
+
"build:lib": "vue-tsc -p tsconfig.build.json --noEmit && vite build && npm run build:types",
|
|
28
|
+
"build:types": "vue-tsc -p tsconfig.types.json",
|
|
29
|
+
"proxy": "vite dev admin",
|
|
30
|
+
"start": "bun --env-file=.env.ip server",
|
|
31
|
+
"prod": "NODE_ENV=production bun --env-file=.env.ip server ",
|
|
32
|
+
"ip": "bun --env-file=.env.ip server",
|
|
33
|
+
"lemken": "bun --env-file=.env.local-lemken server",
|
|
34
|
+
"demo": "node --env-file=.env.demo --env-file=.env server",
|
|
35
|
+
"i18n:sync": "node i18n-sync.cjs",
|
|
36
|
+
"prepublishOnly": "bun build:lib",
|
|
37
|
+
"softpro": "bun --env-file=.env.softpro server",
|
|
38
|
+
"softpro1": "NODE_ENV=production bun --env-file=.env.prod-softpro.local server"
|
|
39
|
+
},
|
|
40
|
+
"resolutions": {
|
|
41
|
+
"rollup": "4.30.0"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@fastify/compress": "^8.1.0",
|
|
45
|
+
"@opengis/core": "^0.0.30",
|
|
46
|
+
"@opengis/fastify-table": "^2.0.147",
|
|
47
|
+
"@opengis/filter": "^0.1.31",
|
|
48
|
+
"@opengis/form": "^0.0.121",
|
|
49
|
+
"@tailwindcss/typography": "0.5.10",
|
|
50
|
+
"@tsconfig/node22": "^22.0.2",
|
|
51
|
+
"@vitejs/plugin-vue": "5.0.4",
|
|
52
|
+
"@vueuse/head": "2.0.0",
|
|
53
|
+
"autoprefixer": "10.4.18",
|
|
54
|
+
"eslint": "8.49.0",
|
|
55
|
+
"js-yaml": "^4.1.0",
|
|
56
|
+
"lucide-vue-next": "^0.564.0",
|
|
57
|
+
"postcss": "8.4.35",
|
|
58
|
+
"sass": "^1.92.1",
|
|
59
|
+
"tailwindcss": "3.4.1",
|
|
60
|
+
"typescript": "~5.8.0",
|
|
61
|
+
"vite": "5.1.4",
|
|
62
|
+
"vitest": "3.2.4",
|
|
63
|
+
"vue": "^3.5.17",
|
|
64
|
+
"vue-i18n": "11.1.5",
|
|
65
|
+
"vue-router": "4.4.3",
|
|
66
|
+
"vue-tsc": "^2.2.10",
|
|
67
|
+
"vuedraggable": "4.1.0"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
*/
|
|
19
19
|
export function createMockReply() {
|
|
20
20
|
/** @type {MockReplyResponse<any>} */
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
|
|
22
|
+
const response = {};
|
|
23
23
|
|
|
24
24
|
return {
|
|
25
25
|
/**
|
|
@@ -43,14 +43,14 @@ export function createMockReply() {
|
|
|
43
43
|
* @returns {MockReplyResponse<T>}
|
|
44
44
|
*/
|
|
45
45
|
send(result) {
|
|
46
|
-
|
|
46
|
+
|
|
47
|
+
if (typeof result !== 'object') return { ...response, message: result }
|
|
48
|
+
|
|
49
|
+
return {
|
|
47
50
|
...response,
|
|
48
|
-
...
|
|
49
|
-
? { data: result }
|
|
50
|
-
: { message: result }),
|
|
51
|
+
...result
|
|
51
52
|
};
|
|
52
53
|
|
|
53
|
-
return response;
|
|
54
54
|
},
|
|
55
55
|
};
|
|
56
56
|
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { pgClients } from '@opengis/fastify-table/utils.js';
|
|
2
|
-
|
|
3
|
-
export default async function getPermissions(req, reply) {
|
|
4
|
-
const { pg = pgClients.client, params = {}, user = {} } = req;
|
|
5
|
-
|
|
6
|
-
if (!user?.uid) {
|
|
7
|
-
return reply.status(401).send('unauthorized');
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const { rows = [] } = await pg.query(
|
|
11
|
-
`select * from site.permissions where ${params.id ? 'user_id=$1' : 'true'}`,
|
|
12
|
-
[params.id].filter(Boolean),
|
|
13
|
-
);
|
|
14
|
-
|
|
15
|
-
return { permissions: rows };
|
|
1
|
+
import { pgClients } from '@opengis/fastify-table/utils.js';
|
|
2
|
+
|
|
3
|
+
export default async function getPermissions(req, reply) {
|
|
4
|
+
const { pg = pgClients.client, params = {}, user = {} } = req;
|
|
5
|
+
|
|
6
|
+
if (!user?.uid) {
|
|
7
|
+
return reply.status(401).send('unauthorized');
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { rows = [] } = await pg.query(
|
|
11
|
+
`select * from site.permissions where ${params.id ? 'user_id=$1' : 'true'}`,
|
|
12
|
+
[params.id].filter(Boolean),
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
return { permissions: rows };
|
|
16
16
|
}
|
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
import { logger, pgClients, dataInsert } from '@opengis/fastify-table/utils.js';
|
|
2
|
-
|
|
3
|
-
export default async function setPermissions(req, reply) {
|
|
4
|
-
const { pg = pgClients.client, params = {}, user = {}, body = {} } = req;
|
|
5
|
-
|
|
6
|
-
if (!user?.uid) {
|
|
7
|
-
return reply.status(401).send('unauthorized');
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
if (!params.id) {
|
|
11
|
-
return reply.status(400).send('not enough params: id');
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
const client = await pg.connect()
|
|
15
|
-
const result = {};
|
|
16
|
-
try {
|
|
17
|
-
await client.query('BEGIN');
|
|
18
|
-
|
|
19
|
-
const { rowCount = 0 } = await client.query(
|
|
20
|
-
`delete from site.permissions where user_id=$1`,
|
|
21
|
-
[params.id].filter(Boolean),
|
|
22
|
-
);
|
|
23
|
-
|
|
24
|
-
Object.assign(result, { deleted: rowCount });
|
|
25
|
-
|
|
26
|
-
if (Array.isArray(body.permissions) && body.permissions?.length) {
|
|
27
|
-
body.permissions.forEach((el) => {
|
|
28
|
-
Object.assign(el, { user_id: el.user_id || params.id });
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
await Promise.all(body.permissions.map(async (el) => dataInsert({
|
|
32
|
-
pg: client,
|
|
33
|
-
table: 'site.permissions',
|
|
34
|
-
data: el,
|
|
35
|
-
uid: user.uid,
|
|
36
|
-
})));
|
|
37
|
-
|
|
38
|
-
Object.assign(result, { inserted: body.permissions.length });
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
await client.query('COMMIT');
|
|
42
|
-
return reply.status(200).send(result);
|
|
43
|
-
} catch (err) {
|
|
44
|
-
await client.query('ROLLBACK');
|
|
45
|
-
logger.file('cms/permissions', { error: err.toString(), stack: err.stack });
|
|
46
|
-
return reply.status(500).send('set permissions error');
|
|
47
|
-
} finally {
|
|
48
|
-
client.release();
|
|
49
|
-
}
|
|
1
|
+
import { logger, pgClients, dataInsert } from '@opengis/fastify-table/utils.js';
|
|
2
|
+
|
|
3
|
+
export default async function setPermissions(req, reply) {
|
|
4
|
+
const { pg = pgClients.client, params = {}, user = {}, body = {} } = req;
|
|
5
|
+
|
|
6
|
+
if (!user?.uid) {
|
|
7
|
+
return reply.status(401).send('unauthorized');
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
if (!params.id) {
|
|
11
|
+
return reply.status(400).send('not enough params: id');
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const client = await pg.connect()
|
|
15
|
+
const result = {};
|
|
16
|
+
try {
|
|
17
|
+
await client.query('BEGIN');
|
|
18
|
+
|
|
19
|
+
const { rowCount = 0 } = await client.query(
|
|
20
|
+
`delete from site.permissions where user_id=$1`,
|
|
21
|
+
[params.id].filter(Boolean),
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
Object.assign(result, { deleted: rowCount });
|
|
25
|
+
|
|
26
|
+
if (Array.isArray(body.permissions) && body.permissions?.length) {
|
|
27
|
+
body.permissions.forEach((el) => {
|
|
28
|
+
Object.assign(el, { user_id: el.user_id || params.id });
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
await Promise.all(body.permissions.map(async (el) => dataInsert({
|
|
32
|
+
pg: client,
|
|
33
|
+
table: 'site.permissions',
|
|
34
|
+
data: el,
|
|
35
|
+
uid: user.uid,
|
|
36
|
+
})));
|
|
37
|
+
|
|
38
|
+
Object.assign(result, { inserted: body.permissions.length });
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
await client.query('COMMIT');
|
|
42
|
+
return reply.status(200).send(result);
|
|
43
|
+
} catch (err) {
|
|
44
|
+
await client.query('ROLLBACK');
|
|
45
|
+
logger.file('cms/permissions', { error: err.toString(), stack: err.stack });
|
|
46
|
+
return reply.status(500).send('set permissions error');
|
|
47
|
+
} finally {
|
|
48
|
+
client.release();
|
|
49
|
+
}
|
|
50
50
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
select uid, coalesce(sur_name,'')||coalesce(' '||user_name,'') as text, email from admin.users
|
|
1
|
+
select uid, coalesce(sur_name,'')||coalesce(' '||user_name,'') as text, email from admin.users
|
|
2
2
|
where enabled order by coalesce(sur_name,'')||coalesce(' '||user_name,'')
|