fix(workflows): remove copy filename from the card context menu

This commit is contained in:
Will Miao
2026-10-31 08:31:39 +08:00
parent 0b56ad6422
commit 9daa9d7dd8
14 changed files with 0 additions and 34 deletions
-3
View File
@@ -1005,9 +1005,6 @@ word (`Verwaltung` / `gestion` / `gestión` / `управление` / `ניהו
Latin/Cyrillic/Hebrew locales use ASCII (fr with its space, ` : `). The `restoring` loading
line follows each locale's existing "… in progress" shape (`recipesPathMigrating`).
- Card actions name the workflow explicitly.
"Copy Workflow Filename": zh-CN 复制工作流文件名 · zh-TW 複製工作流檔名 · ja ワークフローファイル名をコピー ·
ko 워크플로 파일명 복사 · fr Copier le nom de fichier du workflow · de Workflow-Dateinamen kopieren ·
es Copiar nombre de archivo del workflow · ru Копировать имя файла workflow · he העתק שם קובץ workflow.
"Move Workflow to Folder": zh-CN 将工作流移动到文件夹 · zh-TW 將工作流移動到資料夾 · ja ワークフローをフォルダに移動 ·
ko 워크플로를 폴더로 이동 · fr Déplacer le workflow vers un dossier · de Workflow in Ordner verschieben ·
es Mover workflow a carpeta · ru Переместить workflow в папку · he העבר workflow לתיקייה.
-1
View File
@@ -1483,7 +1483,6 @@
"updateFromComfy": "Von ComfyUI aktualisieren",
"copyWorkflow": "Workflow kopieren",
"restoreDownloaded": "Heruntergeladene Version wiederherstellen",
"copyFilename": "Workflow-Dateinamen kopieren",
"moveWorkflow": "Workflow in Ordner verschieben",
"deleteWorkflow": "Workflow löschen"
},
-1
View File
@@ -1483,7 +1483,6 @@
"updateFromComfy": "Update from ComfyUI",
"copyWorkflow": "Copy Workflow",
"restoreDownloaded": "Restore Downloaded Version",
"copyFilename": "Copy Workflow Filename",
"moveWorkflow": "Move Workflow to Folder",
"deleteWorkflow": "Delete Workflow"
},
-1
View File
@@ -1483,7 +1483,6 @@
"updateFromComfy": "Actualizar desde ComfyUI",
"copyWorkflow": "Copiar workflow",
"restoreDownloaded": "Restaurar versión descargada",
"copyFilename": "Copiar nombre de archivo del workflow",
"moveWorkflow": "Mover workflow a carpeta",
"deleteWorkflow": "Eliminar workflow"
},
-1
View File
@@ -1483,7 +1483,6 @@
"updateFromComfy": "Mettre à jour depuis ComfyUI",
"copyWorkflow": "Copier le workflow",
"restoreDownloaded": "Restaurer la version téléchargée",
"copyFilename": "Copier le nom de fichier du workflow",
"moveWorkflow": "Déplacer le workflow vers un dossier",
"deleteWorkflow": "Supprimer le workflow"
},
-1
View File
@@ -1483,7 +1483,6 @@
"updateFromComfy": "עדכן מ-ComfyUI",
"copyWorkflow": "העתק workflow",
"restoreDownloaded": "שחזר את הגרסה שהורדה",
"copyFilename": "העתק שם קובץ workflow",
"moveWorkflow": "העבר workflow לתיקייה",
"deleteWorkflow": "מחק workflow"
},
-1
View File
@@ -1483,7 +1483,6 @@
"updateFromComfy": "ComfyUIから更新",
"copyWorkflow": "ワークフローをコピー",
"restoreDownloaded": "ダウンロード済みバージョンを復元",
"copyFilename": "ワークフローファイル名をコピー",
"moveWorkflow": "ワークフローをフォルダに移動",
"deleteWorkflow": "ワークフローを削除"
},
-1
View File
@@ -1483,7 +1483,6 @@
"updateFromComfy": "ComfyUI에서 업데이트",
"copyWorkflow": "워크플로 복사",
"restoreDownloaded": "다운로드한 버전 복원",
"copyFilename": "워크플로 파일명 복사",
"moveWorkflow": "워크플로를 폴더로 이동",
"deleteWorkflow": "워크플로 삭제"
},
-1
View File
@@ -1483,7 +1483,6 @@
"updateFromComfy": "Обновить из ComfyUI",
"copyWorkflow": "Копировать workflow",
"restoreDownloaded": "Восстановить загруженную версию",
"copyFilename": "Копировать имя файла workflow",
"moveWorkflow": "Переместить workflow в папку",
"deleteWorkflow": "Удалить workflow"
},
-1
View File
@@ -1483,7 +1483,6 @@
"updateFromComfy": "从 ComfyUI 更新",
"copyWorkflow": "复制工作流",
"restoreDownloaded": "恢复已下载版本",
"copyFilename": "复制工作流文件名",
"moveWorkflow": "将工作流移动到文件夹",
"deleteWorkflow": "删除工作流"
},
-1
View File
@@ -1483,7 +1483,6 @@
"updateFromComfy": "從 ComfyUI 更新",
"copyWorkflow": "複製工作流",
"restoreDownloaded": "還原已下載版本",
"copyFilename": "複製工作流檔名",
"moveWorkflow": "將工作流移動到資料夾",
"deleteWorkflow": "刪除工作流"
},
@@ -4,7 +4,6 @@ import { getModelApiClient, resetAndReload } from '../../api/modelApiFactory.js'
import { moveManager } from '../../managers/MoveManager.js';
import { showDeleteModal } from '../../utils/modalUtils.js';
import { copyWorkflowToClipboard, restoreWorkflow, sendWorkflowToComfy, updateWorkflowFromComfy } from '../../utils/workflowActions.js';
import { copyToClipboard } from '../../utils/uiHelpers.js';
import { state } from '../../state/index.js';
export class WorkflowContextMenu extends BaseContextMenu {
@@ -117,13 +116,6 @@ export class WorkflowContextMenu extends BaseContextMenu {
case 'delete':
showDeleteModal(this.currentCard.dataset.filepath);
break;
case 'copyname':
// Copy the file name itself. The card's copy icon copies the
// workflow document, which "Copy Workflow" already covers.
if (this.currentCard.dataset.file_name) {
copyToClipboard(this.currentCard.dataset.file_name);
}
break;
case 'refresh-metadata':
// Refresh metadata from CivitAI
apiClient.refreshSingleModelMetadata(this.currentCard.dataset.filepath);
-3
View File
@@ -80,9 +80,6 @@
<div class="context-menu-item" data-action="refresh-metadata"><i class="fas fa-sync"></i> {{ t('loras.contextMenu.refreshMetadata') }}</div>
<div class="context-menu-item" data-action="relink-civitai"><i class="fas fa-external-link-alt"></i> {{ t('loras.contextMenu.linkCivitai') }}</div>
<div class="context-menu-separator menu-section-break"></div>
<!-- Workflow -->
<div class="context-menu-item" data-action="copyname"><i class="fas fa-copy"></i> {{ t('workflows.contextMenu.copyFilename') }}</div>
<div class="context-menu-separator menu-section-break"></div>
<!-- Media / Preview -->
<div class="context-menu-item" data-action="replace-preview"><i class="fas fa-image"></i> {{ t('loras.contextMenu.replacePreview') }}</div>
<div class="context-menu-separator menu-section-break"></div>
@@ -111,16 +111,6 @@ describe('WorkflowContextMenu', () => {
);
});
it('copies the workflow file name from the copy-filename entry', () => {
card.dataset.file_name = 'flow.json';
menu.handleMenuAction('copyname');
expect(copyToClipboardMock).toHaveBeenCalledWith('flow.json');
// The document copy belongs to the dedicated "Copy Workflow" entry.
expect(fetchWorkflowContentMock).not.toHaveBeenCalled();
});
it('shows an error toast when the workflow content cannot be loaded', async () => {
fetchWorkflowContentMock.mockRejectedValue(new Error('not_a_workflow'));