diff --git a/frontend/src/lib/components/DraftBadge.svelte b/frontend/src/lib/components/DraftBadge.svelte
new file mode 100644
index 0000000000..c84b319798
--- /dev/null
+++ b/frontend/src/lib/components/DraftBadge.svelte
@@ -0,0 +1,38 @@
+
+
+{#if is_draft}
+ {#if draft_only}
+
+ {#snippet text()}
+ Never deployed and is only a draft
+ {/snippet}
+ Draft only
+
+ {:else}
+
+ {#snippet text()}
+ Is deployed and has a draft
+ {/snippet}
+ +Draft
+
+ {/if}
+{/if}
diff --git a/frontend/src/lib/components/common/table/AppRow.svelte b/frontend/src/lib/components/common/table/AppRow.svelte
index 11d09a69ca..a3b00292f7 100644
--- a/frontend/src/lib/components/common/table/AppRow.svelte
+++ b/frontend/src/lib/components/common/table/AppRow.svelte
@@ -3,6 +3,7 @@
import Dropdown from '$lib/components/DropdownV2.svelte'
import type MoveDrawer from '$lib/components/MoveDrawer.svelte'
import SharedBadge from '$lib/components/SharedBadge.svelte'
+ import DraftBadge from '$lib/components/DraftBadge.svelte'
import type ShareModal from '$lib/components/ShareModal.svelte'
import { AppService, type ListableApp } from '$lib/gen'
import { userStore, workspaceStore } from '$lib/stores'
@@ -114,6 +115,7 @@
Raw
{/if}
+
{#if app.labels?.length}
{#each app.labels.slice(0, 3) as label}
diff --git a/frontend/src/lib/components/common/table/FlowRow.svelte b/frontend/src/lib/components/common/table/FlowRow.svelte
index d50207a27a..e83ed43985 100644
--- a/frontend/src/lib/components/common/table/FlowRow.svelte
+++ b/frontend/src/lib/components/common/table/FlowRow.svelte
@@ -5,6 +5,7 @@
import type MoveDrawer from '$lib/components/MoveDrawer.svelte'
import ScheduleEditor from '$lib/components/triggers/schedules/ScheduleEditor.svelte'
import SharedBadge from '$lib/components/SharedBadge.svelte'
+ import DraftBadge from '$lib/components/DraftBadge.svelte'
import type ShareModal from '$lib/components/ShareModal.svelte'
import { FlowService, type Flow } from '$lib/gen'
import { userStore, workspaceStore } from '$lib/stores'
@@ -39,7 +40,7 @@
import { isCloudHosted } from '$lib/cloud'
interface Props {
- flow: Flow & { draft_only?: boolean; canWrite: boolean }
+ flow: Flow & { draft_only?: boolean; is_draft?: boolean; canWrite: boolean }
marked: string | undefined
shareModal: ShareModal
moveDrawer: MoveDrawer
@@ -133,6 +134,7 @@
archived
{/if}
+
{#if flow.labels?.length}
{#each flow.labels.slice(0, 3) as label}
diff --git a/frontend/src/lib/components/common/table/ScriptRow.svelte b/frontend/src/lib/components/common/table/ScriptRow.svelte
index 794b35e188..9eb295a621 100644
--- a/frontend/src/lib/components/common/table/ScriptRow.svelte
+++ b/frontend/src/lib/components/common/table/ScriptRow.svelte
@@ -5,6 +5,7 @@
import type MoveDrawer from '$lib/components/MoveDrawer.svelte'
import ScheduleEditor from '$lib/components/triggers/schedules/ScheduleEditor.svelte'
import SharedBadge from '$lib/components/SharedBadge.svelte'
+ import DraftBadge from '$lib/components/DraftBadge.svelte'
import type ShareModal from '$lib/components/ShareModal.svelte'
import { ScriptService, type Script } from '$lib/gen'
@@ -51,7 +52,7 @@
import { isCloudHosted } from '$lib/cloud'
interface Props {
- script: Script & { canWrite: boolean; use_codebase: boolean }
+ script: Script & { canWrite: boolean; use_codebase: boolean; is_draft?: boolean }
marked: string | undefined
shareModal: ShareModal
moveDrawer: MoveDrawer
@@ -180,6 +181,7 @@
>
{/if}
+
{#if script.labels?.length}
{#each script.labels.slice(0, 3) as label}