@saltcorn/server 0.6.2-beta.0 → 0.6.2-beta.4
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/app.js +9 -13
- package/auth/admin.js +8 -24
- package/auth/roleadmin.js +6 -16
- package/auth/routes.js +113 -59
- package/locales/en.json +30 -1
- package/markup/admin.js +17 -0
- package/package.json +15 -8
- package/public/ckeditor/adapters/jquery.js +10 -0
- package/public/ckeditor/ckeditor.js +1286 -0
- package/public/ckeditor/config.js +38 -0
- package/public/ckeditor/contents.css +208 -0
- package/public/ckeditor/lang/af.js +5 -0
- package/public/ckeditor/lang/ar.js +5 -0
- package/public/ckeditor/lang/az.js +5 -0
- package/public/ckeditor/lang/bg.js +5 -0
- package/public/ckeditor/lang/bn.js +5 -0
- package/public/ckeditor/lang/bs.js +5 -0
- package/public/ckeditor/lang/ca.js +5 -0
- package/public/ckeditor/lang/cs.js +5 -0
- package/public/ckeditor/lang/cy.js +5 -0
- package/public/ckeditor/lang/da.js +5 -0
- package/public/ckeditor/lang/de-ch.js +5 -0
- package/public/ckeditor/lang/de.js +5 -0
- package/public/ckeditor/lang/el.js +5 -0
- package/public/ckeditor/lang/en-au.js +5 -0
- package/public/ckeditor/lang/en-ca.js +5 -0
- package/public/ckeditor/lang/en-gb.js +5 -0
- package/public/ckeditor/lang/en.js +5 -0
- package/public/ckeditor/lang/eo.js +5 -0
- package/public/ckeditor/lang/es-mx.js +5 -0
- package/public/ckeditor/lang/es.js +5 -0
- package/public/ckeditor/lang/et.js +5 -0
- package/public/ckeditor/lang/eu.js +5 -0
- package/public/ckeditor/lang/fa.js +5 -0
- package/public/ckeditor/lang/fi.js +5 -0
- package/public/ckeditor/lang/fo.js +5 -0
- package/public/ckeditor/lang/fr-ca.js +5 -0
- package/public/ckeditor/lang/fr.js +5 -0
- package/public/ckeditor/lang/gl.js +5 -0
- package/public/ckeditor/lang/gu.js +5 -0
- package/public/ckeditor/lang/he.js +5 -0
- package/public/ckeditor/lang/hi.js +5 -0
- package/public/ckeditor/lang/hr.js +5 -0
- package/public/ckeditor/lang/hu.js +5 -0
- package/public/ckeditor/lang/id.js +5 -0
- package/public/ckeditor/lang/is.js +5 -0
- package/public/ckeditor/lang/it.js +5 -0
- package/public/ckeditor/lang/ja.js +5 -0
- package/public/ckeditor/lang/ka.js +5 -0
- package/public/ckeditor/lang/km.js +5 -0
- package/public/ckeditor/lang/ko.js +5 -0
- package/public/ckeditor/lang/ku.js +5 -0
- package/public/ckeditor/lang/lt.js +5 -0
- package/public/ckeditor/lang/lv.js +5 -0
- package/public/ckeditor/lang/mk.js +5 -0
- package/public/ckeditor/lang/mn.js +5 -0
- package/public/ckeditor/lang/ms.js +5 -0
- package/public/ckeditor/lang/nb.js +5 -0
- package/public/ckeditor/lang/nl.js +5 -0
- package/public/ckeditor/lang/no.js +5 -0
- package/public/ckeditor/lang/oc.js +5 -0
- package/public/ckeditor/lang/pl.js +5 -0
- package/public/ckeditor/lang/pt-br.js +5 -0
- package/public/ckeditor/lang/pt.js +5 -0
- package/public/ckeditor/lang/ro.js +5 -0
- package/public/ckeditor/lang/ru.js +5 -0
- package/public/ckeditor/lang/si.js +5 -0
- package/public/ckeditor/lang/sk.js +5 -0
- package/public/ckeditor/lang/sl.js +5 -0
- package/public/ckeditor/lang/sq.js +5 -0
- package/public/ckeditor/lang/sr-latn.js +5 -0
- package/public/ckeditor/lang/sr.js +5 -0
- package/public/ckeditor/lang/sv.js +5 -0
- package/public/ckeditor/lang/th.js +5 -0
- package/public/ckeditor/lang/tr.js +5 -0
- package/public/ckeditor/lang/tt.js +5 -0
- package/public/ckeditor/lang/ug.js +5 -0
- package/public/ckeditor/lang/uk.js +5 -0
- package/public/ckeditor/lang/vi.js +5 -0
- package/public/ckeditor/lang/zh-cn.js +5 -0
- package/public/ckeditor/lang/zh.js +5 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +10 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt +25 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/af.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/az.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js +13 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js +12 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/da.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/de-ch.js +13 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/de.js +13 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/el.js +13 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/en-au.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/en-gb.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/en.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js +13 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/es-mx.js +13 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/es.js +13 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/et.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/eu.js +12 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/fo.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js +13 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js +12 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/he.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js +12 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/id.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/it.js +13 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js +9 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/km.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/ko.js +10 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js +12 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js +12 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js +12 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/no.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/oc.js +12 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js +13 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js +13 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js +12 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js +12 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/si.js +10 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js +12 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js +12 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js +12 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/th.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js +12 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/tt.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js +12 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js +12 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js +11 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js +9 -0
- package/public/ckeditor/plugins/a11yhelp/dialogs/lang/zh.js +9 -0
- package/public/ckeditor/plugins/about/dialogs/about.js +8 -0
- package/public/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png +0 -0
- package/public/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
- package/public/ckeditor/plugins/clipboard/dialogs/paste.js +11 -0
- package/public/ckeditor/plugins/dialog/dialogDefinition.js +4 -0
- package/public/ckeditor/plugins/dialog/styles/dialog.css +18 -0
- package/public/ckeditor/plugins/icons.png +0 -0
- package/public/ckeditor/plugins/icons_hidpi.png +0 -0
- package/public/ckeditor/plugins/image/dialogs/image.js +44 -0
- package/public/ckeditor/plugins/image/images/noimage.png +0 -0
- package/public/ckeditor/plugins/link/dialogs/anchor.js +8 -0
- package/public/ckeditor/plugins/link/dialogs/link.js +30 -0
- package/public/ckeditor/plugins/link/images/anchor.png +0 -0
- package/public/ckeditor/plugins/link/images/hidpi/anchor.png +0 -0
- package/public/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png +0 -0
- package/public/ckeditor/plugins/magicline/images/hidpi/icon.png +0 -0
- package/public/ckeditor/plugins/magicline/images/icon-rtl.png +0 -0
- package/public/ckeditor/plugins/magicline/images/icon.png +0 -0
- package/public/ckeditor/plugins/pastefromgdocs/filter/default.js +8 -0
- package/public/ckeditor/plugins/pastefromlibreoffice/filter/default.js +11 -0
- package/public/ckeditor/plugins/pastefromword/filter/default.js +42 -0
- package/public/ckeditor/plugins/pastetools/filter/common.js +24 -0
- package/public/ckeditor/plugins/pastetools/filter/image.js +12 -0
- package/public/ckeditor/plugins/scayt/CHANGELOG.md +4 -0
- package/public/ckeditor/plugins/scayt/LICENSE.md +28 -0
- package/public/ckeditor/plugins/scayt/README.md +81 -0
- package/public/ckeditor/plugins/scayt/dialogs/dialog.css +23 -0
- package/public/ckeditor/plugins/scayt/dialogs/options.js +32 -0
- package/public/ckeditor/plugins/scayt/dialogs/toolbar.css +71 -0
- package/public/ckeditor/plugins/scayt/skins/moono-lisa/scayt.css +25 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt +20 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/af.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/ar.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/az.js +10 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/bg.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/ca.js +14 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/cs.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/cy.js +14 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/da.js +11 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/de-ch.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/de.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/el.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/en-au.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/en-ca.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/en.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/eo.js +12 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/es-mx.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/es.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/et.js +11 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/eu.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/fa.js +12 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/fi.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js +10 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/fr.js +12 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/gl.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/he.js +12 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/hr.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/hu.js +12 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/id.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/it.js +14 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/ja.js +9 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/km.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/ko.js +10 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/ku.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/lt.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/lv.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/nb.js +11 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/nl.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/no.js +11 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/oc.js +12 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/pl.js +12 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js +11 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/pt.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/ro.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/ru.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/si.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/sk.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/sl.js +12 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/sq.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/sr-latn.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/sr.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/sv.js +11 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/th.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/tr.js +12 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/tt.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/ug.js +13 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/uk.js +12 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/vi.js +14 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js +9 -0
- package/public/ckeditor/plugins/specialchar/dialogs/lang/zh.js +9 -0
- package/public/ckeditor/plugins/specialchar/dialogs/specialchar.js +14 -0
- package/public/ckeditor/plugins/table/dialogs/table.js +22 -0
- package/public/ckeditor/plugins/tableselection/styles/tableselection.css +36 -0
- package/public/ckeditor/plugins/tabletools/dialogs/tableCell.js +18 -0
- package/public/ckeditor/plugins/widget/images/handle.png +0 -0
- package/public/ckeditor/plugins/wsc/LICENSE.md +28 -0
- package/public/ckeditor/plugins/wsc/README.md +84 -0
- package/public/ckeditor/plugins/wsc/dialogs/ciframe.html +66 -0
- package/public/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
- package/public/ckeditor/plugins/wsc/dialogs/wsc.css +82 -0
- package/public/ckeditor/plugins/wsc/dialogs/wsc.js +90 -0
- package/public/ckeditor/plugins/wsc/dialogs/wsc_ie.js +11 -0
- package/public/ckeditor/plugins/wsc/icons/hidpi/spellchecker.png +0 -0
- package/public/ckeditor/plugins/wsc/icons/spellchecker.png +0 -0
- package/public/ckeditor/plugins/wsc/lang/af.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/ar.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/bg.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/bn.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/bs.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/ca.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/cs.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/cy.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/da.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/de.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/el.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/en-au.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/en-ca.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/en-gb.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/en.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/eo.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/es.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/et.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/eu.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/fa.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/fi.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/fo.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/fr-ca.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/fr.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/gl.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/gu.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/he.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/hi.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/hr.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/hu.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/is.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/it.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/ja.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/ka.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/km.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/ko.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/ku.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/lt.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/lv.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/mk.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/mn.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/ms.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/nb.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/nl.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/no.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/pl.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/pt-br.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/pt.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/ro.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/ru.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/sk.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/sl.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/sr-latn.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/sr.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/sv.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/th.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/tr.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/ug.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/uk.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/vi.js +2 -0
- package/public/ckeditor/plugins/wsc/lang/zh-cn.js +1 -0
- package/public/ckeditor/plugins/wsc/lang/zh.js +1 -0
- package/public/ckeditor/plugins/wsc/plugin.js +5 -0
- package/public/ckeditor/plugins/wsc/skins/moono-lisa/wsc.css +43 -0
- package/public/ckeditor/skins/moono-lisa/dialog.css +5 -0
- package/public/ckeditor/skins/moono-lisa/dialog_ie.css +5 -0
- package/public/ckeditor/skins/moono-lisa/dialog_ie8.css +5 -0
- package/public/ckeditor/skins/moono-lisa/dialog_iequirks.css +5 -0
- package/public/ckeditor/skins/moono-lisa/editor.css +5 -0
- package/public/ckeditor/skins/moono-lisa/editor_gecko.css +5 -0
- package/public/ckeditor/skins/moono-lisa/editor_ie.css +5 -0
- package/public/ckeditor/skins/moono-lisa/editor_ie8.css +5 -0
- package/public/ckeditor/skins/moono-lisa/editor_iequirks.css +5 -0
- package/public/ckeditor/skins/moono-lisa/icons.png +0 -0
- package/public/ckeditor/skins/moono-lisa/icons_hidpi.png +0 -0
- package/public/ckeditor/skins/moono-lisa/images/arrow.png +0 -0
- package/public/ckeditor/skins/moono-lisa/images/close.png +0 -0
- package/public/ckeditor/skins/moono-lisa/images/hidpi/close.png +0 -0
- package/public/ckeditor/skins/moono-lisa/images/hidpi/lock-open.png +0 -0
- package/public/ckeditor/skins/moono-lisa/images/hidpi/lock.png +0 -0
- package/public/ckeditor/skins/moono-lisa/images/hidpi/refresh.png +0 -0
- package/public/ckeditor/skins/moono-lisa/images/lock-open.png +0 -0
- package/public/ckeditor/skins/moono-lisa/images/lock.png +0 -0
- package/public/ckeditor/skins/moono-lisa/images/refresh.png +0 -0
- package/public/ckeditor/skins/moono-lisa/images/spinner.gif +0 -0
- package/public/ckeditor/skins/moono-lisa/readme.md +46 -0
- package/public/ckeditor/styles.js +137 -0
- package/public/ckeditor/vendor/promise.js +13 -0
- package/public/saltcorn.css +20 -3
- package/public/saltcorn.js +3 -0
- package/restart_watcher.js +12 -2
- package/routes/actions.js +1 -15
- package/routes/admin.js +6 -23
- package/routes/api.js +51 -60
- package/routes/config.js +0 -1
- package/routes/crashlog.js +1 -4
- package/routes/delete.js +1 -2
- package/routes/edit.js +1 -2
- package/routes/eventlog.js +2 -15
- package/routes/events.js +0 -1
- package/routes/fields.js +1 -9
- package/routes/files.js +144 -64
- package/routes/homepage.js +8 -2
- package/routes/infoarch.js +12 -19
- package/routes/library.js +1 -4
- package/routes/list.js +50 -6
- package/routes/menu.js +118 -32
- package/routes/packs.js +2 -8
- package/routes/page.js +7 -8
- package/routes/pageedit.js +18 -30
- package/routes/plugins.js +21 -34
- package/routes/scapi.js +155 -184
- package/routes/search.js +6 -10
- package/routes/settings.js +1 -2
- package/routes/tables.js +1 -22
- package/routes/tenant.js +1 -9
- package/routes/utils.js +19 -19
- package/routes/view.js +7 -5
- package/routes/viewedit.js +18 -29
- package/s3storage.js +167 -0
- package/tests/admin.test.js +4 -2
- package/wrapper.js +8 -1
package/routes/search.js
CHANGED
|
@@ -8,7 +8,7 @@ const Router = require("express-promise-router");
|
|
|
8
8
|
const { span, h5, h4, nbsp, p, a, div } = require("@saltcorn/markup/tags");
|
|
9
9
|
|
|
10
10
|
const { getState } = require("@saltcorn/data/db/state");
|
|
11
|
-
const {
|
|
11
|
+
const { isAdmin, error_catcher } = require("./utils.js");
|
|
12
12
|
const Form = require("@saltcorn/data/models/form");
|
|
13
13
|
const Table = require("@saltcorn/data/models/table");
|
|
14
14
|
const View = require("@saltcorn/data/models/view");
|
|
@@ -27,9 +27,9 @@ const router = new Router();
|
|
|
27
27
|
module.exports = router;
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
|
-
* @param {object[]} tables
|
|
31
|
-
* @param {object[]} views
|
|
32
|
-
* @param {object} req
|
|
30
|
+
* @param {object[]} tables
|
|
31
|
+
* @param {object[]} views
|
|
32
|
+
* @param {object} req
|
|
33
33
|
* @returns {Forms}
|
|
34
34
|
*/
|
|
35
35
|
const searchConfigForm = (tables, views, req) => {
|
|
@@ -75,7 +75,6 @@ const searchConfigForm = (tables, views, req) => {
|
|
|
75
75
|
*/
|
|
76
76
|
router.get(
|
|
77
77
|
"/config",
|
|
78
|
-
setTenant,
|
|
79
78
|
isAdmin,
|
|
80
79
|
error_catcher(async (req, res) => {
|
|
81
80
|
var views = await View.find({}, { orderBy: "name" });
|
|
@@ -95,7 +94,6 @@ router.get(
|
|
|
95
94
|
})
|
|
96
95
|
);
|
|
97
96
|
|
|
98
|
-
|
|
99
97
|
/**
|
|
100
98
|
* @name post/config
|
|
101
99
|
* @function
|
|
@@ -104,7 +102,6 @@ router.get(
|
|
|
104
102
|
*/
|
|
105
103
|
router.post(
|
|
106
104
|
"/config",
|
|
107
|
-
setTenant,
|
|
108
105
|
isAdmin,
|
|
109
106
|
error_catcher(async (req, res) => {
|
|
110
107
|
var views = await View.find({}, { orderBy: "name" });
|
|
@@ -154,8 +151,8 @@ const searchForm = () =>
|
|
|
154
151
|
* @param {*} opts._page
|
|
155
152
|
* @param {*} opts.table
|
|
156
153
|
* @param {object} opts
|
|
157
|
-
* @param {object} req
|
|
158
|
-
* @param {object} res
|
|
154
|
+
* @param {object} req
|
|
155
|
+
* @param {object} res
|
|
159
156
|
* @returns {Promise<void>}
|
|
160
157
|
*/
|
|
161
158
|
const runSearch = async ({ q, _page, table }, req, res) => {
|
|
@@ -253,7 +250,6 @@ const runSearch = async ({ q, _page, table }, req, res) => {
|
|
|
253
250
|
*/
|
|
254
251
|
router.get(
|
|
255
252
|
"/",
|
|
256
|
-
setTenant,
|
|
257
253
|
error_catcher(async (req, res) => {
|
|
258
254
|
if (req.query && req.query.q) {
|
|
259
255
|
await runSearch(req.query, req, res);
|
package/routes/settings.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
const Router = require("express-promise-router");
|
|
8
8
|
const { i, h3, p, a } = require("@saltcorn/markup/tags");
|
|
9
|
-
const {
|
|
9
|
+
const { isAdmin, error_catcher } = require("./utils.js");
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* @type {object}
|
|
@@ -46,7 +46,6 @@ const settingsCard = ({ title, icon, blurb, href }) => ({
|
|
|
46
46
|
*/
|
|
47
47
|
router.get(
|
|
48
48
|
"/",
|
|
49
|
-
setTenant,
|
|
50
49
|
isAdmin,
|
|
51
50
|
error_catcher(async (req, res) => {
|
|
52
51
|
res.sendWrap(req.__("Settings"), {
|
package/routes/tables.js
CHANGED
|
@@ -22,7 +22,7 @@ const {
|
|
|
22
22
|
post_dropdown_item,
|
|
23
23
|
} = require("@saltcorn/markup");
|
|
24
24
|
const { recalculate_for_stored } = require("@saltcorn/data/models/expression");
|
|
25
|
-
const {
|
|
25
|
+
const { isAdmin, error_catcher } = require("./utils.js");
|
|
26
26
|
const Form = require("@saltcorn/data/models/form");
|
|
27
27
|
const {
|
|
28
28
|
span,
|
|
@@ -171,7 +171,6 @@ const tableForm = async (table, req) => {
|
|
|
171
171
|
*/
|
|
172
172
|
router.get(
|
|
173
173
|
"/new/",
|
|
174
|
-
setTenant,
|
|
175
174
|
isAdmin,
|
|
176
175
|
error_catcher(async (req, res) => {
|
|
177
176
|
res.sendWrap(req.__(`New table`), {
|
|
@@ -241,7 +240,6 @@ const discoverForm = (tables, req) => {
|
|
|
241
240
|
*/
|
|
242
241
|
router.get(
|
|
243
242
|
"/discover",
|
|
244
|
-
setTenant,
|
|
245
243
|
isAdmin,
|
|
246
244
|
error_catcher(async (req, res) => {
|
|
247
245
|
// get list of discoverable tables
|
|
@@ -276,7 +274,6 @@ router.get(
|
|
|
276
274
|
*/
|
|
277
275
|
router.post(
|
|
278
276
|
"/discover",
|
|
279
|
-
setTenant,
|
|
280
277
|
isAdmin,
|
|
281
278
|
error_catcher(async (req, res) => {
|
|
282
279
|
const tbls = await discoverable_tables();
|
|
@@ -304,7 +301,6 @@ router.post(
|
|
|
304
301
|
*/
|
|
305
302
|
router.get(
|
|
306
303
|
"/create-from-csv",
|
|
307
|
-
setTenant,
|
|
308
304
|
isAdmin,
|
|
309
305
|
error_catcher(async (req, res) => {
|
|
310
306
|
res.sendWrap(req.__(`Create table from CSV file`), {
|
|
@@ -356,7 +352,6 @@ router.get(
|
|
|
356
352
|
*/
|
|
357
353
|
router.post(
|
|
358
354
|
"/create-from-csv",
|
|
359
|
-
setTenant,
|
|
360
355
|
isAdmin,
|
|
361
356
|
error_catcher(async (req, res) => {
|
|
362
357
|
if (req.body.name && req.files && req.files.file) {
|
|
@@ -405,7 +400,6 @@ router.post(
|
|
|
405
400
|
*/
|
|
406
401
|
router.get(
|
|
407
402
|
"/relationship-diagram",
|
|
408
|
-
setTenant,
|
|
409
403
|
isAdmin,
|
|
410
404
|
error_catcher(async (req, res) => {
|
|
411
405
|
const tables = await Table.find_with_external({}, { orderBy: "name" });
|
|
@@ -535,7 +529,6 @@ const attribBadges = (f) => {
|
|
|
535
529
|
*/
|
|
536
530
|
router.get(
|
|
537
531
|
"/:idorname",
|
|
538
|
-
setTenant,
|
|
539
532
|
isAdmin,
|
|
540
533
|
error_catcher(async (req, res) => {
|
|
541
534
|
const { idorname } = req.params;
|
|
@@ -843,7 +836,6 @@ router.get(
|
|
|
843
836
|
*/
|
|
844
837
|
router.post(
|
|
845
838
|
"/",
|
|
846
|
-
setTenant,
|
|
847
839
|
isAdmin,
|
|
848
840
|
error_catcher(async (req, res) => {
|
|
849
841
|
const v = req.body;
|
|
@@ -918,7 +910,6 @@ router.post(
|
|
|
918
910
|
*/
|
|
919
911
|
router.post(
|
|
920
912
|
"/delete/:id",
|
|
921
|
-
setTenant,
|
|
922
913
|
isAdmin,
|
|
923
914
|
error_catcher(async (req, res) => {
|
|
924
915
|
const { id } = req.params;
|
|
@@ -945,7 +936,6 @@ router.post(
|
|
|
945
936
|
);
|
|
946
937
|
router.post(
|
|
947
938
|
"/forget-table/:id",
|
|
948
|
-
setTenant,
|
|
949
939
|
isAdmin,
|
|
950
940
|
error_catcher(async (req, res) => {
|
|
951
941
|
const { id } = req.params;
|
|
@@ -1000,7 +990,6 @@ const tableBadges = (t, req) => {
|
|
|
1000
990
|
*/
|
|
1001
991
|
router.get(
|
|
1002
992
|
"/",
|
|
1003
|
-
setTenant,
|
|
1004
993
|
isAdmin,
|
|
1005
994
|
error_catcher(async (req, res) => {
|
|
1006
995
|
const rows = await Table.find_with_external({}, { orderBy: "name" });
|
|
@@ -1095,7 +1084,6 @@ router.get(
|
|
|
1095
1084
|
*/
|
|
1096
1085
|
router.get(
|
|
1097
1086
|
"/download/:name",
|
|
1098
|
-
setTenant,
|
|
1099
1087
|
isAdmin,
|
|
1100
1088
|
error_catcher(async (req, res) => {
|
|
1101
1089
|
const { name } = req.params;
|
|
@@ -1125,7 +1113,6 @@ router.get(
|
|
|
1125
1113
|
*/
|
|
1126
1114
|
router.get(
|
|
1127
1115
|
"/constraints/:id",
|
|
1128
|
-
setTenant,
|
|
1129
1116
|
isAdmin,
|
|
1130
1117
|
error_catcher(async (req, res) => {
|
|
1131
1118
|
const { id } = req.params;
|
|
@@ -1203,7 +1190,6 @@ const constraintForm = (req, table_id, fields) =>
|
|
|
1203
1190
|
*/
|
|
1204
1191
|
router.get(
|
|
1205
1192
|
"/add-constraint/:id",
|
|
1206
|
-
setTenant,
|
|
1207
1193
|
isAdmin,
|
|
1208
1194
|
error_catcher(async (req, res) => {
|
|
1209
1195
|
const { id } = req.params;
|
|
@@ -1248,7 +1234,6 @@ router.get(
|
|
|
1248
1234
|
*/
|
|
1249
1235
|
router.post(
|
|
1250
1236
|
"/add-constraint/:id",
|
|
1251
|
-
setTenant,
|
|
1252
1237
|
isAdmin,
|
|
1253
1238
|
error_catcher(async (req, res) => {
|
|
1254
1239
|
const { id } = req.params;
|
|
@@ -1303,7 +1288,6 @@ const renameForm = (table_id, req) =>
|
|
|
1303
1288
|
*/
|
|
1304
1289
|
router.get(
|
|
1305
1290
|
"/rename/:id",
|
|
1306
|
-
setTenant,
|
|
1307
1291
|
isAdmin,
|
|
1308
1292
|
error_catcher(async (req, res) => {
|
|
1309
1293
|
const { id } = req.params;
|
|
@@ -1341,7 +1325,6 @@ router.get(
|
|
|
1341
1325
|
*/
|
|
1342
1326
|
router.post(
|
|
1343
1327
|
"/rename/:id",
|
|
1344
|
-
setTenant,
|
|
1345
1328
|
isAdmin,
|
|
1346
1329
|
error_catcher(async (req, res) => {
|
|
1347
1330
|
const { id } = req.params;
|
|
@@ -1366,7 +1349,6 @@ router.post(
|
|
|
1366
1349
|
*/
|
|
1367
1350
|
router.post(
|
|
1368
1351
|
"/delete-constraint/:id",
|
|
1369
|
-
setTenant,
|
|
1370
1352
|
isAdmin,
|
|
1371
1353
|
error_catcher(async (req, res) => {
|
|
1372
1354
|
const { id } = req.params;
|
|
@@ -1385,7 +1367,6 @@ router.post(
|
|
|
1385
1367
|
*/
|
|
1386
1368
|
router.post(
|
|
1387
1369
|
"/upload_to_table/:name",
|
|
1388
|
-
setTenant,
|
|
1389
1370
|
isAdmin,
|
|
1390
1371
|
error_catcher(async (req, res) => {
|
|
1391
1372
|
const { name } = req.params;
|
|
@@ -1421,7 +1402,6 @@ router.post(
|
|
|
1421
1402
|
*/
|
|
1422
1403
|
router.post(
|
|
1423
1404
|
"/delete-all-rows/:name",
|
|
1424
|
-
setTenant,
|
|
1425
1405
|
isAdmin,
|
|
1426
1406
|
error_catcher(async (req, res) => {
|
|
1427
1407
|
const { name } = req.params;
|
|
@@ -1447,7 +1427,6 @@ router.post(
|
|
|
1447
1427
|
*/
|
|
1448
1428
|
router.post(
|
|
1449
1429
|
"/recalc-stored/:name",
|
|
1450
|
-
setTenant,
|
|
1451
1430
|
isAdmin,
|
|
1452
1431
|
error_catcher(async (req, res) => {
|
|
1453
1432
|
const { name } = req.params;
|
package/routes/tenant.js
CHANGED
|
@@ -35,7 +35,7 @@ const {
|
|
|
35
35
|
const db = require("@saltcorn/data/db");
|
|
36
36
|
const url = require("url");
|
|
37
37
|
const { loadAllPlugins, loadAndSaveNewPlugin } = require("../load_plugins");
|
|
38
|
-
const {
|
|
38
|
+
const { isAdmin, error_catcher } = require("./utils.js");
|
|
39
39
|
const User = require("@saltcorn/data/models/user");
|
|
40
40
|
const File = require("@saltcorn/data/models/file");
|
|
41
41
|
const {
|
|
@@ -115,7 +115,6 @@ const is_ip_address = (hostname) => {
|
|
|
115
115
|
*/
|
|
116
116
|
router.get(
|
|
117
117
|
"/create",
|
|
118
|
-
setTenant,
|
|
119
118
|
error_catcher(async (req, res) => {
|
|
120
119
|
if (
|
|
121
120
|
!db.is_it_multi_tenant() ||
|
|
@@ -207,7 +206,6 @@ const getNewURL = (req, subdomain) => {
|
|
|
207
206
|
*/
|
|
208
207
|
router.post(
|
|
209
208
|
"/create",
|
|
210
|
-
setTenant,
|
|
211
209
|
error_catcher(async (req, res) => {
|
|
212
210
|
// check that multi-tenancy is enabled
|
|
213
211
|
if (
|
|
@@ -306,7 +304,6 @@ router.post(
|
|
|
306
304
|
*/
|
|
307
305
|
router.get(
|
|
308
306
|
"/list",
|
|
309
|
-
setTenant,
|
|
310
307
|
isAdmin,
|
|
311
308
|
error_catcher(async (req, res) => {
|
|
312
309
|
if (
|
|
@@ -390,7 +387,6 @@ const tenant_settings_form = (req) =>
|
|
|
390
387
|
*/
|
|
391
388
|
router.get(
|
|
392
389
|
"/settings",
|
|
393
|
-
setTenant,
|
|
394
390
|
isAdmin,
|
|
395
391
|
error_catcher(async (req, res) => {
|
|
396
392
|
if (
|
|
@@ -425,7 +421,6 @@ router.get(
|
|
|
425
421
|
*/
|
|
426
422
|
router.post(
|
|
427
423
|
"/settings",
|
|
428
|
-
setTenant,
|
|
429
424
|
isAdmin,
|
|
430
425
|
error_catcher(async (req, res) => {
|
|
431
426
|
const form = await tenant_settings_form(req);
|
|
@@ -502,7 +497,6 @@ const get_tenant_info = async (subdomain) => {
|
|
|
502
497
|
*/
|
|
503
498
|
router.get(
|
|
504
499
|
"/info/:subdomain",
|
|
505
|
-
setTenant,
|
|
506
500
|
isAdmin,
|
|
507
501
|
error_catcher(async (req, res) => {
|
|
508
502
|
if (
|
|
@@ -648,7 +642,6 @@ router.get(
|
|
|
648
642
|
*/
|
|
649
643
|
router.post(
|
|
650
644
|
"/info/:subdomain",
|
|
651
|
-
setTenant,
|
|
652
645
|
isAdmin,
|
|
653
646
|
error_catcher(async (req, res) => {
|
|
654
647
|
if (
|
|
@@ -680,7 +673,6 @@ router.post(
|
|
|
680
673
|
*/
|
|
681
674
|
router.post(
|
|
682
675
|
"/delete/:sub",
|
|
683
|
-
setTenant,
|
|
684
676
|
isAdmin,
|
|
685
677
|
error_catcher(async (req, res) => {
|
|
686
678
|
if (
|
package/routes/utils.js
CHANGED
|
@@ -20,9 +20,9 @@ const { validateHeaderName, validateHeaderValue } = require("http");
|
|
|
20
20
|
const Crash = require("@saltcorn/data/models/crash");
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
-
* @param {object} req
|
|
24
|
-
* @param {object} res
|
|
25
|
-
* @param {function} next
|
|
23
|
+
* @param {object} req
|
|
24
|
+
* @param {object} res
|
|
25
|
+
* @param {function} next
|
|
26
26
|
* @returns {void}
|
|
27
27
|
*/
|
|
28
28
|
function loggedIn(req, res, next) {
|
|
@@ -35,9 +35,9 @@ function loggedIn(req, res, next) {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
|
-
* @param {object} req
|
|
39
|
-
* @param {object} res
|
|
40
|
-
* @param {function} next
|
|
38
|
+
* @param {object} req
|
|
39
|
+
* @param {object} res
|
|
40
|
+
* @param {function} next
|
|
41
41
|
* @returns {void}
|
|
42
42
|
*/
|
|
43
43
|
function isAdmin(req, res, next) {
|
|
@@ -54,8 +54,8 @@ function isAdmin(req, res, next) {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
/**
|
|
57
|
-
* @param {object} req
|
|
58
|
-
* @param {object} res
|
|
57
|
+
* @param {object} req
|
|
58
|
+
* @param {object} res
|
|
59
59
|
* @param {string} state
|
|
60
60
|
* @returns {void}
|
|
61
61
|
*/
|
|
@@ -67,8 +67,8 @@ const setLanguage = (req, res, state) => {
|
|
|
67
67
|
};
|
|
68
68
|
|
|
69
69
|
/**
|
|
70
|
-
* @param {object} res
|
|
71
|
-
* @param {string} state
|
|
70
|
+
* @param {object} res
|
|
71
|
+
* @param {string} state
|
|
72
72
|
* @returns {void}
|
|
73
73
|
*/
|
|
74
74
|
const set_custom_http_headers = (res, state) => {
|
|
@@ -90,7 +90,7 @@ const set_custom_http_headers = (res, state) => {
|
|
|
90
90
|
};
|
|
91
91
|
|
|
92
92
|
/**
|
|
93
|
-
* @param {object} req
|
|
93
|
+
* @param {object} req
|
|
94
94
|
* @returns {string}
|
|
95
95
|
*/
|
|
96
96
|
const get_tenant_from_req = (req) => {
|
|
@@ -106,9 +106,9 @@ const get_tenant_from_req = (req) => {
|
|
|
106
106
|
};
|
|
107
107
|
|
|
108
108
|
/**
|
|
109
|
-
* @param {object} req
|
|
110
|
-
* @param {object} res
|
|
111
|
-
* @param {function} next
|
|
109
|
+
* @param {object} req
|
|
110
|
+
* @param {object} res
|
|
111
|
+
* @param {function} next
|
|
112
112
|
*/
|
|
113
113
|
const setTenant = (req, res, next) => {
|
|
114
114
|
if (db.is_it_multi_tenant()) {
|
|
@@ -141,7 +141,7 @@ const setTenant = (req, res, next) => {
|
|
|
141
141
|
};
|
|
142
142
|
|
|
143
143
|
/**
|
|
144
|
-
* @param {object} req
|
|
144
|
+
* @param {object} req
|
|
145
145
|
* @returns {input}
|
|
146
146
|
*/
|
|
147
147
|
const csrfField = (req) =>
|
|
@@ -152,7 +152,7 @@ const csrfField = (req) =>
|
|
|
152
152
|
});
|
|
153
153
|
|
|
154
154
|
/**
|
|
155
|
-
* @param {function} fn
|
|
155
|
+
* @param {function} fn
|
|
156
156
|
* @returns {function}
|
|
157
157
|
*/
|
|
158
158
|
const error_catcher = (fn) => (request, response, next) => {
|
|
@@ -160,8 +160,8 @@ const error_catcher = (fn) => (request, response, next) => {
|
|
|
160
160
|
};
|
|
161
161
|
|
|
162
162
|
/**
|
|
163
|
-
* @param {string|object} contents
|
|
164
|
-
* @param {string} viewname
|
|
163
|
+
* @param {string|object} contents
|
|
164
|
+
* @param {string} viewname
|
|
165
165
|
* @returns {string}
|
|
166
166
|
*/
|
|
167
167
|
const scan_for_page_title = (contents, viewname) => {
|
|
@@ -224,10 +224,10 @@ module.exports = {
|
|
|
224
224
|
csrfField,
|
|
225
225
|
loggedIn,
|
|
226
226
|
isAdmin,
|
|
227
|
-
setTenant,
|
|
228
227
|
get_base_url,
|
|
229
228
|
error_catcher,
|
|
230
229
|
scan_for_page_title,
|
|
231
230
|
getGitRevision,
|
|
232
231
|
getSessionStore,
|
|
232
|
+
setTenant,
|
|
233
233
|
};
|
package/routes/view.js
CHANGED
|
@@ -13,12 +13,12 @@ const Page = require("@saltcorn/data/models/page");
|
|
|
13
13
|
const { div, text, i, a } = require("@saltcorn/markup/tags");
|
|
14
14
|
const { renderForm, link } = require("@saltcorn/markup");
|
|
15
15
|
const {
|
|
16
|
-
setTenant,
|
|
17
16
|
isAdmin,
|
|
18
17
|
error_catcher,
|
|
19
18
|
scan_for_page_title,
|
|
20
19
|
} = require("../routes/utils.js");
|
|
21
20
|
const { add_edit_bar } = require("../markup/admin.js");
|
|
21
|
+
const { InvalidConfiguration } = require("@saltcorn/data/utils");
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* @type {object}
|
|
@@ -38,7 +38,6 @@ module.exports = router;
|
|
|
38
38
|
*/
|
|
39
39
|
router.get(
|
|
40
40
|
"/:viewname",
|
|
41
|
-
setTenant,
|
|
42
41
|
error_catcher(async (req, res) => {
|
|
43
42
|
const { viewname } = req.params;
|
|
44
43
|
|
|
@@ -82,7 +81,6 @@ router.get(
|
|
|
82
81
|
*/
|
|
83
82
|
router.post(
|
|
84
83
|
"/:viewname/preview",
|
|
85
|
-
setTenant,
|
|
86
84
|
isAdmin,
|
|
87
85
|
error_catcher(async (req, res) => {
|
|
88
86
|
const { viewname } = req.params;
|
|
@@ -120,7 +118,6 @@ router.post(
|
|
|
120
118
|
*/
|
|
121
119
|
router.post(
|
|
122
120
|
"/:viewname/:route",
|
|
123
|
-
setTenant,
|
|
124
121
|
error_catcher(async (req, res) => {
|
|
125
122
|
const { viewname, route } = req.params;
|
|
126
123
|
const role = req.isAuthenticated() ? req.user.role_id : 10;
|
|
@@ -146,7 +143,6 @@ router.post(
|
|
|
146
143
|
*/
|
|
147
144
|
router.post(
|
|
148
145
|
"/:viewname",
|
|
149
|
-
setTenant,
|
|
150
146
|
error_catcher(async (req, res) => {
|
|
151
147
|
const { viewname } = req.params;
|
|
152
148
|
const role = req.isAuthenticated() ? req.user.role_id : 10;
|
|
@@ -161,6 +157,12 @@ router.post(
|
|
|
161
157
|
) {
|
|
162
158
|
req.flash("danger", req.__("Not authorized"));
|
|
163
159
|
res.redirect("/");
|
|
160
|
+
} else if (!view.runPost) {
|
|
161
|
+
throw new InvalidConfiguration(
|
|
162
|
+
`View ${text(viewname)} with template ${
|
|
163
|
+
view.viewtemplate
|
|
164
|
+
} does not supply a POST handler`
|
|
165
|
+
);
|
|
164
166
|
} else {
|
|
165
167
|
await view.runPost(req.query, req.body, { res, req });
|
|
166
168
|
}
|
package/routes/viewedit.js
CHANGED
|
@@ -30,7 +30,7 @@ const {
|
|
|
30
30
|
} = require("@saltcorn/markup/tags");
|
|
31
31
|
|
|
32
32
|
const { getState } = require("@saltcorn/data/db/state");
|
|
33
|
-
const {
|
|
33
|
+
const { isAdmin, error_catcher } = require("./utils.js");
|
|
34
34
|
const Form = require("@saltcorn/data/models/form");
|
|
35
35
|
const Field = require("@saltcorn/data/models/field");
|
|
36
36
|
const Table = require("@saltcorn/data/models/table");
|
|
@@ -53,9 +53,9 @@ const router = new Router();
|
|
|
53
53
|
module.exports = router;
|
|
54
54
|
|
|
55
55
|
/**
|
|
56
|
-
* @param {object} view
|
|
57
|
-
* @param {object[]} roles
|
|
58
|
-
* @param {object} req
|
|
56
|
+
* @param {object} view
|
|
57
|
+
* @param {object[]} roles
|
|
58
|
+
* @param {object} req
|
|
59
59
|
* @returns {Form}
|
|
60
60
|
*/
|
|
61
61
|
const editViewRoleForm = (view, roles, req) =>
|
|
@@ -67,8 +67,8 @@ const editViewRoleForm = (view, roles, req) =>
|
|
|
67
67
|
});
|
|
68
68
|
|
|
69
69
|
/**
|
|
70
|
-
* @param {object} view
|
|
71
|
-
* @param {object} req
|
|
70
|
+
* @param {object} view
|
|
71
|
+
* @param {object} req
|
|
72
72
|
* @returns {div}
|
|
73
73
|
*/
|
|
74
74
|
const view_dropdown = (view, req) =>
|
|
@@ -115,7 +115,6 @@ const view_dropdown = (view, req) =>
|
|
|
115
115
|
*/
|
|
116
116
|
router.get(
|
|
117
117
|
"/",
|
|
118
|
-
setTenant,
|
|
119
118
|
isAdmin,
|
|
120
119
|
error_catcher(async (req, res) => {
|
|
121
120
|
var orderBy = "name";
|
|
@@ -218,19 +217,19 @@ router.get(
|
|
|
218
217
|
);
|
|
219
218
|
|
|
220
219
|
/**
|
|
221
|
-
* @param {object} o
|
|
222
|
-
* @param {function} f
|
|
220
|
+
* @param {object} o
|
|
221
|
+
* @param {function} f
|
|
223
222
|
* @returns {object}
|
|
224
223
|
*/
|
|
225
224
|
const mapObjectValues = (o, f) =>
|
|
226
225
|
Object.fromEntries(Object.entries(o).map(([k, v]) => [k, f(v)]));
|
|
227
226
|
|
|
228
227
|
/**
|
|
229
|
-
* @param {object} req
|
|
230
|
-
* @param {object} tableOptions
|
|
231
|
-
* @param {object[]} roles
|
|
232
|
-
* @param {object[]} pages
|
|
233
|
-
* @param {object} values
|
|
228
|
+
* @param {object} req
|
|
229
|
+
* @param {object} tableOptions
|
|
230
|
+
* @param {object[]} roles
|
|
231
|
+
* @param {object[]} pages
|
|
232
|
+
* @param {object} values
|
|
234
233
|
* @returns {Form}
|
|
235
234
|
*/
|
|
236
235
|
const viewForm = (req, tableOptions, roles, pages, values) => {
|
|
@@ -328,7 +327,6 @@ const viewForm = (req, tableOptions, roles, pages, values) => {
|
|
|
328
327
|
*/
|
|
329
328
|
router.get(
|
|
330
329
|
"/edit/:viewname",
|
|
331
|
-
setTenant,
|
|
332
330
|
isAdmin,
|
|
333
331
|
error_catcher(async (req, res) => {
|
|
334
332
|
const { viewname } = req.params;
|
|
@@ -376,7 +374,6 @@ router.get(
|
|
|
376
374
|
*/
|
|
377
375
|
router.get(
|
|
378
376
|
"/new",
|
|
379
|
-
setTenant,
|
|
380
377
|
isAdmin,
|
|
381
378
|
error_catcher(async (req, res) => {
|
|
382
379
|
const tables = await Table.find_with_external();
|
|
@@ -414,7 +411,6 @@ router.get(
|
|
|
414
411
|
*/
|
|
415
412
|
router.post(
|
|
416
413
|
"/save",
|
|
417
|
-
setTenant,
|
|
418
414
|
isAdmin,
|
|
419
415
|
error_catcher(async (req, res) => {
|
|
420
416
|
const tables = await Table.find_with_external();
|
|
@@ -484,11 +480,11 @@ router.post(
|
|
|
484
480
|
);
|
|
485
481
|
|
|
486
482
|
/**
|
|
487
|
-
* @param {object} view
|
|
488
|
-
* @param {Workflow} wf
|
|
489
|
-
* @param {object} wfres
|
|
490
|
-
* @param {object} req
|
|
491
|
-
* @param {object} res
|
|
483
|
+
* @param {object} view
|
|
484
|
+
* @param {Workflow} wf
|
|
485
|
+
* @param {object} wfres
|
|
486
|
+
* @param {object} req
|
|
487
|
+
* @param {object} res
|
|
492
488
|
* @returns {void}
|
|
493
489
|
*/
|
|
494
490
|
const respondWorkflow = (view, wf, wfres, req, res) => {
|
|
@@ -532,7 +528,6 @@ const respondWorkflow = (view, wf, wfres, req, res) => {
|
|
|
532
528
|
*/
|
|
533
529
|
router.get(
|
|
534
530
|
"/config/:name",
|
|
535
|
-
setTenant,
|
|
536
531
|
isAdmin,
|
|
537
532
|
error_catcher(async (req, res) => {
|
|
538
533
|
const { name } = req.params;
|
|
@@ -565,7 +560,6 @@ router.get(
|
|
|
565
560
|
*/
|
|
566
561
|
router.post(
|
|
567
562
|
"/config/:name",
|
|
568
|
-
setTenant,
|
|
569
563
|
isAdmin,
|
|
570
564
|
error_catcher(async (req, res) => {
|
|
571
565
|
const { name } = req.params;
|
|
@@ -585,7 +579,6 @@ router.post(
|
|
|
585
579
|
*/
|
|
586
580
|
router.post(
|
|
587
581
|
"/add-to-menu/:id",
|
|
588
|
-
setTenant,
|
|
589
582
|
isAdmin,
|
|
590
583
|
error_catcher(async (req, res) => {
|
|
591
584
|
const { id } = req.params;
|
|
@@ -615,7 +608,6 @@ router.post(
|
|
|
615
608
|
*/
|
|
616
609
|
router.post(
|
|
617
610
|
"/clone/:id",
|
|
618
|
-
setTenant,
|
|
619
611
|
isAdmin,
|
|
620
612
|
error_catcher(async (req, res) => {
|
|
621
613
|
const { id } = req.params;
|
|
@@ -637,7 +629,6 @@ router.post(
|
|
|
637
629
|
*/
|
|
638
630
|
router.post(
|
|
639
631
|
"/delete/:id",
|
|
640
|
-
setTenant,
|
|
641
632
|
isAdmin,
|
|
642
633
|
error_catcher(async (req, res) => {
|
|
643
634
|
const { id } = req.params;
|
|
@@ -655,7 +646,6 @@ router.post(
|
|
|
655
646
|
*/
|
|
656
647
|
router.post(
|
|
657
648
|
"/savebuilder/:id",
|
|
658
|
-
setTenant,
|
|
659
649
|
isAdmin,
|
|
660
650
|
error_catcher(async (req, res) => {
|
|
661
651
|
const { id } = req.params;
|
|
@@ -679,7 +669,6 @@ router.post(
|
|
|
679
669
|
*/
|
|
680
670
|
router.post(
|
|
681
671
|
"/setrole/:id",
|
|
682
|
-
setTenant,
|
|
683
672
|
isAdmin,
|
|
684
673
|
error_catcher(async (req, res) => {
|
|
685
674
|
const { id } = req.params;
|