@saltcorn/server 1.3.0-beta.5 → 1.3.0-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.
Files changed (383) hide show
  1. package/auth/routes.js +21 -4
  2. package/docs/assets/search.js +1 -1
  3. package/docs/classes/_saltcorn_common_code.Relation.html +10 -10
  4. package/docs/classes/_saltcorn_common_code.RelationsFinder.html +5 -5
  5. package/docs/classes/_saltcorn_data.models.Crash.html +17 -17
  6. package/docs/classes/_saltcorn_data.models.EventLog-1.html +19 -19
  7. package/docs/classes/_saltcorn_data.models.Field.html +73 -73
  8. package/docs/classes/_saltcorn_data.models.FieldRepeat.html +16 -16
  9. package/docs/classes/_saltcorn_data.models.File-1.html +48 -48
  10. package/docs/classes/_saltcorn_data.models.Form-1.html +38 -38
  11. package/docs/classes/_saltcorn_data.models.Library.html +13 -13
  12. package/docs/classes/_saltcorn_data.models.Page.html +24 -24
  13. package/docs/classes/_saltcorn_data.models.PageGroup-1.html +25 -25
  14. package/docs/classes/_saltcorn_data.models.Plugin.html +25 -25
  15. package/docs/classes/_saltcorn_data.models.Role.html +9 -9
  16. package/docs/classes/_saltcorn_data.models.Table-1.html +92 -92
  17. package/docs/classes/_saltcorn_data.models.TableConstraint.html +14 -14
  18. package/docs/classes/_saltcorn_data.models.Trigger.html +39 -39
  19. package/docs/classes/_saltcorn_data.models.User.html +48 -48
  20. package/docs/classes/_saltcorn_data.models.View-1.html +54 -54
  21. package/docs/classes/_saltcorn_data.models.Workflow.html +17 -17
  22. package/docs/classes/_saltcorn_data.models.WorkflowRun.html +35 -35
  23. package/docs/classes/_saltcorn_data.models.WorkflowStep.html +25 -25
  24. package/docs/classes/_saltcorn_data.models.WorkflowTrace.html +18 -18
  25. package/docs/classes/_saltcorn_mobile_builder.MobileBuilder.html +36 -36
  26. package/docs/enums/_saltcorn_common_code.RelationType.html +7 -7
  27. package/docs/enums/_saltcorn_common_code.ViewDisplayType.html +4 -4
  28. package/docs/functions/_saltcorn_admin_models.backup.create_backup.html +1 -1
  29. package/docs/functions/_saltcorn_admin_models.backup.create_csv_from_rows.html +1 -1
  30. package/docs/functions/_saltcorn_admin_models.backup.restore.html +1 -1
  31. package/docs/functions/_saltcorn_admin_models.pack.add_to_menu.html +1 -1
  32. package/docs/functions/_saltcorn_admin_models.pack.can_install_pack.html +1 -1
  33. package/docs/functions/_saltcorn_admin_models.pack.fetch_available_packs.html +1 -1
  34. package/docs/functions/_saltcorn_admin_models.pack.fetch_pack_by_name.html +1 -1
  35. package/docs/functions/_saltcorn_admin_models.pack.install_pack.html +1 -1
  36. package/docs/functions/_saltcorn_admin_models.pack.library_pack.html +1 -1
  37. package/docs/functions/_saltcorn_admin_models.pack.model_instance_pack.html +1 -1
  38. package/docs/functions/_saltcorn_admin_models.pack.model_pack.html +1 -1
  39. package/docs/functions/_saltcorn_admin_models.pack.page_group_pack.html +1 -1
  40. package/docs/functions/_saltcorn_admin_models.pack.page_pack.html +1 -1
  41. package/docs/functions/_saltcorn_admin_models.pack.plugin_pack.html +1 -1
  42. package/docs/functions/_saltcorn_admin_models.pack.role_pack.html +1 -1
  43. package/docs/functions/_saltcorn_admin_models.pack.table_pack.html +1 -1
  44. package/docs/functions/_saltcorn_admin_models.pack.trigger_pack.html +1 -1
  45. package/docs/functions/_saltcorn_admin_models.pack.uninstall_pack.html +1 -1
  46. package/docs/functions/_saltcorn_admin_models.pack.view_pack.html +1 -1
  47. package/docs/functions/_saltcorn_admin_models.tenant.copy_tenant_template.html +1 -1
  48. package/docs/functions/_saltcorn_admin_models.tenant.create_tenant.html +1 -1
  49. package/docs/functions/_saltcorn_admin_models.tenant.deleteTenant.html +1 -1
  50. package/docs/functions/_saltcorn_admin_models.tenant.domain_sanitize.html +1 -1
  51. package/docs/functions/_saltcorn_admin_models.tenant.eachTenant.html +1 -1
  52. package/docs/functions/_saltcorn_admin_models.tenant.getAllTenantRows.html +1 -1
  53. package/docs/functions/_saltcorn_admin_models.tenant.getAllTenants.html +1 -1
  54. package/docs/functions/_saltcorn_admin_models.tenant.insertTenant.html +1 -1
  55. package/docs/functions/_saltcorn_admin_models.tenant.switchToTenant.html +1 -1
  56. package/docs/functions/_saltcorn_common_code.buildTableCaches.html +1 -1
  57. package/docs/functions/_saltcorn_common_code.parseLegacyRelation.html +1 -1
  58. package/docs/functions/_saltcorn_common_code.parseRelationPath.html +1 -1
  59. package/docs/functions/_saltcorn_data.models.config.check_email_mask.html +1 -1
  60. package/docs/functions/_saltcorn_data.models.config.deleteConfig.html +1 -1
  61. package/docs/functions/_saltcorn_data.models.config.getAllConfig.html +1 -1
  62. package/docs/functions/_saltcorn_data.models.config.getConfig.html +1 -1
  63. package/docs/functions/_saltcorn_data.models.config.get_base_url.html +1 -1
  64. package/docs/functions/_saltcorn_data.models.config.get_latest_npm_version.html +1 -1
  65. package/docs/functions/_saltcorn_data.models.config.remove_from_menu.html +1 -1
  66. package/docs/functions/_saltcorn_data.models.config.save_menu_items.html +1 -1
  67. package/docs/functions/_saltcorn_data.models.config.setConfig.html +1 -1
  68. package/docs/functions/_saltcorn_data.models.discovery.discover_tables.html +1 -1
  69. package/docs/functions/_saltcorn_data.models.discovery.discoverable_tables.html +1 -1
  70. package/docs/functions/_saltcorn_data.models.discovery.findType.html +1 -1
  71. package/docs/functions/_saltcorn_data.models.discovery.get_existing_views.html +1 -1
  72. package/docs/functions/_saltcorn_data.models.discovery.implement_discovery.html +1 -1
  73. package/docs/functions/_saltcorn_data.models.email.getMailTransport.html +1 -1
  74. package/docs/functions/_saltcorn_data.models.email.send_verification_email.html +1 -1
  75. package/docs/functions/_saltcorn_data.models.email.viewToEmailHtml.html +1 -1
  76. package/docs/functions/_saltcorn_data.models.expression.apply_calculated_fields.html +1 -1
  77. package/docs/functions/_saltcorn_data.models.expression.apply_calculated_fields_stored.html +1 -1
  78. package/docs/functions/_saltcorn_data.models.expression.eval_expression.html +1 -1
  79. package/docs/functions/_saltcorn_data.models.expression.expressionValidator.html +1 -1
  80. package/docs/functions/_saltcorn_data.models.expression.get_async_expression_function.html +1 -1
  81. package/docs/functions/_saltcorn_data.models.expression.get_expression_function.html +1 -1
  82. package/docs/functions/_saltcorn_data.models.expression.jsexprToWhere.html +1 -1
  83. package/docs/functions/_saltcorn_data.models.expression.recalculate_for_stored.html +1 -1
  84. package/docs/functions/_saltcorn_data.models.expression.transform_for_async.html +1 -1
  85. package/docs/functions/_saltcorn_data.models.layout.eachView.html +1 -1
  86. package/docs/functions/_saltcorn_data.models.layout.getStringsForI18n.html +1 -1
  87. package/docs/functions/_saltcorn_data.models.layout.getViews.html +1 -1
  88. package/docs/functions/_saltcorn_data.models.layout.translateLayout.html +1 -1
  89. package/docs/functions/_saltcorn_data.models.layout.traverse.html +1 -1
  90. package/docs/functions/_saltcorn_data.models.layout.traverseSync.html +1 -1
  91. package/docs/functions/_saltcorn_data.models.random.all_views.html +1 -1
  92. package/docs/functions/_saltcorn_data.models.random.fill_table_row.html +1 -1
  93. package/docs/functions/_saltcorn_data.models.random.initial_view.html +1 -1
  94. package/docs/functions/_saltcorn_data.models.random.random_table.html +1 -1
  95. package/docs/functions/_saltcorn_db_common.buildInsertBulkSql.html +1 -1
  96. package/docs/functions/_saltcorn_db_common.buildInsertSql.html +1 -1
  97. package/docs/functions/_saltcorn_db_common.doCount.html +1 -1
  98. package/docs/functions/_saltcorn_db_common.doDeleteWhere.html +1 -1
  99. package/docs/functions/_saltcorn_db_common.doListScTables.html +1 -1
  100. package/docs/functions/_saltcorn_db_common.doListTables.html +1 -1
  101. package/docs/functions/_saltcorn_db_common.doListUserDefinedTables.html +1 -1
  102. package/docs/functions/_saltcorn_db_common.do_add_index.html +1 -1
  103. package/docs/functions/_saltcorn_db_common.do_drop_index.html +1 -1
  104. package/docs/functions/_saltcorn_db_common.ftsFieldsSqlExpr.html +1 -1
  105. package/docs/functions/_saltcorn_db_common.mkSelectOptions.html +1 -1
  106. package/docs/functions/_saltcorn_db_common.mkVal.html +1 -1
  107. package/docs/functions/_saltcorn_db_common.mkWhere.html +1 -1
  108. package/docs/functions/_saltcorn_db_common.multi_tenant.enable_multi_tenant.html +1 -1
  109. package/docs/functions/_saltcorn_db_common.multi_tenant.getRequestContext.html +1 -1
  110. package/docs/functions/_saltcorn_db_common.multi_tenant.getTenantSchema.html +1 -1
  111. package/docs/functions/_saltcorn_db_common.multi_tenant.init.html +1 -1
  112. package/docs/functions/_saltcorn_db_common.multi_tenant.is_it_multi_tenant.html +1 -1
  113. package/docs/functions/_saltcorn_db_common.multi_tenant.runWithTenant.html +1 -1
  114. package/docs/functions/_saltcorn_db_common.orderByIsObject.html +1 -1
  115. package/docs/functions/_saltcorn_db_common.orderByIsOperator.html +1 -1
  116. package/docs/functions/_saltcorn_db_common.prefixFieldsInWhere.html +1 -1
  117. package/docs/functions/_saltcorn_db_common.reprAsJson.html +1 -1
  118. package/docs/functions/_saltcorn_db_common.slugify.html +1 -1
  119. package/docs/functions/_saltcorn_db_common.sqlBinOp.html +1 -1
  120. package/docs/functions/_saltcorn_db_common.sqlFun.html +1 -1
  121. package/docs/functions/_saltcorn_db_common.sqlsanitize.html +1 -1
  122. package/docs/functions/_saltcorn_db_common.sqlsanitizeAllowDots.html +1 -1
  123. package/docs/functions/_saltcorn_db_common.subSelectWhere.html +1 -1
  124. package/docs/functions/_saltcorn_db_common.tryCatchInTransaction.html +1 -1
  125. package/docs/functions/_saltcorn_db_common.withTransaction.html +1 -1
  126. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.androidFeatures.html +1 -1
  127. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.androidPermissions.html +1 -1
  128. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.buildTablesFile.html +1 -1
  129. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.copyPrepopulatedDb.html +1 -1
  130. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.copyServerFiles.html +1 -1
  131. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.copyShareExtFiles.html +1 -1
  132. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.copySiteLogo.html +1 -1
  133. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.copyTranslationFiles.html +1 -1
  134. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.createSqliteDb.html +1 -1
  135. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.decodeProvisioningProfile.html +1 -1
  136. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.extractDomain.html +1 -1
  137. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.generateAndroidVersionCode.html +1 -1
  138. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.modifyAndroidManifest.html +1 -1
  139. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.modifyConfigXml.html +1 -1
  140. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.modifyGradleConfig.html +1 -1
  141. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.modifyInfoPlist.html +1 -1
  142. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.modifyXcodeProjectFile.html +1 -1
  143. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.prepAppIcon.html +1 -1
  144. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.prepareAppIcon.html +1 -1
  145. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.prepareBuildDir.html +1 -1
  146. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.prepareExportOptionsPlist.html +1 -1
  147. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.prepareSplashIcon.html +1 -1
  148. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.prepareSplashPage.html +1 -1
  149. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.writeCapacitorConfig.html +1 -1
  150. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.writeCfgFile.html +1 -1
  151. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.writeDataExtractionRules.html +1 -1
  152. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.writeNetworkSecurityConfig.html +1 -1
  153. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.writePodfile.html +1 -1
  154. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.writePrivacyInfo.html +1 -1
  155. package/docs/functions/_saltcorn_mobile_builder.package_bundle_utils.bundleMobileAppCode.html +1 -1
  156. package/docs/functions/_saltcorn_mobile_builder.package_bundle_utils.bundlePackagesAndPlugins.html +1 -1
  157. package/docs/functions/_saltcorn_mobile_builder.package_bundle_utils.copyMobileAppDirs.html +1 -1
  158. package/docs/functions/_saltcorn_mobile_builder.package_bundle_utils.copyPublicDirs.html +1 -1
  159. package/docs/functions/_saltcorn_sqlite.add_index.html +1 -1
  160. package/docs/functions/_saltcorn_sqlite.add_unique_constraint.html +1 -1
  161. package/docs/functions/_saltcorn_sqlite.begin.html +1 -1
  162. package/docs/functions/_saltcorn_sqlite.changeConnection.html +1 -1
  163. package/docs/functions/_saltcorn_sqlite.close.html +1 -1
  164. package/docs/functions/_saltcorn_sqlite.commit.html +1 -1
  165. package/docs/functions/_saltcorn_sqlite.count.html +1 -1
  166. package/docs/functions/_saltcorn_sqlite.deleteWhere.html +1 -1
  167. package/docs/functions/_saltcorn_sqlite.dropTable.html +1 -1
  168. package/docs/functions/_saltcorn_sqlite.dropTables.html +1 -1
  169. package/docs/functions/_saltcorn_sqlite.drop_index.html +1 -1
  170. package/docs/functions/_saltcorn_sqlite.drop_reset_schema.html +1 -1
  171. package/docs/functions/_saltcorn_sqlite.drop_unique_constraint.html +1 -1
  172. package/docs/functions/_saltcorn_sqlite.getVersion.html +1 -1
  173. package/docs/functions/_saltcorn_sqlite.get_db_filepath.html +1 -1
  174. package/docs/functions/_saltcorn_sqlite.get_sql_logging.html +1 -1
  175. package/docs/functions/_saltcorn_sqlite.init.html +1 -1
  176. package/docs/functions/_saltcorn_sqlite.insert.html +1 -1
  177. package/docs/functions/_saltcorn_sqlite.listScTables.html +1 -1
  178. package/docs/functions/_saltcorn_sqlite.listTables.html +1 -1
  179. package/docs/functions/_saltcorn_sqlite.listUserDefinedTables.html +1 -1
  180. package/docs/functions/_saltcorn_sqlite.query.html +1 -1
  181. package/docs/functions/_saltcorn_sqlite.rollback.html +1 -1
  182. package/docs/functions/_saltcorn_sqlite.select.html +1 -1
  183. package/docs/functions/_saltcorn_sqlite.selectMaybeOne.html +1 -1
  184. package/docs/functions/_saltcorn_sqlite.selectOne.html +1 -1
  185. package/docs/functions/_saltcorn_sqlite.set_sql_logging.html +1 -1
  186. package/docs/functions/_saltcorn_sqlite.sql_log.html +1 -1
  187. package/docs/functions/_saltcorn_sqlite.update.html +1 -1
  188. package/docs/functions/_saltcorn_sqlite.updateWhere.html +1 -1
  189. package/docs/functions/_saltcorn_sqlite_mobile.add_index.html +1 -1
  190. package/docs/functions/_saltcorn_sqlite_mobile.add_unique_constraint.html +1 -1
  191. package/docs/functions/_saltcorn_sqlite_mobile.count.html +1 -1
  192. package/docs/functions/_saltcorn_sqlite_mobile.deleteWhere.html +1 -1
  193. package/docs/functions/_saltcorn_sqlite_mobile.drop_index.html +1 -1
  194. package/docs/functions/_saltcorn_sqlite_mobile.drop_reset_schema.html +1 -1
  195. package/docs/functions/_saltcorn_sqlite_mobile.drop_unique_constraint.html +1 -1
  196. package/docs/functions/_saltcorn_sqlite_mobile.init.html +1 -1
  197. package/docs/functions/_saltcorn_sqlite_mobile.insert.html +1 -1
  198. package/docs/functions/_saltcorn_sqlite_mobile.insertRows.html +1 -1
  199. package/docs/functions/_saltcorn_sqlite_mobile.listScTables.html +1 -1
  200. package/docs/functions/_saltcorn_sqlite_mobile.listTables.html +1 -1
  201. package/docs/functions/_saltcorn_sqlite_mobile.listUserDefinedTables.html +1 -1
  202. package/docs/functions/_saltcorn_sqlite_mobile.query.html +1 -1
  203. package/docs/functions/_saltcorn_sqlite_mobile.select.html +1 -1
  204. package/docs/functions/_saltcorn_sqlite_mobile.selectMaybeOne.html +1 -1
  205. package/docs/functions/_saltcorn_sqlite_mobile.selectOne.html +1 -1
  206. package/docs/functions/_saltcorn_sqlite_mobile.setConnectionObject.html +1 -1
  207. package/docs/functions/_saltcorn_sqlite_mobile.tableExists.html +1 -1
  208. package/docs/functions/_saltcorn_sqlite_mobile.time.html +1 -1
  209. package/docs/functions/_saltcorn_sqlite_mobile.update.html +1 -1
  210. package/docs/functions/_saltcorn_types.ModelAbstracts.abstract_field.instanceOfField.html +1 -1
  211. package/docs/functions/_saltcorn_types.ModelAbstracts.abstract_page.instanceOfPage.html +1 -1
  212. package/docs/functions/_saltcorn_types.ModelAbstracts.abstract_view.instanceOfView.html +1 -1
  213. package/docs/functions/_saltcorn_types.Types.base_types.instanceOWithHtmlFile.html +1 -1
  214. package/docs/functions/_saltcorn_types.Types.common_types.instanceOfErrorMsg.html +1 -1
  215. package/docs/functions/_saltcorn_types.Types.common_types.instanceOfSuccessMsg.html +1 -1
  216. package/docs/functions/_saltcorn_types.Types.common_types.instanceOfType.html +1 -1
  217. package/docs/functions/_saltcorn_types.generators.generateBool.html +1 -1
  218. package/docs/functions/_saltcorn_types.generators.generateString.html +1 -1
  219. package/docs/functions/_saltcorn_types.generators.num_between.html +1 -1
  220. package/docs/functions/_saltcorn_types.generators.oneOf.html +1 -1
  221. package/docs/interfaces/_saltcorn_mobile_builder.common_build_utils.ScCapacitorConfig.html +10 -10
  222. package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_field.AbstractField.html +15 -15
  223. package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_field.AbstractFieldRepeat.html +3 -3
  224. package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_form.AbstractForm.html +26 -26
  225. package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_page.AbstractPage.html +7 -7
  226. package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_role.AbstractRole.html +3 -3
  227. package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_table.AbstractTable.html +11 -11
  228. package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_trigger.AbstractTrigger.html +16 -16
  229. package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_view.AbstractView.html +10 -10
  230. package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_workflow.AbstractWorkflow.html +13 -13
  231. package/docs/modules/_saltcorn_admin_models.backup.html +1 -1
  232. package/docs/modules/_saltcorn_admin_models.html +1 -1
  233. package/docs/modules/_saltcorn_admin_models.pack.html +1 -1
  234. package/docs/modules/_saltcorn_admin_models.tenant.html +1 -1
  235. package/docs/modules/_saltcorn_common_code.html +1 -1
  236. package/docs/modules/_saltcorn_data.html +7 -5
  237. package/docs/modules/_saltcorn_data.models.EventLog.html +2 -2
  238. package/docs/modules/_saltcorn_data.models.File.html +2 -2
  239. package/docs/modules/_saltcorn_data.models.Form.html +2 -2
  240. package/docs/modules/_saltcorn_data.models.PageGroup.html +2 -2
  241. package/docs/modules/_saltcorn_data.models.Table.html +2 -2
  242. package/docs/modules/_saltcorn_data.models.View.html +2 -2
  243. package/docs/modules/_saltcorn_data.models.config.html +1 -1
  244. package/docs/modules/_saltcorn_data.models.discovery.html +1 -1
  245. package/docs/modules/_saltcorn_data.models.email.html +1 -1
  246. package/docs/modules/_saltcorn_data.models.expression.html +1 -1
  247. package/docs/modules/_saltcorn_data.models.html +1 -1
  248. package/docs/modules/_saltcorn_data.models.layout.html +1 -1
  249. package/docs/modules/_saltcorn_data.models.random.html +1 -1
  250. package/docs/modules/_saltcorn_data.models.scheduler.html +1 -1
  251. package/docs/modules/_saltcorn_data.plugin_helper.html +1 -1
  252. package/docs/modules/_saltcorn_data.utils.html +1 -1
  253. package/docs/modules/_saltcorn_db_common.html +2 -2
  254. package/docs/modules/_saltcorn_db_common.multi_tenant.html +1 -1
  255. package/docs/modules/_saltcorn_markup.html +2 -2
  256. package/docs/modules/_saltcorn_mobile_builder.common_build_utils.html +1 -1
  257. package/docs/modules/_saltcorn_mobile_builder.html +1 -1
  258. package/docs/modules/_saltcorn_mobile_builder.package_bundle_utils.html +1 -1
  259. package/docs/modules/_saltcorn_sqlite.html +1 -1
  260. package/docs/modules/_saltcorn_sqlite_mobile.html +1 -1
  261. package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_field.html +1 -1
  262. package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_form.html +1 -1
  263. package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_library.html +1 -1
  264. package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_page.html +1 -1
  265. package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_plugin.html +1 -1
  266. package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_role.html +1 -1
  267. package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_table.html +1 -1
  268. package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_trigger.html +1 -1
  269. package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_view.html +1 -1
  270. package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_workflow.html +1 -1
  271. package/docs/modules/_saltcorn_types.ModelAbstracts.html +1 -1
  272. package/docs/modules/_saltcorn_types.Types.base_types.html +1 -1
  273. package/docs/modules/_saltcorn_types.Types.common_types.html +1 -1
  274. package/docs/modules/_saltcorn_types.Types.html +1 -1
  275. package/docs/modules/_saltcorn_types.generators.html +1 -1
  276. package/docs/modules/_saltcorn_types.html +1 -1
  277. package/docs/types/_saltcorn_data.models.EventLog.EventLogCfg.html +1 -1
  278. package/docs/types/_saltcorn_data.models.File.FileCfg.html +1 -1
  279. package/docs/types/_saltcorn_data.models.Form.AdditionalButton.html +1 -1
  280. package/docs/types/_saltcorn_data.models.Form.FormCfg.html +1 -1
  281. package/docs/types/_saltcorn_data.models.PageGroup.ScreenInfoParams.html +1 -1
  282. package/docs/types/_saltcorn_data.models.Table.ChildRelations.html +1 -1
  283. package/docs/types/_saltcorn_data.models.Table.ParentRelations.html +1 -1
  284. package/docs/types/_saltcorn_data.models.Table.RelationData.html +1 -1
  285. package/docs/types/_saltcorn_data.models.View.FindViewsPred.html +1 -1
  286. package/docs/types/_saltcorn_db_common.AggregationOptions.html +1 -1
  287. package/docs/types/_saltcorn_db_common.CoordOpts.html +1 -1
  288. package/docs/types/_saltcorn_db_common.DatabaseClient.html +1 -1
  289. package/docs/types/_saltcorn_db_common.JoinField.html +1 -1
  290. package/docs/types/_saltcorn_db_common.JoinFields.html +1 -1
  291. package/docs/types/_saltcorn_db_common.JoinOptions.html +1 -1
  292. package/docs/types/_saltcorn_db_common.JsonPath.html +1 -1
  293. package/docs/types/_saltcorn_db_common.JsonPathElem.html +1 -1
  294. package/docs/types/_saltcorn_db_common.Operator.html +1 -1
  295. package/docs/types/_saltcorn_db_common.PartialSome.html +1 -1
  296. package/docs/types/_saltcorn_db_common.PrimaryKeyValue.html +1 -1
  297. package/docs/types/_saltcorn_db_common.Row.html +1 -1
  298. package/docs/types/_saltcorn_db_common.SelectOptions.html +1 -1
  299. package/docs/types/_saltcorn_db_common.SqlAndValues.html +1 -1
  300. package/docs/types/_saltcorn_db_common.StrongRow.html +1 -1
  301. package/docs/types/_saltcorn_db_common.SubselectOptions.html +1 -1
  302. package/docs/types/_saltcorn_db_common.Value.html +1 -1
  303. package/docs/types/_saltcorn_db_common.Where.html +1 -1
  304. package/docs/types/_saltcorn_mobile_builder.IosCfg.html +1 -1
  305. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_field.FieldCfg.html +1 -1
  306. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_field.InputType.html +1 -1
  307. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_form.AdditionalButton.html +1 -1
  308. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_library.LibraryCfg.html +1 -1
  309. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_library.LibraryPack.html +1 -1
  310. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_page.PageCfg.html +1 -1
  311. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_page.PagePack.html +1 -1
  312. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_plugin.PluginCfg.html +1 -1
  313. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_plugin.PluginPack.html +1 -1
  314. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_role.RoleCfg.html +1 -1
  315. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_role.RolePack.html +1 -1
  316. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_table.TableCfg.html +1 -1
  317. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_table.TablePack.html +1 -1
  318. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_trigger.TriggerCfg.html +1 -1
  319. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_trigger.TriggerPack.html +1 -1
  320. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_view.ViewCfg.html +1 -1
  321. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_view.ViewPack.html +1 -1
  322. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_workflow.ConfigWorkflowStep.html +1 -1
  323. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_workflow.RunResult.html +1 -1
  324. package/docs/types/_saltcorn_types.Types.base_types.Action.html +1 -1
  325. package/docs/types/_saltcorn_types.Types.base_types.AuthenticationMethod.html +1 -1
  326. package/docs/types/_saltcorn_types.Types.base_types.CalcJoinfield.html +1 -1
  327. package/docs/types/_saltcorn_types.Types.base_types.CapacitorPlugin.html +1 -1
  328. package/docs/types/_saltcorn_types.Types.base_types.CodePagePack.html +1 -1
  329. package/docs/types/_saltcorn_types.Types.base_types.Column.html +1 -1
  330. package/docs/types/_saltcorn_types.Types.base_types.ConnectObjType.html +1 -1
  331. package/docs/types/_saltcorn_types.Types.base_types.ConnectedObjects.html +1 -1
  332. package/docs/types/_saltcorn_types.Types.base_types.CopilotSkill.html +1 -1
  333. package/docs/types/_saltcorn_types.Types.base_types.ErrorObj.html +1 -1
  334. package/docs/types/_saltcorn_types.Types.base_types.FieldLike.html +1 -1
  335. package/docs/types/_saltcorn_types.Types.base_types.FieldView.html +1 -1
  336. package/docs/types/_saltcorn_types.Types.base_types.Header.html +1 -1
  337. package/docs/types/_saltcorn_types.Types.base_types.JoinFieldOption.html +1 -1
  338. package/docs/types/_saltcorn_types.Types.base_types.Layout.html +1 -1
  339. package/docs/types/_saltcorn_types.Types.base_types.MobileConfig.html +1 -1
  340. package/docs/types/_saltcorn_types.Types.base_types.ModelPattern.html +1 -1
  341. package/docs/types/_saltcorn_types.Types.base_types.Pack.html +1 -1
  342. package/docs/types/_saltcorn_types.Types.base_types.Plugin.html +1 -1
  343. package/docs/types/_saltcorn_types.Types.base_types.PluginFunction.html +1 -1
  344. package/docs/types/_saltcorn_types.Types.base_types.PluginLayout.html +1 -1
  345. package/docs/types/_saltcorn_types.Types.base_types.PluginRoute.html +1 -1
  346. package/docs/types/_saltcorn_types.Types.base_types.PluginSourceType.html +1 -1
  347. package/docs/types/_saltcorn_types.Types.base_types.PluginType.html +1 -1
  348. package/docs/types/_saltcorn_types.Types.base_types.PluginWrap.html +1 -1
  349. package/docs/types/_saltcorn_types.Types.base_types.PluginWrapArg.html +1 -1
  350. package/docs/types/_saltcorn_types.Types.base_types.RelationOption.html +1 -1
  351. package/docs/types/_saltcorn_types.Types.base_types.Req.html +1 -1
  352. package/docs/types/_saltcorn_types.Types.base_types.Res.html +1 -1
  353. package/docs/types/_saltcorn_types.Types.base_types.ResultType.html +1 -1
  354. package/docs/types/_saltcorn_types.Types.base_types.RouteAction.html +1 -1
  355. package/docs/types/_saltcorn_types.Types.base_types.RunExtra.html +1 -1
  356. package/docs/types/_saltcorn_types.Types.base_types.SlugStepType.html +1 -1
  357. package/docs/types/_saltcorn_types.Types.base_types.StepResType.html +1 -1
  358. package/docs/types/_saltcorn_types.Types.base_types.SubField.html +1 -1
  359. package/docs/types/_saltcorn_types.Types.base_types.TableProvider.html +1 -1
  360. package/docs/types/_saltcorn_types.Types.base_types.TableQuery.html +1 -1
  361. package/docs/types/_saltcorn_types.Types.base_types.Tablely.html +1 -1
  362. package/docs/types/_saltcorn_types.Types.base_types.ViewTemplate.html +1 -1
  363. package/docs/types/_saltcorn_types.Types.common_types.ErrorMessage.html +1 -1
  364. package/docs/types/_saltcorn_types.Types.common_types.GenObj.html +1 -1
  365. package/docs/types/_saltcorn_types.Types.common_types.ReqRes.html +1 -1
  366. package/docs/types/_saltcorn_types.Types.common_types.ResultMessage.html +1 -1
  367. package/docs/types/_saltcorn_types.Types.common_types.SuccessMessage.html +1 -1
  368. package/docs/types/_saltcorn_types.Types.common_types.Type.html +1 -1
  369. package/docs/variables/_saltcorn_data.db.html +1 -1
  370. package/docs/variables/_saltcorn_data.migrations.html +1 -1
  371. package/docs/variables/_saltcorn_data.models.config.available_languages.html +1 -1
  372. package/docs/variables/_saltcorn_data.models.config.configTypes.html +1 -1
  373. package/docs/variables/_saltcorn_data.models.scheduler.runScheduler.html +1 -1
  374. package/docs/variables/_saltcorn_data.plugin_helper.run_action_column.html +1 -1
  375. package/docs/variables/_saltcorn_data.utils.NotAuthorized.html +1 -1
  376. package/docs/variables/_saltcorn_data.utils.sleep.html +1 -1
  377. package/docs/variables/_saltcorn_db_common.multi_tenant.tenantNamespace.html +1 -1
  378. package/help/Template tables.tmd +9 -0
  379. package/locales/en.json +5 -1
  380. package/package.json +9 -9
  381. package/public/saltcorn-common.js +29 -17
  382. package/routes/tables.js +137 -59
  383. package/routes/viewedit.js +1 -1
