@saltcorn/server 0.8.8-beta.5 → 0.8.8-beta.6

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,18 +1,18 @@
1
1
  {
2
2
  "name": "@saltcorn/server",
3
- "version": "0.8.8-beta.5",
3
+ "version": "0.8.8-beta.6",
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
- "@saltcorn/base-plugin": "0.8.8-beta.5",
10
- "@saltcorn/builder": "0.8.8-beta.5",
11
- "@saltcorn/data": "0.8.8-beta.5",
12
- "@saltcorn/admin-models": "0.8.8-beta.5",
13
- "@saltcorn/filemanager": "0.8.8-beta.5",
14
- "@saltcorn/markup": "0.8.8-beta.5",
15
- "@saltcorn/sbadmin2": "0.8.8-beta.5",
9
+ "@saltcorn/base-plugin": "0.8.8-beta.6",
10
+ "@saltcorn/builder": "0.8.8-beta.6",
11
+ "@saltcorn/data": "0.8.8-beta.6",
12
+ "@saltcorn/admin-models": "0.8.8-beta.6",
13
+ "@saltcorn/filemanager": "0.8.8-beta.6",
14
+ "@saltcorn/markup": "0.8.8-beta.6",
15
+ "@saltcorn/sbadmin2": "0.8.8-beta.6",
16
16
  "@socket.io/cluster-adapter": "^0.2.1",
17
17
  "@socket.io/sticky": "^1.0.1",
18
18
  "adm-zip": "0.5.10",
@@ -467,3 +467,8 @@ div.unread-notify {
467
467
  .sc-modal-linkout {
468
468
  color: inherit;
469
469
  }
470
+
471
+ .link-style {
472
+ cursor: pointer;
473
+ text-decoration: underline;
474
+ }
@@ -1,18 +1,22 @@
1
- function sortby(k, desc, viewIdentifier) {
2
- set_state_fields({
3
- [viewIdentifier ? `_${viewIdentifier}_sortby` : "_sortby"]: k,
4
- [viewIdentifier ? `_${viewIdentifier}_sortdesc` : "_sortdesc"]: desc
5
- ? "on"
6
- : { unset: true },
7
- });
1
+ function sortby(k, desc, viewIdentifier, e) {
2
+ set_state_fields(
3
+ {
4
+ [viewIdentifier ? `_${viewIdentifier}_sortby` : "_sortby"]: k,
5
+ [viewIdentifier ? `_${viewIdentifier}_sortdesc` : "_sortdesc"]: desc
6
+ ? "on"
7
+ : { unset: true },
8
+ },
9
+ false,
10
+ e
11
+ );
8
12
  }
9
- function gopage(n, pagesize, viewIdentifier, extra = {}) {
13
+ function gopage(n, pagesize, viewIdentifier, extra = {}, e) {
10
14
  const cfg = {
11
15
  ...extra,
12
16
  [viewIdentifier ? `_${viewIdentifier}_page` : "_page"]: n,
13
17
  [viewIdentifier ? `_${viewIdentifier}_pagesize` : "_pagesize"]: pagesize,
14
18
  };
15
- set_state_fields(cfg);
19
+ set_state_fields(cfg, false, e);
16
20
  }
17
21
 
18
22
  if (localStorage.getItem("reload_on_init")) {
@@ -72,28 +76,31 @@ function get_current_state_url(e) {
72
76
  else return $modal.prop("data-modal-state");
73
77
  }
74
78
 
75
- function select_id(id) {
76
- pjax_to(updateQueryStringParameter(get_current_state_url(), "id", id));
79
+ function select_id(id, e) {
80
+ pjax_to(updateQueryStringParameter(get_current_state_url(e), "id", id), e);
77
81
  }
78
82
 
79
83
  function set_state_field(key, value, e) {
80
84
  pjax_to(updateQueryStringParameter(get_current_state_url(e), key, value), e);
81
85
  }
82
86
 
83
- function check_state_field(that) {
87
+ function check_state_field(that, e) {
84
88
  const checked = that.checked;
85
89
  const name = that.name;
86
90
  const value = encodeURIComponent(that.value);
87
- var separator = window.location.href.indexOf("?") !== -1 ? "&" : "?";
91
+ var separator = get_current_state_url(e).indexOf("?") !== -1 ? "&" : "?";
88
92
  let dest;
89
- if (checked) dest = get_current_state_url() + `${separator}${name}=${value}`;
90
- else dest = get_current_state_url().replace(`${name}=${value}`, "");
91
- pjax_to(dest.replace("&&", "&").replace("?&", "?"));
93
+ if (checked) dest = get_current_state_url(e) + `${separator}${name}=${value}`;
94
+ else dest = get_current_state_url(e).replace(`${name}=${value}`, "");
95
+ pjax_to(dest.replace("&&", "&").replace("?&", "?"), e);
92
96
  }
93
97
 
94
98
  function invalidate_pagings(href) {
95
99
  let newhref = href;
96
- const queryObj = Object.fromEntries(new URL(newhref).searchParams.entries());
100
+ const prev = new URL(window.location.href);
101
+ const queryObj = Object.fromEntries(
102
+ new URL(newhref, prev.origin).searchParams.entries()
103
+ );
97
104
  const toRemove = Object.keys(queryObj).filter((val) => is_paging_param(val));
98
105
  for (const k of toRemove) {
99
106
  newhref = removeQueryStringParameter(newhref, k);
@@ -173,12 +180,12 @@ function pjax_to(href, e) {
173
180
  function href_to(href) {
174
181
  window.location.href = href;
175
182
  }
176
- function clear_state(omit_fields_str) {
177
- let newUrl = get_current_state_url().split("?")[0];
178
- const hash = get_current_state_url().split("#")[1];
183
+ function clear_state(omit_fields_str, e) {
184
+ let newUrl = get_current_state_url(e).split("?")[0];
185
+ const hash = get_current_state_url(e).split("#")[1];
179
186
  if (omit_fields_str) {
180
187
  const omit_fields = omit_fields_str.split(",").map((s) => s.trim());
181
- let qs = (get_current_state_url().split("?")[1] || "").split("#")[0];
188
+ let qs = (get_current_state_url(e).split("?")[1] || "").split("#")[0];
182
189
  let params = new URLSearchParams(qs);
183
190
  newUrl = newUrl + "?";
184
191
  omit_fields.forEach((f) => {
@@ -188,7 +195,7 @@ function clear_state(omit_fields_str) {
188
195
  }
189
196
  if (hash) newUrl += "#" + hash;
190
197
 
191
- pjax_to(newUrl);
198
+ pjax_to(newUrl, e);
192
199
  }
193
200
 
194
201
  function ajax_done(res) {
@@ -187,7 +187,7 @@ const viewsList = async (
187
187
  label: req.__("Name"),
188
188
  key: (r) => link(`/view/${encodeURIComponent(r.name)}`, r.name),
189
189
  sortlink: !tagId
190
- ? `javascript:set_state_field('_sortby', 'name')`
190
+ ? `set_state_field('_sortby', 'name', this)`
191
191
  : undefined,
192
192
  },
193
193
  // description - currently I dont want to show description in view list
@@ -205,7 +205,7 @@ const viewsList = async (
205
205
  label: req.__("Pattern"),
206
206
  key: "viewtemplate",
207
207
  sortlink: !tagId
208
- ? `javascript:set_state_field('_sortby', 'viewtemplate')`
208
+ ? `set_state_field('_sortby', 'viewtemplate', this)`
209
209
  : undefined,
210
210
  },
211
211
  ...(notable
@@ -215,7 +215,7 @@ const viewsList = async (
215
215
  label: req.__("Table"),
216
216
  key: (r) => link(`/table/${r.table}`, r.table),
217
217
  sortlink: !tagId
218
- ? `javascript:set_state_field('_sortby', 'table')`
218
+ ? `set_state_field('_sortby', 'table', this)`
219
219
  : undefined,
220
220
  },
221
221
  ]),
@@ -59,7 +59,7 @@ router.get(
59
59
  page_opts.pagination = {
60
60
  current_page,
61
61
  pages: Math.ceil(nrows / rows_per_page),
62
- get_page_link: (n) => `javascript:gopage(${n}, ${rows_per_page})`,
62
+ get_page_link: (n) => `gopage(${n}, ${rows_per_page})`,
63
63
  };
64
64
  }
65
65
  }
@@ -332,7 +332,7 @@ router.get(
332
332
  page_opts.pagination = {
333
333
  current_page,
334
334
  pages: Math.ceil(nrows / rows_per_page),
335
- get_page_link: (n) => `javascript:gopage(${n}, ${rows_per_page})`,
335
+ get_page_link: (n) => `gopage(${n}, ${rows_per_page})`,
336
336
  };
337
337
  }
338
338
  }
package/routes/search.js CHANGED
@@ -201,7 +201,7 @@ const runSearch = async ({ q, _page, table }, req, res) => {
201
201
  pages: current_page + (vresps.length === page_size ? 1 : 0),
202
202
  trailing_ellipsis: vresps.length === page_size,
203
203
  get_page_link: (n) =>
204
- `javascript:gopage(${n}, ${page_size}, undefined, {table:'${tableName}'})`,
204
+ `gopage(${n}, ${page_size}, undefined, {table:'${tableName}'}, this)`,
205
205
  });
206
206
  }
207
207