@opengis/fastify-table 2.4.2 → 2.4.4

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 (86) hide show
  1. package/README.md +86 -86
  2. package/dist/functions.js +20 -20
  3. package/dist/module/core/cls/constraint_action.json +9 -9
  4. package/dist/module/core/cls/constraint_matchtype.json +5 -5
  5. package/dist/module/core/cls/constraint_type_full.json +17 -17
  6. package/dist/module/core/cls/core.user_type.json +13 -13
  7. package/dist/module/core/pt/schemaItem.pt.hbs +17 -17
  8. package/dist/script/adduser +14 -14
  9. package/dist/script/dump.js +48 -48
  10. package/dist/script/dump.ts +216 -216
  11. package/dist/script/migrate.ts +41 -41
  12. package/dist/server/helpers/core/badge.js +1 -1
  13. package/dist/server/helpers/list/descriptionList.js +8 -8
  14. package/dist/server/helpers/list/tableList.js +4 -4
  15. package/dist/server/helpers/list/utils/button.js +1 -1
  16. package/dist/server/helpers/list/utils/buttonDel.js +3 -3
  17. package/dist/server/helpers/list/utils/buttonEdit.js +3 -3
  18. package/dist/server/helpers/utils/button.js +1 -1
  19. package/dist/server/helpers/utils/buttonAdd.js +15 -15
  20. package/dist/server/helpers/utils/buttonDel.js +11 -11
  21. package/dist/server/helpers/utils/buttonEdit.js +3 -3
  22. package/dist/server/migrations/0.sql +99 -99
  23. package/dist/server/migrations/cls.sql +105 -105
  24. package/dist/server/migrations/context.sql +136 -136
  25. package/dist/server/migrations/oauth.sql +79 -79
  26. package/dist/server/migrations/properties.sql +115 -115
  27. package/dist/server/migrations/roles.sql +195 -195
  28. package/dist/server/migrations/template.sql +43 -43
  29. package/dist/server/migrations/users.sql +151 -151
  30. package/dist/server/plugins/access/funcs/getUserPermissions.js +7 -7
  31. package/dist/server/plugins/auth/funcs/authorizeUser.js +4 -4
  32. package/dist/server/plugins/auth/funcs/getQuery.js +20 -20
  33. package/dist/server/plugins/crud/funcs/dataUpdate.js +7 -7
  34. package/dist/server/plugins/crud/funcs/getAccess.js +14 -14
  35. package/dist/server/plugins/crud/funcs/utils/getInsertQuery.js +6 -6
  36. package/dist/server/plugins/crud/funcs/utils/logChanges.js +18 -18
  37. package/dist/server/plugins/grpc/utils/convertp.proto +136 -136
  38. package/dist/server/plugins/grpc/utils/htmlTemplate.js +10 -10
  39. package/dist/server/plugins/grpc/utils/office2pdf.proto +13 -13
  40. package/dist/server/plugins/metric/loggerSystem.js +1 -1
  41. package/dist/server/plugins/pg/funcs/autoIndex.js +5 -5
  42. package/dist/server/plugins/pg/funcs/getMeta.js +10 -10
  43. package/dist/server/plugins/pg/funcs/init.js +36 -36
  44. package/dist/server/plugins/sqlite/funcs/init.js +22 -22
  45. package/dist/server/plugins/table/funcs/getFilterSQL/util/getCustomQuery.js +1 -1
  46. package/dist/server/plugins/table/funcs/getSelect.js +1 -1
  47. package/dist/server/plugins/table/funcs/gisIRColumn.js +3 -3
  48. package/dist/server/plugins/usercls/index.js +2 -2
  49. package/dist/server/routes/access/controllers/access.group.js +6 -6
  50. package/dist/server/routes/access/controllers/access.group.post.js +5 -5
  51. package/dist/server/routes/access/controllers/access.interface.js +14 -14
  52. package/dist/server/routes/access/controllers/access.user.js +6 -6
  53. package/dist/server/routes/auth/controllers/2factor/providers/totp.js +5 -5
  54. package/dist/server/routes/auth/controllers/2factor/qrcode.js +1 -1
  55. package/dist/server/routes/auth/controllers/2factor/recovery.js +1 -1
  56. package/dist/server/routes/auth/controllers/2factor/verify.js +1 -1
  57. package/dist/server/routes/auth/controllers/core/getUserInfo.js +33 -33
  58. package/dist/server/routes/auth/controllers/core/passwordRecovery.js +1 -1
  59. package/dist/server/routes/auth/controllers/core/registration.js +2 -2
  60. package/dist/server/routes/auth/controllers/page/login2faTemplate.js +1 -1
  61. package/dist/server/routes/file/controllers/download.d.ts.map +1 -1
  62. package/dist/server/routes/file/controllers/download.js +1 -1
  63. package/dist/server/routes/file/controllers/files.d.ts.map +1 -1
  64. package/dist/server/routes/file/controllers/files.js +1 -1
  65. package/dist/server/routes/file/controllers/resizeAll.js +6 -6
  66. package/dist/server/routes/grpc/controllers/file2geojson.js +13 -13
  67. package/dist/server/routes/menu/controllers/getMenu.js +9 -9
  68. package/dist/server/routes/notifications/controllers/readNotifications.js +4 -4
  69. package/dist/server/routes/notifications/controllers/userNotifications.js +3 -3
  70. package/dist/server/routes/table/controllers/card.js +1 -1
  71. package/dist/server/routes/table/controllers/filter.js +7 -7
  72. package/dist/server/routes/table/controllers/form.js +1 -1
  73. package/dist/server/routes/table/controllers/getFormByTable.js +6 -6
  74. package/dist/server/routes/table/controllers/suggest.js +3 -3
  75. package/dist/server/routes/table/controllers/tableData.js +2 -2
  76. package/dist/server/routes/table/controllers/tableInfo.js +10 -10
  77. package/dist/server/routes/table/functions/getData.js +13 -13
  78. package/dist/server/routes/widget/controllers/widget.get.js +33 -33
  79. package/dist/server/routes/widget/controllers/widget.set.js +3 -3
  80. package/dist/server/templates/page/2factor-recovery.html +101 -101
  81. package/dist/server/templates/page/2factor.html +140 -140
  82. package/dist/server/templates/page/login.html +90 -90
  83. package/dist/server/templates/page/loginEuSign.html +123 -123
  84. package/dist/server/templates/pt/recovery-codes-email-template.hbs +12 -12
  85. package/dist/server/templates/pt/recovery-password-email-template.html +20 -20
  86. package/package.json +98 -98