@@ -20,7 +20,7 @@
20
20
  <h1>Type alias ResultMessage</h1></div>
21
21
  <div class="tsd-signature"><span class="tsd-kind-type-alias">Result<wbr/>Message</span><span class="tsd-signature-symbol">:</span> <a href="_saltcorn_types.Types.common_types.ErrorMessage.html" class="tsd-signature-type tsd-kind-type-alias">ErrorMessage</a><span class="tsd-signature-symbol"> | </span><a href="_saltcorn_types.Types.common_types.SuccessMessage.html" class="tsd-signature-type tsd-kind-type-alias">SuccessMessage</a></div><aside class="tsd-sources">
22
22
  <ul>
23
- <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/9910b7e939/packages/saltcorn-types/common_types.ts#L26">saltcorn-types/common_types.ts:26</a></li></ul></aside></div>
23
+ <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/7e4a533f76/packages/saltcorn-types/common_types.ts#L26">saltcorn-types/common_types.ts:26</a></li></ul></aside></div>
24
24
  <div class="col-sidebar">
25
25
  <div class="page-menu">
26
26
  <div class="tsd-navigation settings">
@@ -31,7 +31,7 @@
31
31
  <li class="tsd-parameter">
32
32
  <h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-property">table</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span></h5></li></ul></div><aside class="tsd-sources">
