@saltcorn/server 0.8.6-beta.9 → 0.8.7-beta.0

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/routes/api.js CHANGED
@@ -194,7 +194,7 @@ router.get(
194
194
  //passport.authenticate("api-bearer", { session: false }),
195
195
  error_catcher(async (req, res, next) => {
196
196
  let { tableName, fieldName } = req.params;
197
- const table = await Table.findOne(
197
+ const table = Table.findOne(
198
198
  strictParseInt(tableName)
199
199
  ? { id: strictParseInt(tableName) }
200
200
  : { name: tableName }
@@ -249,7 +249,7 @@ router.get(
249
249
  error_catcher(async (req, res, next) => {
250
250
  let { tableName } = req.params;
251
251
  const { fields, versioncount, approximate, ...req_query } = req.query;
252
- const table = await Table.findOne(
252
+ const table = Table.findOne(
253
253
  strictParseInt(tableName)
254
254
  ? { id: strictParseInt(tableName) }
255
255
  : { name: tableName }
@@ -377,7 +377,7 @@ router.post(
377
377
  "/:tableName/",
378
378
  error_catcher(async (req, res, next) => {
379
379
  const { tableName } = req.params;
380
- const table = await Table.findOne({ name: tableName });
380
+ const table = Table.findOne({ name: tableName });
381
381
  if (!table) {
382
382
  getState().log(3, `API POST ${tableName} not found`);
383
383
  res.status(404).json({ error: req.__("Not found") });
@@ -454,7 +454,7 @@ router.post(
454
454
  "/:tableName/:id",
455
455
  error_catcher(async (req, res, next) => {
456
456
  const { tableName, id } = req.params;
457
- const table = await Table.findOne({ name: tableName });
457
+ const table = Table.findOne({ name: tableName });
458
458
  if (!table) {
459
459
  getState().log(3, `API POST ${tableName} not found`);
460
460
  res.status(404).json({ error: req.__("Not found") });
@@ -507,7 +507,7 @@ router.delete(
507
507
  // in case of primary key different from id - id will be string "undefined"
508
508
  error_catcher(async (req, res, next) => {
509
509
  const { tableName, id } = req.params;
510
- const table = await Table.findOne({ name: tableName });
510
+ const table = Table.findOne({ name: tableName });
511
511
  if (!table) {
512
512
  getState().log(3, `API DELETE ${tableName} not found`);
513
513
  res.status(404).json({ error: req.__("Not found") });
@@ -521,7 +521,7 @@ router.delete(
521
521
  try {
522
522
  if (id === "undefined") {
523
523
  const pk_name = table.pk_name;
524
- //const fields = await table.getFields();
524
+ //const fields = table.getFields();
525
525
  const row = req.body;
526
526
  //readState(row, fields);
527
527
  await table.deleteRows(
package/routes/delete.js CHANGED
@@ -33,7 +33,7 @@ router.post(
33
33
  const { tableName, id } = req.params;
34
34
  const { redirect } = req.query;
35
35
  // todo check that works after where change
36
- const table = await Table.findOne({ name: tableName });
36
+ const table = Table.findOne({ name: tableName });
37
37
  const role = req.user && req.user.id ? req.user.role_id : 100;
38
38
  try {
39
39
  if (role <= table.min_role_write)
package/routes/edit.js CHANGED
@@ -31,7 +31,7 @@ router.post(
31
31
  const { tableName, id, field_name } = req.params;
32
32
  const { redirect } = req.query;
33
33
  // todo check that works after where change
34
- const table = await Table.findOne({ name: tableName });
34
+ const table = Table.findOne({ name: tableName });
35
35
 
36
36
  const row = await table.getRow(
37
37
  { [table.pk_name]: id },
package/routes/fields.js CHANGED
@@ -267,7 +267,7 @@ const fieldFlow = (req) =>
267
267
  const tables = await Table.find({});
268
268
  const table = tables.find((t) => t.id === context.table_id);
269
269
  const nrows = await table.countRows({});
270
- const existing_fields = await table.getFields();
270
+ const existing_fields = table.getFields();
271
271
  const existingNames = existing_fields.map((f) => f.name);
272
272
  const fkey_opts = ["File", ...tables.map((t) => `Key to ${t.name}`)];
273
273
  const form = await fieldForm(
@@ -358,8 +358,8 @@ const fieldFlow = (req) =>
358
358
  name: req.__("Expression"),
359
359
  onlyWhen: (context) => context.calculated,
360
360
  form: async (context) => {
361
- const table = await Table.findOne({ id: context.table_id });
362
- const fields = await table.getFields();
361
+ const table = Table.findOne({ id: context.table_id });
362
+ const fields = table.getFields();
363
363
  return new Form({
364
364
  blurb: expressionBlurb(context.type, context.stored, fields, req),
365
365
  fields: [
@@ -397,8 +397,8 @@ const fieldFlow = (req) =>
397
397
  context.type !== "File" && new Field(context).is_fkey,
398
398
  form: async (context) => {
399
399
  const fld = new Field(context);
400
- const table = await Table.findOne({ name: fld.reftable_name });
401
- const fields = await table.getFields();
400
+ const table = Table.findOne({ name: fld.reftable_name });
401
+ const fields = table.getFields();
402
402
  const orderedFields = [
403
403
  ...fields.filter((f) => !f.primary_key),
404
404
  ...fields.filter((f) => f.primary_key),
@@ -471,10 +471,11 @@ const fieldFlow = (req) =>
471
471
  },
472
472
  {
473
473
  name: req.__("Default"),
474
- onlyWhen: async (context) => context.required && !context.calculated,
474
+ onlyWhen: async (context) =>
475
+ context.required && !context.calculated && !context.primary_key,
475
476
 
476
477
  form: async (context) => {
477
- const table = await Table.findOne({ id: context.table_id });
478
+ const table = Table.findOne({ id: context.table_id });
478
479
  const nrows = await table.countRows();
479
480
  const formfield = new Field({
480
481
  name: "default",
@@ -532,7 +533,7 @@ router.get(
532
533
  res.redirect(`/table`);
533
534
  return;
534
535
  }
535
- const table = await Table.findOne({ id: field.table_id });
536
+ const table = Table.findOne({ id: field.table_id });
536
537
  if (!field.type) {
537
538
  req.flash("danger", req.__(`Type %s not found`, field.typename));
538
539
  res.redirect(`/table/${field.table_id}`);
@@ -579,7 +580,7 @@ router.get(
579
580
  isAdmin,
580
581
  error_catcher(async (req, res) => {
581
582
  const { table_id } = req.params;
582
- const table = await Table.findOne({ id: table_id });
583
+ const table = Table.findOne({ id: table_id });
583
584
  const wf = fieldFlow(req);
584
585
  const wfres = await wf.run({ table_id: +table_id }, req);
585
586
  res.sendWrap(req.__(`New field`), {
@@ -643,7 +644,7 @@ router.post(
643
644
  const wf = fieldFlow(req);
644
645
  const wfres = await wf.run(req.body, req);
645
646
  if (wfres.renderForm) {
646
- const table = await Table.findOne({ id: wfres.context.table_id });
647
+ const table = Table.findOne({ id: wfres.context.table_id });
647
648
  res.sendWrap(req.__(`Field attributes`), {
648
649
  above: [
649
650
  {
@@ -690,8 +691,8 @@ router.post(
690
691
  isAdmin,
691
692
  error_catcher(async (req, res) => {
692
693
  const { formula, tablename, stored } = req.body;
693
- const table = await Table.findOne({ name: tablename });
694
- const fields = await table.getFields();
694
+ const table = Table.findOne({ name: tablename });
695
+ const fields = table.getFields();
695
696
  const freeVars = freeVariables(formula);
696
697
  const joinFields = {};
697
698
  if (stored) add_free_variables_to_joinfields(freeVars, joinFields, fields);
@@ -736,10 +737,10 @@ router.post(
736
737
  "/show-calculated/:tableName/:fieldName/:fieldview",
737
738
  error_catcher(async (req, res) => {
738
739
  const { tableName, fieldName, fieldview } = req.params;
739
- const table = await Table.findOne({ name: tableName });
740
+ const table = Table.findOne({ name: tableName });
740
741
  const role = req.user && req.user.id ? req.user.role_id : 100;
741
742
 
742
- const fields = await table.getFields();
743
+ const fields = table.getFields();
743
744
  let row = { ...req.body };
744
745
  if (row && Object.keys(row).length > 0) readState(row, fields);
745
746
 
@@ -764,7 +765,7 @@ router.post(
764
765
  for (const { ref } of Object.values(joinFields)) {
765
766
  if (row[ref]) {
766
767
  const field = fields.find((f) => f.name === ref);
767
- const reftable = await Table.findOne({ name: field.reftable_name });
768
+ const reftable = Table.findOne({ name: field.reftable_name });
768
769
  const refFields = await reftable.getFields();
769
770
 
770
771
  const joinFields = {};
@@ -798,7 +799,7 @@ router.post(
798
799
  const kpath = fieldName.split(".");
799
800
  if (kpath.length === 2 && row[kpath[0]]) {
800
801
  const field = fields.find((f) => f.name === kpath[0]);
801
- const reftable = await Table.findOne({ name: field.reftable_name });
802
+ const reftable = Table.findOne({ name: field.reftable_name });
802
803
  const refFields = await reftable.getFields();
803
804
  const targetField = refFields.find((f) => f.name === kpath[1]);
804
805
  //console.log({ kpath, fieldview, targetField });
@@ -859,7 +860,7 @@ router.post(
859
860
  const ofields = await oldTable.getFields();
860
861
  const field = ofields.find((f) => f.name === ref);
861
862
  if (field.is_fkey) {
862
- const reftable = await Table.findOne({ name: field.reftable_name });
863
+ const reftable = Table.findOne({ name: field.reftable_name });
863
864
  if (!oldRow[ref]) break;
864
865
  if (role > reftable.min_role_read) {
865
866
  res.status(401).send("");
@@ -915,8 +916,8 @@ router.post(
915
916
  isAdmin,
916
917
  error_catcher(async (req, res) => {
917
918
  const { tableName, fieldName, fieldview } = req.params;
918
- const table = await Table.findOne({ name: tableName });
919
- const fields = await table.getFields();
919
+ const table = Table.findOne({ name: tableName });
920
+ const fields = table.getFields();
920
921
  let field, row, value;
921
922
  if (fieldName.includes(".")) {
922
923
  const [refNm, targetNm] = fieldName.split(".");
@@ -925,7 +926,7 @@ router.post(
925
926
  res.send("");
926
927
  return;
927
928
  }
928
- const reftable = await Table.findOne({ name: ref.reftable_name });
929
+ const reftable = Table.findOne({ name: ref.reftable_name });
929
930
  if (!reftable) {
930
931
  res.send("");
931
932
  return;
@@ -1004,7 +1005,7 @@ router.post(
1004
1005
  isAdmin,
1005
1006
  error_catcher(async (req, res) => {
1006
1007
  const { tableName } = req.params;
1007
- const {
1008
+ let {
1008
1009
  field_name,
1009
1010
  fieldview,
1010
1011
  type,
@@ -1012,7 +1013,14 @@ router.post(
1012
1013
  join_fieldview,
1013
1014
  _columndef,
1014
1015
  } = req.body;
1015
- const table = await Table.findOne({ name: tableName });
1016
+ const table = Table.findOne({ name: tableName });
1017
+ if (typeof type !== "string") {
1018
+ try {
1019
+ type = JSON.parse(_columndef).type;
1020
+ } catch {
1021
+ //ignore
1022
+ }
1023
+ }
1016
1024
  const fieldName = type == "Field" ? field_name : join_field;
1017
1025
  const fv_name = type == "Field" ? fieldview : join_fieldview;
1018
1026
  if (!fieldName) {
package/routes/list.js CHANGED
@@ -51,9 +51,9 @@ router.get(
51
51
  isAdmin,
52
52
  error_catcher(async (req, res) => {
53
53
  const { tableName, id } = req.params;
54
- const table = await Table.findOne({ name: tableName });
54
+ const table = Table.findOne({ name: tableName });
55
55
 
56
- const fields = await table.getFields();
56
+ const fields = table.getFields();
57
57
  var tfields = fields.map((f) => ({ label: f.label, key: f.listKey }));
58
58
 
59
59
  tfields.push({
@@ -99,9 +99,9 @@ router.post(
99
99
  isAdmin,
100
100
  error_catcher(async (req, res) => {
101
101
  const { tableName, id, _version } = req.params;
102
- const table = await Table.findOne({ name: tableName });
102
+ const table = Table.findOne({ name: tableName });
103
103
 
104
- const fields = await table.getFields();
104
+ const fields = table.getFields();
105
105
  const row = await db.selectOne(`${db.sqlsanitize(table.name)}__history`, {
106
106
  id,
107
107
  _version,
@@ -231,13 +231,13 @@ router.get(
231
231
  isAdmin,
232
232
  error_catcher(async (req, res) => {
233
233
  const { tname } = req.params;
234
- const table = await Table.findOne({ name: tname });
234
+ const table = Table.findOne({ name: tname });
235
235
  if (!table) {
236
236
  req.flash("error", req.__("Table %s not found", text(tname)));
237
237
  res.redirect(`/table`);
238
238
  return;
239
239
  }
240
- const fields = await table.getFields();
240
+ const fields = table.getFields();
241
241
  for (const f of fields) {
242
242
  if (f.type === "File") f.attributes = { select_file_where: {} };
243
243
  await f.fill_fkey_options();
package/routes/menu.js CHANGED
@@ -51,7 +51,7 @@ const menuForm = async (req) => {
51
51
  for (const table of tables) {
52
52
  dynOrderFieldOptions[table.name] = [""];
53
53
  dynSectionFieldOptions[table.name] = [""];
54
- const fields = await table.getFields();
54
+ const fields = table.getFields();
55
55
  for (const field of fields) {
56
56
  dynOrderFieldOptions[table.name].push(field.name);
57
57
  if (
package/routes/plugins.js CHANGED
@@ -669,11 +669,10 @@ router.post(
669
669
  const instore = await Plugin.store_plugins_available();
670
670
  const store_plugin = instore.find((p) => p.name === plugin.name);
671
671
  if (store_plugin && store_plugin.has_auth) flash_restart(req);
672
- process.send &&
673
- process.send({
674
- refresh_plugin_cfg: plugin.name,
675
- tenant: db.getTenantSchema(),
676
- });
672
+ getState().processSend({
673
+ refresh_plugin_cfg: plugin.name,
674
+ tenant: db.getTenantSchema(),
675
+ });
677
676
  if (module.layout) await sleep(500); // Allow other workers to reload this plugin
678
677
  res.redirect("/plugins");
679
678
  }
@@ -700,11 +699,10 @@ router.post(
700
699
  };
701
700
  await plugin.upsert();
702
701
  await load_plugins.loadPlugin(plugin);
703
- process.send &&
704
- process.send({
705
- refresh_plugin_cfg: plugin.name,
706
- tenant: db.getTenantSchema(),
707
- });
702
+ getState().processSend({
703
+ refresh_plugin_cfg: plugin.name,
704
+ tenant: db.getTenantSchema(),
705
+ });
708
706
  res.json({ success: "ok" });
709
707
  }
710
708
  }
@@ -955,8 +953,10 @@ router.get(
955
953
  }
956
954
  req.flash("success", req.__(`Modules up-to-date`));
957
955
  await restart_tenant(loadAllPlugins);
958
- process.send &&
959
- process.send({ restart_tenant: true, tenant: db.getTenantSchema() });
956
+ getState().processSend({
957
+ restart_tenant: true,
958
+ tenant: db.getTenantSchema(),
959
+ });
960
960
  }
961
961
  res.redirect(`/plugins`);
962
962
  })
package/routes/tables.js CHANGED
@@ -11,6 +11,7 @@ const Table = require("@saltcorn/data/models/table");
11
11
  const File = require("@saltcorn/data/models/file");
12
12
  const View = require("@saltcorn/data/models/view");
13
13
  const User = require("@saltcorn/data/models/user");
14
+ const Trigger = require("@saltcorn/data/models/trigger");
14
15
  const {
15
16
  mkTable,
16
17
  renderForm,
@@ -72,7 +73,7 @@ module.exports = router;
72
73
  * @returns {Promise<Form>}
73
74
  */
74
75
  const tableForm = async (table, req) => {
75
- const fields = await table.getFields();
76
+ const fields = table.getFields();
76
77
  const roleOptions = (await User.get_roles()).map((r) => ({
77
78
  value: r.id,
78
79
  label: r.role,
@@ -433,7 +434,7 @@ router.get(
433
434
  const tables = await Table.find_with_external({}, { orderBy: "name" });
434
435
  const edges = [];
435
436
  for (const table of tables) {
436
- const fields = await table.getFields();
437
+ const fields = table.getFields();
437
438
  for (const field of fields) {
438
439
  if (field.reftable_name)
439
440
  edges.push({
@@ -563,9 +564,9 @@ router.get(
563
564
  const { idorname } = req.params;
564
565
  let id = parseInt(idorname);
565
566
  let table;
566
- if (id) table = Table.findOne({ id });
567
+ if (id) [table] = await Table.find({ id });
567
568
  else {
568
- table = Table.findOne({ name: idorname });
569
+ [table] = await Table.find({ name: idorname });
569
570
  }
570
571
 
571
572
  if (!table) {
@@ -574,11 +575,12 @@ router.get(
574
575
  return;
575
576
  }
576
577
  const nrows = await table.countRows();
577
- const fields = await table.getFields();
578
+ const fields = table.getFields();
578
579
  const { child_relations } = await table.get_child_relations();
579
580
  const inbound_refs = [
580
581
  ...new Set(child_relations.map(({ table }) => table.name)),
581
582
  ];
583
+ const triggers = table.id ? Trigger.find({ table_id: table.id }) : [];
582
584
  let fieldCard;
583
585
  if (fields.length === 0) {
584
586
  fieldCard = [
@@ -647,6 +649,13 @@ router.get(
647
649
  inbound_refs.map((tnm) => link(`/table/${tnm}`, tnm)).join(", ") +
648
650
  "<br>"
649
651
  : "",
652
+ triggers.length
653
+ ? req.__("Table triggers: ") +
654
+ triggers
655
+ .map((t) => link(`/actions/configure/${t.id}`, t.name))
656
+ .join(", ") +
657
+ "<br>"
658
+ : "",
650
659
  !table.external &&
651
660
  a(
652
661
  {
@@ -911,12 +920,10 @@ router.post(
911
920
  rest.provider_name !== "Database table"
912
921
  ) {
913
922
  const table = await Table.create(name, rest);
914
- await sleep(500); // Allow other workers to load this view
915
923
  res.redirect(`/table/provider-cfg/${table.id}`);
916
924
  } else {
917
925
  delete rest.provider_name;
918
926
  const table = await Table.create(name, rest);
919
- await sleep(500); // Allow other workers to load this view
920
927
  req.flash("success", req.__(`Table %s created`, name));
921
928
  res.redirect(`/table/${table.id}`);
922
929
  }
@@ -924,7 +931,7 @@ router.post(
924
931
  // todo check that works after where change
925
932
  // todo findOne can be have parameter for external table here
926
933
  //we can only save min role
927
- const table = await Table.findOne({ name: v.name });
934
+ const table = Table.findOne({ name: v.name });
928
935
  if (table) {
929
936
  const exttables_min_role_read = getState().getConfigCopy(
930
937
  "exttables_min_role_read",
@@ -942,7 +949,7 @@ router.post(
942
949
  }
943
950
  } else {
944
951
  const { id, _csrf, ...rest } = v;
945
- const table = await Table.findOne({ id: parseInt(id) });
952
+ const table = Table.findOne({ id: parseInt(id) });
946
953
  const old_versioned = table.versioned;
947
954
  let hasError = false;
948
955
  let notify = "";
@@ -994,7 +1001,7 @@ router.post(
994
1001
  isAdmin,
995
1002
  error_catcher(async (req, res) => {
996
1003
  const { id } = req.params;
997
- const t = await Table.findOne({ id });
1004
+ const t = Table.findOne({ id });
998
1005
  if (!t) {
999
1006
  req.flash("error", `Table not found`);
1000
1007
  res.redirect(`/table`);
@@ -1020,7 +1027,7 @@ router.post(
1020
1027
  isAdmin,
1021
1028
  error_catcher(async (req, res) => {
1022
1029
  const { id } = req.params;
1023
- const t = await Table.findOne({ id });
1030
+ const t = Table.findOne({ id });
1024
1031
  if (!t) {
1025
1032
  req.flash("error", `Table not found`);
1026
1033
  res.redirect(`/table`);
@@ -1126,7 +1133,7 @@ router.get(
1126
1133
  isAdmin,
1127
1134
  error_catcher(async (req, res) => {
1128
1135
  const { name } = req.params;
1129
- const table = await Table.findOne({ name });
1136
+ const table = Table.findOne({ name });
1130
1137
  const rows = await table.getRows();
1131
1138
  res.setHeader("Content-Type", "text/csv");
1132
1139
  res.setHeader("Content-Disposition", `attachment; filename="${name}.csv"`);
@@ -1155,7 +1162,7 @@ router.get(
1155
1162
  isAdmin,
1156
1163
  error_catcher(async (req, res) => {
1157
1164
  const { id } = req.params;
1158
- const table = await Table.findOne({ id });
1165
+ const table = Table.findOne({ id });
1159
1166
  if (!table) {
1160
1167
  req.flash("error", `Table not found`);
1161
1168
  res.redirect(`/table`);
@@ -1295,13 +1302,13 @@ router.get(
1295
1302
  isAdmin,
1296
1303
  error_catcher(async (req, res) => {
1297
1304
  const { id, type } = req.params;
1298
- const table = await Table.findOne({ id });
1305
+ const table = Table.findOne({ id });
1299
1306
  if (!table) {
1300
1307
  req.flash("error", `Table not found`);
1301
1308
  res.redirect(`/table`);
1302
1309
  return;
1303
1310
  }
1304
- const fields = await table.getFields();
1311
+ const fields = table.getFields();
1305
1312
  const form = constraintForm(req, table.id, fields, type);
1306
1313
  res.sendWrap(req.__(`Add constraint to %s`, table.name), {
1307
1314
  above: [
@@ -1339,13 +1346,13 @@ router.post(
1339
1346
  isAdmin,
1340
1347
  error_catcher(async (req, res) => {
1341
1348
  const { id, type } = req.params;
1342
- const table = await Table.findOne({ id });
1349
+ const table = Table.findOne({ id });
1343
1350
  if (!table) {
1344
1351
  req.flash("error", `Table not found`);
1345
1352
  res.redirect(`/table`);
1346
1353
  return;
1347
1354
  }
1348
- const fields = await table.getFields();
1355
+ const fields = table.getFields();
1349
1356
  const form = constraintForm(req, table.id, fields, type);
1350
1357
  form.validate(req.body);
1351
1358
  if (form.hasErrors) req.flash("error", req.__("An error occurred"));
@@ -1397,7 +1404,7 @@ router.get(
1397
1404
  isAdmin,
1398
1405
  error_catcher(async (req, res) => {
1399
1406
  const { id } = req.params;
1400
- const table = await Table.findOne({ id });
1407
+ const table = Table.findOne({ id });
1401
1408
 
1402
1409
  const form = renameForm(table.id, req);
1403
1410
  res.sendWrap(req.__(`Rename table %s`, table.name), {
@@ -1434,7 +1441,7 @@ router.post(
1434
1441
  isAdmin,
1435
1442
  error_catcher(async (req, res) => {
1436
1443
  const { id } = req.params;
1437
- const table = await Table.findOne({ id });
1444
+ const table = Table.findOne({ id });
1438
1445
  const form = renameForm(table.id, req);
1439
1446
 
1440
1447
  form.validate(req.body);
@@ -1560,7 +1567,7 @@ router.post(
1560
1567
  isAdmin,
1561
1568
  error_catcher(async (req, res) => {
1562
1569
  const { name } = req.params;
1563
- const table = await Table.findOne({ name });
1570
+ const table = Table.findOne({ name });
1564
1571
  if (!req.files || !req.files.file) {
1565
1572
  req.flash("error", "Missing file");
1566
1573
  res.redirect(`/table/${table.id}`);
@@ -1579,7 +1586,7 @@ router.get(
1579
1586
  isAdmin,
1580
1587
  error_catcher(async (req, res) => {
1581
1588
  const { name, filename } = req.params;
1582
- const table = await Table.findOne({ name });
1589
+ const table = Table.findOne({ name });
1583
1590
  const f = await File.findOne(filename);
1584
1591
  await previewCSV({ newPath: f.location, table, res, req, full: true });
1585
1592
  })
@@ -1590,7 +1597,7 @@ router.post(
1590
1597
  isAdmin,
1591
1598
  error_catcher(async (req, res) => {
1592
1599
  const { name, filename } = req.params;
1593
- const table = await Table.findOne({ name });
1600
+ const table = Table.findOne({ name });
1594
1601
  const f = await File.findOne(filename);
1595
1602
 
1596
1603
  try {
@@ -1619,7 +1626,7 @@ router.post(
1619
1626
  isAdmin,
1620
1627
  error_catcher(async (req, res) => {
1621
1628
  const { name } = req.params;
1622
- const table = await Table.findOne({ name });
1629
+ const table = Table.findOne({ name });
1623
1630
 
1624
1631
  try {
1625
1632
  await table.deleteRows({});
@@ -1644,7 +1651,7 @@ router.post(
1644
1651
  isAdmin,
1645
1652
  error_catcher(async (req, res) => {
1646
1653
  const { name } = req.params;
1647
- const table = await Table.findOne({ name });
1654
+ const table = Table.findOne({ name });
1648
1655
  if (!table) {
1649
1656
  req.flash("error", `Table not found: ${text(name)}`);
1650
1657
  res.redirect(`/table`);
@@ -1737,7 +1744,7 @@ router.get(
1737
1744
  const { id } = req.params;
1738
1745
  const { step } = req.query;
1739
1746
 
1740
- const table = await Table.findOne({ id });
1747
+ const table = Table.findOne({ id });
1741
1748
  if (!table) {
1742
1749
  req.flash("error", `Table not found`);
1743
1750
  res.redirect(`/table`);
@@ -1763,7 +1770,7 @@ router.post(
1763
1770
  const { id } = req.params;
1764
1771
  const { step } = req.query;
1765
1772
 
1766
- const table = await Table.findOne({ id });
1773
+ const table = Table.findOne({ id });
1767
1774
  if (!table) {
1768
1775
  req.flash("error", `Table not found`);
1769
1776
  res.redirect(`/table`);
package/routes/view.js CHANGED
@@ -117,7 +117,7 @@ router.post(
117
117
  error_catcher(async (req, res) => {
118
118
  const { viewname } = req.params;
119
119
 
120
- const view = await View.findOne({ name: viewname });
120
+ const [view] = await View.find({ name: viewname });
121
121
  if (!view) {
122
122
  res.send("");
123
123
  return;
@@ -131,7 +131,7 @@ router.post(
131
131
  if (!row) {
132
132
  if (!table)
133
133
  // todo check after where change
134
- table = await Table.findOne(
134
+ table = Table.findOne(
135
135
  view.table_id
136
136
  ? { id: view.table_id }
137
137
  : { name: view.exttable_name }
@@ -449,18 +449,18 @@ router.post(
449
449
 
450
450
  const v = result.success;
451
451
  if (v.table_name) {
452
- const table = await Table.findOne({ name: v.table_name });
452
+ const table = Table.findOne({ name: v.table_name });
453
453
  if (table && table.id) {
454
454
  v.table_id = table.id;
455
455
  } else if (table && table.external) v.exttable_name = v.table_name;
456
456
  }
457
457
  if (v.table_id) {
458
- const table = await Table.findOne({ id: v.table_id });
458
+ const table = Table.findOne({ id: v.table_id });
459
459
  const slugOptions = await table.slug_options();
460
460
  const slug = slugOptions.find((so) => so.label === v.slug);
461
461
  v.slug = slug || null;
462
462
  }
463
- //const table = await Table.findOne({ name: v.table_name });
463
+ //const table = Table.findOne({ name: v.table_name });
464
464
  delete v.table_name;
465
465
  if (req.body.id) {
466
466
  await View.update(v, +req.body.id);
@@ -470,7 +470,6 @@ router.post(
470
470
  else v.configuration = {};
471
471
  //console.log(v);
472
472
  await View.create(v);
473
- await sleep(500); // Allow other workers to load this view
474
473
  }
475
474
  res.redirect(
476
475
  addOnDoneRedirect(
@@ -583,7 +582,7 @@ router.get(
583
582
  error_catcher(async (req, res) => {
584
583
  const { name } = req.params;
585
584
  const { step } = req.query;
586
- const view = await View.findOne({ name });
585
+ const [view] = await View.find({ name });
587
586
  if (!view) {
588
587
  req.flash("error", `View not found: ${text(name)}`);
589
588
  res.redirect("/viewedit");
package/s3storage.js CHANGED
@@ -1,3 +1,4 @@
1
+ require("aws-sdk/lib/maintenance_mode_message").suppress = true;
1
2
  const aws = require("aws-sdk");
2
3
  const multer = require("multer");
3
4
  const multerS3 = require("multer-s3");