@saltcorn/server 1.6.0-alpha.0 → 1.6.0-alpha.2

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 (1065) hide show
  1. package/docs/assets/hierarchy.js +1 -1
  2. package/docs/assets/icons.js +1 -1
  3. package/docs/assets/icons.svg +1 -1
  4. package/docs/assets/navigation.js +1 -1
  5. package/docs/assets/search.js +1 -1
  6. package/docs/assets/style.css +3 -3
  7. package/docs/classes/_saltcorn_admin-models.models_snapshot.Snapshot.html +2 -2
  8. package/docs/classes/_saltcorn_common-code.relations_relation.Relation.html +3 -3
  9. package/docs/classes/_saltcorn_common-code.relations_relations_finder.RelationsFinder.html +5 -5
  10. package/docs/classes/_saltcorn_data.diagram_cy_raster.CytoscapeRaster.html +4 -4
  11. package/docs/classes/_saltcorn_data.diagram_nodes_dummy_node.DummyNode.html +4 -4
  12. package/docs/classes/_saltcorn_data.diagram_nodes_node.Node.html +4 -4
  13. package/docs/classes/_saltcorn_data.diagram_nodes_page_node.PageNode.html +4 -4
  14. package/docs/classes/_saltcorn_data.diagram_nodes_table_node.TableNode.html +4 -4
  15. package/docs/classes/_saltcorn_data.diagram_nodes_trigger_node.TriggerNode.html +4 -4
  16. package/docs/classes/_saltcorn_data.diagram_nodes_view_node.ViewNode.html +4 -4
  17. package/docs/classes/_saltcorn_data.mobile-mocks_node_async_hooks.AsyncLocalStorage.html +2 -2
  18. package/docs/classes/_saltcorn_data.models_crash.Crash.html +2 -2
  19. package/docs/classes/_saltcorn_data.models_eventlog.EventLog.html +2 -2
  20. package/docs/classes/_saltcorn_data.models_field.Field.html +9 -9
  21. package/docs/classes/_saltcorn_data.models_fieldrepeat.FieldRepeat.html +2 -2
  22. package/docs/classes/_saltcorn_data.models_file.File.html +21 -21
  23. package/docs/classes/_saltcorn_data.models_form.Form.html +3 -2
  24. package/docs/classes/_saltcorn_data.models_internal_mail_queue.MailQueue.html +4 -4
  25. package/docs/classes/_saltcorn_data.models_internal_push_message_helper.PushMessageHelper.html +16 -9
  26. package/docs/classes/_saltcorn_data.models_library.Library.html +2 -2
  27. package/docs/classes/_saltcorn_data.models_model.Model.html +2 -2
  28. package/docs/classes/_saltcorn_data.models_model_instance.ModelInstance.html +2 -2
  29. package/docs/classes/_saltcorn_data.models_notification.Notification.html +2 -2
  30. package/docs/classes/_saltcorn_data.models_page.Page.html +11 -11
  31. package/docs/classes/_saltcorn_data.models_page_group.PageGroup.html +16 -16
  32. package/docs/classes/_saltcorn_data.models_page_group_member.PageGroupMember.html +8 -8
  33. package/docs/classes/_saltcorn_data.models_plugin.Plugin.html +12 -10
  34. package/docs/classes/_saltcorn_data.models_role.Role.html +2 -2
  35. package/docs/classes/_saltcorn_data.models_table.Table.html +73 -69
  36. package/docs/classes/_saltcorn_data.models_table_constraints.TableConstraint.html +2 -2
  37. package/docs/classes/_saltcorn_data.models_tag.Tag.html +2 -2
  38. package/docs/classes/_saltcorn_data.models_tag_entry.TagEntry.html +2 -2
  39. package/docs/classes/_saltcorn_data.models_trigger.Trigger.html +19 -19
  40. package/docs/classes/_saltcorn_data.models_user.User.html +32 -32
  41. package/docs/classes/_saltcorn_data.models_view.View.html +15 -15
  42. package/docs/classes/_saltcorn_data.models_workflow.Workflow.html +2 -2
  43. package/docs/classes/_saltcorn_data.models_workflow_run.WorkflowRun.html +2 -2
  44. package/docs/classes/_saltcorn_data.models_workflow_step.WorkflowStep.html +2 -2
  45. package/docs/classes/_saltcorn_data.models_workflow_trace.MetaData.html +2 -2
  46. package/docs/classes/_saltcorn_data.models_workflow_trace.WorkflowTrace.html +2 -2
  47. package/docs/classes/_saltcorn_mobile-builder.mobile-builder.MobileBuilder.html +6 -3
  48. package/docs/classes/_saltcorn_mobile-builder.utils_capacitor-helper.CapacitorHelper.html +2 -2
  49. package/docs/enums/_saltcorn_common-code.relations_relation_types.RelationType.html +2 -2
  50. package/docs/enums/_saltcorn_common-code.relations_relation_types.ViewDisplayType.html +2 -2
  51. package/docs/functions/_saltcorn_admin-models.models_config-check.runConfigurationCheck.html +1 -1
  52. package/docs/functions/_saltcorn_common-code.relations_relation_helpers.buildRelationPath.html +1 -1
  53. package/docs/functions/_saltcorn_common-code.relations_relation_helpers.buildTableCaches.html +1 -1
  54. package/docs/functions/_saltcorn_common-code.relations_relation_helpers.parseLegacyRelation.html +1 -1
  55. package/docs/functions/_saltcorn_common-code.relations_relation_helpers.parseRelationPath.html +1 -1
  56. package/docs/functions/_saltcorn_common-code.tests_test_data.fixturesData.html +1 -1
  57. package/docs/functions/_saltcorn_common-code.tests_test_data.withAnotherUserField.html +1 -1
  58. package/docs/functions/_saltcorn_common-code.tests_test_data.withKeyFromLayerThree.html +1 -1
  59. package/docs/functions/_saltcorn_common-code.tests_test_data.withKeyFromLayerTwo.html +1 -1
  60. package/docs/functions/_saltcorn_common-code.tests_test_data.withMultipleInbounds.html +1 -1
  61. package/docs/functions/_saltcorn_common-code.tests_test_data.withSecondTopicField.html +1 -1
  62. package/docs/functions/_saltcorn_common-code.tests_test_data.withSimplePostTopicrelation.html +1 -1
  63. package/docs/functions/_saltcorn_data.base-plugin_fieldviews.radio_select.run.html +1 -1
  64. package/docs/functions/_saltcorn_data.base-plugin_fieldviews.search_or_create.configFields.html +1 -1
  65. package/docs/functions/_saltcorn_data.base-plugin_fieldviews.search_or_create.run.html +1 -1
  66. package/docs/functions/_saltcorn_data.base-plugin_fieldviews.select.run.html +1 -1
  67. package/docs/functions/_saltcorn_data.base-plugin_fieldviews.select_from_table.fill_options.html +1 -1
  68. package/docs/functions/_saltcorn_data.base-plugin_fieldviews.select_from_table.run.html +1 -1
  69. package/docs/functions/_saltcorn_data.base-plugin_types.bool.contract.html +1 -1
  70. package/docs/functions/_saltcorn_data.base-plugin_types.bool.fieldviews.TrueFalse.run.html +1 -1
  71. package/docs/functions/_saltcorn_data.base-plugin_types.bool.fieldviews.checkboxes.run.html +1 -1
  72. package/docs/functions/_saltcorn_data.base-plugin_types.bool.fieldviews.edit.run.html +1 -1
  73. package/docs/functions/_saltcorn_data.base-plugin_types.bool.fieldviews.show.run.html +1 -1
  74. package/docs/functions/_saltcorn_data.base-plugin_types.bool.fieldviews.tristate.run.html +1 -1
  75. package/docs/functions/_saltcorn_data.base-plugin_types.bool.listAs.html +1 -1
  76. package/docs/functions/_saltcorn_data.base-plugin_types.bool.read.html +1 -1
  77. package/docs/functions/_saltcorn_data.base-plugin_types.bool.readFromDB.html +1 -1
  78. package/docs/functions/_saltcorn_data.base-plugin_types.bool.readFromFormRecord.html +1 -1
  79. package/docs/functions/_saltcorn_data.base-plugin_types.bool.validate.html +1 -1
  80. package/docs/functions/_saltcorn_data.base-plugin_types.color.contract.html +1 -1
  81. package/docs/functions/_saltcorn_data.base-plugin_types.color.fieldviews.edit.run.html +1 -1
  82. package/docs/functions/_saltcorn_data.base-plugin_types.color.fieldviews.show.run.html +1 -1
  83. package/docs/functions/_saltcorn_data.base-plugin_types.color.read.html +1 -1
  84. package/docs/functions/_saltcorn_data.base-plugin_types.color.validate.html +1 -1
  85. package/docs/functions/_saltcorn_data.base-plugin_types.date.contract.html +1 -1
  86. package/docs/functions/_saltcorn_data.base-plugin_types.date.equals.html +1 -1
  87. package/docs/functions/_saltcorn_data.base-plugin_types.date.fieldviews.edit.run.html +1 -1
  88. package/docs/functions/_saltcorn_data.base-plugin_types.date.fieldviews.editDay.run.html +1 -1
  89. package/docs/functions/_saltcorn_data.base-plugin_types.date.fieldviews.format.run.html +1 -1
  90. package/docs/functions/_saltcorn_data.base-plugin_types.date.fieldviews.relative.run.html +1 -1
  91. package/docs/functions/_saltcorn_data.base-plugin_types.date.fieldviews.show.run.html +1 -1
  92. package/docs/functions/_saltcorn_data.base-plugin_types.date.fieldviews.showDay.run.html +1 -1
  93. package/docs/functions/_saltcorn_data.base-plugin_types.date.fieldviews.yearsAgo.run.html +1 -1
  94. package/docs/functions/_saltcorn_data.base-plugin_types.date.presets.Now.html +1 -1
  95. package/docs/functions/_saltcorn_data.base-plugin_types.date.read.html +1 -1
  96. package/docs/functions/_saltcorn_data.base-plugin_types.date.validate.html +1 -1
  97. package/docs/functions/_saltcorn_data.base-plugin_types.float.contract.html +1 -1
  98. package/docs/functions/_saltcorn_data.base-plugin_types.float.equals.html +1 -1
  99. package/docs/functions/_saltcorn_data.base-plugin_types.float.fieldviews.edit.run.html +1 -1
  100. package/docs/functions/_saltcorn_data.base-plugin_types.float.fieldviews.show.run.html +1 -1
  101. package/docs/functions/_saltcorn_data.base-plugin_types.float.read.html +1 -1
  102. package/docs/functions/_saltcorn_data.base-plugin_types.float.validate.html +1 -1
  103. package/docs/functions/_saltcorn_data.base-plugin_types.int.contract.html +1 -1
  104. package/docs/functions/_saltcorn_data.base-plugin_types.int.read.html +1 -1
  105. package/docs/functions/_saltcorn_data.base-plugin_types.int.validate.html +1 -1
  106. package/docs/functions/_saltcorn_data.base-plugin_types.int.validate_attributes.html +1 -1
  107. package/docs/functions/_saltcorn_data.base-plugin_types.string.attributes.html +1 -1
  108. package/docs/functions/_saltcorn_data.base-plugin_types.string.contract.html +1 -1
  109. package/docs/functions/_saltcorn_data.base-plugin_types.string.fieldviews.as_header.run.html +1 -1
  110. package/docs/functions/_saltcorn_data.base-plugin_types.string.fieldviews.as_link.run.html +1 -1
  111. package/docs/functions/_saltcorn_data.base-plugin_types.string.fieldviews.as_text.run.html +1 -1
  112. package/docs/functions/_saltcorn_data.base-plugin_types.string.fieldviews.edit.configFields.html +1 -1
  113. package/docs/functions/_saltcorn_data.base-plugin_types.string.fieldviews.edit.run.html +1 -1
  114. package/docs/functions/_saltcorn_data.base-plugin_types.string.fieldviews.img_from_url.run.html +1 -1
  115. package/docs/functions/_saltcorn_data.base-plugin_types.string.fieldviews.password.run.html +1 -1
  116. package/docs/functions/_saltcorn_data.base-plugin_types.string.fieldviews.radio_group.run.html +1 -1
  117. package/docs/functions/_saltcorn_data.base-plugin_types.string.fieldviews.textarea.run.html +1 -1
  118. package/docs/functions/_saltcorn_data.base-plugin_types.string.presets.IP.html +1 -1
  119. package/docs/functions/_saltcorn_data.base-plugin_types.string.presets.SessionID.html +1 -1
  120. package/docs/functions/_saltcorn_data.base-plugin_types.string.read.html +1 -1
  121. package/docs/functions/_saltcorn_data.base-plugin_types.string.validate.html +1 -1
  122. package/docs/functions/_saltcorn_data.base-plugin_types.string.validate_attributes.html +1 -1
  123. package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.action_link.html +1 -1
  124. package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.action_url.html +1 -1
  125. package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.fill_presets.html +1 -1
  126. package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.getForm.html +1 -1
  127. package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.get_view_link_query.html +1 -1
  128. package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.get_viewable_fields.html +1 -1
  129. package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.get_viewable_fields_from_layout.html +1 -1
  130. package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.make_link.html +1 -1
  131. package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.objToQueryString.html +1 -1
  132. package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.parse_view_select.html +1 -1
  133. package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.setDateLocales.html +1 -1
  134. package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.splitUniques.html +1 -1
  135. package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.standardBlockDispatch.html +1 -1
  136. package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.standardLayoutRowVisitor.html +1 -1
  137. package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.transformForm.html +1 -1
  138. package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.updateViewSelect.html +1 -1
  139. package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.view_linker.html +1 -1
  140. package/docs/functions/_saltcorn_data.db_connect_mobile.getConnectObject.html +1 -1
  141. package/docs/functions/_saltcorn_data.db_reset_schema.reset.html +1 -1
  142. package/docs/functions/_saltcorn_data.diagram_cy_generate_utils.generateCyCode.html +1 -1
  143. package/docs/functions/_saltcorn_data.diagram_cy_generate_utils.genereateCyCfg.html +1 -1
  144. package/docs/functions/_saltcorn_data.diagram_node_extract_utils.buildObjectTrees.html +1 -1
  145. package/docs/functions/_saltcorn_data.diagram_node_extract_utils.extractFromColumns.html +1 -1
  146. package/docs/functions/_saltcorn_data.diagram_node_extract_utils.extractFromLayout.html +1 -1
  147. package/docs/functions/_saltcorn_data.diagram_node_extract_utils.extractViewToCreate.html +1 -1
  148. package/docs/functions/_saltcorn_data.migrate.create_blank_migration.html +1 -1
  149. package/docs/functions/_saltcorn_data.migrate.getMigrationsInDB.html +1 -1
  150. package/docs/functions/_saltcorn_data.migrate.migrate.html +1 -1
  151. package/docs/functions/_saltcorn_data.migrations_202102091312.js.html +1 -1
  152. package/docs/functions/_saltcorn_data.migrations_202210051058.js.html +1 -1
  153. package/docs/functions/_saltcorn_data.migrations_202210101540.js.html +1 -1
  154. package/docs/functions/_saltcorn_data.migrations_202304281224.js.html +1 -1
  155. package/docs/functions/_saltcorn_data.migrations_202307211459.js.html +1 -1
  156. package/docs/functions/_saltcorn_data.migrations_202502131103.js.html +1 -1
  157. package/docs/functions/_saltcorn_data.migrations_202508011455.js.html +1 -1
  158. package/docs/functions/_saltcorn_data.migrations_202510152058.js.html +1 -1
  159. package/docs/functions/_saltcorn_data.mobile-mocks_node_child_process.execSync.html +1 -1
  160. package/docs/functions/_saltcorn_data.mobile-mocks_node_fs.createReadStream.html +1 -1
  161. package/docs/functions/_saltcorn_data.mobile-mocks_node_fs.readdirSync.html +1 -1
  162. package/docs/functions/_saltcorn_data.mobile-mocks_node_fs.writeFileSync.html +1 -1
  163. package/docs/functions/_saltcorn_data.mobile-mocks_node_fs_promises.mkdir.html +1 -1
  164. package/docs/functions/_saltcorn_data.mobile-mocks_node_fs_promises.readFile.html +1 -1
  165. package/docs/functions/_saltcorn_data.mobile-mocks_node_fs_promises.stat.html +1 -1
  166. package/docs/functions/_saltcorn_data.mobile-mocks_node_fs_promises.unlink.html +1 -1
  167. package/docs/functions/_saltcorn_data.mobile-mocks_node_fs_promises.writeFile.html +1 -1
  168. package/docs/functions/_saltcorn_data.mobile-mocks_node_latest-version.latestVersion.html +1 -1
  169. package/docs/functions/_saltcorn_data.mobile-mocks_node_v8.deserialize.html +1 -1
  170. package/docs/functions/_saltcorn_data.mobile-mocks_node_v8.serialize.html +1 -1
  171. package/docs/functions/_saltcorn_data.mobile-mocks_npm_env-paths.envPaths.html +1 -1
  172. package/docs/functions/_saltcorn_data.model-helper.get_predictor.html +1 -1
  173. package/docs/functions/_saltcorn_data.model-helper.run_jupyter_model.html +1 -1
  174. package/docs/functions/_saltcorn_data.model-helper.shorten_trackback.html +1 -1
  175. package/docs/functions/_saltcorn_data.model-helper.write_csv.html +1 -1
  176. package/docs/functions/_saltcorn_data.models_internal_async_json_stream.async_json_stream.html +1 -1
  177. package/docs/functions/_saltcorn_data.models_internal_query.aggregation_query_fields.html +1 -1
  178. package/docs/functions/_saltcorn_data.models_internal_query.getAggAndField.html +1 -1
  179. package/docs/functions/_saltcorn_data.models_internal_query.joinfield_renamer.html +1 -1
  180. package/docs/functions/_saltcorn_data.models_internal_query.process_aggregations.html +1 -1
  181. package/docs/functions/_saltcorn_data.models_internal_s3_helpers.buildKeyFromRelative.html +1 -1
  182. package/docs/functions/_saltcorn_data.models_internal_s3_helpers.copyObject.html +1 -1
  183. package/docs/functions/_saltcorn_data.models_internal_s3_helpers.deleteObject.html +1 -1
  184. package/docs/functions/_saltcorn_data.models_internal_s3_helpers.downloadBuffer.html +1 -1
  185. package/docs/functions/_saltcorn_data.models_internal_s3_helpers.getPublicFileUrl.html +1 -1
  186. package/docs/functions/_saltcorn_data.models_internal_s3_helpers.getResolvedBucket.html +1 -1
  187. package/docs/functions/_saltcorn_data.models_internal_s3_helpers.getS3Client.html +1 -1
  188. package/docs/functions/_saltcorn_data.models_internal_s3_helpers.getServeUrl.html +1 -1
  189. package/docs/functions/_saltcorn_data.models_internal_s3_helpers.getSignedFileUrl.html +1 -1
  190. package/docs/functions/_saltcorn_data.models_internal_s3_helpers.headObject.html +1 -1
  191. package/docs/functions/_saltcorn_data.models_internal_s3_helpers.isS3Enabled.html +1 -1
  192. package/docs/functions/_saltcorn_data.models_internal_s3_helpers.listS3Folder.html +1 -1
  193. package/docs/functions/_saltcorn_data.models_internal_s3_helpers.publicUrlToRelativePath.html +1 -1
  194. package/docs/functions/_saltcorn_data.models_internal_s3_helpers.relativeKeyToPath.html +1 -1
  195. package/docs/functions/_saltcorn_data.models_internal_s3_helpers.setObjectMetadata.html +1 -1
  196. package/docs/functions/_saltcorn_data.models_internal_s3_helpers.uploadBuffer.html +1 -1
  197. package/docs/functions/_saltcorn_data.models_internal_table_helper.boolExamples.html +1 -1
  198. package/docs/functions/_saltcorn_data.models_internal_table_helper.colorExamples.html +1 -1
  199. package/docs/functions/_saltcorn_data.models_internal_table_helper.floatExamples.html +1 -1
  200. package/docs/functions/_saltcorn_data.models_internal_table_helper.get_formula_examples.html +1 -1
  201. package/docs/functions/_saltcorn_data.models_internal_table_helper.intExamples.html +1 -1
  202. package/docs/functions/_saltcorn_data.models_internal_table_helper.stringExamples.html +1 -1
  203. package/docs/functions/_saltcorn_data.plugin-helper.build_schema_data.html +1 -1
  204. package/docs/functions/_saltcorn_data.plugin-helper.calcfldViewConfig.html +1 -1
  205. package/docs/functions/_saltcorn_data.plugin-helper.calcfldViewOptions.html +1 -1
  206. package/docs/functions/_saltcorn_data.plugin-helper.calcrelViewOptions.html +1 -1
  207. package/docs/functions/_saltcorn_data.plugin-helper.displayType.html +1 -1
  208. package/docs/functions/_saltcorn_data.plugin-helper.field_picker_fields.html +1 -1
  209. package/docs/functions/_saltcorn_data.plugin-helper.generate_joined_query.html +1 -1
  210. package/docs/functions/_saltcorn_data.plugin-helper.getActionConfigFields.html +1 -1
  211. package/docs/functions/_saltcorn_data.plugin-helper.get_child_views.html +1 -1
  212. package/docs/functions/_saltcorn_data.plugin-helper.get_inbound_relation_opts.html +1 -1
  213. package/docs/functions/_saltcorn_data.plugin-helper.get_inbound_self_relation_opts.html +1 -1
  214. package/docs/functions/_saltcorn_data.plugin-helper.get_link_view_opts.html +1 -1
  215. package/docs/functions/_saltcorn_data.plugin-helper.get_many_to_many_relation_opts.html +1 -1
  216. package/docs/functions/_saltcorn_data.plugin-helper.get_parent_views.html +1 -1
  217. package/docs/functions/_saltcorn_data.plugin-helper.initial_config_all_fields.html +1 -1
  218. package/docs/functions/_saltcorn_data.plugin-helper.json_list_to_external_table.html +1 -1
  219. package/docs/functions/_saltcorn_data.plugin-helper.link_view.html +1 -1
  220. package/docs/functions/_saltcorn_data.plugin-helper.pathToState.html +1 -1
  221. package/docs/functions/_saltcorn_data.plugin-helper.picked_fields_to_query.html +1 -1
  222. package/docs/functions/_saltcorn_data.plugin-helper.readState.html +1 -1
  223. package/docs/functions/_saltcorn_data.plugin-helper.readStateStrict.html +1 -1
  224. package/docs/functions/_saltcorn_data.plugin-helper.runCollabEvents.html +1 -1
  225. package/docs/functions/_saltcorn_data.plugin-helper.run_action_column.html +1 -1
  226. package/docs/functions/_saltcorn_data.plugin-helper.stateFieldsToQuery.html +1 -1
  227. package/docs/functions/_saltcorn_data.plugin-helper.stateFieldsToWhere.html +1 -1
  228. package/docs/functions/_saltcorn_data.plugin-helper.stateToQueryString.html +1 -1
  229. package/docs/functions/_saltcorn_data.plugin-helper.strictParseInt.html +1 -1
  230. package/docs/functions/_saltcorn_data.plugin-testing.auto_test_plugin.html +1 -1
  231. package/docs/functions/_saltcorn_data.plugin-testing.check_view_columns.html +1 -1
  232. package/docs/functions/_saltcorn_data.plugin-testing.generate_attributes.html +1 -1
  233. package/docs/functions/_saltcorn_data.standard-menu.create_standard_menu.html +1 -1
  234. package/docs/functions/_saltcorn_data.tests_assertions.assertIsErrorMsg.html +1 -1
  235. package/docs/functions/_saltcorn_data.tests_assertions.assertIsErrorsMsg.html +1 -1
  236. package/docs/functions/_saltcorn_data.tests_assertions.assertIsRow.html +1 -1
  237. package/docs/functions/_saltcorn_data.tests_assertions.assertIsSet.html +1 -1
  238. package/docs/functions/_saltcorn_data.tests_assertions.assertIsType.html +1 -1
  239. package/docs/functions/_saltcorn_data.tests_assertions.assertsIsSuccessMessage.html +1 -1
  240. package/docs/functions/_saltcorn_data.tests_assertions.assertsObjectIsUser.html +1 -1
  241. package/docs/functions/_saltcorn_data.tests_common_helpers.createAnotherUserField.html +1 -1
  242. package/docs/functions/_saltcorn_data.tests_common_helpers.createKeyFromLevelTwo.html +1 -1
  243. package/docs/functions/_saltcorn_data.tests_common_helpers.createLevelThreeInbound.html +1 -1
  244. package/docs/functions/_saltcorn_data.tests_common_helpers.createMultipleInbounds.html +1 -1
  245. package/docs/functions/_saltcorn_data.tests_common_helpers.createSecondTopicField.html +1 -1
  246. package/docs/functions/_saltcorn_data.tests_common_helpers.prepareEmployeeDepartment.html +1 -1
  247. package/docs/functions/_saltcorn_data.tests_common_helpers.prepareSimpleTopicPostRelation.html +1 -1
  248. package/docs/functions/_saltcorn_data.tests_remote_query_helper.deleteViewFromServer.html +1 -1
  249. package/docs/functions/_saltcorn_data.tests_remote_query_helper.prepareQueryEnviroment.html +1 -1
  250. package/docs/functions/_saltcorn_data.tests_remote_query_helper.sendViewToServer.html +1 -1
  251. package/docs/functions/_saltcorn_data.translate.hasLLM.html +1 -1
  252. package/docs/functions/_saltcorn_data.translate.translate.html +1 -1
  253. package/docs/functions/_saltcorn_db-common.internal.ftsFieldsSqlExpr.html +1 -1
  254. package/docs/functions/_saltcorn_db-common.internal.mkSelectOptions.html +1 -1
  255. package/docs/functions/_saltcorn_db-common.internal.mkWhere.html +1 -1
  256. package/docs/functions/_saltcorn_db-common.internal.orderByIsObject.html +1 -1
  257. package/docs/functions/_saltcorn_db-common.internal.orderByIsOperator.html +1 -1
  258. package/docs/functions/_saltcorn_db-common.internal.prefixFieldsInWhere.html +1 -1
  259. package/docs/functions/_saltcorn_db-common.internal.sqlBinOp.html +1 -1
  260. package/docs/functions/_saltcorn_db-common.internal.sqlFun.html +1 -1
  261. package/docs/functions/_saltcorn_db-common.internal.sqlsanitize.html +1 -1
  262. package/docs/functions/_saltcorn_db-common.internal.sqlsanitizeAllowDots.html +1 -1
  263. package/docs/functions/_saltcorn_db-common.internal.subSelectWhere.html +1 -1
  264. package/docs/functions/_saltcorn_db-common.multi-tenant.enable_multi_tenant.html +1 -1
  265. package/docs/functions/_saltcorn_db-common.multi-tenant.getRequestContext.html +1 -1
  266. package/docs/functions/_saltcorn_db-common.multi-tenant.getTenantSchema.html +1 -1
  267. package/docs/functions/_saltcorn_db-common.multi-tenant.init.html +1 -1
  268. package/docs/functions/_saltcorn_db-common.multi-tenant.is_it_multi_tenant.html +1 -1
  269. package/docs/functions/_saltcorn_db-common.multi-tenant.runWithTenant.html +1 -1
  270. package/docs/functions/_saltcorn_db-common.sqlite-commons.buildInsertBulkSql.html +1 -1
  271. package/docs/functions/_saltcorn_db-common.sqlite-commons.buildInsertSql.html +1 -1
  272. package/docs/functions/_saltcorn_db-common.sqlite-commons.commitAndBeginNewTransaction.html +1 -1
  273. package/docs/functions/_saltcorn_db-common.sqlite-commons.doCount.html +1 -1
  274. package/docs/functions/_saltcorn_db-common.sqlite-commons.doDeleteWhere.html +1 -1
  275. package/docs/functions/_saltcorn_db-common.sqlite-commons.doListScTables.html +1 -1
  276. package/docs/functions/_saltcorn_db-common.sqlite-commons.doListTables.html +1 -1
  277. package/docs/functions/_saltcorn_db-common.sqlite-commons.doListUserDefinedTables.html +1 -1
  278. package/docs/functions/_saltcorn_db-common.sqlite-commons.do_add_index.html +1 -1
  279. package/docs/functions/_saltcorn_db-common.sqlite-commons.do_drop_index.html +1 -1
  280. package/docs/functions/_saltcorn_db-common.sqlite-commons.mkVal.html +1 -1
  281. package/docs/functions/_saltcorn_db-common.sqlite-commons.openOrUseTransaction.html +1 -1
  282. package/docs/functions/_saltcorn_db-common.sqlite-commons.reprAsJson.html +1 -1
  283. package/docs/functions/_saltcorn_db-common.sqlite-commons.slugify.html +1 -1
  284. package/docs/functions/_saltcorn_db-common.sqlite-commons.tryCatchInTransaction.html +1 -1
  285. package/docs/functions/_saltcorn_db-common.sqlite-commons.whenTransactionisFree.html +1 -1
  286. package/docs/functions/_saltcorn_db-common.sqlite-commons.withTransaction.html +1 -1
  287. package/docs/functions/_saltcorn_markup.mktag.mkTag.html +1 -1
  288. package/docs/functions/_saltcorn_markup.tabs.tabs.html +1 -1
  289. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.androidFeatures.html +1 -1
  290. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.androidPermissions.html +1 -1
  291. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.buildTablesFile.html +1 -1
  292. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.copyPrepopulatedDb.html +1 -1
  293. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.copyServerFiles.html +1 -1
  294. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.copyShareExtFiles.html +1 -1
  295. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.copySiteLogo.html +1 -1
  296. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.copyTranslationFiles.html +1 -1
  297. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.createSqliteDb.html +1 -1
  298. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.decodeProvisioningProfile.html +1 -1
  299. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.extractDomain.html +1 -1
  300. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.generateAndroidVersionCode.html +1 -1
  301. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.hasAuthMethod.html +1 -1
  302. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.modifyAndroidManifest.html +1 -1
  303. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.modifyAppDelegate.html +1 -0
  304. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.modifyConfigXml.html +1 -1
  305. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.modifyGradleConfig.html +1 -1
  306. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.modifyInfoPlist.html +1 -1
  307. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.modifyXcodeProjectFile.html +1 -1
  308. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.prepAppIcon.html +1 -1
  309. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.prepareAppIcon.html +1 -1
  310. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.prepareBuildDir.html +3 -3
  311. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.prepareExportOptionsPlist.html +1 -1
  312. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.prepareSplashIcon.html +1 -1
  313. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.prepareSplashPage.html +1 -1
  314. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.runAddEntitlementsScript.html +1 -0
  315. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.writeCapacitorConfig.html +1 -1
  316. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.writeCfgFile.html +1 -1
  317. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.writeDataExtractionRules.html +1 -1
  318. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.writeEntitlementsPlist.html +1 -0
  319. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.writeNetworkSecurityConfig.html +1 -1
  320. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.writePodfile.html +1 -1
  321. package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.writePrivacyInfo.html +1 -1
  322. package/docs/functions/_saltcorn_mobile-builder.utils_package-bundle-utils.bundleMobileAppCode.html +1 -1
  323. package/docs/functions/_saltcorn_mobile-builder.utils_package-bundle-utils.bundlePackagesAndPlugins.html +1 -1
  324. package/docs/functions/_saltcorn_mobile-builder.utils_package-bundle-utils.copyOptionalSource.html +1 -1
  325. package/docs/functions/_saltcorn_mobile-builder.utils_package-bundle-utils.copyPluginMobileAppDirs.html +1 -1
  326. package/docs/functions/_saltcorn_mobile-builder.utils_package-bundle-utils.copyPublicDirs.html +1 -1
  327. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.add_index.html +1 -1
  328. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.add_unique_constraint.html +1 -1
  329. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.count.html +1 -1
  330. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.deleteWhere.html +1 -1
  331. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.drop_index.html +1 -1
  332. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.drop_reset_schema.html +1 -1
  333. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.drop_unique_constraint.html +1 -1
  334. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.init.html +1 -1
  335. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.insert.html +1 -1
  336. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.insertRows.html +1 -1
  337. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.listScTables.html +1 -1
  338. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.listTables.html +1 -1
  339. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.listUserDefinedTables.html +1 -1
  340. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.query.html +1 -1
  341. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.select.html +1 -1
  342. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.selectMaybeOne.html +1 -1
  343. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.selectOne.html +1 -1
  344. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.setConnectionObject.html +1 -1
  345. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.tableExists.html +1 -1
  346. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.time.html +1 -1
  347. package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.update.html +1 -1
  348. package/docs/functions/_saltcorn_sqlite.sqlite.add_index.html +1 -1
  349. package/docs/functions/_saltcorn_sqlite.sqlite.add_unique_constraint.html +1 -1
  350. package/docs/functions/_saltcorn_sqlite.sqlite.begin.html +1 -1
  351. package/docs/functions/_saltcorn_sqlite.sqlite.changeConnection.html +1 -1
  352. package/docs/functions/_saltcorn_sqlite.sqlite.close.html +1 -1
  353. package/docs/functions/_saltcorn_sqlite.sqlite.commit.html +1 -1
  354. package/docs/functions/_saltcorn_sqlite.sqlite.count.html +1 -1
  355. package/docs/functions/_saltcorn_sqlite.sqlite.deleteWhere.html +1 -1
  356. package/docs/functions/_saltcorn_sqlite.sqlite.dropTable.html +1 -1
  357. package/docs/functions/_saltcorn_sqlite.sqlite.dropTables.html +1 -1
  358. package/docs/functions/_saltcorn_sqlite.sqlite.drop_index.html +1 -1
  359. package/docs/functions/_saltcorn_sqlite.sqlite.drop_reset_schema.html +1 -1
  360. package/docs/functions/_saltcorn_sqlite.sqlite.drop_unique_constraint.html +1 -1
  361. package/docs/functions/_saltcorn_sqlite.sqlite.getVersion.html +1 -1
  362. package/docs/functions/_saltcorn_sqlite.sqlite.get_db_filepath.html +1 -1
  363. package/docs/functions/_saltcorn_sqlite.sqlite.get_sql_logging.html +1 -1
  364. package/docs/functions/_saltcorn_sqlite.sqlite.init.html +1 -1
  365. package/docs/functions/_saltcorn_sqlite.sqlite.insert.html +1 -1
  366. package/docs/functions/_saltcorn_sqlite.sqlite.listScTables.html +1 -1
  367. package/docs/functions/_saltcorn_sqlite.sqlite.listTables.html +1 -1
  368. package/docs/functions/_saltcorn_sqlite.sqlite.listUserDefinedTables.html +1 -1
  369. package/docs/functions/_saltcorn_sqlite.sqlite.query.html +1 -1
  370. package/docs/functions/_saltcorn_sqlite.sqlite.rollback.html +1 -1
  371. package/docs/functions/_saltcorn_sqlite.sqlite.select.html +1 -1
  372. package/docs/functions/_saltcorn_sqlite.sqlite.selectMaybeOne.html +1 -1
  373. package/docs/functions/_saltcorn_sqlite.sqlite.selectOne.html +1 -1
  374. package/docs/functions/_saltcorn_sqlite.sqlite.set_sql_logging.html +1 -1
  375. package/docs/functions/_saltcorn_sqlite.sqlite.sql_log.html +1 -1
  376. package/docs/functions/_saltcorn_sqlite.sqlite.update.html +1 -1
  377. package/docs/functions/_saltcorn_sqlite.sqlite.updateWhere.html +1 -1
  378. package/docs/functions/_saltcorn_types.base_types.instanceOWithHtmlFile.html +1 -1
  379. package/docs/functions/_saltcorn_types.common_types.instanceOfErrorMsg.html +1 -1
  380. package/docs/functions/_saltcorn_types.common_types.instanceOfSuccessMsg.html +1 -1
  381. package/docs/functions/_saltcorn_types.common_types.instanceOfType.html +1 -1
  382. package/docs/functions/_saltcorn_types.model-abstracts_abstract_field.instanceOfField.html +1 -1
  383. package/docs/functions/_saltcorn_types.model-abstracts_abstract_page.instanceOfPage.html +1 -1
  384. package/docs/functions/_saltcorn_types.model-abstracts_abstract_view.instanceOfView.html +1 -1
  385. package/docs/hierarchy.html +1 -1
  386. package/docs/index.html +4 -2
  387. package/docs/interfaces/_saltcorn_db-common.dbtypes.UserLike.html +2 -2
  388. package/docs/interfaces/_saltcorn_markup.types.TagExports.html +2 -2
  389. package/docs/interfaces/_saltcorn_mobile-builder.utils_common-build-utils.ScCapacitorConfig.html +2 -2
  390. package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_field.AbstractField.html +2 -2
  391. package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_field.AbstractFieldRepeat.html +2 -2
  392. package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_form.AbstractForm.html +3 -2
  393. package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_page.AbstractPage.html +2 -2
  394. package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_page_group.AbstractPageGroup.html +2 -2
  395. package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_page_group_member.AbstractPageGroupMember.html +2 -2
  396. package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_role.AbstractRole.html +2 -2
  397. package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_table.AbstractTable.html +2 -2
  398. package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_tag.AbstractTag.html +2 -2
  399. package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_tag_entry.AbstractTagEntry.html +2 -2
  400. package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_trigger.AbstractTrigger.html +2 -2
  401. package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_user.AbstractUser.html +2 -2
  402. package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_user.ForUserRequest.html +2 -2
  403. package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_view.AbstractView.html +2 -2
  404. package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_workflow.AbstractWorkflow.html +2 -2
  405. package/docs/modules/_saltcorn_admin-models.index.html +1 -1
  406. package/docs/modules/_saltcorn_common-code..html +1 -1
  407. package/docs/modules/_saltcorn_common-code.index.html +1 -1
  408. package/docs/modules/_saltcorn_common-code.relations_relation-1.html +1 -1
  409. package/docs/modules/_saltcorn_common-code.relations_relation_helpers-1.html +1 -1
  410. package/docs/modules/_saltcorn_common-code.relations_relation_types-1.html +1 -1
  411. package/docs/modules/_saltcorn_common-code.relations_relations_finder-1.html +1 -1
  412. package/docs/modules/_saltcorn_data..html +1 -1
  413. package/docs/modules/_saltcorn_data.base-plugin_actions-1.html +1 -1
  414. package/docs/modules/_saltcorn_data.base-plugin_fieldviews-1.html +1 -1
  415. package/docs/modules/_saltcorn_data.base-plugin_fileview-1.html +1 -1
  416. package/docs/modules/_saltcorn_data.base-plugin_index-1.html +1 -1
  417. package/docs/modules/_saltcorn_data.base-plugin_index-2.html +1 -1
  418. package/docs/modules/_saltcorn_data.base-plugin_types-1.html +1 -1
  419. package/docs/modules/_saltcorn_data.base-plugin_viewtemplates_edit-1.html +1 -1
  420. package/docs/modules/_saltcorn_data.base-plugin_viewtemplates_feed-1.html +1 -1
  421. package/docs/modules/_saltcorn_data.base-plugin_viewtemplates_filter-1.html +1 -1
  422. package/docs/modules/_saltcorn_data.base-plugin_viewtemplates_list-1.html +1 -1
  423. package/docs/modules/_saltcorn_data.base-plugin_viewtemplates_listshowlist-1.html +1 -1
  424. package/docs/modules/_saltcorn_data.base-plugin_viewtemplates_room-2.html +1 -1
  425. package/docs/modules/_saltcorn_data.base-plugin_viewtemplates_room-3.html +1 -1
  426. package/docs/modules/_saltcorn_data.base-plugin_viewtemplates_show-1.html +1 -1
  427. package/docs/modules/_saltcorn_data.base-plugin_viewtemplates_viewable_fields-1.html +1 -1
  428. package/docs/modules/_saltcorn_data.db_connect-1.html +1 -1
  429. package/docs/modules/_saltcorn_data.db_connect_mobile-1.html +1 -1
  430. package/docs/modules/_saltcorn_data.db_fa5-icons-1.html +1 -1
  431. package/docs/modules/_saltcorn_data.db_fixtures-1.html +1 -1
  432. package/docs/modules/_saltcorn_data.db_index-1.html +1 -1
  433. package/docs/modules/_saltcorn_data.db_index-2.html +1 -1
  434. package/docs/modules/_saltcorn_data.db_reset_schema-1.html +1 -1
  435. package/docs/modules/_saltcorn_data.db_state-1.html +1 -1
  436. package/docs/modules/_saltcorn_data.html +3 -2
  437. package/docs/modules/_saltcorn_data.index.html +1 -1
  438. package/docs/modules/_saltcorn_data.mobile-mocks_npm_apns2.html +1 -0
  439. package/docs/modules/_saltcorn_data.mobile-mocks_npm_vm2.html +1 -0
  440. package/docs/modules/_saltcorn_data.mobile-mocks_npm_xml2js.html +1 -0
  441. package/docs/modules/_saltcorn_data.models_config-1.html +1 -1
  442. package/docs/modules/_saltcorn_data.models_config.configExports.html +1 -1
  443. package/docs/modules/_saltcorn_data.models_crash-1.html +1 -1
  444. package/docs/modules/_saltcorn_data.models_discovery-1.html +1 -1
  445. package/docs/modules/_saltcorn_data.models_email-1.html +1 -1
  446. package/docs/modules/_saltcorn_data.models_eventlog-1.html +1 -1
  447. package/docs/modules/_saltcorn_data.models_eventlog.EventLog.html +1 -1
  448. package/docs/modules/_saltcorn_data.models_expression-1.html +1 -1
  449. package/docs/modules/_saltcorn_data.models_field-1.html +1 -1
  450. package/docs/modules/_saltcorn_data.models_fieldrepeat-1.html +1 -1
  451. package/docs/modules/_saltcorn_data.models_file-1.html +1 -1
  452. package/docs/modules/_saltcorn_data.models_file.File.html +1 -1
  453. package/docs/modules/_saltcorn_data.models_form-1.html +1 -1
  454. package/docs/modules/_saltcorn_data.models_form.Form.html +1 -1
  455. package/docs/modules/_saltcorn_data.models_index-1.html +1 -1
  456. package/docs/modules/_saltcorn_data.models_index.html +1 -1
  457. package/docs/modules/_saltcorn_data.models_internal_async_json_stream-1.html +1 -1
  458. package/docs/modules/_saltcorn_data.models_internal_mail_queue-1.html +1 -1
  459. package/docs/modules/_saltcorn_data.models_internal_push_message_helper-1.html +1 -1
  460. package/docs/modules/_saltcorn_data.models_internal_push_message_helper.html +1 -1
  461. package/docs/modules/_saltcorn_data.models_internal_query-1.html +1 -1
  462. package/docs/modules/_saltcorn_data.models_internal_s3_helpers-1.html +1 -1
  463. package/docs/modules/_saltcorn_data.models_internal_table_helper-1.html +1 -1
  464. package/docs/modules/_saltcorn_data.models_layout-1.html +1 -1
  465. package/docs/modules/_saltcorn_data.models_library-1.html +1 -1
  466. package/docs/modules/_saltcorn_data.models_model-1.html +1 -1
  467. package/docs/modules/_saltcorn_data.models_model_instance-1.html +1 -1
  468. package/docs/modules/_saltcorn_data.models_notification-1.html +1 -1
  469. package/docs/modules/_saltcorn_data.models_page-1.html +1 -1
  470. package/docs/modules/_saltcorn_data.models_page_group-1.html +1 -1
  471. package/docs/modules/_saltcorn_data.models_page_group.PageGroup.html +1 -1
  472. package/docs/modules/_saltcorn_data.models_page_group_member-1.html +1 -1
  473. package/docs/modules/_saltcorn_data.models_plugin-1.html +1 -1
  474. package/docs/modules/_saltcorn_data.models_random-1.html +1 -1
  475. package/docs/modules/_saltcorn_data.models_role-1.html +1 -1
  476. package/docs/modules/_saltcorn_data.models_scheduler-1.html +1 -1
  477. package/docs/modules/_saltcorn_data.models_table-1.html +1 -1
  478. package/docs/modules/_saltcorn_data.models_table.Table.html +1 -1
  479. package/docs/modules/_saltcorn_data.models_table_constraints-1.html +1 -1
  480. package/docs/modules/_saltcorn_data.models_tag-1.html +1 -1
  481. package/docs/modules/_saltcorn_data.models_tag_entry-1.html +1 -1
  482. package/docs/modules/_saltcorn_data.models_tag_entry.TagEntry.html +1 -1
  483. package/docs/modules/_saltcorn_data.models_trigger-1.html +1 -1
  484. package/docs/modules/_saltcorn_data.models_user-1.html +1 -1
  485. package/docs/modules/_saltcorn_data.models_view-1.html +1 -1
  486. package/docs/modules/_saltcorn_data.models_view.View.html +1 -1
  487. package/docs/modules/_saltcorn_data.models_workflow-1.html +1 -1
  488. package/docs/modules/_saltcorn_data.models_workflow_run-1.html +1 -1
  489. package/docs/modules/_saltcorn_data.models_workflow_step-1.html +1 -1
  490. package/docs/modules/_saltcorn_data.models_workflow_trace-2.html +1 -1
  491. package/docs/modules/_saltcorn_data.models_workflow_trace-3.html +1 -1
  492. package/docs/modules/_saltcorn_db-common..html +1 -1
  493. package/docs/modules/_saltcorn_db-common.index.html +1 -1
  494. package/docs/modules/_saltcorn_db-common.internal.html +1 -1
  495. package/docs/modules/_saltcorn_markup.emergency_layout.EmergencyLayoutExports.html +1 -1
  496. package/docs/modules/_saltcorn_markup.helpers.HelpersExports.html +1 -1
  497. package/docs/modules/_saltcorn_markup.index.html +1 -1
  498. package/docs/modules/_saltcorn_markup.layout.LayoutExports-1.html +1 -1
  499. package/docs/modules/_saltcorn_markup.layout.LayoutExports.html +1 -1
  500. package/docs/modules/_saltcorn_markup.mjml-layout.LayoutExports.html +1 -1
  501. package/docs/modules/_saltcorn_markup.table.TableExports.html +1 -1
  502. package/docs/modules/_saltcorn_mobile-builder..html +1 -1
  503. package/docs/modules/_saltcorn_mobile-builder.index.html +1 -1
  504. package/docs/modules/_saltcorn_mobile-builder.utils_common-build-utils.html +1 -1
  505. package/docs/modules/_saltcorn_sqlite-mobile.index.html +1 -1
  506. package/docs/modules/_saltcorn_sqlite-mobile.sqlite_capacitor.html +1 -1
  507. package/docs/modules/_saltcorn_sqlite..html +1 -1
  508. package/docs/modules/_saltcorn_sqlite.index.html +1 -1
  509. package/docs/modules/_saltcorn_sqlite.sqlite.html +1 -1
  510. package/docs/modules/_saltcorn_types..Types.html +1 -1
  511. package/docs/modules/_saltcorn_types..html +1 -1
  512. package/docs/modules/_saltcorn_types.index.html +1 -1
  513. package/docs/modules/_saltcorn_types.model-abstracts_abstract_event_log-1.html +1 -1
  514. package/docs/modules/_saltcorn_types.model-abstracts_abstract_field-1.html +1 -1
  515. package/docs/modules/_saltcorn_types.model-abstracts_abstract_form-1.html +1 -1
  516. package/docs/modules/_saltcorn_types.model-abstracts_abstract_library-1.html +1 -1
  517. package/docs/modules/_saltcorn_types.model-abstracts_abstract_model-1.html +1 -1
  518. package/docs/modules/_saltcorn_types.model-abstracts_abstract_model_instance-1.html +1 -1
  519. package/docs/modules/_saltcorn_types.model-abstracts_abstract_page-1.html +1 -1
  520. package/docs/modules/_saltcorn_types.model-abstracts_abstract_page_group-1.html +1 -1
  521. package/docs/modules/_saltcorn_types.model-abstracts_abstract_page_group_member-1.html +1 -1
  522. package/docs/modules/_saltcorn_types.model-abstracts_abstract_plugin-1.html +1 -1
  523. package/docs/modules/_saltcorn_types.model-abstracts_abstract_role-1.html +1 -1
  524. package/docs/modules/_saltcorn_types.model-abstracts_abstract_table-1.html +1 -1
  525. package/docs/modules/_saltcorn_types.model-abstracts_abstract_tag-1.html +1 -1
  526. package/docs/modules/_saltcorn_types.model-abstracts_abstract_tag_entry-1.html +1 -1
  527. package/docs/modules/_saltcorn_types.model-abstracts_abstract_trigger-1.html +1 -1
  528. package/docs/modules/_saltcorn_types.model-abstracts_abstract_user-1.html +1 -1
  529. package/docs/modules/_saltcorn_types.model-abstracts_abstract_view-1.html +1 -1
  530. package/docs/modules/_saltcorn_types.model-abstracts_abstract_workflow-1.html +1 -1
  531. package/docs/modules/_saltcorn_types.model-abstracts_abstract_workflow_run-1.html +1 -1
  532. package/docs/modules/_saltcorn_types.model-abstracts_abstract_workflow_step-1.html +1 -1
  533. package/docs/modules/_saltcorn_types.model-abstracts_abstract_workflow_trace-1.html +1 -1
  534. package/docs/modules/_saltcorn_types.model-abstracts_index-1.html +1 -1
  535. package/docs/modules/_saltcorn_types.model-abstracts_index.ModelAbstracts.html +1 -1
  536. package/docs/types/_saltcorn_data.diagram_node_extract_utils.ExtractOpts.html +2 -2
  537. package/docs/types/_saltcorn_data.diagram_node_extract_utils.ExtractResult.html +2 -2
  538. package/docs/types/_saltcorn_data.diagram_nodes_node.NodeType.html +1 -1
  539. package/docs/types/_saltcorn_data.models_config.ConfigTypes.html +1 -1
  540. package/docs/types/_saltcorn_data.models_config.SingleConfig.html +1 -1
  541. package/docs/types/_saltcorn_data.models_eventlog.EventLogCfg.html +2 -2
  542. package/docs/types/_saltcorn_data.models_file.FileCfg.html +2 -2
  543. package/docs/types/_saltcorn_data.models_form.AdditionalButton.html +1 -1
  544. package/docs/types/_saltcorn_data.models_form.FormCfg.html +3 -2
  545. package/docs/types/_saltcorn_data.models_internal_push_message_helper.FcmSubscription.html +2 -2
  546. package/docs/types/_saltcorn_data.models_internal_push_message_helper.MobileSubscription.html +4 -0
  547. package/docs/types/_saltcorn_data.models_internal_push_message_helper.Subscription.html +1 -1
  548. package/docs/types/_saltcorn_data.models_internal_push_message_helper.WebPushSubscription.html +2 -2
  549. package/docs/types/_saltcorn_data.models_internal_s3_helpers.S3HeadResult.html +1 -1
  550. package/docs/types/_saltcorn_data.models_internal_s3_helpers.S3ListResult.html +2 -2
  551. package/docs/types/_saltcorn_data.models_page_group.ScreenInfoParams.html +2 -2
  552. package/docs/types/_saltcorn_data.models_table.ChildRelations.html +2 -2
  553. package/docs/types/_saltcorn_data.models_table.ParentRelations.html +2 -2
  554. package/docs/types/_saltcorn_data.models_table.RelationData.html +2 -2
  555. package/docs/types/_saltcorn_data.models_tag_entry.TagEntryCfg.html +1 -1
  556. package/docs/types/_saltcorn_data.models_view.FindViewsPred.html +1 -1
  557. package/docs/types/_saltcorn_db-common.dbtypes.AggregationOptions.html +2 -2
  558. package/docs/types/_saltcorn_db-common.dbtypes.CoordOpts.html +2 -2
  559. package/docs/types/_saltcorn_db-common.dbtypes.DatabaseClient.html +2 -2
  560. package/docs/types/_saltcorn_db-common.dbtypes.JoinField.html +2 -2
  561. package/docs/types/_saltcorn_db-common.dbtypes.JoinFields.html +1 -1
  562. package/docs/types/_saltcorn_db-common.dbtypes.JoinOptions.html +1 -1
  563. package/docs/types/_saltcorn_db-common.dbtypes.JsonPath.html +1 -1
  564. package/docs/types/_saltcorn_db-common.dbtypes.JsonPathElem.html +1 -1
  565. package/docs/types/_saltcorn_db-common.dbtypes.Operator.html +1 -1
  566. package/docs/types/_saltcorn_db-common.dbtypes.PartialSome.html +1 -1
  567. package/docs/types/_saltcorn_db-common.dbtypes.PrimaryKeyValue.html +1 -1
  568. package/docs/types/_saltcorn_db-common.dbtypes.Row.html +1 -1
  569. package/docs/types/_saltcorn_db-common.dbtypes.SelectOptions.html +2 -2
  570. package/docs/types/_saltcorn_db-common.dbtypes.StrongRow.html +1 -1
  571. package/docs/types/_saltcorn_db-common.dbtypes.SubselectOptions.html +2 -2
  572. package/docs/types/_saltcorn_db-common.dbtypes.Value.html +1 -1
  573. package/docs/types/_saltcorn_db-common.dbtypes.Where.html +2 -2
  574. package/docs/types/_saltcorn_db-common.sqlite-commons.SqlAndValues.html +2 -2
  575. package/docs/types/_saltcorn_db-common.types.DbExportsType.html +2 -2
  576. package/docs/types/_saltcorn_db-common.types.GenObj.html +1 -1
  577. package/docs/types/_saltcorn_markup.emergency_layout.WrapParams.html +2 -2
  578. package/docs/types/_saltcorn_markup.helpers.CheckBoxGroupOpts.html +2 -2
  579. package/docs/types/_saltcorn_markup.helpers.PaginationOpts.html +2 -2
  580. package/docs/types/_saltcorn_markup.helpers.RadioGroupOpts.html +2 -2
  581. package/docs/types/_saltcorn_markup.helpers.SearchBarOpts.html +2 -2
  582. package/docs/types/_saltcorn_markup.layout.RenderOpts-1.html +2 -2
  583. package/docs/types/_saltcorn_markup.layout.RenderOpts.html +2 -2
  584. package/docs/types/_saltcorn_markup.mjml-layout.RenderOpts.html +2 -2
  585. package/docs/types/_saltcorn_markup.table.HeadersParams.html +2 -2
  586. package/docs/types/_saltcorn_markup.table.OptsParams.html +2 -2
  587. package/docs/types/_saltcorn_markup.types.AttributeVal.html +1 -1
  588. package/docs/types/_saltcorn_markup.types.Attributes.html +2 -2
  589. package/docs/types/_saltcorn_markup.types.ClassVal.html +1 -1
  590. package/docs/types/_saltcorn_markup.types.Element.html +1 -1
  591. package/docs/types/_saltcorn_markup.types.Falsy.html +1 -1
  592. package/docs/types/_saltcorn_markup.types.StyleVal.html +1 -1
  593. package/docs/types/_saltcorn_markup.types.TagFunction.html +1 -1
  594. package/docs/types/_saltcorn_mobile-builder.mobile-builder.IosCfg.html +4 -3
  595. package/docs/types/_saltcorn_mobile-builder.utils_capacitor-helper.CapacitorCfg.html +2 -2
  596. package/docs/types/_saltcorn_types.base_types.Action.html +3 -3
  597. package/docs/types/_saltcorn_types.base_types.AuthenticationMethod.html +2 -2
  598. package/docs/types/_saltcorn_types.base_types.CalcJoinfield.html +2 -2
  599. package/docs/types/_saltcorn_types.base_types.CapacitorPlugin.html +2 -2
  600. package/docs/types/_saltcorn_types.base_types.CodePagePack.html +2 -2
  601. package/docs/types/_saltcorn_types.base_types.Column.html +2 -2
  602. package/docs/types/_saltcorn_types.base_types.ConnectObjType.html +2 -2
  603. package/docs/types/_saltcorn_types.base_types.ConnectedObjects.html +2 -2
  604. package/docs/types/_saltcorn_types.base_types.CopilotSkill.html +2 -2
  605. package/docs/types/_saltcorn_types.base_types.ErrorObj.html +2 -2
  606. package/docs/types/_saltcorn_types.base_types.FieldLike.html +1 -1
  607. package/docs/types/_saltcorn_types.base_types.FieldView.html +1 -1
  608. package/docs/types/_saltcorn_types.base_types.Header.html +2 -2
  609. package/docs/types/_saltcorn_types.base_types.JoinFieldOption.html +2 -2
  610. package/docs/types/_saltcorn_types.base_types.Layout.html +1 -1
  611. package/docs/types/_saltcorn_types.base_types.MobileConfig.html +3 -2
  612. package/docs/types/_saltcorn_types.base_types.ModelPattern.html +6 -6
  613. package/docs/types/_saltcorn_types.base_types.Pack.html +2 -2
  614. package/docs/types/_saltcorn_types.base_types.Plugin.html +1 -1
  615. package/docs/types/_saltcorn_types.base_types.PluginFunction.html +2 -2
  616. package/docs/types/_saltcorn_types.base_types.PluginLayout.html +2 -2
  617. package/docs/types/_saltcorn_types.base_types.PluginRoute.html +2 -2
  618. package/docs/types/_saltcorn_types.base_types.PluginSourceType.html +1 -1
  619. package/docs/types/_saltcorn_types.base_types.PluginType.html +2 -2
  620. package/docs/types/_saltcorn_types.base_types.PluginWrap.html +1 -1
  621. package/docs/types/_saltcorn_types.base_types.PluginWrapArg.html +2 -2
  622. package/docs/types/_saltcorn_types.base_types.RelationOption.html +2 -2
  623. package/docs/types/_saltcorn_types.base_types.Req.html +2 -2
  624. package/docs/types/_saltcorn_types.base_types.Res.html +2 -2
  625. package/docs/types/_saltcorn_types.base_types.ResultType.html +2 -2
  626. package/docs/types/_saltcorn_types.base_types.RouteAction.html +1 -1
  627. package/docs/types/_saltcorn_types.base_types.RunExtra.html +1 -1
  628. package/docs/types/_saltcorn_types.base_types.SlugStepType.html +2 -2
  629. package/docs/types/_saltcorn_types.base_types.StepResType.html +1 -1
  630. package/docs/types/_saltcorn_types.base_types.SubField.html +2 -2
  631. package/docs/types/_saltcorn_types.base_types.TableProvider.html +2 -2
  632. package/docs/types/_saltcorn_types.base_types.TableQuery.html +2 -2
  633. package/docs/types/_saltcorn_types.base_types.Tablely.html +1 -1
  634. package/docs/types/_saltcorn_types.base_types.ViewTemplate.html +2 -2
  635. package/docs/types/_saltcorn_types.common_types.ErrorMessage.html +2 -2
  636. package/docs/types/_saltcorn_types.common_types.GenObj.html +1 -1
  637. package/docs/types/_saltcorn_types.common_types.ReqRes.html +2 -2
  638. package/docs/types/_saltcorn_types.common_types.ResultMessage.html +1 -1
  639. package/docs/types/_saltcorn_types.common_types.SuccessMessage.html +2 -2
  640. package/docs/types/_saltcorn_types.common_types.Type.html +2 -2
  641. package/docs/types/_saltcorn_types.model-abstracts_abstract_event_log.EventLogPack.html +2 -2
  642. package/docs/types/_saltcorn_types.model-abstracts_abstract_field.FieldCfg.html +2 -2
  643. package/docs/types/_saltcorn_types.model-abstracts_abstract_field.InputType.html +1 -1
  644. package/docs/types/_saltcorn_types.model-abstracts_abstract_form.AdditionalButton.html +2 -2
  645. package/docs/types/_saltcorn_types.model-abstracts_abstract_library.LibraryCfg.html +2 -2
  646. package/docs/types/_saltcorn_types.model-abstracts_abstract_library.LibraryPack.html +1 -1
  647. package/docs/types/_saltcorn_types.model-abstracts_abstract_model.ModelCfg.html +2 -2
  648. package/docs/types/_saltcorn_types.model-abstracts_abstract_model.ModelPack.html +1 -1
  649. package/docs/types/_saltcorn_types.model-abstracts_abstract_model_instance.ModelInstanceCfg.html +2 -2
  650. package/docs/types/_saltcorn_types.model-abstracts_abstract_model_instance.ModelInstancePack.html +1 -1
  651. package/docs/types/_saltcorn_types.model-abstracts_abstract_page.PageCfg.html +2 -2
  652. package/docs/types/_saltcorn_types.model-abstracts_abstract_page.PagePack.html +1 -1
  653. package/docs/types/_saltcorn_types.model-abstracts_abstract_page_group.PageGroupCfg.html +2 -2
  654. package/docs/types/_saltcorn_types.model-abstracts_abstract_page_group.PageGroupPack.html +1 -1
  655. package/docs/types/_saltcorn_types.model-abstracts_abstract_page_group_member.PageGroupMemberCfg.html +2 -2
  656. package/docs/types/_saltcorn_types.model-abstracts_abstract_page_group_member.PageGroupMemberPack.html +1 -1
  657. package/docs/types/_saltcorn_types.model-abstracts_abstract_plugin.PluginCfg.html +2 -2
  658. package/docs/types/_saltcorn_types.model-abstracts_abstract_plugin.PluginPack.html +1 -1
  659. package/docs/types/_saltcorn_types.model-abstracts_abstract_role.RoleCfg.html +1 -1
  660. package/docs/types/_saltcorn_types.model-abstracts_abstract_role.RolePack.html +1 -1
  661. package/docs/types/_saltcorn_types.model-abstracts_abstract_table.TableCfg.html +2 -2
  662. package/docs/types/_saltcorn_types.model-abstracts_abstract_table.TablePack.html +1 -1
  663. package/docs/types/_saltcorn_types.model-abstracts_abstract_tag.TagPack.html +2 -2
  664. package/docs/types/_saltcorn_types.model-abstracts_abstract_tag_entry.TagEntryPack.html +2 -2
  665. package/docs/types/_saltcorn_types.model-abstracts_abstract_trigger.TriggerCfg.html +2 -2
  666. package/docs/types/_saltcorn_types.model-abstracts_abstract_trigger.TriggerPack.html +1 -1
  667. package/docs/types/_saltcorn_types.model-abstracts_abstract_view.ViewCfg.html +2 -2
  668. package/docs/types/_saltcorn_types.model-abstracts_abstract_view.ViewPack.html +1 -1
  669. package/docs/types/_saltcorn_types.model-abstracts_abstract_workflow.ConfigWorkflowStep.html +1 -1
  670. package/docs/types/_saltcorn_types.model-abstracts_abstract_workflow.RunResult.html +2 -2
  671. package/docs/types/_saltcorn_types.model-abstracts_abstract_workflow_run.WorkflowRunCfg.html +2 -2
  672. package/docs/types/_saltcorn_types.model-abstracts_abstract_workflow_step.WorkflowStepCfg.html +2 -2
  673. package/docs/types/_saltcorn_types.model-abstracts_abstract_workflow_step.WorkflowStepPack.html +1 -1
  674. package/docs/types/_saltcorn_types.model-abstracts_abstract_workflow_trace.WorkflowTraceCfg.html +2 -2
  675. package/docs/variables/_saltcorn_admin-models..backup.create_backup.html +1 -1
  676. package/docs/variables/_saltcorn_admin-models..backup.create_csv_from_rows.html +1 -1
  677. package/docs/variables/_saltcorn_admin-models..backup.restore.html +1 -1
  678. package/docs/variables/_saltcorn_admin-models..pack.add_to_menu.html +1 -1
  679. package/docs/variables/_saltcorn_admin-models..pack.can_install_pack.html +1 -1
  680. package/docs/variables/_saltcorn_admin-models..pack.fetch_available_packs.html +1 -1
  681. package/docs/variables/_saltcorn_admin-models..pack.fetch_pack_by_name.html +1 -1
  682. package/docs/variables/_saltcorn_admin-models..pack.install_pack.html +1 -1
  683. package/docs/variables/_saltcorn_admin-models..pack.library_pack.html +1 -1
  684. package/docs/variables/_saltcorn_admin-models..pack.model_instance_pack.html +1 -1
  685. package/docs/variables/_saltcorn_admin-models..pack.model_pack.html +1 -1
  686. package/docs/variables/_saltcorn_admin-models..pack.page_group_pack.html +1 -1
  687. package/docs/variables/_saltcorn_admin-models..pack.page_pack.html +1 -1
  688. package/docs/variables/_saltcorn_admin-models..pack.plugin_pack.html +1 -1
  689. package/docs/variables/_saltcorn_admin-models..pack.role_pack.html +1 -1
  690. package/docs/variables/_saltcorn_admin-models..pack.table_pack.html +1 -1
  691. package/docs/variables/_saltcorn_admin-models..pack.trigger_pack.html +1 -1
  692. package/docs/variables/_saltcorn_admin-models..pack.uninstall_pack.html +1 -1
  693. package/docs/variables/_saltcorn_admin-models..pack.view_pack.html +1 -1
  694. package/docs/variables/_saltcorn_admin-models..tenant.copy_tenant_template.html +1 -1
  695. package/docs/variables/_saltcorn_admin-models..tenant.create_tenant.html +1 -1
  696. package/docs/variables/_saltcorn_admin-models..tenant.deleteTenant.html +1 -1
  697. package/docs/variables/_saltcorn_admin-models..tenant.domain_sanitize.html +1 -1
  698. package/docs/variables/_saltcorn_admin-models..tenant.eachTenant.html +1 -1
  699. package/docs/variables/_saltcorn_admin-models..tenant.getAllTenantRows.html +1 -1
  700. package/docs/variables/_saltcorn_admin-models..tenant.getAllTenants.html +1 -1
  701. package/docs/variables/_saltcorn_admin-models..tenant.insertTenant.html +1 -1
  702. package/docs/variables/_saltcorn_admin-models..tenant.switchToTenant.html +1 -1
  703. package/docs/variables/_saltcorn_admin-models.models_backup.backup.html +1 -1
  704. package/docs/variables/_saltcorn_admin-models.pack.pack.html +1 -1
  705. package/docs/variables/_saltcorn_admin-models.tenant.tenant.html +1 -1
  706. package/docs/variables/_saltcorn_common-code.tests_expected_relations.expectedFive.html +1 -1
  707. package/docs/variables/_saltcorn_common-code.tests_expected_relations.expectedFour.html +1 -1
  708. package/docs/variables/_saltcorn_common-code.tests_expected_relations.expectedOne.html +1 -1
  709. package/docs/variables/_saltcorn_common-code.tests_expected_relations.expectedSix.html +1 -1
  710. package/docs/variables/_saltcorn_common-code.tests_expected_relations.expectedThree.html +1 -1
  711. package/docs/variables/_saltcorn_common-code.tests_expected_relations.expectedTwo.html +1 -1
  712. package/docs/variables/_saltcorn_data..migrations.html +1 -1
  713. package/docs/variables/_saltcorn_data..plugin_helper.run_action_column.html +1 -1
  714. package/docs/variables/_saltcorn_data..utils.NotAuthorized.html +1 -1
  715. package/docs/variables/_saltcorn_data..utils.isPushEnabled.html +1 -1
  716. package/docs/variables/_saltcorn_data..utils.sleep.html +1 -1
  717. package/docs/variables/_saltcorn_data.base-plugin_actions.actions.html +1 -1
  718. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.radio_select.description.html +1 -1
  719. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.radio_select.isEdit.html +1 -1
  720. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.radio_select.type.html +1 -1
  721. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.search_join_field.html +1 -1
  722. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.search_or_create.blockDisplay.html +1 -1
  723. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.search_or_create.description.html +1 -1
  724. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.search_or_create.isEdit.html +1 -1
  725. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.search_or_create.type.html +1 -1
  726. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select.blockDisplay.html +1 -1
  727. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select.configFields.html +1 -1
  728. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select.description.html +1 -1
  729. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select.isEdit.html +1 -1
  730. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select.type.html +1 -1
  731. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select_by_code.html +1 -1
  732. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select_by_view.html +1 -1
  733. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select_from_table.blockDisplay.html +1 -1
  734. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select_from_table.configFields.html +1 -1
  735. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select_from_table.description.html +1 -1
  736. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select_from_table.isEdit.html +1 -1
  737. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select_from_table.type.html +1 -1
  738. package/docs/variables/_saltcorn_data.base-plugin_fieldviews.two_level_select.html +1 -1
  739. package/docs/variables/_saltcorn_data.base-plugin_fileview.fileview.html +1 -1
  740. package/docs/variables/_saltcorn_data.base-plugin_index.index.html +1 -1
  741. package/docs/variables/_saltcorn_data.base-plugin_types.bool.attributes.html +1 -1
  742. package/docs/variables/_saltcorn_data.base-plugin_types.bool.description.html +1 -1
  743. package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.TrueFalse.description.html +1 -1
  744. package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.TrueFalse.isEdit.html +1 -1
  745. package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.checkboxes.description.html +1 -1
  746. package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.checkboxes.isEdit.html +1 -1
  747. package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.edit.configFields.html +1 -1
  748. package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.edit.description.html +1 -1
  749. package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.edit.isEdit.html +1 -1
  750. package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.show.description.html +1 -1
  751. package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.show.isEdit.html +1 -1
  752. package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.show_with_html.html +1 -1
  753. package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.switch.html +1 -1
  754. package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.thumbs_up_down.html +1 -1
  755. package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.tristate.configFields.html +1 -1
  756. package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.tristate.description.html +1 -1
  757. package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.tristate.isEdit.html +1 -1
  758. package/docs/variables/_saltcorn_data.base-plugin_types.bool.js_type.html +1 -1
  759. package/docs/variables/_saltcorn_data.base-plugin_types.bool.name.html +1 -1
  760. package/docs/variables/_saltcorn_data.base-plugin_types.bool.sql_name.html +1 -1
  761. package/docs/variables/_saltcorn_data.base-plugin_types.color.attributes.html +1 -1
  762. package/docs/variables/_saltcorn_data.base-plugin_types.color.description.html +1 -1
  763. package/docs/variables/_saltcorn_data.base-plugin_types.color.fieldviews.edit.blockDisplay.html +1 -1
  764. package/docs/variables/_saltcorn_data.base-plugin_types.color.fieldviews.edit.description.html +1 -1
  765. package/docs/variables/_saltcorn_data.base-plugin_types.color.fieldviews.edit.isEdit.html +1 -1
  766. package/docs/variables/_saltcorn_data.base-plugin_types.color.fieldviews.show.description.html +1 -1
  767. package/docs/variables/_saltcorn_data.base-plugin_types.color.fieldviews.show.isEdit.html +1 -1
  768. package/docs/variables/_saltcorn_data.base-plugin_types.color.fieldviews.show_with_html.html +1 -1
  769. package/docs/variables/_saltcorn_data.base-plugin_types.color.js_type.html +1 -1
  770. package/docs/variables/_saltcorn_data.base-plugin_types.color.name.html +1 -1
  771. package/docs/variables/_saltcorn_data.base-plugin_types.color.sql_name.html +1 -1
  772. package/docs/variables/_saltcorn_data.base-plugin_types.date.attributes.html +1 -1
  773. package/docs/variables/_saltcorn_data.base-plugin_types.date.description.html +1 -1
  774. package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.edit.blockDisplay.html +1 -1
  775. package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.edit.configFields.html +1 -1
  776. package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.edit.description.html +1 -1
  777. package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.edit.isEdit.html +1 -1
  778. package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.editDay.blockDisplay.html +1 -1
  779. package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.editDay.configFields.html +1 -1
  780. package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.editDay.description.html +1 -1
  781. package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.editDay.isEdit.html +1 -1
  782. package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.format.configFields.html +1 -1
  783. package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.format.description.html +1 -1
  784. package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.format.isEdit.html +1 -1
  785. package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.relative.description.html +1 -1
  786. package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.relative.isEdit.html +1 -1
  787. package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.show.description.html +1 -1
  788. package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.show.isEdit.html +1 -1
  789. package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.showDay.description.html +1 -1
  790. package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.showDay.isEdit.html +1 -1
  791. package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.show_with_html.html +1 -1
  792. package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.yearsAgo.description.html +1 -1
  793. package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.yearsAgo.isEdit.html +1 -1
  794. package/docs/variables/_saltcorn_data.base-plugin_types.date.js_type.html +1 -1
  795. package/docs/variables/_saltcorn_data.base-plugin_types.date.name.html +1 -1
  796. package/docs/variables/_saltcorn_data.base-plugin_types.date.sql_name.html +1 -1
  797. package/docs/variables/_saltcorn_data.base-plugin_types.float.attributes.html +1 -1
  798. package/docs/variables/_saltcorn_data.base-plugin_types.float.description.html +1 -1
  799. package/docs/variables/_saltcorn_data.base-plugin_types.float.distance_operators.html +1 -1
  800. package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.above_input.html +1 -1
  801. package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.below_input.html +1 -1
  802. package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.edit.blockDisplay.html +1 -1
  803. package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.edit.configFields.html +1 -1
  804. package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.edit.description.html +1 -1
  805. package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.edit.isEdit.html +1 -1
  806. package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.heat_cell.html +1 -1
  807. package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.number_slider.html +1 -1
  808. package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.progress_bar.html +1 -1
  809. package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.range_interval.html +1 -1
  810. package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.show.description.html +1 -1
  811. package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.show.isEdit.html +1 -1
  812. package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.show_with_html.html +1 -1
  813. package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.to_locale_string.html +1 -1
  814. package/docs/variables/_saltcorn_data.base-plugin_types.float.js_type.html +1 -1
  815. package/docs/variables/_saltcorn_data.base-plugin_types.float.name.html +1 -1
  816. package/docs/variables/_saltcorn_data.base-plugin_types.float.sql_name.html +1 -1
  817. package/docs/variables/_saltcorn_data.base-plugin_types.int.attributes.html +1 -1
  818. package/docs/variables/_saltcorn_data.base-plugin_types.int.description.html +1 -1
  819. package/docs/variables/_saltcorn_data.base-plugin_types.int.distance_operators.near.html +1 -1
  820. package/docs/variables/_saltcorn_data.base-plugin_types.int.fieldviews.html +2 -2
  821. package/docs/variables/_saltcorn_data.base-plugin_types.int.js_type.html +1 -1
  822. package/docs/variables/_saltcorn_data.base-plugin_types.int.name.html +1 -1
  823. package/docs/variables/_saltcorn_data.base-plugin_types.int.primaryKey.html +1 -1
  824. package/docs/variables/_saltcorn_data.base-plugin_types.int.sql_name.html +1 -1
  825. package/docs/variables/_saltcorn_data.base-plugin_types.string.description.html +1 -1
  826. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.as_header.description.html +1 -1
  827. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.as_header.isEdit.html +1 -1
  828. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.as_link.configFields.html +1 -1
  829. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.as_link.description.html +1 -1
  830. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.as_link.isEdit.html +1 -1
  831. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.as_text.description.html +1 -1
  832. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.as_text.isEdit.html +1 -1
  833. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.checkbox_group.html +1 -1
  834. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.code.html +1 -1
  835. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.code_editor.html +1 -1
  836. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.edit.blockDisplay.html +1 -1
  837. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.edit.description.html +1 -1
  838. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.edit.isEdit.html +1 -1
  839. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.ellipsize.html +1 -1
  840. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.fill_formula_btn.html +1 -1
  841. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.img_from_url.description.html +1 -1
  842. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.img_from_url.isEdit.html +1 -1
  843. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.make_unique.html +1 -1
  844. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.monospace_block.html +1 -1
  845. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.password.blockDisplay.html +1 -1
  846. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.password.configFields.html +1 -1
  847. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.password.description.html +1 -1
  848. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.password.isEdit.html +1 -1
  849. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.preFormatted.html +1 -1
  850. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.radio_group.configFields.html +1 -1
  851. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.radio_group.description.html +1 -1
  852. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.radio_group.isEdit.html +1 -1
  853. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.select_by_code.html +1 -1
  854. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.show_with_html.html +1 -1
  855. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.textarea.blockDisplay.html +1 -1
  856. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.textarea.configFields.html +1 -1
  857. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.textarea.description.html +1 -1
  858. package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.textarea.isEdit.html +1 -1
  859. package/docs/variables/_saltcorn_data.base-plugin_types.string.js_type.html +1 -1
  860. package/docs/variables/_saltcorn_data.base-plugin_types.string.name.html +1 -1
  861. package/docs/variables/_saltcorn_data.base-plugin_types.string.sql_name.html +1 -1
  862. package/docs/variables/_saltcorn_data.base-plugin_viewtemplates_edit.edit.html +1 -1
  863. package/docs/variables/_saltcorn_data.base-plugin_viewtemplates_feed.feed.html +1 -1
  864. package/docs/variables/_saltcorn_data.base-plugin_viewtemplates_filter.filter.html +1 -1
  865. package/docs/variables/_saltcorn_data.base-plugin_viewtemplates_list.list.html +1 -1
  866. package/docs/variables/_saltcorn_data.base-plugin_viewtemplates_listshowlist.listshowlist.html +1 -1
  867. package/docs/variables/_saltcorn_data.base-plugin_viewtemplates_room.room-1.html +1 -1
  868. package/docs/variables/_saltcorn_data.base-plugin_viewtemplates_room.room.html +1 -1
  869. package/docs/variables/_saltcorn_data.base-plugin_viewtemplates_show.show.html +1 -1
  870. package/docs/variables/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.edit_build_in_actions.html +1 -1
  871. package/docs/variables/_saltcorn_data.contract.fieldlike.html +1 -1
  872. package/docs/variables/_saltcorn_data.contract.is_column.html +1 -1
  873. package/docs/variables/_saltcorn_data.contract.is_header.html +1 -1
  874. package/docs/variables/_saltcorn_data.contract.is_pack.html +1 -1
  875. package/docs/variables/_saltcorn_data.contract.is_plugin.html +1 -1
  876. package/docs/variables/_saltcorn_data.contract.is_plugin_layout.html +1 -1
  877. package/docs/variables/_saltcorn_data.contract.is_plugin_type.html +1 -1
  878. package/docs/variables/_saltcorn_data.contract.is_plugin_wrap.html +1 -1
  879. package/docs/variables/_saltcorn_data.contract.is_plugin_wrap_arg.html +1 -1
  880. package/docs/variables/_saltcorn_data.contract.is_table_query.html +1 -1
  881. package/docs/variables/_saltcorn_data.contract.is_tablely.html +1 -1
  882. package/docs/variables/_saltcorn_data.contract.is_viewtemplate.html +1 -1
  883. package/docs/variables/_saltcorn_data.db_connect.connect.html +1 -1
  884. package/docs/variables/_saltcorn_data.db_fa5-icons.fa5Icons.html +1 -1
  885. package/docs/variables/_saltcorn_data.db_fixtures.fixtures.html +1 -1
  886. package/docs/variables/_saltcorn_data.db_index.dbExports.html +1 -1
  887. package/docs/variables/_saltcorn_data.db_state.state.html +1 -1
  888. package/docs/variables/_saltcorn_data.migrations_202005141503.sql.html +1 -1
  889. package/docs/variables/_saltcorn_data.migrations_202005241712.sql.html +1 -1
  890. package/docs/variables/_saltcorn_data.migrations_202005251037.sql.html +1 -1
  891. package/docs/variables/_saltcorn_data.migrations_202005282134.sql.html +1 -1
  892. package/docs/variables/_saltcorn_data.migrations_202006022156.sql.html +1 -1
  893. package/docs/variables/_saltcorn_data.migrations_202006051507.sql.html +1 -1
  894. package/docs/variables/_saltcorn_data.migrations_202006240906.sql.html +1 -1
  895. package/docs/variables/_saltcorn_data.migrations_202007091707.sql.html +1 -1
  896. package/docs/variables/_saltcorn_data.migrations_202007202144.sql.html +1 -1
  897. package/docs/variables/_saltcorn_data.migrations_202008031500.sql.html +1 -1
  898. package/docs/variables/_saltcorn_data.migrations_202008051415.sql.html +1 -1
  899. package/docs/variables/_saltcorn_data.migrations_202008121149.sql_pg.html +1 -1
  900. package/docs/variables/_saltcorn_data.migrations_202008121149.sql_sqlite.html +1 -1
  901. package/docs/variables/_saltcorn_data.migrations_202009112140.sql_pg.html +1 -1
  902. package/docs/variables/_saltcorn_data.migrations_202009112140.sql_sqlite.html +1 -1
  903. package/docs/variables/_saltcorn_data.migrations_202009181655.sql.html +1 -1
  904. package/docs/variables/_saltcorn_data.migrations_202009221105.sql.html +1 -1
  905. package/docs/variables/_saltcorn_data.migrations_202009231331.sql.html +1 -1
  906. package/docs/variables/_saltcorn_data.migrations_202009301531.sql.html +1 -1
  907. package/docs/variables/_saltcorn_data.migrations_202010231444.sql.html +1 -1
  908. package/docs/variables/_saltcorn_data.migrations_202010251412.sql.html +1 -1
  909. package/docs/variables/_saltcorn_data.migrations_202011021749.sql.html +1 -1
  910. package/docs/variables/_saltcorn_data.migrations_202011051353.sql.html +1 -1
  911. package/docs/variables/_saltcorn_data.migrations_202011111127.sql.html +1 -1
  912. package/docs/variables/_saltcorn_data.migrations_202012011203.sql.html +1 -1
  913. package/docs/variables/_saltcorn_data.migrations_202012100841.sql.html +1 -1
  914. package/docs/variables/_saltcorn_data.migrations_202012281835.sql.html +1 -1
  915. package/docs/variables/_saltcorn_data.migrations_202101061051.sql.html +1 -1
  916. package/docs/variables/_saltcorn_data.migrations_202101141128.sql.html +1 -1
  917. package/docs/variables/_saltcorn_data.migrations_202102091312.sql.html +1 -1
  918. package/docs/variables/_saltcorn_data.migrations_202102101624.sql.html +1 -1
  919. package/docs/variables/_saltcorn_data.migrations_202102172148.sql.html +1 -1
  920. package/docs/variables/_saltcorn_data.migrations_202102261650.sql.html +1 -1
  921. package/docs/variables/_saltcorn_data.migrations_202106102347.sql.html +1 -1
  922. package/docs/variables/_saltcorn_data.migrations_202106112120.sql.html +1 -1
  923. package/docs/variables/_saltcorn_data.migrations_202106120012.sql.html +1 -1
  924. package/docs/variables/_saltcorn_data.migrations_202106120220.sql.html +1 -1
  925. package/docs/variables/_saltcorn_data.migrations_202106121701.sql.html +1 -1
  926. package/docs/variables/_saltcorn_data.migrations_202106121703.sql_pg.html +1 -1
  927. package/docs/variables/_saltcorn_data.migrations_202106121703.sql_sqlite.html +1 -1
  928. package/docs/variables/_saltcorn_data.migrations_202106251126.sql.html +1 -1
  929. package/docs/variables/_saltcorn_data.migrations_202107281619.sql.html +1 -1
  930. package/docs/variables/_saltcorn_data.migrations_202107302158.sql_pg.html +1 -1
  931. package/docs/variables/_saltcorn_data.migrations_202107302158.sql_sqlite.html +1 -1
  932. package/docs/variables/_saltcorn_data.migrations_202108022257.sql.html +1 -1
  933. package/docs/variables/_saltcorn_data.migrations_202109201624.sql.html +1 -1
  934. package/docs/variables/_saltcorn_data.migrations_202109301031.sql_pg.html +1 -1
  935. package/docs/variables/_saltcorn_data.migrations_202109301031.sql_sqlite.html +1 -1
  936. package/docs/variables/_saltcorn_data.migrations_202111290253.sql_pg.html +1 -1
  937. package/docs/variables/_saltcorn_data.migrations_202111290253.sql_sqlite.html +1 -1
  938. package/docs/variables/_saltcorn_data.migrations_202112282254.sql_pg.html +1 -1
  939. package/docs/variables/_saltcorn_data.migrations_202112282254.sql_sqlite.html +1 -1
  940. package/docs/variables/_saltcorn_data.migrations_202207022002.sql.html +1 -1
  941. package/docs/variables/_saltcorn_data.migrations_202207252150.sql_pg.html +1 -1
  942. package/docs/variables/_saltcorn_data.migrations_202207252150.sql_sqlite.html +1 -1
  943. package/docs/variables/_saltcorn_data.migrations_202207261221.sql.html +1 -1
  944. package/docs/variables/_saltcorn_data.migrations_202208101144.sql_pg.html +1 -1
  945. package/docs/variables/_saltcorn_data.migrations_202208101144.sql_sqlite.html +1 -1
  946. package/docs/variables/_saltcorn_data.migrations_202211040031.sql.html +1 -1
  947. package/docs/variables/_saltcorn_data.migrations_202212112152.sql_pg.html +1 -1
  948. package/docs/variables/_saltcorn_data.migrations_202212112152.sql_sqlite.html +1 -1
  949. package/docs/variables/_saltcorn_data.migrations_202301130917.sql.html +1 -1
  950. package/docs/variables/_saltcorn_data.migrations_202303201126.sql_pg.html +1 -1
  951. package/docs/variables/_saltcorn_data.migrations_202303201126.sql_sqlite.html +1 -1
  952. package/docs/variables/_saltcorn_data.migrations_202303221944.sql_pg.html +1 -1
  953. package/docs/variables/_saltcorn_data.migrations_202303221944.sql_sqlite.html +1 -1
  954. package/docs/variables/_saltcorn_data.migrations_202304281224.sql.html +1 -1
  955. package/docs/variables/_saltcorn_data.migrations_202305031518.sql_pg.html +1 -1
  956. package/docs/variables/_saltcorn_data.migrations_202305031518.sql_sqlite.html +1 -1
  957. package/docs/variables/_saltcorn_data.migrations_202308211648.sql.html +1 -1
  958. package/docs/variables/_saltcorn_data.migrations_202311011755.sql_pg.html +1 -1
  959. package/docs/variables/_saltcorn_data.migrations_202311011755.sql_sqlite.html +1 -1
  960. package/docs/variables/_saltcorn_data.migrations_202311231356.sql.html +1 -1
  961. package/docs/variables/_saltcorn_data.migrations_202402071125.sql.html +1 -1
  962. package/docs/variables/_saltcorn_data.migrations_202406260915.sql.html +1 -1
  963. package/docs/variables/_saltcorn_data.migrations_202412051957.sql_pg.html +1 -1
  964. package/docs/variables/_saltcorn_data.migrations_202412051957.sql_sqlite.html +1 -1
  965. package/docs/variables/_saltcorn_data.migrations_202412111526.sql_pg.html +1 -1
  966. package/docs/variables/_saltcorn_data.migrations_202412111526.sql_sqlite.html +1 -1
  967. package/docs/variables/_saltcorn_data.migrations_202501081226.sql_pg.html +1 -1
  968. package/docs/variables/_saltcorn_data.migrations_202501081226.sql_sqlite.html +1 -1
  969. package/docs/variables/_saltcorn_data.migrations_202501201239.sql_sqlite.html +1 -1
  970. package/docs/variables/_saltcorn_data.migrations_202501262157.sql.html +1 -1
  971. package/docs/variables/_saltcorn_data.migrations_202503071353.sql_pg.html +1 -1
  972. package/docs/variables/_saltcorn_data.migrations_202506050958.sql.html +1 -1
  973. package/docs/variables/_saltcorn_data.migrations_202510110312.sql_pg.html +1 -1
  974. package/docs/variables/_saltcorn_data.migrations_202510110312.sql_sqlite.html +1 -1
  975. package/docs/variables/_saltcorn_data.migrations_202511081024.sql.html +1 -1
  976. package/docs/variables/_saltcorn_data.mobile-mocks_saltcorn_html-pdf-node.htmlPdfNode.html +1 -1
  977. package/docs/variables/_saltcorn_data.models_config.configExports.html +1 -1
  978. package/docs/variables/_saltcorn_data.models_discovery.discovery.html +1 -1
  979. package/docs/variables/_saltcorn_data.models_email.email.html +1 -1
  980. package/docs/variables/_saltcorn_data.models_expression.expression.html +1 -1
  981. package/docs/variables/_saltcorn_data.models_index.config.available_languages.html +1 -1
  982. package/docs/variables/_saltcorn_data.models_index.config.check_email_mask.html +1 -1
  983. package/docs/variables/_saltcorn_data.models_index.config.configTypes.html +1 -1
  984. package/docs/variables/_saltcorn_data.models_index.config.deleteConfig.html +1 -1
  985. package/docs/variables/_saltcorn_data.models_index.config.getAllConfig.html +1 -1
  986. package/docs/variables/_saltcorn_data.models_index.config.getConfig.html +1 -1
  987. package/docs/variables/_saltcorn_data.models_index.config.get_base_url.html +1 -1
  988. package/docs/variables/_saltcorn_data.models_index.config.get_latest_npm_version.html +1 -1
  989. package/docs/variables/_saltcorn_data.models_index.config.remove_from_menu.html +1 -1
  990. package/docs/variables/_saltcorn_data.models_index.config.save_menu_items.html +1 -1
  991. package/docs/variables/_saltcorn_data.models_index.config.setConfig.html +1 -1
  992. package/docs/variables/_saltcorn_data.models_index.discovery.discover_tables.html +1 -1
  993. package/docs/variables/_saltcorn_data.models_index.discovery.discoverable_tables.html +1 -1
  994. package/docs/variables/_saltcorn_data.models_index.discovery.findType.html +1 -1
  995. package/docs/variables/_saltcorn_data.models_index.discovery.get_existing_views.html +1 -1
  996. package/docs/variables/_saltcorn_data.models_index.discovery.implement_discovery.html +1 -1
  997. package/docs/variables/_saltcorn_data.models_index.email.getMailTransport.html +1 -1
  998. package/docs/variables/_saltcorn_data.models_index.email.send_verification_email.html +1 -1
  999. package/docs/variables/_saltcorn_data.models_index.email.viewToEmailHtml.html +1 -1
  1000. package/docs/variables/_saltcorn_data.models_index.expression.apply_calculated_fields.html +1 -1
  1001. package/docs/variables/_saltcorn_data.models_index.expression.apply_calculated_fields_stored.html +1 -1
  1002. package/docs/variables/_saltcorn_data.models_index.expression.eval_expression.html +1 -1
  1003. package/docs/variables/_saltcorn_data.models_index.expression.expressionValidator.html +1 -1
  1004. package/docs/variables/_saltcorn_data.models_index.expression.get_async_expression_function.html +1 -1
  1005. package/docs/variables/_saltcorn_data.models_index.expression.get_expression_function.html +1 -1
  1006. package/docs/variables/_saltcorn_data.models_index.expression.jsexprToWhere.html +1 -1
  1007. package/docs/variables/_saltcorn_data.models_index.expression.recalculate_for_stored.html +1 -1
  1008. package/docs/variables/_saltcorn_data.models_index.expression.transform_for_async.html +1 -1
  1009. package/docs/variables/_saltcorn_data.models_index.layout.eachView.html +1 -1
  1010. package/docs/variables/_saltcorn_data.models_index.layout.getStringsForI18n.html +1 -1
  1011. package/docs/variables/_saltcorn_data.models_index.layout.getViews.html +1 -1
  1012. package/docs/variables/_saltcorn_data.models_index.layout.translateLayout.html +1 -1
  1013. package/docs/variables/_saltcorn_data.models_index.layout.traverse.html +1 -1
  1014. package/docs/variables/_saltcorn_data.models_index.layout.traverseSync.html +1 -1
  1015. package/docs/variables/_saltcorn_data.models_index.random.all_views.html +1 -1
  1016. package/docs/variables/_saltcorn_data.models_index.random.fill_table_row.html +1 -1
  1017. package/docs/variables/_saltcorn_data.models_index.random.initial_view.html +1 -1
  1018. package/docs/variables/_saltcorn_data.models_index.random.random_table.html +1 -1
  1019. package/docs/variables/_saltcorn_data.models_index.scheduler.runScheduler.html +1 -1
  1020. package/docs/variables/_saltcorn_data.models_layout.layout.html +1 -1
  1021. package/docs/variables/_saltcorn_data.models_random.random.html +1 -1
  1022. package/docs/variables/_saltcorn_data.models_scheduler.scheduler.html +1 -1
  1023. package/docs/variables/_saltcorn_data.plugin-helper.add_free_variables_to_joinfields.html +1 -1
  1024. package/docs/variables/_saltcorn_data.plugin-helper.sqlBinOp.html +1 -1
  1025. package/docs/variables/_saltcorn_data.plugin-helper.sqlFun.html +1 -1
  1026. package/docs/variables/_saltcorn_data.tests_mocks.mocks.html +1 -1
  1027. package/docs/variables/_saltcorn_data.tests_remote_query_helper.renderEditInEditConfig.html +1 -1
  1028. package/docs/variables/_saltcorn_data.utils.utils.html +3 -3
  1029. package/docs/variables/_saltcorn_data.web-mobile-commons.webMobileCommons.html +1 -1
  1030. package/docs/variables/_saltcorn_db-common.internal.dbCommonModulePath.html +1 -1
  1031. package/docs/variables/_saltcorn_db-common.multi-tenant.tenantNamespace.html +1 -1
  1032. package/docs/variables/_saltcorn_db-common.tenants.tenants.html +1 -1
  1033. package/docs/variables/_saltcorn_markup..export_.html +1 -1
  1034. package/docs/variables/_saltcorn_markup.builder.builder.html +1 -1
  1035. package/docs/variables/_saltcorn_markup.emergency_layout.EmergencyLayoutExports.html +1 -1
  1036. package/docs/variables/_saltcorn_markup.form.form.html +1 -1
  1037. package/docs/variables/_saltcorn_markup.helpers.HelpersExports.html +1 -1
  1038. package/docs/variables/_saltcorn_markup.layout.LayoutExports-1.html +1 -1
  1039. package/docs/variables/_saltcorn_markup.layout.LayoutExports.html +1 -1
  1040. package/docs/variables/_saltcorn_markup.layout_utils.layoutUtils.html +1 -1
  1041. package/docs/variables/_saltcorn_markup.mjml-layout.LayoutExports.html +1 -1
  1042. package/docs/variables/_saltcorn_markup.mjml-tags.tagsExports.html +1 -1
  1043. package/docs/variables/_saltcorn_markup.table.TableExports.html +1 -1
  1044. package/docs/variables/_saltcorn_markup.tags.tagsExports.html +1 -1
  1045. package/docs/variables/_saltcorn_types..generators.generateBool.html +1 -1
  1046. package/docs/variables/_saltcorn_types..generators.generateString.html +1 -1
  1047. package/docs/variables/_saltcorn_types..generators.num_between.html +1 -1
  1048. package/docs/variables/_saltcorn_types..generators.oneOf.html +1 -1
  1049. package/docs/variables/_saltcorn_types.generators.generators.html +1 -1
  1050. package/help/APN Signing Key.tmd +31 -0
  1051. package/help/Provisioning Profile.tmd +1 -1
  1052. package/help/iOS Build tools.tmd +18 -0
  1053. package/load_plugins.js +25 -8
  1054. package/package.json +9 -9
  1055. package/public/saltcorn-common.js +28 -43
  1056. package/public/saltcorn-mobile.css +5 -0
  1057. package/public/saltcorn.js +33 -36
  1058. package/routes/admin.js +1258 -936
  1059. package/routes/files.js +191 -0
  1060. package/routes/notifications.js +7 -18
  1061. package/routes/plugins.js +1 -0
  1062. package/routes/registry.js +1 -0
  1063. package/routes/sync.js +3 -1
  1064. package/serve.js +4 -0
  1065. package/tests/files.test.js +116 -9