@@ -7,20 +7,20 @@ export default function button(token, title = 'Додати', permission = '') {
7
7
  const permissionAttr = handlePermission
8
8
  ? `v-permission="${handlePermission}"`
9
9
  : '';
10
- return `
11
- <button
12
- ${permissionAttr}
13
- onclick="window.v3plugin.$form({ token: '${token}' })"
14
- class="
15
- px-2 py-1 inline-flex justify-center items-center gap-2
16
- rounded-md border border-transparent font-semibold text-sm
17
- transition-all focus:outline-none ring-offset-white
18
- bg-${COLOR}-100 text-${COLOR}-500
19
- hover:bg-${COLOR}-500 hover:text-white
20
- focus:ring-${COLOR}-500
21
- "
22
- >
23
- ${title}
24
- </button>
10
+ return `
11
+ <button
12
+ ${permissionAttr}
13
+ onclick="window.v3plugin.$form({ token: '${token}' })"
14
+ class="
15
+ px-2 py-1 inline-flex justify-center items-center gap-2
16
+ rounded-md border border-transparent font-semibold text-sm
17
+ transition-all focus:outline-none ring-offset-white
18
+ bg-${COLOR}-100 text-${COLOR}-500
19
+ hover:bg-${COLOR}-500 hover:text-white
20
+ focus:ring-${COLOR}-500
21
+ "
22
+ >
23
+ ${title}
24
+ </button>
25
25
  `;
26
26
  }
@@ -7,22 +7,22 @@ export default function button(token, title, icon, permission = '') {
7
7
  const permissionAttr = handlePermission
8
8
  ? `v-permission="${handlePermission}"`
9
9
  : '';
10
- const apiCall = `window.v3plugin.$api({
11
- api: '/api/table/${token}',
12
- method: 'delete',
13
- confirm: {
14
- title: 'Підтвердити операцію',
15
- text: 'Ви впевнені що хочете вилучити запис?',
16
- cancel: 'Скасувати',
17
- confirm: 'Виконати'
18
- }
10
+ const apiCall = `window.v3plugin.$api({
11
+ api: '/api/table/${token}',
12
+ method: 'delete',
13
+ confirm: {
14
+ title: 'Підтвердити операцію',
15
+ text: 'Ви впевнені що хочете вилучити запис?',
16
+ cancel: 'Скасувати',
17
+ confirm: 'Виконати'
18
+ }
19
19
  })`;
20
20
  const buttonClass = icon
21
21
  ? `size-8 inline-flex justify-center items-center gap-x-2 rounded-e-lg border border-stone-200 bg-${COLOR}-100 text-stone-800 shadow-sm hover:bg-${COLOR}-200 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-stone-50 dark:bg-neutral-800 dark:border-neutral-700 dark:text-neutral-300 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700`
22
22
  : `px-2 py-1 inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border border-transparent hover:text-white ring-offset-white bg-${COLOR}-100 text-${COLOR}-500 hover:bg-${COLOR}-500 focus:ring-${COLOR}-500`;
23
23
  const buttonContent = icon
24
- ? `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="${COLOR}" class="size-3.5">
25
- <path stroke-linecap="round" stroke-linejoin="round" d="m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"/>
24
+ ? `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="${COLOR}" class="size-3.5">
25
+ <path stroke-linecap="round" stroke-linejoin="round" d="m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"/>
26
26
  </svg>`
27
27
  : `${title || "Вилучити"}`;
28
28
  return `<button ${permissionAttr} onclick="${apiCall}" class="${buttonClass}">${buttonContent}</button>`;
@@ -12,9 +12,9 @@ export default function button(token, title, icon, permission = '') {
12
12
  ? `size-8 inline-flex justify-center items-center gap-x-2 font-medium rounded-s-lg border border-stone-200 bg-${COLOR}-100 text-stone-800 shadow-sm hover:bg-${COLOR}-200 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-${COLOR}-50 dark:bg-neutral-800 dark:border-neutral-700 dark:text-neutral-300 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700 `
13
13
  : `px-2 py-1 inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border border-transparent hover:text-white ring-offset-white bg-${COLOR}-100 text-${COLOR}-500 hover:bg-${COLOR}-500 focus:ring-${COLOR}-500`;
14
14
  const buttonContent = icon
15
- ? `<svg class="shrink-0 size-3.5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="${COLOR}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
16
- <path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"></path>
17
- <path d="m15 5 4 4"></path>
15
+ ? `<svg class="shrink-0 size-3.5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="${COLOR}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
16
+ <path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"></path>
17
+ <path d="m15 5 4 4"></path>
18
18
  </svg>`
19
19
  : `${title || "Редагувати"}`;
20
20
  return `<button ${permissionAttr} onclick="${formCall}" class="${buttonClass}">${buttonContent}</button>`;
@@ -1,100 +1,100 @@
1
- -- fix error if function exists and return type not text i.e bigint
2
-
3
- do $$
4
-
5
- declare
6
- m record;
7
- _pk text;
8
- _tables json;
9
- _returnType text;
10
-
11
- begin
12
-
13
- select format_type(p.prorettype, null) as return_type
14
- from pg_proc p
15
- where p.proname = 'next_id'
16
- and p.pronamespace = 'public'::regnamespace into _returnType;
17
-
18
- if (_returnType != 'text') then
19
- raise notice 'default reassign start: % -> text', _returnType;
20
-
21
- CREATE EXTENSION if not exists "uuid-ossp";
22
-
23
- SELECT json_object_agg(a.attrelid::regclass, a.attname)
24
- FROM pg_catalog.pg_attribute a
25
- LEFT JOIN pg_catalog.pg_attrdef d ON (a.attrelid, a.attnum) = (d.adrelid, d.adnum)
26
- WHERE NOT a.attisdropped -- no dropped (dead) columns
27
- AND a.attnum > 0 -- no system columns
28
- AND pg_get_expr(d.adbin, d.adrelid) = 'next_id()' into _tables;
29
-
30
- FOR m in (select json_object_keys(_tables) as table) loop
31
- _pk = _tables->>m.table;
32
- raise notice 'drop default: %,%', m.table, _pk;
33
- EXECUTE('alter table '|| m.table || ' alter column ' || _pk || ' set default null;');
34
- end loop;
35
-
36
- DROP FUNCTION IF EXISTS next_id();
37
-
38
- /* CREATE EXTENSION if not exists "uuid-ossp";
39
- ALTER EXTENSION "uuid-ossp" SET SCHEMA public; */
40
-
41
- CREATE OR REPLACE FUNCTION next_id()
42
- RETURNS text AS
43
- $BODY$
44
- DECLARE
45
-
46
- BEGIN
47
- -- return replace(public.uuid_generate_v4()::text, '-', '');
48
- -- return replace(gen_random_uuid()::text, '-', ''); -- native from postgres 13 onward
49
- return encode(public.gen_random_bytes(6), 'hex');
50
- END;
51
- $BODY$
52
- LANGUAGE plpgsql VOLATILE
53
- COST 100;
54
-
55
- FOR m in (select json_object_keys(_tables) as table) loop
56
- _pk = _tables->>m.table;
57
- raise notice 'reassign default: %, %', m.table, _pk;
58
- EXECUTE('alter table '|| m.table || ' alter column ' || _pk || ' set default next_id();');
59
- end loop;
60
-
61
- raise notice 'reassign default finish: %', _tables;
62
-
63
- else
64
- raise notice 'skip default reassign';
65
-
66
- /* CREATE EXTENSION if not exists "uuid-ossp";
67
- ALTER EXTENSION "uuid-ossp" SET SCHEMA public; */
68
-
69
- CREATE OR REPLACE FUNCTION next_id()
70
- RETURNS text AS
71
- $BODY$
72
- DECLARE
73
-
74
- BEGIN
75
- -- return replace(public.uuid_generate_v4()::text, '-', '');
76
- -- return replace(gen_random_uuid()::text, '-', ''); -- native from postgres 13 onward
77
- return encode(public.gen_random_bytes(6), 'hex');
78
- END;
79
- $BODY$
80
- LANGUAGE plpgsql VOLATILE
81
- COST 100;
82
- end if;
83
-
84
- end $$;
85
-
86
- CREATE OR REPLACE FUNCTION array_intersect(
87
- anyarray,
88
- anyarray)
89
- RETURNS anyarray
90
- LANGUAGE 'sql'
91
- COST 100
92
- VOLATILE PARALLEL UNSAFE
93
- AS $BODY$
94
-
95
- SELECT ARRAY(
96
- SELECT UNNEST($1)
97
- INTERSECT
98
- SELECT UNNEST($2)
99
- );
1
+ -- fix error if function exists and return type not text i.e bigint
2
+
3
+ do $$
4
+
5
+ declare
6
+ m record;
7
+ _pk text;
8
+ _tables json;
9
+ _returnType text;
10
+
11
+ begin
12
+
13
+ select format_type(p.prorettype, null) as return_type
14
+ from pg_proc p
15
+ where p.proname = 'next_id'
16
+ and p.pronamespace = 'public'::regnamespace into _returnType;
17
+
18
+ if (_returnType != 'text') then
19
+ raise notice 'default reassign start: % -> text', _returnType;
20
+
21
+ CREATE EXTENSION if not exists "uuid-ossp";
22
+
23
+ SELECT json_object_agg(a.attrelid::regclass, a.attname)
24
+ FROM pg_catalog.pg_attribute a
25
+ LEFT JOIN pg_catalog.pg_attrdef d ON (a.attrelid, a.attnum) = (d.adrelid, d.adnum)
26
+ WHERE NOT a.attisdropped -- no dropped (dead) columns
27
+ AND a.attnum > 0 -- no system columns
28
+ AND pg_get_expr(d.adbin, d.adrelid) = 'next_id()' into _tables;
29
+
30
+ FOR m in (select json_object_keys(_tables) as table) loop
31
+ _pk = _tables->>m.table;
32
+ raise notice 'drop default: %,%', m.table, _pk;
33
+ EXECUTE('alter table '|| m.table || ' alter column ' || _pk || ' set default null;');
34
+ end loop;
35
+
36
+ DROP FUNCTION IF EXISTS next_id();
37
+
38
+ /* CREATE EXTENSION if not exists "uuid-ossp";
39
+ ALTER EXTENSION "uuid-ossp" SET SCHEMA public; */
40
+
41
+ CREATE OR REPLACE FUNCTION next_id()
42
+ RETURNS text AS
43
+ $BODY$
44
+ DECLARE
45
+
46
+ BEGIN
47
+ -- return replace(public.uuid_generate_v4()::text, '-', '');
48
+ -- return replace(gen_random_uuid()::text, '-', ''); -- native from postgres 13 onward
49
+ return encode(public.gen_random_bytes(6), 'hex');
50
+ END;
51
+ $BODY$
52
+ LANGUAGE plpgsql VOLATILE
53
+ COST 100;
54
+
55
+ FOR m in (select json_object_keys(_tables) as table) loop
56
+ _pk = _tables->>m.table;
57
+ raise notice 'reassign default: %, %', m.table, _pk;
58
+ EXECUTE('alter table '|| m.table || ' alter column ' || _pk || ' set default next_id();');
59
+ end loop;
60
+
61
+ raise notice 'reassign default finish: %', _tables;
62
+
63
+ else
64
+ raise notice 'skip default reassign';
65
+
66
+ /* CREATE EXTENSION if not exists "uuid-ossp";
67
+ ALTER EXTENSION "uuid-ossp" SET SCHEMA public; */
68
+
69
+ CREATE OR REPLACE FUNCTION next_id()
70
+ RETURNS text AS
71
+ $BODY$
72
+ DECLARE
73
+
74
+ BEGIN
75
+ -- return replace(public.uuid_generate_v4()::text, '-', '');
76
+ -- return replace(gen_random_uuid()::text, '-', ''); -- native from postgres 13 onward
77
+ return encode(public.gen_random_bytes(6), 'hex');
78
+ END;
79
+ $BODY$
80
+ LANGUAGE plpgsql VOLATILE
81
+ COST 100;
82
+ end if;
83
+
84
+ end $$;
85
+
86
+ CREATE OR REPLACE FUNCTION array_intersect(
87
+ anyarray,
88
+ anyarray)
89
+ RETURNS anyarray
90
+ LANGUAGE 'sql'
91
+ COST 100
92
+ VOLATILE PARALLEL UNSAFE
93
+ AS $BODY$
94
+
95
+ SELECT ARRAY(
96
+ SELECT UNNEST($1)
97
+ INTERSECT
98
+ SELECT UNNEST($2)
99
+ );
100
100
  $BODY$;
@@ -1,105 +1,105 @@
1
- create schema if not exists admin;
2
-
3
- CREATE TABLE if not exists admin.cls();
4
- ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS clsid text;
5
- ALTER TABLE admin.cls DROP CONSTRAINT IF EXISTS admin_cls_pkey;
6
- ALTER TABLE admin.cls DROP CONSTRAINT IF EXISTS admin_cls_unique;
7
-
8
- ALTER TABLE admin.cls ALTER COLUMN clsid SET NOT NULL;
9
- ALTER TABLE admin.cls ALTER COLUMN clsid SET DEFAULT next_id();
10
- ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS name text;
11
- ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS data text;
12
- ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS type text;
13
- ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS code text;
14
- ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS parent text;
15
- ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS ua text;
16
- ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS en text;
17
- ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS module text;
18
- ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS files json;
19
- ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS cdate timestamp without time zone;
20
- ALTER TABLE admin.cls ALTER COLUMN cdate SET DEFAULT (now())::timestamp without time zone;
21
- ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS editor_id text;
22
- ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS editor_date timestamp without time zone;
23
- ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS uid text;
24
- ALTER TABLE admin.cls ALTER COLUMN uid SET NOT NULL;
25
- ALTER TABLE admin.cls ALTER COLUMN uid SET DEFAULT '1'::text;
26
- ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS icon text;
27
- ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS color text;
28
- ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS hash text;
29
-
30
- ALTER TABLE admin.cls ADD CONSTRAINT admin_cls_pkey PRIMARY KEY (clsid);
31
- ALTER TABLE admin.cls ADD CONSTRAINT admin_cls_unique UNIQUE (code, parent);
32
-
33
- COMMENT ON COLUMN admin.cls.name IS 'Назва';
34
- COMMENT ON COLUMN admin.cls.type IS 'Тип';
35
- COMMENT ON COLUMN admin.cls.data IS 'SQL';
36
- COMMENT ON COLUMN admin.cls.code IS 'Код';
37
- COMMENT ON COLUMN admin.cls.parent IS 'Назва батьківського об''єкту';
38
- COMMENT ON COLUMN admin.cls.module IS 'Модуль';
39
- COMMENT ON COLUMN admin.cls.icon IS 'Іконка';
40
- COMMENT ON COLUMN admin.cls.color IS 'Колір';
41
-
42
- -- drop table if exists admin.user_cls;
43
- CREATE TABLE if not exists admin.user_cls
44
- (
45
- user_clsid text NOT NULL DEFAULT next_id(), -- ID
46
- code text, -- Код
47
- name text, -- Назва
48
- data text, -- SQL запит
49
- type text, -- Тип (json/sql)
50
- icon text, -- Іконка
51
- color text, -- Колір
52
- parent text,
53
- created_by text,
54
- created_at timestamp without time zone DEFAULT (now())::timestamp without time zone,
55
- updated_by text,
56
- updated_at timestamp without time zone DEFAULT (now())::timestamp without time zone,
57
- CONSTRAINT admin_user_cls_pkey PRIMARY KEY (user_clsid),
58
- CONSTRAINT admin_user_unique UNIQUE (code, parent),
59
- CHECK (case when parent is null then type in ('json', 'sql') else true end)
60
- );
61
-
62
- COMMENT ON TABLE admin.user_cls IS 'Користувацькі класифікатори';
63
- COMMENT ON COLUMN admin.user_cls.user_clsid IS 'ID';
64
- COMMENT ON COLUMN admin.user_cls.code IS 'Код';
65
- COMMENT ON COLUMN admin.user_cls.name IS 'Назва';
66
- COMMENT ON COLUMN admin.user_cls.data IS 'SQL запит';
67
- COMMENT ON COLUMN admin.user_cls.icon IS 'Іконка';
68
- COMMENT ON COLUMN admin.user_cls.color IS 'Колір';
69
- COMMENT ON COLUMN admin.user_cls.type IS 'Тип (json/sql)';
70
-
71
- ALTER TABLE admin.user_cls DROP CONSTRAINT IF EXISTS admin_user_cls_pkey;
72
- ALTER TABLE admin.user_cls DROP CONSTRAINT IF EXISTS admin_user_unique;
73
-
74
- ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS user_clsid text;
75
- ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS code text;
76
- ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS parent text;
77
- ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS name text;
78
- ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS icon text;
79
- ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS data text;
80
- ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS type text;
81
- ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS files json;
82
- ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS cdate timestamp without time zone;
83
- ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS editor_id text;
84
- ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS editor_date timestamp without time zone;
85
- ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS uid text;
86
- ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS color text;
87
-
88
- ALTER TABLE admin.user_cls ALTER COLUMN user_clsid SET NOT NULL;
89
- ALTER TABLE admin.user_cls ALTER COLUMN user_clsid SET DEFAULT next_id();
90
- ALTER TABLE admin.user_cls ALTER COLUMN cdate SET DEFAULT (now())::timestamp without time zone;
91
- ALTER TABLE admin.user_cls ALTER COLUMN uid SET NOT NULL;
92
- ALTER TABLE admin.user_cls ALTER COLUMN uid SET DEFAULT '1'::text;
93
-
94
- ALTER TABLE admin.user_cls ADD CONSTRAINT admin_user_cls_pkey PRIMARY KEY(user_clsid);
95
- ALTER TABLE admin.user_cls ADD CONSTRAINT admin_user_unique UNIQUE(code, parent);
96
-
97
- COMMENT ON TABLE admin.user_cls IS 'Користувацькі класифікатори';
98
- COMMENT ON COLUMN admin.user_cls.user_clsid IS 'ID';
99
- COMMENT ON COLUMN admin.user_cls.code IS 'Код';
100
- COMMENT ON COLUMN admin.user_cls.name IS 'Назва';
101
- COMMENT ON COLUMN admin.user_cls.icon IS 'Іконка';
102
- COMMENT ON COLUMN admin.user_cls.color IS 'Колір';
103
-
104
- ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS alias text[];
105
- ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS description text;
1
+ create schema if not exists admin;
2
+
3
+ CREATE TABLE if not exists admin.cls();
4
+ ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS clsid text;
5
+ ALTER TABLE admin.cls DROP CONSTRAINT IF EXISTS admin_cls_pkey;
6
+ ALTER TABLE admin.cls DROP CONSTRAINT IF EXISTS admin_cls_unique;
7
+
8
+ ALTER TABLE admin.cls ALTER COLUMN clsid SET NOT NULL;
9
+ ALTER TABLE admin.cls ALTER COLUMN clsid SET DEFAULT next_id();
10
+ ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS name text;
11
+ ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS data text;
12
+ ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS type text;
13
+ ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS code text;
14
+ ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS parent text;
15
+ ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS ua text;
16
+ ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS en text;
17
+ ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS module text;
18
+ ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS files json;
19
+ ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS cdate timestamp without time zone;
20
+ ALTER TABLE admin.cls ALTER COLUMN cdate SET DEFAULT (now())::timestamp without time zone;
21
+ ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS editor_id text;
22
+ ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS editor_date timestamp without time zone;
23
+ ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS uid text;
24
+ ALTER TABLE admin.cls ALTER COLUMN uid SET NOT NULL;
25
+ ALTER TABLE admin.cls ALTER COLUMN uid SET DEFAULT '1'::text;
26
+ ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS icon text;
27
+ ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS color text;
28
+ ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS hash text;
29
+
30
+ ALTER TABLE admin.cls ADD CONSTRAINT admin_cls_pkey PRIMARY KEY (clsid);
31
+ ALTER TABLE admin.cls ADD CONSTRAINT admin_cls_unique UNIQUE (code, parent);
32
+
33
+ COMMENT ON COLUMN admin.cls.name IS 'Назва';
34
+ COMMENT ON COLUMN admin.cls.type IS 'Тип';
35
+ COMMENT ON COLUMN admin.cls.data IS 'SQL';
36
+ COMMENT ON COLUMN admin.cls.code IS 'Код';
37
+ COMMENT ON COLUMN admin.cls.parent IS 'Назва батьківського об''єкту';
38
+ COMMENT ON COLUMN admin.cls.module IS 'Модуль';
39
+ COMMENT ON COLUMN admin.cls.icon IS 'Іконка';
40
+ COMMENT ON COLUMN admin.cls.color IS 'Колір';
41
+
42
+ -- drop table if exists admin.user_cls;
43
+ CREATE TABLE if not exists admin.user_cls
44
+ (
45
+ user_clsid text NOT NULL DEFAULT next_id(), -- ID
46
+ code text, -- Код
47
+ name text, -- Назва
48
+ data text, -- SQL запит
49
+ type text, -- Тип (json/sql)
50
+ icon text, -- Іконка
51
+ color text, -- Колір
52
+ parent text,
53
+ created_by text,
54
+ created_at timestamp without time zone DEFAULT (now())::timestamp without time zone,
55
+ updated_by text,
56
+ updated_at timestamp without time zone DEFAULT (now())::timestamp without time zone,
57
+ CONSTRAINT admin_user_cls_pkey PRIMARY KEY (user_clsid),
58
+ CONSTRAINT admin_user_unique UNIQUE (code, parent),
59
+ CHECK (case when parent is null then type in ('json', 'sql') else true end)
60
+ );
61
+
62
+ COMMENT ON TABLE admin.user_cls IS 'Користувацькі класифікатори';
63
+ COMMENT ON COLUMN admin.user_cls.user_clsid IS 'ID';
64
+ COMMENT ON COLUMN admin.user_cls.code IS 'Код';
65
+ COMMENT ON COLUMN admin.user_cls.name IS 'Назва';
66
+ COMMENT ON COLUMN admin.user_cls.data IS 'SQL запит';
67
+ COMMENT ON COLUMN admin.user_cls.icon IS 'Іконка';
68
+ COMMENT ON COLUMN admin.user_cls.color IS 'Колір';
69
+ COMMENT ON COLUMN admin.user_cls.type IS 'Тип (json/sql)';
70
+
71
+ ALTER TABLE admin.user_cls DROP CONSTRAINT IF EXISTS admin_user_cls_pkey;
72
+ ALTER TABLE admin.user_cls DROP CONSTRAINT IF EXISTS admin_user_unique;
73
+
74
+ ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS user_clsid text;
75
+ ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS code text;
76
+ ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS parent text;
77
+ ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS name text;
78
+ ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS icon text;
79
+ ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS data text;
80
+ ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS type text;
81
+ ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS files json;
82
+ ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS cdate timestamp without time zone;
83
+ ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS editor_id text;
84
+ ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS editor_date timestamp without time zone;
85
+ ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS uid text;
86
+ ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS color text;
87
+
88
+ ALTER TABLE admin.user_cls ALTER COLUMN user_clsid SET NOT NULL;
89
+ ALTER TABLE admin.user_cls ALTER COLUMN user_clsid SET DEFAULT next_id();
90
+ ALTER TABLE admin.user_cls ALTER COLUMN cdate SET DEFAULT (now())::timestamp without time zone;
91
+ ALTER TABLE admin.user_cls ALTER COLUMN uid SET NOT NULL;
92
+ ALTER TABLE admin.user_cls ALTER COLUMN uid SET DEFAULT '1'::text;
93
+
94
+ ALTER TABLE admin.user_cls ADD CONSTRAINT admin_user_cls_pkey PRIMARY KEY(user_clsid);
95
+ ALTER TABLE admin.user_cls ADD CONSTRAINT admin_user_unique UNIQUE(code, parent);
96
+
97
+ COMMENT ON TABLE admin.user_cls IS 'Користувацькі класифікатори';
98
+ COMMENT ON COLUMN admin.user_cls.user_clsid IS 'ID';
99
+ COMMENT ON COLUMN admin.user_cls.code IS 'Код';
100
+ COMMENT ON COLUMN admin.user_cls.name IS 'Назва';
101
+ COMMENT ON COLUMN admin.user_cls.icon IS 'Іконка';
102
+ COMMENT ON COLUMN admin.user_cls.color IS 'Колір';
103
+
104
+ ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS alias text[];
105
+ ALTER TABLE admin.user_cls ADD COLUMN IF NOT EXISTS description text;