33
33
  <ul>
34
- <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/9910b7e939/packages/saltcorn-types/common_types.ts#L14">saltcorn-types/common_types.ts:14</a></li></ul></aside></div>
34
+ <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/7e4a533f76/packages/saltcorn-types/common_types.ts#L14">saltcorn-types/common_types.ts:14</a></li></ul></aside></div>
35
35
  <div class="col-sidebar">
36
36
  <div class="page-menu">
37
37
  <div class="tsd-navigation settings">
@@ -102,7 +102,7 @@
102
102
  <li class="tsd-parameter">
103
103
  <h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-property">validate_<wbr/>attributes</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type ">Function</span></h5></li></ul></div><aside class="tsd-sources">
104
104
  <ul>
105
- <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/9910b7e939/packages/saltcorn-types/common_types.ts#L36">saltcorn-types/common_types.ts:36</a></li></ul></aside></div>
105
+ <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/7e4a533f76/packages/saltcorn-types/common_types.ts#L36">saltcorn-types/common_types.ts:36</a></li></ul></aside></div>
106
106
  <div class="col-sidebar">
107
107
  <div class="page-menu">
108
108
  <div class="tsd-navigation settings">
@@ -18,7 +18,7 @@
18
18
  <h1>Variable db<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
19
19
  <div class="tsd-signature"><span class="tsd-kind-variable">db</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type ">DbExportsType</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
