@saltcorn/server 0.9.3-beta.5 → 0.9.3-beta.7

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/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@saltcorn/server",
3
- "version": "0.9.3-beta.5",
3
+ "version": "0.9.3-beta.7",
4
4
  "description": "Server app for Saltcorn, open-source no-code platform",
5
5
  "homepage": "https://saltcorn.com",
6
6
  "main": "index.js",
7
7
  "license": "MIT",
8
8
  "dependencies": {
9
9
  "@aws-sdk/client-s3": "^3.451.0",
10
- "@saltcorn/base-plugin": "0.9.3-beta.5",
11
- "@saltcorn/builder": "0.9.3-beta.5",
12
- "@saltcorn/data": "0.9.3-beta.5",
13
- "@saltcorn/admin-models": "0.9.3-beta.5",
14
- "@saltcorn/filemanager": "0.9.3-beta.5",
15
- "@saltcorn/markup": "0.9.3-beta.5",
16
- "@saltcorn/sbadmin2": "0.9.3-beta.5",
10
+ "@saltcorn/base-plugin": "0.9.3-beta.7",
11
+ "@saltcorn/builder": "0.9.3-beta.7",
12
+ "@saltcorn/data": "0.9.3-beta.7",
13
+ "@saltcorn/admin-models": "0.9.3-beta.7",
14
+ "@saltcorn/filemanager": "0.9.3-beta.7",
15
+ "@saltcorn/markup": "0.9.3-beta.7",
16
+ "@saltcorn/sbadmin2": "0.9.3-beta.7",
17
17
  "@socket.io/cluster-adapter": "^0.2.1",
18
18
  "@socket.io/sticky": "^1.0.1",
19
19
  "adm-zip": "0.5.10",
@@ -976,20 +976,31 @@ function enable_codemirror(f) {
976
976
  success: f,
977
977
  });
978
978
  }
979
- function tristateClick(nm) {
980
- var current = $(`button#trib${nm}`).html();
979
+ function tristateClick(e) {
980
+ const btn = $(e);
981
+ const input = btn.prev();
982
+ var current = input.val();
981
983
  switch (current) {
982
984
  case "?":
983
- $(`button#trib${nm}`).html("T");
984
- $(`input#input${nm}`).val("on");
985
+ btn
986
+ .html(btn.attr("data-true-label") || "T")
987
+ .removeClass(["btn-danger", "btn-secondary"])
988
+ .addClass("btn-success");
989
+ input.val("on").trigger("change");
985
990
  break;
986
- case "T":
987
- $(`button#trib${nm}`).html("F");
988
- $(`input#input${nm}`).val("off");
991
+ case "on":
992
+ btn
993
+ .html(btn.attr("data-false-label") || "F")
994
+ .removeClass(["btn-success", "btn-secondary"])
995
+ .addClass("btn-danger");
996
+ input.val("off").trigger("change");
989
997
  break;
990
998
  default:
991
- $(`button#trib${nm}`).html("?");
992
- $(`input#input${nm}`).val("?");
999
+ btn
1000
+ .html(btn.attr("data-null-label") || "?")
1001
+ .removeClass(["btn-success", "btn-danger"])
1002
+ .addClass("btn-secondary");
1003
+ input.val("?").trigger("change");
993
1004
  break;
994
1005
  }
995
1006
  }
@@ -1158,7 +1169,7 @@ async function common_done(res, viewname, isWeb = true) {
1158
1169
  });
1159
1170
  }
