@saltcorn/server 1.3.1-beta.10 → 1.3.1-beta.12

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 (388) hide show
  1. package/docs/assets/search.js +1 -1
  2. package/docs/classes/_saltcorn_common_code.Relation.html +10 -10
  3. package/docs/classes/_saltcorn_common_code.RelationsFinder.html +5 -5
  4. package/docs/classes/_saltcorn_data.models.Crash.html +17 -17
  5. package/docs/classes/_saltcorn_data.models.EventLog-1.html +19 -19
  6. package/docs/classes/_saltcorn_data.models.Field.html +74 -74
  7. package/docs/classes/_saltcorn_data.models.FieldRepeat.html +16 -16
  8. package/docs/classes/_saltcorn_data.models.File-1.html +48 -48
  9. package/docs/classes/_saltcorn_data.models.Form-1.html +39 -39
  10. package/docs/classes/_saltcorn_data.models.Library.html +13 -13
  11. package/docs/classes/_saltcorn_data.models.Page.html +24 -24
  12. package/docs/classes/_saltcorn_data.models.PageGroup-1.html +25 -25
  13. package/docs/classes/_saltcorn_data.models.Plugin.html +25 -25
  14. package/docs/classes/_saltcorn_data.models.Role.html +9 -9
  15. package/docs/classes/_saltcorn_data.models.Table-1.html +92 -92
  16. package/docs/classes/_saltcorn_data.models.TableConstraint.html +14 -14
  17. package/docs/classes/_saltcorn_data.models.Trigger.html +37 -37
  18. package/docs/classes/_saltcorn_data.models.User.html +48 -48
  19. package/docs/classes/_saltcorn_data.models.View-1.html +68 -54
  20. package/docs/classes/_saltcorn_data.models.Workflow.html +17 -17
  21. package/docs/classes/_saltcorn_data.models.WorkflowRun.html +35 -35
  22. package/docs/classes/_saltcorn_data.models.WorkflowStep.html +25 -25
  23. package/docs/classes/_saltcorn_data.models.WorkflowTrace.html +18 -18
  24. package/docs/classes/_saltcorn_mobile_builder.MobileBuilder.html +37 -37
  25. package/docs/enums/_saltcorn_common_code.RelationType.html +7 -7
  26. package/docs/enums/_saltcorn_common_code.ViewDisplayType.html +4 -4
  27. package/docs/functions/_saltcorn_admin_models.backup.create_backup.html +1 -1
  28. package/docs/functions/_saltcorn_admin_models.backup.create_csv_from_rows.html +1 -1
  29. package/docs/functions/_saltcorn_admin_models.backup.restore.html +1 -1
  30. package/docs/functions/_saltcorn_admin_models.pack.add_to_menu.html +1 -1
  31. package/docs/functions/_saltcorn_admin_models.pack.can_install_pack.html +1 -1
  32. package/docs/functions/_saltcorn_admin_models.pack.fetch_available_packs.html +1 -1
  33. package/docs/functions/_saltcorn_admin_models.pack.fetch_pack_by_name.html +1 -1
  34. package/docs/functions/_saltcorn_admin_models.pack.install_pack.html +1 -1
  35. package/docs/functions/_saltcorn_admin_models.pack.library_pack.html +1 -1
  36. package/docs/functions/_saltcorn_admin_models.pack.model_instance_pack.html +1 -1
  37. package/docs/functions/_saltcorn_admin_models.pack.model_pack.html +1 -1
  38. package/docs/functions/_saltcorn_admin_models.pack.page_group_pack.html +1 -1
  39. package/docs/functions/_saltcorn_admin_models.pack.page_pack.html +1 -1
  40. package/docs/functions/_saltcorn_admin_models.pack.plugin_pack.html +1 -1
  41. package/docs/functions/_saltcorn_admin_models.pack.role_pack.html +1 -1
  42. package/docs/functions/_saltcorn_admin_models.pack.table_pack.html +1 -1
  43. package/docs/functions/_saltcorn_admin_models.pack.trigger_pack.html +1 -1
  44. package/docs/functions/_saltcorn_admin_models.pack.uninstall_pack.html +1 -1
  45. package/docs/functions/_saltcorn_admin_models.pack.view_pack.html +1 -1
  46. package/docs/functions/_saltcorn_admin_models.tenant.copy_tenant_template.html +1 -1
  47. package/docs/functions/_saltcorn_admin_models.tenant.create_tenant.html +1 -1
  48. package/docs/functions/_saltcorn_admin_models.tenant.deleteTenant.html +1 -1
  49. package/docs/functions/_saltcorn_admin_models.tenant.domain_sanitize.html +1 -1
  50. package/docs/functions/_saltcorn_admin_models.tenant.eachTenant.html +1 -1
  51. package/docs/functions/_saltcorn_admin_models.tenant.getAllTenantRows.html +1 -1
  52. package/docs/functions/_saltcorn_admin_models.tenant.getAllTenants.html +1 -1
  53. package/docs/functions/_saltcorn_admin_models.tenant.insertTenant.html +1 -1
  54. package/docs/functions/_saltcorn_admin_models.tenant.switchToTenant.html +1 -1
  55. package/docs/functions/_saltcorn_common_code.buildTableCaches.html +1 -1
  56. package/docs/functions/_saltcorn_common_code.parseLegacyRelation.html +1 -1
  57. package/docs/functions/_saltcorn_common_code.parseRelationPath.html +1 -1
  58. package/docs/functions/_saltcorn_data.models.config.check_email_mask.html +1 -1
  59. package/docs/functions/_saltcorn_data.models.config.deleteConfig.html +1 -1
  60. package/docs/functions/_saltcorn_data.models.config.getAllConfig.html +1 -1
  61. package/docs/functions/_saltcorn_data.models.config.getConfig.html +1 -1
  62. package/docs/functions/_saltcorn_data.models.config.get_base_url.html +1 -1
  63. package/docs/functions/_saltcorn_data.models.config.get_latest_npm_version.html +1 -1
  64. package/docs/functions/_saltcorn_data.models.config.remove_from_menu.html +1 -1
  65. package/docs/functions/_saltcorn_data.models.config.save_menu_items.html +1 -1
  66. package/docs/functions/_saltcorn_data.models.config.setConfig.html +1 -1
  67. package/docs/functions/_saltcorn_data.models.discovery.discover_tables.html +5 -3
  68. package/docs/functions/_saltcorn_data.models.discovery.discoverable_tables.html +7 -3
  69. package/docs/functions/_saltcorn_data.models.discovery.findType.html +1 -1
  70. package/docs/functions/_saltcorn_data.models.discovery.get_existing_views.html +1 -1
  71. package/docs/functions/_saltcorn_data.models.discovery.implement_discovery.html +1 -1
  72. package/docs/functions/_saltcorn_data.models.email.getMailTransport.html +1 -1
  73. package/docs/functions/_saltcorn_data.models.email.send_verification_email.html +1 -1
  74. package/docs/functions/_saltcorn_data.models.email.viewToEmailHtml.html +1 -1
  75. package/docs/functions/_saltcorn_data.models.expression.apply_calculated_fields.html +1 -1
  76. package/docs/functions/_saltcorn_data.models.expression.apply_calculated_fields_stored.html +1 -1
  77. package/docs/functions/_saltcorn_data.models.expression.eval_expression.html +1 -1
  78. package/docs/functions/_saltcorn_data.models.expression.expressionValidator.html +1 -1
  79. package/docs/functions/_saltcorn_data.models.expression.get_async_expression_function.html +1 -1
  80. package/docs/functions/_saltcorn_data.models.expression.get_expression_function.html +1 -1
  81. package/docs/functions/_saltcorn_data.models.expression.jsexprToWhere.html +1 -1
  82. package/docs/functions/_saltcorn_data.models.expression.recalculate_for_stored.html +1 -1
  83. package/docs/functions/_saltcorn_data.models.expression.transform_for_async.html +1 -1
  84. package/docs/functions/_saltcorn_data.models.layout.eachView.html +1 -1
  85. package/docs/functions/_saltcorn_data.models.layout.getStringsForI18n.html +1 -1
  86. package/docs/functions/_saltcorn_data.models.layout.getViews.html +1 -1
  87. package/docs/functions/_saltcorn_data.models.layout.translateLayout.html +1 -1
  88. package/docs/functions/_saltcorn_data.models.layout.traverse.html +1 -1
  89. package/docs/functions/_saltcorn_data.models.layout.traverseSync.html +1 -1
  90. package/docs/functions/_saltcorn_data.models.random.all_views.html +1 -1
  91. package/docs/functions/_saltcorn_data.models.random.fill_table_row.html +1 -1
  92. package/docs/functions/_saltcorn_data.models.random.initial_view.html +1 -1
  93. package/docs/functions/_saltcorn_data.models.random.random_table.html +1 -1
  94. package/docs/functions/_saltcorn_db_common.buildInsertBulkSql.html +1 -1
  95. package/docs/functions/_saltcorn_db_common.buildInsertSql.html +1 -1
  96. package/docs/functions/_saltcorn_db_common.commitAndBeginNewTransaction.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 +27 -27
  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 +17 -17
  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 +3 -3
  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 +4 -2
  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 +5 -5
  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 +4 -2
  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.isPushEnabled.html +1 -1
  377. package/docs/variables/_saltcorn_data.utils.sleep.html +1 -1
  378. package/docs/variables/_saltcorn_db_common.multi_tenant.tenantNamespace.html +1 -1
  379. package/help/Entry point by role.tmd +1 -0
  380. package/package.json +9 -9
  381. package/public/saltcorn-common.js +18 -4
  382. package/public/saltcorn.js +36 -6
  383. package/routes/admin.js +257 -140
  384. package/routes/tables.js +2 -2
  385. package/serve.js +75 -35
  386. package/tests/admin.test.js +3 -3
  387. package/tests/auth.test.js +5 -1
  388. package/wrapper.js +2 -2