20
20
  <ul>
21
- <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/9910b7e939/packages/saltcorn-data/db/index.ts#L56">saltcorn-data/db/index.ts:56</a></li></ul></aside></div>
21
+ <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/7e4a533f76/packages/saltcorn-data/db/index.ts#L56">saltcorn-data/db/index.ts:56</a></li></ul></aside></div>
22
22
  <div class="col-sidebar">
23
23
  <div class="page-menu">
24
24
  <div class="tsd-navigation settings">
@@ -18,7 +18,7 @@
18
18
  <h1>Variable migrations</h1></div>
19
19
  <div class="tsd-signature"><span class="tsd-kind-variable">migrations</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> = {}</span></div><aside class="tsd-sources">
20
20
  <ul>
21
- <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/9910b7e939/packages/saltcorn-data/index.ts#L26">saltcorn-data/index.ts:26</a></li></ul></aside></div>
21
+ <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/7e4a533f76/packages/saltcorn-data/index.ts#L26">saltcorn-data/index.ts:26</a></li></ul></aside></div>
22
22
  <div class="col-sidebar">
23
23
  <div class="page-menu">
24
24
  <div class="tsd-navigation settings">
@@ -85,7 +85,7 @@
85
85
  <li class="tsd-parameter">
86
86
  <h5><span class="tsd-kind-property">zh</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li></ul></div><aside class="tsd-sources">
