@saltcorn/server 0.9.1-beta.12 → 0.9.1-beta.13

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.1-beta.12",
3
+ "version": "0.9.1-beta.13",
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.1-beta.12",
11
- "@saltcorn/builder": "0.9.1-beta.12",
12
- "@saltcorn/data": "0.9.1-beta.12",
13
- "@saltcorn/admin-models": "0.9.1-beta.12",
14
- "@saltcorn/filemanager": "0.9.1-beta.12",
15
- "@saltcorn/markup": "0.9.1-beta.12",
16
- "@saltcorn/sbadmin2": "0.9.1-beta.12",
10
+ "@saltcorn/base-plugin": "0.9.1-beta.13",
11
+ "@saltcorn/builder": "0.9.1-beta.13",
12
+ "@saltcorn/data": "0.9.1-beta.13",
13
+ "@saltcorn/admin-models": "0.9.1-beta.13",
14
+ "@saltcorn/filemanager": "0.9.1-beta.13",
15
+ "@saltcorn/markup": "0.9.1-beta.13",
16
+ "@saltcorn/sbadmin2": "0.9.1-beta.13",
17
17
  "@socket.io/cluster-adapter": "^0.2.1",
18
18
  "@socket.io/sticky": "^1.0.1",
19
19
  "adm-zip": "0.5.10",
@@ -123,40 +123,46 @@ const view_dropdown = (view, req, on_done_redirect_str = "") =>
123
123
  },
124
124
  '<i class="fas fa-running"></i>&nbsp;' + req.__("Run")
125
125
  ),
126
- a(
127
- {
128
- class: "dropdown-item",
129
- href: `/viewedit/edit/${encodeURIComponent(
130
- view.name
131
- )}${on_done_redirect_str}`,
132
- },
133
- '<i class="fas fa-edit"></i>&nbsp;' + req.__("Edit")
134
- ),
126
+ view.id &&
127
+ a(
128
+ {
129
+ class: "dropdown-item",
130
+ href: `/viewedit/edit/${encodeURIComponent(
131
+ view.name
132
+ )}${on_done_redirect_str}`,
133
+ },
134
+ '<i class="fas fa-edit"></i>&nbsp;' + req.__("Edit")
135
+ ),
135
136
  post_dropdown_item(
136
- `/viewedit/add-to-menu/${view.id}${on_done_redirect_str}`,
137
+ `/viewedit/add-to-menu/${encodeURIComponent(
138
+ view.name
139
+ )}${on_done_redirect_str}`,
137
140
  '<i class="fas fa-bars"></i>&nbsp;' + req.__("Add to menu"),
138
141
  req
139
142
  ),
140
- post_dropdown_item(
141
- `/viewedit/clone/${view.id}${on_done_redirect_str}`,
142
- '<i class="far fa-copy"></i>&nbsp;' + req.__("Duplicate"),
143
- req
144
- ),
145
- a(
146
- {
147
- class: "dropdown-item",
148
- href: `javascript:ajax_modal('/admin/snapshot-restore/view/${view.name}')`,
149
- },
150
- '<i class="fas fa-undo-alt"></i>&nbsp;' + req.__("Restore")
151
- ),
152
- div({ class: "dropdown-divider" }),
153
- post_dropdown_item(
154
- `/viewedit/delete/${view.id}${on_done_redirect_str}`,
155
- '<i class="far fa-trash-alt"></i>&nbsp;' + req.__("Delete"),
156
- req,
157
- true,
158
- view.name
159
- ),
143
+ view.id &&
144
+ post_dropdown_item(
145
+ `/viewedit/clone/${view.id}${on_done_redirect_str}`,
146
+ '<i class="far fa-copy"></i>&nbsp;' + req.__("Duplicate"),
147
+ req
148
+ ),
149
+ view.id &&
150
+ a(
151
+ {
152
+ class: "dropdown-item",
153
+ href: `javascript:ajax_modal('/admin/snapshot-restore/view/${view.name}')`,
154
+ },
155
+ '<i class="fas fa-undo-alt"></i>&nbsp;' + req.__("Restore")
156
+ ),
157
+ view.id && div({ class: "dropdown-divider" }),
158
+ view.id &&
159
+ post_dropdown_item(
160
+ `/viewedit/delete/${view.id}${on_done_redirect_str}`,
161
+ '<i class="far fa-trash-alt"></i>&nbsp;' + req.__("Delete"),
162
+ req,
163
+ true,
164
+ view.name
165
+ ),
160
166
  ]);
161
167
 
162
168
  const setTableRefs = async (views) => {
@@ -222,17 +228,21 @@ const viewsList = async (
222
228
  {
223
229
  label: req.__("Role to access"),
224
230
  key: (row) =>
225
- editViewRoleForm(row, roles, req, on_done_redirect_str),
231
+ row.id
232
+ ? editViewRoleForm(row, roles, req, on_done_redirect_str)
233
+ : "admin",
226
234
  },
227
235
  {
228
236
  label: "",
229
237
  key: (r) =>
230
- link(
231
- `/viewedit/config/${encodeURIComponent(
232
- r.name
233
- )}${on_done_redirect_str}`,
234
- req.__("Configure")
235
- ),
238
+ r.id && r.viewtemplateObj?.configuration_workflow
239
+ ? link(
240
+ `/viewedit/config/${encodeURIComponent(
241
+ r.name
242
+ )}${on_done_redirect_str}`,
243
+ req.__("Configure")
244
+ )
245
+ : "",
236
246
  },
237
247
  !tagId
238
248
  ? {
@@ -118,6 +118,9 @@ const viewForm = async (req, tableOptions, roles, pages, values) => {
118
118
  .filter(([k, v]) => !v.tableless)
119
119
  .map(([k, v]) => k);
120
120
  const slugOptions = await Table.allSlugOptions();
121
+ const viewpatternOptions = Object.values(getState().viewtemplates)
122
+ .filter((vt) => !vt.singleton)
123
+ .map((vt) => vt.name);
121
124
  return new Form({
122
125
  action: addOnDoneRedirect("/viewedit/save", req),
123
126
  submitLabel: req.__("Configure") + " &raquo;",
@@ -151,7 +154,7 @@ const viewForm = async (req, tableOptions, roles, pages, values) => {
151
154
  topic: "View patterns",
152
155
  context: {},
153
156
  },
154
- options: Object.keys(getState().viewtemplates),
157
+ options: viewpatternOptions,
155
158
  attributes: {
156
159
  explainers: mapObjectValues(
157
160
  getState().viewtemplates,
@@ -661,11 +664,11 @@ router.post(
661
664
  * @function
662
665
  */
663
666
  router.post(
664
- "/add-to-menu/:id",
667
+ "/add-to-menu/:viewname",
665
668
  isAdmin,
666
669
  error_catcher(async (req, res) => {
667
- const { id } = req.params;
668
- const view = await View.findOne({ id });
670
+ const { viewname } = req.params;
671
+ const view = await View.findOne({ name: viewname });
669
672
  await add_to_menu({
670
673
  label: view.name,
671
674
  type: "View",