- {#each Object.values(schema) as column}
+ {#each Object.entries(schema) as [name, column]}
{column.name}
@@ -83,6 +84,7 @@
disabled={useProductionValue}
label="Value"
value={useProductionValue ? productionValue : developmentValue}
+ autocomplete="new-password"
/>
diff --git a/packages/builder/src/components/portal/onboarding/tours.js b/packages/builder/src/components/portal/onboarding/tours.js
index 8acd5bb8ce..d1485c4872 100644
--- a/packages/builder/src/components/portal/onboarding/tours.js
+++ b/packages/builder/src/components/portal/onboarding/tours.js
@@ -62,6 +62,7 @@ const getTours = () => {
id: TOUR_STEP_KEYS.BUILDER_APP_PUBLISH,
title: "Publish",
layout: OnboardingPublish,
+ route: "/builder/app/:application/design",
query: ".toprightnav #builder-app-publish-button",
onLoad: () => {
tourEvent(TOUR_STEP_KEYS.BUILDER_APP_PUBLISH)
diff --git a/packages/builder/src/pages/builder/app/[application]/design/[screenId]/components/[componentId]/_components/settings/ComponentSettingsSection.svelte b/packages/builder/src/pages/builder/app/[application]/design/[screenId]/components/[componentId]/_components/settings/ComponentSettingsSection.svelte
index bf8bff1292..21bed847f5 100644
--- a/packages/builder/src/pages/builder/app/[application]/design/[screenId]/components/[componentId]/_components/settings/ComponentSettingsSection.svelte
+++ b/packages/builder/src/pages/builder/app/[application]/design/[screenId]/components/[componentId]/_components/settings/ComponentSettingsSection.svelte
@@ -147,8 +147,8 @@
options: setting.options || [],
// Number fields
- min: setting.min || null,
- max: setting.max || null,
+ min: setting.min ?? null,
+ max: setting.max ?? null,
}}
{bindings}
{componentBindings}
diff --git a/packages/builder/src/pages/builder/portal/apps/onboarding/index.svelte b/packages/builder/src/pages/builder/portal/apps/onboarding/index.svelte
index b8e64ccbab..1fa64526da 100644
--- a/packages/builder/src/pages/builder/portal/apps/onboarding/index.svelte
+++ b/packages/builder/src/pages/builder/portal/apps/onboarding/index.svelte
@@ -16,6 +16,7 @@
import CreateTableModal from "components/backend/TableNavigator/modals/CreateTableModal.svelte"
import createFromScratchScreen from "builderStore/store/screenTemplates/createFromScratchScreen"
import { Roles } from "constants/backend"
+ import Spinner from "components/common/Spinner.svelte"
let name = "My first app"
let url = "my-first-app"
@@ -25,39 +26,46 @@
let plusIntegrations = {}
let integrationsLoading = true
$: getIntegrations()
+ let creationLoading = false
let uploadModal
const createApp = async useSampleData => {
+ creationLoading = true
// Create form data to create app
// This is form based and not JSON
- let data = new FormData()
- data.append("name", name.trim())
- data.append("url", url.trim())
- data.append("useTemplate", false)
+ try {
+ let data = new FormData()
+ data.append("name", name.trim())
+ data.append("url", url.trim())
+ data.append("useTemplate", false)
- if (useSampleData) {
- data.append("sampleData", true)
+ if (useSampleData) {
+ data.append("sampleData", true)
+ }
+
+ const createdApp = await API.createApp(data)
+
+ // Select Correct Application/DB in prep for creating user
+ const pkg = await API.fetchAppPackage(createdApp.instance._id)
+ await store.actions.initialise(pkg)
+ await automationStore.actions.fetch()
+ // Update checklist - in case first app
+ await admin.init()
+
+ // Create user
+ await auth.setInitInfo({})
+
+ let defaultScreenTemplate = createFromScratchScreen.create()
+ defaultScreenTemplate.routing.route = "/home"
+ defaultScreenTemplate.routing.roldId = Roles.BASIC
+ await store.actions.screens.save(defaultScreenTemplate)
+
+ appId = createdApp.instance._id
+ } catch (e) {
+ creationLoading = false
+ throw e
}
-
- const createdApp = await API.createApp(data)
-
- // Select Correct Application/DB in prep for creating user
- const pkg = await API.fetchAppPackage(createdApp.instance._id)
- await store.actions.initialise(pkg)
- await automationStore.actions.fetch()
- // Update checklist - in case first app
- await admin.init()
-
- // Create user
- await auth.setInitInfo({})
-
- let defaultScreenTemplate = createFromScratchScreen.create()
- defaultScreenTemplate.routing.route = "/home"
- defaultScreenTemplate.routing.roldId = Roles.BASIC
- await store.actions.screens.save(defaultScreenTemplate)
-
- appId = createdApp.instance._id
}
const getIntegrations = async () => {
@@ -102,6 +110,7 @@
goToApp()
} catch (e) {
console.log(e)
+ creationLoading = false
notifications.error("There was a problem creating your app")
}
}
@@ -118,8 +127,10 @@
{#if stage === "name"}
(stage = "data")} />
- {:else if integrationsLoading}
- loading...
+ {:else if integrationsLoading || creationLoading}
+
+
+
{:else if stage === "data"}
(stage = "name")}>
@@ -175,6 +186,13 @@