87
87
  <ul>
88
- <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/9910b7e939/packages/saltcorn-data/models/index.ts#L56">saltcorn-data/models/index.ts:56</a></li></ul></aside></div>
88
+ <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/7e4a533f76/packages/saltcorn-data/models/index.ts#L56">saltcorn-data/models/index.ts:56</a></li></ul></aside></div>
89
89
  <div class="col-sidebar">
90
90
  <div class="page-menu">
91
91
  <div class="tsd-navigation settings">
@@ -20,7 +20,7 @@
20
20
  <h1>Variable configTypes</h1></div>
21
21
  <div class="tsd-signature"><span class="tsd-kind-variable">config<wbr/>Types</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type ">ConfigTypes</span></div><aside class="tsd-sources">
22
22
  <ul>
23
- <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/9910b7e939/packages/saltcorn-data/models/index.ts#L54">saltcorn-data/models/index.ts:54</a></li></ul></aside></div>
23
+ <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/7e4a533f76/packages/saltcorn-data/models/index.ts#L54">saltcorn-data/models/index.ts:54</a></li></ul></aside></div>
24
24
  <div class="col-sidebar">
25
25
  <div class="page-menu">
26
26
  <div class="tsd-navigation settings">
@@ -65,7 +65,7 @@
65
65
  <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
