@saltcorn/data 0.6.1-beta.2 → 0.6.2-beta.1
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/base-plugin/fieldviews.js +33 -28
- package/base-plugin/types.js +223 -94
- package/base-plugin/viewtemplates/edit.js +33 -26
- package/base-plugin/viewtemplates/filter.js +62 -15
- package/base-plugin/viewtemplates/list.js +16 -16
- package/base-plugin/viewtemplates/room.js +24 -22
- package/base-plugin/viewtemplates/show.js +26 -26
- package/base-plugin/viewtemplates/viewable_fields.js +26 -26
- package/db/index.js +6 -3
- package/models/expression.js +37 -25
- package/models/field.js +18 -12
- package/models/file.js +9 -2
- package/models/form.js +7 -6
- package/models/page.js +5 -1
- package/models/table.js +10 -2
- package/models/view.js +26 -22
- package/package.json +12 -7
- package/plugin-helper.js +31 -11
- package/tests/calc.test.js +22 -0
|
@@ -34,6 +34,7 @@ const {
|
|
|
34
34
|
getForm,
|
|
35
35
|
fill_presets,
|
|
36
36
|
parse_view_select,
|
|
37
|
+
get_view_link_query,
|
|
37
38
|
} = require("./viewable_fields");
|
|
38
39
|
const {
|
|
39
40
|
traverse,
|
|
@@ -43,7 +44,7 @@ const {
|
|
|
43
44
|
const { asyncMap } = require("../../utils");
|
|
44
45
|
|
|
45
46
|
/**
|
|
46
|
-
* @param {object} req
|
|
47
|
+
* @param {object} req
|
|
47
48
|
* @returns {Workflow}
|
|
48
49
|
*/
|
|
49
50
|
const configuration_workflow = (req) =>
|
|
@@ -59,7 +60,7 @@ const configuration_workflow = (req) =>
|
|
|
59
60
|
|
|
60
61
|
const { field_view_options, handlesTextStyle } = calcfldViewOptions(
|
|
61
62
|
fields,
|
|
62
|
-
|
|
63
|
+
"edit"
|
|
63
64
|
);
|
|
64
65
|
const fieldViewConfigForms = await calcfldViewConfig(fields, true);
|
|
65
66
|
|
|
@@ -251,8 +252,8 @@ const configuration_workflow = (req) =>
|
|
|
251
252
|
});
|
|
252
253
|
|
|
253
254
|
/**
|
|
254
|
-
* @param {*} table_id
|
|
255
|
-
* @param {*} viewname
|
|
255
|
+
* @param {*} table_id
|
|
256
|
+
* @param {*} viewname
|
|
256
257
|
* @param {object} opts
|
|
257
258
|
* @param {*} opts.columns
|
|
258
259
|
* @returns {Promise<object[]>}
|
|
@@ -266,8 +267,8 @@ const get_state_fields = async (table_id, viewname, { columns }) => [
|
|
|
266
267
|
];
|
|
267
268
|
|
|
268
269
|
/**
|
|
269
|
-
* @param {Form} form
|
|
270
|
-
* @param {string} locale
|
|
270
|
+
* @param {Form} form
|
|
271
|
+
* @param {string} locale
|
|
271
272
|
*/
|
|
272
273
|
const setDateLocales = (form, locale) => {
|
|
273
274
|
form.fields.forEach((f) => {
|
|
@@ -281,12 +282,12 @@ const setDateLocales = (form, locale) => {
|
|
|
281
282
|
const initial_config = initial_config_all_fields(true);
|
|
282
283
|
|
|
283
284
|
/**
|
|
284
|
-
* @param {number} table_id
|
|
285
|
-
* @param {string} viewname
|
|
285
|
+
* @param {number} table_id
|
|
286
|
+
* @param {string} viewname
|
|
286
287
|
* @param {object} optsOne
|
|
287
288
|
* @param {*} optsOne.columns
|
|
288
289
|
* @param {*} optsOne.layout
|
|
289
|
-
* @param {string} state
|
|
290
|
+
* @param {string} state
|
|
290
291
|
* @param {object} optsTwo
|
|
291
292
|
* @param {object} optsTwo.req
|
|
292
293
|
* @param {object} optsTwo.res
|
|
@@ -320,13 +321,13 @@ const run = async (
|
|
|
320
321
|
};
|
|
321
322
|
|
|
322
323
|
/**
|
|
323
|
-
* @param {number} table_id
|
|
324
|
-
* @param {string} viewname
|
|
324
|
+
* @param {number} table_id
|
|
325
|
+
* @param {string} viewname
|
|
325
326
|
* @param {object} opts
|
|
326
327
|
* @param {*} opts.columns
|
|
327
328
|
* @param {*} opts.layout
|
|
328
|
-
* @param {State} state
|
|
329
|
-
* @param {object} extra
|
|
329
|
+
* @param {State} state
|
|
330
|
+
* @param {object} extra
|
|
330
331
|
* @returns {Promise<Form[]>}
|
|
331
332
|
*/
|
|
332
333
|
const runMany = async (
|
|
@@ -477,21 +478,24 @@ const render = async ({
|
|
|
477
478
|
}
|
|
478
479
|
}
|
|
479
480
|
});
|
|
481
|
+
await form.fill_fkey_options();
|
|
482
|
+
|
|
480
483
|
await transformForm({ form, table, req, row, res });
|
|
484
|
+
|
|
481
485
|
return renderForm(form, req.csrfToken());
|
|
482
486
|
};
|
|
483
487
|
|
|
484
488
|
/**
|
|
485
|
-
* @param {number} table_id
|
|
486
|
-
* @param {string} viewname
|
|
489
|
+
* @param {number} table_id
|
|
490
|
+
* @param {string} viewname
|
|
487
491
|
* @param {object} optsOne
|
|
488
492
|
* @param {object[]} optsOne.columns
|
|
489
493
|
* @param {Layout} optsOne.layout
|
|
490
494
|
* @param {object} optsOne.fixed
|
|
491
495
|
* @param {boolean} optsOne.view_when_done
|
|
492
496
|
* @param {object[]} optsOne.formula_destinations
|
|
493
|
-
* @param {object} state
|
|
494
|
-
* @param {*} body
|
|
497
|
+
* @param {object} state
|
|
498
|
+
* @param {*} body
|
|
495
499
|
* @param {object} optsTwo
|
|
496
500
|
* @param {object} optsTwo.res
|
|
497
501
|
* @param {object} optsTwo.req
|
|
@@ -520,6 +524,7 @@ const runPost = async (
|
|
|
520
524
|
form.validate(body);
|
|
521
525
|
if (form.hasErrors) {
|
|
522
526
|
if (req.xhr) res.status(422);
|
|
527
|
+
await form.fill_fkey_options();
|
|
523
528
|
await transformForm({ form, table, req });
|
|
524
529
|
res.sendWrap(viewname, renderForm(form, req.csrfToken()));
|
|
525
530
|
} else {
|
|
@@ -550,8 +555,10 @@ const runPost = async (
|
|
|
550
555
|
row,
|
|
551
556
|
req.user ? +req.user.id : undefined
|
|
552
557
|
);
|
|
553
|
-
if (ins_res.success)
|
|
554
|
-
|
|
558
|
+
if (ins_res.success) {
|
|
559
|
+
id = ins_res.success;
|
|
560
|
+
row[pk.name] = id;
|
|
561
|
+
} else {
|
|
555
562
|
req.flash("error", text_attr(ins_res.error));
|
|
556
563
|
res.sendWrap(viewname, renderForm(form, req.csrfToken()));
|
|
557
564
|
return;
|
|
@@ -601,13 +608,13 @@ const runPost = async (
|
|
|
601
608
|
if (
|
|
602
609
|
(nxview.table_id === table_id || relation) &&
|
|
603
610
|
state_fields.some((sf) => sf.name === pk.name)
|
|
604
|
-
)
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
)
|
|
609
|
-
);
|
|
610
|
-
else res.redirect(`/view/${text(viewname_when_done)}`);
|
|
611
|
+
) {
|
|
612
|
+
const get_query = get_view_link_query(fields);
|
|
613
|
+
const query = relation
|
|
614
|
+
? `?${pk.name}=${text(row[relation])}`
|
|
615
|
+
: get_query(row);
|
|
616
|
+
res.redirect(`/view/${text(viewname_when_done)}${query}`);
|
|
617
|
+
} else res.redirect(`/view/${text(viewname_when_done)}`);
|
|
611
618
|
}
|
|
612
619
|
}
|
|
613
620
|
};
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
const User = require("../../models/user");
|
|
7
7
|
const View = require("../../models/view");
|
|
8
8
|
const Table = require("../../models/table");
|
|
9
|
+
const Field = require("../../models/field");
|
|
9
10
|
const Workflow = require("../../models/workflow");
|
|
10
11
|
|
|
11
12
|
const {
|
|
@@ -17,10 +18,15 @@ const {
|
|
|
17
18
|
select,
|
|
18
19
|
button,
|
|
19
20
|
text_attr,
|
|
21
|
+
script,
|
|
20
22
|
} = require("@saltcorn/markup/tags");
|
|
21
23
|
const renderLayout = require("@saltcorn/markup/layout");
|
|
22
24
|
|
|
23
|
-
const {
|
|
25
|
+
const {
|
|
26
|
+
readState,
|
|
27
|
+
calcfldViewOptions,
|
|
28
|
+
calcfldViewConfig,
|
|
29
|
+
} = require("../../plugin-helper");
|
|
24
30
|
const { search_bar } = require("@saltcorn/markup/helpers");
|
|
25
31
|
const {
|
|
26
32
|
eachView,
|
|
@@ -53,11 +59,13 @@ const configuration_workflow = () =>
|
|
|
53
59
|
const cfields = await cr.table.getFields();
|
|
54
60
|
cfields.forEach((cf) => {
|
|
55
61
|
if (cf.name !== cr.key_field.name)
|
|
56
|
-
fields.push(
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
62
|
+
fields.push(
|
|
63
|
+
new Field({
|
|
64
|
+
...cf,
|
|
65
|
+
label: `${cr.table.name}.${cr.key_field.name}→${cf.name}`,
|
|
66
|
+
name: `${cr.table.name}.${cr.key_field.name}.${cf.name}`,
|
|
67
|
+
})
|
|
68
|
+
);
|
|
61
69
|
});
|
|
62
70
|
}
|
|
63
71
|
const actions = ["Clear"];
|
|
@@ -76,12 +84,21 @@ const configuration_workflow = () =>
|
|
|
76
84
|
const library = (await Library.find({})).filter((l) =>
|
|
77
85
|
l.suitableFor("filter")
|
|
78
86
|
);
|
|
87
|
+
const fieldViewConfigForms = await calcfldViewConfig(fields, false);
|
|
88
|
+
|
|
89
|
+
const { field_view_options, handlesTextStyle } = calcfldViewOptions(
|
|
90
|
+
fields,
|
|
91
|
+
"filter"
|
|
92
|
+
);
|
|
79
93
|
return {
|
|
80
94
|
fields,
|
|
95
|
+
tableName: table.name,
|
|
81
96
|
roles,
|
|
82
97
|
actions,
|
|
83
98
|
views,
|
|
84
99
|
library,
|
|
100
|
+
field_view_options,
|
|
101
|
+
fieldViewConfigForms,
|
|
85
102
|
mode: "filter",
|
|
86
103
|
};
|
|
87
104
|
},
|
|
@@ -93,19 +110,19 @@ const configuration_workflow = () =>
|
|
|
93
110
|
const get_state_fields = () => [];
|
|
94
111
|
|
|
95
112
|
/**
|
|
96
|
-
*
|
|
113
|
+
*
|
|
97
114
|
* @returns {Promise<object>}
|
|
98
115
|
*/
|
|
99
116
|
const initial_config = async () => ({ layout: {}, columns: [] });
|
|
100
117
|
|
|
101
118
|
/**
|
|
102
|
-
* @param {number} table_id
|
|
103
|
-
* @param {string} viewname
|
|
119
|
+
* @param {number} table_id
|
|
120
|
+
* @param {string} viewname
|
|
104
121
|
* @param {object} opts
|
|
105
122
|
* @param {object[]} opts.columns
|
|
106
123
|
* @param {object} opts.layout
|
|
107
|
-
* @param {object} state
|
|
108
|
-
* @param {object} extra
|
|
124
|
+
* @param {object} state
|
|
125
|
+
* @param {object} extra
|
|
109
126
|
* @returns {Promise<Layout>}
|
|
110
127
|
*/
|
|
111
128
|
const run = async (table_id, viewname, { columns, layout }, state, extra) => {
|
|
@@ -115,6 +132,7 @@ const run = async (table_id, viewname, { columns, layout }, state, extra) => {
|
|
|
115
132
|
const table = await Table.findOne(table_id);
|
|
116
133
|
const fields = await table.getFields();
|
|
117
134
|
readState(state, fields);
|
|
135
|
+
|
|
118
136
|
const role = extra.req.user ? extra.req.user.role_id : 10;
|
|
119
137
|
const distinct_values = {};
|
|
120
138
|
for (const col of columns) {
|
|
@@ -181,6 +199,35 @@ const run = async (table_id, viewname, { columns, layout }, state, extra) => {
|
|
|
181
199
|
});
|
|
182
200
|
translateLayout(layout, extra.req.getLocale());
|
|
183
201
|
const blockDispatch = {
|
|
202
|
+
field(segment) {
|
|
203
|
+
const { field_name, fieldview, configuration } = segment;
|
|
204
|
+
let field = fields.find((fld) => fld.name === field_name);
|
|
205
|
+
if (!field) return "";
|
|
206
|
+
|
|
207
|
+
if (
|
|
208
|
+
fieldview &&
|
|
209
|
+
field.type &&
|
|
210
|
+
field.type.fieldviews &&
|
|
211
|
+
field.type.fieldviews[fieldview]
|
|
212
|
+
) {
|
|
213
|
+
const fv = field.type.fieldviews[fieldview];
|
|
214
|
+
if (fv.isEdit || fv.isFilter)
|
|
215
|
+
return fv.run(
|
|
216
|
+
field_name,
|
|
217
|
+
state[field_name],
|
|
218
|
+
{
|
|
219
|
+
onChange: `set_state_field('${field_name}', this.value)`,
|
|
220
|
+
...field.attributes,
|
|
221
|
+
...configuration,
|
|
222
|
+
},
|
|
223
|
+
"",
|
|
224
|
+
false,
|
|
225
|
+
segment,
|
|
226
|
+
state
|
|
227
|
+
);
|
|
228
|
+
}
|
|
229
|
+
return "";
|
|
230
|
+
},
|
|
184
231
|
search_bar({ has_dropdown, contents, show_badges }, go) {
|
|
185
232
|
const rendered_contents = go(contents);
|
|
186
233
|
return search_bar("_fts", state["_fts"], {
|
|
@@ -276,15 +323,15 @@ const run = async (table_id, viewname, { columns, layout }, state, extra) => {
|
|
|
276
323
|
};
|
|
277
324
|
|
|
278
325
|
/**
|
|
279
|
-
* @param {object|undefined} x
|
|
280
|
-
* @param {object|undefined} y
|
|
326
|
+
* @param {object|undefined} x
|
|
327
|
+
* @param {object|undefined} y
|
|
281
328
|
* @returns {object}
|
|
282
329
|
*/
|
|
283
330
|
const or_if_undef = (x, y) => (typeof x === "undefined" ? y : x);
|
|
284
331
|
|
|
285
332
|
/**
|
|
286
|
-
* @param {string} x
|
|
287
|
-
* @param {string} y
|
|
333
|
+
* @param {string} x
|
|
334
|
+
* @param {string} y
|
|
288
335
|
* @returns {boolean}
|
|
289
336
|
*/
|
|
290
337
|
const eq_string = (x, y) => `${x}` === `${y}`;
|
|
@@ -37,7 +37,7 @@ const { get_existing_views } = require("../../models/discovery");
|
|
|
37
37
|
const { InvalidConfiguration } = require("../../utils");
|
|
38
38
|
|
|
39
39
|
/**
|
|
40
|
-
* @param {object} context
|
|
40
|
+
* @param {object} context
|
|
41
41
|
* @returns {Promise<void>}
|
|
42
42
|
*/
|
|
43
43
|
const create_db_view = async (context) => {
|
|
@@ -64,8 +64,8 @@ const create_db_view = async (context) => {
|
|
|
64
64
|
};
|
|
65
65
|
|
|
66
66
|
/**
|
|
67
|
-
* @param {*} table_id
|
|
68
|
-
* @param {string} viewname
|
|
67
|
+
* @param {*} table_id
|
|
68
|
+
* @param {string} viewname
|
|
69
69
|
* @param {object} opts
|
|
70
70
|
* @param {*} opts.default_state
|
|
71
71
|
* @returns {Promise<void>}
|
|
@@ -83,7 +83,7 @@ const on_delete = async (table_id, viewname, { default_state }) => {
|
|
|
83
83
|
};
|
|
84
84
|
|
|
85
85
|
/**
|
|
86
|
-
* @param {object} req
|
|
86
|
+
* @param {object} req
|
|
87
87
|
* @returns {Workflow}
|
|
88
88
|
*/
|
|
89
89
|
const configuration_workflow = (req) =>
|
|
@@ -283,8 +283,8 @@ const configuration_workflow = (req) =>
|
|
|
283
283
|
});
|
|
284
284
|
|
|
285
285
|
/**
|
|
286
|
-
* @param {string} table_id
|
|
287
|
-
* @param {*} viewname
|
|
286
|
+
* @param {string} table_id
|
|
287
|
+
* @param {*} viewname
|
|
288
288
|
* @param {object} opts
|
|
289
289
|
* @param {object[]} opts.columns
|
|
290
290
|
* @returns {function}
|
|
@@ -313,8 +313,8 @@ const get_state_fields = async (table_id, viewname, { columns }) => {
|
|
|
313
313
|
const initial_config = initial_config_all_fields(false);
|
|
314
314
|
|
|
315
315
|
/**
|
|
316
|
-
* @param {string|number} table_id
|
|
317
|
-
* @param {string} viewname
|
|
316
|
+
* @param {string|number} table_id
|
|
317
|
+
* @param {string} viewname
|
|
318
318
|
* @param {object} opts
|
|
319
319
|
* @param {object[]} opts.columns
|
|
320
320
|
* @param {string} [opts.view_to_create]
|
|
@@ -323,7 +323,7 @@ const initial_config = initial_config_all_fields(false);
|
|
|
323
323
|
* @param {object} [opts.default_state]
|
|
324
324
|
* @param {string} [opts.create_view_location]
|
|
325
325
|
* @param {object} [stateWithId]
|
|
326
|
-
* @param {object} extraOpts
|
|
326
|
+
* @param {object} extraOpts
|
|
327
327
|
* @returns {Promise<*>}
|
|
328
328
|
*/
|
|
329
329
|
const run = async (
|
|
@@ -473,12 +473,12 @@ const run = async (
|
|
|
473
473
|
};
|
|
474
474
|
|
|
475
475
|
/**
|
|
476
|
-
* @param {number} table_id
|
|
477
|
-
* @param {*} viewname
|
|
476
|
+
* @param {number} table_id
|
|
477
|
+
* @param {*} viewname
|
|
478
478
|
* @param {object} optsOne
|
|
479
479
|
* @param {object[]} optsOne.columns
|
|
480
480
|
* @param {*} optsOne.layout
|
|
481
|
-
* @param {object} body
|
|
481
|
+
* @param {object} body
|
|
482
482
|
* @param {object} optsTwo
|
|
483
483
|
* @param {object} optsTwo.req
|
|
484
484
|
* @param {*} optsTwo.res
|
|
@@ -527,7 +527,7 @@ module.exports = {
|
|
|
527
527
|
name: "List",
|
|
528
528
|
/** @type {string} */
|
|
529
529
|
description:
|
|
530
|
-
"Display multiple rows from a table in a grid with columns you specify",
|
|
530
|
+
"Display multiple rows from a table in a grid with columns you specify",
|
|
531
531
|
configuration_workflow,
|
|
532
532
|
run,
|
|
533
533
|
/** @type {string} */
|
|
@@ -537,13 +537,13 @@ module.exports = {
|
|
|
537
537
|
on_delete,
|
|
538
538
|
routes: { run_action },
|
|
539
539
|
/**
|
|
540
|
-
* @param {object} opts
|
|
540
|
+
* @param {object} opts
|
|
541
541
|
* @returns {boolean}
|
|
542
542
|
*/
|
|
543
543
|
display_state_form: (opts) =>
|
|
544
544
|
!(opts && opts.default_state && opts.default_state._omit_state_form),
|
|
545
545
|
/**
|
|
546
|
-
* @param {object} opts
|
|
546
|
+
* @param {object} opts
|
|
547
547
|
* @returns {boolean}
|
|
548
548
|
*/
|
|
549
549
|
default_state_form: ({ default_state }) => {
|
|
@@ -552,7 +552,7 @@ module.exports = {
|
|
|
552
552
|
return ds && removeDefaultColor(removeEmptyStrings(ds));
|
|
553
553
|
},
|
|
554
554
|
/**
|
|
555
|
-
* @param {object} opts
|
|
555
|
+
* @param {object} opts
|
|
556
556
|
* @param {*} opts.columns
|
|
557
557
|
* @param {*} opts.create_view_label
|
|
558
558
|
* @returns {string[]}
|
|
@@ -36,8 +36,8 @@ const db = require("../../db");
|
|
|
36
36
|
const { getForm, fill_presets } = require("./viewable_fields");
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
|
-
*
|
|
40
|
-
* @param {object} req
|
|
39
|
+
*
|
|
40
|
+
* @param {object} req
|
|
41
41
|
* @returns {Workflow}
|
|
42
42
|
*/
|
|
43
43
|
const configuration_workflow = (req) =>
|
|
@@ -184,8 +184,8 @@ const get_state_fields = () => [
|
|
|
184
184
|
const limit = 10;
|
|
185
185
|
|
|
186
186
|
/**
|
|
187
|
-
* @param {string} table_id
|
|
188
|
-
* @param {string} viewname
|
|
187
|
+
* @param {string} table_id
|
|
188
|
+
* @param {string} viewname
|
|
189
189
|
* @param {object} optsOne
|
|
190
190
|
* @param {string} optsOne.participant_field,
|
|
191
191
|
* @param {string} optsOne.msg_relation
|
|
@@ -193,7 +193,7 @@ const limit = 10;
|
|
|
193
193
|
* @param {string} optsOne.msgview
|
|
194
194
|
* @param {string} optsOne.msgform
|
|
195
195
|
* @param {string} optsOne.participant_maxread_field
|
|
196
|
-
* @param {object} state
|
|
196
|
+
* @param {object} state
|
|
197
197
|
* @param {object} optsTwo
|
|
198
198
|
* @param {object} optsTwo.req
|
|
199
199
|
* @param {object} optsTwo.res
|
|
@@ -286,6 +286,8 @@ const run = async (
|
|
|
286
286
|
form.class = `room-${state.id}`;
|
|
287
287
|
form.hidden("room_id");
|
|
288
288
|
form.values = { room_id: state.id };
|
|
289
|
+
await form.fill_fkey_options();
|
|
290
|
+
|
|
289
291
|
return div(
|
|
290
292
|
n_retrieved === limit &&
|
|
291
293
|
button(
|
|
@@ -305,13 +307,13 @@ const run = async (
|
|
|
305
307
|
};
|
|
306
308
|
|
|
307
309
|
/**
|
|
308
|
-
* @param {*} table_id
|
|
309
|
-
* @param {*} viewname
|
|
310
|
-
* @param {object} optsOne
|
|
310
|
+
* @param {*} table_id
|
|
311
|
+
* @param {*} viewname
|
|
312
|
+
* @param {object} optsOne
|
|
311
313
|
* @param {string} optsOne.participant_field
|
|
312
314
|
* @param {string} optsOne.participant_maxread_field
|
|
313
|
-
* @param {body} body
|
|
314
|
-
* @param {object} optsTwo
|
|
315
|
+
* @param {body} body
|
|
316
|
+
* @param {object} optsTwo
|
|
315
317
|
* @param {object} optsTwo.req
|
|
316
318
|
* @param {object} optsTwo.res
|
|
317
319
|
* @returns {Promise<void>}
|
|
@@ -365,8 +367,8 @@ const ack_read = async (
|
|
|
365
367
|
};
|
|
366
368
|
|
|
367
369
|
/**
|
|
368
|
-
* @param {*} table_id
|
|
369
|
-
* @param {*} viewname
|
|
370
|
+
* @param {*} table_id
|
|
371
|
+
* @param {*} viewname
|
|
370
372
|
* @param {object} optsOne.
|
|
371
373
|
* @param {string} optsOne.participant_field
|
|
372
374
|
* @param {string} optsOne.msg_relation
|
|
@@ -374,10 +376,10 @@ const ack_read = async (
|
|
|
374
376
|
* @param {string} optsOne.msgview
|
|
375
377
|
* @param {*} optsOne.msgform
|
|
376
378
|
* @param {*} optsOne.participant_maxread_field
|
|
377
|
-
* @param {object} body
|
|
378
|
-
* @param {object} optsTwo
|
|
379
|
+
* @param {object} body
|
|
380
|
+
* @param {object} optsTwo
|
|
379
381
|
* @param {object} optsTwo.req
|
|
380
|
-
* @param {object} optsTwo.res
|
|
382
|
+
* @param {object} optsTwo.res
|
|
381
383
|
* @returns {Promise<object>}
|
|
382
384
|
*/
|
|
383
385
|
const fetch_older_msg = async (
|
|
@@ -445,8 +447,8 @@ const fetch_older_msg = async (
|
|
|
445
447
|
};
|
|
446
448
|
|
|
447
449
|
/**
|
|
448
|
-
* @param {*} table_id
|
|
449
|
-
* @param {string} viewname
|
|
450
|
+
* @param {*} table_id
|
|
451
|
+
* @param {string} viewname
|
|
450
452
|
* @param {object} optsOne
|
|
451
453
|
* @param {string} optsOne.participant_field
|
|
452
454
|
* @param {string} optsOne.msg_relation
|
|
@@ -454,7 +456,7 @@ const fetch_older_msg = async (
|
|
|
454
456
|
* @param {string} optsOne.msgview
|
|
455
457
|
* @param {string} optsOne.msgform
|
|
456
458
|
* @param {string} optsOne.participant_maxread_field
|
|
457
|
-
* @param {*} body
|
|
459
|
+
* @param {*} body
|
|
458
460
|
* @param {object} optsTwo
|
|
459
461
|
* @param {object} optsTwo.req
|
|
460
462
|
* @param {object} optsTwo.res
|
|
@@ -549,8 +551,8 @@ const submit_msg_ajax = async (
|
|
|
549
551
|
};
|
|
550
552
|
|
|
551
553
|
/**
|
|
552
|
-
* @param {*} table_id
|
|
553
|
-
* @param {string} viewname
|
|
554
|
+
* @param {*} table_id
|
|
555
|
+
* @param {string} viewname
|
|
554
556
|
* @param {object} opts
|
|
555
557
|
* @param {*} opts.participant_field
|
|
556
558
|
* @param {string} opts.msg_relation,
|
|
@@ -617,8 +619,8 @@ module.exports = {
|
|
|
617
619
|
/**
|
|
618
620
|
* @param {object} opts
|
|
619
621
|
* @param {object} opts.participant_field
|
|
620
|
-
* @param {string} room_id
|
|
621
|
-
* @param {object} user
|
|
622
|
+
* @param {string} room_id
|
|
623
|
+
* @param {object} user
|
|
622
624
|
* @returns {Promise<object>}
|
|
623
625
|
*/
|
|
624
626
|
authorize_join: async ({ participant_field }, room_id, user) => {
|
|
@@ -55,7 +55,7 @@ const { get_base_url } = require("../../models/config");
|
|
|
55
55
|
const Library = require("../../models/library");
|
|
56
56
|
|
|
57
57
|
/**
|
|
58
|
-
* @param {object} req
|
|
58
|
+
* @param {object} req
|
|
59
59
|
* @returns {Workflow}
|
|
60
60
|
*/
|
|
61
61
|
const configuration_workflow = (req) =>
|
|
@@ -106,7 +106,7 @@ const configuration_workflow = (req) =>
|
|
|
106
106
|
const fieldViewConfigForms = await calcfldViewConfig(fields, false);
|
|
107
107
|
const { field_view_options, handlesTextStyle } = calcfldViewOptions(
|
|
108
108
|
fields,
|
|
109
|
-
|
|
109
|
+
"show"
|
|
110
110
|
);
|
|
111
111
|
if (table.name === "users") {
|
|
112
112
|
fields.push(
|
|
@@ -207,15 +207,15 @@ const get_state_fields = () => [
|
|
|
207
207
|
const initial_config = initial_config_all_fields(false);
|
|
208
208
|
|
|
209
209
|
/**
|
|
210
|
-
* @param {string} table_id
|
|
211
|
-
* @param {string} viewname
|
|
210
|
+
* @param {string} table_id
|
|
211
|
+
* @param {string} viewname
|
|
212
212
|
* @param {object} opts
|
|
213
213
|
* @param {object[]} opts.columns
|
|
214
214
|
* @param {object} opts.layout
|
|
215
215
|
* @param {string} [opts.page_title]
|
|
216
216
|
* @param {boolean} opts.page_title_formula
|
|
217
|
-
* @param {object} state
|
|
218
|
-
* @param {object} extra
|
|
217
|
+
* @param {object} state
|
|
218
|
+
* @param {object} extra
|
|
219
219
|
* @returns {Promise<string>}
|
|
220
220
|
*/
|
|
221
221
|
const run = async (
|
|
@@ -332,13 +332,13 @@ const set_join_fieldviews = async ({ layout, fields }) => {
|
|
|
332
332
|
};
|
|
333
333
|
|
|
334
334
|
/**
|
|
335
|
-
* @param {object} table
|
|
336
|
-
* @param {string} viewname
|
|
335
|
+
* @param {object} table
|
|
336
|
+
* @param {string} viewname
|
|
337
337
|
* @param {object} opts
|
|
338
338
|
* @param {object[]} opts.columns
|
|
339
339
|
* @param {object} opts.layout
|
|
340
|
-
* @param {object} extra
|
|
341
|
-
* @param {object[]} rows
|
|
340
|
+
* @param {object} extra
|
|
341
|
+
* @param {object[]} rows
|
|
342
342
|
* @returns {Promise<string>}
|
|
343
343
|
*/
|
|
344
344
|
const renderRows = async (
|
|
@@ -431,13 +431,13 @@ const renderRows = async (
|
|
|
431
431
|
};
|
|
432
432
|
|
|
433
433
|
/**
|
|
434
|
-
* @param {number} table_id
|
|
435
|
-
* @param {string} viewname
|
|
434
|
+
* @param {number} table_id
|
|
435
|
+
* @param {string} viewname
|
|
436
436
|
* @param {object} opts
|
|
437
437
|
* @param {object[]} opts.columns
|
|
438
438
|
* @param {object} opts.layout
|
|
439
|
-
* @param {object} state
|
|
440
|
-
* @param {object} extra
|
|
439
|
+
* @param {object} state
|
|
440
|
+
* @param {object} extra
|
|
441
441
|
* @returns {Promise<object[]>}
|
|
442
442
|
*/
|
|
443
443
|
const runMany = async (
|
|
@@ -477,14 +477,14 @@ const runMany = async (
|
|
|
477
477
|
};
|
|
478
478
|
|
|
479
479
|
/**
|
|
480
|
-
* @param {object} row
|
|
481
|
-
* @param {Field[]} fields
|
|
482
|
-
* @param {Layout} layout0
|
|
483
|
-
* @param {string} viewname
|
|
484
|
-
* @param {Table} table
|
|
485
|
-
* @param {Role} role
|
|
486
|
-
* @param {object} req
|
|
487
|
-
* @param {object} is_owner
|
|
480
|
+
* @param {object} row
|
|
481
|
+
* @param {Field[]} fields
|
|
482
|
+
* @param {Layout} layout0
|
|
483
|
+
* @param {string} viewname
|
|
484
|
+
* @param {Table} table
|
|
485
|
+
* @param {Role} role
|
|
486
|
+
* @param {object} req
|
|
487
|
+
* @param {object} is_owner
|
|
488
488
|
* @throws {Error}
|
|
489
489
|
* @returns {Layout}
|
|
490
490
|
*/
|
|
@@ -627,14 +627,14 @@ const render = (row, fields, layout0, viewname, table, role, req, is_owner) => {
|
|
|
627
627
|
};
|
|
628
628
|
|
|
629
629
|
/**
|
|
630
|
-
* @param {number} table_id
|
|
631
|
-
* @param {*} viewname
|
|
630
|
+
* @param {number} table_id
|
|
631
|
+
* @param {*} viewname
|
|
632
632
|
* @param {object} opts
|
|
633
633
|
* @param {object[]} opts.columns
|
|
634
634
|
* @param {*} opts.layout
|
|
635
|
-
* @param {*} body
|
|
635
|
+
* @param {*} body
|
|
636
636
|
* @param {object} optsTwo
|
|
637
|
-
* @param {object} optsTwo.req
|
|
637
|
+
* @param {object} optsTwo.req
|
|
638
638
|
* @param {*} optsTwo.res
|
|
639
639
|
* @returns {Promise<object>}
|
|
640
640
|
*/
|