+
+
0 ? `transform: translateX(${depth * 16}px);` : ''}
+ >
{#if customSummary}
{@render customSummary?.()}
@@ -437,11 +450,6 @@
{/if}
{@render titleBadge?.()}
- {#if !inlineBadges && languageBadge}
-
- {@render languageBadge()}
-
- {/if}
{#if !inlineBadges && tagBadges}
{@render tagBadges()}
{/if}
@@ -452,10 +460,9 @@
{#if homeTable}
{@render inlineFavorite()}
{/if}
- {#if inlineBadges && (badges || languageBadge || tagBadges || draftBadge || sharedBadge || labelBadges)}
+ {#if inlineBadges && (badges || tagBadges || draftBadge || sharedBadge || labelBadges)}
{@render badges?.()}
- {@render languageBadge?.()}
{@render tagBadges?.()}
{@render draftBadge?.()}
{@render sharedBadge?.()}
@@ -469,6 +476,9 @@
{:else}
{path}
{/if}
+ {#if pathSuffix}
+ · {pathSuffix}
+ {/if}
{/snippet}
diff --git a/frontend/src/lib/components/common/table/ScriptRow.svelte b/frontend/src/lib/components/common/table/ScriptRow.svelte
index 5c65d64acf..b72ddb1a9b 100644
--- a/frontend/src/lib/components/common/table/ScriptRow.svelte
+++ b/frontend/src/lib/components/common/table/ScriptRow.svelte
@@ -29,7 +29,6 @@
import { isDeployable } from '$lib/utils_deployable'
import type DeployWorkspaceDrawer from '$lib/components/DeployWorkspaceDrawer.svelte'
- import { LanguageIcon } from '../languageIcons'
import {
Archive,
Calendar,
@@ -52,7 +51,7 @@
import { Drawer, DrawerContent } from '..'
import NoMainFuncBadge from '$lib/components/NoMainFuncBadge.svelte'
import RowLabels from './RowLabels.svelte'
- import { isHomeTable } from '$lib/components/home/homeTable'
+ import { defaultScriptLanguages } from '$lib/scripts'
import Popover from '$lib/components/Popover.svelte'
import Tooltip from '$lib/components/Tooltip.svelte'
import { getDeployUiSettings } from '$lib/components/home/deploy_ui'
@@ -104,7 +103,6 @@
}: Props = $props()
const dispatch = createEventDispatcher()
- const iconSize = isHomeTable() ? 12 : 14
async function archiveScript(path: string): Promise
{
await ScriptService.archiveScriptByPath({ workspace: $workspaceStore!, path })
@@ -172,14 +170,12 @@
workspaceId={$workspaceStore ?? ''}
canFavorite={!script.draft_only}
editedAt={script.created_at}
+ pathSuffix={script.language
+ ? (defaultScriptLanguages[script.language] ?? script.language)
+ : undefined}
{depth}
{rowSelection}
>
- {#snippet languageBadge()}
- {#if script.language}
-
- {/if}
- {/snippet}
{#snippet tagBadges()}
{#if script.lock_error_logs}
Deployment failed
diff --git a/frontend/src/lib/components/home/ItemsList.svelte b/frontend/src/lib/components/home/ItemsList.svelte
index 3e73c4cfb1..82a2623c58 100644
--- a/frontend/src/lib/components/home/ItemsList.svelte
+++ b/frontend/src/lib/components/home/ItemsList.svelte
@@ -18,7 +18,9 @@
} from '$lib/gen'
import { resource } from 'runed'
import { getDraftItems } from '$lib/workspaceDrafts.svelte'
- import { disableHubStore, userStore, workspaceStore } from '$lib/stores'
+ import { disableHubStore, userStore, userWorkspaces, workspaceStore } from '$lib/stores'
+ import { editInForkAllowed } from '$lib/utils/editInFork'
+ import { isCloudHosted } from '$lib/cloud'
import { useOperatorBuilderFlows } from '$lib/operatorWriteRights'
import type uFuzzy from '@leeoniya/ufuzzy'
import {
@@ -67,7 +69,13 @@
import BulkActionsBar from './BulkActionsBar.svelte'
import { HomeSelection, setHomeSelection, toBulkItem } from './homeSelection.svelte'
import { HomeActivity, setHomeActivity } from './homeActivity.svelte'
- import { HOME_TABLE_BADGE_GRID, HOME_TABLE_GRID, setHomeTable } from './homeTable'
+ import {
+ HOME_TABLE_BADGE_GRID,
+ HOME_TABLE_GRID,
+ HOME_TABLE_ROW_SEPARATOR,
+ HOME_TABLE_WIDE_ACTIONS,
+ setHomeTable
+ } from './homeTable'
import Checkbox from '../common/checkbox/Checkbox.svelte'
const operatorBuilderFlows = useOperatorBuilderFlows()
@@ -1495,6 +1503,16 @@
)
: items
)
+ // A row the user cannot edit offers "Edit in fork", which needs a wider actions column.
+ let tableStyle = $derived(
+ !isCloudHosted() &&
+ editInForkAllowed($workspaceStore, $userWorkspaces) &&
+ ((treeView ? treeSource : items) ?? []).some(
+ (it) => !showEditButtons || !('canWrite' in it) || !it.canWrite
+ )
+ ? HOME_TABLE_WIDE_ACTIONS
+ : undefined
+ )
// Remount identity: only a *mode* change (workspace, selected owner, entering/leaving
// search, label filter) restructures the tree, so only those key the {#key} remount.
// A sort/archive/library/kind change keeps the same lazy tree and is applied in place
@@ -2111,7 +2129,7 @@
{/if}
{:else if treeView}
-