diff --git a/browser_tests/fixtures/ComfyPage.ts b/browser_tests/fixtures/ComfyPage.ts index 8059fb4cb4..376cf32390 100644 --- a/browser_tests/fixtures/ComfyPage.ts +++ b/browser_tests/fixtures/ComfyPage.ts @@ -16,7 +16,6 @@ import { ComfyNodeSearchBox } from './components/ComfyNodeSearchBox' import { SettingDialog } from './components/SettingDialog' import { NodeLibrarySidebarTab, - QueueSidebarTab, WorkflowsSidebarTab } from './components/SidebarTab' import { Topbar } from './components/Topbar' @@ -31,7 +30,6 @@ type WorkspaceStore = ReturnType class ComfyMenu { private _nodeLibraryTab: NodeLibrarySidebarTab | null = null private _workflowsTab: WorkflowsSidebarTab | null = null - private _queueTab: QueueSidebarTab | null = null private _topbar: Topbar | null = null public readonly sideToolbar: Locator @@ -60,11 +58,6 @@ class ComfyMenu { return this._workflowsTab } - get queueTab() { - this._queueTab ??= new QueueSidebarTab(this.page) - return this._queueTab - } - get topbar() { this._topbar ??= new Topbar(this.page) return this._topbar diff --git a/browser_tests/fixtures/components/SidebarTab.ts b/browser_tests/fixtures/components/SidebarTab.ts index f3fbe42cfb..1700866f23 100644 --- a/browser_tests/fixtures/components/SidebarTab.ts +++ b/browser_tests/fixtures/components/SidebarTab.ts @@ -148,124 +148,3 @@ export class WorkflowsSidebarTab extends SidebarTab { .click() } } - -export class QueueSidebarTab extends SidebarTab { - constructor(public readonly page: Page) { - super(page, 'queue') - } - - get root() { - return this.page.locator('.sidebar-content-container', { hasText: 'Queue' }) - } - - get tasks() { - return this.root.locator('[data-virtual-grid-item]') - } - - get visibleTasks() { - return this.tasks.locator('visible=true') - } - - get clearButton() { - return this.root.locator('.clear-all-button') - } - - get collapseTasksButton() { - return this.getToggleExpandButton(false) - } - - get expandTasksButton() { - return this.getToggleExpandButton(true) - } - - get noResultsPlaceholder() { - return this.root.locator('.no-results-placeholder') - } - - get galleryImage() { - return this.page.locator('.galleria-image') - } - - private getToggleExpandButton(isExpanded: boolean) { - const iconSelector = isExpanded ? '.pi-image' : '.pi-images' - return this.root.locator(`.toggle-expanded-button ${iconSelector}`) - } - - async open() { - await super.open() - return this.root.waitFor({ state: 'visible' }) - } - - async close() { - await super.close() - await this.root.waitFor({ state: 'hidden' }) - } - - async expandTasks() { - await this.expandTasksButton.click() - await this.collapseTasksButton.waitFor({ state: 'visible' }) - } - - async collapseTasks() { - await this.collapseTasksButton.click() - await this.expandTasksButton.waitFor({ state: 'visible' }) - } - - async waitForTasks() { - return Promise.all([ - this.tasks.first().waitFor({ state: 'visible' }), - this.tasks.last().waitFor({ state: 'visible' }) - ]) - } - - async scrollTasks(direction: 'up' | 'down') { - const scrollToEl = - direction === 'up' ? this.tasks.last() : this.tasks.first() - await scrollToEl.scrollIntoViewIfNeeded() - await this.waitForTasks() - } - - async clearTasks() { - await this.clearButton.click() - const confirmButton = this.page.getByLabel('Delete') - await confirmButton.click() - await this.noResultsPlaceholder.waitFor({ state: 'visible' }) - } - - /** Set the width of the tab (out of 100). Must call before opening the tab */ - async setTabWidth(width: number) { - if (width < 0 || width > 100) { - throw new Error('Width must be between 0 and 100') - } - return this.page.evaluate((width) => { - localStorage.setItem('queue', JSON.stringify([width, 100 - width])) - }, width) - } - - getTaskPreviewButton(taskIndex: number) { - return this.tasks.nth(taskIndex).getByRole('button') - } - - async openTaskPreview(taskIndex: number) { - const previewButton = this.getTaskPreviewButton(taskIndex) - await previewButton.click() - return this.galleryImage.waitFor({ state: 'visible' }) - } - - getGalleryImage(imageFilename: string) { - return this.galleryImage.and(this.page.getByAltText(imageFilename)) - } - - getTaskImage(imageFilename: string) { - return this.tasks.getByAltText(imageFilename) - } - - /** Trigger the queue store and tasks to update */ - async triggerTasksUpdate() { - await this.page.evaluate(() => { - window['app']['api'].dispatchCustomEvent('status', { - exec_info: { queue_remaining: 0 } - }) - }) - } -} diff --git a/browser_tests/tests/sidebar/queue.spec.ts b/browser_tests/tests/sidebar/queue.spec.ts deleted file mode 100644 index 39e2ced6e1..0000000000 --- a/browser_tests/tests/sidebar/queue.spec.ts +++ /dev/null @@ -1,210 +0,0 @@ -import { expect } from '@playwright/test' - -import { comfyPageFixture as test } from '../../fixtures/ComfyPage' - -test.describe.skip('Queue sidebar', () => { - test.beforeEach(async ({ comfyPage }) => { - await comfyPage.setSetting('Comfy.UseNewMenu', 'Top') - }) - - test('can display tasks', async ({ comfyPage }) => { - await comfyPage.setupHistory().withTask(['example.webp']).setupRoutes() - await comfyPage.menu.queueTab.open() - await comfyPage.menu.queueTab.waitForTasks() - expect(await comfyPage.menu.queueTab.visibleTasks.count()).toBe(1) - }) - - test('can display tasks after closing then opening', async ({ - comfyPage - }) => { - await comfyPage.setupHistory().withTask(['example.webp']).setupRoutes() - await comfyPage.menu.queueTab.open() - await comfyPage.menu.queueTab.close() - await comfyPage.menu.queueTab.open() - await comfyPage.menu.queueTab.waitForTasks() - expect(await comfyPage.menu.queueTab.visibleTasks.count()).toBe(1) - }) - - test.describe('Virtual scroll', () => { - const layouts = [ - { description: 'Five columns layout', width: 95, rows: 3, cols: 5 }, - { description: 'Three columns layout', width: 55, rows: 3, cols: 3 }, - { description: 'Two columns layout', width: 40, rows: 3, cols: 2 } - ] - - test.beforeEach(async ({ comfyPage }) => { - await comfyPage - .setupHistory() - .withTask(['example.webp']) - .repeat(50) - .setupRoutes() - }) - - layouts.forEach(({ description, width, rows, cols }) => { - const preRenderedRows = 1 - const preRenderedTasks = preRenderedRows * cols * 2 - const visibleTasks = rows * cols - const expectRenderLimit = visibleTasks + preRenderedTasks - - test.describe(description, () => { - test.beforeEach(async ({ comfyPage }) => { - await comfyPage.menu.queueTab.setTabWidth(width) - await comfyPage.menu.queueTab.open() - await comfyPage.menu.queueTab.waitForTasks() - }) - - test('should not render items outside of view', async ({ - comfyPage - }) => { - const renderedCount = - await comfyPage.menu.queueTab.visibleTasks.count() - expect(renderedCount).toBeLessThanOrEqual(expectRenderLimit) - }) - - test('should teardown items after scrolling away', async ({ - comfyPage - }) => { - await comfyPage.menu.queueTab.scrollTasks('down') - const renderedCount = - await comfyPage.menu.queueTab.visibleTasks.count() - expect(renderedCount).toBeLessThanOrEqual(expectRenderLimit) - }) - - test('should re-render items after scrolling away then back', async ({ - comfyPage - }) => { - await comfyPage.menu.queueTab.scrollTasks('down') - await comfyPage.menu.queueTab.scrollTasks('up') - const renderedCount = - await comfyPage.menu.queueTab.visibleTasks.count() - expect(renderedCount).toBeLessThanOrEqual(expectRenderLimit) - }) - }) - }) - }) - - test.describe('Expand tasks', () => { - test.beforeEach(async ({ comfyPage }) => { - // 2-item batch and 3-item batch -> 3 additional items when expanded - await comfyPage - .setupHistory() - .withTask(['example.webp', 'example.webp', 'example.webp']) - .withTask(['example.webp', 'example.webp']) - .setupRoutes() - await comfyPage.menu.queueTab.open() - await comfyPage.menu.queueTab.waitForTasks() - }) - - test('can expand tasks with multiple outputs', async ({ comfyPage }) => { - const initialCount = await comfyPage.menu.queueTab.visibleTasks.count() - await comfyPage.menu.queueTab.expandTasks() - expect(await comfyPage.menu.queueTab.visibleTasks.count()).toBe( - initialCount + 3 - ) - }) - - test('can collapse flat tasks', async ({ comfyPage }) => { - const initialCount = await comfyPage.menu.queueTab.visibleTasks.count() - await comfyPage.menu.queueTab.expandTasks() - await comfyPage.menu.queueTab.collapseTasks() - expect(await comfyPage.menu.queueTab.visibleTasks.count()).toBe( - initialCount - ) - }) - }) - - test.describe('Clear tasks', () => { - test.beforeEach(async ({ comfyPage }) => { - await comfyPage - .setupHistory() - .withTask(['example.webp']) - .repeat(6) - .setupRoutes() - await comfyPage.menu.queueTab.open() - }) - - test('can clear all tasks', async ({ comfyPage }) => { - await comfyPage.menu.queueTab.clearTasks() - expect(await comfyPage.menu.queueTab.visibleTasks.count()).toBe(0) - expect( - await comfyPage.menu.queueTab.noResultsPlaceholder.isVisible() - ).toBe(true) - }) - - test('can load new tasks after clearing all', async ({ comfyPage }) => { - await comfyPage.menu.queueTab.clearTasks() - await comfyPage.menu.queueTab.close() - await comfyPage.setupHistory().withTask(['example.webp']).setupRoutes() - await comfyPage.menu.queueTab.open() - await comfyPage.menu.queueTab.waitForTasks() - expect(await comfyPage.menu.queueTab.visibleTasks.count()).toBe(1) - }) - }) - - test.describe('Gallery', () => { - const firstImage = 'example.webp' - const secondImage = 'image32x32.webp' - - test.beforeEach(async ({ comfyPage }) => { - await comfyPage - .setupHistory() - .withTask([secondImage]) - .withTask([firstImage]) - .setupRoutes() - await comfyPage.menu.queueTab.open() - await comfyPage.menu.queueTab.waitForTasks() - await comfyPage.menu.queueTab.openTaskPreview(0) - }) - - test('displays gallery image after opening task preview', async ({ - comfyPage - }) => { - await comfyPage.nextFrame() - await expect( - comfyPage.menu.queueTab.getGalleryImage(firstImage) - ).toBeVisible() - }) - - test('maintains active gallery item when new tasks are added', async ({ - comfyPage - }) => { - // Add a new task while the gallery is still open - const newImage = 'image64x64.webp' - comfyPage.setupHistory().withTask([newImage]) - await comfyPage.menu.queueTab.triggerTasksUpdate() - await comfyPage.page.waitForTimeout(500) - const newTask = comfyPage.menu.queueTab.tasks.getByAltText(newImage) - await newTask.waitFor({ state: 'visible' }) - // The active gallery item should still be the initial image - await expect( - comfyPage.menu.queueTab.getGalleryImage(firstImage) - ).toBeVisible() - }) - - test.describe('Gallery navigation', () => { - const paths: { - description: string - path: ('Right' | 'Left')[] - end: string - }[] = [ - { description: 'Right', path: ['Right'], end: secondImage }, - { description: 'Left', path: ['Right', 'Left'], end: firstImage }, - { description: 'Left wrap', path: ['Left'], end: secondImage }, - { description: 'Right wrap', path: ['Right', 'Right'], end: firstImage } - ] - - paths.forEach(({ description, path, end }) => { - test(`can navigate gallery ${description}`, async ({ comfyPage }) => { - for (const direction of path) - await comfyPage.page.keyboard.press(`Arrow${direction}`, { - delay: 256 - }) - await comfyPage.nextFrame() - await expect( - comfyPage.menu.queueTab.getGalleryImage(end) - ).toBeVisible() - }) - }) - }) - }) -}) diff --git a/browser_tests/tests/vueNodes/groups/groups.spec.ts-snapshots/vue-groups-create-group-chromium-linux.png b/browser_tests/tests/vueNodes/groups/groups.spec.ts-snapshots/vue-groups-create-group-chromium-linux.png index 7630c0346b..de010003e5 100644 Binary files a/browser_tests/tests/vueNodes/groups/groups.spec.ts-snapshots/vue-groups-create-group-chromium-linux.png and b/browser_tests/tests/vueNodes/groups/groups.spec.ts-snapshots/vue-groups-create-group-chromium-linux.png differ diff --git a/browser_tests/tests/vueNodes/groups/groups.spec.ts-snapshots/vue-groups-fit-to-contents-chromium-linux.png b/browser_tests/tests/vueNodes/groups/groups.spec.ts-snapshots/vue-groups-fit-to-contents-chromium-linux.png index 821a16a5a5..fc3ecdddb3 100644 Binary files a/browser_tests/tests/vueNodes/groups/groups.spec.ts-snapshots/vue-groups-fit-to-contents-chromium-linux.png and b/browser_tests/tests/vueNodes/groups/groups.spec.ts-snapshots/vue-groups-fit-to-contents-chromium-linux.png differ diff --git a/browser_tests/tests/vueNodes/interactions/canvas/pan.spec.ts-snapshots/vue-nodes-paned-with-touch-mobile-chrome-linux.png b/browser_tests/tests/vueNodes/interactions/canvas/pan.spec.ts-snapshots/vue-nodes-paned-with-touch-mobile-chrome-linux.png index 1125e7f6e3..19d61e1027 100644 Binary files a/browser_tests/tests/vueNodes/interactions/canvas/pan.spec.ts-snapshots/vue-nodes-paned-with-touch-mobile-chrome-linux.png and b/browser_tests/tests/vueNodes/interactions/canvas/pan.spec.ts-snapshots/vue-nodes-paned-with-touch-mobile-chrome-linux.png differ diff --git a/browser_tests/tests/vueNodes/interactions/canvas/zoom.spec.ts-snapshots/zoomed-in-ctrl-shift-chromium-linux.png b/browser_tests/tests/vueNodes/interactions/canvas/zoom.spec.ts-snapshots/zoomed-in-ctrl-shift-chromium-linux.png index b801efdcb7..4b9e4d1d52 100644 Binary files a/browser_tests/tests/vueNodes/interactions/canvas/zoom.spec.ts-snapshots/zoomed-in-ctrl-shift-chromium-linux.png and b/browser_tests/tests/vueNodes/interactions/canvas/zoom.spec.ts-snapshots/zoomed-in-ctrl-shift-chromium-linux.png differ diff --git a/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-dragging-link-chromium-linux.png b/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-dragging-link-chromium-linux.png index 31851ca2e5..022577b7f6 100644 Binary files a/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-dragging-link-chromium-linux.png and b/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-dragging-link-chromium-linux.png differ diff --git a/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-input-drag-ctrl-alt-chromium-linux.png b/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-input-drag-ctrl-alt-chromium-linux.png index 8c6a4677a2..0c4c03692a 100644 Binary files a/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-input-drag-ctrl-alt-chromium-linux.png and b/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-input-drag-ctrl-alt-chromium-linux.png differ diff --git a/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-input-drag-reuses-origin-chromium-linux.png b/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-input-drag-reuses-origin-chromium-linux.png index c01e66e1f9..103bd24225 100644 Binary files a/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-input-drag-reuses-origin-chromium-linux.png and b/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-input-drag-reuses-origin-chromium-linux.png differ diff --git a/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-reroute-input-drag-chromium-linux.png b/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-reroute-input-drag-chromium-linux.png index e925807cf0..a98cce0faa 100644 Binary files a/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-reroute-input-drag-chromium-linux.png and b/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-reroute-input-drag-chromium-linux.png differ diff --git a/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-reroute-output-shift-drag-chromium-linux.png b/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-reroute-output-shift-drag-chromium-linux.png index 665ffe6f25..9cd1a4c6f9 100644 Binary files a/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-reroute-output-shift-drag-chromium-linux.png and b/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-reroute-output-shift-drag-chromium-linux.png differ diff --git a/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-shift-output-multi-link-chromium-linux.png b/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-shift-output-multi-link-chromium-linux.png index 8233f41ab9..23c0d13f6d 100644 Binary files a/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-shift-output-multi-link-chromium-linux.png and b/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-shift-output-multi-link-chromium-linux.png differ diff --git a/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-snap-to-node-chromium-linux.png b/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-snap-to-node-chromium-linux.png index cbdce39505..87dbda65e5 100644 Binary files a/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-snap-to-node-chromium-linux.png and b/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-snap-to-node-chromium-linux.png differ diff --git a/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-snap-to-slot-chromium-linux.png b/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-snap-to-slot-chromium-linux.png index 165e2e697c..59df59d943 100644 Binary files a/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-snap-to-slot-chromium-linux.png and b/browser_tests/tests/vueNodes/interactions/links/linkInteraction.spec.ts-snapshots/vue-node-snap-to-slot-chromium-linux.png differ diff --git a/browser_tests/tests/vueNodes/interactions/node/move.spec.ts-snapshots/vue-node-moved-node-chromium-linux.png b/browser_tests/tests/vueNodes/interactions/node/move.spec.ts-snapshots/vue-node-moved-node-chromium-linux.png index 96e69c4e4c..cc0429086b 100644 Binary files a/browser_tests/tests/vueNodes/interactions/node/move.spec.ts-snapshots/vue-node-moved-node-chromium-linux.png and b/browser_tests/tests/vueNodes/interactions/node/move.spec.ts-snapshots/vue-node-moved-node-chromium-linux.png differ diff --git a/browser_tests/tests/vueNodes/interactions/node/move.spec.ts-snapshots/vue-node-moved-node-touch-mobile-chrome-linux.png b/browser_tests/tests/vueNodes/interactions/node/move.spec.ts-snapshots/vue-node-moved-node-touch-mobile-chrome-linux.png index 76046c712b..fab8c03fb7 100644 Binary files a/browser_tests/tests/vueNodes/interactions/node/move.spec.ts-snapshots/vue-node-moved-node-touch-mobile-chrome-linux.png and b/browser_tests/tests/vueNodes/interactions/node/move.spec.ts-snapshots/vue-node-moved-node-touch-mobile-chrome-linux.png differ diff --git a/browser_tests/tests/vueNodes/nodeStates/bypass.spec.ts-snapshots/vue-node-bypassed-state-chromium-linux.png b/browser_tests/tests/vueNodes/nodeStates/bypass.spec.ts-snapshots/vue-node-bypassed-state-chromium-linux.png index fa85a3adef..96af1ba8be 100644 Binary files a/browser_tests/tests/vueNodes/nodeStates/bypass.spec.ts-snapshots/vue-node-bypassed-state-chromium-linux.png and b/browser_tests/tests/vueNodes/nodeStates/bypass.spec.ts-snapshots/vue-node-bypassed-state-chromium-linux.png differ diff --git a/browser_tests/tests/vueNodes/nodeStates/colors.spec.ts-snapshots/vue-node-custom-color-blue-chromium-linux.png b/browser_tests/tests/vueNodes/nodeStates/colors.spec.ts-snapshots/vue-node-custom-color-blue-chromium-linux.png index 7f80ba83ed..8efc66a3af 100644 Binary files a/browser_tests/tests/vueNodes/nodeStates/colors.spec.ts-snapshots/vue-node-custom-color-blue-chromium-linux.png and b/browser_tests/tests/vueNodes/nodeStates/colors.spec.ts-snapshots/vue-node-custom-color-blue-chromium-linux.png differ diff --git a/browser_tests/tests/vueNodes/nodeStates/colors.spec.ts-snapshots/vue-node-custom-colors-dark-all-colors-chromium-linux.png b/browser_tests/tests/vueNodes/nodeStates/colors.spec.ts-snapshots/vue-node-custom-colors-dark-all-colors-chromium-linux.png index 8b33d2efff..a8d65b20da 100644 Binary files a/browser_tests/tests/vueNodes/nodeStates/colors.spec.ts-snapshots/vue-node-custom-colors-dark-all-colors-chromium-linux.png and b/browser_tests/tests/vueNodes/nodeStates/colors.spec.ts-snapshots/vue-node-custom-colors-dark-all-colors-chromium-linux.png differ diff --git a/browser_tests/tests/vueNodes/nodeStates/colors.spec.ts-snapshots/vue-node-custom-colors-light-all-colors-chromium-linux.png b/browser_tests/tests/vueNodes/nodeStates/colors.spec.ts-snapshots/vue-node-custom-colors-light-all-colors-chromium-linux.png index c038c23fcc..b86072a83d 100644 Binary files a/browser_tests/tests/vueNodes/nodeStates/colors.spec.ts-snapshots/vue-node-custom-colors-light-all-colors-chromium-linux.png and b/browser_tests/tests/vueNodes/nodeStates/colors.spec.ts-snapshots/vue-node-custom-colors-light-all-colors-chromium-linux.png differ diff --git a/browser_tests/tests/vueNodes/nodeStates/lod.spec.ts-snapshots/vue-nodes-lod-inactive-chromium-linux.png b/browser_tests/tests/vueNodes/nodeStates/lod.spec.ts-snapshots/vue-nodes-lod-inactive-chromium-linux.png index 268d2bef5d..6847ffa199 100644 Binary files a/browser_tests/tests/vueNodes/nodeStates/lod.spec.ts-snapshots/vue-nodes-lod-inactive-chromium-linux.png and b/browser_tests/tests/vueNodes/nodeStates/lod.spec.ts-snapshots/vue-nodes-lod-inactive-chromium-linux.png differ diff --git a/browser_tests/tests/vueNodes/nodeStates/mute.spec.ts-snapshots/vue-node-muted-state-chromium-linux.png b/browser_tests/tests/vueNodes/nodeStates/mute.spec.ts-snapshots/vue-node-muted-state-chromium-linux.png index 4e6114861d..b50ca8fbb7 100644 Binary files a/browser_tests/tests/vueNodes/nodeStates/mute.spec.ts-snapshots/vue-node-muted-state-chromium-linux.png and b/browser_tests/tests/vueNodes/nodeStates/mute.spec.ts-snapshots/vue-node-muted-state-chromium-linux.png differ diff --git a/browser_tests/tests/vueNodes/widgets/load/uploadWidgets.spec.ts-snapshots/vue-nodes-upload-widgets-chromium-linux.png b/browser_tests/tests/vueNodes/widgets/load/uploadWidgets.spec.ts-snapshots/vue-nodes-upload-widgets-chromium-linux.png index bd257b71bb..d6cada8b98 100644 Binary files a/browser_tests/tests/vueNodes/widgets/load/uploadWidgets.spec.ts-snapshots/vue-nodes-upload-widgets-chromium-linux.png and b/browser_tests/tests/vueNodes/widgets/load/uploadWidgets.spec.ts-snapshots/vue-nodes-upload-widgets-chromium-linux.png differ diff --git a/src/components/sidebar/tabs/QueueSidebarTab.vue b/src/components/sidebar/tabs/QueueSidebarTab.vue deleted file mode 100644 index cbe4980aff..0000000000 --- a/src/components/sidebar/tabs/QueueSidebarTab.vue +++ /dev/null @@ -1,289 +0,0 @@ - - - diff --git a/src/components/sidebar/tabs/queue/ResultItem.vue b/src/components/sidebar/tabs/queue/ResultItem.vue deleted file mode 100644 index f4dad64fa6..0000000000 --- a/src/components/sidebar/tabs/queue/ResultItem.vue +++ /dev/null @@ -1,79 +0,0 @@ - - - - - diff --git a/src/components/sidebar/tabs/queue/TaskItem.vue b/src/components/sidebar/tabs/queue/TaskItem.vue deleted file mode 100644 index a67c7eb7f4..0000000000 --- a/src/components/sidebar/tabs/queue/TaskItem.vue +++ /dev/null @@ -1,271 +0,0 @@ - - - - - diff --git a/src/composables/README.md b/src/composables/README.md index ab83f77123..229153dae7 100644 --- a/src/composables/README.md +++ b/src/composables/README.md @@ -181,7 +181,6 @@ Composables for sidebar functionality: |------------|-------------| | `useModelLibrarySidebarTab` | Manages the model library sidebar tab | | `useNodeLibrarySidebarTab` | Manages the node library sidebar tab | -| `useQueueSidebarTab` | Manages the queue sidebar tab | | `useWorkflowsSidebarTab` | Manages the workflows sidebar tab | ### Tree diff --git a/src/composables/sidebarTabs/useQueueSidebarTab.ts b/src/composables/sidebarTabs/useQueueSidebarTab.ts deleted file mode 100644 index 753a18fb5d..0000000000 --- a/src/composables/sidebarTabs/useQueueSidebarTab.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { markRaw } from 'vue' - -import QueueSidebarTab from '@/components/sidebar/tabs/QueueSidebarTab.vue' -import { useQueuePendingTaskCountStore } from '@/stores/queueStore' -import type { SidebarTabExtension } from '@/types/extensionTypes' - -export const useQueueSidebarTab = (): SidebarTabExtension => { - const queuePendingTaskCountStore = useQueuePendingTaskCountStore() - return { - id: 'queue', - icon: 'pi pi-history', - iconBadge: () => { - const value = queuePendingTaskCountStore.count.toString() - return value === '0' ? null : value - }, - title: 'sideToolbar.queue', - tooltip: 'sideToolbar.queue', - label: 'sideToolbar.labels.queue', - component: markRaw(QueueSidebarTab), - type: 'vue' - } -} diff --git a/src/constants/coreKeybindings.ts b/src/constants/coreKeybindings.ts index 3ab1ba51d9..cd8f3e5bba 100644 --- a/src/constants/coreKeybindings.ts +++ b/src/constants/coreKeybindings.ts @@ -30,12 +30,6 @@ export const CORE_KEYBINDINGS: Keybinding[] = [ }, commandId: 'Comfy.RefreshNodeDefinitions' }, - { - combo: { - key: 'q' - }, - commandId: 'Workspace.ToggleSidebarTab.queue' - }, { combo: { key: 'w' diff --git a/src/locales/ar/commands.json b/src/locales/ar/commands.json index bbbab6d99a..eaa0ce1fad 100644 --- a/src/locales/ar/commands.json +++ b/src/locales/ar/commands.json @@ -298,10 +298,6 @@ "label": "تبديل الشريط الجانبي لمكتبة العقد", "tooltip": "مكتبة العقد" }, - "Workspace_ToggleSidebarTab_queue": { - "label": "تبديل الشريط الجانبي لقائمة الانتظار", - "tooltip": "قائمة الانتظار" - }, "Workspace_ToggleSidebarTab_workflows": { "label": "تبديل الشريط الجانبي لسير العمل", "tooltip": "سير العمل" diff --git a/src/locales/ar/main.json b/src/locales/ar/main.json index 846574b85e..cbc8e5a47b 100644 --- a/src/locales/ar/main.json +++ b/src/locales/ar/main.json @@ -1670,18 +1670,6 @@ }, "openWorkflow": "فتح سير العمل من نظام الملفات المحلي", "queue": "قائمة الانتظار", - "queueTab": { - "backToAllTasks": "العودة إلى جميع المهام", - "clearPendingTasks": "مسح المهام المعلقة", - "containImagePreview": "ملء معاينة الصورة", - "coverImagePreview": "تكييف معاينة الصورة", - "filter": "تصفية النتائج", - "filters": { - "hideCached": "إخفاء المخزنة مؤقتًا", - "hideCanceled": "إخفاء الملغاة" - }, - "showFlatList": "عرض القائمة المسطحة" - }, "templates": "القوالب", "themeToggle": "تبديل المظهر", "workflowTab": { diff --git a/src/locales/en/commands.json b/src/locales/en/commands.json index 9c1625b905..3250384fd6 100644 --- a/src/locales/en/commands.json +++ b/src/locales/en/commands.json @@ -281,12 +281,8 @@ "label": "Toggle Node Library Sidebar", "tooltip": "Node Library" }, - "Workspace_ToggleSidebarTab_queue": { - "label": "Toggle Queue Sidebar", - "tooltip": "Queue" - }, "Workspace_ToggleSidebarTab_workflows": { "label": "Toggle Workflows Sidebar", "tooltip": "Workflows" } -} \ No newline at end of file +} diff --git a/src/locales/en/main.json b/src/locales/en/main.json index f1bc2c52e0..e378fe49d4 100644 --- a/src/locales/en/main.json +++ b/src/locales/en/main.json @@ -681,18 +681,6 @@ }, "modelLibrary": "Model Library", "downloads": "Downloads", - "queueTab": { - "showFlatList": "Show Flat List", - "backToAllTasks": "Back to All Tasks", - "containImagePreview": "Fill Image Preview", - "coverImagePreview": "Fit Image Preview", - "clearPendingTasks": "Clear Pending Tasks", - "filter": "Filter Outputs", - "filters": { - "hideCached": "Hide Cached", - "hideCanceled": "Hide Canceled" - } - }, "queueProgressOverlay": { "title": "Queue Progress", "total": "Total: {percent}", @@ -2178,4 +2166,4 @@ "replacementInstruction": "Install these nodes to run this workflow, or replace them with installed alternatives. Missing nodes are highlighted in red on the canvas." } } -} \ No newline at end of file +} diff --git a/src/locales/es/commands.json b/src/locales/es/commands.json index 76e3f53e96..b9ad0e7669 100644 --- a/src/locales/es/commands.json +++ b/src/locales/es/commands.json @@ -298,10 +298,6 @@ "label": "Alternar Barra Lateral de Biblioteca de Nodos", "tooltip": "Biblioteca de Nodos" }, - "Workspace_ToggleSidebarTab_queue": { - "label": "Alternar Barra Lateral de Cola", - "tooltip": "Cola" - }, "Workspace_ToggleSidebarTab_workflows": { "label": "Alternar Barra Lateral de Flujos de Trabajo", "tooltip": "Flujos de Trabajo" diff --git a/src/locales/es/main.json b/src/locales/es/main.json index ba2ba22043..27e8736264 100644 --- a/src/locales/es/main.json +++ b/src/locales/es/main.json @@ -1670,18 +1670,6 @@ }, "openWorkflow": "Abrir flujo de trabajo en el sistema de archivos local", "queue": "Cola", - "queueTab": { - "backToAllTasks": "Volver a todas las tareas", - "clearPendingTasks": "Borrar tareas pendientes", - "containImagePreview": "Llenar vista previa de la imagen", - "coverImagePreview": "Ajustar vista previa de la imagen", - "filter": "Filtrar salidas", - "filters": { - "hideCached": "Ocultar en caché", - "hideCanceled": "Ocultar cancelados" - }, - "showFlatList": "Mostrar lista plana" - }, "templates": "Plantillas", "themeToggle": "Cambiar tema", "workflowTab": { diff --git a/src/locales/fr/commands.json b/src/locales/fr/commands.json index 3ffee6a80b..25602b098a 100644 --- a/src/locales/fr/commands.json +++ b/src/locales/fr/commands.json @@ -298,10 +298,6 @@ "label": "Basculer la barre latérale de la bibliothèque de nœuds", "tooltip": "Bibliothèque de nœuds" }, - "Workspace_ToggleSidebarTab_queue": { - "label": "Basculer la barre latérale de la file d'attente", - "tooltip": "File d'attente" - }, "Workspace_ToggleSidebarTab_workflows": { "label": "Basculer la barre latérale des flux de travail", "tooltip": "Flux de travail" diff --git a/src/locales/fr/main.json b/src/locales/fr/main.json index 3888d07867..5b97d3ee05 100644 --- a/src/locales/fr/main.json +++ b/src/locales/fr/main.json @@ -1670,18 +1670,6 @@ }, "openWorkflow": "Ouvrir le flux de travail dans le système de fichiers local", "queue": "File d'attente", - "queueTab": { - "backToAllTasks": "Retour à toutes les tâches", - "clearPendingTasks": "Effacer les tâches en attente", - "containImagePreview": "Remplir l'aperçu de l'image", - "coverImagePreview": "Adapter l'aperçu de l'image", - "filter": "Filtrer les sorties", - "filters": { - "hideCached": "Masquer le cache", - "hideCanceled": "Masquer les annulations" - }, - "showFlatList": "Afficher la liste plate" - }, "templates": "Modèles", "themeToggle": "Basculer le thème", "workflowTab": { diff --git a/src/locales/ja/commands.json b/src/locales/ja/commands.json index fa2709ea24..182939aaf6 100644 --- a/src/locales/ja/commands.json +++ b/src/locales/ja/commands.json @@ -298,10 +298,6 @@ "label": "ノードライブラリサイドバーの切り替え", "tooltip": "ノードライブラリ" }, - "Workspace_ToggleSidebarTab_queue": { - "label": "キューサイドバーの切り替え", - "tooltip": "キュー" - }, "Workspace_ToggleSidebarTab_workflows": { "label": "ワークフローサイドバーの切り替え", "tooltip": "ワークフロー" diff --git a/src/locales/ja/main.json b/src/locales/ja/main.json index 9192ef64ab..9188d78c54 100644 --- a/src/locales/ja/main.json +++ b/src/locales/ja/main.json @@ -1670,18 +1670,6 @@ }, "openWorkflow": "ローカルでワークフローを開く", "queue": "キュー", - "queueTab": { - "backToAllTasks": "すべてのタスクに戻る", - "clearPendingTasks": "保留中のタスクをクリア", - "containImagePreview": "画像プレビューを含める", - "coverImagePreview": "画像プレビューに合わせる", - "filter": "出力をフィルタ", - "filters": { - "hideCached": "キャッシュを非表示", - "hideCanceled": "キャンセル済みを非表示" - }, - "showFlatList": "フラットリストを表示" - }, "templates": "テンプレート", "themeToggle": "テーマを切り替え", "workflowTab": { diff --git a/src/locales/ko/commands.json b/src/locales/ko/commands.json index 89c193d4dd..7d698e1a87 100644 --- a/src/locales/ko/commands.json +++ b/src/locales/ko/commands.json @@ -298,10 +298,6 @@ "label": "노드 라이브러리 사이드바 토글", "tooltip": "노드 라이브러리" }, - "Workspace_ToggleSidebarTab_queue": { - "label": "실행 큐 사이드바 토글", - "tooltip": "실행 큐" - }, "Workspace_ToggleSidebarTab_workflows": { "label": "워크플로 사이드바 토글", "tooltip": "워크플로" diff --git a/src/locales/ko/main.json b/src/locales/ko/main.json index 130eb5f1b1..3db8387c56 100644 --- a/src/locales/ko/main.json +++ b/src/locales/ko/main.json @@ -1670,18 +1670,6 @@ }, "openWorkflow": "로컬 파일 시스템에서 워크플로 열기", "queue": "실행 대기열", - "queueTab": { - "backToAllTasks": "모든 작업으로 돌아가기", - "clearPendingTasks": "보류 중인 작업 지우기", - "containImagePreview": "이미지 미리보기 채우기", - "coverImagePreview": "이미지 미리보기 맞추기", - "filter": "출력 필터", - "filters": { - "hideCached": "캐시 숨기기", - "hideCanceled": "취소된 작업 숨기기" - }, - "showFlatList": "평면 목록 표시" - }, "templates": "템플릿", "themeToggle": "테마 전환", "workflowTab": { diff --git a/src/locales/ru/commands.json b/src/locales/ru/commands.json index 9fa9640a54..beb4457cd0 100644 --- a/src/locales/ru/commands.json +++ b/src/locales/ru/commands.json @@ -298,10 +298,6 @@ "label": "Переключить боковую панель библиотеки нод", "tooltip": "Библиотека нод" }, - "Workspace_ToggleSidebarTab_queue": { - "label": "Переключить боковую панель очереди", - "tooltip": "Очередь" - }, "Workspace_ToggleSidebarTab_workflows": { "label": "Переключить боковую панель рабочих процессов", "tooltip": "Рабочие процессы" diff --git a/src/locales/ru/main.json b/src/locales/ru/main.json index c2827830d7..178e81e79f 100644 --- a/src/locales/ru/main.json +++ b/src/locales/ru/main.json @@ -1670,18 +1670,6 @@ }, "openWorkflow": "Открыть рабочий процесс в локальной файловой системе", "queue": "Очередь", - "queueTab": { - "backToAllTasks": "Вернуться ко всем задачам", - "clearPendingTasks": "Очистить отложенные задачи", - "containImagePreview": "Предпросмотр заливающего изображения", - "coverImagePreview": "Предпросмотр подходящего изображения", - "filter": "Фильтровать выводы", - "filters": { - "hideCached": "Скрыть кэшированные", - "hideCanceled": "Скрыть отмененные" - }, - "showFlatList": "Показать плоский список" - }, "templates": "Шаблоны", "themeToggle": "Переключить тему", "workflowTab": { diff --git a/src/locales/tr/commands.json b/src/locales/tr/commands.json index c5d498fa3f..9ede4542c0 100644 --- a/src/locales/tr/commands.json +++ b/src/locales/tr/commands.json @@ -298,10 +298,6 @@ "label": "Düğüm Kütüphanesi Kenar Çubuğunu Aç/Kapat", "tooltip": "Düğüm Kütüphanesi" }, - "Workspace_ToggleSidebarTab_queue": { - "label": "Kuyruk Kenar Çubuğunu Aç/Kapat", - "tooltip": "Kuyruk" - }, "Workspace_ToggleSidebarTab_workflows": { "label": "İş Akışları Kenar Çubuğunu Aç/Kapat", "tooltip": "İş Akışları" diff --git a/src/locales/tr/main.json b/src/locales/tr/main.json index d75b6de31a..e3b7382dcc 100644 --- a/src/locales/tr/main.json +++ b/src/locales/tr/main.json @@ -1670,18 +1670,6 @@ }, "openWorkflow": "Yerel dosya sisteminde iş akışını aç", "queue": "Kuyruk", - "queueTab": { - "backToAllTasks": "Tüm Görevlere Geri Dön", - "clearPendingTasks": "Bekleyen Görevleri Temizle", - "containImagePreview": "Resim Önizlemesini Doldur", - "coverImagePreview": "Resim Önizlemesine Sığdır", - "filter": "Çıktıları Filtrele", - "filters": { - "hideCached": "Önbelleğe Alınanları Gizle", - "hideCanceled": "İptal Edilenleri Gizle" - }, - "showFlatList": "Düz Listeyi Göster" - }, "templates": "Şablonlar", "themeToggle": "Temayı Değiştir", "workflowTab": { diff --git a/src/locales/zh-TW/commands.json b/src/locales/zh-TW/commands.json index 4cb56e065b..a15f22a780 100644 --- a/src/locales/zh-TW/commands.json +++ b/src/locales/zh-TW/commands.json @@ -298,10 +298,6 @@ "label": "切換節點庫側邊欄", "tooltip": "節點庫" }, - "Workspace_ToggleSidebarTab_queue": { - "label": "切換佇列側邊欄", - "tooltip": "佇列" - }, "Workspace_ToggleSidebarTab_workflows": { "label": "切換工作流程側邊欄", "tooltip": "工作流程" diff --git a/src/locales/zh-TW/main.json b/src/locales/zh-TW/main.json index 3cd5141534..a6bc169ceb 100644 --- a/src/locales/zh-TW/main.json +++ b/src/locales/zh-TW/main.json @@ -1670,18 +1670,6 @@ }, "openWorkflow": "在本機檔案系統中開啟工作流程", "queue": "佇列", - "queueTab": { - "backToAllTasks": "返回所有任務", - "clearPendingTasks": "清除待處理任務", - "containImagePreview": "填滿圖片預覽", - "coverImagePreview": "適合圖片預覽", - "filter": "篩選輸出", - "filters": { - "hideCached": "隱藏快取", - "hideCanceled": "隱藏已取消" - }, - "showFlatList": "顯示平面清單" - }, "templates": "範本", "themeToggle": "切換主題", "workflowTab": { diff --git a/src/locales/zh/commands.json b/src/locales/zh/commands.json index 1f15cc6186..93462ef8ba 100644 --- a/src/locales/zh/commands.json +++ b/src/locales/zh/commands.json @@ -298,10 +298,6 @@ "label": "切换节点库侧边栏", "tooltip": "节点库" }, - "Workspace_ToggleSidebarTab_queue": { - "label": "切换执行队列侧边栏", - "tooltip": "执行队列" - }, "Workspace_ToggleSidebarTab_workflows": { "label": "切换工作流侧边栏", "tooltip": "工作流" diff --git a/src/locales/zh/main.json b/src/locales/zh/main.json index 32a5eb67ec..1c1ef81100 100644 --- a/src/locales/zh/main.json +++ b/src/locales/zh/main.json @@ -1670,18 +1670,6 @@ }, "openWorkflow": "在本地文件系统中打开工作流", "queue": "队列", - "queueTab": { - "backToAllTasks": "返回", - "clearPendingTasks": "清除待处理任务", - "containImagePreview": "填充图像预览", - "coverImagePreview": "适应图像预览", - "filter": "过滤输出", - "filters": { - "hideCached": "隐藏缓存", - "hideCanceled": "隐藏已取消" - }, - "showFlatList": "平铺结果" - }, "templates": "模板", "themeToggle": "切换主题", "workflowTab": { diff --git a/src/stores/queueStore.ts b/src/stores/queueStore.ts index bc37590570..4878c8e5f1 100644 --- a/src/stores/queueStore.ts +++ b/src/stores/queueStore.ts @@ -29,7 +29,7 @@ import { getMediaTypeFromFilename } from '@/utils/formatUtil' // Task type used in the API. type APITaskType = 'queue' | 'history' -export enum TaskItemDisplayStatus { +enum TaskItemDisplayStatus { Running = 'Running', Pending = 'Pending', Completed = 'Completed', diff --git a/src/stores/workspace/sidebarTabStore.ts b/src/stores/workspace/sidebarTabStore.ts index 05c8d9375a..1a73ee725e 100644 --- a/src/stores/workspace/sidebarTabStore.ts +++ b/src/stores/workspace/sidebarTabStore.ts @@ -4,7 +4,6 @@ import { computed, ref } from 'vue' import { useAssetsSidebarTab } from '@/composables/sidebarTabs/useAssetsSidebarTab' import { useModelLibrarySidebarTab } from '@/composables/sidebarTabs/useModelLibrarySidebarTab' import { useNodeLibrarySidebarTab } from '@/composables/sidebarTabs/useNodeLibrarySidebarTab' -import { useQueueSidebarTab } from '@/composables/sidebarTabs/useQueueSidebarTab' import { t, te } from '@/i18n' import { useSettingStore } from '@/platform/settings/settingStore' import { useWorkflowsSidebarTab } from '@/platform/workflow/management/composables/useWorkflowsSidebarTab' @@ -43,7 +42,6 @@ export const useSidebarTabStore = defineStore('sidebarTab', () => { const menubarLabelFunction = () => { const menubarLabelKeys: Record = { - queue: 'menu.queue', 'node-library': 'sideToolbar.nodeLibrary', 'model-library': 'sideToolbar.modelLibrary', workflows: 'sideToolbar.workflows', @@ -105,7 +103,6 @@ export const useSidebarTabStore = defineStore('sidebarTab', () => { */ const registerCoreSidebarTabs = () => { registerSidebarTab(useAssetsSidebarTab()) - registerSidebarTab(useQueueSidebarTab()) registerSidebarTab(useNodeLibrarySidebarTab()) registerSidebarTab(useModelLibrarySidebarTab()) registerSidebarTab(useWorkflowsSidebarTab()) diff --git a/src/views/LinearView.vue b/src/views/LinearView.vue index 73f5571662..bdb1fee3b9 100644 --- a/src/views/LinearView.vue +++ b/src/views/LinearView.vue @@ -5,7 +5,6 @@ import Splitter from 'primevue/splitter' import SplitterPanel from 'primevue/splitterpanel' import { computed } from 'vue' -import ExtensionSlot from '@/components/common/ExtensionSlot.vue' import CurrentUserButton from '@/components/topbar/CurrentUserButton.vue' import LoginButton from '@/components/topbar/LoginButton.vue' import TopbarBadges from '@/components/topbar/TopbarBadges.vue' @@ -15,7 +14,6 @@ import { isValidWidgetValue, safeWidgetMapper } from '@/composables/graph/useGraphNodeManager' -import { useQueueSidebarTab } from '@/composables/sidebarTabs/useQueueSidebarTab' import { t } from '@/i18n' import type { LGraphNode } from '@/lib/litegraph/src/LGraphNode' import { useTelemetry } from '@/platform/telemetry' @@ -116,15 +114,8 @@ function openFeedback() { class="h-[calc(100%-38px)] w-full bg-comfy-menu-secondary-bg" :pt="{ gutter: { class: 'bg-transparent w-4 -mx-3' } }" > - - -