package/routes/admin.js CHANGED
@@ -2269,7 +2269,7 @@ router.get(
2269
2269
  );
2270
2270
  const buildDialogScript = (capacitorBuilderAvailable, isSbadmin2) =>
2271
2271
  `<script>
2272
- var capacitorBuilderAvailable = ${capacitorBuilderAvailable};
2272
+ var capacitorBuilderAvailable = ${capacitorBuilderAvailable.installed};
2273
2273
  var isSbadmin2 = ${isSbadmin2};
2274
2274
  function showEntrySelect(type) {
2275
2275
  for( const currentType of ["view", "page", "pagegroup"]) {
@@ -2305,19 +2305,50 @@ const buildDialogScript = (capacitorBuilderAvailable, isSbadmin2) =>
2305
2305
  }
2306
2306
  else
2307
2307
  console.error('versionInput not found');
2308
+
2309
+ const entryByRoleBox = document.getElementById('entryPointByRoleBoxId');
2310
+ if (entryByRoleBox) {
2311
+ entryByRoleBox.addEventListener('change', () => {
2312
+ const entryByRole = entryByRoleBox.checked;
2313
+ const entryRow = document.getElementById('entryPointRowId');
2314
+ const selector = document.getElementById('entrySelectorsId');
2315
+ if (entryByRole) {
2316
+ entryRow.classList.remove('border', 'border-2', 'p-3', 'rounded');
2317
+ selector.classList.add('d-none');
2318
+ }
2319
+ else {
2320
+ entryRow.classList.add('border', 'border-2', 'p-3', 'rounded');
2321
+ selector.classList.remove('d-none');
2322
+ }
2323
+ });
2324
+ } else
2325
+ console.error('entryByRoleBox not found');
2308
2326
  `)}
