@saltcorn/data 1.6.0-alpha.7 → 1.6.0-alpha.9
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/dist/base-plugin/actions.d.ts +1850 -1656
- package/dist/base-plugin/actions.d.ts.map +1 -1
- package/dist/base-plugin/actions.js +122 -104
- package/dist/base-plugin/actions.js.map +1 -1
- package/dist/base-plugin/fieldviews.d.ts +284 -114
- package/dist/base-plugin/fieldviews.d.ts.map +1 -1
- package/dist/base-plugin/fieldviews.js +23 -69
- package/dist/base-plugin/fieldviews.js.map +1 -1
- package/dist/base-plugin/fileviews.d.ts +15 -14
- package/dist/base-plugin/fileviews.d.ts.map +1 -1
- package/dist/base-plugin/fileviews.js +22 -18
- package/dist/base-plugin/fileviews.js.map +1 -1
- package/dist/base-plugin/index.d.ts +3369 -1293
- package/dist/base-plugin/index.d.ts.map +1 -1
- package/dist/base-plugin/index.js +39 -25
- package/dist/base-plugin/index.js.map +1 -1
- package/dist/base-plugin/types.d.ts +1438 -1029
- package/dist/base-plugin/types.d.ts.map +1 -1
- package/dist/base-plugin/types.js +3 -2
- package/dist/base-plugin/types.js.map +1 -1
- package/dist/base-plugin/viewtemplates/edit.d.ts +133 -257
- package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/edit.js +292 -349
- package/dist/base-plugin/viewtemplates/edit.js.map +1 -1
- package/dist/base-plugin/viewtemplates/feed.d.ts +30 -81
- package/dist/base-plugin/viewtemplates/feed.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/feed.js +37 -30
- package/dist/base-plugin/viewtemplates/feed.js.map +1 -1
- package/dist/base-plugin/viewtemplates/filter.d.ts +42 -64
- package/dist/base-plugin/viewtemplates/filter.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/filter.js +86 -82
- package/dist/base-plugin/viewtemplates/filter.js.map +1 -1
- package/dist/base-plugin/viewtemplates/list.d.ts +40 -115
- package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/list.js +154 -168
- package/dist/base-plugin/viewtemplates/list.js.map +1 -1
- package/dist/base-plugin/viewtemplates/listshowlist.d.ts +65 -49
- package/dist/base-plugin/viewtemplates/listshowlist.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/listshowlist.js +33 -58
- package/dist/base-plugin/viewtemplates/listshowlist.js.map +1 -1
- package/dist/base-plugin/viewtemplates/room.d.ts +102 -109
- package/dist/base-plugin/viewtemplates/room.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/room.js +53 -50
- package/dist/base-plugin/viewtemplates/room.js.map +1 -1
- package/dist/base-plugin/viewtemplates/show.d.ts +72 -133
- package/dist/base-plugin/viewtemplates/show.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/show.js +72 -182
- package/dist/base-plugin/viewtemplates/show.js.map +1 -1
- package/dist/base-plugin/viewtemplates/viewable_fields.d.ts +2 -2
- package/dist/base-plugin/viewtemplates/viewable_fields.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/viewable_fields.js +2 -1
- package/dist/base-plugin/viewtemplates/viewable_fields.js.map +1 -1
- package/dist/base-plugin/viewtemplates/workflow-room.d.ts +37 -61
- package/dist/base-plugin/viewtemplates/workflow-room.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/workflow-room.js +42 -65
- package/dist/base-plugin/viewtemplates/workflow-room.js.map +1 -1
- package/dist/contracts.d.ts +4 -48
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +18 -2
- package/dist/contracts.js.map +1 -1
- package/dist/db/connect.d.ts.map +1 -1
- package/dist/db/connect.js +1 -0
- package/dist/db/connect.js.map +1 -1
- package/dist/db/state.d.ts +31 -28
- package/dist/db/state.d.ts.map +1 -1
- package/dist/db/state.js +5 -2
- package/dist/db/state.js.map +1 -1
- package/dist/model-helper.d.ts +4 -16
- package/dist/model-helper.d.ts.map +1 -1
- package/dist/model-helper.js +3 -3
- package/dist/model-helper.js.map +1 -1
- package/dist/models/config.d.ts +5 -0
- package/dist/models/config.d.ts.map +1 -1
- package/dist/models/config.js +5 -0
- package/dist/models/config.js.map +1 -1
- package/dist/models/field.d.ts +1 -1
- package/dist/models/field.d.ts.map +1 -1
- package/dist/models/field.js +3 -2
- package/dist/models/field.js.map +1 -1
- package/dist/models/file.d.ts +1 -1
- package/dist/models/file.d.ts.map +1 -1
- package/dist/models/file.js.map +1 -1
- package/dist/models/form.js +1 -1
- package/dist/models/form.js.map +1 -1
- package/dist/models/index.d.ts +5 -0
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/layout.d.ts +1 -1
- package/dist/models/layout.d.ts.map +1 -1
- package/dist/models/layout.js +12 -0
- package/dist/models/layout.js.map +1 -1
- package/dist/models/plugin.d.ts +3 -2
- package/dist/models/plugin.d.ts.map +1 -1
- package/dist/models/plugin.js +7 -0
- package/dist/models/plugin.js.map +1 -1
- package/dist/models/table.d.ts.map +1 -1
- package/dist/models/table.js +6 -1
- package/dist/models/table.js.map +1 -1
- package/dist/plugin-helper.d.ts.map +1 -1
- package/dist/plugin-helper.js +4 -0
- package/dist/plugin-helper.js.map +1 -1
- package/dist/plugin-testing.d.ts +3 -63
- package/dist/plugin-testing.d.ts.map +1 -1
- package/dist/plugin-testing.js +34 -15
- package/dist/plugin-testing.js.map +1 -1
- package/dist/standard-menu.d.ts.map +1 -1
- package/dist/standard-menu.js +15 -0
- package/dist/standard-menu.js.map +1 -1
- package/dist/tests/actions.test.d.ts +2 -0
- package/dist/tests/actions.test.d.ts.map +1 -0
- package/dist/tests/actions.test.js +936 -0
- package/dist/tests/actions.test.js.map +1 -0
- package/dist/tests/auth.test.d.ts +2 -0
- package/dist/tests/auth.test.d.ts.map +1 -0
- package/dist/tests/auth.test.js +824 -0
- package/dist/tests/auth.test.js.map +1 -0
- package/dist/tests/auxtest.test.d.ts +2 -0
- package/dist/tests/auxtest.test.d.ts.map +1 -0
- package/dist/tests/auxtest.test.js +562 -0
- package/dist/tests/auxtest.test.js.map +1 -0
- package/dist/tests/base.test.d.ts +2 -0
- package/dist/tests/base.test.d.ts.map +1 -0
- package/dist/tests/base.test.js +30 -0
- package/dist/tests/base.test.js.map +1 -0
- package/dist/tests/calc.test.d.ts +2 -0
- package/dist/tests/calc.test.d.ts.map +1 -0
- package/dist/tests/calc.test.js +1081 -0
- package/dist/tests/calc.test.js.map +1 -0
- package/dist/tests/composite_pk.test.d.ts +2 -0
- package/dist/tests/composite_pk.test.d.ts.map +1 -0
- package/dist/tests/composite_pk.test.js +98 -0
- package/dist/tests/composite_pk.test.js.map +1 -0
- package/dist/tests/config.test.d.ts +2 -0
- package/dist/tests/config.test.d.ts.map +1 -0
- package/dist/tests/config.test.js +86 -0
- package/dist/tests/config.test.js.map +1 -0
- package/dist/tests/db.test.d.ts +2 -0
- package/dist/tests/db.test.d.ts.map +1 -0
- package/dist/tests/db.test.js +178 -0
- package/dist/tests/db.test.js.map +1 -0
- package/dist/tests/discover.test.d.ts +2 -0
- package/dist/tests/discover.test.d.ts.map +1 -0
- package/dist/tests/discover.test.js +245 -0
- package/dist/tests/discover.test.js.map +1 -0
- package/dist/tests/edit.test.d.ts +2 -0
- package/dist/tests/edit.test.d.ts.map +1 -0
- package/dist/tests/edit.test.js +1161 -0
- package/dist/tests/edit.test.js.map +1 -0
- package/dist/tests/email.test.d.ts +2 -0
- package/dist/tests/email.test.d.ts.map +1 -0
- package/dist/tests/email.test.js +255 -0
- package/dist/tests/email.test.js.map +1 -0
- package/dist/tests/exact_views.test.d.ts +2 -0
- package/dist/tests/exact_views.test.d.ts.map +1 -0
- package/dist/tests/exact_views.test.js +1363 -0
- package/dist/tests/exact_views.test.js.map +1 -0
- package/dist/tests/field.test.d.ts +2 -0
- package/dist/tests/field.test.d.ts.map +1 -0
- package/dist/tests/field.test.js +588 -0
- package/dist/tests/field.test.js.map +1 -0
- package/dist/tests/fieldviews.test.d.ts +2 -0
- package/dist/tests/fieldviews.test.d.ts.map +1 -0
- package/dist/tests/fieldviews.test.js +74 -0
- package/dist/tests/fieldviews.test.js.map +1 -0
- package/dist/tests/file.test.d.ts +2 -0
- package/dist/tests/file.test.d.ts.map +1 -0
- package/dist/tests/file.test.js +148 -0
- package/dist/tests/file.test.js.map +1 -0
- package/dist/tests/filter.test.d.ts +2 -0
- package/dist/tests/filter.test.d.ts.map +1 -0
- package/dist/tests/filter.test.js +496 -0
- package/dist/tests/filter.test.js.map +1 -0
- package/dist/tests/form.test.d.ts +2 -0
- package/dist/tests/form.test.d.ts.map +1 -0
- package/dist/tests/form.test.js +264 -0
- package/dist/tests/form.test.js.map +1 -0
- package/dist/tests/list.test.d.ts +2 -0
- package/dist/tests/list.test.d.ts.map +1 -0
- package/dist/tests/list.test.js +1037 -0
- package/dist/tests/list.test.js.map +1 -0
- package/dist/tests/models.test.d.ts +2 -0
- package/dist/tests/models.test.d.ts.map +1 -0
- package/dist/tests/models.test.js +417 -0
- package/dist/tests/models.test.js.map +1 -0
- package/dist/tests/page.test.d.ts +2 -0
- package/dist/tests/page.test.d.ts.map +1 -0
- package/dist/tests/page.test.js +26 -0
- package/dist/tests/page.test.js.map +1 -0
- package/dist/tests/page_group.test.d.ts +2 -0
- package/dist/tests/page_group.test.d.ts.map +1 -0
- package/dist/tests/page_group.test.js +51 -0
- package/dist/tests/page_group.test.js.map +1 -0
- package/dist/tests/plugin.test.d.ts +2 -0
- package/dist/tests/plugin.test.d.ts.map +1 -0
- package/dist/tests/plugin.test.js +60 -0
- package/dist/tests/plugin.test.js.map +1 -0
- package/dist/tests/show.test.d.ts +2 -0
- package/dist/tests/show.test.d.ts.map +1 -0
- package/dist/tests/show.test.js +561 -0
- package/dist/tests/show.test.js.map +1 -0
- package/dist/tests/state.test.d.ts +2 -0
- package/dist/tests/state.test.d.ts.map +1 -0
- package/dist/tests/state.test.js +82 -0
- package/dist/tests/state.test.js.map +1 -0
- package/dist/tests/table.test.d.ts +2 -0
- package/dist/tests/table.test.d.ts.map +1 -0
- package/dist/tests/table.test.js +2717 -0
- package/dist/tests/table.test.js.map +1 -0
- package/dist/tests/table_history.test.d.ts +2 -0
- package/dist/tests/table_history.test.d.ts.map +1 -0
- package/dist/tests/table_history.test.js +413 -0
- package/dist/tests/table_history.test.js.map +1 -0
- package/dist/tests/tag.test.d.ts +2 -0
- package/dist/tests/tag.test.d.ts.map +1 -0
- package/dist/tests/tag.test.js +97 -0
- package/dist/tests/tag.test.js.map +1 -0
- package/dist/tests/user.test.d.ts +2 -0
- package/dist/tests/user.test.d.ts.map +1 -0
- package/dist/tests/user.test.js +441 -0
- package/dist/tests/user.test.js.map +1 -0
- package/dist/tests/view.test.d.ts +2 -0
- package/dist/tests/view.test.d.ts.map +1 -0
- package/dist/tests/view.test.js +699 -0
- package/dist/tests/view.test.js.map +1 -0
- package/dist/tests/workflow.test.d.ts +2 -0
- package/dist/tests/workflow.test.d.ts.map +1 -0
- package/dist/tests/workflow.test.js +303 -0
- package/dist/tests/workflow.test.js.map +1 -0
- package/dist/tests/workflow_run.test.d.ts +2 -0
- package/dist/tests/workflow_run.test.d.ts.map +1 -0
- package/dist/tests/workflow_run.test.js +922 -0
- package/dist/tests/workflow_run.test.js.map +1 -0
- package/dist/viewable_fields.d.ts +5 -4
- package/dist/viewable_fields.d.ts.map +1 -1
- package/dist/viewable_fields.js +12 -6
- package/dist/viewable_fields.js.map +1 -1
- package/dist/web-mobile-commons.d.ts.map +1 -1
- package/dist/web-mobile-commons.js +1 -0
- package/dist/web-mobile-commons.js.map +1 -1
- package/package.json +8 -8
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
/**
|
|
3
6
|
* @category saltcorn-data
|
|
4
7
|
* @module base-plugin/viewtemplates/filter
|
|
5
8
|
* @subcategory base-plugin
|
|
6
9
|
*/
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
10
|
+
const table_1 = __importDefault(require("../../models/table"));
|
|
11
|
+
const view_1 = __importDefault(require("../../models/view"));
|
|
12
|
+
const field_1 = __importDefault(require("../../models/field"));
|
|
13
|
+
const workflow_1 = __importDefault(require("../../models/workflow"));
|
|
14
|
+
const trigger_1 = __importDefault(require("../../models/trigger"));
|
|
15
|
+
const user_1 = __importDefault(require("../../models/user"));
|
|
16
|
+
const page_1 = __importDefault(require("../../models/page"));
|
|
17
|
+
const crash_1 = __importDefault(require("../../models/crash"));
|
|
18
|
+
const tags_1 = require("@saltcorn/markup/tags");
|
|
16
19
|
const renderLayout = require("@saltcorn/markup/layout");
|
|
17
|
-
const
|
|
18
|
-
const
|
|
20
|
+
const plugin_helper_1 = require("../../plugin-helper");
|
|
21
|
+
const viewable_fields_1 = require("../../viewable_fields");
|
|
19
22
|
const { search_bar } = require("@saltcorn/markup/helpers");
|
|
20
23
|
const { eachView, translateLayout, getStringsForI18n, traverse, } = require("../../models/layout");
|
|
21
24
|
const { InvalidConfiguration, objectToQueryString, removeEmptyStrings, asyncMap, getSessionId, mergeIntoWhere, isWeb, renderServerSide, } = require("../../utils");
|
|
@@ -27,12 +30,12 @@ const db = require("../../db/index");
|
|
|
27
30
|
/**
|
|
28
31
|
* @returns {Workflow}
|
|
29
32
|
*/
|
|
30
|
-
const configuration_workflow = (req) => new
|
|
33
|
+
const configuration_workflow = (req) => new workflow_1.default({
|
|
31
34
|
steps: [
|
|
32
35
|
{
|
|
33
36
|
name: "Layout",
|
|
34
37
|
builder: async (context) => {
|
|
35
|
-
const table =
|
|
38
|
+
const table = table_1.default.findOne(context.table_id || context.exttable_name);
|
|
36
39
|
const fields = [...table.getFields()];
|
|
37
40
|
const { child_field_list, child_relations } = await table.get_child_relations();
|
|
38
41
|
const { parent_field_list } = await table.get_parent_relations(true);
|
|
@@ -50,7 +53,7 @@ const configuration_workflow = (req) => new Workflow({
|
|
|
50
53
|
const jfld = fields.find((f) => f.name === jFieldNm);
|
|
51
54
|
if (!jfld)
|
|
52
55
|
return;
|
|
53
|
-
const throughTable =
|
|
56
|
+
const throughTable = table_1.default.findOne({
|
|
54
57
|
name: jfld.reftable_name,
|
|
55
58
|
});
|
|
56
59
|
const throughFld = throughTable.fields.find((f) => f.name === throughField);
|
|
@@ -58,12 +61,12 @@ const configuration_workflow = (req) => new Workflow({
|
|
|
58
61
|
}
|
|
59
62
|
})
|
|
60
63
|
.filter((f) => f);
|
|
61
|
-
const roles = await
|
|
64
|
+
const roles = await user_1.default.get_roles();
|
|
62
65
|
for (const cr of child_relations) {
|
|
63
66
|
const cfields = await cr.table.getFields();
|
|
64
67
|
cfields.forEach((cf) => {
|
|
65
68
|
if (cf.name !== cr.key_field.name)
|
|
66
|
-
fields.push(new
|
|
69
|
+
fields.push(new field_1.default({
|
|
67
70
|
...cf,
|
|
68
71
|
label: `${cr.table.name}.${cr.key_field.name}→${cf.name}`,
|
|
69
72
|
name: `${cr.table.name}.${cr.key_field.name}.${cf.name}`,
|
|
@@ -72,14 +75,14 @@ const configuration_workflow = (req) => new Workflow({
|
|
|
72
75
|
}
|
|
73
76
|
const stateActions = Object.entries(getState().actions).filter(([k, v]) => !v.disableInBuilder && !v.disableIf?.());
|
|
74
77
|
const actions1 = ["Clear", ...stateActions.map(([k, v]) => k)];
|
|
75
|
-
const actions =
|
|
78
|
+
const actions = trigger_1.default.action_options({
|
|
76
79
|
tableTriggers: table.id,
|
|
77
80
|
apiNeverTriggers: true,
|
|
78
81
|
forBuilder: true,
|
|
79
82
|
builtInLabel: "Filter Actions",
|
|
80
83
|
builtIns: ["Clear"],
|
|
81
84
|
});
|
|
82
|
-
const triggerActions =
|
|
85
|
+
const triggerActions = trigger_1.default.trigger_actions({
|
|
83
86
|
tableTriggers: table.id,
|
|
84
87
|
apiNeverTriggers: true,
|
|
85
88
|
});
|
|
@@ -101,10 +104,10 @@ const configuration_workflow = (req) => new Workflow({
|
|
|
101
104
|
};
|
|
102
105
|
for (const [name, action] of stateActions) {
|
|
103
106
|
if (action.configFields) {
|
|
104
|
-
actionConfigForms[name] = await getActionConfigFields(action, table, { mode: "filter", req });
|
|
107
|
+
actionConfigForms[name] = await (0, plugin_helper_1.getActionConfigFields)(action, table, { mode: "filter", req });
|
|
105
108
|
}
|
|
106
109
|
}
|
|
107
|
-
const workflowActions =
|
|
110
|
+
const workflowActions = trigger_1.default.trigger_actions({
|
|
108
111
|
tableTriggers: table.id,
|
|
109
112
|
apiNeverTriggers: true,
|
|
110
113
|
onlyWorkflows: true,
|
|
@@ -119,7 +122,7 @@ const configuration_workflow = (req) => new Workflow({
|
|
|
119
122
|
},
|
|
120
123
|
];
|
|
121
124
|
}
|
|
122
|
-
const own_link_views = await
|
|
125
|
+
const own_link_views = await view_1.default.find_table_views_where(context.table_id || context.exttable_name, ({ viewrow }) => viewrow.name !== context.viewname);
|
|
123
126
|
const own_view_names = new Set();
|
|
124
127
|
const views = own_link_views.map((v) => {
|
|
125
128
|
own_view_names.add(v.name);
|
|
@@ -129,7 +132,7 @@ const configuration_workflow = (req) => new Workflow({
|
|
|
129
132
|
viewtemplate: v.viewtemplate,
|
|
130
133
|
};
|
|
131
134
|
});
|
|
132
|
-
const all_views = await
|
|
135
|
+
const all_views = await view_1.default.find({}, { cached: true });
|
|
133
136
|
for (const v of all_views) {
|
|
134
137
|
if (!own_view_names.has(v.name)) {
|
|
135
138
|
views.push({
|
|
@@ -145,15 +148,15 @@ const configuration_workflow = (req) => new Workflow({
|
|
|
145
148
|
}
|
|
146
149
|
const library = (await Library.find({})).filter((l) => l.suitableFor("filter"));
|
|
147
150
|
//const fieldViewConfigForms = await calcfldViewConfig(fields, false);
|
|
148
|
-
const { field_view_options, handlesTextStyle } = calcfldViewOptions(fields, "filter");
|
|
149
|
-
const pages = await
|
|
151
|
+
const { field_view_options, handlesTextStyle } = (0, plugin_helper_1.calcfldViewOptions)(fields, "filter");
|
|
152
|
+
const pages = await page_1.default.find();
|
|
150
153
|
var agg_field_opts = {};
|
|
151
154
|
agg_field_opts[table.name] = table.fields
|
|
152
155
|
.filter((f) => !f.calculated || f.stored)
|
|
153
156
|
.map((f) => ({
|
|
154
157
|
name: f.name,
|
|
155
158
|
label: f.label,
|
|
156
|
-
ftype: f.type
|
|
159
|
+
ftype: f.type?.name || f.type,
|
|
157
160
|
table_name: table.name,
|
|
158
161
|
table_id: table.id,
|
|
159
162
|
}));
|
|
@@ -214,9 +217,9 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
|
|
|
214
217
|
//console.log(layout);
|
|
215
218
|
if (!columns || !layout)
|
|
216
219
|
return "View not yet built";
|
|
217
|
-
const table =
|
|
220
|
+
const table = table_1.default.findOne(table_id);
|
|
218
221
|
const fields = table.getFields();
|
|
219
|
-
readState(state, fields);
|
|
222
|
+
(0, plugin_helper_1.readState)(state, fields);
|
|
220
223
|
const formFieldNames = (columns || [])
|
|
221
224
|
.map((c) => c.field_name)
|
|
222
225
|
.filter((n) => n);
|
|
@@ -233,8 +236,8 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
|
|
|
233
236
|
showv = realv.label;
|
|
234
237
|
}
|
|
235
238
|
badges.push({
|
|
236
|
-
text: `${text_attr(k)}:${text_attr(showv)}`,
|
|
237
|
-
onclick: `unset_state_field('${text_attr(k)}', this)`,
|
|
239
|
+
text: `${(0, tags_1.text_attr)(k)}:${(0, tags_1.text_attr)(showv)}`,
|
|
240
|
+
onclick: `unset_state_field('${(0, tags_1.text_attr)(k)}', this)`,
|
|
238
241
|
});
|
|
239
242
|
}
|
|
240
243
|
});
|
|
@@ -248,7 +251,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
|
|
|
248
251
|
await traverse(layout, {
|
|
249
252
|
aggregation: async (segment) => {
|
|
250
253
|
const { stat, agg_field, agg_fieldview, aggwhere } = segment;
|
|
251
|
-
const where = stateFieldsToWhere({ fields, state, table, prefix: "a." });
|
|
254
|
+
const where = (0, plugin_helper_1.stateFieldsToWhere)({ fields, state, table, prefix: "a." });
|
|
252
255
|
if (aggwhere) {
|
|
253
256
|
const ctx = {
|
|
254
257
|
...state,
|
|
@@ -271,7 +274,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
|
|
|
271
274
|
const fld = table.getField(agg_field);
|
|
272
275
|
segment.type = "blank";
|
|
273
276
|
if (stat.toLowerCase() === "array_agg" && Array.isArray(val))
|
|
274
|
-
segment.contents = val.map((v) => text(v.toString())).join(", ");
|
|
277
|
+
segment.contents = val.map((v) => (0, tags_1.text)(v.toString())).join(", ");
|
|
275
278
|
else if (agg_fieldview) {
|
|
276
279
|
const outcomeType = stat === "Percent true" || stat === "Percent false"
|
|
277
280
|
? "Float"
|
|
@@ -285,7 +288,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
|
|
|
285
288
|
}
|
|
286
289
|
}
|
|
287
290
|
else
|
|
288
|
-
segment.contents = text(val);
|
|
291
|
+
segment.contents = (0, tags_1.text)(val);
|
|
289
292
|
},
|
|
290
293
|
field: async (segment) => {
|
|
291
294
|
const { field_name, fieldview, configuration } = segment;
|
|
@@ -295,7 +298,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
|
|
|
295
298
|
const kpath = field_name.split(".");
|
|
296
299
|
if (kpath.length === 3) {
|
|
297
300
|
const [jtNm, jFieldNm, lblField] = kpath;
|
|
298
|
-
const jtable =
|
|
301
|
+
const jtable = table_1.default.findOne({ name: jtNm });
|
|
299
302
|
if (!jtable)
|
|
300
303
|
throw new InvalidConfiguration(`View ${viewname} incorrectly configured: cannot find join table ${jtNm}`);
|
|
301
304
|
const jfields = jtable.fields;
|
|
@@ -362,7 +365,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
|
|
|
362
365
|
if (extra?.isPreview)
|
|
363
366
|
return;
|
|
364
367
|
try {
|
|
365
|
-
const actionResult = await run_action_column({
|
|
368
|
+
const actionResult = await (0, plugin_helper_1.run_action_column)({
|
|
366
369
|
col: { ...segment },
|
|
367
370
|
referrer: extra.req?.get?.("Referrer"),
|
|
368
371
|
req: extra.req,
|
|
@@ -376,19 +379,19 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
|
|
|
376
379
|
});
|
|
377
380
|
}
|
|
378
381
|
if (actionResult)
|
|
379
|
-
segment.contents = script(domReady(`common_done(${JSON.stringify(actionResult)}, "${viewname}")`));
|
|
382
|
+
segment.contents = (0, tags_1.script)((0, tags_1.domReady)(`common_done(${JSON.stringify(actionResult)}, "${viewname}")`));
|
|
380
383
|
else
|
|
381
384
|
segment.contents = "";
|
|
382
385
|
}
|
|
383
386
|
catch (e) {
|
|
384
387
|
segment.contents = "";
|
|
385
|
-
|
|
388
|
+
crash_1.default.create(e, extra.req);
|
|
386
389
|
}
|
|
387
390
|
}
|
|
388
391
|
},
|
|
389
392
|
});
|
|
390
393
|
await eachView(layout, async (segment, inLazy) => {
|
|
391
|
-
const view = await
|
|
394
|
+
const view = await view_1.default.findOne({ name: segment.view });
|
|
392
395
|
if (!view)
|
|
393
396
|
throw new InvalidConfiguration(`View ${viewname} incorrectly configured: cannot find view ${segment.view}`);
|
|
394
397
|
const extra_state = segment.extra_state_fml
|
|
@@ -396,8 +399,8 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
|
|
|
396
399
|
: {};
|
|
397
400
|
if (segment.state === "local") {
|
|
398
401
|
const state1 = { ...extra_state };
|
|
399
|
-
const qs = stateToQueryString(state1, true);
|
|
400
|
-
segment.contents = div({
|
|
402
|
+
const qs = (0, plugin_helper_1.stateToQueryString)(state1, true);
|
|
403
|
+
segment.contents = (0, tags_1.div)({
|
|
401
404
|
class: "d-inline",
|
|
402
405
|
"data-sc-embed-viewname": view.name,
|
|
403
406
|
"data-sc-local-state": `/view/${view.name}${qs}`,
|
|
@@ -410,8 +413,8 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
|
|
|
410
413
|
}
|
|
411
414
|
else {
|
|
412
415
|
const state1 = { ...state, ...extra_state };
|
|
413
|
-
const qs = stateToQueryString(state1, true);
|
|
414
|
-
segment.contents = div({
|
|
416
|
+
const qs = (0, plugin_helper_1.stateToQueryString)(state1, true);
|
|
417
|
+
segment.contents = (0, tags_1.div)({
|
|
415
418
|
class: "d-inline",
|
|
416
419
|
"data-sc-embed-viewname": view.name,
|
|
417
420
|
"data-sc-view-source": `/view/${view.name}${qs}`,
|
|
@@ -422,7 +425,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
|
|
|
422
425
|
: await renderServerSide(view.name, state1));
|
|
423
426
|
}
|
|
424
427
|
}, state);
|
|
425
|
-
await
|
|
428
|
+
await page_1.default.renderEachEmbeddedPageInLayout(layout, state, extra);
|
|
426
429
|
translateLayout(layout, extra.req.getLocale());
|
|
427
430
|
const blockDispatch = {
|
|
428
431
|
field(segment) {
|
|
@@ -475,7 +478,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
|
|
|
475
478
|
(b.label?.toLowerCase?.() || b.label)
|
|
476
479
|
? 1
|
|
477
480
|
: -1);
|
|
478
|
-
const options = dvs.map(({ label, value, jsvalue }, ix) => option({
|
|
481
|
+
const options = dvs.map(({ label, value, jsvalue }, ix) => (0, tags_1.option)({
|
|
479
482
|
value,
|
|
480
483
|
selected: `${state[field_name]}` === `${or_if_undef(jsvalue, value)}` ||
|
|
481
484
|
(!value && !state[field_name]) ||
|
|
@@ -487,7 +490,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
|
|
|
487
490
|
: label_formula
|
|
488
491
|
? eval_expression(label_formula, { [field_name]: value }, extra.req.user || { role_id: 100 }, "Dropdown label formula")
|
|
489
492
|
: label));
|
|
490
|
-
return (select({
|
|
493
|
+
return ((0, tags_1.select)({
|
|
491
494
|
name: `ddfilter${field_name}`,
|
|
492
495
|
class: "form-control form-select d-inline-maybe scfilter selectizable",
|
|
493
496
|
style: full_width ? undefined : "width: unset;",
|
|
@@ -495,7 +498,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
|
|
|
495
498
|
onchange: `this.value=='' ? unset_state_field('${encodeURIComponent(field_name)}', this): set_state_field('${encodeURIComponent(field_name)}', this.value, this)`,
|
|
496
499
|
}, options) +
|
|
497
500
|
(apply_select2
|
|
498
|
-
? script(domReady(`$('select[name=ddfilter${field_name}]').select2();`))
|
|
501
|
+
? (0, tags_1.script)((0, tags_1.domReady)(`$('select[name=ddfilter${field_name}]').select2();`))
|
|
499
502
|
: ""));
|
|
500
503
|
},
|
|
501
504
|
action(segment) {
|
|
@@ -508,18 +511,18 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
|
|
|
508
511
|
: "";
|
|
509
512
|
if (action_name === "Clear") {
|
|
510
513
|
if (action_style === "btn-link")
|
|
511
|
-
return a({
|
|
514
|
+
return (0, tags_1.a)({
|
|
512
515
|
onclick: `${confirmStr}clear_state('${configuration?.omit_fields || ""}', this)`,
|
|
513
516
|
href: "javascript:void(0)",
|
|
514
517
|
}, action_icon
|
|
515
|
-
? i({ class: action_icon }) + (label ? " " : "")
|
|
518
|
+
? (0, tags_1.i)({ class: action_icon }) + (label ? " " : "")
|
|
516
519
|
: false, label);
|
|
517
520
|
else
|
|
518
|
-
return button({
|
|
521
|
+
return (0, tags_1.button)({
|
|
519
522
|
onClick: `${confirmStr}clear_state('${configuration?.omit_fields || ""}', this)`,
|
|
520
523
|
class: `btn ${action_style || "btn-primary"} ${action_size || ""}`,
|
|
521
524
|
}, action_icon
|
|
522
|
-
? i({ class: action_icon }) + (label ? " " : "")
|
|
525
|
+
? (0, tags_1.i)({ class: action_icon }) + (label ? " " : "")
|
|
523
526
|
: false, label);
|
|
524
527
|
}
|
|
525
528
|
else {
|
|
@@ -529,13 +532,13 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
|
|
|
529
532
|
javascript: `${confirmStr}view_post('${viewname}', 'run_action', {rndid:'${segment.rndid}'}, ` +
|
|
530
533
|
`null, ${withState});`,
|
|
531
534
|
};
|
|
532
|
-
return action_link(url, extra.req, segment);
|
|
535
|
+
return (0, viewable_fields_1.action_link)(url, extra.req, segment);
|
|
533
536
|
}
|
|
534
537
|
},
|
|
535
538
|
toggle_filter({ field_name, value, preset_value, label, size, style }) {
|
|
536
539
|
const field = fields.find((f) => f.name === field_name);
|
|
537
540
|
const isBool = field && field.type.name === "Bool";
|
|
538
|
-
const use_value = preset_value && field
|
|
541
|
+
const use_value = preset_value && field?.presets
|
|
539
542
|
? field.presets[preset_value]({
|
|
540
543
|
user: extra.req.user,
|
|
541
544
|
req: extra.req,
|
|
@@ -549,7 +552,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
|
|
|
549
552
|
"?": state[field_name] === null,
|
|
550
553
|
}[use_value]
|
|
551
554
|
: eq_string(state[field_name], use_value);
|
|
552
|
-
return button({
|
|
555
|
+
return (0, tags_1.button)({
|
|
553
556
|
class: [
|
|
554
557
|
"btn",
|
|
555
558
|
active
|
|
@@ -563,7 +566,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra, { dist
|
|
|
563
566
|
}, label || value || preset_value);
|
|
564
567
|
},
|
|
565
568
|
};
|
|
566
|
-
return div({ class: "form-namespace" }, renderLayout({
|
|
569
|
+
return (0, tags_1.div)({ class: "form-namespace" }, renderLayout({
|
|
567
570
|
blockDispatch,
|
|
568
571
|
layout,
|
|
569
572
|
role,
|
|
@@ -584,16 +587,16 @@ const or_if_undef = (x, y) => (typeof x === "undefined" ? y : x);
|
|
|
584
587
|
*/
|
|
585
588
|
const eq_string = (x, y) => `${x}` === `${y}`;
|
|
586
589
|
const run_action = async (table_id, viewname, config, body, { req, res }, { actionQuery }) => {
|
|
587
|
-
const table =
|
|
590
|
+
const table = table_1.default.findOne(table_id);
|
|
588
591
|
if (!table)
|
|
589
592
|
throw new InvalidConfiguration(`View '${viewname}:run_action' incorrectly configured: ` +
|
|
590
593
|
`Unable to find table with id '${table_id}'`);
|
|
591
594
|
const state = req?.query
|
|
592
|
-
? readState(removeEmptyStrings(req.query), table.getFields(), req)
|
|
595
|
+
? (0, plugin_helper_1.readState)(removeEmptyStrings(req.query), table.getFields(), req)
|
|
593
596
|
: {};
|
|
594
597
|
const result = await actionQuery(state, body?.rndid);
|
|
595
598
|
if (result.json.error) {
|
|
596
|
-
|
|
599
|
+
crash_1.default.create({ message: result.json.error, stack: "" }, req);
|
|
597
600
|
}
|
|
598
601
|
return result;
|
|
599
602
|
};
|
|
@@ -619,41 +622,41 @@ const combineResults = (results) => {
|
|
|
619
622
|
if (typeof result[memberName] === "undefined")
|
|
620
623
|
result.json[memberName] = newElement;
|
|
621
624
|
};
|
|
622
|
-
for (const
|
|
623
|
-
if (!
|
|
625
|
+
for (const r of results) {
|
|
626
|
+
if (!r)
|
|
624
627
|
continue;
|
|
625
|
-
if (
|
|
626
|
-
initOnce(
|
|
627
|
-
if (
|
|
628
|
-
initOnce(
|
|
629
|
-
if (
|
|
630
|
-
initOnce(
|
|
631
|
-
if (
|
|
628
|
+
if (r.reload_page)
|
|
629
|
+
initOnce(r.reload_page, "reload_page");
|
|
630
|
+
if (r.goto)
|
|
631
|
+
initOnce(r.goto, "goto");
|
|
632
|
+
if (r.popup)
|
|
633
|
+
initOnce(r.popup, "popup");
|
|
634
|
+
if (r.notify) {
|
|
632
635
|
if (numMsgs < messageLimit) {
|
|
633
|
-
initOrPush(
|
|
636
|
+
initOrPush(r.notify, "notify");
|
|
634
637
|
++numMsgs;
|
|
635
638
|
}
|
|
636
639
|
else
|
|
637
640
|
++suppressedMsgs;
|
|
638
641
|
}
|
|
639
|
-
if (
|
|
642
|
+
if (r.error) {
|
|
640
643
|
if (numMsgs < messageLimit) {
|
|
641
|
-
initOrPush(
|
|
644
|
+
initOrPush(r.error, "error");
|
|
642
645
|
++numMsgs;
|
|
643
646
|
}
|
|
644
647
|
else
|
|
645
648
|
++suppressedErrors;
|
|
646
649
|
}
|
|
647
|
-
if (
|
|
650
|
+
if (r.download) {
|
|
648
651
|
if (numDownloads < downloadLimit) {
|
|
649
|
-
initOrPush(
|
|
652
|
+
initOrPush(r.download, "download");
|
|
650
653
|
++numDownloads;
|
|
651
654
|
}
|
|
652
655
|
else
|
|
653
656
|
suppressedDownloads++;
|
|
654
657
|
}
|
|
655
|
-
if (
|
|
656
|
-
initOrPush(
|
|
658
|
+
if (r.eval_js)
|
|
659
|
+
initOrPush(r.eval_js, "eval_js");
|
|
657
660
|
}
|
|
658
661
|
let suppressedMsg = "";
|
|
659
662
|
if (suppressedMsgs > 0)
|
|
@@ -684,24 +687,25 @@ module.exports = {
|
|
|
684
687
|
routes: { run_action },
|
|
685
688
|
queries: ({ table_id, viewname, configuration: { columns }, req, res, exttable_name, }) => ({
|
|
686
689
|
async optionsQuery(reftable_name, type, attributes, whereWithExisting, user) {
|
|
687
|
-
return await
|
|
690
|
+
return await field_1.default.select_options_query(reftable_name, type === "File" ? attributes.select_file_where : whereWithExisting, attributes, undefined, user);
|
|
688
691
|
},
|
|
689
692
|
async actionQuery(state, rndid) {
|
|
690
693
|
const col = columns.find((c) => c.type === "Action" && c.rndid === rndid && rndid);
|
|
691
|
-
const table =
|
|
694
|
+
const table = table_1.default.findOne(table_id);
|
|
692
695
|
try {
|
|
693
696
|
return await db.withTransaction(async () => {
|
|
694
697
|
if (col.action_row_variable === "each_matching_row") {
|
|
695
698
|
const fields = table.getFields();
|
|
696
|
-
const { joinFields, aggregations } = picked_fields_to_query(columns, fields, undefined, req, table);
|
|
697
|
-
const where = stateFieldsToWhere({
|
|
699
|
+
const { joinFields, aggregations } = (0, plugin_helper_1.picked_fields_to_query)(columns, fields, undefined, req, table);
|
|
700
|
+
const where = (0, plugin_helper_1.stateFieldsToWhere)({
|
|
698
701
|
fields,
|
|
699
702
|
state,
|
|
700
703
|
table,
|
|
701
704
|
prefix: "a.",
|
|
702
705
|
});
|
|
703
|
-
const q = stateFieldsToQuery({
|
|
706
|
+
const q = (0, plugin_helper_1.stateFieldsToQuery)({
|
|
704
707
|
state,
|
|
708
|
+
fields,
|
|
705
709
|
prefix: "a.",
|
|
706
710
|
noSortAndPaging: true,
|
|
707
711
|
});
|
|
@@ -717,7 +721,7 @@ module.exports = {
|
|
|
717
721
|
});
|
|
718
722
|
const referrer = req?.get?.("Referrer");
|
|
719
723
|
return combineResults(await asyncMap(rows, async (row) => {
|
|
720
|
-
return await run_action_column({
|
|
724
|
+
return await (0, plugin_helper_1.run_action_column)({
|
|
721
725
|
col,
|
|
722
726
|
req,
|
|
723
727
|
table,
|
|
@@ -729,7 +733,7 @@ module.exports = {
|
|
|
729
733
|
}
|
|
730
734
|
else {
|
|
731
735
|
const row = col.action_row_variable === "state" ? { ...state } : null;
|
|
732
|
-
const result = await run_action_column({
|
|
736
|
+
const result = await (0, plugin_helper_1.run_action_column)({
|
|
733
737
|
col,
|
|
734
738
|
req,
|
|
735
739
|
table,
|
|
@@ -747,7 +751,7 @@ module.exports = {
|
|
|
747
751
|
}
|
|
748
752
|
},
|
|
749
753
|
async distinctValuesQuery(state) {
|
|
750
|
-
const table =
|
|
754
|
+
const table = table_1.default.findOne(table_id || exttable_name);
|
|
751
755
|
const fields = table.getFields();
|
|
752
756
|
let distinct_values = {};
|
|
753
757
|
const role = req.user ? req.user.role_id : 100;
|
|
@@ -779,7 +783,7 @@ module.exports = {
|
|
|
779
783
|
else if (col.field_name.includes("->")) {
|
|
780
784
|
const [jFieldNm, krest] = col.field_name.split(".");
|
|
781
785
|
const [jtNm, lblField] = krest.split("->");
|
|
782
|
-
const jtable =
|
|
786
|
+
const jtable = table_1.default.findOne({ name: jtNm });
|
|
783
787
|
if (!jtable)
|
|
784
788
|
throw new InvalidConfiguration(`View ${viewname} incorrectly configured: cannot find join table ${jtNm}`);
|
|
785
789
|
const jfields = await jtable.getFields();
|
|
@@ -791,7 +795,7 @@ module.exports = {
|
|
|
791
795
|
const kpath = col.field_name.split(".");
|
|
792
796
|
if (kpath.length === 3) {
|
|
793
797
|
const [jtNm, jFieldNm, lblField] = kpath;
|
|
794
|
-
const jtable =
|
|
798
|
+
const jtable = table_1.default.findOne({ name: jtNm });
|
|
795
799
|
if (!jtable)
|
|
796
800
|
throw new InvalidConfiguration(`View ${viewname} incorrectly configured: cannot find join table ${jtNm}`);
|
|
797
801
|
const jfields = jtable.fields;
|