@saltcorn/data 0.7.2-beta.0 → 0.7.2-beta.2
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/app-locales/en.json +6 -0
- package/dist/app-locales/public/da.json +3 -0
- package/dist/app-locales/public/tlh.json +3 -0
- package/dist/base-plugin/actions.d.ts.map +1 -1
- package/dist/base-plugin/actions.js +4 -1
- package/dist/base-plugin/actions.js.map +1 -1
- package/dist/base-plugin/fieldviews.d.ts +24 -0
- package/dist/base-plugin/fieldviews.d.ts.map +1 -1
- package/dist/base-plugin/fieldviews.js +57 -5
- package/dist/base-plugin/fieldviews.js.map +1 -1
- package/dist/base-plugin/index.d.ts +292 -75
- package/dist/base-plugin/index.d.ts.map +1 -1
- package/dist/base-plugin/types.d.ts +114 -73
- package/dist/base-plugin/types.d.ts.map +1 -1
- package/dist/base-plugin/types.js +141 -37
- package/dist/base-plugin/types.js.map +1 -1
- package/dist/base-plugin/viewtemplates/edit.d.ts +47 -3
- package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/edit.js +204 -85
- package/dist/base-plugin/viewtemplates/edit.js.map +1 -1
- package/dist/base-plugin/viewtemplates/feed.d.ts +14 -1
- package/dist/base-plugin/viewtemplates/feed.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/feed.js +20 -8
- package/dist/base-plugin/viewtemplates/feed.js.map +1 -1
- package/dist/base-plugin/viewtemplates/filter.d.ts +17 -1
- package/dist/base-plugin/viewtemplates/filter.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/filter.js +64 -45
- package/dist/base-plugin/viewtemplates/filter.js.map +1 -1
- package/dist/base-plugin/viewtemplates/list.d.ts +20 -1
- package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/list.js +59 -40
- package/dist/base-plugin/viewtemplates/list.js.map +1 -1
- package/dist/base-plugin/viewtemplates/listshowlist.d.ts +14 -1
- package/dist/base-plugin/viewtemplates/listshowlist.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/listshowlist.js +15 -4
- package/dist/base-plugin/viewtemplates/listshowlist.js.map +1 -1
- package/dist/base-plugin/viewtemplates/room.d.ts +41 -1
- package/dist/base-plugin/viewtemplates/room.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/room.js +107 -80
- package/dist/base-plugin/viewtemplates/room.js.map +1 -1
- package/dist/base-plugin/viewtemplates/show.d.ts +37 -4
- package/dist/base-plugin/viewtemplates/show.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/show.js +111 -74
- package/dist/base-plugin/viewtemplates/show.js.map +1 -1
- package/dist/base-plugin/viewtemplates/viewable_fields.d.ts +26 -7
- package/dist/base-plugin/viewtemplates/viewable_fields.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/viewable_fields.js +59 -47
- package/dist/base-plugin/viewtemplates/viewable_fields.js.map +1 -1
- package/dist/coverage/coverage-final.json +46 -0
- package/dist/coverage/lcov-report/block-navigation.d.ts +2 -0
- package/dist/coverage/lcov-report/block-navigation.d.ts.map +1 -0
- package/dist/coverage/lcov-report/block-navigation.js +71 -0
- package/dist/coverage/lcov-report/block-navigation.js.map +1 -0
- package/dist/coverage/lcov-report/prettify.d.ts +1 -0
- package/dist/coverage/lcov-report/prettify.d.ts.map +1 -0
- package/dist/coverage/lcov-report/prettify.js +478 -0
- package/dist/coverage/lcov-report/prettify.js.map +1 -0
- package/dist/coverage/lcov-report/sorter.d.ts +2 -0
- package/dist/coverage/lcov-report/sorter.d.ts.map +1 -0
- package/dist/coverage/lcov-report/sorter.js +164 -0
- package/dist/coverage/lcov-report/sorter.js.map +1 -0
- package/dist/db/connect.d.ts.map +1 -1
- package/dist/db/connect.js +8 -1
- package/dist/db/connect.js.map +1 -1
- package/dist/db/connect_mobile.d.ts +9 -0
- package/dist/db/connect_mobile.d.ts.map +1 -0
- package/dist/db/connect_mobile.js +15 -0
- package/dist/db/connect_mobile.js.map +1 -0
- package/dist/db/fixtures.d.ts.map +1 -1
- package/dist/db/fixtures.js +2 -1
- package/dist/db/fixtures.js.map +1 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +16 -2
- package/dist/db/index.js.map +1 -1
- package/dist/db/state.d.ts +207 -52
- package/dist/db/state.d.ts.map +1 -1
- package/dist/db/state.js +87 -84
- package/dist/db/state.js.map +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -2
- package/dist/index.js.map +1 -1
- package/dist/migrate.d.ts.map +1 -1
- package/dist/migrate.js +54 -40
- package/dist/migrate.js.map +1 -1
- package/dist/mobile-mocks/db/postgres.d.ts +1 -0
- package/dist/mobile-mocks/db/postgres.d.ts.map +1 -0
- package/dist/mobile-mocks/db/postgres.js +2 -0
- package/dist/mobile-mocks/db/postgres.js.map +1 -0
- package/dist/mobile-mocks/db/sqlite.d.ts +1 -0
- package/dist/mobile-mocks/db/sqlite.d.ts.map +1 -0
- package/dist/mobile-mocks/db/sqlite.js +2 -0
- package/dist/mobile-mocks/db/sqlite.js.map +1 -0
- package/dist/mobile-mocks/models/email.d.ts +1 -0
- package/dist/mobile-mocks/models/email.d.ts.map +1 -0
- package/dist/mobile-mocks/models/email.js +2 -0
- package/dist/mobile-mocks/models/email.js.map +1 -0
- package/dist/mobile-mocks/node/async_hooks.d.ts +4 -0
- package/dist/mobile-mocks/node/async_hooks.d.ts.map +1 -0
- package/dist/mobile-mocks/node/async_hooks.js +8 -0
- package/dist/mobile-mocks/node/async_hooks.js.map +1 -0
- package/dist/mobile-mocks/node/child_process.d.ts +3 -0
- package/dist/mobile-mocks/node/child_process.d.ts.map +1 -0
- package/dist/mobile-mocks/node/child_process.js +6 -0
- package/dist/mobile-mocks/node/child_process.js.map +1 -0
- package/dist/mobile-mocks/node/fs/promises.d.ts +6 -0
- package/dist/mobile-mocks/node/fs/promises.d.ts.map +1 -0
- package/dist/mobile-mocks/node/fs/promises.js +16 -0
- package/dist/mobile-mocks/node/fs/promises.js.map +1 -0
- package/dist/mobile-mocks/node/fs.d.ts +4 -0
- package/dist/mobile-mocks/node/fs.d.ts.map +1 -0
- package/dist/mobile-mocks/node/fs.js +15 -0
- package/dist/mobile-mocks/node/fs.js.map +1 -0
- package/dist/mobile-mocks/node/latest-version.d.ts +2 -0
- package/dist/mobile-mocks/node/latest-version.d.ts.map +1 -0
- package/dist/mobile-mocks/node/latest-version.js +7 -0
- package/dist/mobile-mocks/node/latest-version.js.map +1 -0
- package/dist/mobile-mocks/node/v8.d.ts +3 -0
- package/dist/mobile-mocks/node/v8.d.ts.map +1 -0
- package/dist/mobile-mocks/node/v8.js +8 -0
- package/dist/mobile-mocks/node/v8.js.map +1 -0
- package/dist/mobile-mocks/npm/env-paths.d.ts +6 -0
- package/dist/mobile-mocks/npm/env-paths.d.ts.map +1 -0
- package/dist/mobile-mocks/npm/env-paths.js +9 -0
- package/dist/mobile-mocks/npm/env-paths.js.map +1 -0
- package/dist/mobile-mocks/saltcorn/plugin-testing.d.ts +1 -0
- package/dist/mobile-mocks/saltcorn/plugin-testing.d.ts.map +1 -0
- package/dist/mobile-mocks/saltcorn/plugin-testing.js +2 -0
- package/dist/mobile-mocks/saltcorn/plugin-testing.js.map +1 -0
- package/dist/models/config.d.ts +9 -10
- package/dist/models/config.d.ts.map +1 -1
- package/dist/models/config.js +8 -7
- package/dist/models/config.js.map +1 -1
- package/dist/models/discovery.d.ts.map +1 -1
- package/dist/models/discovery.js +5 -1
- package/dist/models/discovery.js.map +1 -1
- package/dist/models/field.d.ts +5 -4
- package/dist/models/field.d.ts.map +1 -1
- package/dist/models/field.js +22 -19
- package/dist/models/field.js.map +1 -1
- package/dist/models/fieldrepeat.d.ts +5 -0
- package/dist/models/fieldrepeat.d.ts.map +1 -1
- package/dist/models/fieldrepeat.js +2 -0
- package/dist/models/fieldrepeat.js.map +1 -1
- package/dist/models/form.d.ts +2 -0
- package/dist/models/form.d.ts.map +1 -1
- package/dist/models/form.js +1 -0
- package/dist/models/form.js.map +1 -1
- package/dist/models/index.d.ts +2 -13
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/layout.d.ts.map +1 -1
- package/dist/models/layout.js +12 -2
- package/dist/models/layout.js.map +1 -1
- package/dist/models/page.d.ts +1 -1
- package/dist/models/page.d.ts.map +1 -1
- package/dist/models/page.js +10 -9
- package/dist/models/page.js.map +1 -1
- package/dist/models/scheduler.d.ts.map +1 -1
- package/dist/models/scheduler.js +3 -1
- package/dist/models/scheduler.js.map +1 -1
- package/dist/models/table.d.ts +2 -1
- package/dist/models/table.d.ts.map +1 -1
- package/dist/models/table.js +21 -10
- package/dist/models/table.js.map +1 -1
- package/dist/models/trigger.d.ts +3 -3
- package/dist/models/trigger.d.ts.map +1 -1
- package/dist/models/trigger.js +4 -5
- package/dist/models/trigger.js.map +1 -1
- package/dist/models/user.d.ts +1 -1
- package/dist/models/user.d.ts.map +1 -1
- package/dist/models/user.js +7 -15
- package/dist/models/user.js.map +1 -1
- package/dist/models/view.d.ts +16 -12
- package/dist/models/view.d.ts.map +1 -1
- package/dist/models/view.js +63 -15
- package/dist/models/view.js.map +1 -1
- package/dist/package.json +127 -0
- package/dist/plugin-helper.d.ts +17 -13
- package/dist/plugin-helper.d.ts.map +1 -1
- package/dist/plugin-helper.js +72 -60
- package/dist/plugin-helper.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 +250 -0
- package/dist/tests/actions.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 +32 -0
- package/dist/tests/db.test.js.map +1 -0
- package/dist/tests/exact_views.test.js +274 -19
- package/dist/tests/exact_views.test.js.map +1 -1
- package/dist/tests/models.test.js +46 -1
- package/dist/tests/models.test.js.map +1 -1
- package/dist/tests/remote_query_helper.d.ts +341 -0
- package/dist/tests/remote_query_helper.d.ts.map +1 -0
- package/dist/tests/remote_query_helper.js +446 -0
- package/dist/tests/remote_query_helper.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 +78 -0
- package/dist/tests/state.test.js.map +1 -0
- package/dist/tests/view.test.js +29 -0
- package/dist/tests/view.test.js.map +1 -1
- package/dist/tsconfig.json +24 -0
- package/dist/tsconfig.ref.json +9 -0
- package/dist/tsconfig.ref.tsbuildinfo +1 -1
- package/dist/utils.d.ts +2 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +12 -2
- package/dist/utils.js.map +1 -1
- package/dist/webpack.config.d.ts +57 -0
- package/dist/webpack.config.d.ts.map +1 -0
- package/dist/webpack.config.js +75 -0
- package/dist/webpack.config.js.map +1 -0
- package/package.json +38 -13
- package/CHANGELOG.md +0 -8
|
@@ -12,27 +12,40 @@ const { getState } = require("../db/state");
|
|
|
12
12
|
const page_1 = __importDefault(require("../models/page"));
|
|
13
13
|
const globals_1 = require("@jest/globals");
|
|
14
14
|
const assertions_1 = require("./assertions");
|
|
15
|
+
const remote_query_helper_1 = require("./remote_query_helper");
|
|
16
|
+
let remoteQueries = false;
|
|
15
17
|
getState().registerPlugin("base", require("../base-plugin"));
|
|
16
18
|
(0, globals_1.afterAll)(db_1.default.close);
|
|
17
19
|
(0, globals_1.beforeAll)(async () => {
|
|
18
20
|
await require("../db/reset_schema")();
|
|
19
21
|
await require("../db/fixtures")();
|
|
22
|
+
if (process.env.REMOTE_QUERIES === "true") {
|
|
23
|
+
getState().setConfig("base_url", "http://localhost:3000");
|
|
24
|
+
remoteQueries = true;
|
|
25
|
+
(0, remote_query_helper_1.prepareQueryEnviroment)();
|
|
26
|
+
}
|
|
20
27
|
});
|
|
21
28
|
const mkTester = ({ name, viewtemplate, set_id, table, }) => async ({ response, id, ...rest }) => {
|
|
22
29
|
const tbl = await table_1.default.findOne({ name: rest.table || table });
|
|
23
30
|
(0, assertions_1.assertIsSet)(tbl);
|
|
24
|
-
const
|
|
31
|
+
const viewCfg = {
|
|
25
32
|
table_id: tbl.id,
|
|
26
|
-
name,
|
|
33
|
+
name: rest.name || name,
|
|
27
34
|
viewtemplate,
|
|
28
35
|
configuration: rest,
|
|
29
36
|
min_role: 10,
|
|
30
|
-
}
|
|
31
|
-
const
|
|
32
|
-
if (
|
|
33
|
-
|
|
37
|
+
};
|
|
38
|
+
const v = await view_1.default.create(viewCfg);
|
|
39
|
+
if (remoteQueries)
|
|
40
|
+
await (0, remote_query_helper_1.sendViewToServer)(viewCfg);
|
|
41
|
+
const res = await v.run(id ? { id } : set_id ? { id: set_id } : {}, mockReqRes, remoteQueries);
|
|
42
|
+
//if (res !== response) console.log(res);
|
|
34
43
|
(0, globals_1.expect)(res).toBe(response);
|
|
35
|
-
|
|
44
|
+
if (!rest.noDelete) {
|
|
45
|
+
await v.delete();
|
|
46
|
+
if (remoteQueries)
|
|
47
|
+
await (0, remote_query_helper_1.deleteViewFromServer)(v.id);
|
|
48
|
+
}
|
|
36
49
|
};
|
|
37
50
|
const test_page = async ({ response, ...rest }) => {
|
|
38
51
|
const p = await page_1.default.create(rest);
|
|
@@ -176,7 +189,9 @@ const test_filter = mkTester({
|
|
|
176
189
|
in_modal: true,
|
|
177
190
|
},
|
|
178
191
|
],
|
|
179
|
-
response:
|
|
192
|
+
response: !remoteQueries
|
|
193
|
+
? `<div class="row w-100"><div class="col-6"><div class="card mt-4 shadow"><div class="card-body"><button class="btn btn-link" type="button" onClick="ajax_modal('/view/authorshow?id=1')">foo it</button></div></div></div><div class="col-6"><div class="text-start" style="min-height: 100px;border: 1px solid black; background-color: #a9a7a7; "><a href="https://countto.com/967">Herman Melville</a></div></div></div>`
|
|
194
|
+
: `<div class="row w-100"><div class="col-6"><div class="card mt-4 shadow"><div class="card-body"><button class="btn btn-link" type="button" onClick="mobile_modal('/view/authorshow?id=1')">foo it</button></div></div></div><div class="col-6"><div class="text-start" style="min-height: 100px;border: 1px solid black; background-color: #a9a7a7; "><a href="https://countto.com/967">Herman Melville</a></div></div></div>`,
|
|
180
195
|
});
|
|
181
196
|
await test_show({
|
|
182
197
|
layout: {
|
|
@@ -412,6 +427,198 @@ const test_filter = mkTester({
|
|
|
412
427
|
<button type="submit" class=" btn btn-primary ">Delete</button></form></div>`,
|
|
413
428
|
});
|
|
414
429
|
});
|
|
430
|
+
(0, globals_1.it)("should render double join embedded exactly", async () => {
|
|
431
|
+
await test_list({
|
|
432
|
+
name: "ListReadings",
|
|
433
|
+
noDelete: true,
|
|
434
|
+
table: "readings",
|
|
435
|
+
columns: [
|
|
436
|
+
{
|
|
437
|
+
type: "Field",
|
|
438
|
+
fieldview: "showDay",
|
|
439
|
+
field_name: "date",
|
|
440
|
+
state_field: "on",
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
type: "Field",
|
|
444
|
+
fieldview: "show",
|
|
445
|
+
field_name: "normalised",
|
|
446
|
+
state_field: "on",
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
type: "JoinField",
|
|
450
|
+
join_field: "patient_id.name",
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
type: "Field",
|
|
454
|
+
fieldview: "show",
|
|
455
|
+
field_name: "temperature",
|
|
456
|
+
state_field: "on",
|
|
457
|
+
},
|
|
458
|
+
],
|
|
459
|
+
response: !remoteQueries
|
|
460
|
+
? `<div class="table-responsive"><table class="table table-sm"><thead><tr><th><a href="javascript:sortby('date', false)">Date</a></th><th><a href="javascript:sortby('normalised', false)">Normalised</a></th><th>name</th><th style="text-align: right"><a href="javascript:sortby('temperature', false)">Temperature</a></th></tr></thead><tbody><tr><td><time datetime="2019-11-11T10:34:00.000Z" locale-date-options="%7B%7D">11/11/2019</time></td><td><i class="fas fa-lg fa-check-circle text-success"></i></td><td>Kirk Douglas</td><td style="text-align:right">37</td></tr><tr><td></td><td><i class="fas fa-lg fa-times-circle text-danger"></i></td><td>Kirk Douglas</td><td style="text-align:right">39</td></tr><tr><td></td><td><i class="fas fa-lg fa-times-circle text-danger"></i></td><td>Michael Douglas</td><td style="text-align:right">37</td></tr></tbody></table></div>`
|
|
461
|
+
: `<div class="table-responsive"><table class="table table-sm"><thead><tr><th><a href="javascript:sortby('date', false, 'ListReadings')">Date</a></th><th><a href="javascript:sortby('normalised', false, 'ListReadings')">Normalised</a></th><th>name</th><th style="text-align: right"><a href="javascript:sortby('temperature', false, 'ListReadings')">Temperature</a></th></tr></thead><tbody><tr><td><time datetime="2019-11-11T10:34:00.000Z" locale-date-options="%7B%7D">11/11/2019</time></td><td><i class="fas fa-lg fa-check-circle text-success"></i></td><td>Kirk Douglas</td><td style="text-align:right">37</td></tr><tr><td></td><td><i class="fas fa-lg fa-times-circle text-danger"></i></td><td>Kirk Douglas</td><td style="text-align:right">39</td></tr><tr><td></td><td><i class="fas fa-lg fa-times-circle text-danger"></i></td><td>Michael Douglas</td><td style="text-align:right">37</td></tr></tbody></table></div>`,
|
|
462
|
+
});
|
|
463
|
+
await test_show({
|
|
464
|
+
id: 1,
|
|
465
|
+
layout: {
|
|
466
|
+
above: [
|
|
467
|
+
{
|
|
468
|
+
style: {},
|
|
469
|
+
widths: [2, 10],
|
|
470
|
+
besides: [
|
|
471
|
+
{
|
|
472
|
+
above: [
|
|
473
|
+
null,
|
|
474
|
+
{
|
|
475
|
+
font: "",
|
|
476
|
+
type: "blank",
|
|
477
|
+
block: false,
|
|
478
|
+
style: {},
|
|
479
|
+
inline: false,
|
|
480
|
+
contents: "Author",
|
|
481
|
+
labelFor: "",
|
|
482
|
+
isFormula: {},
|
|
483
|
+
textStyle: "",
|
|
484
|
+
},
|
|
485
|
+
],
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
above: [
|
|
489
|
+
null,
|
|
490
|
+
{
|
|
491
|
+
type: "field",
|
|
492
|
+
block: false,
|
|
493
|
+
fieldview: "as_text",
|
|
494
|
+
textStyle: "",
|
|
495
|
+
field_name: "author",
|
|
496
|
+
configuration: {},
|
|
497
|
+
},
|
|
498
|
+
],
|
|
499
|
+
},
|
|
500
|
+
],
|
|
501
|
+
breakpoints: ["", ""],
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
type: "line_break",
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
style: {},
|
|
508
|
+
widths: [2, 10],
|
|
509
|
+
besides: [
|
|
510
|
+
{
|
|
511
|
+
above: [
|
|
512
|
+
null,
|
|
513
|
+
{
|
|
514
|
+
font: "",
|
|
515
|
+
type: "blank",
|
|
516
|
+
block: false,
|
|
517
|
+
style: {},
|
|
518
|
+
inline: false,
|
|
519
|
+
contents: "Pages",
|
|
520
|
+
labelFor: "",
|
|
521
|
+
isFormula: {},
|
|
522
|
+
textStyle: "",
|
|
523
|
+
},
|
|
524
|
+
],
|
|
525
|
+
},
|
|
526
|
+
{
|
|
527
|
+
above: [
|
|
528
|
+
null,
|
|
529
|
+
{
|
|
530
|
+
type: "field",
|
|
531
|
+
block: false,
|
|
532
|
+
fieldview: "show",
|
|
533
|
+
textStyle: "",
|
|
534
|
+
field_name: "pages",
|
|
535
|
+
configuration: {},
|
|
536
|
+
},
|
|
537
|
+
],
|
|
538
|
+
},
|
|
539
|
+
],
|
|
540
|
+
breakpoints: ["", ""],
|
|
541
|
+
},
|
|
542
|
+
{
|
|
543
|
+
type: "line_break",
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
style: {},
|
|
547
|
+
widths: [2, 10],
|
|
548
|
+
besides: [
|
|
549
|
+
{
|
|
550
|
+
above: [
|
|
551
|
+
null,
|
|
552
|
+
{
|
|
553
|
+
font: "",
|
|
554
|
+
type: "blank",
|
|
555
|
+
block: false,
|
|
556
|
+
style: {},
|
|
557
|
+
inline: false,
|
|
558
|
+
contents: "Publisher",
|
|
559
|
+
labelFor: "",
|
|
560
|
+
isFormula: {},
|
|
561
|
+
textStyle: "",
|
|
562
|
+
},
|
|
563
|
+
],
|
|
564
|
+
},
|
|
565
|
+
{
|
|
566
|
+
above: [
|
|
567
|
+
null,
|
|
568
|
+
{
|
|
569
|
+
type: "join_field",
|
|
570
|
+
block: false,
|
|
571
|
+
textStyle: "",
|
|
572
|
+
join_field: "publisher.name",
|
|
573
|
+
configuration: {},
|
|
574
|
+
},
|
|
575
|
+
],
|
|
576
|
+
},
|
|
577
|
+
],
|
|
578
|
+
breakpoints: ["", ""],
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
type: "line_break",
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
name: "46d4bc",
|
|
585
|
+
type: "view",
|
|
586
|
+
view: "ChildList:ListReadings.patients.favbook.readings.patient_id",
|
|
587
|
+
state: "shared",
|
|
588
|
+
configuration: {},
|
|
589
|
+
},
|
|
590
|
+
],
|
|
591
|
+
},
|
|
592
|
+
columns: [
|
|
593
|
+
{
|
|
594
|
+
type: "Field",
|
|
595
|
+
block: false,
|
|
596
|
+
fieldview: "as_text",
|
|
597
|
+
textStyle: "",
|
|
598
|
+
field_name: "author",
|
|
599
|
+
configuration: {},
|
|
600
|
+
},
|
|
601
|
+
{
|
|
602
|
+
type: "Field",
|
|
603
|
+
block: false,
|
|
604
|
+
fieldview: "show",
|
|
605
|
+
textStyle: "",
|
|
606
|
+
field_name: "pages",
|
|
607
|
+
configuration: {},
|
|
608
|
+
},
|
|
609
|
+
{
|
|
610
|
+
type: "JoinField",
|
|
611
|
+
block: false,
|
|
612
|
+
textStyle: "",
|
|
613
|
+
join_field: "publisher.name",
|
|
614
|
+
configuration: {},
|
|
615
|
+
},
|
|
616
|
+
],
|
|
617
|
+
response: !remoteQueries
|
|
618
|
+
? `<div class="row w-100"><div class="col-2">Author</div><div class="col-10">Herman Melville</div></div><br /><div class="row w-100"><div class="col-2">Pages</div><div class="col-10">967</div></div><br /><div class="row w-100"><div class="col-2">Publisher</div><div class="col-10"></div></div><br /><div class="table-responsive"><table class="table table-sm"><thead><tr><th><a href="javascript:sortby('date', false)">Date</a></th><th><a href="javascript:sortby('normalised', false)">Normalised</a></th><th>name</th><th style="text-align: right"><a href="javascript:sortby('temperature', false)">Temperature</a></th></tr></thead><tbody><tr><td><time datetime="2019-11-11T10:34:00.000Z" locale-date-options="%7B%7D">11/11/2019</time></td><td><i class="fas fa-lg fa-check-circle text-success"></i></td><td>Kirk Douglas</td><td style="text-align:right">37</td></tr><tr><td></td><td><i class="fas fa-lg fa-times-circle text-danger"></i></td><td>Kirk Douglas</td><td style="text-align:right">39</td></tr></tbody></table></div>`
|
|
619
|
+
: `<div class="row w-100"><div class="col-2">Author</div><div class="col-10">Herman Melville</div></div><br /><div class="row w-100"><div class="col-2">Pages</div><div class="col-10">967</div></div><br /><div class="row w-100"><div class="col-2">Publisher</div><div class="col-10"></div></div><br /><div class="table-responsive"><table class="table table-sm"><thead><tr><th><a href="javascript:sortby('date', false, 'ListReadings')">Date</a></th><th><a href="javascript:sortby('normalised', false, 'ListReadings')">Normalised</a></th><th>name</th><th style="text-align: right"><a href="javascript:sortby('temperature', false, 'ListReadings')">Temperature</a></th></tr></thead><tbody><tr><td><time datetime="2019-11-11T10:34:00.000Z" locale-date-options="%7B%7D">11/11/2019</time></td><td><i class="fas fa-lg fa-check-circle text-success"></i></td><td>Kirk Douglas</td><td style="text-align:right">37</td></tr><tr><td></td><td><i class="fas fa-lg fa-times-circle text-danger"></i></td><td>Kirk Douglas</td><td style="text-align:right">39</td></tr></tbody></table></div>`,
|
|
620
|
+
});
|
|
621
|
+
});
|
|
415
622
|
});
|
|
416
623
|
(0, globals_1.describe)("Edit view", () => {
|
|
417
624
|
(0, globals_1.it)("should render exactly", async () => {
|
|
@@ -496,13 +703,45 @@ const test_filter = mkTester({
|
|
|
496
703
|
await test_edit({
|
|
497
704
|
layout,
|
|
498
705
|
columns,
|
|
499
|
-
response:
|
|
706
|
+
response: !remoteQueries
|
|
707
|
+
? `<form action="/view/testedit" class="form-namespace " method="post"><input type="hidden" name="_csrf" value=""><div class="row w-100"><div class="col-2">Name</div><div class="col-10"><input type="text" class="form-control " data-fieldname="name" name="name" id="inputname"></div></div><br /><div class="row w-100"><div class="col-2">Favourite book</div><div class="col-10"><select class="form-control form-select " data-fieldname="favbook" name="favbook" id="inputfavbook"><option value=""></option><option value="1">Herman Melville</option><option value="2">Leo Tolstoy</option></select></div></div><br /><div class="row w-100"><div class="col-2">Parent</div><div class="col-10"><select class="form-control form-select " data-fieldname="parent" name="parent" id="inputparent"><option value=""></option><option value="1">Kirk Douglas</option><option value="2">Michael Douglas</option></select></div></div><br /><button type="submit" class="btn btn-primary ">Save</button></form>`
|
|
708
|
+
: `<form action="javascript:void(0)" onsubmit="javascript:formSubmit(this, '/view/', 'testedit')" class="form-namespace " method="post"><input type="hidden" name="_csrf" value="false"><div class="row w-100"><div class="col-2">Name</div><div class="col-10"><input type="text" class="form-control " data-fieldname="name" name="name" id="inputname"></div></div><br /><div class="row w-100"><div class="col-2">Favourite book</div><div class="col-10"><select class="form-control form-select " data-fieldname="favbook" name="favbook" id="inputfavbook"><option value=""></option><option value="1">Herman Melville</option><option value="2">Leo Tolstoy</option></select></div></div><br /><div class="row w-100"><div class="col-2">Parent</div><div class="col-10"><select class="form-control form-select " data-fieldname="parent" name="parent" id="inputparent"><option value=""></option><option value="1">Kirk Douglas</option><option value="2">Michael Douglas</option></select></div></div><br /><button type="submit" class="btn btn-primary ">Save</button></form>`,
|
|
500
709
|
});
|
|
501
710
|
await test_edit({
|
|
502
711
|
id: 1,
|
|
503
712
|
layout,
|
|
504
713
|
columns,
|
|
505
|
-
response:
|
|
714
|
+
response: !remoteQueries
|
|
715
|
+
? `<form action="/view/testedit" class="form-namespace " method="post"><input type="hidden" name="_csrf" value=""><input type="hidden" class="form-control " name="id" value="1"><div class="row w-100"><div class="col-2">Name</div><div class="col-10"><input type="text" class="form-control " data-fieldname="name" name="name" id="inputname" value="Kirk Douglas"></div></div><br /><div class="row w-100"><div class="col-2">Favourite book</div><div class="col-10"><select class="form-control form-select " data-fieldname="favbook" name="favbook" id="inputfavbook"><option value=""></option><option value="1" selected>Herman Melville</option><option value="2">Leo Tolstoy</option></select></div></div><br /><div class="row w-100"><div class="col-2">Parent</div><div class="col-10"><select class="form-control form-select " data-fieldname="parent" name="parent" id="inputparent"><option value=""></option><option value="1">Kirk Douglas</option><option value="2">Michael Douglas</option></select></div></div><br /><button type="submit" class="btn btn-primary ">Save</button></form>`
|
|
716
|
+
: `<form action="javascript:void(0)" onsubmit="javascript:formSubmit(this, '/view/', 'testedit')" class="form-namespace " method="post"><input type="hidden" name="_csrf" value="false"><input type="hidden" class="form-control " name="id" value="1"><div class="row w-100"><div class="col-2">Name</div><div class="col-10"><input type="text" class="form-control " data-fieldname="name" name="name" id="inputname" value="Kirk Douglas"></div></div><br /><div class="row w-100"><div class="col-2">Favourite book</div><div class="col-10"><select class="form-control form-select " data-fieldname="favbook" name="favbook" id="inputfavbook"><option value=""></option><option value="1" selected>Herman Melville</option><option value="2">Leo Tolstoy</option></select></div></div><br /><div class="row w-100"><div class="col-2">Parent</div><div class="col-10"><select class="form-control form-select " data-fieldname="parent" name="parent" id="inputparent"><option value=""></option><option value="1">Kirk Douglas</option><option value="2">Michael Douglas</option></select></div></div><br /><button type="submit" class="btn btn-primary ">Save</button></form>`,
|
|
717
|
+
});
|
|
718
|
+
});
|
|
719
|
+
(0, globals_1.it)("should render edit-in-edit", async () => {
|
|
720
|
+
await test_edit({
|
|
721
|
+
name: "innerReads",
|
|
722
|
+
...remote_query_helper_1.renderEditInEditConfig.innerEdit,
|
|
723
|
+
noDelete: true,
|
|
724
|
+
table: "readings",
|
|
725
|
+
response: !remoteQueries
|
|
726
|
+
? `<form action="/view/innerReads" class="form-namespace " method="post"><input type="hidden" name="_csrf" value=""><div class="row w-100"><div class="col-2"><label for="inputdate">Date</label></div><div class="col-10"><input type="text" class="form-control " data-fieldname="date" name="date" id="inputdate"></div></div><br /><div class="row w-100"><div class="col-2"><label for="inputnormalised">Normalised</label></div><div class="col-10"><input class="me-2 mt-1 " data-fieldname="normalised" type="checkbox" name="normalised" id="inputnormalised"></div></div><br /><div class="row w-100"><div class="col-2"><label for="inputtemperature">Temperature</label></div><div class="col-10"><input type="number" class="form-control " data-fieldname="temperature" name="temperature" id="inputtemperature" step="1"></div></div></form>`
|
|
727
|
+
: `<form action="javascript:void(0)" onsubmit="javascript:formSubmit(this, '/view/', 'innerReads')" class="form-namespace " method="post"><input type="hidden" name="_csrf" value="false"><div class="row w-100"><div class="col-2"><label for="inputdate">Date</label></div><div class="col-10"><input type="text" class="form-control " data-fieldname="date" name="date" id="inputdate"></div></div><br /><div class="row w-100"><div class="col-2"><label for="inputnormalised">Normalised</label></div><div class="col-10"><input class="me-2 mt-1 " data-fieldname="normalised" type="checkbox" name="normalised" id="inputnormalised"></div></div><br /><div class="row w-100"><div class="col-2"><label for="inputtemperature">Temperature</label></div><div class="col-10"><input type="number" class="form-control " data-fieldname="temperature" name="temperature" id="inputtemperature" step="1"></div></div></form>`,
|
|
728
|
+
});
|
|
729
|
+
await test_edit({
|
|
730
|
+
name: "PatientEditWithReads",
|
|
731
|
+
...remote_query_helper_1.renderEditInEditConfig.outerEdit,
|
|
732
|
+
table: "patients",
|
|
733
|
+
response: !remoteQueries
|
|
734
|
+
? `<form action="/view/PatientEditWithReads" class="form-namespace " method="post"><input type="hidden" name="_csrf" value=""><div class="row w-100"><div class="col-2"><label for="inputfavbook">Favourite book</label></div><div class="col-10"><select class="form-control form-select " data-fieldname="favbook" name="favbook" id="inputfavbook"><option value=""></option><option value="1">Herman Melville</option><option value="2">Leo Tolstoy</option></select></div></div><br /><span style="margin-bottom:1.5rem"><div class="row w-100" style="margin-bottom:1.5rem"><div class="col-2"><label for="inputname">Name</label></div><div class="col-10"><input type="text" class="form-control " data-fieldname="name" name="name" id="inputname"></div></div></span><div class="row w-100"><div class="col-2"><label for="inputparent">Parent</label></div><div class="col-10"><select class="form-control form-select " data-fieldname="parent" name="parent" id="inputparent"><option value=""></option><option value="1">Kirk Douglas</option><option value="2">Michael Douglas</option></select></div></div><br /><div><div class="repeats-patient_id"><div class="form-repeat form-namespace repeat-patient_id"><div class="float-end"><span onclick="rep_up(this)"><i class="fa fa-arrow-up pull-right"></i></span> <span onclick="rep_del(this)"><i class="fa fa-times pull-right"></i></span> <span onclick="rep_down(this)"><i class="fa fa-arrow-down pull-right"></i></span></div><div class="row w-100"><div class="col-2"><label for="inputdate">Date</label></div><div class="col-10"><input type="text" class="form-control " data-fieldname="date" name="date_0" id="inputdate_0"></div></div><br /><div class="row w-100"><div class="col-2"><label for="inputnormalised">Normalised</label></div><div class="col-10"><input class="me-2 mt-1 " data-fieldname="normalised" type="checkbox" name="normalised_0" id="inputnormalised_0"></div></div><br /><div class="row w-100"><div class="col-2"><label for="inputtemperature">Temperature</label></div><div class="col-10"><input type="number" class="form-control " data-fieldname="temperature" name="temperature_0" id="inputtemperature_0" step="1"></div></div></div></div><a class="btn btn-sm btn-outline-primary mb-3" href="javascript:add_repeater('patient_id')" title="Add"><i class="fas fa-plus"></i></a></div><button type="submit" class="btn btn-primary ">Save</button><button onClick="$(this).closest('form').trigger('reset')" type="button" class="btn btn-primary ">Reset</button></form>`
|
|
735
|
+
: `<form action="javascript:void(0)" onsubmit="javascript:formSubmit(this, '/view/', 'PatientEditWithReads')" class="form-namespace " method="post"><input type="hidden" name="_csrf" value="false"><div class="row w-100"><div class="col-2"><label for="inputfavbook">Favourite book</label></div><div class="col-10"><select class="form-control form-select " data-fieldname="favbook" name="favbook" id="inputfavbook"><option value=""></option><option value="1">Herman Melville</option><option value="2">Leo Tolstoy</option></select></div></div><br /><span style="margin-bottom:1.5rem"><div class="row w-100" style="margin-bottom:1.5rem"><div class="col-2"><label for="inputname">Name</label></div><div class="col-10"><input type="text" class="form-control " data-fieldname="name" name="name" id="inputname"></div></div></span><div class="row w-100"><div class="col-2"><label for="inputparent">Parent</label></div><div class="col-10"><select class="form-control form-select " data-fieldname="parent" name="parent" id="inputparent"><option value=""></option><option value="1">Kirk Douglas</option><option value="2">Michael Douglas</option></select></div></div><br /><div><div class="repeats-patient_id"><div class="form-repeat form-namespace repeat-patient_id"><div class="float-end"><span onclick="rep_up(this)"><i class="fa fa-arrow-up pull-right"></i></span> <span onclick="rep_del(this)"><i class="fa fa-times pull-right"></i></span> <span onclick="rep_down(this)"><i class="fa fa-arrow-down pull-right"></i></span></div><div class="row w-100"><div class="col-2"><label for="inputdate">Date</label></div><div class="col-10"><input type="text" class="form-control " data-fieldname="date" name="date_0" id="inputdate_0"></div></div><br /><div class="row w-100"><div class="col-2"><label for="inputnormalised">Normalised</label></div><div class="col-10"><input class="me-2 mt-1 " data-fieldname="normalised" type="checkbox" name="normalised_0" id="inputnormalised_0"></div></div><br /><div class="row w-100"><div class="col-2"><label for="inputtemperature">Temperature</label></div><div class="col-10"><input type="number" class="form-control " data-fieldname="temperature" name="temperature_0" id="inputtemperature_0" step="1"></div></div></div></div><a class="btn btn-sm btn-outline-primary mb-3" href="javascript:add_repeater('patient_id')" title="Add"><i class="fas fa-plus"></i></a></div><button type="submit" class="btn btn-primary ">Save</button><button onClick="$(this).closest('form').trigger('reset')" type="button" class="btn btn-primary ">Reset</button></form>`,
|
|
736
|
+
});
|
|
737
|
+
await test_edit({
|
|
738
|
+
name: "PatientEditWithReads",
|
|
739
|
+
id: 1,
|
|
740
|
+
...remote_query_helper_1.renderEditInEditConfig.outerEdit,
|
|
741
|
+
table: "patients",
|
|
742
|
+
response: !remoteQueries
|
|
743
|
+
? `<form action="/view/PatientEditWithReads" class="form-namespace " method="post"><input type="hidden" name="_csrf" value=""><input type="hidden" class="form-control " name="id" value="1"><div class="row w-100"><div class="col-2"><label for="inputfavbook">Favourite book</label></div><div class="col-10"><select class="form-control form-select " data-fieldname="favbook" name="favbook" id="inputfavbook"><option value=""></option><option value="1" selected>Herman Melville</option><option value="2">Leo Tolstoy</option></select></div></div><br /><span style="margin-bottom:1.5rem"><div class="row w-100" style="margin-bottom:1.5rem"><div class="col-2"><label for="inputname">Name</label></div><div class="col-10"><input type="text" class="form-control " data-fieldname="name" name="name" id="inputname" value="Kirk Douglas"></div></div></span><div class="row w-100"><div class="col-2"><label for="inputparent">Parent</label></div><div class="col-10"><select class="form-control form-select " data-fieldname="parent" name="parent" id="inputparent"><option value=""></option><option value="1">Kirk Douglas</option><option value="2">Michael Douglas</option></select></div></div><br /><div><div class="repeats-patient_id"><div class="form-repeat form-namespace repeat-patient_id"><div class="float-end"><span onclick="rep_up(this)"><i class="fa fa-arrow-up pull-right"></i></span> <span onclick="rep_del(this)"><i class="fa fa-times pull-right"></i></span> <span onclick="rep_down(this)"><i class="fa fa-arrow-down pull-right"></i></span></div><div class="row w-100"><div class="col-2"><label for="inputdate">Date</label></div><div class="col-10"><input type="text" class="form-control " data-fieldname="date" name="date_0" id="inputdate_0" value="11/11/2019"></div></div><br /><div class="row w-100"><div class="col-2"><label for="inputnormalised">Normalised</label></div><div class="col-10"><input class="me-2 mt-1 " data-fieldname="normalised" type="checkbox" name="normalised_0" id="inputnormalised_0" checked></div></div><br /><div class="row w-100"><div class="col-2"><label for="inputtemperature">Temperature</label></div><div class="col-10"><input type="number" class="form-control " data-fieldname="temperature" name="temperature_0" id="inputtemperature_0" step="1" value="37"></div></div><input type="hidden" class="form-control " name="id_0" value="1"></div><div class="form-repeat form-namespace repeat-patient_id"><div class="float-end"><span onclick="rep_up(this)"><i class="fa fa-arrow-up pull-right"></i></span> <span onclick="rep_del(this)"><i class="fa fa-times pull-right"></i></span> <span onclick="rep_down(this)"><i class="fa fa-arrow-down pull-right"></i></span></div><div class="row w-100"><div class="col-2"><label for="inputdate">Date</label></div><div class="col-10"><input type="text" class="form-control " data-fieldname="date" name="date_1" id="inputdate_1"></div></div><br /><div class="row w-100"><div class="col-2"><label for="inputnormalised">Normalised</label></div><div class="col-10"><input class="me-2 mt-1 " data-fieldname="normalised" type="checkbox" name="normalised_1" id="inputnormalised_1"></div></div><br /><div class="row w-100"><div class="col-2"><label for="inputtemperature">Temperature</label></div><div class="col-10"><input type="number" class="form-control " data-fieldname="temperature" name="temperature_1" id="inputtemperature_1" step="1" value="39"></div></div><input type="hidden" class="form-control " name="id_1" value="2"></div></div><a class="btn btn-sm btn-outline-primary mb-3" href="javascript:add_repeater('patient_id')" title="Add"><i class="fas fa-plus"></i></a></div><button type="submit" class="btn btn-primary ">Save</button><button onClick="$(this).closest('form').trigger('reset')" type="button" class="btn btn-primary ">Reset</button><button onClick="if(confirm('Are you sure?'))ajax_post('/delete/patients/1', {success:()=>window.location.href='/'})" type="button" class="btn btn-primary ">Delete</button></form>`
|
|
744
|
+
: `<form action="javascript:void(0)" onsubmit="javascript:formSubmit(this, '/view/', 'PatientEditWithReads')" class="form-namespace " method="post"><input type="hidden" name="_csrf" value="false"><input type="hidden" class="form-control " name="id" value="1"><div class="row w-100"><div class="col-2"><label for="inputfavbook">Favourite book</label></div><div class="col-10"><select class="form-control form-select " data-fieldname="favbook" name="favbook" id="inputfavbook"><option value=""></option><option value="1" selected>Herman Melville</option><option value="2">Leo Tolstoy</option></select></div></div><br /><span style="margin-bottom:1.5rem"><div class="row w-100" style="margin-bottom:1.5rem"><div class="col-2"><label for="inputname">Name</label></div><div class="col-10"><input type="text" class="form-control " data-fieldname="name" name="name" id="inputname" value="Kirk Douglas"></div></div></span><div class="row w-100"><div class="col-2"><label for="inputparent">Parent</label></div><div class="col-10"><select class="form-control form-select " data-fieldname="parent" name="parent" id="inputparent"><option value=""></option><option value="1">Kirk Douglas</option><option value="2">Michael Douglas</option></select></div></div><br /><div><div class="repeats-patient_id"><div class="form-repeat form-namespace repeat-patient_id"><div class="float-end"><span onclick="rep_up(this)"><i class="fa fa-arrow-up pull-right"></i></span> <span onclick="rep_del(this)"><i class="fa fa-times pull-right"></i></span> <span onclick="rep_down(this)"><i class="fa fa-arrow-down pull-right"></i></span></div><div class="row w-100"><div class="col-2"><label for="inputdate">Date</label></div><div class="col-10"><input type="text" class="form-control " data-fieldname="date" name="date_0" id="inputdate_0" value="11/11/2019"></div></div><br /><div class="row w-100"><div class="col-2"><label for="inputnormalised">Normalised</label></div><div class="col-10"><input class="me-2 mt-1 " data-fieldname="normalised" type="checkbox" name="normalised_0" id="inputnormalised_0" checked></div></div><br /><div class="row w-100"><div class="col-2"><label for="inputtemperature">Temperature</label></div><div class="col-10"><input type="number" class="form-control " data-fieldname="temperature" name="temperature_0" id="inputtemperature_0" step="1" value="37"></div></div><input type="hidden" class="form-control " name="id_0" value="1"></div><div class="form-repeat form-namespace repeat-patient_id"><div class="float-end"><span onclick="rep_up(this)"><i class="fa fa-arrow-up pull-right"></i></span> <span onclick="rep_del(this)"><i class="fa fa-times pull-right"></i></span> <span onclick="rep_down(this)"><i class="fa fa-arrow-down pull-right"></i></span></div><div class="row w-100"><div class="col-2"><label for="inputdate">Date</label></div><div class="col-10"><input type="text" class="form-control " data-fieldname="date" name="date_1" id="inputdate_1"></div></div><br /><div class="row w-100"><div class="col-2"><label for="inputnormalised">Normalised</label></div><div class="col-10"><input class="me-2 mt-1 " data-fieldname="normalised" type="checkbox" name="normalised_1" id="inputnormalised_1"></div></div><br /><div class="row w-100"><div class="col-2"><label for="inputtemperature">Temperature</label></div><div class="col-10"><input type="number" class="form-control " data-fieldname="temperature" name="temperature_1" id="inputtemperature_1" step="1" value="39"></div></div><input type="hidden" class="form-control " name="id_1" value="2"></div></div><a class="btn btn-sm btn-outline-primary mb-3" href="javascript:add_repeater('patient_id')" title="Add"><i class="fas fa-plus"></i></a></div><button type="submit" class="btn btn-primary ">Save</button><button onClick="$(this).closest('form').trigger('reset')" type="button" class="btn btn-primary ">Reset</button><button onClick="if(confirm('Are you sure?'))local_post('/delete/patients/1', {after_delete_url:'/'})" type="button" class="btn btn-primary ">Delete</button></form>`,
|
|
506
745
|
});
|
|
507
746
|
});
|
|
508
747
|
});
|
|
@@ -560,10 +799,12 @@ const test_filter = mkTester({
|
|
|
560
799
|
header_label: "",
|
|
561
800
|
},
|
|
562
801
|
],
|
|
563
|
-
response:
|
|
802
|
+
response: !remoteQueries
|
|
803
|
+
? '<div class="table-responsive"><table class="table table-sm"><thead><tr><th><a href="javascript:sortby(\'name\', false)">Name</a></th><th>name</th><th>author</th><th>Helloer</th><th>authorshow</th><th>readings</th><th></th><th></th></tr></thead><tbody><tr><td>Kirk Douglas</td><td></td><td>Herman Melville</td><td><a href="javascript:view_post(\'testlist\', \'run_action\', {action_name:\'run_js_code\', id:1});" class="btn btn-primary ">say hi</a></td><td><a href="/view/authorshow?id=1">6</a></td><td>2</td><td><a href="https://lmgtfy.app/?q=Kirk Douglas">KIRK DOUGLAS</a></td><td><form action="/delete/patients/1?redirect=/view/testlist" method="post">\n <input type="hidden" name="_csrf" value="">\n<button type="button" onclick="if(confirm(\'Are you sure?\')) {ajax_post_btn(this, true, undefined)}" class=" btn btn-sm btn-outline-primary">Delete</button></form></td></tr><tr><td>Michael Douglas</td><td>Kirk Douglas</td><td>Leo Tolstoy</td><td><a href="javascript:view_post(\'testlist\', \'run_action\', {action_name:\'run_js_code\', id:2});" class="btn btn-primary ">say hi</a></td><td><a href="/view/authorshow?id=2">7</a></td><td>1</td><td><a href="https://lmgtfy.app/?q=Michael Douglas">MICHAEL DOUGLAS</a></td><td><form action="/delete/patients/2?redirect=/view/testlist" method="post">\n <input type="hidden" name="_csrf" value="">\n<button type="button" onclick="if(confirm(\'Are you sure?\')) {ajax_post_btn(this, true, undefined)}" class=" btn btn-sm btn-outline-primary">Delete</button></form></td></tr></tbody></table></div>'
|
|
804
|
+
: '<div class="table-responsive"><table class="table table-sm"><thead><tr><th><a href="javascript:sortby(\'name\', false, \'testlist\')">Name</a></th><th>name</th><th>author</th><th>Helloer</th><th>authorshow</th><th>readings</th><th></th><th></th></tr></thead><tbody><tr><td>Kirk Douglas</td><td></td><td>Herman Melville</td><td><a href="javascript:view_post(\'testlist\', \'run_action\', {action_name:\'run_js_code\', id:1});" class="btn btn-primary ">say hi</a></td><td><a href="javascript:execLink(\'/view/authorshow?id=1\')">6</a></td><td>2</td><td><a href="https://lmgtfy.app/?q=Kirk Douglas">KIRK DOUGLAS</a></td><td><form action="/delete/patients/1?redirect=/view/testlist" method="post">\n <input type="hidden" name="_csrf" value="">\n<button type="button" onclick="if(confirm(\'Are you sure?\')) {local_post_btn(this)}" class=" btn btn-sm btn-outline-primary">Delete</button></form></td></tr><tr><td>Michael Douglas</td><td>Kirk Douglas</td><td>Leo Tolstoy</td><td><a href="javascript:view_post(\'testlist\', \'run_action\', {action_name:\'run_js_code\', id:2});" class="btn btn-primary ">say hi</a></td><td><a href="javascript:execLink(\'/view/authorshow?id=2\')">7</a></td><td>1</td><td><a href="https://lmgtfy.app/?q=Michael Douglas">MICHAEL DOUGLAS</a></td><td><form action="/delete/patients/2?redirect=/view/testlist" method="post">\n <input type="hidden" name="_csrf" value="">\n<button type="button" onclick="if(confirm(\'Are you sure?\')) {local_post_btn(this)}" class=" btn btn-sm btn-outline-primary">Delete</button></form></td></tr></tbody></table></div>',
|
|
564
805
|
});
|
|
565
806
|
});
|
|
566
|
-
(0, globals_1.it)("should render list view with where aggregations", async () => {
|
|
807
|
+
(0, globals_1.it)("should render list view with where aggregations exactly", async () => {
|
|
567
808
|
await test_list({
|
|
568
809
|
table: "books",
|
|
569
810
|
columns: [
|
|
@@ -594,10 +835,12 @@ const test_filter = mkTester({
|
|
|
594
835
|
header_label: "count 1",
|
|
595
836
|
},
|
|
596
837
|
],
|
|
597
|
-
response:
|
|
838
|
+
response: !remoteQueries
|
|
839
|
+
? `<div class="table-responsive"><table class="table table-sm"><thead><tr><th><a href="javascript:sortby('author', false)">Author</a></th><th>Count patients</th><th>count 1</th></tr></thead><tbody><tr><td>Herman Melville</td><td>1</td><td>1</td></tr><tr><td>Leo Tolstoy</td><td>1</td><td>0</td></tr></tbody></table></div>`
|
|
840
|
+
: `<div class="table-responsive"><table class="table table-sm"><thead><tr><th><a href="javascript:sortby('author', false, 'testlist')">Author</a></th><th>Count patients</th><th>count 1</th></tr></thead><tbody><tr><td>Herman Melville</td><td>1</td><td>1</td></tr><tr><td>Leo Tolstoy</td><td>1</td><td>0</td></tr></tbody></table></div>`,
|
|
598
841
|
});
|
|
599
842
|
});
|
|
600
|
-
(0, globals_1.it)("should render triply joined formulae list view", async () => {
|
|
843
|
+
(0, globals_1.it)("should render triply joined formulae list view exactly", async () => {
|
|
601
844
|
await test_list({
|
|
602
845
|
table: "readings",
|
|
603
846
|
columns: [
|
|
@@ -634,7 +877,9 @@ const test_filter = mkTester({
|
|
|
634
877
|
link_text_formula: "on",
|
|
635
878
|
},
|
|
636
879
|
],
|
|
637
|
-
response:
|
|
880
|
+
response: !remoteQueries
|
|
881
|
+
? `<div class="table-responsive"><table class="table table-sm"><thead><tr><th style="text-align: right"><a href="javascript:sortby('temperature', false)">Temperature</a></th><th>name</th><th>author</th><th>publisher</th></tr></thead><tbody><tr><td style="text-align:right">37</td><td><a href="http://bbc.co.uk">Kirk Douglas</a></td><td><a href="http://bbc.co.uk">Herman Melville</a></td><td><a href="http://bbc.co.uk"></a></td></tr><tr><td style="text-align:right">39</td><td><a href="http://bbc.co.uk">Kirk Douglas</a></td><td><a href="http://bbc.co.uk">Herman Melville</a></td><td><a href="http://bbc.co.uk"></a></td></tr><tr><td style="text-align:right">37</td><td><a href="http://bbc.co.uk">Michael Douglas</a></td><td><a href="http://bbc.co.uk">Leo Tolstoy</a></td><td><a href="http://bbc.co.uk">AK Press</a></td></tr></tbody></table></div>`
|
|
882
|
+
: `<div class="table-responsive"><table class="table table-sm"><thead><tr><th style="text-align: right"><a href="javascript:sortby('temperature', false, 'testlist')">Temperature</a></th><th>name</th><th>author</th><th>publisher</th></tr></thead><tbody><tr><td style="text-align:right">37</td><td><a href="http://bbc.co.uk">Kirk Douglas</a></td><td><a href="http://bbc.co.uk">Herman Melville</a></td><td><a href="http://bbc.co.uk"></a></td></tr><tr><td style="text-align:right">39</td><td><a href="http://bbc.co.uk">Kirk Douglas</a></td><td><a href="http://bbc.co.uk">Herman Melville</a></td><td><a href="http://bbc.co.uk"></a></td></tr><tr><td style="text-align:right">37</td><td><a href="http://bbc.co.uk">Michael Douglas</a></td><td><a href="http://bbc.co.uk">Leo Tolstoy</a></td><td><a href="http://bbc.co.uk">AK Press</a></td></tr></tbody></table></div>`,
|
|
638
883
|
});
|
|
639
884
|
});
|
|
640
885
|
(0, globals_1.it)("should render triply joined with dropdown list view", async () => {
|
|
@@ -708,13 +953,21 @@ const test_filter = mkTester({
|
|
|
708
953
|
header_label: "",
|
|
709
954
|
},
|
|
710
955
|
],
|
|
711
|
-
response:
|
|
956
|
+
response: !remoteQueries
|
|
957
|
+
? `<div class="table-responsive"><table class="table table-sm"><thead><tr><th><a href="javascript:sortby('normalised', false)">Normalised</a></th><th>author</th><th style="text-align: right"><a href="javascript:sortby('temperature', false)">Temperature</a></th><th>name</th><th>showreads</th><th></th><th>Action</th></tr></thead><tbody><tr><td><i class="fas fa-lg fa-check-circle text-success"></i></td><td>Herman Melville</td><td style="text-align:right">37</td><td></td><td><a href="/view/showreads?id=1">showreads</a></td><td><a href="http://bbc.co.uk">Foo 7</a></td><td><div class="dropdown"><button class="btn btn-sm btn-outline-secondary dropdown-toggle" data-boundary="viewport" type="button" id="actiondd1" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Action</button><div class="dropdown-menu dropdown-menu-end" aria-labelledby="actiondd1"><form action="/delete/readings/1?redirect=/view/testlist" method="post">
|
|
712
958
|
<input type="hidden" name="_csrf" value="">
|
|
713
959
|
<button type="button" onclick="ajax_post_btn(this, true, undefined)" class=" btn btn-sm dropdown-item">Delete</button></form><button class="btn btn-link dropdown-item" type="button" onClick="ajax_modal('/view/showreads?id=1')">showreads</button></div></div></td></tr><tr><td><i class="fas fa-lg fa-times-circle text-danger"></i></td><td>Herman Melville</td><td style="text-align:right">39</td><td></td><td><a href="/view/showreads?id=2">showreads</a></td><td><a href="http://bbc.co.uk">Foo 9</a></td><td><div class="dropdown"><button class="btn btn-sm btn-outline-secondary dropdown-toggle" data-boundary="viewport" type="button" id="actiondd2" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Action</button><div class="dropdown-menu dropdown-menu-end" aria-labelledby="actiondd2"><form action="/delete/readings/2?redirect=/view/testlist" method="post">
|
|
714
960
|
<input type="hidden" name="_csrf" value="">
|
|
715
961
|
<button type="button" onclick="ajax_post_btn(this, true, undefined)" class=" btn btn-sm dropdown-item">Delete</button></form><button class="btn btn-link dropdown-item" type="button" onClick="ajax_modal('/view/showreads?id=2')">showreads</button></div></div></td></tr><tr><td><i class="fas fa-lg fa-times-circle text-danger"></i></td><td>Leo Tolstoy</td><td style="text-align:right">37</td><td>AK Press</td><td><a href="/view/showreads?id=3">showreads</a></td><td><a href="http://bbc.co.uk">Foo 7</a></td><td><div class="dropdown"><button class="btn btn-sm btn-outline-secondary dropdown-toggle" data-boundary="viewport" type="button" id="actiondd3" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Action</button><div class="dropdown-menu dropdown-menu-end" aria-labelledby="actiondd3"><form action="/delete/readings/3?redirect=/view/testlist" method="post">
|
|
716
962
|
<input type="hidden" name="_csrf" value="">
|
|
717
|
-
<button type="button" onclick="ajax_post_btn(this, true, undefined)" class=" btn btn-sm dropdown-item">Delete</button></form><button class="btn btn-link dropdown-item" type="button" onClick="ajax_modal('/view/showreads?id=3')">showreads</button></div></div></td></tr></tbody></table></div
|
|
963
|
+
<button type="button" onclick="ajax_post_btn(this, true, undefined)" class=" btn btn-sm dropdown-item">Delete</button></form><button class="btn btn-link dropdown-item" type="button" onClick="ajax_modal('/view/showreads?id=3')">showreads</button></div></div></td></tr></tbody></table></div>`
|
|
964
|
+
: `<div class="table-responsive"><table class="table table-sm"><thead><tr><th><a href="javascript:sortby('normalised', false, 'testlist')">Normalised</a></th><th>author</th><th style="text-align: right"><a href="javascript:sortby('temperature', false, 'testlist')">Temperature</a></th><th>name</th><th>showreads</th><th></th><th>Action</th></tr></thead><tbody><tr><td><i class="fas fa-lg fa-check-circle text-success"></i></td><td>Herman Melville</td><td style="text-align:right">37</td><td></td><td><a href="javascript:execLink('/view/showreads?id=1')">showreads</a></td><td><a href="http://bbc.co.uk">Foo 7</a></td><td><div class="dropdown"><button class="btn btn-sm btn-outline-secondary dropdown-toggle" data-boundary="viewport" type="button" id="actiondd1" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Action</button><div class="dropdown-menu dropdown-menu-end" aria-labelledby="actiondd1"><form action="/delete/readings/1?redirect=/view/testlist" method="post">
|
|
965
|
+
<input type="hidden" name="_csrf" value="">
|
|
966
|
+
<button type="button" onclick="local_post_btn(this)" class=" btn btn-sm dropdown-item">Delete</button></form><button class="btn btn-link dropdown-item" type="button" onClick="mobile_modal('/view/showreads?id=1')">showreads</button></div></div></td></tr><tr><td><i class="fas fa-lg fa-times-circle text-danger"></i></td><td>Herman Melville</td><td style="text-align:right">39</td><td></td><td><a href="javascript:execLink('/view/showreads?id=2')">showreads</a></td><td><a href="http://bbc.co.uk">Foo 9</a></td><td><div class="dropdown"><button class="btn btn-sm btn-outline-secondary dropdown-toggle" data-boundary="viewport" type="button" id="actiondd2" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Action</button><div class="dropdown-menu dropdown-menu-end" aria-labelledby="actiondd2"><form action="/delete/readings/2?redirect=/view/testlist" method="post">
|
|
967
|
+
<input type="hidden" name="_csrf" value="">
|
|
968
|
+
<button type="button" onclick="local_post_btn(this)" class=" btn btn-sm dropdown-item">Delete</button></form><button class="btn btn-link dropdown-item" type="button" onClick="mobile_modal('/view/showreads?id=2')">showreads</button></div></div></td></tr><tr><td><i class="fas fa-lg fa-times-circle text-danger"></i></td><td>Leo Tolstoy</td><td style="text-align:right">37</td><td>AK Press</td><td><a href="javascript:execLink('/view/showreads?id=3')">showreads</a></td><td><a href="http://bbc.co.uk">Foo 7</a></td><td><div class="dropdown"><button class="btn btn-sm btn-outline-secondary dropdown-toggle" data-boundary="viewport" type="button" id="actiondd3" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Action</button><div class="dropdown-menu dropdown-menu-end" aria-labelledby="actiondd3"><form action="/delete/readings/3?redirect=/view/testlist" method="post">
|
|
969
|
+
<input type="hidden" name="_csrf" value="">
|
|
970
|
+
<button type="button" onclick="local_post_btn(this)" class=" btn btn-sm dropdown-item">Delete</button></form><button class="btn btn-link dropdown-item" type="button" onClick="mobile_modal('/view/showreads?id=3')">showreads</button></div></div></td></tr></tbody></table></div>`,
|
|
718
971
|
});
|
|
719
972
|
});
|
|
720
973
|
});
|
|
@@ -755,7 +1008,7 @@ const test_filter = mkTester({
|
|
|
755
1008
|
{ type: "DropDownFilter", field_name: "author" },
|
|
756
1009
|
],
|
|
757
1010
|
viewname: "testfilter",
|
|
758
|
-
response: '<div class="row w-100"><div class="col-6"><select name="ddfilterpatients.favbook.name" class="form-control form-select d-inline" style="width: unset;" onchange="this.value==\'\' ? unset_state_field(\'patients.favbook.name\'): set_state_field(\'patients.favbook.name\', this.value)"><option value="" class="text-muted"></option><option value="Kirk Douglas">Kirk Douglas</option><option value="Michael Douglas">Michael Douglas</option></select></div><div class="col-6"><button class="btn btn-outline-primary" onClick="set_state_field(\'pages\', \'13\')">thirteen</button></div></div><button class="btn btn-outline-primary" onClick="set_state_field(\'patients.favbook.name\', \'Jim\')">Jim</button><select name="ddfilterauthor" class="form-control form-select d-inline" style="width: unset;" onchange="this.value==\'\' ? unset_state_field(\'author\'): set_state_field(\'author\', this.value)"><option value="" class="text-muted"></option><option value="Herman Melville">Herman Melville</option><option value="Leo Tolstoy">Leo Tolstoy</option></select>',
|
|
1011
|
+
response: '<div class="form-namespace"><div class="row w-100"><div class="col-6"><select name="ddfilterpatients.favbook.name" class="form-control form-select d-inline" style="width: unset;" onchange="this.value==\'\' ? unset_state_field(\'patients.favbook.name\'): set_state_field(\'patients.favbook.name\', this.value)"><option value="" class="text-muted"></option><option value="Kirk Douglas">Kirk Douglas</option><option value="Michael Douglas">Michael Douglas</option></select></div><div class="col-6"><button class="btn btn-outline-primary" onClick="set_state_field(\'pages\', \'13\')">thirteen</button></div></div><button class="btn btn-outline-primary" onClick="set_state_field(\'patients.favbook.name\', \'Jim\')">Jim</button><select name="ddfilterauthor" class="form-control form-select d-inline" style="width: unset;" onchange="this.value==\'\' ? unset_state_field(\'author\'): set_state_field(\'author\', this.value)"><option value="" class="text-muted"></option><option value="Herman Melville">Herman Melville</option><option value="Leo Tolstoy">Leo Tolstoy</option></select></div>',
|
|
759
1012
|
});
|
|
760
1013
|
});
|
|
761
1014
|
});
|
|
@@ -807,7 +1060,9 @@ const test_filter = mkTester({
|
|
|
807
1060
|
type: "view",
|
|
808
1061
|
view: "authorlist",
|
|
809
1062
|
state: "shared",
|
|
810
|
-
contents:
|
|
1063
|
+
contents: !remoteQueries
|
|
1064
|
+
? '<div class="table-responsive"><table class="table table-sm"><thead><tr><th><a href="javascript:sortby(\'author\', false)">Author</a></th><th>authorshow</th><th></th><th>Count patients</th></tr></thead><tbody><tr><td>Herman Melville</td><td><a href="/view/authorshow?id=1">authorshow</a></td><td><form action="/delete/books/1?redirect=/view/authorlist" method="post">\n <input type="hidden" name="_csrf" value="">\n<button type="button" onclick="ajax_post_btn(this, true, undefined)" class=" btn btn-sm btn-primary">Delete</button></form></td><td>1</td></tr><tr><td>Leo Tolstoy</td><td><a href="/view/authorshow?id=2">authorshow</a></td><td><form action="/delete/books/2?redirect=/view/authorlist" method="post">\n <input type="hidden" name="_csrf" value="">\n<button type="button" onclick="ajax_post_btn(this, true, undefined)" class=" btn btn-sm btn-primary">Delete</button></form></td><td>1</td></tr></tbody></table></div>'
|
|
1065
|
+
: '<div class="table-responsive"><table class="table table-sm"><thead><tr><th><a href="javascript:sortby(\'author\', false, \'authorlist\')">Author</a></th><th>authorshow</th><th></th><th>Count patients</th></tr></thead><tbody><tr><td>Herman Melville</td><td><a href="javascript:execLink(\'/view/authorshow?id=1\')">authorshow</a></td><td><form action="/delete/books/1?redirect=/view/authorlist" method="post">\n <input type="hidden" name="_csrf" value="">\n<button type="button" onclick="local_post_btn(this)" class=" btn btn-sm btn-primary">Delete</button></form></td><td>1</td></tr><tr><td>Leo Tolstoy</td><td><a href="javascript:execLink(\'/view/authorshow?id=2\')">authorshow</a></td><td><form action="/delete/books/2?redirect=/view/authorlist" method="post">\n <input type="hidden" name="_csrf" value="">\n<button type="button" onclick="local_post_btn(this)" class=" btn btn-sm btn-primary">Delete</button></form></td><td>1</td></tr></tbody></table></div>',
|
|
811
1066
|
},
|
|
812
1067
|
{
|
|
813
1068
|
name: "18a8cc",
|