2309
2327
  </script>`;
2310
2328
 
2311
- const imageAvailable = async () => {
2329
+ const imageAvailable = async (preferedVersion) => {
2330
+ const docker = new Docker();
2312
2331
  try {
2313
- const state = getState();
2314
- const image = new Docker().getImage(
2315
- `saltcorn/capacitor-builder:${state.scVersion}`
2332
+ const image = docker.getImage(
2333
+ `saltcorn/capacitor-builder:${preferedVersion}`
2316
2334
  );
2317
2335
  await image.inspect();
2318
- return true;
2336
+ return { installed: true, version: preferedVersion };
2319
2337
  } catch (e) {
2320
- return false;
2338
+ try {
2339
+ const images = await docker.listImages({
2340
+ filters: { reference: ["saltcorn/capacitor-builder:*"] },
2341
+ });
2342
+ const tags = images.flatMap((img) => img.RepoTags || []);
2343
+ if (tags.length > 0)
2344
+ return { installed: true, version: tags[0].split(":")[1] };
2345
+ } catch (err) {
2346
+ getState().log(
2347
+ 5,
2348
+ `Error checking for capacitor-builder image: ${err.message || err}`
2349
+ );
2350
+ }
2351
+ return { installed: false };
2321
2352
  }
2322
2353
  };
2323
2354
 
@@ -2373,13 +2404,15 @@ router.get(
2373
2404
  .map((plugin) => plugin.name);
2374
2405
  const builderSettings =
2375
2406
  getState().getConfig("mobile_builder_settings") || {};
2376
- const dockerAvailable = await imageAvailable();
2407
+ const scVersion = getState().scVersion;
2408
+ const dockerAvailable = await imageAvailable(scVersion);
2377
2409
  const xcodeCheckRes = await checkXcodebuild();
2378
2410
  const xcodebuildAvailable = xcodeCheckRes.installed;
2379
2411
  const xcodebuildVersion = xcodeCheckRes.version;
2380
2412
  const layout = getState().getLayout(req.user);
2381
2413
  const isSbadmin2 = layout === getState().layouts.sbadmin2;
2382
2414
  const pushEnabled = getState().getConfig("enable_push_notify", false);
2415
+ const isEntrypointByRole = builderSettings.entryPointByRole === "on";
2383
2416
  send_admin_page({
2384
2417
  res,
2385
2418
  req,
@@ -2439,152 +2472,188 @@ router.get(
2439
2472
  )
2440
2473
  ),
2441
2474
  div(
2442
- { class: "row" },
2475
+ { class: "row mb-3" },
2443
2476
  div(
2444
- { class: "col-sm-4" },
2445
- // 'view/page' tabs
2446
- ul(
2447
- { class: "nav nav-pills" },
2448
- li(
2449
- {
2450
- class: "nav-item",
2451
- onClick: "showEntrySelect('view')",
2452
- },
2453
- div(
2477
+ {
2478
+ class: `col-sm-4 mt-2 ${isEntrypointByRole ? "" : "border border-2 p-3 rounded"}`,
2479
+ id: "entryPointRowId",
2480
+ },
2481
+ div(
2482
+ { class: "row pb-2" },
2483
+ div(
2484
+ { class: "col-sm-6" },
2485
+ input({
2486
+ type: "checkbox",
2487
+ id: "entryPointByRoleBoxId",
2488
+ class: "form-check-input me-2",
2489
+ name: "entryPointByRole",
2490
+ checked: isEntrypointByRole,
2491
+ }),
2492
+ label(
2454
2493
  {
2455
- class: `nav-link ${
2456
- !builderSettings.entryPointType ||
2457
- builderSettings.entryPointType === "view"
2458
- ? "active"
2459
- : ""
2460
- }`,
2461
- id: "viewNavLinkID",
2494
+ for: "entryPointByRole",
2495
+ class: "form-label",
2462
2496
  },
2463
- req.__("View")
2497
+ req.__("Entry point by role"),
2498
+ a(
2499
+ {
2500
+ href: "javascript:ajax_modal('/admin/help/Entry point by role?')",
2501
+ },
2502
+ i({ class: "fas fa-question-circle ps-1" })
2503
+ )
2464
2504
  )
2465
- ),
2466
- li(
2467
- {
2468
- class: "nav-item",
2469
- onClick: "showEntrySelect('page')",
2470
- },
2471
- div(
2505
+ )
2506
+ ),
2507
+ // 'view/page/pagegroup' tabs
2508
+ div(
2509
+ {
2510
+ id: "entrySelectorsId",
2511
+ class: isEntrypointByRole ? "d-none" : "",
2512
+ },
2513
+ ul(
2514
+ { class: "nav nav-pills" },
2515
+ li(
2472
2516
  {
2473
- class: `nav-link ${
2474
- builderSettings.entryPointType === "page"
2475
- ? "active"
2476
- : ""
2477
- }`,
2478
- id: "pageNavLinkID",
2517
+ class: "nav-item",
2518
+ onClick: "showEntrySelect('view')",
2479
2519
  },
2480
- req.__("Page")
2520
+ div(
2521
+ {
2522
+ class: `nav-link ${
2523
+ !builderSettings.entryPointType ||
2524
+ builderSettings.entryPointType === "view"
2525
+ ? "active"
2526
+ : ""
2527
+ }`,
2528
+ id: "viewNavLinkID",
2529
+ },
2530
+ req.__("View")
2531
+ )
2481
2532
  ),
2482
2533
  li(
2483
2534
  {
2484
2535
  class: "nav-item",
2485
- onClick: "showEntrySelect('pagegroup')",
2536
+ onClick: "showEntrySelect('page')",
2486
2537
  },
2487
2538
  div(
2488
2539
  {
2489
2540
  class: `nav-link ${
2490
- builderSettings.entryPointType === "pagegroup"
2541
+ builderSettings.entryPointType === "page"
2491
2542
  ? "active"
2492
2543
  : ""
2493
2544
  }`,
2494
- id: "pagegroupNavLinkID",
2545
+ id: "pageNavLinkID",
2495
2546
  },
2496
- req.__("Pagegroup")
2497
- )
2498
- )
2499
- )
2500
- ),
2501
- // select entry-view
2502
- select(
2503
- {
2504
- class: `form-select ${
2505
- builderSettings.entryPointType === "page" ||
2506
- builderSettings.entryPointType === "pagegroup"
2507
- ? "d-none"
2508
- : ""
2509
- }`,
2510
- ...(!builderSettings.entryPointType ||
2511
- builderSettings.entryPointType === "view"
2512
- ? { name: "entryPoint" }
2513
- : {}),
2514
- id: "viewInputID",
2515
- },
2516
- views
2517
- .map((view) =>
2518
- option(
2547
+ req.__("Page")
2548
+ ),
2549
+ li(
2519
2550
  {
2520
- value: view.name,
2521
- selected:
2522
- builderSettings.entryPointType === "view" &&
2523
- builderSettings.entryPoint === view.name,
2551
+ class: "nav-item",
2552
+ onClick: "showEntrySelect('pagegroup')",
2524
2553
  },
2525
- view.name
2554
+ div(
2555
+ {
2556
+ class: `nav-link ${
2557
+ builderSettings.entryPointType ===
2558
+ "pagegroup"
2559
+ ? "active"
2560
+ : ""
2561
+ }`,
2562
+ id: "pagegroupNavLinkID",
2563
+ },
2564
+ req.__("Pagegroup")
2565
+ )
2526
2566
  )
2527
2567
  )
2528
- .join(",")
2529
- ),
2530
- // select entry-page
2531
- select(
2532
- {
2533
- class: `form-select ${
2534
- !builderSettings.entryPointType ||
2535
- builderSettings.entryPointType === "view" ||
2536
- builderSettings.entryPointType === "pagegroup"
2537
- ? "d-none"
2538
- : ""
2539
- }`,
2540
- ...(builderSettings.entryPointType === "page"
2541
- ? { name: "entryPoint" }
2542
- : {}),
2543
- id: "pageInputID",
2544
- },
2545
- pages
2546
- .map((page) =>
2547
- option(
2548
- {
2549
- value: page.name,
2550
- selected:
2551
- builderSettings.entryPointType === "page" &&
2552
- builderSettings.entryPoint === page.name,
2553
- },
2554
- page.name
2568
+ ),
2569
+ // select entry-view
2570
+ select(
2571
+ {
2572
+ class: `form-select ${
2573
+ builderSettings.entryPointType === "page" ||
2574
+ builderSettings.entryPointType === "pagegroup"
2575
+ ? "d-none"
2576
+ : ""
2577
+ }`,
2578
+ ...(!builderSettings.entryPointType ||
2579
+ builderSettings.entryPointType === "view"
2580
+ ? { name: "entryPoint" }
2581
+ : {}),
2582
+ id: "viewInputID",
2583
+ },
2584
+ views
2585
+ .map((view) =>
2586
+ option(
2587
+ {
2588
+ value: view.name,
2589
+ selected:
2590
+ builderSettings.entryPointType === "view" &&
2591
+ builderSettings.entryPoint === view.name,
2592
+ },
2593
+ view.name
2594
+ )
2555
2595
  )
2556
- )
2557
- .join("")
2558
- ),
2559
- // select entry-pagegroup
2560
- select(
2561
- {
2562
- class: `form-select ${
2563
- !builderSettings.entryPointType ||
2564
- builderSettings.entryPointType === "view" ||
2565
- builderSettings.entryPointType === "page"
2566
- ? "d-none"
2567
- : ""
2568
- }`,
2569
- ...(builderSettings.entryPointType === "pagegroup"
2570
- ? { name: "entryPoint" }
2571
- : {}),
2572
- id: "pagegroupInputID",
2573
- },
2574
- pageGroups
2575
- .map((group) =>
2576
- option(
2577
- {
2578
- value: group.name,
2579
- selected:
2580
- builderSettings.entryPointType ===
2581
- "pagegroup" &&
2582
- builderSettings.entryPoint === group.name,
2583
- },
2584
- group.name
2596
+ .join(",")
2597
+ ),
2598
+ // select entry-page
2599
+ select(
2600
+ {
2601
+ class: `form-select ${
2602
+ !builderSettings.entryPointType ||
2603
+ builderSettings.entryPointType === "view" ||
2604
+ builderSettings.entryPointType === "pagegroup"
2605
+ ? "d-none"
2606
+ : ""
2607
+ }`,
2608
+ ...(builderSettings.entryPointType === "page"
2609
+ ? { name: "entryPoint" }
2610
+ : {}),
2611
+ id: "pageInputID",
2612
+ },
2613
+ pages
2614
+ .map((page) =>
2615
+ option(
2616
+ {
2617
+ value: page.name,
2618
+ selected:
2619
+ builderSettings.entryPointType === "page" &&
2620
+ builderSettings.entryPoint === page.name,
2621
+ },
2622
+ page.name
2623
+ )
2585
2624
  )
2586
- )
2587
- .join("")
2625
+ .join("")
2626
+ ),
2627
+ // select entry-pagegroup
2628
+ select(
2629
+ {
2630
+ class: `form-select ${
2631
+ !builderSettings.entryPointType ||
2632
+ builderSettings.entryPointType === "view" ||
2633
+ builderSettings.entryPointType === "page"
2634
+ ? "d-none"
2635
+ : ""
2636
+ }`,
2637
+ ...(builderSettings.entryPointType === "pagegroup"
2638
+ ? { name: "entryPoint" }
2639
+ : {}),
2640
+ id: "pagegroupInputID",
2641
+ },
2642
+ pageGroups
2643
+ .map((group) =>
2644
+ option(
2645
+ {
2646
+ value: group.name,
2647
+ selected:
2648
+ builderSettings.entryPointType ===
2649
+ "pagegroup" &&
2650
+ builderSettings.entryPoint === group.name,
2651
+ },
2652
+ group.name
2653
+ )
2654
+ )
2655
+ .join("")
2656
+ )
2588
2657
  )
2589
2658
  ),
2590
2659
  div(
@@ -3133,15 +3202,58 @@ router.get(
3133
3202
  id: "dockerBuilderStatusId",
3134
3203
  class: "",
3135
3204
  },
3136
- dockerAvailable
3205
+ dockerAvailable.installed &&
3206
+ dockerAvailable.version === scVersion
3137
3207
  ? span(
3138
3208
  req.__("installed"),
3139
3209
  i({ class: "ps-2 fas fa-check text-success" })
3140
3210
  )
3141
- : span(
3142
- req.__("not available"),
3143
- i({ class: "ps-2 fas fa-times text-danger" })
3144
- )
3211
+ : dockerAvailable.installed
3212
+ ? div(
3213
+ {
3214
+ id: "mismatchBoxId",
3215
+ class: "mt-3 p-3 border rounded bg-light",
3216
+ },
3217
+ div(
3218
+ {
3219
+ class: "d-flex align-items-center mb-2",
3220
+ },
3221
+ req.__("installed"),
3222
+ i({
3223
+ title: req.__("Information"),
3224
+ class:
3225
+ "ps-2 fas fa-info-circle text-warning",
3226
+ })
3227
+ ),
3228
+ div(
3229
+ { class: "fw-bold text-danger mb-1" },
3230
+ "Version Mismatch:"
3231
+ ),
3232
+
3233
+ ul(
3234
+ { class: "list-unstyled mb-0" },
3235
+ li(
3236
+ span(
3237
+ { class: "fw-semibold text-muted" },
3238
+ req.__("Docker tag:")
3239
+ ),
3240
+ dockerAvailable.version
3241
+ ),
3242
+ li(
3243
+ span(
3244
+ { class: "fw-semibold text-muted" },
3245
+ req.__("SC version:")
3246
+ ),
3247
+ scVersion
3248
+ )
3249
+ )
3250
+ )
3251
+ : span(
3252
+ req.__("not available"),
3253
+ i({
3254
+ class: "ps-2 fas fa-times text-danger",
3255
+ })
3256
+ )
3145
3257
  )
3146
3258
  ),
3147
3259
  div(
@@ -3712,6 +3824,7 @@ router.post(
3712
3824
  let {
3713
3825
  entryPoint,
3714
3826
  entryPointType,
3827
+ entryPointByRole,
3715
3828
  androidPlatform,
3716
3829
  iOSPlatform,
3717
3830
  useDocker,
@@ -3815,10 +3928,12 @@ router.post(
3815
3928
  await File.new_folder(outDirName, "/mobile_app");
3816
3929
  const spawnParams = [
3817
3930
  "build-app",
3818
- "-e",
3819
- entryPoint,
3820
3931
  "-t",
3821
- entryPointType === "pagegroup" ? "page" : entryPointType,
3932
+ entryPointByRole
3933
+ ? "byrole"
3934
+ : entryPointType === "pagegroup"
3935
+ ? "page"
3936
+ : entryPointType,
3822
3937
  "-c",
3823
3938
  outDir,
3824
3939
  "-b",
@@ -3826,6 +3941,7 @@ router.post(
3826
3941
  "-u",
3827
3942
  req.user.email, // ensured by isAdmin
3828
3943
  ];
3944
+ if (!entryPointByRole) spawnParams.push("-e", entryPoint);
3829
3945
  if (useDocker) spawnParams.push("-d");
3830
3946
  if (androidPlatform) spawnParams.push("-p", "android");
3831
3947
  if (iOSPlatform) {
@@ -3997,8 +4113,9 @@ router.get(
3997
4113
  "/mobile-app/check-capacitor-builder",
3998
4114
  isAdmin,
3999
4115
  error_catcher(async (req, res) => {
4000
- const installed = await imageAvailable();
4001
- res.json({ installed });
4116
+ const state = getState();
4117
+ const { installed, version } = await imageAvailable(state.scVersion);
4118
+ res.json({ installed, version, sc_version: state.scVersion });
4002
4119
  })
4003
4120
  );
4004
4121
 
package/routes/tables.js CHANGED
@@ -848,7 +848,7 @@ router.get(
848
848
  r.typename +
849
849
  span({ class: "badge bg-danger ms-1" }, "Unknown type"),
850
850
  },
851
- ...(table.external || !user_can_edit_tables
851
+ ...(table.external || !user_can_edit_tables || table.provider_name
852
852
  ? []
853
853
  : [
854
854
  {
@@ -865,7 +865,7 @@ router.get(
865
865
  key: (r) => attribBadges(r),
866
866
  },
867
867
  { label: req.__("Variable name"), key: (t) => code(t.name) },
868
- ...(table.external || !user_can_edit_tables
868
+ ...(table.external || !user_can_edit_tables || table.provider_name
869
869
  ? []
870
870
  : [
871
871
  {