1160
1171
  if (res.set_fields && viewname) {
1161
- const form = $(`form[data-viewname=${viewname}]`);
1172
+ const form = $(`form[data-viewname="${viewname}"]`);
1162
1173
  if (form.length === 0 && set_state_fields) {
1163
1174
  // assume this is a filter
1164
1175
  set_state_fields(
package/routes/actions.js CHANGED
@@ -628,7 +628,10 @@ router.get(
628
628
  let table, row;
629
629
  if (trigger.table_id) {
630
630
  table = Table.findOne({ id: trigger.table_id });
631
- row = await table.getRow({}, { orderBy: "RANDOM()" });
631
+ row = await table.getRow(
632
+ {},
633
+ { orderBy: "RANDOM()", forUser: req.user, forPublic: !req.user }
634
+ );
632
635
  }
633
636
  let runres;
634
637
 
package/routes/delete.js CHANGED
@@ -39,7 +39,10 @@ router.post(
39
39
  if (role <= table.min_role_write)
40
40
  await table.deleteRows({ id }, req.user || { role_id: 100 });
41
41
  else if (table.ownership_field_id && req.user) {
42
- const row = await table.getRow({ id });
42
+ const row = await table.getRow(
43
+ { id },
44
+ { forUser: req.user, forPublic: !req.user }
45
+ );
43
46
  if (row && table.is_owner(req.user, row))
44
47
  await table.deleteRows({ id }, req.user || { role_id: 100 });
45
48
  else req.flash("error", req.__("Not authorized"));
package/routes/fields.js CHANGED
@@ -933,9 +933,12 @@ router.post(
933
933
  const reftable2 = Table.findOne({
934
934
  name: targetField.reftable_name,
935
935
  });
936
- const refRow2 = await reftable2.getRow({
937
- [reftable2.pk_name]: refRow[kpath[1]],
938
- });
936
+ const refRow2 = await reftable2.getRow(
937
+ {
938
+ [reftable2.pk_name]: refRow[kpath[1]],
939
+ },
940
+ { forUser: req.user, forPublic: !req.user }
941
+ );
939
942
  if (refRow2) {
940
943
  res.send(
941
944
  text(`${refRow2[targetField.attributes.summary_field]}`)
@@ -974,7 +977,10 @@ router.post(
974
977
  return;
975
978
  }
976
979
  const q = { [reftable.pk_name]: oldRow[ref] };
977
- oldRow = await reftable.getRow(q);
980
+ oldRow = await reftable.getRow(q, {
981
+ forUser: req.user,
982
+ forPublic: !req.user,
983
+ });
978
984
  oldTable = reftable;
979
985
  }
980
986
  }
@@ -1010,14 +1016,20 @@ router.post(
1010
1016
  )) {
1011
1017
  const jf = table.getField(ref);
1012
1018
  const jtable = Table.findOne(jf.reftable_name);
1013
- const jrow = await jtable.getRow({ [jtable.pk_name]: row[ref] });
1019
+ const jrow = await jtable.getRow(
1020
+ { [jtable.pk_name]: row[ref] },
1021
+ { forUser: req.user, forPublic: !req.user }
1022
+ );
1014
1023
  row[ref] = jrow;
1015
1024
  if (through) {
1016
1025
  const jf2 = jtable.getField(through);
1017
1026
  const jtable2 = Table.findOne(jf2.reftable_name);
1018
- const jrow2 = await jtable2.getRow({
1019
- [jtable2.pk_name]: jrow[through],
1020
- });
1027
+ const jrow2 = await jtable2.getRow(
1028
+ {
1029
+ [jtable2.pk_name]: jrow[through],
1030
+ },
1031
+ { forUser: req.user, forPublic: !req.user }
1032
+ );
1021
1033
  row[ref][through] = jrow2;
1022
1034
  }
1023
1035
  }
@@ -1071,11 +1083,11 @@ router.post(
1071
1083
  }
1072
1084
  const reffields = await reftable.getFields();
1073
1085
  field = reffields.find((f) => f.name === targetNm);
1074
- row = await reftable.getRow({});
1086
+ row = await reftable.getRow({}, { forUser: req.user });
1075
1087
  value = row && row[targetNm];
1076
1088
  } else {
1077
1089
  field = fields.find((f) => f.name === fieldName);
1078
- row = await table.getRow({});
1090
+ row = await table.getRow({}, { forUser: req.user });
1079
1091
  value = row && row[fieldName];
1080
1092
  }
1081
1093
 
package/routes/packs.js CHANGED
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  const Router = require("express-promise-router");
8
- const { isAdmin, error_catcher } = require("./utils.js");
8
+ const { isAdmin, error_catcher, setTenant } = require("./utils.js");
9
9
  const { renderForm } = require("@saltcorn/markup");
10
10
  const Table = require("@saltcorn/data/models/table");
11
11
  const Form = require("@saltcorn/data/models/form");
@@ -388,6 +388,7 @@ router.get(
388
388
  */
389
389
  router.post(
390
390
  "/install",
391
+ setTenant, // TODO why is this needed?????
391
392
  isAdmin,
392
393
  error_catcher(async (req, res) => {
393
394
  var pack, error;
package/routes/tables.js CHANGED
@@ -707,7 +707,7 @@ router.get(
707
707
  res.redirect(`/table`);
708
708
  return;
709
709
  }
710
- const nrows = await table.countRows();
710
+ const nrows = await table.countRows({}, { forUser: req.user });
711
711
  const fields = table.getFields();
712
712
  const { child_relations } = await table.get_child_relations();
713
713
  const inbound_refs = [
@@ -1282,7 +1282,7 @@ router.get(
1282
1282
  error_catcher(async (req, res) => {
1283
1283
  const { name } = req.params;
1284
1284
  const table = Table.findOne({ name });
1285
- const rows = await table.getRows({}, { orderBy: "id" });
1285
+ const rows = await table.getRows({}, { orderBy: "id", forUser: req.user });
1286
1286
  res.setHeader("Content-Type", "text/csv");
1287
1287
  res.setHeader("Content-Disposition", `attachment; filename="${name}.csv"`);
1288
1288
  res.setHeader("Cache-Control", "no-cache");
package/routes/view.js CHANGED
@@ -160,7 +160,7 @@ router.post(
160
160
  ? { id: view.table_id }
161
161
  : { name: view.exttable_name }
162
162
  );
163
- row = await table.getRow({});
163
+ row = await table.getRow({}, { forUser: req.user });
164
164
  }
165
165
  if (row) query[sf.name] = row[sf.name];
166
166
  }