66
66
  <div class="tsd-comment tsd-typography"></div></li></ul></li></ul></li></ul></div><aside class="tsd-sources">
67
67
  <ul>
68
- <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/9910b7e939/packages/saltcorn-data/models/index.ts#L116">saltcorn-data/models/index.ts:116</a></li></ul></aside></div>
68
+ <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/7e4a533f76/packages/saltcorn-data/models/index.ts#L116">saltcorn-data/models/index.ts:116</a></li></ul></aside></div>
69
69
  <div class="col-sidebar">
70
70
  <div class="page-menu">
71
71
  <div class="tsd-navigation settings">
@@ -19,7 +19,7 @@
19
19
  <h1>Variable run_action_column</h1></div>
20
20
  <div class="tsd-signature"><span class="tsd-kind-variable">run_<wbr/>action_<wbr/>column</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div><aside class="tsd-sources">
21
21
  <ul>
22
- <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/9910b7e939/packages/saltcorn-data/index.ts#L15">saltcorn-data/index.ts:15</a></li></ul></aside></div>
22
+ <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/7e4a533f76/packages/saltcorn-data/index.ts#L15">saltcorn-data/index.ts:15</a></li></ul></aside></div>
23
23
  <div class="col-sidebar">
24
24
  <div class="page-menu">
25
25
  <div class="tsd-navigation settings">
@@ -19,7 +19,7 @@
19
19
  <h1>Variable NotAuthorized</h1></div>
20
20
  <div class="tsd-signature"><span class="tsd-kind-variable">Not<wbr/>Authorized</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div><aside class="tsd-sources">
21
21
  <ul>
22
- <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/9910b7e939/packages/saltcorn-data/index.ts#L20">saltcorn-data/index.ts:20</a></li></ul></aside></div>
22
+ <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/7e4a533f76/packages/saltcorn-data/index.ts#L20">saltcorn-data/index.ts:20</a></li></ul></aside></div>
23
23
  <div class="col-sidebar">
24
24
  <div class="page-menu">
25
25
  <div class="tsd-navigation settings">
@@ -19,7 +19,7 @@
19
19
  <h1>Variable sleep</h1></div>
20
20
  <div class="tsd-signature"><span class="tsd-kind-variable">sleep</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div><aside class="tsd-sources">
21
21
  <ul>
22
- <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/9910b7e939/packages/saltcorn-data/index.ts#L20">saltcorn-data/index.ts:20</a></li></ul></aside></div>
22
+ <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/7e4a533f76/packages/saltcorn-data/index.ts#L20">saltcorn-data/index.ts:20</a></li></ul></aside></div>
23
23
  <div class="col-sidebar">
24
24
  <div class="page-menu">
25
25
  <div class="tsd-navigation settings">
@@ -19,7 +19,7 @@
19
19
  <h1>Variable tenantNamespace<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
20
20
  <div class="tsd-signature"><span class="tsd-kind-variable">tenant<wbr/>Namespace</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type ">AsyncLocalStorage</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type ">RequestContext</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
21
21
  <ul>
22
- <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/9910b7e939/packages/db-common/multi-tenant.ts#L17">db-common/multi-tenant.ts:17</a></li></ul></aside></div>
22
+ <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/7e4a533f76/packages/db-common/multi-tenant.ts#L17">db-common/multi-tenant.ts:17</a></li></ul></aside></div>
23
23
  <div class="col-sidebar">
24
24
  <div class="page-menu">
25
25
  <div class="tsd-navigation settings">
@@ -0,0 +1,9 @@
1
+ Views can be generated based on views from a different table.
2
+
3
+ To use this facility create a table with fields of different types and create views on this table that you would like to use as a template for generating basic views for other tables. Saltcorn will attempt to apply the style and the field view choices to the new tables. 
4
+
5
+ For list views this is relatively straightforward. You may not get the ordering you are desiring and will need to adjust the list view after the generation. 
6
+
7
+ Show and Edit views make some assumptions about the views you are trying to clone. This works best if there is one container in the template view that contain all of the fields in sub elements. Each field along with its associated labels should be inside its own elements (e.g. a container for each group of elements related to one field).
8
+
9
+ Use this templating facility to quickly create many different views of a consistent style. If you're doing this across many instances you may want to create a tag for your template table and template views and download this tag's pack and restore it on each application you are building.
package/locales/en.json CHANGED
@@ -1613,5 +1613,9 @@
1613
1613
  "Enable maintenance mode": "Enable maintenance mode",
1614
1614
  "Enable maintenance mode to restrict access to non-admin users": "Enable maintenance mode to restrict access to non-admin users",
1615
1615
  "Maintenance mode page": "Maintenance mode page",