package/routes/admin.js CHANGED
@@ -2345,26 +2345,377 @@ const checkXcodebuild = () => {
2345
2345
  resolve({ installed: false });
2346
2346
  } else {
2347
2347
  const tokens = stdout.split(" ");
2348
+ const version = tokens.length > 1 ? tokens[1] : undefined;
2348
2349
  resolve({
2349
2350
  installed: true,
2350
- version: tokens.length > 1 ? tokens[1] : undefined,
2351
+ version: version,
2352
+ fullfilled: version ? versFullfilled(version, 11) : false,
2351
2353
  });
2352
2354
  }
2353
2355
  });
2354
2356
  });
2355
2357
  };
2356
2358
 
2357
- const versionMarker = (version) => {
2358
- const tokens = version.split(".");
2359
- const majVers = parseInt(tokens[0]);
2360
- return i({
2361
- id: "versionMarkerId",
2362
- class: `fas ${
2363
- majVers >= 11 ? "fa-check text-success" : "fa-times text-danger"
2364
- }`,
2359
+ const checkCocoaPods = () => {
2360
+ return new Promise((resolve) => {
2361
+ exec("pod --version", (error, stdout, stderr) => {
2362
+ if (error) {
2363
+ resolve({ installed: false });
2364
+ } else {
2365
+ const version = stdout?.length > 1 ? stdout : undefined;
2366
+ resolve({
2367
+ installed: true,
2368
+ version: version,
2369
+ fullfilled: version ? versFullfilled(version, 1) : false,
2370
+ });
2371
+ }
2372
+ });
2365
2373
  });
2366
2374
  };
2367
2375
 
2376
+ const versFullfilled = (version, minMajVersion) => {
2377
+ const vTokens = version.split(".");
2378
+ const majVers = parseInt(vTokens[0]);
2379
+ return majVers >= minMajVersion;
2380
+ };
2381
+
2382
+ /**
2383
+ * iOS Config Box
2384
+ * @param {any} param0
2385
+ */
2386
+ const buildIosConfigBox = ({
2387
+ req,
2388
+ isMac,
2389
+ xcodebuildAvailable,
2390
+ xcodebuildVersion,
2391
+ cocoaPodsAvailable,
2392
+ cocoaPodsVersion,
2393
+ provisioningFiles,
2394
+ allAppCfgFiles,
2395
+ builderSettings,
2396
+ }) => {
2397
+ const xCodeFullfilled = versFullfilled(xcodebuildVersion || "0.0.0", 11);
2398
+ const cocoaPodsFullfilled = versFullfilled(cocoaPodsVersion || "0.0.0", 1);
2399
+ const keyCfg = getState().getConfig("apn_signing_key", "");
2400
+ const apnSigningKey = keyCfg ? path.basename(keyCfg) : null;
2401
+
2402
+ // xcodebuild and cocoapods infos
2403
+ const toolsInfoBox = () => {
2404
+ return div(
2405
+ { class: "row pb-3 pt-2" },
2406
+ div(
2407
+ h5(
2408
+ { class: "form-label mb-3" },
2409
+ req.__("Build tools") +
2410
+ a(
2411
+ {
2412
+ href: "javascript:ajax_modal('/admin/help/iOS Build tools?')",
2413
+ },
2414
+ i({ class: "fas fa-question-circle ps-1" })
2415
+ )
2416
+ )
2417
+ ),
2418
+ div(
2419
+ { class: "col-sm-12" },
2420
+ isMac
2421
+ ? div(
2422
+ div(
2423
+ {
2424
+ id: "iosBuilderStatusId",
2425
+ class: "row",
2426
+ },
2427
+ // xcodebuild status
2428
+ div(
2429
+ { class: "col-sm-4" },
2430
+ div({ class: "fw-bold form-label label" }, "xcodebuild"),
2431
+ span(
2432
+ { id: "xcodebuildStatusId" },
2433
+ xcodebuildAvailable
2434
+ ? xcodebuildVersion
2435
+ : req.__("not available"),
2436
+ i({
2437
+ class: `fas p-2 ${
2438
+ xCodeFullfilled
2439
+ ? "fa-check text-success"
2440
+ : "fa-times text-danger"
2441
+ }`,
2442
+ })
2443
+ )
2444
+ ),
2445
+ // refresh button
2446
+ div(
2447
+ { class: "col-sm-4" },
2448
+ span(
2449
+ {
2450
+ role: "button",
2451
+ onClick: "check_ios_build_deps()",
2452
+ },
2453
+ span({ class: "ps-3" }, req.__("refresh")),
2454
+ i({ class: "ps-2 fas fa-undo" })
2455
+ )
2456
+ )
2457
+ ),
2458
+ div(
2459
+ {
2460
+ class: "row",
2461
+ },
2462
+ // cocoapods status
2463
+ div(
2464
+ { class: "col-sm-4" },
2465
+ div({ class: "fw-bold form-label label" }, "cocoapods"),
2466
+ span(
2467
+ { id: "cocoapodsStatusId" },
2468
+ cocoaPodsAvailable
2469
+ ? span(cocoaPodsVersion)
2470
+ : span(req.__("not available")),
2471
+ i({
2472
+ class: `fas p-2 ${
2473
+ cocoaPodsFullfilled
2474
+ ? "fa-check text-success"
2475
+ : "fa-times text-danger"
2476
+ }`,
2477
+ })
2478
+ )
2479
+ )
2480
+ )
2481
+ )
2482
+ : span(
2483
+ req.__("Not a Mac OS system"),
2484
+ i({
2485
+ class: "ps-2 fas",
2486
+ })
2487
+ )
2488
+ )
2489
+ );
2490
+ };
2491
+
2492
+ const provisioningFilesBox = () => {
2493
+ return (
2494
+ div(
2495
+ h5(
2496
+ { class: "form-label mb-3" },
2497
+ req.__("Provisioning profiles"),
2498
+
2499
+ a(
2500
+ {
2501
+ href: "javascript:ajax_modal('/admin/help/Provisioning Profile?')",
2502
+ },
2503
+ i({ class: "fas fa-question-circle ps-1" })
2504
+ )
2505
+ )
2506
+ ) +
2507
+ // Build without provisioning profile
2508
+ div(
2509
+ { class: "row pb-2 my-2" },
2510
+ div(
2511
+ { class: "col-sm-10" },
2512
+ input({
2513
+ type: "checkbox",
2514
+ id: "buildWithoutProfileId",
2515
+ class: "form-check-input me-2 mb-0 ",
2516
+ name: "noProvisioningProfile",
2517
+ checked: builderSettings.noProvisioningProfile === "on",
2518
+ }),
2519
+ label(
2520
+ {
2521
+ for: "buildWithoutProfileId",
2522
+ class: "form-label fw-bold mb-0",
2523
+ },
2524
+ req.__("No Provisioning Profile")
2525
+ ),
2526
+ div(),
2527
+ i(
2528
+ req.__(
2529
+ "Only create the project directory without building an .ipa file. " +
2530
+ "This can be useful if you want to open the project in Xcode and run it in the Simulator."
2531
+ )
2532
+ )
2533
+ )
2534
+ ) +
2535
+ // App Provisioning profile
2536
+ div(
2537
+ { class: "row pb-3" },
2538
+ div(
2539
+ { class: "col-sm-10" },
2540
+ label(
2541
+ {
2542
+ for: "provisioningProfileInputId",
2543
+ class: "form-label fw-bold",
2544
+ },
2545
+ req.__("Provisioning Profile")
2546
+ ),
2547
+ select(
2548
+ {
2549
+ class: "form-select",
2550
+ name: "provisioningProfile",
2551
+ id: "provisioningProfileInputId",
2552
+ },
2553
+ [
2554
+ option({ value: "" }, ""),
2555
+ ...provisioningFiles.map((file) =>
2556
+ option(
2557
+ {
2558
+ value: file.location,
2559
+ selected:
2560
+ builderSettings.provisioningProfile === file.location,
2561
+ },
2562
+ file.filename
2563
+ )
2564
+ ),
2565
+ ].join("")
2566
+ )
2567
+ )
2568
+ ) +
2569
+ // Share Extension provisioning profile
2570
+ div(
2571
+ { class: "row pb-3" },
2572
+ div(
2573
+ { class: "col-sm-10" },
2574
+ label(
2575
+ {
2576
+ for: "shareProvisioningProfileInputId",
2577
+ class: "form-label fw-bold",
2578
+ },
2579
+ req.__("Share Extension Provisioning Profile")
2580
+ ),
2581
+ select(
2582
+ {
2583
+ class: "form-select",
2584
+ name: "shareProvisioningProfile",
2585
+ id: "shareProvisioningProfileInputId",
2586
+ },
2587
+ [
2588
+ option({ value: "" }, ""),
2589
+ ...provisioningFiles.map((file) =>
2590
+ option(
2591
+ {
2592
+ value: file.location,
2593
+ selected:
2594
+ builderSettings.shareProvisioningProfile ===
2595
+ file.location,
2596
+ },
2597
+ file.filename
2598
+ )
2599
+ ),
2600
+ ].join("")
2601
+ )
2602
+ )
2603
+ )
2604
+ );
2605
+ };
2606
+
2607
+ const iosPushConfigBox = () => {
2608
+ return (
2609
+ // APN Signing Key
2610
+ div(
2611
+ { class: "row pb-3" },
2612
+ div(
2613
+ { class: "col-sm-10" },
2614
+ label(
2615
+ {
2616
+ for: "apnSigningKeyInputId",
2617
+ class: "form-label fw-bold",
2618
+ },
2619
+ req.__("APN Signing Key (.p8 file)")
2620
+ ),
2621
+ select(
2622
+ {
2623
+ class: "form-select",
2624
+ name: "apnSigningKey",
2625
+ id: "apnSigningKeyInputId",
2626
+ },
2627
+ [
2628
+ option({ value: "" }, ""),
2629
+ ...allAppCfgFiles.map((file) =>
2630
+ option(
2631
+ {
2632
+ value: file.path_to_serve,
2633
+ selected: apnSigningKey === file.filename,
2634
+ },
2635
+ file.filename
2636
+ )
2637
+ ),
2638
+ ].join("")
2639
+ ),
2640
+ div(),
2641
+ i(req.__("This is a private key file"))
2642
+ )
2643
+ ) +
2644
+ // APN Signing Key ID
2645
+ div(
2646
+ { class: "row pb-3" },
2647
+ div(
2648
+ { class: "col-sm-10" },
2649
+ label(
2650
+ {
2651
+ for: "apnSigningKeyIdInputId",
2652
+ class: "form-label fw-bold",
2653
+ },
2654
+ req.__("APN Signing Key ID")
2655
+ ),
2656
+ input({
2657
+ type: "text",
2658
+ class: "form-control",
2659
+ name: "apnSigningKeyId",
2660
+ id: "apnSigningKeyIdInputId",
2661
+ value: builderSettings.apnSigningKeyId || "",
2662
+ }),
2663
+ div(),
2664
+ i(
2665
+ req.__(
2666
+ "The 10-character Key ID obtained from Apple developer account"
2667
+ )
2668
+ )
2669
+ )
2670
+ )
2671
+ );
2672
+ };
2673
+
2674
+ return div(
2675
+ { class: "my-3" },
2676
+ p(
2677
+ { class: "h3 ps-1 mt-3" },
2678
+ button(
2679
+ {
2680
+ class: "btn btn-outline-secondary p-1 me-2",
2681
+ type: "button",
2682
+ "data-bs-toggle": "collapse",
2683
+ "data-bs-target": "#iOSConfigFormGroupId",
2684
+ "aria-expanded": "false",
2685
+ "aria-controls": "iOSConfigFormGroupId",
2686
+ },
2687
+ i({ class: "fas fa-chevron-down" })
2688
+ ) + "iOS Configuration"
2689
+ ),
2690
+ div(
2691
+ {
2692
+ id: "iOSConfigFormGroupId",
2693
+ class: "form-group border border-2 p-3 rounded collapse",
2694
+ },
2695
+ toolsInfoBox(),
2696
+ provisioningFilesBox(),
2697
+ // Push Notifications section
2698
+ div(
2699
+ { class: "form-group row my-3" },
2700
+ div(
2701
+ { class: "col-sm-12 mt-2 fw-bold" },
2702
+ h5(
2703
+ { class: "" },
2704
+ req.__("Push Notifications"),
2705
+ a(
2706
+ {
2707
+ href: "javascript:ajax_modal('/admin/help/APN Signing Key?')",
2708
+ },
2709
+ i({ class: "fas fa-question-circle ps-1" })
2710
+ )
2711
+ )
2712
+ )
2713
+ ),
2714
+ iosPushConfigBox()
2715
+ )
2716
+ );
2717
+ };
2718
+
2368
2719
  /**
2369
2720
  * Build mobile app
2370
2721
  */
@@ -2411,6 +2762,10 @@ router.get(
2411
2762
  const xcodeCheckRes = await checkXcodebuild();
2412
2763
  const xcodebuildAvailable = xcodeCheckRes.installed;
2413
2764
  const xcodebuildVersion = xcodeCheckRes.version;
2765
+ const isMac = process.platform === "darwin";
2766
+ const cocoaPodCheckRes = await checkCocoaPods();
2767
+ const cocoaPodsAvailable = cocoaPodCheckRes.installed;
2768
+ const cocoaPodsVersion = cocoaPodCheckRes.version;
2414
2769
  const layout = getState().getLayout(req.user);
2415
2770
  const isSbadmin2 = layout === getState().layouts.sbadmin2;
2416
2771
  const isEntrypointByRole = builderSettings.entryPointByRole === "on";
@@ -2447,7 +2802,15 @@ router.get(
2447
2802
  onchange: "builderMenuChanged(this)",
2448
2803
  id: "buildMobileAppForm",
2449
2804
  },
2450
-
2805
+ p(
2806
+ "This menu allows building Android or iOS apps for your web app. " +
2807
+ "On Android, installing the capacitor-builder Docker image is recommended, for iOS, an Apple machine is required. "
2808
+ ),
2809
+ p(
2810
+ "To select files (like an Android keystore or iOS provisioning profile), " +
2811
+ "upload them to the 'mobile-app-configurations' folder (create it if it not yet exists). " +
2812
+ "Results are shown once on completion, and the builder adds a result folder to the 'mobile_app' directory."
2813
+ ),
2451
2814
  fieldset(
2452
2815
  input({
2453
2816
  type: "hidden",
@@ -2460,886 +2823,984 @@ router.get(
2460
2823
  value: builderSettings.entryPointType || "view",
2461
2824
  id: "entryPointTypeID",
2462
2825
  }),
2826
+
2463
2827
  div(
2464
2828
  { class: "container ps-2" },
2465
- div(
2466
- { class: "row pb-2" },
2467
- div({ class: "col-sm-4 fw-bold" }, req.__("Entry point")),
2468
- div({ class: "col-sm-4 fw-bold" }, req.__("Platform")),
2469
- div(
2829
+ p(
2830
+ { class: "h3 ps-1" },
2831
+ button(
2470
2832
  {
2471
- class: `col-sm-1 fw-bold d-flex justify-content-center ${
2472
- builderSettings.androidPlatform !== "on"
2473
- ? "d-none"
2474
- : ""
2475
- }`,
2476
- id: "dockerLabelId",
2833
+ class: "btn btn-outline-secondary p-1 me-2",
2834
+ type: "button",
2835
+ "data-bs-toggle": "collapse",
2836
+ "data-bs-target": "#commonSettingsContainerId",
2837
+ "aria-expanded": "true",
2838
+ "aria-controls": "commonSettingsContainerId",
2477
2839
  },
2478
- req.__("docker")
2479
- )
2840
+ i({ class: "fas fa-chevron-down" })
2841
+ ) + "Common configuration"
2480
2842
  ),
2481
2843
  div(
2482
- { class: "row mb-3" },
2844
+ {
2845
+ id: "commonSettingsContainerId",
2846
+ class:
2847
+ "form-group border border-2 p-3 rounded collapse show",
2848
+ },
2483
2849
  div(
2484
- {
2485
- class: `col-sm-4 mt-2 ${isEntrypointByRole ? "" : "border border-2 p-3 rounded"}`,
2486
- id: "entryPointRowId",
2487
- },
2850
+ { class: "row pb-2" },
2851
+ div({ class: "col-sm-4 fw-bold" }, req.__("Entry point")),
2852
+ div({ class: "col-sm-4 fw-bold" }, req.__("Platform")),
2488
2853
  div(
2489
- { class: "row pb-2" },
2490
- div(
2491
- { class: "col-sm-6" },
2492
- input({
2493
- type: "checkbox",
2494
- id: "entryPointByRoleBoxId",
2495
- class: "form-check-input me-2",
2496
- name: "entryPointByRole",
2497
- checked: isEntrypointByRole,
2498
- }),
2499
- label(
2500
- {
2501
- for: "entryPointByRole",
2502
- class: "form-label",
2503
- },
2504
- req.__("Entry point by role"),
2505
- a(
2506
- {
2507
- href: "javascript:ajax_modal('/admin/help/Entry point by role?')",
2508
- },
2509
- i({ class: "fas fa-question-circle ps-1" })
2510
- )
2511
- )
2512
- )
2513
- ),
2514
- // 'view/page/pagegroup' tabs
2854
+ {
2855
+ class: `col-sm-1 fw-bold d-flex justify-content-center ${
2856
+ builderSettings.androidPlatform !== "on"
2857
+ ? "d-none"
2858
+ : ""
2859
+ }`,
2860
+ id: "dockerLabelId",
2861
+ },
2862
+ req.__("docker")
2863
+ )
2864
+ ),
2865
+ div(
2866
+ { class: "row mb-3" },
2515
2867
  div(
2516
2868
  {
2517
- id: "entrySelectorsId",
2518
- class: isEntrypointByRole ? "d-none" : "",
2869
+ class: `col-sm-4 mt-2 ms-3 me-2 ${isEntrypointByRole ? "" : "border border-2 p-3 rounded"}`,
2870
+ id: "entryPointRowId",
2519
2871
  },
2520
- ul(
2521
- { class: "nav nav-pills" },
2522
- li(
2523
- {
2524
- class: "nav-item",
2525
- onClick: "showEntrySelect('view')",
2526
- },
2527
- div(
2872
+ div(
2873
+ { class: "row pb-2" },
2874
+ div(
2875
+ { class: "col-sm-6" },
2876
+ input({
2877
+ type: "checkbox",
2878
+ id: "entryPointByRoleBoxId",
2879
+ class: "form-check-input me-2",
2880
+ name: "entryPointByRole",
2881
+ checked: isEntrypointByRole,
2882
+ }),
2883
+ label(
2528
2884
  {
2529
- class: `nav-link ${
2530
- !builderSettings.entryPointType ||
2531
- builderSettings.entryPointType === "view"
2532
- ? "active"
2533
- : ""
2534
- }`,
2535
- id: "viewNavLinkID",
2885
+ for: "entryPointByRole",
2886
+ class: "form-label",
2536
2887
  },
2537
- req.__("View")
2888
+ req.__("Entry point by role"),
2889
+ a(
2890
+ {
2891
+ href: "javascript:ajax_modal('/admin/help/Entry point by role?')",
2892
+ },
2893
+ i({ class: "fas fa-question-circle ps-1" })
2894
+ )
2538
2895
  )
2539
- ),
2540
- li(
2541
- {
2542
- class: "nav-item",
2543
- onClick: "showEntrySelect('page')",
2544
- },
2545
- div(
2896
+ )
2897
+ ),
2898
+ // 'view/page/pagegroup' tabs
2899
+ div(
2900
+ {
2901
+ id: "entrySelectorsId",
2902
+ class: isEntrypointByRole ? "d-none" : "",
2903
+ },
2904
+ ul(
2905
+ { class: "nav nav-pills" },
2906
+ li(
2546
2907
  {
2547
- class: `nav-link ${
2548
- builderSettings.entryPointType === "page"
2549
- ? "active"
2550
- : ""
2551
- }`,
2552
- id: "pageNavLinkID",
2908
+ class: "nav-item",
2909
+ onClick: "showEntrySelect('view')",
2553
2910
  },
2554
- req.__("Page")
2911
+ div(
2912
+ {
2913
+ class: `nav-link ${
2914
+ !builderSettings.entryPointType ||
2915
+ builderSettings.entryPointType === "view"
2916
+ ? "active"
2917
+ : ""
2918
+ }`,
2919
+ id: "viewNavLinkID",
2920
+ },
2921
+ req.__("View")
2922
+ )
2555
2923
  ),
2556
2924
  li(
2557
2925
  {
2558
2926
  class: "nav-item",
2559
- onClick: "showEntrySelect('pagegroup')",
2927
+ onClick: "showEntrySelect('page')",
2560
2928
  },
2561
2929
  div(
2562
2930
  {
2563
2931
  class: `nav-link ${
2564
- builderSettings.entryPointType ===
2565
- "pagegroup"
2932
+ builderSettings.entryPointType === "page"
2566
2933
  ? "active"
2567
2934
  : ""
2568
2935
  }`,
2569
- id: "pagegroupNavLinkID",
2936
+ id: "pageNavLinkID",
2570
2937
  },
2571
- req.__("Pagegroup")
2572
- )
2573
- )
2574
- )
2575
- ),
2576
- // select entry-view
2577
- select(
2578
- {
2579
- class: `form-select ${
2580
- builderSettings.entryPointType === "page" ||
2581
- builderSettings.entryPointType === "pagegroup"
2582
- ? "d-none"
2583
- : ""
2584
- }`,
2585
- ...(!builderSettings.entryPointType ||
2586
- builderSettings.entryPointType === "view"
2587
- ? { name: "entryPoint" }
2588
- : {}),
2589
- id: "viewInputID",
2590
- },
2591
- views
2592
- .map((view) =>
2593
- option(
2938
+ req.__("Page")
2939
+ ),
2940
+ li(
2594
2941
  {
2595
- value: view.name,
2596
- selected:
2597
- builderSettings.entryPointType === "view" &&
2598
- builderSettings.entryPoint === view.name,
2942
+ class: "nav-item",
2943
+ onClick: "showEntrySelect('pagegroup')",
2599
2944
  },
2600
- view.name
2945
+ div(
2946
+ {
2947
+ class: `nav-link ${
2948
+ builderSettings.entryPointType ===
2949
+ "pagegroup"
2950
+ ? "active"
2951
+ : ""
2952
+ }`,
2953
+ id: "pagegroupNavLinkID",
2954
+ },
2955
+ req.__("Pagegroup")
2956
+ )
2601
2957
  )
2602
2958
  )
2603
- .join(",")
2604
- ),
2605
- // select entry-page
2606
- select(
2607
- {
2608
- class: `form-select ${
2609
- !builderSettings.entryPointType ||
2610
- builderSettings.entryPointType === "view" ||
2611
- builderSettings.entryPointType === "pagegroup"
2612
- ? "d-none"
2613
- : ""
2614
- }`,
2615
- ...(builderSettings.entryPointType === "page"
2616
- ? { name: "entryPoint" }
2617
- : {}),
2618
- id: "pageInputID",
2619
- },
2620
- pages
2621
- .map((page) =>
2622
- option(
2623
- {
2624
- value: page.name,
2625
- selected:
2626
- builderSettings.entryPointType === "page" &&
2627
- builderSettings.entryPoint === page.name,
2628
- },
2629
- page.name
2959
+ ),
2960
+ // select entry-view
2961
+ select(
2962
+ {
2963
+ class: `form-select ${
2964
+ builderSettings.entryPointType === "page" ||
2965
+ builderSettings.entryPointType === "pagegroup"
2966
+ ? "d-none"
2967
+ : ""
2968
+ }`,
2969
+ ...(!builderSettings.entryPointType ||
2970
+ builderSettings.entryPointType === "view"
2971
+ ? { name: "entryPoint" }
2972
+ : {}),
2973
+ id: "viewInputID",
2974
+ },
2975
+ views
2976
+ .map((view) =>
2977
+ option(
2978
+ {
2979
+ value: view.name,
2980
+ selected:
2981
+ builderSettings.entryPointType ===
2982
+ "view" &&
2983
+ builderSettings.entryPoint === view.name,
2984
+ },
2985
+ view.name
2986
+ )
2630
2987
  )
2631
- )
2632
- .join("")
2633
- ),
2634
- // select entry-pagegroup
2635
- select(
2636
- {
2637
- class: `form-select ${
2638
- !builderSettings.entryPointType ||
2639
- builderSettings.entryPointType === "view" ||
2640
- builderSettings.entryPointType === "page"
2641
- ? "d-none"
2642
- : ""
2643
- }`,
2644
- ...(builderSettings.entryPointType === "pagegroup"
2645
- ? { name: "entryPoint" }
2646
- : {}),
2647
- id: "pagegroupInputID",
2648
- },
2649
- pageGroups
2650
- .map((group) =>
2651
- option(
2652
- {
2653
- value: group.name,
2654
- selected:
2655
- builderSettings.entryPointType ===
2656
- "pagegroup" &&
2657
- builderSettings.entryPoint === group.name,
2658
- },
2659
- group.name
2988
+ .join(",")
2989
+ ),
2990
+ // select entry-page
2991
+ select(
2992
+ {
2993
+ class: `form-select ${
2994
+ !builderSettings.entryPointType ||
2995
+ builderSettings.entryPointType === "view" ||
2996
+ builderSettings.entryPointType === "pagegroup"
2997
+ ? "d-none"
2998
+ : ""
2999
+ }`,
3000
+ ...(builderSettings.entryPointType === "page"
3001
+ ? { name: "entryPoint" }
3002
+ : {}),
3003
+ id: "pageInputID",
3004
+ },
3005
+ pages
3006
+ .map((page) =>
3007
+ option(
3008
+ {
3009
+ value: page.name,
3010
+ selected:
3011
+ builderSettings.entryPointType ===
3012
+ "page" &&
3013
+ builderSettings.entryPoint === page.name,
3014
+ },
3015
+ page.name
3016
+ )
2660
3017
  )
2661
- )
2662
- .join("")
2663
- )
2664
- )
2665
- ),
2666
- div(
2667
- { class: "col-sm-4" },
2668
- // android
2669
- div(
2670
- { class: "container ps-0" },
2671
- div(
2672
- { class: "row" },
2673
- div({ class: "col-sm-8" }, req.__("android")),
2674
- div(
2675
- { class: "col-sm" },
2676
- input({
2677
- type: "checkbox",
2678
- class: "form-check-input",
2679
- name: "androidPlatform",
2680
- id: "androidCheckboxId",
2681
- onClick: "toggle_android_platform()",
2682
- checked: builderSettings.androidPlatform === "on",
2683
- })
3018
+ .join("")
3019
+ ),
3020
+ // select entry-pagegroup
3021
+ select(
3022
+ {
3023
+ class: `form-select ${
3024
+ !builderSettings.entryPointType ||
3025
+ builderSettings.entryPointType === "view" ||
3026
+ builderSettings.entryPointType === "page"
3027
+ ? "d-none"
3028
+ : ""
3029
+ }`,
3030
+ ...(builderSettings.entryPointType === "pagegroup"
3031
+ ? { name: "entryPoint" }
3032
+ : {}),
3033
+ id: "pagegroupInputID",
3034
+ },
3035
+ pageGroups
3036
+ .map((group) =>
3037
+ option(
3038
+ {
3039
+ value: group.name,
3040
+ selected:
3041
+ builderSettings.entryPointType ===
3042
+ "pagegroup" &&
3043
+ builderSettings.entryPoint === group.name,
3044
+ },
3045
+ group.name
3046
+ )
3047
+ )
3048
+ .join("")
2684
3049
  )
2685
- ),
2686
- // iOS
3050
+ )
3051
+ ),
3052
+ div(
3053
+ { class: "col-sm-4" },
3054
+ // android
2687
3055
  div(
2688
- { class: "row" },
2689
- div({ class: "col-sm-8" }, req.__("iOS")),
3056
+ { class: "container ps-0" },
2690
3057
  div(
2691
- { class: "col-sm" },
2692
- input({
2693
- type: "checkbox",
2694
- class: "form-check-input",
2695
- name: "iOSPlatform",
2696
- id: "iOSCheckboxId",
2697
- checked: builderSettings.iOSPlatform === "on",
2698
- })
3058
+ { class: "row" },
3059
+ div({ class: "col-sm-8" }, req.__("android")),
3060
+ div(
3061
+ { class: "col-sm" },
3062
+ input({
3063
+ type: "checkbox",
3064
+ class: "form-check-input",
3065
+ name: "androidPlatform",
3066
+ id: "androidCheckboxId",
3067
+ onClick: "toggle_android_platform()",
3068
+ checked:
3069
+ builderSettings.androidPlatform === "on",
3070
+ })
3071
+ )
3072
+ ),
3073
+ // iOS
3074
+ div(
3075
+ { class: "row" },
3076
+ div({ class: "col-sm-8" }, req.__("iOS")),
3077
+ div(
3078
+ { class: "col-sm" },
3079
+ input({
3080
+ type: "checkbox",
3081
+ class: "form-check-input",
3082
+ name: "iOSPlatform",
3083
+ id: "iOSCheckboxId",
3084
+ checked: builderSettings.iOSPlatform === "on",
3085
+ })
3086
+ )
2699
3087
  )
2700
3088
  )
3089
+ ),
3090
+ // android with docker
3091
+ div(
3092
+ { class: "col-sm-1 d-flex justify-content-center" },
3093
+ input({
3094
+ type: "checkbox",
3095
+ class: "form-check-input",
3096
+ name: "useDocker",
3097
+ id: "dockerCheckboxId",
3098
+ hidden: builderSettings.androidPlatform !== "on",
3099
+ checked: builderSettings.useDocker === "on",
3100
+ })
2701
3101
  )
2702
3102
  ),
2703
- // android with docker
3103
+ // app name
2704
3104
  div(
2705
- { class: "col-sm-1 d-flex justify-content-center" },
2706
- input({
2707
- type: "checkbox",
2708
- class: "form-check-input",
2709
- name: "useDocker",
2710
- id: "dockerCheckboxId",
2711
- hidden: builderSettings.androidPlatform !== "on",
2712
- checked: builderSettings.useDocker === "on",
2713
- })
2714
- )
2715
- ),
2716
- // app name
2717
- div(
2718
- { class: "row pb-2" },
2719
- div(
2720
- { class: "col-sm-10" },
2721
- label(
2722
- {
2723
- for: "appFileInputId",
2724
- class: "form-label fw-bold",
2725
- },
2726
- req.__("App name")
2727
- ),
2728
- input({
2729
- type: "text",
2730
- class: "form-control",
2731
- name: "appName",
2732
- id: "appNameInputId",
2733
- placeholder: "SaltcornMobileApp",
2734
- value: builderSettings.appName || "",
2735
- })
2736
- )
2737
- ),
2738
- // app id
2739
- div(
2740
- { class: "row pb-2" },
2741
- div(
2742
- { class: "col-sm-10" },
2743
- label(
2744
- {
2745
- for: "appIdInputId",
2746
- class: "form-label fw-bold",
2747
- },
2748
- req.__("App ID")
2749
- ),
2750
- input({
2751
- type: "text",
2752
- class: "form-control",
2753
- name: "appId",
2754
- id: "appIdInputId",
2755
- placeholder: "com.saltcorn.mobile.app",
2756
- value: builderSettings.appId || "",
2757
- })
2758
- )
2759
- ),
2760
- // app version
2761
- div(
2762
- { class: "row pb-2" },
2763
- div(
2764
- { class: "col-sm-10" },
2765
- label(
2766
- {
2767
- for: "appVersionInputId",
2768
- class: "form-label fw-bold",
2769
- },
2770
- req.__("App version")
2771
- ),
2772
- input({
2773
- type: "text",
2774
- class: "form-control",
2775
- name: "appVersion",
2776
- id: "appVersionInputId",
2777
- placeholder: "0.0.1",
2778
- value: builderSettings.appVersion || "",
2779
- }),
3105
+ { class: "row pb-2" },
2780
3106
  div(
2781
- { class: "invalid-feedback" },
2782
- req.__(
2783
- "Please enter a version in the format 'x.y.z' (e.g. 0.0.1 with numbers from 0 to 999) or leave it empty."
2784
- )
3107
+ { class: "col-sm-10" },
3108
+ label(
3109
+ {
3110
+ for: "appFileInputId",
3111
+ class: "form-label fw-bold",
3112
+ },
3113
+ req.__("App name")
3114
+ ),
3115
+ input({
3116
+ type: "text",
3117
+ class: "form-control",
3118
+ name: "appName",
3119
+ id: "appNameInputId",
3120
+ placeholder: "SaltcornMobileApp",
3121
+ value: builderSettings.appName || "",
3122
+ })
2785
3123
  )
2786
- )
2787
- ),
2788
- // server url
2789
- div(
2790
- { class: "row pb-2" },
3124
+ ),
3125
+ // app id
2791
3126
  div(
2792
- { class: "col-sm-10" },
2793
- label(
2794
- {
2795
- for: "serverURLInputId",
2796
- class: "form-label fw-bold",
2797
- },
2798
- req.__("Server URL")
2799
- ),
2800
- input({
2801
- type: "text",
2802
- class: "form-control",
2803
- name: "serverURL",
2804
- id: "serverURLInputId",
2805
- value: builderSettings.serverURL || "",
2806
- placeholder: getState().getConfig("base_url") || "",
2807
- })
2808
- )
2809
- ),
2810
- // app icon
2811
- div(
2812
- { class: "row pb-2" },
3127
+ { class: "row pb-2" },
3128
+ div(
3129
+ { class: "col-sm-10" },
3130
+ label(
3131
+ {
3132
+ for: "appIdInputId",
3133
+ class: "form-label fw-bold",
3134
+ },
3135
+ req.__("App ID")
3136
+ ),
3137
+ input({
3138
+ type: "text",
3139
+ class: "form-control",
3140
+ name: "appId",
3141
+ id: "appIdInputId",
3142
+ placeholder: "com.saltcorn.mobile.app",
3143
+ value: builderSettings.appId || "",
3144
+ })
3145
+ )
3146
+ ),
3147
+ // app version
2813
3148
  div(
2814
- { class: "col-sm-10" },
2815
- label(
2816
- {
2817
- for: "appIconInputId",
2818
- class: "form-label fw-bold",
2819
- },
2820
- req.__("App icon")
2821
- ),
2822
- select(
2823
- {
2824
- class: "form-select",
2825
- name: "appIcon",
2826
- id: "appIconInputId",
2827
- },
2828
- [
2829
- option({ value: "" }, ""),
2830
- ...images.map((image) =>
2831
- option(
2832
- {
2833
- value: image.location,
2834
- selected:
2835
- builderSettings.appIcon === image.location,
2836
- },
2837
- image.filename
2838
- )
2839
- ),
2840
- ].join("")
3149
+ { class: "row pb-2" },
3150
+ div(
3151
+ { class: "col-sm-10" },
3152
+ label(
3153
+ {
3154
+ for: "appVersionInputId",
3155
+ class: "form-label fw-bold",
3156
+ },
3157
+ req.__("App version")
3158
+ ),
3159
+ input({
3160
+ type: "text",
3161
+ class: "form-control",
3162
+ name: "appVersion",
3163
+ id: "appVersionInputId",
3164
+ placeholder: "0.0.1",
3165
+ value: builderSettings.appVersion || "",
3166
+ }),
3167
+ div(
3168
+ { class: "invalid-feedback" },
3169
+ req.__(
3170
+ "Please enter a version in the format 'x.y.z' (e.g. 0.0.1 with numbers from 0 to 999) or leave it empty."
3171
+ )
3172
+ )
2841
3173
  )
2842
- )
2843
- ),
2844
- div(
2845
- { class: "row pb-3" },
3174
+ ),
3175
+ // server url
2846
3176
  div(
2847
- { class: "col-sm-10" },
2848
- label(
2849
- {
2850
- for: "splashPageInputId",
2851
- class: "form-label fw-bold",
2852
- },
2853
- req.__("Splash Page")
2854
- ),
2855
- select(
2856
- {
2857
- class: "form-select",
2858
- name: "splashPage",
2859
- id: "splashPageInputId",
2860
- },
2861
- [
2862
- option({ value: "" }, ""),
2863
- ...pages.map((page) =>
2864
- option(
2865
- {
2866
- value: page.name,
2867
- selected:
2868
- builderSettings.splashPage === page.name,
2869
- },
2870
- page.name
2871
- )
2872
- ),
2873
- ].join("")
3177
+ { class: "row pb-2" },
3178
+ div(
3179
+ { class: "col-sm-10" },
3180
+ label(
3181
+ {
3182
+ for: "serverURLInputId",
3183
+ class: "form-label fw-bold",
3184
+ },
3185
+ req.__("Server URL")
3186
+ ),
3187
+ input({
3188
+ type: "text",
3189
+ class: "form-control",
3190
+ name: "serverURL",
3191
+ id: "serverURLInputId",
3192
+ value: builderSettings.serverURL || "",
3193
+ placeholder: getState().getConfig("base_url") || "",
3194
+ })
2874
3195
  )
2875
- )
2876
- ),
2877
- // auto public login box
2878
- div(
2879
- { class: "row pb-2" },
3196
+ ),
3197
+ // app icon
2880
3198
  div(
2881
- { class: "col-sm-10" },
2882
- input({
2883
- type: "checkbox",
2884
- id: "autoPublLoginId",
2885
- class: "form-check-input me-2",
2886
- name: "autoPublicLogin",
2887
- checked: builderSettings.autoPublicLogin === "on",
2888
- }),
2889
- label(
2890
- {
2891
- for: "autoPublLoginId",
2892
- class: "form-label fw-bold mb-0",
2893
- },
2894
- req.__("Auto public login")
2895
- ),
2896
- div(),
2897
- i(
2898
- req.__(
2899
- "When enabled, you will be logged in as a public user without any login screen."
3199
+ { class: "row pb-2" },
3200
+ div(
3201
+ { class: "col-sm-10" },
3202
+ label(
3203
+ {
3204
+ for: "appIconInputId",
3205
+ class: "form-label fw-bold",
3206
+ },
3207
+ req.__("App icon")
3208
+ ),
3209
+ select(
3210
+ {
3211
+ class: "form-select",
3212
+ name: "appIcon",
3213
+ id: "appIconInputId",
3214
+ },
3215
+ [
3216
+ option({ value: "" }, ""),
3217
+ ...images.map((image) =>
3218
+ option(
3219
+ {
3220
+ value: image.location,
3221
+ selected:
3222
+ builderSettings.appIcon === image.location,
3223
+ },
3224
+ image.filename
3225
+ )
3226
+ ),
3227
+ ].join("")
2900
3228
  )
2901
3229
  )
2902
- )
2903
- ),
2904
- // show continue as public user link
2905
- div(
2906
- { class: "row pb-2" },
3230
+ ),
2907
3231
  div(
2908
- { class: "col-sm-10" },
2909
- input({
2910
- type: "checkbox",
2911
- id: "showContAsPublId",
2912
- class: "form-check-input me-2",
2913
- name: "showContinueAsPublicUser",
2914
- checked:
2915
- builderSettings.showContinueAsPublicUser === "on",
2916
- }),
2917
- label(
2918
- {
2919
- for: "showContAsPublId",
2920
- class: "form-label fw-bold mb-0",
2921
- },
2922
- req.__("Show 'Continue as public user' link")
2923
- ),
2924
- div(),
2925
- i(
2926
- req.__(
2927
- "When enabled, the login screen shows you a link to login as public user."
3232
+ { class: "row pb-3" },
3233
+ div(
3234
+ { class: "col-sm-10" },
3235
+ label(
3236
+ {
3237
+ for: "splashPageInputId",
3238
+ class: "form-label fw-bold",
3239
+ },
3240
+ req.__("Splash Page")
3241
+ ),
3242
+ select(
3243
+ {
3244
+ class: "form-select",
3245
+ name: "splashPage",
3246
+ id: "splashPageInputId",
3247
+ },
3248
+ [
3249
+ option({ value: "" }, ""),
3250
+ ...pages.map((page) =>
3251
+ option(
3252
+ {
3253
+ value: page.name,
3254
+ selected:
3255
+ builderSettings.splashPage === page.name,
3256
+ },
3257
+ page.name
3258
+ )
3259
+ ),
3260
+ ].join("")
2928
3261
  )
2929
3262
  )
2930
- )
2931
- ),
2932
-
2933
- // build type
2934
- div(
2935
- { class: "row pb-3 pt-2" },
3263
+ ),
3264
+ // auto public login box
2936
3265
  div(
2937
- { class: "col-sm-10" },
2938
- label(
2939
- {
2940
- for: "splashPageInputId",
2941
- class: "form-label fw-bold",
2942
- },
2943
- req.__("Build type")
2944
- ),
2945
-
3266
+ { class: "row pb-2" },
2946
3267
  div(
2947
- { class: "form-check" },
3268
+ { class: "col-sm-10" },
2948
3269
  input({
2949
- type: "radio",
2950
- id: "debugBuildTypeId",
3270
+ type: "checkbox",
3271
+ id: "autoPublLoginId",
2951
3272
  class: "form-check-input me-2",
2952
- name: "buildType",
2953
- value: "debug",
2954
- checked: builderSettings.buildType === "debug",
3273
+ name: "autoPublicLogin",
3274
+ checked: builderSettings.autoPublicLogin === "on",
2955
3275
  }),
2956
3276
  label(
2957
3277
  {
2958
- for: "debugBuildTypeId",
2959
- class: "form-label",
3278
+ for: "autoPublLoginId",
3279
+ class: "form-label fw-bold mb-0",
2960
3280
  },
2961
- req.__("debug")
3281
+ req.__("Auto public login")
3282
+ ),
3283
+ div(),
3284
+ i(
3285
+ req.__(
3286
+ "When enabled, you will be logged in as a public user without any login screen."
3287
+ )
2962
3288
  )
2963
- ),
3289
+ )
3290
+ ),
3291
+ // show continue as public user link
3292
+ div(
3293
+ { class: "row pb-2" },
2964
3294
  div(
2965
- { class: "form-check" },
3295
+ { class: "col-sm-10" },
2966
3296
  input({
2967
- type: "radio",
2968
- id: "releaseBuildTypeId",
3297
+ type: "checkbox",
3298
+ id: "showContAsPublId",
2969
3299
  class: "form-check-input me-2",
2970
- name: "buildType",
2971
- value: "release",
3300
+ name: "showContinueAsPublicUser",
2972
3301
  checked:
2973
- builderSettings.buildType === "release" ||
2974
- !builderSettings.buildType,
3302
+ builderSettings.showContinueAsPublicUser === "on",
2975
3303
  }),
2976
3304
  label(
2977
3305
  {
2978
- for: "releaseBuildTypeId",
2979
- class: "form-label",
3306
+ for: "showContAsPublId",
3307
+ class: "form-label fw-bold mb-0",
2980
3308
  },
2981
- req.__("release")
3309
+ req.__("Show 'Continue as public user' link")
3310
+ ),
3311
+ div(),
3312
+ i(
3313
+ req.__(
3314
+ "When enabled, the login screen shows you a link to login as public user."
3315
+ )
2982
3316
  )
2983
3317
  )
2984
- )
2985
- ),
2986
- // included/excluded plugins
2987
- div(
2988
- {
2989
- id: "pluginsSelectorId",
2990
- class: "row pb-4",
2991
- },
2992
- div(
2993
- label({ class: "form-label fw-bold" }, req.__("Plugins"))
2994
3318
  ),
3319
+
3320
+ // allow clear text traffic
2995
3321
  div(
2996
- { class: "container" },
3322
+ { class: "row pb-2" },
2997
3323
  div(
2998
- { class: "row" },
2999
- div(
3000
- { class: "col-sm-4 text-center" },
3001
- req.__("exclude")
3324
+ { class: "col-sm-10" },
3325
+ input({
3326
+ type: "checkbox",
3327
+ id: "allowClearTextTrafficId",
3328
+ class: "form-check-input me-2 mb-0 ",
3329
+ name: "allowClearTextTraffic",
3330
+ checked:
3331
+ builderSettings.allowClearTextTraffic === "on",
3332
+ }),
3333
+ label(
3334
+ {
3335
+ for: "allowClearTextTrafficId",
3336
+ class: "form-label fw-bold mb-0",
3337
+ },
3338
+ req.__("Allow clear text traffic")
3002
3339
  ),
3003
- div({ class: "col-sm-1" }),
3004
- div(
3005
- { class: "col-sm-4 text-center" },
3006
- req.__("include")
3340
+ div(),
3341
+ i(
3342
+ req.__(
3343
+ "Enable this to allow unsecure HTTP connections. Useful for local testing."
3344
+ )
3007
3345
  )
3008
- ),
3346
+ )
3347
+ ),
3348
+
3349
+ // build type
3350
+ div(
3351
+ { class: "row pb-3 pt-2" },
3009
3352
  div(
3010
- { class: "row" },
3353
+ { class: "col-sm-10" },
3354
+ label(
3355
+ {
3356
+ for: "splashPageInputId",
3357
+ class: "form-label fw-bold",
3358
+ },
3359
+ req.__("Build type")
3360
+ ),
3361
+
3011
3362
  div(
3012
- { class: "col-sm-4" },
3013
- select(
3363
+ { class: "form-check" },
3364
+ input({
3365
+ type: "radio",
3366
+ id: "debugBuildTypeId",
3367
+ class: "form-check-input me-2",
3368
+ name: "buildType",
3369
+ value: "debug",
3370
+ checked: builderSettings.buildType === "debug",
3371
+ }),
3372
+ label(
3014
3373
  {
3015
- id: "excluded-plugins-select-id",
3016
- class: "form-control form-select",
3017
- multiple: true,
3374
+ for: "debugBuildTypeId",
3375
+ class: "form-label",
3018
3376
  },
3019
- plugins
3020
- .filter(
3021
- (plugin) =>
3022
- builderSettings.excludedPlugins?.indexOf(
3023
- plugin.name
3024
- ) >= 0
3025
- )
3026
- .map((plugin) =>
3027
- option({
3028
- id: `${plugin.name}_excluded_opt`,
3029
- value: plugin.name,
3030
- label: plugin.name,
3031
- })
3032
- )
3377
+ req.__("debug")
3033
3378
  )
3034
3379
  ),
3035
3380
  div(
3036
- { class: "col-sm-1 d-flex justify-content-center" },
3037
- div(
3038
- div(
3039
- button(
3040
- {
3041
- id: "move-plugin-right-btn-id",
3042
- type: "button",
3043
- onClick: `move_plugin_to_included()`,
3044
- class: "btn btn-light pt-1 mb-1",
3045
- },
3046
- i({ class: "fas fa-arrow-right" })
3047
- )
3048
- ),
3049
- div(
3050
- button(
3051
- {
3052
- id: "move-plugin-left-btn-id",
3053
- type: "button",
3054
- onClick: `move_plugin_to_excluded()`,
3055
- class: "btn btn-light pt-1",
3056
- },
3057
- i({ class: "fas fa-arrow-left" })
3058
- )
3059
- )
3060
- )
3061
- ),
3062
- div(
3063
- { class: "col-sm-4" },
3064
- select(
3381
+ { class: "form-check" },
3382
+ input({
3383
+ type: "radio",
3384
+ id: "releaseBuildTypeId",
3385
+ class: "form-check-input me-2",
3386
+ name: "buildType",
3387
+ value: "release",
3388
+ checked:
3389
+ builderSettings.buildType === "release" ||
3390
+ !builderSettings.buildType,
3391
+ }),
3392
+ label(
3065
3393
  {
3066
- id: "included-plugins-select-id",
3067
- class: "form-control form-select",
3068
- multiple: true,
3394
+ for: "releaseBuildTypeId",
3395
+ class: "form-label",
3069
3396
  },
3070
- plugins
3071
- .filter(
3072
- (plugin) =>
3073
- !builderSettings.excludedPlugins ||
3074
- builderSettings.excludedPlugins.indexOf(
3075
- plugin.name
3076
- ) < 0
3077
- )
3078
- .map((plugin) =>
3079
- option({
3080
- id: `${plugin.name}_included_opt`,
3081
- value: plugin.name,
3082
- label: plugin.name,
3083
- })
3084
- )
3397
+ req.__("release")
3085
3398
  )
3086
3399
  )
3087
3400
  )
3088
- )
3089
- ),
3090
-
3091
- // allow offline mode box
3092
- div(
3093
- { class: "row pb-2 mt-2" },
3401
+ ),
3402
+ // included/excluded plugins
3094
3403
  div(
3095
- { class: "col-sm-10" },
3096
- input({
3097
- type: "checkbox",
3098
- id: "offlineModeBoxId",
3099
- class: "form-check-input me-2 mb-0 ",
3100
- name: "allowOfflineMode",
3101
- onClick: "toggle_tbl_sync()",
3102
- checked: builderSettings.allowOfflineMode === "on",
3103
- }),
3104
- label(
3105
- {
3106
- for: "offlineModeBoxId",
3107
- class: "form-label fw-bold mb-0",
3108
- },
3109
- req.__("Allow offline mode")
3110
- ),
3111
- div(),
3112
- i(
3113
- req.__(
3114
- "Enable this to integrate offline/online Synchronization into your app."
3404
+ {
3405
+ id: "pluginsSelectorId",
3406
+ class: "row pb-4",
3407
+ },
3408
+ div(
3409
+ label(
3410
+ { class: "form-label fw-bold" },
3411
+ req.__("Plugins")
3115
3412
  )
3116
- )
3117
- )
3118
- ),
3119
-
3120
- div(
3121
- {
3122
- id: "tblSyncSelectorId",
3123
- class: "mb-3 mt-1",
3124
- hidden: builderSettings.allowOfflineMode !== "on",
3125
- },
3126
- p({ class: "h3 ps-3" }, "Synchronization settings"),
3127
- div(
3128
- { class: "form-group border border-2 p-3 rounded" },
3129
-
3413
+ ),
3130
3414
  div(
3415
+ { class: "container" },
3131
3416
  div(
3132
- {
3133
- class: "row pb-3",
3134
- },
3417
+ { class: "row" },
3135
3418
  div(
3136
- label(
3137
- { class: "form-label fw-bold" },
3138
- req.__("Tables to synchronize") +
3139
- a(
3140
- {
3141
- href: "javascript:ajax_modal('/admin/help/Capacitor Builder?')",
3142
- },
3143
- i({ class: "fas fa-question-circle ps-1" })
3419
+ { class: "col-sm-4 text-center" },
3420
+ req.__("exclude")
3421
+ ),
3422
+ div({ class: "col-sm-1" }),
3423
+ div(
3424
+ { class: "col-sm-4 text-center" },
3425
+ req.__("include")
3426
+ )
3427
+ ),
3428
+ div(
3429
+ { class: "row" },
3430
+ div(
3431
+ { class: "col-sm-4" },
3432
+ select(
3433
+ {
3434
+ id: "excluded-plugins-select-id",
3435
+ class: "form-control form-select",
3436
+ multiple: true,
3437
+ },
3438
+ plugins
3439
+ .filter(
3440
+ (plugin) =>
3441
+ builderSettings.excludedPlugins?.indexOf(
3442
+ plugin.name
3443
+ ) >= 0
3444
+ )
3445
+ .map((plugin) =>
3446
+ option({
3447
+ id: `${plugin.name}_excluded_opt`,
3448
+ value: plugin.name,
3449
+ label: plugin.name,
3450
+ })
3144
3451
  )
3145
3452
  )
3146
3453
  ),
3147
3454
  div(
3148
- { class: "container" },
3455
+ { class: "col-sm-1 d-flex justify-content-center" },
3149
3456
  div(
3150
- { class: "row" },
3151
3457
  div(
3152
- { class: "col-sm-4 text-center" },
3153
- req.__("unsynched")
3458
+ button(
3459
+ {
3460
+ id: "move-plugin-right-btn-id",
3461
+ type: "button",
3462
+ onClick: `move_plugin_to_included()`,
3463
+ class: "btn btn-light pt-1 mb-1",
3464
+ },
3465
+ i({ class: "fas fa-arrow-right" })
3466
+ )
3154
3467
  ),
3155
- div({ class: "col-sm-1" }),
3156
3468
  div(
3157
- { class: "col-sm-4 text-center" },
3158
- req.__("synched")
3469
+ button(
3470
+ {
3471
+ id: "move-plugin-left-btn-id",
3472
+ type: "button",
3473
+ onClick: `move_plugin_to_excluded()`,
3474
+ class: "btn btn-light pt-1",
3475
+ },
3476
+ i({ class: "fas fa-arrow-left" })
3477
+ )
3478
+ )
3479
+ )
3480
+ ),
3481
+ div(
3482
+ { class: "col-sm-4" },
3483
+ select(
3484
+ {
3485
+ id: "included-plugins-select-id",
3486
+ class: "form-control form-select",
3487
+ multiple: true,
3488
+ },
3489
+ plugins
3490
+ .filter(
3491
+ (plugin) =>
3492
+ !builderSettings.excludedPlugins ||
3493
+ builderSettings.excludedPlugins.indexOf(
3494
+ plugin.name
3495
+ ) < 0
3496
+ )
3497
+ .map((plugin) =>
3498
+ option({
3499
+ id: `${plugin.name}_included_opt`,
3500
+ value: plugin.name,
3501
+ label: plugin.name,
3502
+ })
3503
+ )
3504
+ )
3505
+ )
3506
+ )
3507
+ )
3508
+ ),
3509
+
3510
+ // allow offline mode box
3511
+ div(
3512
+ { class: "row pb-2 mt-2" },
3513
+ div(
3514
+ { class: "col-sm-10" },
3515
+ input({
3516
+ type: "checkbox",
3517
+ id: "offlineModeBoxId",
3518
+ class: "form-check-input me-2 mb-0 ",
3519
+ name: "allowOfflineMode",
3520
+ onClick: "toggle_tbl_sync()",
3521
+ checked: builderSettings.allowOfflineMode === "on",
3522
+ }),
3523
+ label(
3524
+ {
3525
+ for: "offlineModeBoxId",
3526
+ class: "form-label fw-bold mb-0",
3527
+ },
3528
+ req.__("Allow offline mode")
3529
+ ),
3530
+ div(),
3531
+ i(
3532
+ req.__(
3533
+ "Enable this to integrate offline/online Synchronization into your app."
3534
+ )
3535
+ )
3536
+ )
3537
+ ),
3538
+
3539
+ div(
3540
+ {
3541
+ id: "tblSyncSelectorId",
3542
+ class: "mb-3 mt-1",
3543
+ hidden: builderSettings.allowOfflineMode !== "on",
3544
+ },
3545
+ p({ class: "h3 ps-3" }, "Synchronization settings"),
3546
+ div(
3547
+ { class: "form-group border border-2 p-3 rounded" },
3548
+
3549
+ div(
3550
+ div(
3551
+ {
3552
+ class: "row pb-3",
3553
+ },
3554
+ div(
3555
+ label(
3556
+ { class: "form-label fw-bold" },
3557
+ req.__("Tables to synchronize") +
3558
+ a(
3559
+ {
3560
+ href: "javascript:ajax_modal('/admin/help/Capacitor Builder?')",
3561
+ },
3562
+ i({ class: "fas fa-question-circle ps-1" })
3563
+ )
3159
3564
  )
3160
3565
  ),
3161
3566
  div(
3162
- { class: "row" },
3567
+ { class: "container" },
3163
3568
  div(
3164
- { class: "col-sm-4" },
3165
- select(
3166
- {
3167
- id: "unsynched-tbls-select-id",
3168
- class: "form-control form-select",
3169
- multiple: true,
3170
- },
3171
- withSyncInfo
3172
- .filter(
3173
- (table) =>
3174
- !builderSettings.synchedTables ||
3175
- builderSettings.synchedTables.indexOf(
3176
- table.name
3177
- ) < 0
3178
- )
3179
- .map((table) =>
3180
- option({
3181
- id: `${table.name}_unsynched_opt`,
3182
- value: table.name,
3183
- label: table.name,
3184
- })
3185
- )
3569
+ { class: "row" },
3570
+ div(
3571
+ { class: "col-sm-4 text-center" },
3572
+ req.__("unsynched")
3573
+ ),
3574
+ div({ class: "col-sm-1" }),
3575
+ div(
3576
+ { class: "col-sm-4 text-center" },
3577
+ req.__("synched")
3186
3578
  )
3187
3579
  ),
3188
3580
  div(
3189
- {
3190
- class:
3191
- "col-sm-1 d-flex justify-content-center",
3192
- },
3581
+ { class: "row" },
3193
3582
  div(
3194
- div(
3195
- button(
3196
- {
3197
- id: "move-right-btn-id",
3198
- type: "button",
3199
- onClick: `move_to_synched()`,
3200
- class: "btn btn-light pt-1 mb-1",
3201
- },
3202
- i({ class: "fas fa-arrow-right" })
3203
- )
3204
- ),
3205
- div(
3206
- button(
3207
- {
3208
- id: "move-left-btn-id",
3209
- type: "button",
3210
- onClick: `move_to_unsynched()`,
3211
- class: "btn btn-light pt-1",
3212
- },
3213
- i({ class: "fas fa-arrow-left" })
3214
- )
3583
+ { class: "col-sm-4" },
3584
+ select(
3585
+ {
3586
+ id: "unsynched-tbls-select-id",
3587
+ class: "form-control form-select",
3588
+ multiple: true,
3589
+ },
3590
+ withSyncInfo
3591
+ .filter(
3592
+ (table) =>
3593
+ !builderSettings.synchedTables ||
3594
+ builderSettings.synchedTables.indexOf(
3595
+ table.name
3596
+ ) < 0
3597
+ )
3598
+ .map((table) =>
3599
+ option({
3600
+ id: `${table.name}_unsynched_opt`,
3601
+ value: table.name,
3602
+ label: table.name,
3603
+ })
3604
+ )
3215
3605
  )
3216
- )
3217
- ),
3218
- div(
3219
- { class: "col-sm-4" },
3220
- select(
3606
+ ),
3607
+ div(
3221
3608
  {
3222
- id: "synched-tbls-select-id",
3223
- class: "form-control form-select",
3224
- multiple: true,
3609
+ class:
3610
+ "col-sm-1 d-flex justify-content-center",
3225
3611
  },
3226
- withSyncInfo
3227
- .filter(
3228
- (table) =>
3229
- builderSettings.synchedTables?.indexOf(
3230
- table.name
3231
- ) >= 0
3232
- )
3233
- .map((table) =>
3234
- option({
3235
- id: `${table.name}_synched_opt`,
3236
- value: table.name,
3237
- label: table.name,
3238
- })
3612
+ div(
3613
+ div(
3614
+ button(
3615
+ {
3616
+ id: "move-right-btn-id",
3617
+ type: "button",
3618
+ onClick: `move_to_synched()`,
3619
+ class: "btn btn-light pt-1 mb-1",
3620
+ },
3621
+ i({ class: "fas fa-arrow-right" })
3622
+ )
3623
+ ),
3624
+ div(
3625
+ button(
3626
+ {
3627
+ id: "move-left-btn-id",
3628
+ type: "button",
3629
+ onClick: `move_to_unsynched()`,
3630
+ class: "btn btn-light pt-1",
3631
+ },
3632
+ i({ class: "fas fa-arrow-left" })
3633
+ )
3239
3634
  )
3635
+ )
3636
+ ),
3637
+ div(
3638
+ { class: "col-sm-4" },
3639
+ select(
3640
+ {
3641
+ id: "synched-tbls-select-id",
3642
+ class: "form-control form-select",
3643
+ multiple: true,
3644
+ },
3645
+ withSyncInfo
3646
+ .filter(
3647
+ (table) =>
3648
+ builderSettings.synchedTables?.indexOf(
3649
+ table.name
3650
+ ) >= 0
3651
+ )
3652
+ .map((table) =>
3653
+ option({
3654
+ id: `${table.name}_synched_opt`,
3655
+ value: table.name,
3656
+ label: table.name,
3657
+ })
3658
+ )
3659
+ )
3240
3660
  )
3241
3661
  )
3242
3662
  )
3243
3663
  )
3244
- )
3245
- ),
3664
+ ),
3246
3665
 
3247
- // sync when connection restored
3248
- div(
3249
- { class: "row pb-2 my-2" },
3666
+ // sync when connection restored
3250
3667
  div(
3251
- { class: "col-sm-10" },
3252
- input({
3253
- type: "checkbox",
3254
- id: "connRestoredBoxId",
3255
- class: "form-check-input me-2 mb-0 ",
3256
- name: "syncOnReconnect",
3257
- checked: builderSettings.syncOnReconnect === "on",
3258
- }),
3259
- label(
3260
- {
3261
- for: "connRestoredBoxId",
3262
- class: "form-label fw-bold mb-0",
3263
- },
3264
- req.__("Sync on reconnect")
3265
- ),
3266
- div(),
3267
- i(
3268
- req.__(
3269
- "Synchronize when the internet reconnects and automatically end the offline mode. " +
3270
- "When disabled, you'll see a prompt to do it manually."
3668
+ { class: "row pb-2 my-2" },
3669
+ div(
3670
+ { class: "col-sm-10" },
3671
+ input({
3672
+ type: "checkbox",
3673
+ id: "connRestoredBoxId",
3674
+ class: "form-check-input me-2 mb-0 ",
3675
+ name: "syncOnReconnect",
3676
+ checked: builderSettings.syncOnReconnect === "on",
3677
+ }),
3678
+ label(
3679
+ {
3680
+ for: "connRestoredBoxId",
3681
+ class: "form-label fw-bold mb-0",
3682
+ },
3683
+ req.__("Sync on reconnect")
3684
+ ),
3685
+ div(),
3686
+ i(
3687
+ req.__(
3688
+ "Run Synchronizations when the network connection is restored."
3689
+ )
3271
3690
  )
3272
3691
  )
3273
- )
3274
- ),
3692
+ ),
3275
3693
 
3276
- // push sync
3277
- div(
3278
- { class: "row pb-2 my-2" },
3694
+ // sync when the app resumes
3279
3695
  div(
3280
- { class: "col-sm-10" },
3281
- input({
3282
- type: "checkbox",
3283
- id: "pushSyncBoxId",
3284
- class: "form-check-input me-2 mb-0 ",
3285
- name: "pushSync",
3286
- checked: builderSettings.pushSync === "on",
3287
- }),
3288
- label(
3289
- {
3290
- for: "pushSyncBoxId",
3291
- class: "form-label fw-bold mb-0",
3292
- },
3293
- req.__("Push sync")
3294
- ),
3295
- div(),
3296
- i(
3297
- req.__(
3298
- "Run Synchronizations when the server sends a push notification. " +
3299
- "On Android, this requires a Firebase JSON key and a Google Services File (see below)."
3696
+ { class: "row pb-2 my-2" },
3697
+ div(
3698
+ { class: "col-sm-10" },
3699
+ input({
3700
+ type: "checkbox",
3701
+ id: "appResumeSyncBoxId",
3702
+ class: "form-check-input me-2 mb-0 ",
3703
+ name: "syncOnAppResume",
3704
+ checked: builderSettings.syncOnAppResume === "on",
3705
+ }),
3706
+ label(
3707
+ {
3708
+ for: "appResumeSyncBoxId",
3709
+ class: "form-label fw-bold mb-0",
3710
+ },
3711
+ req.__("Sync on app resume")
3712
+ ),
3713
+ div(),
3714
+ i(
3715
+ req.__(
3716
+ "Run Synchronizations when the app is resumed from background."
3717
+ )
3300
3718
  )
3301
3719
  )
3302
- )
3303
- ),
3720
+ ),
3304
3721
 
3305
- // periodic sync interval
3306
- div(
3307
- { class: "row pb-2 mt-2" },
3722
+ // push sync
3308
3723
  div(
3309
- { class: "col-sm-10" },
3310
- label(
3311
- {
3312
- for: "syncIntervalInputId",
3313
- class: "form-label fw-bold mb-0 ",
3314
- },
3315
- req.__("Background Sync interval")
3316
- ),
3317
- input({
3318
- type: "text",
3319
- class: "form-control mb-0",
3320
- name: "syncInterval",
3321
- id: "syncIntervalInputId",
3322
- value: builderSettings.syncInterval || "",
3323
- }),
3324
- div(),
3325
- i(
3326
- req.__(
3327
- "Perdiodic interval (in minutes) to run synchronizations in the background. " +
3328
- "This is just a min interval, depending on system conditions, the actual time may be longer."
3724
+ { class: "row pb-2 my-2" },
3725
+ div(
3726
+ { class: "col-sm-10" },
3727
+ input({
3728
+ type: "checkbox",
3729
+ id: "pushSyncBoxId",
3730
+ class: "form-check-input me-2 mb-0 ",
3731
+ name: "pushSync",
3732
+ checked: builderSettings.pushSync === "on",
3733
+ }),
3734
+ label(
3735
+ {
3736
+ for: "pushSyncBoxId",
3737
+ class: "form-label fw-bold mb-0",
3738
+ },
3739
+ req.__("Push sync")
3740
+ ),
3741
+ div(),
3742
+ i(
3743
+ req.__(
3744
+ "Run Synchronizations when the server sends a push notification. " +
3745
+ "On Android, this requires a Firebase JSON key and a Google Services File (see below)."
3746
+ )
3747
+ )
3748
+ )
3749
+ ),
3750
+
3751
+ // periodic sync interval
3752
+ div(
3753
+ { class: "row pb-2 mt-2" },
3754
+ div(
3755
+ { class: "col-sm-10" },
3756
+ label(
3757
+ {
3758
+ for: "syncIntervalInputId",
3759
+ class: "form-label fw-bold mb-0 ",
3760
+ },
3761
+ req.__("Background Sync interval")
3762
+ ),
3763
+ input({
3764
+ type: "text",
3765
+ class: "form-control mb-0",
3766
+ name: "syncInterval",
3767
+ id: "syncIntervalInputId",
3768
+ value: builderSettings.syncInterval || "",
3769
+ }),
3770
+ div(),
3771
+ i(
3772
+ req.__(
3773
+ "Perdiodic interval (in minutes) to run synchronizations in the background. " +
3774
+ "This is just a min interval, depending on system conditions, the actual time may be longer."
3775
+ )
3329
3776
  )
3330
3777
  )
3331
3778
  )
3332
3779
  )
3333
3780
  )
3334
3781
  ),
3335
-
3336
- div({}, "&nbsp;"),
3337
-
3338
3782
  div(
3339
3783
  { class: "mt-3 mb-3" },
3340
- p({ class: "h3 ps-3" }, "Android configuration"),
3784
+ p(
3785
+ { class: "h3 ps-1" },
3786
+ button(
3787
+ {
3788
+ class: "btn btn-outline-secondary p-1 me-2",
3789
+ type: "button",
3790
+ "data-bs-toggle": "collapse",
3791
+ "data-bs-target": "#androidConfigFormGroupId",
3792
+ "aria-expanded": "false",
3793
+ "aria-controls": "androidConfigFormGroupId",
3794
+ },
3795
+ i({ class: "fas fa-chevron-down" })
3796
+ ) + "Android configuration"
3797
+ ),
3341
3798
  div(
3342
- { class: "form-group border border-2 p-3 rounded" },
3799
+ {
3800
+ id: "androidConfigFormGroupId",
3801
+ class:
3802
+ "form-group border border-2 p-3 rounded collapse",
3803
+ },
3343
3804
 
3344
3805
  div(
3345
3806
  { class: "row pb-3 pt-2" },
@@ -3639,176 +4100,18 @@ router.get(
3639
4100
  )
3640
4101
  )
3641
4102
  ),
3642
- div({}, "&nbsp;"),
3643
- div(
3644
- { class: "mt-3" },
3645
- p({ class: "h3 ps-3 mt-3" }, "iOS Configuration"),
3646
- div(
3647
- { class: "form-group border border-2 p-3 rounded" },
3648
- div(
3649
- { class: "mb-3" },
3650
- div(
3651
- { class: "row pb-3 pt-2" },
3652
- div(
3653
- label(
3654
- { class: "form-label fw-bold" },
3655
- req.__("xcodebuild") +
3656
- a(
3657
- {
3658
- href: "javascript:ajax_modal('/admin/help/xcodebuild?')",
3659
- },
3660
- i({ class: "fas fa-question-circle ps-1" })
3661
- )
3662
- )
3663
- ),
3664
- div(
3665
- { class: "col-sm-4" },
3666
- div(
3667
- {
3668
- id: "xcodebuildStatusId",
3669
- class: "",
3670
- },
3671
- xcodebuildAvailable
3672
- ? span(
3673
- req.__("installed"),
3674
- i({
3675
- class: "ps-2 fas fa-check text-success",
3676
- })
3677
- )
3678
- : span(
3679
- req.__("not available"),
3680
- i({
3681
- class: "ps-2 fas fa-times text-danger",
3682
- })
3683
- )
3684
- )
3685
- ),
3686
- div(
3687
- { class: "col-sm-4" },
3688
- // not sure if we should provide this
3689
- // button(
3690
- // {
3691
- // id: "installXCodeBtnId",
3692
- // type: "button",
3693
- // onClick: `install_xcode(this);`,
3694
- // class: "btn btn-warning",
3695
- // },
3696
- // req.__("install")
3697
- // ),
3698
- span(
3699
- {
3700
- role: "button",
3701
- onClick: "check_xcodebuild()",
3702
- },
3703
- span({ class: "ps-3" }, req.__("refresh")),
3704
- i({ class: "ps-2 fas fa-undo" })
3705
- )
3706
- )
3707
- ),
3708
- div(
3709
- {
3710
- class: `row mb-3 pb-3 ${
3711
- xcodebuildAvailable ? "" : "d-none"
3712
- }`,
3713
- id: "xcodebuildVersionBoxId",
3714
- },
3715
- div(
3716
- { class: "col-sm-4" },
3717
- span(
3718
- req.__("Version") +
3719
- span(
3720
- { id: "xcodebuildVersionId", class: "pe-2" },
3721
- `: ${xcodebuildVersion || "unknown"}`
3722
- ),
3723
- versionMarker(xcodebuildVersion || "0")
3724
- )
3725
- )
3726
- )
3727
- ),
3728
- // provisioning profile file
3729
- div(
3730
- { class: "row pb-3" },
3731
- div(
3732
- { class: "col-sm-10" },
3733
- label(
3734
- {
3735
- for: "provisioningProfileInputId",
3736
- class: "form-label fw-bold",
3737
- },
3738
- req.__("Provisioning Profile"),
3739
- a(
3740
- {
3741
- href: "javascript:ajax_modal('/admin/help/Provisioning Profile?')",
3742
- },
3743
- i({ class: "fas fa-question-circle ps-1" })
3744
- )
3745
- ),
3746
- select(
3747
- {
3748
- class: "form-select",
3749
- name: "provisioningProfile",
3750
- id: "provisioningProfileInputId",
3751
- },
3752
- [
3753
- option({ value: "" }, ""),
3754
- ...provisioningFiles.map((file) =>
3755
- option(
3756
- {
3757
- value: file.location,
3758
- selected:
3759
- builderSettings.provisioningProfile ===
3760
- file.location,
3761
- },
3762
- file.filename
3763
- )
3764
- ),
3765
- ].join("")
3766
- )
3767
- )
3768
- ),
3769
- // Share Extension provisioning profile
3770
- div(
3771
- { class: "row pb-3" },
3772
- div(
3773
- { class: "col-sm-10" },
3774
- label(
3775
- {
3776
- for: "shareProvisioningProfileInputId",
3777
- class: "form-label fw-bold",
3778
- },
3779
- req.__("Share Extension Provisioning Profile"),
3780
- a(
3781
- {
3782
- href: "javascript:ajax_modal('/admin/help/Provisioning Profile?')",
3783
- },
3784
- i({ class: "fas fa-question-circle ps-1" })
3785
- )
3786
- ),
3787
- select(
3788
- {
3789
- class: "form-select",
3790
- name: "shareProvisioningProfile",
3791
- id: "shareProvisioningProfileInputId",
3792
- },
3793
- [
3794
- option({ value: "" }, ""),
3795
- ...provisioningFiles.map((file) =>
3796
- option(
3797
- {
3798
- value: file.location,
3799
- selected:
3800
- builderSettings.shareProvisioningProfile ===
3801
- file.location,
3802
- },
3803
- file.filename
3804
- )
3805
- ),
3806
- ].join("")
3807
- )
3808
- )
3809
- )
3810
- )
3811
- )
4103
+
4104
+ buildIosConfigBox({
4105
+ req,
4106
+ isMac,
4107
+ xcodebuildAvailable,
4108
+ xcodebuildVersion,
4109
+ cocoaPodsAvailable,
4110
+ cocoaPodsVersion,
4111
+ provisioningFiles,
4112
+ allAppCfgFiles,
4113
+ builderSettings,
4114
+ })
3812
4115
  ),
3813
4116
  button(
3814
4117
  {
@@ -4072,13 +4375,18 @@ router.post(
4072
4375
  showContinueAsPublicUser,
4073
4376
  allowOfflineMode,
4074
4377
  syncOnReconnect,
4378
+ syncOnAppResume,
4075
4379
  pushSync,
4076
4380
  syncInterval,
4077
4381
  synchedTables,
4078
4382
  includedPlugins,
4383
+ noProvisioningProfile,
4079
4384
  provisioningProfile,
4080
4385
  shareProvisioningProfile,
4386
+ apnSigningKey,
4387
+ apnSigningKeyId,
4081
4388
  buildType,
4389
+ allowClearTextTraffic,
4082
4390
  keystoreFile,
4083
4391
  keystoreAlias,
4084
4392
  keystorePassword,
@@ -4135,7 +4443,7 @@ router.post(
4135
4443
  });
4136
4444
  }
4137
4445
  if (iOSPlatform) {
4138
- if (!provisioningProfile)
4446
+ if (!provisioningProfile && !noProvisioningProfile)
4139
4447
  return res.json({
4140
4448
  error: req.__(
4141
4449
  "Please provide a Provisioning Profile for the iOS build."
@@ -4189,20 +4497,16 @@ router.post(
4189
4497
  if (!entryPointByRole) spawnParams.push("-e", entryPoint);
4190
4498
  if (useDocker) spawnParams.push("-d");
4191
4499
  if (androidPlatform) spawnParams.push("-p", "android");
4192
- if (iOSPlatform) {
4500
+ if (iOSPlatform) spawnParams.push("-p", "ios");
4501
+ if (noProvisioningProfile) spawnParams.push("--noProvisioningProfile");
4502
+ if (provisioningProfile)
4503
+ spawnParams.push("--provisioningProfile", provisioningProfile);
4504
+ if (allowShareTo) {
4505
+ mode = "prepare";
4193
4506
  spawnParams.push(
4194
- "-p",
4195
- "ios",
4196
- "--provisioningProfile",
4197
- provisioningProfile
4507
+ "--shareExtensionProvisioningProfile",
4508
+ shareProvisioningProfile
4198
4509
  );
4199
- if (allowShareTo) {
4200
- mode = "prepare";
4201
- spawnParams.push(
4202
- "--shareExtensionProvisioningProfile",
4203
- shareProvisioningProfile
4204
- );
4205
- }
4206
4510
  }
4207
4511
  if (appName) spawnParams.push("--appName", appName);
4208
4512
  if (appId) spawnParams.push("--appId", appId);
@@ -4214,6 +4518,7 @@ router.post(
4214
4518
  if (syncInterval) spawnParams.push("--syncInterval", syncInterval);
4215
4519
  if (pushSync) spawnParams.push("--pushSync");
4216
4520
  if (syncOnReconnect) spawnParams.push("--syncOnReconnect");
4521
+ if (syncOnAppResume) spawnParams.push("--syncOnAppResume");
4217
4522
  if (allowShareTo) spawnParams.push("--allowShareTo");
4218
4523
  if (autoPublicLogin) spawnParams.push("--autoPublicLogin");
4219
4524
  if (showContinueAsPublicUser)
@@ -4233,6 +4538,7 @@ router.post(
4233
4538
  }
4234
4539
 
4235
4540
  if (buildType) spawnParams.push("--buildType", buildType);
4541
+ if (allowClearTextTraffic) spawnParams.push("--allowClearTextTraffic");
4236
4542
  if (keystoreFile) spawnParams.push("--androidKeystore", keystoreFile);
4237
4543
  if (keystoreAlias)
4238
4544
  spawnParams.push("--androidKeyStoreAlias", keystoreAlias);
@@ -4373,10 +4679,13 @@ router.get(
4373
4679
  );
4374
4680
 
4375
4681
  router.get(
4376
- "/mobile-app/check-xcodebuild",
4682
+ "/mobile-app/check-ios-build-tools",
4377
4683
  isAdmin,
4378
4684
  error_catcher(async (req, res) => {
4379
- res.json(await checkXcodebuild());
4685
+ const xcodebuild = await checkXcodebuild();
4686
+ const cocoapods = await checkCocoaPods();
4687
+ const isMac = process.platform === "darwin";
4688
+ res.json({ xcodebuild, cocoapods, isMac });
4380
4689
  })
4381
4690
  );
4382
4691
 
@@ -4400,6 +4709,8 @@ router.post(
4400
4709
  "firebase_app_services",
4401
4710
  newCfg.googleServicesFile
4402
4711
  );
4712
+ await getState().setConfig("apn_signing_key", newCfg.apnSigningKey);
4713
+ await getState().setConfig("apn_signing_key_id", newCfg.apnSigningKeyId);
4403
4714
  res.json({ success: true });
4404
4715
  } catch (e) {
4405
4716
  getState().log(1, `Unable to save mobile builder config: ${e.message}`);
@@ -5199,6 +5510,17 @@ admin_config_route({
5199
5510
  showIf: { enable_push_notify: true },
5200
5511
  help: { topic: "Firebase App Services" },
5201
5512
  },
5513
+ { section_header: "Native iOS Mobile App" },
5514
+ {
5515
+ name: "apn_signing_key",
5516
+ showIf: { enable_push_notify: true },
5517
+ help: { topic: "APN Signing Key" },
5518
+ },
5519
+ {
5520
+ name: "apn_signing_key_id",
5521
+ showIf: { enable_push_notify: true },
5522
+ help: { topic: "APN Signing Key ID" },
5523
+ },
5202
5524
  ],
5203
5525
  response(form, req, res) {
5204
5526
  send_admin_page({