diff --git a/packages/bbui/src/Button/Button.svelte b/packages/bbui/src/Button/Button.svelte
index ad86535bfa..979ec6a728 100644
--- a/packages/bbui/src/Button/Button.svelte
+++ b/packages/bbui/src/Button/Button.svelte
@@ -28,6 +28,7 @@
class:spectrum-Button--quiet={quiet}
class:new-styles={newStyles}
class:active
+ class:disabled
class="spectrum-Button spectrum-Button--size{size.toUpperCase()}"
{disabled}
data-cy={dataCy}
@@ -108,7 +109,10 @@
border-color: transparent;
color: var(--spectrum-global-color-gray-900);
}
- .spectrum-Button--secondary.new-styles:hover {
+ .spectrum-Button--secondary.new-styles:not(.disabled):hover {
background: var(--spectrum-global-color-gray-300);
}
+ .spectrum-Button--secondary.new-styles.disabled {
+ color: var(--spectrum-global-color-gray-500);
+ }
diff --git a/packages/builder/src/components/common/AppLockModal.svelte b/packages/builder/src/components/common/AppLockModal.svelte
index 4a708fbd83..74e1b12615 100644
--- a/packages/builder/src/components/common/AppLockModal.svelte
+++ b/packages/builder/src/components/common/AppLockModal.svelte
@@ -57,8 +57,8 @@
}
-
- {#if lockedBy}
+{#if lockedBy}
+
- {/if}
-
-
-{#key app}
-
-
-
-
-
- Apps are locked to prevent work from being lost from overlapping
- changes between your team.
-
- {#if lockedByYou && getExpiryDuration(app) > 0}
-
- {processStringSync(
- "This lock will expire in {{ duration time 'millisecond' }} from now. This lock will expire in This lock will expire in ",
- {
- time: getExpiryDuration(app),
- }
- )}
-
- {/if}
-
-
- {
- appLockModal.hide()
- }}
- >
- {lockedBy && !lockedByYou ? "Done" : "Cancel"}
-
- {#if lockedByYou}
- {
- releaseLock()
- appLockModal.hide()
- }}
- >
- {#if processing}
-
- {:else}
- Release Lock
- {/if}
-
- {/if}
-
-
-
-
-
-{/key}
+{/if}
+
+
+
+
+
+ Apps are locked to prevent work being lost from overlapping changes
+ between your team.
+
+ {#if lockedByYou && getExpiryDuration(app) > 0}
+
+ {processStringSync(
+ "This lock will expire in {{ duration time 'millisecond' }} from now.",
+ {
+ time: getExpiryDuration(app),
+ }
+ )}
+
+ {/if}
+
+
+ {
+ appLockModal.hide()
+ }}
+ >
+ {lockedBy && !lockedByYou ? "Done" : "Cancel"}
+
+ {#if lockedByYou}
+ {
+ releaseLock()
+ appLockModal.hide()
+ }}
+ >
+ {#if processing}
+
+ {:else}
+ Release Lock
+ {/if}
+
+ {/if}
+
+
+
+
+
diff --git a/packages/builder/src/pages/builder/portal/overview/[appId]/index.svelte b/packages/builder/src/pages/builder/portal/overview/[appId]/index.svelte
new file mode 100644
index 0000000000..437a0663c0
--- /dev/null
+++ b/packages/builder/src/pages/builder/portal/overview/[appId]/index.svelte
@@ -0,0 +1,4 @@
+
diff --git a/packages/builder/src/pages/builder/portal/overview/_components/OverviewTab.svelte b/packages/builder/src/pages/builder/portal/overview/[appId]/overview.svelte
similarity index 78%
rename from packages/builder/src/pages/builder/portal/overview/_components/OverviewTab.svelte
rename to packages/builder/src/pages/builder/portal/overview/[appId]/overview.svelte
index 37c45e7854..385784ff2d 100644
--- a/packages/builder/src/pages/builder/portal/overview/_components/OverviewTab.svelte
+++ b/packages/builder/src/pages/builder/portal/overview/[appId]/overview.svelte
@@ -1,47 +1,54 @@
-
+
@@ -77,7 +115,7 @@
Published
{:else}
- Unpublished
+ Unpublished
{/if}
@@ -92,7 +130,7 @@
}
)}
{#if isPublished}
- - Unpublish
+ - Unpublish
{/if}
{/if}
{#if !deployments?.length}
@@ -127,10 +165,10 @@
{/if}
{
- navigateTab("Settings")
+ $goto("../version")
}}
dataCy={"app-version"}
>
@@ -142,9 +180,7 @@
-
{
- if (typeof navigateTab === "function") {
- navigateTab("Settings")
- }
+ $goto("../version")
}}
>
Update
@@ -160,7 +196,7 @@
title={"Access"}
showIcon={true}
action={() => {
- navigateTab("Access")
+ $goto("../access")
}}
dataCy={"access"}
>
@@ -211,7 +247,7 @@
{
- navigateTab("Automation History")
+ $goto("../automation-history")
}}
dataCy={"automation-history"}
>
@@ -237,7 +273,7 @@
{
- navigateTab("Backups")
+ $goto("../backups")
}}
dataCy={"backups"}
>
@@ -248,6 +284,16 @@
+
+ Are you sure you want to unpublish the app {app?.name} ?
+
+
diff --git a/packages/builder/src/pages/builder/portal/overview/_components/AccessTab.svelte b/packages/builder/src/pages/builder/portal/overview/_components/AccessTab.svelte
deleted file mode 100644
index 71a86f2fca..0000000000
--- a/packages/builder/src/pages/builder/portal/overview/_components/AccessTab.svelte
+++ /dev/null
@@ -1,223 +0,0 @@
-
-
-
-
- {#if appGroups.length || appUsers.length}
-
-
Access
-
-
- Assign users and groups to your app and define their access here
-
-
- Assign access
-
-
-
- {#if $licensing.groupsEnabled && appGroups.length}
-
- {#each appGroups as group}
-
- updateGroupRole(e.detail, group)}
- autoWidth
- quiet
- value={group.roles[
- groups.actions
- .getGroupAppIds(group)
- .find(x => x === fixedAppId)
- ]}
- allowPublic={false}
- />
- removeGroup(group)}
- hoverable
- size="S"
- name="Close"
- />
-
- {/each}
-
- {/if}
- {#if appUsers.length}
-
-
- {#each appUsers as user}
-
- updateUserRole(e.detail, user)}
- autoWidth
- quiet
- value={user.roles[
- Object.keys(user.roles).find(x => x === fixedAppId)
- ]}
- allowPublic={false}
- />
- removeUser(user)}
- hoverable
- size="S"
- name="Close"
- />
-
- {/each}
-
-
-
- {/if}
- {:else}
-
-
- No users assigned
-
-
- Assign users/groups to your app and set their access here
-
-
-
- assignmentModal.show()}
- cta
- icon="UserArrow"
- >
- Assign access
-
-
-
-
- {/if}
-
-
-
-
-
-
-
-
diff --git a/packages/builder/src/pages/builder/portal/overview/_layout.svelte b/packages/builder/src/pages/builder/portal/overview/_layout.svelte
new file mode 100644
index 0000000000..6427a25f4f
--- /dev/null
+++ b/packages/builder/src/pages/builder/portal/overview/_layout.svelte
@@ -0,0 +1,20 @@
+
+
+{#if loaded}
+
+{/if}
diff --git a/packages/builder/src/stores/portal/index.js b/packages/builder/src/stores/portal/index.js
index 5406ddc3dc..81d26b900e 100644
--- a/packages/builder/src/stores/portal/index.js
+++ b/packages/builder/src/stores/portal/index.js
@@ -10,3 +10,4 @@ export { licensing } from "./licensing"
export { groups } from "./groups"
export { plugins } from "./plugins"
export { backups } from "./backups"
+export { overview } from "./overview"
diff --git a/packages/builder/src/stores/portal/overview.js b/packages/builder/src/stores/portal/overview.js
new file mode 100644
index 0000000000..aa5dc4cac4
--- /dev/null
+++ b/packages/builder/src/stores/portal/overview.js
@@ -0,0 +1,21 @@
+import { writable, derived } from "svelte/store"
+import { apps } from "./apps"
+
+const createOverviewStore = () => {
+ const store = writable({
+ selectedAppId: null,
+ })
+ const derivedStore = derived([store, apps], ([$store, $apps]) => {
+ return {
+ ...$store,
+ selectedApp: $apps?.find(app => app.devId === $store.selectedAppId),
+ }
+ })
+
+ return {
+ update: store.update,
+ subscribe: derivedStore.subscribe,
+ }
+}
+
+export const overview = createOverviewStore()