1616
- "Select the page to display during maintenance mode": "Select the page to display during maintenance mode"
1616
+ "Select the page to display during maintenance mode": "Select the page to display during maintenance mode",
1617
+ "Create basic views": "Create basic views",
1618
+ "Create views": "Create views",
1619
+ "Decimal places": "Decimal places",
1620
+ "%s view - %s": "%s view - %s"
1617
1621
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saltcorn/server",
3
- "version": "1.3.0-beta.5",
3
+ "version": "1.3.0-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",
@@ -8,14 +8,14 @@
8
8
  "dependencies": {
9
9
  "@aws-sdk/client-s3": "^3.735.0",
10
10
  "@dr.pogodin/csurf": "1.15.0",
11
- "@saltcorn/admin-models": "1.3.0-beta.5",
12
- "@saltcorn/base-plugin": "1.3.0-beta.5",
13
- "@saltcorn/builder": "1.3.0-beta.5",
14
- "@saltcorn/data": "1.3.0-beta.5",
15
- "@saltcorn/filemanager": "1.3.0-beta.5",
16
- "@saltcorn/markup": "1.3.0-beta.5",
17
- "@saltcorn/plugins-loader": "1.3.0-beta.5",
18
- "@saltcorn/sbadmin2": "1.3.0-beta.5",
11
+ "@saltcorn/admin-models": "1.3.0-beta.7",
12
+ "@saltcorn/base-plugin": "1.3.0-beta.7",
13
+ "@saltcorn/builder": "1.3.0-beta.7",
14
+ "@saltcorn/data": "1.3.0-beta.7",
15
+ "@saltcorn/filemanager": "1.3.0-beta.7",
16
+ "@saltcorn/markup": "1.3.0-beta.7",
17
+ "@saltcorn/plugins-loader": "1.3.0-beta.7",
18
+ "@saltcorn/sbadmin2": "1.3.0-beta.7",
19
19
  "@socket.io/cluster-adapter": "^0.2.1",
20
20
  "@socket.io/sticky": "^1.0.1",
21
21
  "adm-zip": "0.5.16",
@@ -168,6 +168,8 @@ function add_extra_state(base_url, extra_state_fml, row) {
168
168
 
169
169
  const apply_showif_fetching_urls = new Set();
170
170
 
171
+ const global_fetch_options_cache = {};
172
+
171
173
  function apply_showif() {
172
174
  const isNode = getIsNode();
173
175
  $("[data-show-if]").each(function (ix, element) {
@@ -309,6 +311,9 @@ function apply_showif() {
309
311
  qss.push(...dynwhere.dereference.map((d) => `dereference=${d}`));
310
312
  else qss.push(`dereference=${dynwhere.dereference}`);
311
313
  }
314
+ if (!dynwhere.label_formula && dynwhere.summary_field && dynwhere.refname) {
315
+ qss.push(`fields=${dynwhere.summary_field},${dynwhere.refname}`);
316
+ }
312
317
  const qs = qss.join("&");
313
318
  let current = e.attr("data-selected");
314
319
  if (current === "null") current = null;
@@ -395,36 +400,27 @@ function apply_showif() {
395
400
  e.selectize()[0].selectize.setValue(currentDataOption);
396
401
  }
397
402
  };
398
-
399
- const cache = e.prop("data-fetch-options-cache") || {};
403
+ if (!global_fetch_options_cache[dynwhere.table])
404
+ global_fetch_options_cache[dynwhere.table] = {};
405
+ const cache = global_fetch_options_cache[dynwhere.table] || {};
400
406
  if (cache[qs] === "fetching") {
401
407
  // do nothing, this will be activated by someone else
402
408
  } else if (cache[qs]) {
403
409
  activate(cache[qs], qs);
404
410
  } else {
405
- e.prop("data-fetch-options-cache", {
406
- ...cache,
407
- [qs]: "fetching",
408
- });
411
+ cache[qs] = "fetching";
409
412
  apply_showif_fetching_urls.add(`/api/${dynwhere.table}?${qs}`);
410
413
  $.ajax(`/api/${dynwhere.table}?${qs}`)
411
414
  .then((resp) => {
415
+ const cacheNow = global_fetch_options_cache[dynwhere.table] || {};
412
416
  if (resp.success) {
413
417
  if (window._sc_loglevel > 4)
414
418
  console.log("dynwhere fetch", qs, resp.success);
415
-
416
419
  activate(resp.success, qs);
417
- const cacheNow = e.prop("data-fetch-options-cache") || {};
418
- e.prop("data-fetch-options-cache", {
419
- ...cacheNow,
420
- [qs]: resp.success,
421
- });
420
+ cacheNow[qs] = resp.success;
421
+ apply_showif();
422
422
  } else {
423
- const cacheNow = e.prop("data-fetch-options-cache") || {};
424
- e.prop("data-fetch-options-cache", {
425
- ...cacheNow,
426
- [qs]: undefined,
427
- });
423
+ cacheNow[qs] = undefined;
428
424
  }
429
425
  })
430
426
  .fail(checkNetworkError)
@@ -2336,6 +2332,22 @@ function formInEmbed(event) {
2336
2332
  return form;
2337
2333
  }
2338
2334
 
2335
+ function login_from_edit_view(e) {
2336
+ e.stopPropagation();
2337
+ e.preventDefault();
2338
+ const form = $(e.target).closest("form");
2339
+ form.attr("action", "/auth/login");
2340
+ form.submit();
2341
+ }
2342
+
2343
+ function signup_from_edit_view(e) {
2344
+ e.stopPropagation();
2345
+ e.preventDefault();
2346
+ const form = $(e.target).closest("form");
2347
+ form.attr("action", "/auth/signup");
2348
+ form.submit();
2349
+ }
2350
+
2339
2351
  function handle_identical_fields(event) {
2340
2352
  let form = null;
2341
2353
  if (event.srcElement) {
package/routes/tables.js CHANGED
@@ -72,6 +72,7 @@ const {
72
72
  removeAllWhiteSpace,
73
73
  comparingCaseInsensitive,
74
74
  validSqlId,
75
+ interpolate,
75
76
  } = require("@saltcorn/data/utils");
76
77
  const { EOL } = require("os");
77
78
 
@@ -934,14 +935,12 @@ router.get(
934
935
  if (user_can_edit_views) {
935
936
  let create_basic_link = "";
936
937
  if (views.length === 0) {
937
- create_basic_link = post_btn(
938
- `/table/create-basic-views/${table.id}`,
939
- "Create basic views",
940
- req.csrfToken(),
938
+ create_basic_link = a(
941
939
  {
942
- btnClass: "btn-outline-secondary",
943
- formClass: "d-inline me-2",
944
- }
940
+ class: "btn btn-outline-secondary ms-2",
941
+ href: `javascript:ajax_modal('/table/create-basic-views/${table.id}')`,
942
+ },
943
+ req.__("Create basic views")
945
944
  );
946
945
  }
947
946
  viewCard = {
@@ -2452,6 +2451,77 @@ router.post(
2452
2451
  })
2453
2452
  );
2454
2453
 
2454
+ const basicViewForm = async (table, req) => {
2455
+ const tables = await Table.find();
2456
+ const vts = viewtemplates_with_create_basic_option();
2457
+ return new Form({
2458
+ submitLabel: req.__("Create views"),
2459
+ action: `/table/create-basic-views/${table.id}`,
2460
+ formStyle: "vert",
2461
+ fields: [
2462
+ {
2463
+ type: "String",
2464
+ label: "View naming convention",
2465
+ name: "naming_convention",
2466
+ attributes: { spellcheck: false },
2467
+ sublabel:
2468
+ "Use <code>{{ }}</code> to access: <code>viewpattern</code>, <code>tablename</code>",
2469
+ },
2470
+ {
2471
+ type: "String",
2472
+ label: "Template table",
2473
+ name: "template_table",
2474
+ attributes: { options: tables.map((t) => t.name) },
2475
+ help: {
2476
+ topic: "Template tables",
2477
+ },
2478
+ },
2479
+ ...vts.map((vt) => ({
2480
+ type: "Bool",
2481
+ label: vt,
2482
+ name: vt,
2483
+ default: true,
2484
+ })),
2485
+ ],
2486
+ });
2487
+ };
2488
+
2489
+ const viewtemplates_with_create_basic_option = () => {
2490
+ const vts = [];
2491
+ Object.entries(getState().viewtemplates).forEach(([nm, obj]) => {
2492
+ if (obj.createBasicView) vts.push(nm);
2493
+ });
2494
+ return vts;
2495
+ };
2496
+
2497
+ router.get(
2498
+ "/create-basic-views/:id",
2499
+ isAdminOrHasConfigMinRole("min_role_edit_tables"),
2500
+ isAdminOrHasConfigMinRole("min_role_edit_views"),
2501
+ error_catcher(async (req, res) => {
2502
+ const { id } = req.params;
2503
+
2504
+ const table = Table.findOne({ id });
2505
+ if (!table) {
2506
+ req.flash("error", `Table not found`);
2507
+ res.redirect(`/table`);
2508
+ return;
2509
+ }
2510
+ res.set("Page-Title", req.__("Create basic views"));
2511
+ const form = await basicViewForm(table, req);
2512
+ form.values.naming_convention = getState().getConfig(
2513
+ "viewgen_naming_convention"
2514
+ );
2515
+ form.values.template_table = getState().getConfig(
2516
+ "viewgen_template_table",
2517
+ ""
2518
+ );
2519
+ const page = renderForm(form, req.csrfToken());
2520
+
2521
+ res.send(page);
2522
+ })
2523
+ );
2524
+
2455
2525
  router.post(
2456
2526
  "/create-basic-views/:id",
2457
2527
  isAdminOrHasConfigMinRole("min_role_edit_tables"),
@@ -2465,68 +2535,76 @@ router.post(
2465
2535
  res.redirect(`/table`);
2466
2536
  return;
2467
2537
  }
2538
+ const form = await basicViewForm(table, req);
2539
+ form.validate(req.body || {});
2540
+ if (form.hasErrors) {
2541
+ req.flash("error", req.__("An error occurred"));
2542
+ res.redirect(`/table/${table.id}`);
2543
+ return;
2544
+ }
2545
+
2546
+ if (
2547
+ form.values.naming_convention &&
2548
+ form.values.naming_convention !==
2549
+ getState().getConfig("viewgen_naming_convention")
2550
+ )
2551
+ await getState().setConfig(
2552
+ "viewgen_naming_convention",
2553
+ form.values.naming_convention
2554
+ );
2555
+ if (
2556
+ form.values.template_table !==
2557
+ getState().getConfig("viewgen_template_table")
2558
+ )
2559
+ await getState().setConfig(
2560
+ "viewgen_template_table",
2561
+ form.values.template_table
2562
+ );
2563
+
2468
2564
  await db.withTransaction(async () => {
2565
+ const getName = (viewtemplate) =>
2566
+ interpolate(form.values.naming_convention, {
2567
+ viewpattern: viewtemplate,
2568
+ tablename: table.name,
2569
+ }).trim();
2570
+ const all_views_created = {};
2571
+ const vts = viewtemplates_with_create_basic_option();
2572
+ vts.forEach((vt) => {
2573
+ if (form.values[vt]) all_views_created[vt] = getName(vt);
2574
+ });
2575
+
2469
2576
  const initial_view = async (table, viewtemplate) => {
2470
- const configuration = await initial_config_all_fields(
2471
- viewtemplate === "Edit"
2472
- )({ table_id: table.id });
2473
- //console.log(configuration);
2474
- const name = `${viewtemplate} ${table.name}`;
2577
+ const isEdit = viewtemplate === "Edit";
2578
+ const vtObj = getState().viewtemplates[viewtemplate];
2579
+ const name = getName(viewtemplate);
2580
+ const template_view = form.values.template_table
2581
+ ? View.findOne({
2582
+ table_id: Table.findOne(form.values.template_table).id,
2583
+ viewtemplate,
2584
+ })
2585
+ : undefined;
2586
+ const configuration = await vtObj.createBasicView({
2587
+ table,
2588
+ viewname: name,
2589
+ all_views_created,
2590
+ template_table: form.values.template_table
2591
+ ? Table.findOne(form.values.template_table)
2592
+ : undefined,
2593
+ template_view,
2594
+ });
2475
2595
  const view = await View.create({
2476
2596
  name,
2477
2597
  configuration,
2478
2598
  viewtemplate,
2479
2599
  table_id: table.id,
2480
- min_role: 100,
2600
+ attributes: template_view?.attributes,
2601
+ min_role: isEdit ? table.min_role_write : table.min_role_read,
2481
2602
  });
2482
2603
  return view;
2483
2604
  };
2484
- const list = await initial_view(table, "List");
2485
- const edit = await initial_view(table, "Edit");
2486
- const show = await initial_view(table, "Show");
2487
- await View.update(
2488
- {
2489
- configuration: {
2490
- ...list.configuration,
2491
- columns: [
2492
- ...list.configuration.columns,
2493
- {
2494
- type: "ViewLink",
2495
- view: `Own:Show ${table.name}`,
2496
- view_name: `Show ${table.name}`,
2497
- link_style: "",
2498
- view_label: "Show",
2499
- header_label: "Show",
2500
- },
2501
- {
2502
- type: "ViewLink",
2503
- view: `Own:Edit ${table.name}`,
2504
- view_name: `Edit ${table.name}`,
2505
- link_style: "",
2506
- view_label: "Edit",
2507
- header_label: "Edit",
2508
- },
2509
- {
2510
- type: "Action",
2511
- action_name: "Delete",
2512
- action_style: "btn-primary",
2513
- },
2514
- ],
2515
- view_to_create: `Edit ${table.name}`,
2516
- },
2517
- },
2518
- list.id
2519
- );
2520
- await View.update(
2521
- {
2522
- configuration: {
2523
- ...edit.configuration,
2524
- view_when_done: `List ${table.name}`,
2525
- destination_type: "View",
2526
- },
2527
- },
2528
- edit.id
2529
- );
2605
+ for (const vtnm of Object.keys(all_views_created)) {
2606
+ await initial_view(table, vtnm);
2607
+ }
2530
2608
  });
2531
2609
  await getState().refresh_views();
2532
2610
  res.redirect(`/table/${table.id}`);
@@ -416,7 +416,7 @@ router.get(
416
416
  class: "mt-0",
417
417
  titleAjaxIndicator: true,
418
418
  title: req.__(
419
- `%s view - %s on %s`,
419
+ viewrow.table_name ? `%s view - %s on %s` : `%s view - %s`,
420
420
  viewname,
421
421
  viewrow.viewtemplate,
422
422
  viewrow.table_name