mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-28 18:22:40 +00:00
[backport cloud/1.36] feat: split asset_update_options_enabled into separate deletion and rename flags (#7888)
Backport of #7864 to `cloud/1.36` Automatically created by backport workflow. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7888-backport-cloud-1-36-feat-split-asset_update_options_enabled-into-separate-deletion-and-2e26d73d365081edb755ede860c53f97) by [Unito](https://www.unito.io) Co-authored-by: Luke Mino-Altherr <luke@comfy.org> Co-authored-by: Amp <amp@ampcode.com>
This commit is contained in:
@@ -11,7 +11,8 @@ export enum ServerFeatureFlag {
|
|||||||
MAX_UPLOAD_SIZE = 'max_upload_size',
|
MAX_UPLOAD_SIZE = 'max_upload_size',
|
||||||
MANAGER_SUPPORTS_V4 = 'extension.manager.supports_v4',
|
MANAGER_SUPPORTS_V4 = 'extension.manager.supports_v4',
|
||||||
MODEL_UPLOAD_BUTTON_ENABLED = 'model_upload_button_enabled',
|
MODEL_UPLOAD_BUTTON_ENABLED = 'model_upload_button_enabled',
|
||||||
ASSET_UPDATE_OPTIONS_ENABLED = 'asset_update_options_enabled',
|
ASSET_DELETION_ENABLED = 'asset_deletion_enabled',
|
||||||
|
ASSET_RENAME_ENABLED = 'asset_rename_enabled',
|
||||||
PRIVATE_MODELS_ENABLED = 'private_models_enabled',
|
PRIVATE_MODELS_ENABLED = 'private_models_enabled',
|
||||||
ONBOARDING_SURVEY_ENABLED = 'onboarding_survey_enabled',
|
ONBOARDING_SURVEY_ENABLED = 'onboarding_survey_enabled',
|
||||||
HUGGINGFACE_MODEL_IMPORT_ENABLED = 'huggingface_model_import_enabled',
|
HUGGINGFACE_MODEL_IMPORT_ENABLED = 'huggingface_model_import_enabled',
|
||||||
@@ -42,14 +43,16 @@ export function useFeatureFlags() {
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
get assetUpdateOptionsEnabled() {
|
get assetDeletionEnabled() {
|
||||||
// Check remote config first (from /api/features), fall back to websocket feature flags
|
|
||||||
return (
|
return (
|
||||||
remoteConfig.value.asset_update_options_enabled ??
|
remoteConfig.value.asset_deletion_enabled ??
|
||||||
api.getServerFeature(
|
api.getServerFeature(ServerFeatureFlag.ASSET_DELETION_ENABLED, false)
|
||||||
ServerFeatureFlag.ASSET_UPDATE_OPTIONS_ENABLED,
|
)
|
||||||
false
|
},
|
||||||
)
|
get assetRenameEnabled() {
|
||||||
|
return (
|
||||||
|
remoteConfig.value.asset_rename_enabled ??
|
||||||
|
api.getServerFeature(ServerFeatureFlag.ASSET_RENAME_ENABLED, false)
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
get privateModelsEnabled() {
|
get privateModelsEnabled() {
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
<AssetBadgeGroup :badges="asset.badges" />
|
<AssetBadgeGroup :badges="asset.badges" />
|
||||||
<IconGroup
|
<IconGroup
|
||||||
v-if="flags.assetUpdateOptionsEnabled && !(asset.is_immutable ?? true)"
|
v-if="showAssetOptions"
|
||||||
:class="
|
:class="
|
||||||
cn(
|
cn(
|
||||||
'absolute top-2 right-2 invisible group-hover:visible',
|
'absolute top-2 right-2 invisible group-hover:visible',
|
||||||
@@ -44,6 +44,7 @@
|
|||||||
<MoreButton ref="dropdown-menu-button" size="sm">
|
<MoreButton ref="dropdown-menu-button" size="sm">
|
||||||
<template #default>
|
<template #default>
|
||||||
<Button
|
<Button
|
||||||
|
v-if="flags.assetRenameEnabled"
|
||||||
variant="secondary"
|
variant="secondary"
|
||||||
size="md"
|
size="md"
|
||||||
class="justify-start"
|
class="justify-start"
|
||||||
@@ -53,6 +54,7 @@
|
|||||||
<span>{{ $t('g.rename') }}</span>
|
<span>{{ $t('g.rename') }}</span>
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
|
v-if="flags.assetDeletionEnabled"
|
||||||
variant="secondary"
|
variant="secondary"
|
||||||
size="md"
|
size="md"
|
||||||
class="justify-start"
|
class="justify-start"
|
||||||
@@ -160,6 +162,12 @@ const deletedLocal = ref(false)
|
|||||||
|
|
||||||
const displayName = computed(() => newNameRef.value ?? asset.name)
|
const displayName = computed(() => newNameRef.value ?? asset.name)
|
||||||
|
|
||||||
|
const showAssetOptions = computed(
|
||||||
|
() =>
|
||||||
|
(flags.assetDeletionEnabled || flags.assetRenameEnabled) &&
|
||||||
|
!(asset.is_immutable ?? true)
|
||||||
|
)
|
||||||
|
|
||||||
const tooltipDelay = computed<number>(() =>
|
const tooltipDelay = computed<number>(() =>
|
||||||
settingStore.get('LiteGraph.Node.TooltipDelay')
|
settingStore.get('LiteGraph.Node.TooltipDelay')
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -35,7 +35,8 @@ export type RemoteConfig = {
|
|||||||
firebase_config?: FirebaseRuntimeConfig
|
firebase_config?: FirebaseRuntimeConfig
|
||||||
telemetry_disabled_events?: TelemetryEventName[]
|
telemetry_disabled_events?: TelemetryEventName[]
|
||||||
model_upload_button_enabled?: boolean
|
model_upload_button_enabled?: boolean
|
||||||
asset_update_options_enabled?: boolean
|
asset_deletion_enabled?: boolean
|
||||||
|
asset_rename_enabled?: boolean
|
||||||
private_models_enabled?: boolean
|
private_models_enabled?: boolean
|
||||||
onboarding_survey_enabled?: boolean
|
onboarding_survey_enabled?: boolean
|
||||||
huggingface_model_import_enabled?: boolean
|
huggingface_model_import_enabled?: boolean
|
||||||
|
|||||||
Reference in New Issue
Block a user