@saltcorn/server 1.3.0-beta.9 → 1.3.1-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -2
- package/app.js +9 -2
- package/auth/routes.js +6 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/_saltcorn_common_code.Relation.html +10 -10
- package/docs/classes/_saltcorn_common_code.RelationsFinder.html +5 -5
- package/docs/classes/_saltcorn_data.models.Crash.html +17 -17
- package/docs/classes/_saltcorn_data.models.EventLog-1.html +19 -19
- package/docs/classes/_saltcorn_data.models.Field.html +74 -74
- package/docs/classes/_saltcorn_data.models.FieldRepeat.html +16 -16
- package/docs/classes/_saltcorn_data.models.File-1.html +48 -48
- package/docs/classes/_saltcorn_data.models.Form-1.html +46 -38
- package/docs/classes/_saltcorn_data.models.Library.html +13 -13
- package/docs/classes/_saltcorn_data.models.Page.html +24 -24
- package/docs/classes/_saltcorn_data.models.PageGroup-1.html +25 -25
- package/docs/classes/_saltcorn_data.models.Plugin.html +25 -25
- package/docs/classes/_saltcorn_data.models.Role.html +9 -9
- package/docs/classes/_saltcorn_data.models.Table-1.html +95 -93
- package/docs/classes/_saltcorn_data.models.TableConstraint.html +14 -14
- package/docs/classes/_saltcorn_data.models.Trigger.html +36 -36
- package/docs/classes/_saltcorn_data.models.User.html +48 -48
- package/docs/classes/_saltcorn_data.models.View-1.html +54 -54
- package/docs/classes/_saltcorn_data.models.Workflow.html +17 -17
- package/docs/classes/_saltcorn_data.models.WorkflowRun.html +35 -35
- package/docs/classes/_saltcorn_data.models.WorkflowStep.html +25 -25
- package/docs/classes/_saltcorn_data.models.WorkflowTrace.html +18 -18
- package/docs/classes/_saltcorn_mobile_builder.MobileBuilder.html +43 -36
- package/docs/enums/_saltcorn_common_code.RelationType.html +7 -7
- package/docs/enums/_saltcorn_common_code.ViewDisplayType.html +4 -4
- package/docs/functions/_saltcorn_admin_models.backup.create_backup.html +1 -1
- package/docs/functions/_saltcorn_admin_models.backup.create_csv_from_rows.html +1 -1
- package/docs/functions/_saltcorn_admin_models.backup.restore.html +1 -1
- package/docs/functions/_saltcorn_admin_models.pack.add_to_menu.html +1 -1
- package/docs/functions/_saltcorn_admin_models.pack.can_install_pack.html +1 -1
- package/docs/functions/_saltcorn_admin_models.pack.fetch_available_packs.html +1 -1
- package/docs/functions/_saltcorn_admin_models.pack.fetch_pack_by_name.html +1 -1
- package/docs/functions/_saltcorn_admin_models.pack.install_pack.html +1 -1
- package/docs/functions/_saltcorn_admin_models.pack.library_pack.html +1 -1
- package/docs/functions/_saltcorn_admin_models.pack.model_instance_pack.html +1 -1
- package/docs/functions/_saltcorn_admin_models.pack.model_pack.html +1 -1
- package/docs/functions/_saltcorn_admin_models.pack.page_group_pack.html +1 -1
- package/docs/functions/_saltcorn_admin_models.pack.page_pack.html +1 -1
- package/docs/functions/_saltcorn_admin_models.pack.plugin_pack.html +1 -1
- package/docs/functions/_saltcorn_admin_models.pack.role_pack.html +1 -1
- package/docs/functions/_saltcorn_admin_models.pack.table_pack.html +1 -1
- package/docs/functions/_saltcorn_admin_models.pack.trigger_pack.html +1 -1
- package/docs/functions/_saltcorn_admin_models.pack.uninstall_pack.html +1 -1
- package/docs/functions/_saltcorn_admin_models.pack.view_pack.html +1 -1
- package/docs/functions/_saltcorn_admin_models.tenant.copy_tenant_template.html +1 -1
- package/docs/functions/_saltcorn_admin_models.tenant.create_tenant.html +1 -1
- package/docs/functions/_saltcorn_admin_models.tenant.deleteTenant.html +1 -1
- package/docs/functions/_saltcorn_admin_models.tenant.domain_sanitize.html +1 -1
- package/docs/functions/_saltcorn_admin_models.tenant.eachTenant.html +1 -1
- package/docs/functions/_saltcorn_admin_models.tenant.getAllTenantRows.html +1 -1
- package/docs/functions/_saltcorn_admin_models.tenant.getAllTenants.html +1 -1
- package/docs/functions/_saltcorn_admin_models.tenant.insertTenant.html +1 -1
- package/docs/functions/_saltcorn_admin_models.tenant.switchToTenant.html +1 -1
- package/docs/functions/_saltcorn_common_code.buildTableCaches.html +1 -1
- package/docs/functions/_saltcorn_common_code.parseLegacyRelation.html +1 -1
- package/docs/functions/_saltcorn_common_code.parseRelationPath.html +1 -1
- package/docs/functions/_saltcorn_data.models.config.check_email_mask.html +1 -1
- package/docs/functions/_saltcorn_data.models.config.deleteConfig.html +1 -1
- package/docs/functions/_saltcorn_data.models.config.getAllConfig.html +1 -1
- package/docs/functions/_saltcorn_data.models.config.getConfig.html +1 -1
- package/docs/functions/_saltcorn_data.models.config.get_base_url.html +1 -1
- package/docs/functions/_saltcorn_data.models.config.get_latest_npm_version.html +1 -1
- package/docs/functions/_saltcorn_data.models.config.remove_from_menu.html +1 -1
- package/docs/functions/_saltcorn_data.models.config.save_menu_items.html +1 -1
- package/docs/functions/_saltcorn_data.models.config.setConfig.html +1 -1
- package/docs/functions/_saltcorn_data.models.discovery.discover_tables.html +1 -1
- package/docs/functions/_saltcorn_data.models.discovery.discoverable_tables.html +1 -1
- package/docs/functions/_saltcorn_data.models.discovery.findType.html +1 -1
- package/docs/functions/_saltcorn_data.models.discovery.get_existing_views.html +1 -1
- package/docs/functions/_saltcorn_data.models.discovery.implement_discovery.html +1 -1
- package/docs/functions/_saltcorn_data.models.email.getMailTransport.html +1 -1
- package/docs/functions/_saltcorn_data.models.email.send_verification_email.html +1 -1
- package/docs/functions/_saltcorn_data.models.email.viewToEmailHtml.html +1 -1
- package/docs/functions/_saltcorn_data.models.expression.apply_calculated_fields.html +1 -1
- package/docs/functions/_saltcorn_data.models.expression.apply_calculated_fields_stored.html +1 -1
- package/docs/functions/_saltcorn_data.models.expression.eval_expression.html +1 -1
- package/docs/functions/_saltcorn_data.models.expression.expressionValidator.html +1 -1
- package/docs/functions/_saltcorn_data.models.expression.get_async_expression_function.html +3 -3
- package/docs/functions/_saltcorn_data.models.expression.get_expression_function.html +1 -1
- package/docs/functions/_saltcorn_data.models.expression.jsexprToWhere.html +1 -1
- package/docs/functions/_saltcorn_data.models.expression.recalculate_for_stored.html +1 -1
- package/docs/functions/_saltcorn_data.models.expression.transform_for_async.html +1 -1
- package/docs/functions/_saltcorn_data.models.layout.eachView.html +1 -1
- package/docs/functions/_saltcorn_data.models.layout.getStringsForI18n.html +1 -1
- package/docs/functions/_saltcorn_data.models.layout.getViews.html +1 -1
- package/docs/functions/_saltcorn_data.models.layout.translateLayout.html +1 -1
- package/docs/functions/_saltcorn_data.models.layout.traverse.html +1 -1
- package/docs/functions/_saltcorn_data.models.layout.traverseSync.html +1 -1
- package/docs/functions/_saltcorn_data.models.random.all_views.html +1 -1
- package/docs/functions/_saltcorn_data.models.random.fill_table_row.html +1 -1
- package/docs/functions/_saltcorn_data.models.random.initial_view.html +1 -1
- package/docs/functions/_saltcorn_data.models.random.random_table.html +1 -1
- package/docs/functions/_saltcorn_db_common.buildInsertBulkSql.html +1 -1
- package/docs/functions/_saltcorn_db_common.buildInsertSql.html +1 -1
- package/docs/functions/_saltcorn_db_common.doCount.html +1 -1
- package/docs/functions/_saltcorn_db_common.doDeleteWhere.html +1 -1
- package/docs/functions/_saltcorn_db_common.doListScTables.html +1 -1
- package/docs/functions/_saltcorn_db_common.doListTables.html +1 -1
- package/docs/functions/_saltcorn_db_common.doListUserDefinedTables.html +1 -1
- package/docs/functions/_saltcorn_db_common.do_add_index.html +1 -1
- package/docs/functions/_saltcorn_db_common.do_drop_index.html +1 -1
- package/docs/functions/_saltcorn_db_common.ftsFieldsSqlExpr.html +1 -1
- package/docs/functions/_saltcorn_db_common.mkSelectOptions.html +1 -1
- package/docs/functions/_saltcorn_db_common.mkVal.html +1 -1
- package/docs/functions/_saltcorn_db_common.mkWhere.html +1 -1
- package/docs/functions/_saltcorn_db_common.multi_tenant.enable_multi_tenant.html +1 -1
- package/docs/functions/_saltcorn_db_common.multi_tenant.getRequestContext.html +1 -1
- package/docs/functions/_saltcorn_db_common.multi_tenant.getTenantSchema.html +1 -1
- package/docs/functions/_saltcorn_db_common.multi_tenant.init.html +1 -1
- package/docs/functions/_saltcorn_db_common.multi_tenant.is_it_multi_tenant.html +1 -1
- package/docs/functions/_saltcorn_db_common.multi_tenant.runWithTenant.html +1 -1
- package/docs/functions/_saltcorn_db_common.orderByIsObject.html +1 -1
- package/docs/functions/_saltcorn_db_common.orderByIsOperator.html +1 -1
- package/docs/functions/_saltcorn_db_common.prefixFieldsInWhere.html +1 -1
- package/docs/functions/_saltcorn_db_common.reprAsJson.html +1 -1
- package/docs/functions/_saltcorn_db_common.slugify.html +1 -1
- package/docs/functions/_saltcorn_db_common.sqlBinOp.html +1 -1
- package/docs/functions/_saltcorn_db_common.sqlFun.html +1 -1
- package/docs/functions/_saltcorn_db_common.sqlsanitize.html +1 -1
- package/docs/functions/_saltcorn_db_common.sqlsanitizeAllowDots.html +1 -1
- package/docs/functions/_saltcorn_db_common.subSelectWhere.html +1 -1
- package/docs/functions/_saltcorn_db_common.tryCatchInTransaction.html +1 -1
- package/docs/functions/_saltcorn_db_common.withTransaction.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.androidFeatures.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.androidPermissions.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.buildTablesFile.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.copyPrepopulatedDb.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.copyServerFiles.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.copyShareExtFiles.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.copySiteLogo.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.copyTranslationFiles.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.createSqliteDb.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.decodeProvisioningProfile.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.extractDomain.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.generateAndroidVersionCode.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.modifyAndroidManifest.html +5 -3
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.modifyConfigXml.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.modifyGradleConfig.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.modifyInfoPlist.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.modifyXcodeProjectFile.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.prepAppIcon.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.prepareAppIcon.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.prepareBuildDir.html +7 -2
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.prepareExportOptionsPlist.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.prepareSplashIcon.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.prepareSplashPage.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.writeCapacitorConfig.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.writeCfgFile.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.writeDataExtractionRules.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.writeNetworkSecurityConfig.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.writePodfile.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.common_build_utils.writePrivacyInfo.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.package_bundle_utils.bundleMobileAppCode.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.package_bundle_utils.bundlePackagesAndPlugins.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.package_bundle_utils.copyMobileAppDirs.html +1 -1
- package/docs/functions/_saltcorn_mobile_builder.package_bundle_utils.copyPublicDirs.html +1 -1
- package/docs/functions/_saltcorn_sqlite.add_index.html +1 -1
- package/docs/functions/_saltcorn_sqlite.add_unique_constraint.html +1 -1
- package/docs/functions/_saltcorn_sqlite.begin.html +1 -1
- package/docs/functions/_saltcorn_sqlite.changeConnection.html +1 -1
- package/docs/functions/_saltcorn_sqlite.close.html +1 -1
- package/docs/functions/_saltcorn_sqlite.commit.html +1 -1
- package/docs/functions/_saltcorn_sqlite.count.html +1 -1
- package/docs/functions/_saltcorn_sqlite.deleteWhere.html +1 -1
- package/docs/functions/_saltcorn_sqlite.dropTable.html +1 -1
- package/docs/functions/_saltcorn_sqlite.dropTables.html +1 -1
- package/docs/functions/_saltcorn_sqlite.drop_index.html +1 -1
- package/docs/functions/_saltcorn_sqlite.drop_reset_schema.html +1 -1
- package/docs/functions/_saltcorn_sqlite.drop_unique_constraint.html +1 -1
- package/docs/functions/_saltcorn_sqlite.getVersion.html +1 -1
- package/docs/functions/_saltcorn_sqlite.get_db_filepath.html +1 -1
- package/docs/functions/_saltcorn_sqlite.get_sql_logging.html +1 -1
- package/docs/functions/_saltcorn_sqlite.init.html +1 -1
- package/docs/functions/_saltcorn_sqlite.insert.html +1 -1
- package/docs/functions/_saltcorn_sqlite.listScTables.html +1 -1
- package/docs/functions/_saltcorn_sqlite.listTables.html +1 -1
- package/docs/functions/_saltcorn_sqlite.listUserDefinedTables.html +1 -1
- package/docs/functions/_saltcorn_sqlite.query.html +1 -1
- package/docs/functions/_saltcorn_sqlite.rollback.html +1 -1
- package/docs/functions/_saltcorn_sqlite.select.html +1 -1
- package/docs/functions/_saltcorn_sqlite.selectMaybeOne.html +1 -1
- package/docs/functions/_saltcorn_sqlite.selectOne.html +1 -1
- package/docs/functions/_saltcorn_sqlite.set_sql_logging.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sql_log.html +1 -1
- package/docs/functions/_saltcorn_sqlite.update.html +1 -1
- package/docs/functions/_saltcorn_sqlite.updateWhere.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.add_index.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.add_unique_constraint.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.count.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.deleteWhere.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.drop_index.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.drop_reset_schema.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.drop_unique_constraint.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.init.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.insert.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.insertRows.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.listScTables.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.listTables.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.listUserDefinedTables.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.query.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.select.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.selectMaybeOne.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.selectOne.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.setConnectionObject.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.tableExists.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.time.html +1 -1
- package/docs/functions/_saltcorn_sqlite_mobile.update.html +1 -1
- package/docs/functions/_saltcorn_types.ModelAbstracts.abstract_field.instanceOfField.html +1 -1
- package/docs/functions/_saltcorn_types.ModelAbstracts.abstract_page.instanceOfPage.html +1 -1
- package/docs/functions/_saltcorn_types.ModelAbstracts.abstract_view.instanceOfView.html +1 -1
- package/docs/functions/_saltcorn_types.Types.base_types.instanceOWithHtmlFile.html +1 -1
- package/docs/functions/_saltcorn_types.Types.common_types.instanceOfErrorMsg.html +1 -1
- package/docs/functions/_saltcorn_types.Types.common_types.instanceOfSuccessMsg.html +1 -1
- package/docs/functions/_saltcorn_types.Types.common_types.instanceOfType.html +1 -1
- package/docs/functions/_saltcorn_types.generators.generateBool.html +1 -1
- package/docs/functions/_saltcorn_types.generators.generateString.html +1 -1
- package/docs/functions/_saltcorn_types.generators.num_between.html +1 -1
- package/docs/functions/_saltcorn_types.generators.oneOf.html +1 -1
- package/docs/interfaces/_saltcorn_mobile_builder.common_build_utils.ScCapacitorConfig.html +10 -10
- package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_field.AbstractField.html +15 -15
- package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_field.AbstractFieldRepeat.html +3 -3
- package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_form.AbstractForm.html +33 -26
- package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_page.AbstractPage.html +7 -7
- package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_role.AbstractRole.html +3 -3
- package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_table.AbstractTable.html +11 -11
- package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_trigger.AbstractTrigger.html +16 -16
- package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_view.AbstractView.html +10 -10
- package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_workflow.AbstractWorkflow.html +13 -13
- package/docs/modules/_saltcorn_admin_models.backup.html +1 -1
- package/docs/modules/_saltcorn_admin_models.html +1 -1
- package/docs/modules/_saltcorn_admin_models.pack.html +1 -1
- package/docs/modules/_saltcorn_admin_models.tenant.html +1 -1
- package/docs/modules/_saltcorn_common_code.html +1 -1
- package/docs/modules/_saltcorn_data.html +3 -3
- package/docs/modules/_saltcorn_data.models.EventLog.html +2 -2
- package/docs/modules/_saltcorn_data.models.File.html +2 -2
- package/docs/modules/_saltcorn_data.models.Form.html +2 -2
- package/docs/modules/_saltcorn_data.models.PageGroup.html +2 -2
- package/docs/modules/_saltcorn_data.models.Table.html +2 -2
- package/docs/modules/_saltcorn_data.models.View.html +2 -2
- package/docs/modules/_saltcorn_data.models.config.html +1 -1
- package/docs/modules/_saltcorn_data.models.discovery.html +1 -1
- package/docs/modules/_saltcorn_data.models.email.html +1 -1
- package/docs/modules/_saltcorn_data.models.expression.html +1 -1
- package/docs/modules/_saltcorn_data.models.html +1 -1
- package/docs/modules/_saltcorn_data.models.layout.html +1 -1
- package/docs/modules/_saltcorn_data.models.random.html +1 -1
- package/docs/modules/_saltcorn_data.models.scheduler.html +1 -1
- package/docs/modules/_saltcorn_data.plugin_helper.html +1 -1
- package/docs/modules/_saltcorn_data.utils.html +1 -1
- package/docs/modules/_saltcorn_db_common.html +2 -2
- package/docs/modules/_saltcorn_db_common.multi_tenant.html +1 -1
- package/docs/modules/_saltcorn_markup.html +20 -10
- package/docs/modules/_saltcorn_mobile_builder.common_build_utils.html +1 -1
- package/docs/modules/_saltcorn_mobile_builder.html +1 -1
- package/docs/modules/_saltcorn_mobile_builder.package_bundle_utils.html +1 -1
- package/docs/modules/_saltcorn_sqlite.html +1 -1
- package/docs/modules/_saltcorn_sqlite_mobile.html +1 -1
- package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_field.html +1 -1
- package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_form.html +1 -1
- package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_library.html +1 -1
- package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_page.html +1 -1
- package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_plugin.html +1 -1
- package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_role.html +1 -1
- package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_table.html +1 -1
- package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_trigger.html +1 -1
- package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_view.html +1 -1
- package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_workflow.html +1 -1
- package/docs/modules/_saltcorn_types.ModelAbstracts.html +1 -1
- package/docs/modules/_saltcorn_types.Types.base_types.html +1 -1
- package/docs/modules/_saltcorn_types.Types.common_types.html +1 -1
- package/docs/modules/_saltcorn_types.Types.html +1 -1
- package/docs/modules/_saltcorn_types.generators.html +1 -1
- package/docs/modules/_saltcorn_types.html +1 -1
- package/docs/types/_saltcorn_data.models.EventLog.EventLogCfg.html +1 -1
- package/docs/types/_saltcorn_data.models.File.FileCfg.html +1 -1
- package/docs/types/_saltcorn_data.models.Form.AdditionalButton.html +1 -1
- package/docs/types/_saltcorn_data.models.Form.FormCfg.html +4 -2
- package/docs/types/_saltcorn_data.models.PageGroup.ScreenInfoParams.html +1 -1
- package/docs/types/_saltcorn_data.models.Table.ChildRelations.html +1 -1
- package/docs/types/_saltcorn_data.models.Table.ParentRelations.html +1 -1
- package/docs/types/_saltcorn_data.models.Table.RelationData.html +1 -1
- package/docs/types/_saltcorn_data.models.View.FindViewsPred.html +1 -1
- package/docs/types/_saltcorn_db_common.AggregationOptions.html +1 -1
- package/docs/types/_saltcorn_db_common.CoordOpts.html +1 -1
- package/docs/types/_saltcorn_db_common.DatabaseClient.html +1 -1
- package/docs/types/_saltcorn_db_common.JoinField.html +1 -1
- package/docs/types/_saltcorn_db_common.JoinFields.html +1 -1
- package/docs/types/_saltcorn_db_common.JoinOptions.html +1 -1
- package/docs/types/_saltcorn_db_common.JsonPath.html +1 -1
- package/docs/types/_saltcorn_db_common.JsonPathElem.html +1 -1
- package/docs/types/_saltcorn_db_common.Operator.html +1 -1
- package/docs/types/_saltcorn_db_common.PartialSome.html +1 -1
- package/docs/types/_saltcorn_db_common.PrimaryKeyValue.html +1 -1
- package/docs/types/_saltcorn_db_common.Row.html +1 -1
- package/docs/types/_saltcorn_db_common.SelectOptions.html +1 -1
- package/docs/types/_saltcorn_db_common.SqlAndValues.html +1 -1
- package/docs/types/_saltcorn_db_common.StrongRow.html +1 -1
- package/docs/types/_saltcorn_db_common.SubselectOptions.html +1 -1
- package/docs/types/_saltcorn_db_common.Value.html +1 -1
- package/docs/types/_saltcorn_db_common.Where.html +1 -1
- package/docs/types/_saltcorn_mobile_builder.IosCfg.html +1 -1
- package/docs/types/_saltcorn_types.ModelAbstracts.abstract_field.FieldCfg.html +1 -1
- package/docs/types/_saltcorn_types.ModelAbstracts.abstract_field.InputType.html +1 -1
- package/docs/types/_saltcorn_types.ModelAbstracts.abstract_form.AdditionalButton.html +1 -1
- package/docs/types/_saltcorn_types.ModelAbstracts.abstract_library.LibraryCfg.html +1 -1
- package/docs/types/_saltcorn_types.ModelAbstracts.abstract_library.LibraryPack.html +1 -1
- package/docs/types/_saltcorn_types.ModelAbstracts.abstract_page.PageCfg.html +1 -1
- package/docs/types/_saltcorn_types.ModelAbstracts.abstract_page.PagePack.html +1 -1
- package/docs/types/_saltcorn_types.ModelAbstracts.abstract_plugin.PluginCfg.html +1 -1
- package/docs/types/_saltcorn_types.ModelAbstracts.abstract_plugin.PluginPack.html +1 -1
- package/docs/types/_saltcorn_types.ModelAbstracts.abstract_role.RoleCfg.html +1 -1
- package/docs/types/_saltcorn_types.ModelAbstracts.abstract_role.RolePack.html +1 -1
- package/docs/types/_saltcorn_types.ModelAbstracts.abstract_table.TableCfg.html +1 -1
- package/docs/types/_saltcorn_types.ModelAbstracts.abstract_table.TablePack.html +1 -1
- package/docs/types/_saltcorn_types.ModelAbstracts.abstract_trigger.TriggerCfg.html +1 -1
- package/docs/types/_saltcorn_types.ModelAbstracts.abstract_trigger.TriggerPack.html +1 -1
- package/docs/types/_saltcorn_types.ModelAbstracts.abstract_view.ViewCfg.html +1 -1
- package/docs/types/_saltcorn_types.ModelAbstracts.abstract_view.ViewPack.html +1 -1
- package/docs/types/_saltcorn_types.ModelAbstracts.abstract_workflow.ConfigWorkflowStep.html +1 -1
- package/docs/types/_saltcorn_types.ModelAbstracts.abstract_workflow.RunResult.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.Action.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.AuthenticationMethod.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.CalcJoinfield.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.CapacitorPlugin.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.CodePagePack.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.Column.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.ConnectObjType.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.ConnectedObjects.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.CopilotSkill.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.ErrorObj.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.FieldLike.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.FieldView.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.Header.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.JoinFieldOption.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.Layout.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.MobileConfig.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.ModelPattern.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.Pack.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.Plugin.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.PluginFunction.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.PluginLayout.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.PluginRoute.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.PluginSourceType.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.PluginType.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.PluginWrap.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.PluginWrapArg.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.RelationOption.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.Req.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.Res.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.ResultType.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.RouteAction.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.RunExtra.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.SlugStepType.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.StepResType.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.SubField.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.TableProvider.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.TableQuery.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.Tablely.html +1 -1
- package/docs/types/_saltcorn_types.Types.base_types.ViewTemplate.html +1 -1
- package/docs/types/_saltcorn_types.Types.common_types.ErrorMessage.html +1 -1
- package/docs/types/_saltcorn_types.Types.common_types.GenObj.html +1 -1
- package/docs/types/_saltcorn_types.Types.common_types.ReqRes.html +1 -1
- package/docs/types/_saltcorn_types.Types.common_types.ResultMessage.html +1 -1
- package/docs/types/_saltcorn_types.Types.common_types.SuccessMessage.html +1 -1
- package/docs/types/_saltcorn_types.Types.common_types.Type.html +1 -1
- package/docs/variables/_saltcorn_data.db.html +1 -1
- package/docs/variables/_saltcorn_data.migrations.html +1 -1
- package/docs/variables/_saltcorn_data.models.config.available_languages.html +1 -1
- package/docs/variables/_saltcorn_data.models.config.configTypes.html +1 -1
- package/docs/variables/_saltcorn_data.models.scheduler.runScheduler.html +1 -1
- package/docs/variables/_saltcorn_data.plugin_helper.run_action_column.html +1 -1
- package/docs/variables/_saltcorn_data.utils.NotAuthorized.html +1 -1
- package/docs/variables/_saltcorn_data.utils.sleep.html +1 -1
- package/docs/variables/_saltcorn_db_common.multi_tenant.tenantNamespace.html +1 -1
- package/help/Firebase JSON key.tmd +20 -0
- package/help/Google Services File.tmd +30 -0
- package/help/VAPID configuration.tmd +1 -0
- package/locales/en.json +25 -1
- package/package.json +10 -10
- package/public/gridedit.js +2 -1
- package/public/saltcorn-common.js +114 -0
- package/public/saltcorn.js +14 -3
- package/public/serviceworker.js +11 -0
- package/routes/actions.js +19 -16
- package/routes/admin.js +112 -2
- package/routes/api.js +2 -2
- package/routes/fields.js +19 -3
- package/routes/list.js +3 -2
- package/routes/models.js +11 -0
- package/routes/notifications.js +196 -4
- package/routes/pageedit.js +4 -0
- package/routes/plugins.js +1 -3
- package/routes/search.js +23 -2
- package/routes/tables.js +1 -0
- package/routes/tenant.js +5 -1
- package/serve.js +29 -6
- package/tests/plugin_install.test.js +1 -1
- package/tests/tenant.test.js +2 -2
- package/wrapper.js +18 -0
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
<h5><span class="tsd-kind-parameter">queries</span>: <span class="tsd-signature-type">any</span></h5></li></ul></div>
|
|
44
44
|
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">></span></h4></li></ul></li></ul></div><aside class="tsd-sources">
|
|
45
45
|
<ul>
|
|
46
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
46
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-types/base_types.ts#L351">saltcorn-types/base_types.ts:351</a></li></ul></aside></div>
|
|
47
47
|
<div class="col-sidebar">
|
|
48
48
|
<div class="page-menu">
|
|
49
49
|
<div class="tsd-navigation settings">
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<li class="tsd-parameter">
|
|
26
26
|
<h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-property">redirect</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span></h5></li></ul></div><aside class="tsd-sources">
|
|
27
27
|
<ul>
|
|
28
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
28
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-types/base_types.ts#L201">saltcorn-types/base_types.ts:201</a></li></ul></aside></div>
|
|
29
29
|
<div class="col-sidebar">
|
|
30
30
|
<div class="page-menu">
|
|
31
31
|
<div class="tsd-navigation settings">
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
<li class="tsd-parameter">
|
|
30
30
|
<h5><span class="tsd-kind-property">unique</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></h5></li></ul></div><aside class="tsd-sources">
|
|
31
31
|
<ul>
|
|
32
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
32
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-types/base_types.ts#L653">saltcorn-types/base_types.ts:653</a></li></ul></aside></div>
|
|
33
33
|
<div class="col-sidebar">
|
|
34
34
|
<div class="page-menu">
|
|
35
35
|
<div class="tsd-navigation settings">
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
<li class="tsd-parameter">
|
|
28
28
|
<h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-property">goto_<wbr/>step</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span></h5></li></ul></div><aside class="tsd-sources">
|
|
29
29
|
<ul>
|
|
30
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
30
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-types/base_types.ts#L648">saltcorn-types/base_types.ts:648</a></li></ul></aside></div>
|
|
31
31
|
<div class="col-sidebar">
|
|
32
32
|
<div class="page-menu">
|
|
33
33
|
<div class="tsd-navigation settings">
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
<li class="tsd-parameter">
|
|
32
32
|
<h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-property">table</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span></h5></li></ul></div><aside class="tsd-sources">
|
|
33
33
|
<ul>
|
|
34
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
34
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-types/base_types.ts#L697">saltcorn-types/base_types.ts:697</a></li></ul></aside></div>
|
|
35
35
|
<div class="col-sidebar">
|
|
36
36
|
<div class="page-menu">
|
|
37
37
|
<div class="tsd-navigation settings">
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
<h5><span class="tsd-kind-parameter">cfg</span>: <a href="_saltcorn_types.Types.common_types.GenObj.html" class="tsd-signature-type tsd-kind-type-alias">GenObj</a></h5></li></ul></div>
|
|
63
63
|
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type ">Partial</span><span class="tsd-signature-symbol"><</span><a href="../interfaces/_saltcorn_types.ModelAbstracts.abstract_table.AbstractTable.html" class="tsd-signature-type tsd-kind-interface">AbstractTable</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">></span></h4></li></ul></li></ul></li></ul></div><aside class="tsd-sources">
|
|
64
64
|
<ul>
|
|
65
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
65
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-types/base_types.ts#L498">saltcorn-types/base_types.ts:498</a></li></ul></aside></div>
|
|
66
66
|
<div class="col-sidebar">
|
|
67
67
|
<div class="page-menu">
|
|
68
68
|
<div class="tsd-navigation settings">
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
<li class="tsd-parameter">
|
|
52
52
|
<h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-property">where</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type ">Where</span></h5></li></ul></div><aside class="tsd-sources">
|
|
53
53
|
<ul>
|
|
54
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
54
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-types/base_types.ts#L186">saltcorn-types/base_types.ts:186</a></li></ul></aside></div>
|
|
55
55
|
<div class="col-sidebar">
|
|
56
56
|
<div class="page-menu">
|
|
57
57
|
<div class="tsd-navigation settings">
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<li class="tsd-parameter">
|
|
26
26
|
<h5><span class="tsd-kind-property">external</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">true</span></h5></li></ul></div><aside class="tsd-sources">
|
|
27
27
|
<ul>
|
|
28
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
28
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-types/base_types.ts#L588">saltcorn-types/base_types.ts:588</a></li></ul></aside></div>
|
|
29
29
|
<div class="col-sidebar">
|
|
30
30
|
<div class="page-menu">
|
|
31
31
|
<div class="tsd-navigation settings">
|
|
@@ -395,7 +395,7 @@
|
|
|
395
395
|
<h5><span class="tsd-kind-parameter">configuration</span>: <span class="tsd-signature-type">any</span></h5></li></ul></div>
|
|
396
396
|
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="../interfaces/_saltcorn_types.ModelAbstracts.abstract_trigger.AbstractTrigger.html" class="tsd-signature-type tsd-kind-interface">AbstractTrigger</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">></span></h4></li></ul></li></ul></li></ul></div><aside class="tsd-sources">
|
|
397
397
|
<ul>
|
|
398
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
398
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-types/base_types.ts#L244">saltcorn-types/base_types.ts:244</a></li></ul></aside></div>
|
|
399
399
|
<div class="col-sidebar">
|
|
400
400
|
<div class="page-menu">
|
|
401
401
|
<div class="tsd-navigation settings">
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
<li class="tsd-parameter">
|
|
30
30
|
<h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-property">errors</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li></ul></div><aside class="tsd-sources">
|
|
31
31
|
<ul>
|
|
32
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
32
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-types/common_types.ts#L8">saltcorn-types/common_types.ts:8</a></li></ul></aside></div>
|
|
33
33
|
<div class="col-sidebar">
|
|
34
34
|
<div class="page-menu">
|
|
35
35
|
<div class="tsd-navigation settings">
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<li class="tsd-parameter-index-signature">
|
|
26
26
|
<h5><span class="tsd-signature-symbol">[</span><span class="tsd-kind-parameter">key</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]: </span><span class="tsd-signature-type">any</span></h5></li></ul></div><aside class="tsd-sources">
|
|
27
27
|
<ul>
|
|
28
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
28
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-types/common_types.ts#L65">saltcorn-types/common_types.ts:65</a></li></ul></aside></div>
|
|
29
29
|
<div class="col-sidebar">
|
|
30
30
|
<div class="page-menu">
|
|
31
31
|
<div class="tsd-navigation settings">
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
<li class="tsd-parameter">
|
|
28
28
|
<h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-property">res</span><span class="tsd-signature-symbol">?: </span><a href="_saltcorn_types.Types.base_types.Res.html" class="tsd-signature-type tsd-kind-type-alias">Res</a></h5></li></ul></div><aside class="tsd-sources">
|
|
29
29
|
<ul>
|
|
30
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
30
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-types/common_types.ts#L21">saltcorn-types/common_types.ts:21</a></li></ul></aside></div>
|
|
31
31
|
<div class="col-sidebar">
|
|
32
32
|
<div class="page-menu">
|
|
33
33
|
<div class="tsd-navigation settings">
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
<h1>Type alias ResultMessage</h1></div>
|
|
21
21
|
<div class="tsd-signature"><span class="tsd-kind-type-alias">Result<wbr/>Message</span><span class="tsd-signature-symbol">:</span> <a href="_saltcorn_types.Types.common_types.ErrorMessage.html" class="tsd-signature-type tsd-kind-type-alias">ErrorMessage</a><span class="tsd-signature-symbol"> | </span><a href="_saltcorn_types.Types.common_types.SuccessMessage.html" class="tsd-signature-type tsd-kind-type-alias">SuccessMessage</a></div><aside class="tsd-sources">
|
|
22
22
|
<ul>
|
|
23
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
23
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-types/common_types.ts#L26">saltcorn-types/common_types.ts:26</a></li></ul></aside></div>
|
|
24
24
|
<div class="col-sidebar">
|
|
25
25
|
<div class="page-menu">
|
|
26
26
|
<div class="tsd-navigation settings">
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
<li class="tsd-parameter">
|
|
32
32
|
<h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-property">table</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span></h5></li></ul></div><aside class="tsd-sources">
|
|
33
33
|
<ul>
|
|
34
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
34
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-types/common_types.ts#L14">saltcorn-types/common_types.ts:14</a></li></ul></aside></div>
|
|
35
35
|
<div class="col-sidebar">
|
|
36
36
|
<div class="page-menu">
|
|
37
37
|
<div class="tsd-navigation settings">
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
<li class="tsd-parameter">
|
|
103
103
|
<h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-property">validate_<wbr/>attributes</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type ">Function</span></h5></li></ul></div><aside class="tsd-sources">
|
|
104
104
|
<ul>
|
|
105
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
105
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-types/common_types.ts#L36">saltcorn-types/common_types.ts:36</a></li></ul></aside></div>
|
|
106
106
|
<div class="col-sidebar">
|
|
107
107
|
<div class="page-menu">
|
|
108
108
|
<div class="tsd-navigation settings">
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
<h1>Variable db<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
|
|
19
19
|
<div class="tsd-signature"><span class="tsd-kind-variable">db</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type ">DbExportsType</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
|
|
20
20
|
<ul>
|
|
21
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
21
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-data/db/index.ts#L56">saltcorn-data/db/index.ts:56</a></li></ul></aside></div>
|
|
22
22
|
<div class="col-sidebar">
|
|
23
23
|
<div class="page-menu">
|
|
24
24
|
<div class="tsd-navigation settings">
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
<h1>Variable migrations</h1></div>
|
|
19
19
|
<div class="tsd-signature"><span class="tsd-kind-variable">migrations</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> = {}</span></div><aside class="tsd-sources">
|
|
20
20
|
<ul>
|
|
21
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
21
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-data/index.ts#L26">saltcorn-data/index.ts:26</a></li></ul></aside></div>
|
|
22
22
|
<div class="col-sidebar">
|
|
23
23
|
<div class="page-menu">
|
|
24
24
|
<div class="tsd-navigation settings">
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
<li class="tsd-parameter">
|
|
86
86
|
<h5><span class="tsd-kind-property">zh</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li></ul></div><aside class="tsd-sources">
|
|
87
87
|
<ul>
|
|
88
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
88
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-data/models/index.ts#L56">saltcorn-data/models/index.ts:56</a></li></ul></aside></div>
|
|
89
89
|
<div class="col-sidebar">
|
|
90
90
|
<div class="page-menu">
|
|
91
91
|
<div class="tsd-navigation settings">
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
<h1>Variable configTypes</h1></div>
|
|
21
21
|
<div class="tsd-signature"><span class="tsd-kind-variable">config<wbr/>Types</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type ">ConfigTypes</span></div><aside class="tsd-sources">
|
|
22
22
|
<ul>
|
|
23
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
23
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-data/models/index.ts#L54">saltcorn-data/models/index.ts:54</a></li></ul></aside></div>
|
|
24
24
|
<div class="col-sidebar">
|
|
25
25
|
<div class="page-menu">
|
|
26
26
|
<div class="tsd-navigation settings">
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4>
|
|
66
66
|
<div class="tsd-comment tsd-typography"></div></li></ul></li></ul></li></ul></div><aside class="tsd-sources">
|
|
67
67
|
<ul>
|
|
68
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
68
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-data/models/index.ts#L116">saltcorn-data/models/index.ts:116</a></li></ul></aside></div>
|
|
69
69
|
<div class="col-sidebar">
|
|
70
70
|
<div class="page-menu">
|
|
71
71
|
<div class="tsd-navigation settings">
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
<h1>Variable run_action_column</h1></div>
|
|
20
20
|
<div class="tsd-signature"><span class="tsd-kind-variable">run_<wbr/>action_<wbr/>column</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div><aside class="tsd-sources">
|
|
21
21
|
<ul>
|
|
22
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
22
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-data/index.ts#L15">saltcorn-data/index.ts:15</a></li></ul></aside></div>
|
|
23
23
|
<div class="col-sidebar">
|
|
24
24
|
<div class="page-menu">
|
|
25
25
|
<div class="tsd-navigation settings">
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
<h1>Variable NotAuthorized</h1></div>
|
|
20
20
|
<div class="tsd-signature"><span class="tsd-kind-variable">Not<wbr/>Authorized</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div><aside class="tsd-sources">
|
|
21
21
|
<ul>
|
|
22
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
22
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-data/index.ts#L20">saltcorn-data/index.ts:20</a></li></ul></aside></div>
|
|
23
23
|
<div class="col-sidebar">
|
|
24
24
|
<div class="page-menu">
|
|
25
25
|
<div class="tsd-navigation settings">
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
<h1>Variable sleep</h1></div>
|
|
20
20
|
<div class="tsd-signature"><span class="tsd-kind-variable">sleep</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div><aside class="tsd-sources">
|
|
21
21
|
<ul>
|
|
22
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
22
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/saltcorn-data/index.ts#L20">saltcorn-data/index.ts:20</a></li></ul></aside></div>
|
|
23
23
|
<div class="col-sidebar">
|
|
24
24
|
<div class="page-menu">
|
|
25
25
|
<div class="tsd-navigation settings">
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
<h1>Variable tenantNamespace<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
|
|
20
20
|
<div class="tsd-signature"><span class="tsd-kind-variable">tenant<wbr/>Namespace</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type ">AsyncLocalStorage</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type ">RequestContext</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
|
|
21
21
|
<ul>
|
|
22
|
-
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/
|
|
22
|
+
<li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/323cdd9b5b/packages/db-common/multi-tenant.ts#L17">db-common/multi-tenant.ts:17</a></li></ul></aside></div>
|
|
23
23
|
<div class="col-sidebar">
|
|
24
24
|
<div class="page-menu">
|
|
25
25
|
<div class="tsd-navigation settings">
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
## Upload Your Firebase Service Account Key (JSON)
|
|
2
|
+
|
|
3
|
+
To integrate with Firebase, you'll need to select a **Service Account JSON key file**. This file allows secure communication with Firebase services such as Google Cloud Messaging.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
To see the file here, please upload it into your Saltcorn Filesystem.
|
|
8
|
+
|
|
9
|
+
### What is this file?
|
|
10
|
+
|
|
11
|
+
This is a **private key file** generated by Firebase. It contains credentials for a **Service Account** that grants access to your Firebase project’s backend services. The file ends with `.json` and includes fields like:
|
|
12
|
+
|
|
13
|
+
```json
|
|
14
|
+
{
|
|
15
|
+
"type": "service_account",
|
|
16
|
+
"project_id": "your-project-id",
|
|
17
|
+
"private_key_id": "abc123...",
|
|
18
|
+
"private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
|
|
19
|
+
"client_email": "firebase-adminsdk-xxxxx@your-project-id.iam.gserviceaccount.com"
|
|
20
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
## Upload Your `google-services.json` File for Firebase Cloud Messaging
|
|
2
|
+
|
|
3
|
+
To enable Firebase Cloud Messaging (FCM) integration, you need to select your app’s `google-services.json` file. This file links your Android app to your Firebase project and enables services like messaging, analytics, and more.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
To see the file here, please upload it into your Saltcorn Filesystem.
|
|
8
|
+
|
|
9
|
+
### What is `google-services.json`?
|
|
10
|
+
|
|
11
|
+
This is a configuration file automatically generated by Firebase when you register an Android app with your Firebase project. It contains credentials and identifiers for Firebase services, such as:
|
|
12
|
+
|
|
13
|
+
```json
|
|
14
|
+
{
|
|
15
|
+
"project_info": {
|
|
16
|
+
"project_number": "1234567890",
|
|
17
|
+
"project_id": "your-project-id"
|
|
18
|
+
},
|
|
19
|
+
"client": [
|
|
20
|
+
{
|
|
21
|
+
"client_info": {
|
|
22
|
+
"mobilesdk_app_id": "1:1234567890:android:abcdefg12345",
|
|
23
|
+
"android_client_info": {
|
|
24
|
+
"package_name": "com.yourapp.package"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
...
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
TODO
|
package/locales/en.json
CHANGED
|
@@ -1619,5 +1619,29 @@
|
|
|
1619
1619
|
"Decimal places": "Decimal places",
|
|
1620
1620
|
"%s view - %s": "%s view - %s",
|
|
1621
1621
|
"Password to encrypt the backup file. Leave empty for no encryption": "Password to encrypt the backup file. Leave empty for no encryption",
|
|
1622
|
-
"Show full error to user on crash, enable editing field type": "Show full error to user on crash, enable editing field type"
|
|
1622
|
+
"Show full error to user on crash, enable editing field type": "Show full error to user on crash, enable editing field type",
|
|
1623
|
+
"Shown to the user if foreign key constraint is violated": "Shown to the user if foreign key constraint is violated",
|
|
1624
|
+
"Button Style": "Button Style",
|
|
1625
|
+
"Disable full-text search": "Disable full-text search",
|
|
1626
|
+
"Use LIKE instead of tsvector. Use to match against phrase in the middle of a word.": "Use LIKE instead of tsvector. Use to match against phrase in the middle of a word.",
|
|
1627
|
+
"Model configuration": "Model configuration",
|
|
1628
|
+
"Push Notifications": "Push Notifications",
|
|
1629
|
+
"Push Notifications enabled": "Push Notifications enabled",
|
|
1630
|
+
"VAPID public key": "VAPID public key",
|
|
1631
|
+
"Public key for VAPID authentication in web push notifications": "Public key for VAPID authentication in web push notifications",
|
|
1632
|
+
"VAPID private key": "VAPID private key",
|
|
1633
|
+
"Private key for VAPID authentication in web push notifications": "Private key for VAPID authentication in web push notifications",
|
|
1634
|
+
"VAPID email": "VAPID email",
|
|
1635
|
+
"Email address for VAPID authentication in web push notifications. Usually, it is your email address.": "Email address for VAPID authentication in web push notifications. Usually, it is your email address.",
|
|
1636
|
+
"Web push icon": "Web push icon",
|
|
1637
|
+
"Select a publicly accessible square image file": "Select a publicly accessible square image file",
|
|
1638
|
+
"Web push badge": "Web push badge",
|
|
1639
|
+
"Select a publicly accessible monochrome square image file (prefarbly 72x72px)": "Select a publicly accessible monochrome square image file (prefarbly 72x72px)",
|
|
1640
|
+
"Comma-separated list of relative URL route prefixes where CSRF token checking is disabled. Example: <code>/files/upload, /auth/signup</code>": "Comma-separated list of relative URL route prefixes where CSRF token checking is disabled. Example: <code>/files/upload, /auth/signup</code>",
|
|
1641
|
+
"Push icon": "Push icon",
|
|
1642
|
+
"Push badge": "Push badge",
|
|
1643
|
+
"Web push": "Web push",
|
|
1644
|
+
"Native Android": "Native Android",
|
|
1645
|
+
"Firebase JSON key": "Firebase JSON key",
|
|
1646
|
+
"This is your Firebase Service Account JSON key file. ": "This is your Firebase Service Account JSON key file. "
|
|
1623
1647
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saltcorn/server",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.1-beta.0",
|
|
4
4
|
"description": "Server app for Saltcorn, open-source no-code platform",
|
|
5
5
|
"homepage": "https://saltcorn.com",
|
|
6
6
|
"main": "index.js",
|
|
@@ -8,14 +8,14 @@
|
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"@aws-sdk/client-s3": "^3.735.0",
|
|
10
10
|
"@dr.pogodin/csurf": "1.15.0",
|
|
11
|
-
"@saltcorn/admin-models": "1.3.
|
|
12
|
-
"@saltcorn/base-plugin": "1.3.
|
|
13
|
-
"@saltcorn/builder": "1.3.
|
|
14
|
-
"@saltcorn/data": "1.3.
|
|
15
|
-
"@saltcorn/filemanager": "1.3.
|
|
16
|
-
"@saltcorn/markup": "1.3.
|
|
17
|
-
"@saltcorn/plugins-loader": "1.3.
|
|
18
|
-
"@saltcorn/sbadmin2": "1.3.
|
|
11
|
+
"@saltcorn/admin-models": "1.3.1-beta.0",
|
|
12
|
+
"@saltcorn/base-plugin": "1.3.1-beta.0",
|
|
13
|
+
"@saltcorn/builder": "1.3.1-beta.0",
|
|
14
|
+
"@saltcorn/data": "1.3.1-beta.0",
|
|
15
|
+
"@saltcorn/filemanager": "1.3.1-beta.0",
|
|
16
|
+
"@saltcorn/markup": "1.3.1-beta.0",
|
|
17
|
+
"@saltcorn/plugins-loader": "1.3.1-beta.0",
|
|
18
|
+
"@saltcorn/sbadmin2": "1.3.1-beta.0",
|
|
19
19
|
"@socket.io/cluster-adapter": "^0.2.1",
|
|
20
20
|
"@socket.io/sticky": "^1.0.1",
|
|
21
21
|
"adm-zip": "0.5.16",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
},
|
|
73
73
|
"repository": "github:saltcorn/saltcorn",
|
|
74
74
|
"devDependencies": {
|
|
75
|
-
"jest": "
|
|
75
|
+
"jest": "29.7.0",
|
|
76
76
|
"jest-environment-jsdom": "29.7.0",
|
|
77
77
|
"supertest": "7.0.0"
|
|
78
78
|
},
|
package/public/gridedit.js
CHANGED
|
@@ -109,7 +109,8 @@ function jsonFormatter(cell, formatterParams, onRendered) {
|
|
|
109
109
|
function versionsFormatter(cell, formatterParams, onRendered) {
|
|
110
110
|
const value = cell.getValue();
|
|
111
111
|
const row = cell.getRow().getData();
|
|
112
|
-
|
|
112
|
+
const pk_name = formatterParams?.pk_name || "id";
|
|
113
|
+
return $(`<a href="/list/_versions/${window.tabulator_table_name}/${row[pk_name]}">
|
|
113
114
|
${value || 0} <i class="fa-sm fas fa-list"></i></a>`)[0];
|
|
114
115
|
}
|
|
115
116
|
function colorEditor(cell, onRendered, success, cancel) {
|
|
@@ -2428,3 +2428,117 @@ const observer = new IntersectionObserver(
|
|
|
2428
2428
|
document.querySelectorAll("[data-animate]").forEach((element) => {
|
|
2429
2429
|
observer.observe(element);
|
|
2430
2430
|
});
|
|
2431
|
+
|
|
2432
|
+
function isPWA() {
|
|
2433
|
+
if (!window.matchMedia) return false;
|
|
2434
|
+
const isStandaloneDisplay = window.matchMedia(
|
|
2435
|
+
"(display-mode: standalone)"
|
|
2436
|
+
).matches;
|
|
2437
|
+
const isStandaloneNavigator = window.navigator.standalone === true; // iOS Safari
|
|
2438
|
+
const isTrustedDisplayMode = ["fullscreen", "standalone", "minimal-ui"].some(
|
|
2439
|
+
(mode) => window.matchMedia(`(display-mode: ${mode})`).matches
|
|
2440
|
+
);
|
|
2441
|
+
return isStandaloneDisplay || isStandaloneNavigator || isTrustedDisplayMode;
|
|
2442
|
+
}
|
|
2443
|
+
|
|
2444
|
+
const subscribeHelper = (config, swReg) => {
|
|
2445
|
+
if (!config.vapidPublicKey) throw new Error("VAPID public key is missing");
|
|
2446
|
+
|
|
2447
|
+
function urlBase64ToUint8Array(base64String) {
|
|
2448
|
+
const padding = "=".repeat((4 - (base64String.length % 4)) % 4);
|
|
2449
|
+
const base64 = (base64String + padding)
|
|
2450
|
+
.replace(/\-/g, "+")
|
|
2451
|
+
.replace(/_/g, "/");
|
|
2452
|
+
|
|
2453
|
+
const rawData = atob(base64);
|
|
2454
|
+
const outputArray = new Uint8Array(rawData.length);
|
|
2455
|
+
|
|
2456
|
+
for (let i = 0; i < rawData.length; ++i) {
|
|
2457
|
+
outputArray[i] = rawData.charCodeAt(i);
|
|
2458
|
+
}
|
|
2459
|
+
return outputArray;
|
|
2460
|
+
}
|
|
2461
|
+
|
|
2462
|
+
const subscribe = async () => {
|
|
2463
|
+
const subscription = await swReg.pushManager.subscribe({
|
|
2464
|
+
userVisibleOnly: true,
|
|
2465
|
+
applicationServerKey: urlBase64ToUint8Array(config.vapidPublicKey),
|
|
2466
|
+
});
|
|
2467
|
+
return subscription;
|
|
2468
|
+
};
|
|
2469
|
+
|
|
2470
|
+
const uploadSubscription = async (subscription) => {
|
|
2471
|
+
const response = await fetch("/notifications/subscribe", {
|
|
2472
|
+
method: "POST",
|
|
2473
|
+
body: JSON.stringify(subscription),
|
|
2474
|
+
headers: {
|
|
2475
|
+
"Content-Type": "application/json",
|
|
2476
|
+
"CSRF-Token": _sc_globalCsrf,
|
|
2477
|
+
},
|
|
2478
|
+
});
|
|
2479
|
+
if (response.status === 200) {
|
|
2480
|
+
const data = await response.json();
|
|
2481
|
+
console.log("Subscription uploaded successfully:", data);
|
|
2482
|
+
} else console.error("Failed to upload subscription:", response.statusText);
|
|
2483
|
+
};
|
|
2484
|
+
|
|
2485
|
+
const removeSubscription = async (subscription) => {
|
|
2486
|
+
const response = await fetch("/notifications/remove-subscription", {
|
|
2487
|
+
method: "POST",
|
|
2488
|
+
body: JSON.stringify(subscription),
|
|
2489
|
+
headers: {
|
|
2490
|
+
"Content-Type": "application/json",
|
|
2491
|
+
"CSRF-Token": _sc_globalCsrf,
|
|
2492
|
+
},
|
|
2493
|
+
});
|
|
2494
|
+
if (response.status === 200) {
|
|
2495
|
+
console.log("Subscription removed successfully");
|
|
2496
|
+
} else {
|
|
2497
|
+
console.error("Failed to remove subscription:", response.statusText);
|
|
2498
|
+
}
|
|
2499
|
+
};
|
|
2500
|
+
|
|
2501
|
+
return {
|
|
2502
|
+
handle: async () => {
|
|
2503
|
+
const enabled = config?.enabled && config.userEnabled;
|
|
2504
|
+
let currentSub = await swReg.pushManager.getSubscription();
|
|
2505
|
+
if (!enabled) {
|
|
2506
|
+
if (currentSub) {
|
|
2507
|
+
await currentSub.unsubscribe();
|
|
2508
|
+
await removeSubscription(currentSub);
|
|
2509
|
+
}
|
|
2510
|
+
} else {
|
|
2511
|
+
if (
|
|
2512
|
+
currentSub &&
|
|
2513
|
+
!config.endpoints.find((endpoint) => endpoint === currentSub.endpoint)
|
|
2514
|
+
) {
|
|
2515
|
+
console.log(
|
|
2516
|
+
"Current subscription does not exist server-side, renewing..."
|
|
2517
|
+
);
|
|
2518
|
+
await currentSub.unsubscribe();
|
|
2519
|
+
currentSub = null;
|
|
2520
|
+
}
|
|
2521
|
+
|
|
2522
|
+
if (!currentSub) {
|
|
2523
|
+
const permission = await Notification.requestPermission();
|
|
2524
|
+
if (permission !== "granted")
|
|
2525
|
+
throw new Error(`Push permission denied ${permission}`);
|
|
2526
|
+
const newSub = await subscribe();
|
|
2527
|
+
await uploadSubscription(newSub);
|
|
2528
|
+
}
|
|
2529
|
+
}
|
|
2530
|
+
},
|
|
2531
|
+
};
|
|
2532
|
+
};
|
|
2533
|
+
|
|
2534
|
+
async function initPushNotify() {
|
|
2535
|
+
try {
|
|
2536
|
+
const webPushConfig = window.push_notify_cfg;
|
|
2537
|
+
if (webPushConfig) {
|
|
2538
|
+
const swReg = await navigator.serviceWorker.ready;
|
|
2539
|
+
await subscribeHelper(webPushConfig, swReg).handle();
|
|
2540
|
+
}
|
|
2541
|
+
} catch (error) {
|
|
2542
|
+
console.error("Push notification initialization failed:", error);
|
|
2543
|
+
}
|
|
2544
|
+
}
|
package/public/saltcorn.js
CHANGED
|
@@ -158,14 +158,16 @@ function invalidate_pagings(href) {
|
|
|
158
158
|
|
|
159
159
|
function set_state_fields(kvs, disable_pjax, e) {
|
|
160
160
|
let newhref = get_current_state_url(e);
|
|
161
|
+
const oldhref = newhref;
|
|
161
162
|
if (Object.keys(kvs).some((k) => !is_paging_param(k))) {
|
|
162
163
|
newhref = invalidate_pagings(newhref);
|
|
163
164
|
}
|
|
164
165
|
Object.entries(kvs).forEach((kv) => {
|
|
165
|
-
if (kv[1]
|
|
166
|
+
if (kv[1]?.unset && kv[1]?.unset === true)
|
|
166
167
|
newhref = removeQueryStringParameter(newhref, kv[0]);
|
|
167
168
|
else newhref = updateQueryStringParameter(newhref, kv[0], kv[1]);
|
|
168
169
|
});
|
|
170
|
+
if (newhref === oldhref) return;
|
|
169
171
|
if (disable_pjax) href_to(newhref.replace("&&", "&").replace("?&", "?"));
|
|
170
172
|
else pjax_to(newhref.replace("&&", "&").replace("?&", "?"), e);
|
|
171
173
|
}
|
|
@@ -1241,6 +1243,15 @@ window.addEventListener("beforeinstallprompt", (e) => {
|
|
|
1241
1243
|
defferedPrompt = e;
|
|
1242
1244
|
});
|
|
1243
1245
|
|
|
1246
|
+
window.addEventListener("appinstalled", async (event) => {
|
|
1247
|
+
console.log("App was installed.", event);
|
|
1248
|
+
await initPushNotify();
|
|
1249
|
+
});
|
|
1250
|
+
|
|
1251
|
+
document.addEventListener("DOMContentLoaded", async () => {
|
|
1252
|
+
await initPushNotify();
|
|
1253
|
+
});
|
|
1254
|
+
|
|
1244
1255
|
function isAndroidMobile() {
|
|
1245
1256
|
const ua = navigator.userAgent || navigator.vendor || window.opera;
|
|
1246
1257
|
return /android/i.test(ua) && /mobile/i.test(ua);
|
|
@@ -1439,14 +1450,14 @@ function cfu_translate(that) {
|
|
|
1439
1450
|
l = function (a, b) {
|
|
1440
1451
|
d = setTimeout(function () {
|
|
1441
1452
|
d = !1;
|
|
1442
|
-
if (h || c) e.apply(a, b), c && (j = +new Date());
|
|
1453
|
+
if (h || c) (e.apply(a, b), c && (j = +new Date()));
|
|
1443
1454
|
i && g.apply(a, b);
|
|
1444
1455
|
}, f);
|
|
1445
1456
|
},
|
|
1446
1457
|
k = function () {
|
|
1447
1458
|
if (!d || a) {
|
|
1448
1459
|
if (!d && !h && (!c || +new Date() - j > f))
|
|
1449
|
-
e.apply(this, arguments), c && (j = +new Date());
|
|
1460
|
+
(e.apply(this, arguments), c && (j = +new Date()));
|
|
1450
1461
|
(a || !c) && clearTimeout(d);
|
|
1451
1462
|
l(this, arguments);
|
|
1452
1463
|
}
|
package/public/serviceworker.js
CHANGED
|
@@ -3,3 +3,14 @@
|
|
|
3
3
|
self.addEventListener("fetch", function () {
|
|
4
4
|
return;
|
|
5
5
|
});
|
|
6
|
+
|
|
7
|
+
self.addEventListener("push", function (event) {
|
|
8
|
+
const data = event.data.json();
|
|
9
|
+
event.waitUntil(
|
|
10
|
+
self.registration.showNotification(data.title, {
|
|
11
|
+
body: data.body,
|
|
12
|
+
icon: data.icon,
|
|
13
|
+
badge: data.badge,
|
|
14
|
+
})
|
|
15
|
+
);
|
|
16
|
+
});
|