mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-30 03:01:54 +00:00
refactor: move queue files under domain
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import type { Locator, Page } from '@playwright/test'
|
import type { Locator, Page } from '@playwright/test'
|
||||||
|
|
||||||
import type { AutoQueueMode } from '../../src/stores/queueStore'
|
import type { AutoQueueMode } from '../../src/queue/stores/queueStore'
|
||||||
|
|
||||||
export class ComfyActionbar {
|
export class ComfyActionbar {
|
||||||
public readonly root: Locator
|
public readonly root: Locator
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ import { useI18n } from 'vue-i18n'
|
|||||||
|
|
||||||
import ComfyActionbar from '@/components/actionbar/ComfyActionbar.vue'
|
import ComfyActionbar from '@/components/actionbar/ComfyActionbar.vue'
|
||||||
import SubgraphBreadcrumb from '@/components/breadcrumb/SubgraphBreadcrumb.vue'
|
import SubgraphBreadcrumb from '@/components/breadcrumb/SubgraphBreadcrumb.vue'
|
||||||
import QueueProgressOverlay from '@/components/queue/QueueProgressOverlay.vue'
|
import QueueProgressOverlay from '@/queue/components/QueueProgressOverlay.vue'
|
||||||
import ActionBarButtons from '@/components/topbar/ActionBarButtons.vue'
|
import ActionBarButtons from '@/components/topbar/ActionBarButtons.vue'
|
||||||
import CurrentUserButton from '@/components/topbar/CurrentUserButton.vue'
|
import CurrentUserButton from '@/components/topbar/CurrentUserButton.vue'
|
||||||
import LoginButton from '@/components/topbar/LoginButton.vue'
|
import LoginButton from '@/components/topbar/LoginButton.vue'
|
||||||
@@ -92,7 +92,7 @@ import { useCurrentUser } from '@/composables/auth/useCurrentUser'
|
|||||||
import { useErrorHandling } from '@/composables/useErrorHandling'
|
import { useErrorHandling } from '@/composables/useErrorHandling'
|
||||||
import { buildTooltipConfig } from '@/composables/useTooltipConfig'
|
import { buildTooltipConfig } from '@/composables/useTooltipConfig'
|
||||||
import { app } from '@/scripts/app'
|
import { app } from '@/scripts/app'
|
||||||
import { useQueueStore } from '@/stores/queueStore'
|
import { useQueueStore } from '@/queue/stores/queueStore'
|
||||||
import { useRightSidePanelStore } from '@/stores/workspace/rightSidePanelStore'
|
import { useRightSidePanelStore } from '@/stores/workspace/rightSidePanelStore'
|
||||||
import { useWorkspaceStore } from '@/stores/workspaceStore'
|
import { useWorkspaceStore } from '@/stores/workspaceStore'
|
||||||
import { isElectron } from '@/utils/envUtil'
|
import { isElectron } from '@/utils/envUtil'
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ import InputNumber from 'primevue/inputnumber'
|
|||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
|
|
||||||
import { useSettingStore } from '@/platform/settings/settingStore'
|
import { useSettingStore } from '@/platform/settings/settingStore'
|
||||||
import { useQueueSettingsStore } from '@/stores/queueStore'
|
import { useQueueSettingsStore } from '@/queue/stores/queueStore'
|
||||||
|
|
||||||
const queueSettingsStore = useQueueSettingsStore()
|
const queueSettingsStore = useQueueSettingsStore()
|
||||||
const { batchCount } = storeToRefs(queueSettingsStore)
|
const { batchCount } = storeToRefs(queueSettingsStore)
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ import { useTelemetry } from '@/platform/telemetry'
|
|||||||
import { app } from '@/scripts/app'
|
import { app } from '@/scripts/app'
|
||||||
import { useCommandStore } from '@/stores/commandStore'
|
import { useCommandStore } from '@/stores/commandStore'
|
||||||
import { useNodeDefStore } from '@/stores/nodeDefStore'
|
import { useNodeDefStore } from '@/stores/nodeDefStore'
|
||||||
import { useQueueSettingsStore } from '@/stores/queueStore'
|
import { useQueueSettingsStore } from '@/queue/stores/queueStore'
|
||||||
import { useWorkspaceStore } from '@/stores/workspaceStore'
|
import { useWorkspaceStore } from '@/stores/workspaceStore'
|
||||||
import { graphHasMissingNodes } from '@/workbench/extensions/manager/utils/graphHasMissingNodes'
|
import { graphHasMissingNodes } from '@/workbench/extensions/manager/utils/graphHasMissingNodes'
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import type { Meta, StoryObj } from '@storybook/vue3-vite'
|
import type { Meta, StoryObj } from '@storybook/vue3-vite'
|
||||||
|
|
||||||
import type { JobAction } from '@/composables/queue/useJobActions'
|
import type { JobAction } from '@/queue/composables/useJobActions'
|
||||||
import type { JobListItem } from '@/composables/queue/useJobList'
|
import type { JobListItem } from '@/queue/composables/useJobList'
|
||||||
import type { AssetItem } from '@/platform/assets/schemas/assetSchema'
|
import type { AssetItem } from '@/platform/assets/schemas/assetSchema'
|
||||||
import { setMockJobActions } from '@/storybook/mocks/useJobActions'
|
import { setMockJobActions } from '@/storybook/mocks/useJobActions'
|
||||||
import { setMockJobItems } from '@/storybook/mocks/useJobList'
|
import { setMockJobItems } from '@/storybook/mocks/useJobList'
|
||||||
import { iconForJobState } from '@/utils/queueDisplay'
|
import { iconForJobState } from '@/queue/utils/queueDisplay'
|
||||||
|
|
||||||
import AssetsSidebarListView from './AssetsSidebarListView.vue'
|
import AssetsSidebarListView from './AssetsSidebarListView.vue'
|
||||||
|
|
||||||
|
|||||||
@@ -95,21 +95,21 @@ import { useI18n } from 'vue-i18n'
|
|||||||
|
|
||||||
import VirtualGrid from '@/components/common/VirtualGrid.vue'
|
import VirtualGrid from '@/components/common/VirtualGrid.vue'
|
||||||
import Button from '@/components/ui/button/Button.vue'
|
import Button from '@/components/ui/button/Button.vue'
|
||||||
import type { JobAction } from '@/composables/queue/useJobActions'
|
import type { JobAction } from '@/queue/composables/useJobActions'
|
||||||
import { useJobActions } from '@/composables/queue/useJobActions'
|
import { useJobActions } from '@/queue/composables/useJobActions'
|
||||||
import type { JobListItem } from '@/composables/queue/useJobList'
|
import type { JobListItem } from '@/queue/composables/useJobList'
|
||||||
import { useJobList } from '@/composables/queue/useJobList'
|
import { useJobList } from '@/queue/composables/useJobList'
|
||||||
import AssetsListCard from '@/platform/assets/components/AssetsListCard.vue'
|
import AssetsListCard from '@/platform/assets/components/AssetsListCard.vue'
|
||||||
import { getOutputAssetMetadata } from '@/platform/assets/schemas/assetMetadataSchema'
|
import { getOutputAssetMetadata } from '@/platform/assets/schemas/assetMetadataSchema'
|
||||||
import type { AssetItem } from '@/platform/assets/schemas/assetSchema'
|
import type { AssetItem } from '@/platform/assets/schemas/assetSchema'
|
||||||
import type { JobState } from '@/types/queue'
|
import type { JobState } from '@/queue/types/queue'
|
||||||
import {
|
import {
|
||||||
formatDuration,
|
formatDuration,
|
||||||
formatSize,
|
formatSize,
|
||||||
getMediaTypeFromFilename,
|
getMediaTypeFromFilename,
|
||||||
truncateFilename
|
truncateFilename
|
||||||
} from '@/utils/formatUtil'
|
} from '@/utils/formatUtil'
|
||||||
import { iconForJobState } from '@/utils/queueDisplay'
|
import { iconForJobState } from '@/queue/utils/queueDisplay'
|
||||||
import { cn } from '@/utils/tailwindUtil'
|
import { cn } from '@/utils/tailwindUtil'
|
||||||
|
|
||||||
const { assets, isSelected } = defineProps<{
|
const { assets, isSelected } = defineProps<{
|
||||||
|
|||||||
@@ -234,7 +234,7 @@ import { isCloud } from '@/platform/distribution/types'
|
|||||||
import { useSettingStore } from '@/platform/settings/settingStore'
|
import { useSettingStore } from '@/platform/settings/settingStore'
|
||||||
import { useCommandStore } from '@/stores/commandStore'
|
import { useCommandStore } from '@/stores/commandStore'
|
||||||
import { useDialogStore } from '@/stores/dialogStore'
|
import { useDialogStore } from '@/stores/dialogStore'
|
||||||
import { ResultItemImpl, useQueueStore } from '@/stores/queueStore'
|
import { ResultItemImpl, useQueueStore } from '@/queue/stores/queueStore'
|
||||||
import { formatDuration, getMediaTypeFromFilename } from '@/utils/formatUtil'
|
import { formatDuration, getMediaTypeFromFilename } from '@/utils/formatUtil'
|
||||||
import { cn } from '@/utils/tailwindUtil'
|
import { cn } from '@/utils/tailwindUtil'
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
|
|
||||||
import type { ResultItemImpl } from '@/stores/queueStore'
|
import type { ResultItemImpl } from '@/queue/stores/queueStore'
|
||||||
|
|
||||||
const { result } = defineProps<{
|
const { result } = defineProps<{
|
||||||
result: ResultItemImpl
|
result: ResultItemImpl
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|||||||
import { createApp, nextTick } from 'vue'
|
import { createApp, nextTick } from 'vue'
|
||||||
|
|
||||||
import type { NodeId } from '@/platform/workflow/validation/schemas/workflowSchema'
|
import type { NodeId } from '@/platform/workflow/validation/schemas/workflowSchema'
|
||||||
import type { ResultItemImpl } from '@/stores/queueStore'
|
import type { ResultItemImpl } from '@/queue/stores/queueStore'
|
||||||
|
|
||||||
import ResultGallery from './ResultGallery.vue'
|
import ResultGallery from './ResultGallery.vue'
|
||||||
|
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ import Galleria from 'primevue/galleria'
|
|||||||
import { computed, onMounted, onUnmounted, ref, watch } from 'vue'
|
import { computed, onMounted, onUnmounted, ref, watch } from 'vue'
|
||||||
|
|
||||||
import ComfyImage from '@/components/common/ComfyImage.vue'
|
import ComfyImage from '@/components/common/ComfyImage.vue'
|
||||||
import type { ResultItemImpl } from '@/stores/queueStore'
|
import type { ResultItemImpl } from '@/queue/stores/queueStore'
|
||||||
|
|
||||||
import ResultAudio from './ResultAudio.vue'
|
import ResultAudio from './ResultAudio.vue'
|
||||||
import ResultVideo from './ResultVideo.vue'
|
import ResultVideo from './ResultVideo.vue'
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import { computed } from 'vue'
|
|||||||
|
|
||||||
import { useSettingStore } from '@/platform/settings/settingStore'
|
import { useSettingStore } from '@/platform/settings/settingStore'
|
||||||
import { useExtensionStore } from '@/stores/extensionStore'
|
import { useExtensionStore } from '@/stores/extensionStore'
|
||||||
import type { ResultItemImpl } from '@/stores/queueStore'
|
import type { ResultItemImpl } from '@/queue/stores/queueStore'
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
result: ResultItemImpl
|
result: ResultItemImpl
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ import { useLitegraphService } from '@/services/litegraphService'
|
|||||||
import type { ComfyCommand } from '@/stores/commandStore'
|
import type { ComfyCommand } from '@/stores/commandStore'
|
||||||
import { useExecutionStore } from '@/stores/executionStore'
|
import { useExecutionStore } from '@/stores/executionStore'
|
||||||
import { useHelpCenterStore } from '@/stores/helpCenterStore'
|
import { useHelpCenterStore } from '@/stores/helpCenterStore'
|
||||||
import { useQueueSettingsStore, useQueueStore } from '@/stores/queueStore'
|
import { useQueueSettingsStore, useQueueStore } from '@/queue/stores/queueStore'
|
||||||
import { useSubgraphNavigationStore } from '@/stores/subgraphNavigationStore'
|
import { useSubgraphNavigationStore } from '@/stores/subgraphNavigationStore'
|
||||||
import { useSubgraphStore } from '@/stores/subgraphStore'
|
import { useSubgraphStore } from '@/stores/subgraphStore'
|
||||||
import { useBottomPanelStore } from '@/stores/workspace/bottomPanelStore'
|
import { useBottomPanelStore } from '@/stores/workspace/bottomPanelStore'
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import type { Meta, StoryObj } from '@storybook/vue3-vite'
|
import type { Meta, StoryObj } from '@storybook/vue3-vite'
|
||||||
|
|
||||||
import Button from '@/components/ui/button/Button.vue'
|
import Button from '@/components/ui/button/Button.vue'
|
||||||
import { iconForJobState } from '@/utils/queueDisplay'
|
import { iconForJobState } from '@/queue/utils/queueDisplay'
|
||||||
|
|
||||||
import AssetsListCard from './AssetsListCard.vue'
|
import AssetsListCard from './AssetsListCard.vue'
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import type { AssetItem } from '@/platform/assets/schemas/assetSchema'
|
|||||||
import type { OutputAssetMetadata } from '@/platform/assets/schemas/assetMetadataSchema'
|
import type { OutputAssetMetadata } from '@/platform/assets/schemas/assetMetadataSchema'
|
||||||
import type { AssetContext } from '@/platform/assets/schemas/mediaAssetSchema'
|
import type { AssetContext } from '@/platform/assets/schemas/mediaAssetSchema'
|
||||||
import { api } from '@/scripts/api'
|
import { api } from '@/scripts/api'
|
||||||
import type { ResultItemImpl, TaskItemImpl } from '@/stores/queueStore'
|
import type { ResultItemImpl, TaskItemImpl } from '@/queue/stores/queueStore'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extract asset type from tags array
|
* Extract asset type from tags array
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import { createPinia, setActivePinia } from 'pinia'
|
import { createPinia, setActivePinia } from 'pinia'
|
||||||
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
||||||
|
|
||||||
import { ResultItemImpl } from '@/stores/queueStore'
|
import { ResultItemImpl } from '@/queue/stores/queueStore'
|
||||||
|
|
||||||
import type { AssetMeta } from '../schemas/mediaAssetSchema'
|
import type { AssetMeta } from '../schemas/mediaAssetSchema'
|
||||||
import { useMediaAssetGalleryStore } from './useMediaAssetGalleryStore'
|
import { useMediaAssetGalleryStore } from './useMediaAssetGalleryStore'
|
||||||
|
|
||||||
vi.mock('@/stores/queueStore', () => ({
|
vi.mock('@/queue/stores/queueStore', () => ({
|
||||||
ResultItemImpl: vi
|
ResultItemImpl: vi
|
||||||
.fn<typeof ResultItemImpl>()
|
.fn<typeof ResultItemImpl>()
|
||||||
.mockImplementation(function (data) {
|
.mockImplementation(function (data) {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { defineStore } from 'pinia'
|
import { defineStore } from 'pinia'
|
||||||
import { ref, shallowRef } from 'vue'
|
import { ref, shallowRef } from 'vue'
|
||||||
|
|
||||||
import { ResultItemImpl } from '@/stores/queueStore'
|
import { ResultItemImpl } from '@/queue/stores/queueStore'
|
||||||
|
|
||||||
import type { AssetMeta } from '../schemas/mediaAssetSchema'
|
import type { AssetMeta } from '../schemas/mediaAssetSchema'
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { ComfyWorkflowJSON } from '@/platform/workflow/validation/schemas/workflowSchema'
|
import type { ComfyWorkflowJSON } from '@/platform/workflow/validation/schemas/workflowSchema'
|
||||||
import type { ResultItemImpl } from '@/stores/queueStore'
|
import type { ResultItemImpl } from '@/queue/stores/queueStore'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Metadata for output assets from queue store
|
* Metadata for output assets from queue store
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ import Button from '@/components/ui/button/Button.vue'
|
|||||||
import type {
|
import type {
|
||||||
CompletionSummary,
|
CompletionSummary,
|
||||||
CompletionSummaryMode
|
CompletionSummaryMode
|
||||||
} from '@/composables/queue/useCompletionSummary'
|
} from '@/queue/composables/useCompletionSummary'
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
mode: CompletionSummaryMode
|
mode: CompletionSummaryMode
|
||||||
@@ -3,7 +3,7 @@ import { describe, expect, it } from 'vitest'
|
|||||||
import { createI18n } from 'vue-i18n'
|
import { createI18n } from 'vue-i18n'
|
||||||
|
|
||||||
import QueueOverlayEmpty from './QueueOverlayEmpty.vue'
|
import QueueOverlayEmpty from './QueueOverlayEmpty.vue'
|
||||||
import type { CompletionSummary } from '@/composables/queue/useCompletionSummary'
|
import type { CompletionSummary } from '@/queue/composables/useCompletionSummary'
|
||||||
|
|
||||||
const i18n = createI18n({
|
const i18n = createI18n({
|
||||||
legacy: false,
|
legacy: false,
|
||||||
@@ -14,8 +14,8 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
|
|
||||||
import CompletionSummaryBanner from '@/components/queue/CompletionSummaryBanner.vue'
|
import CompletionSummaryBanner from '@/queue/components/CompletionSummaryBanner.vue'
|
||||||
import type { CompletionSummary } from '@/composables/queue/useCompletionSummary'
|
import type { CompletionSummary } from '@/queue/composables/useCompletionSummary'
|
||||||
|
|
||||||
defineProps<{ summary: CompletionSummary }>()
|
defineProps<{ summary: CompletionSummary }>()
|
||||||
|
|
||||||
@@ -79,9 +79,9 @@ import type {
|
|||||||
JobListItem,
|
JobListItem,
|
||||||
JobSortMode,
|
JobSortMode,
|
||||||
JobTab
|
JobTab
|
||||||
} from '@/composables/queue/useJobList'
|
} from '@/queue/composables/useJobList'
|
||||||
import type { MenuEntry } from '@/composables/queue/useJobMenu'
|
import type { MenuEntry } from '@/queue/composables/useJobMenu'
|
||||||
import { useJobMenu } from '@/composables/queue/useJobMenu'
|
import { useJobMenu } from '@/queue/composables/useJobMenu'
|
||||||
|
|
||||||
import QueueOverlayHeader from './QueueOverlayHeader.vue'
|
import QueueOverlayHeader from './QueueOverlayHeader.vue'
|
||||||
import JobContextMenu from './job/JobContextMenu.vue'
|
import JobContextMenu from './job/JobContextMenu.vue'
|
||||||
@@ -63,16 +63,16 @@
|
|||||||
import { computed, nextTick, ref } from 'vue'
|
import { computed, nextTick, ref } from 'vue'
|
||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
|
|
||||||
import QueueOverlayActive from '@/components/queue/QueueOverlayActive.vue'
|
import QueueOverlayActive from '@/queue/components/QueueOverlayActive.vue'
|
||||||
import QueueOverlayEmpty from '@/components/queue/QueueOverlayEmpty.vue'
|
import QueueOverlayEmpty from '@/queue/components/QueueOverlayEmpty.vue'
|
||||||
import QueueOverlayExpanded from '@/components/queue/QueueOverlayExpanded.vue'
|
import QueueOverlayExpanded from '@/queue/components/QueueOverlayExpanded.vue'
|
||||||
import QueueClearHistoryDialog from '@/components/queue/dialogs/QueueClearHistoryDialog.vue'
|
import QueueClearHistoryDialog from '@/queue/components/dialogs/QueueClearHistoryDialog.vue'
|
||||||
import ResultGallery from '@/components/sidebar/tabs/queue/ResultGallery.vue'
|
import ResultGallery from '@/components/sidebar/tabs/queue/ResultGallery.vue'
|
||||||
import { useCompletionSummary } from '@/composables/queue/useCompletionSummary'
|
import { useCompletionSummary } from '@/queue/composables/useCompletionSummary'
|
||||||
import { useJobList } from '@/composables/queue/useJobList'
|
import { useJobList } from '@/queue/composables/useJobList'
|
||||||
import type { JobListItem } from '@/composables/queue/useJobList'
|
import type { JobListItem } from '@/queue/composables/useJobList'
|
||||||
import { useQueueProgress } from '@/composables/queue/useQueueProgress'
|
import { useQueueProgress } from '@/queue/composables/useQueueProgress'
|
||||||
import { useResultGallery } from '@/composables/queue/useResultGallery'
|
import { useResultGallery } from '@/queue/composables/useResultGallery'
|
||||||
import { useErrorHandling } from '@/composables/useErrorHandling'
|
import { useErrorHandling } from '@/composables/useErrorHandling'
|
||||||
import { useAssetSelectionStore } from '@/platform/assets/composables/useAssetSelectionStore'
|
import { useAssetSelectionStore } from '@/platform/assets/composables/useAssetSelectionStore'
|
||||||
import { isCloud } from '@/platform/distribution/types'
|
import { isCloud } from '@/platform/distribution/types'
|
||||||
@@ -81,7 +81,7 @@ import { useAssetsStore } from '@/stores/assetsStore'
|
|||||||
import { useCommandStore } from '@/stores/commandStore'
|
import { useCommandStore } from '@/stores/commandStore'
|
||||||
import { useDialogStore } from '@/stores/dialogStore'
|
import { useDialogStore } from '@/stores/dialogStore'
|
||||||
import { useExecutionStore } from '@/stores/executionStore'
|
import { useExecutionStore } from '@/stores/executionStore'
|
||||||
import { useQueueStore } from '@/stores/queueStore'
|
import { useQueueStore } from '@/queue/stores/queueStore'
|
||||||
import { useSidebarTabStore } from '@/stores/workspace/sidebarTabStore'
|
import { useSidebarTabStore } from '@/stores/workspace/sidebarTabStore'
|
||||||
|
|
||||||
type OverlayState = 'hidden' | 'empty' | 'active' | 'expanded'
|
type OverlayState = 'hidden' | 'empty' | 'active' | 'expanded'
|
||||||
@@ -53,7 +53,7 @@ import { useI18n } from 'vue-i18n'
|
|||||||
import Button from '@/components/ui/button/Button.vue'
|
import Button from '@/components/ui/button/Button.vue'
|
||||||
import { useErrorHandling } from '@/composables/useErrorHandling'
|
import { useErrorHandling } from '@/composables/useErrorHandling'
|
||||||
import { useDialogStore } from '@/stores/dialogStore'
|
import { useDialogStore } from '@/stores/dialogStore'
|
||||||
import { useQueueStore } from '@/stores/queueStore'
|
import { useQueueStore } from '@/queue/stores/queueStore'
|
||||||
|
|
||||||
const dialogStore = useDialogStore()
|
const dialogStore = useDialogStore()
|
||||||
const queueStore = useQueueStore()
|
const queueStore = useQueueStore()
|
||||||
@@ -47,7 +47,7 @@ import Popover from 'primevue/popover'
|
|||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
|
|
||||||
import Button from '@/components/ui/button/Button.vue'
|
import Button from '@/components/ui/button/Button.vue'
|
||||||
import type { MenuEntry } from '@/composables/queue/useJobMenu'
|
import type { MenuEntry } from '@/queue/composables/useJobMenu'
|
||||||
|
|
||||||
defineProps<{ entries: MenuEntry[] }>()
|
defineProps<{ entries: MenuEntry[] }>()
|
||||||
|
|
||||||
@@ -2,7 +2,7 @@ import type { Meta, StoryObj } from '@storybook/vue3-vite'
|
|||||||
|
|
||||||
import type { TaskStatus } from '@/schemas/apiSchema'
|
import type { TaskStatus } from '@/schemas/apiSchema'
|
||||||
import { useExecutionStore } from '@/stores/executionStore'
|
import { useExecutionStore } from '@/stores/executionStore'
|
||||||
import { TaskItemImpl, useQueueStore } from '@/stores/queueStore'
|
import { TaskItemImpl, useQueueStore } from '@/queue/stores/queueStore'
|
||||||
|
|
||||||
import JobDetailsPopover from './JobDetailsPopover.vue'
|
import JobDetailsPopover from './JobDetailsPopover.vue'
|
||||||
|
|
||||||
@@ -101,10 +101,10 @@ import { isCloud } from '@/platform/distribution/types'
|
|||||||
import { useWorkflowStore } from '@/platform/workflow/management/stores/workflowStore'
|
import { useWorkflowStore } from '@/platform/workflow/management/stores/workflowStore'
|
||||||
import { useDialogService } from '@/services/dialogService'
|
import { useDialogService } from '@/services/dialogService'
|
||||||
import { useExecutionStore } from '@/stores/executionStore'
|
import { useExecutionStore } from '@/stores/executionStore'
|
||||||
import { useQueueStore } from '@/stores/queueStore'
|
import { useQueueStore } from '@/queue/stores/queueStore'
|
||||||
import type { TaskItemImpl } from '@/stores/queueStore'
|
import type { TaskItemImpl } from '@/queue/stores/queueStore'
|
||||||
import { formatClockTime } from '@/utils/dateTimeUtil'
|
import { formatClockTime } from '@/utils/dateTimeUtil'
|
||||||
import { jobStateFromTask } from '@/utils/queueUtil'
|
import { jobStateFromTask } from '@/queue/utils/queueUtil'
|
||||||
|
|
||||||
import { useJobErrorReporting } from './useJobErrorReporting'
|
import { useJobErrorReporting } from './useJobErrorReporting'
|
||||||
import { formatElapsedTime, useQueueEstimates } from './useQueueEstimates'
|
import { formatElapsedTime, useQueueEstimates } from './useQueueEstimates'
|
||||||
@@ -137,8 +137,8 @@ import { computed, ref } from 'vue'
|
|||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
|
|
||||||
import Button from '@/components/ui/button/Button.vue'
|
import Button from '@/components/ui/button/Button.vue'
|
||||||
import { jobSortModes, jobTabs } from '@/composables/queue/useJobList'
|
import { jobSortModes, jobTabs } from '@/queue/composables/useJobList'
|
||||||
import type { JobSortMode, JobTab } from '@/composables/queue/useJobList'
|
import type { JobSortMode, JobTab } from '@/queue/composables/useJobList'
|
||||||
import { buildTooltipConfig } from '@/composables/useTooltipConfig'
|
import { buildTooltipConfig } from '@/composables/useTooltipConfig'
|
||||||
import { isCloud } from '@/platform/distribution/types'
|
import { isCloud } from '@/platform/distribution/types'
|
||||||
|
|
||||||
@@ -38,8 +38,8 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { onBeforeUnmount, ref, watch } from 'vue'
|
import { onBeforeUnmount, ref, watch } from 'vue'
|
||||||
|
|
||||||
import QueueJobItem from '@/components/queue/job/QueueJobItem.vue'
|
import QueueJobItem from '@/queue/components/job/QueueJobItem.vue'
|
||||||
import type { JobGroup, JobListItem } from '@/composables/queue/useJobList'
|
import type { JobGroup, JobListItem } from '@/queue/composables/useJobList'
|
||||||
|
|
||||||
const props = defineProps<{ displayedJobGroups: JobGroup[] }>()
|
const props = defineProps<{ displayedJobGroups: JobGroup[] }>()
|
||||||
|
|
||||||
@@ -198,12 +198,12 @@
|
|||||||
import { computed, nextTick, ref, watch } from 'vue'
|
import { computed, nextTick, ref, watch } from 'vue'
|
||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
|
|
||||||
import JobDetailsPopover from '@/components/queue/job/JobDetailsPopover.vue'
|
import JobDetailsPopover from '@/queue/components/job/JobDetailsPopover.vue'
|
||||||
import QueueAssetPreview from '@/components/queue/job/QueueAssetPreview.vue'
|
import QueueAssetPreview from '@/queue/components/job/QueueAssetPreview.vue'
|
||||||
import Button from '@/components/ui/button/Button.vue'
|
import Button from '@/components/ui/button/Button.vue'
|
||||||
import { buildTooltipConfig } from '@/composables/useTooltipConfig'
|
import { buildTooltipConfig } from '@/composables/useTooltipConfig'
|
||||||
import type { JobState } from '@/types/queue'
|
import type { JobState } from '@/queue/types/queue'
|
||||||
import { iconForJobState } from '@/utils/queueDisplay'
|
import { iconForJobState } from '@/queue/utils/queueDisplay'
|
||||||
import { cn } from '@/utils/tailwindUtil'
|
import { cn } from '@/utils/tailwindUtil'
|
||||||
|
|
||||||
const props = withDefaults(
|
const props = withDefaults(
|
||||||
@@ -2,7 +2,7 @@ import { computed } from 'vue'
|
|||||||
import type { ComputedRef } from 'vue'
|
import type { ComputedRef } from 'vue'
|
||||||
|
|
||||||
import type { ExecutionErrorWsMessage } from '@/schemas/apiSchema'
|
import type { ExecutionErrorWsMessage } from '@/schemas/apiSchema'
|
||||||
import type { TaskItemImpl } from '@/stores/queueStore'
|
import type { TaskItemImpl } from '@/queue/stores/queueStore'
|
||||||
|
|
||||||
type CopyHandler = (value: string) => void | Promise<void>
|
type CopyHandler = (value: string) => void | Promise<void>
|
||||||
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
import { computed, ref } from 'vue'
|
import { computed, ref } from 'vue'
|
||||||
import { describe, expect, it } from 'vitest'
|
import { describe, expect, it } from 'vitest'
|
||||||
|
|
||||||
import type { TaskItemImpl } from '@/stores/queueStore'
|
import type { TaskItemImpl } from '@/queue/stores/queueStore'
|
||||||
import type { JobState } from '@/types/queue'
|
import type { JobState } from '@/queue/types/queue'
|
||||||
|
|
||||||
import { formatElapsedTime, useQueueEstimates } from './useQueueEstimates'
|
import { formatElapsedTime, useQueueEstimates } from './useQueueEstimates'
|
||||||
import type { UseQueueEstimatesOptions } from './useQueueEstimates'
|
import type { UseQueueEstimatesOptions } from './useQueueEstimates'
|
||||||
@@ -2,8 +2,8 @@ import { computed } from 'vue'
|
|||||||
import type { ComputedRef, Ref } from 'vue'
|
import type { ComputedRef, Ref } from 'vue'
|
||||||
|
|
||||||
import type { useExecutionStore } from '@/stores/executionStore'
|
import type { useExecutionStore } from '@/stores/executionStore'
|
||||||
import type { TaskItemImpl, useQueueStore } from '@/stores/queueStore'
|
import type { TaskItemImpl, useQueueStore } from '@/queue/stores/queueStore'
|
||||||
import type { JobState } from '@/types/queue'
|
import type { JobState } from '@/queue/types/queue'
|
||||||
|
|
||||||
type QueueStore = ReturnType<typeof useQueueStore>
|
type QueueStore = ReturnType<typeof useQueueStore>
|
||||||
type ExecutionStore = ReturnType<typeof useExecutionStore>
|
type ExecutionStore = ReturnType<typeof useExecutionStore>
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
import { computed, ref, watch } from 'vue'
|
import { computed, ref, watch } from 'vue'
|
||||||
|
|
||||||
import { useExecutionStore } from '@/stores/executionStore'
|
import { useExecutionStore } from '@/stores/executionStore'
|
||||||
import { useQueueStore } from '@/stores/queueStore'
|
import { useQueueStore } from '@/queue/stores/queueStore'
|
||||||
import { jobStateFromTask } from '@/utils/queueUtil'
|
import { jobStateFromTask } from '@/queue/utils/queueUtil'
|
||||||
|
|
||||||
export type CompletionSummaryMode = 'allSuccess' | 'mixed' | 'allFailed'
|
export type CompletionSummaryMode = 'allSuccess' | 'mixed' | 'allFailed'
|
||||||
|
|
||||||
@@ -2,9 +2,9 @@ import { computed, ref } from 'vue'
|
|||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
|
|
||||||
import { useErrorHandling } from '@/composables/useErrorHandling'
|
import { useErrorHandling } from '@/composables/useErrorHandling'
|
||||||
import type { JobListItem } from '@/composables/queue/useJobList'
|
import type { JobListItem } from '@/queue/composables/useJobList'
|
||||||
import { useJobMenu } from '@/composables/queue/useJobMenu'
|
import { useJobMenu } from '@/queue/composables/useJobMenu'
|
||||||
import type { JobState } from '@/types/queue'
|
import type { JobState } from '@/queue/types/queue'
|
||||||
|
|
||||||
type JobActionKey = 'cancel'
|
type JobActionKey = 'cancel'
|
||||||
|
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
import { computed, onUnmounted, ref, watch } from 'vue'
|
import { computed, onUnmounted, ref, watch } from 'vue'
|
||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
|
|
||||||
import { useQueueProgress } from '@/composables/queue/useQueueProgress'
|
import { useQueueProgress } from '@/queue/composables/useQueueProgress'
|
||||||
import { st } from '@/i18n'
|
import { st } from '@/i18n'
|
||||||
import { isCloud } from '@/platform/distribution/types'
|
import { isCloud } from '@/platform/distribution/types'
|
||||||
import { useWorkflowStore } from '@/platform/workflow/management/stores/workflowStore'
|
import { useWorkflowStore } from '@/platform/workflow/management/stores/workflowStore'
|
||||||
import { useExecutionStore } from '@/stores/executionStore'
|
import { useExecutionStore } from '@/stores/executionStore'
|
||||||
import { useQueueStore } from '@/stores/queueStore'
|
import { useQueueStore } from '@/queue/stores/queueStore'
|
||||||
import type { TaskItemImpl } from '@/stores/queueStore'
|
import type { TaskItemImpl } from '@/queue/stores/queueStore'
|
||||||
import type { JobState } from '@/types/queue'
|
import type { JobState } from '@/queue/types/queue'
|
||||||
import {
|
import {
|
||||||
dateKey,
|
dateKey,
|
||||||
formatClockTime,
|
formatClockTime,
|
||||||
@@ -17,8 +17,8 @@ import {
|
|||||||
isYesterday
|
isYesterday
|
||||||
} from '@/utils/dateTimeUtil'
|
} from '@/utils/dateTimeUtil'
|
||||||
import { normalizeI18nKey } from '@/utils/formatUtil'
|
import { normalizeI18nKey } from '@/utils/formatUtil'
|
||||||
import { buildJobDisplay } from '@/utils/queueDisplay'
|
import { buildJobDisplay } from '@/queue/utils/queueDisplay'
|
||||||
import { jobStateFromTask } from '@/utils/queueUtil'
|
import { jobStateFromTask } from '@/queue/utils/queueUtil'
|
||||||
|
|
||||||
/** Tabs for job list filtering */
|
/** Tabs for job list filtering */
|
||||||
export const jobTabs = ['All', 'Completed', 'Failed'] as const
|
export const jobTabs = ['All', 'Completed', 'Failed'] as const
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
|
|
||||||
import { downloadFile } from '@/base/common/downloadUtil'
|
import { downloadFile } from '@/base/common/downloadUtil'
|
||||||
import type { JobListItem } from '@/composables/queue/useJobList'
|
import type { JobListItem } from '@/queue/composables/useJobList'
|
||||||
import { useCopyToClipboard } from '@/composables/useCopyToClipboard'
|
import { useCopyToClipboard } from '@/composables/useCopyToClipboard'
|
||||||
import { st, t } from '@/i18n'
|
import { st, t } from '@/i18n'
|
||||||
import { mapTaskOutputToAssetItem } from '@/platform/assets/composables/media/assetMappers'
|
import { mapTaskOutputToAssetItem } from '@/platform/assets/composables/media/assetMappers'
|
||||||
@@ -19,8 +19,8 @@ import { downloadBlob } from '@/scripts/utils'
|
|||||||
import { useDialogService } from '@/services/dialogService'
|
import { useDialogService } from '@/services/dialogService'
|
||||||
import { useLitegraphService } from '@/services/litegraphService'
|
import { useLitegraphService } from '@/services/litegraphService'
|
||||||
import { useNodeDefStore } from '@/stores/nodeDefStore'
|
import { useNodeDefStore } from '@/stores/nodeDefStore'
|
||||||
import { useQueueStore } from '@/stores/queueStore'
|
import { useQueueStore } from '@/queue/stores/queueStore'
|
||||||
import type { ResultItemImpl, TaskItemImpl } from '@/stores/queueStore'
|
import type { ResultItemImpl, TaskItemImpl } from '@/queue/stores/queueStore'
|
||||||
import { createAnnotatedPath } from '@/utils/createAnnotatedPath'
|
import { createAnnotatedPath } from '@/utils/createAnnotatedPath'
|
||||||
import { appendJsonExt } from '@/utils/formatUtil'
|
import { appendJsonExt } from '@/utils/formatUtil'
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import { ref, shallowRef } from 'vue'
|
import { ref, shallowRef } from 'vue'
|
||||||
|
|
||||||
import type { JobListItem } from '@/composables/queue/useJobList'
|
import type { JobListItem } from '@/queue/composables/useJobList'
|
||||||
import type { ResultItemImpl } from '@/stores/queueStore'
|
import type { ResultItemImpl } from '@/queue/stores/queueStore'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Manages result gallery state and activation for queue items.
|
* Manages result gallery state and activation for queue items.
|
||||||
@@ -3,7 +3,7 @@ import { app } from '@/scripts/app'
|
|||||||
import {
|
import {
|
||||||
useQueuePendingTaskCountStore,
|
useQueuePendingTaskCountStore,
|
||||||
useQueueSettingsStore
|
useQueueSettingsStore
|
||||||
} from '@/stores/queueStore'
|
} from '@/queue/stores/queueStore'
|
||||||
|
|
||||||
export function setupAutoQueueHandler() {
|
export function setupAutoQueueHandler() {
|
||||||
const queueCountStore = useQueuePendingTaskCountStore()
|
const queueCountStore = useQueuePendingTaskCountStore()
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { TaskItemImpl } from '@/stores/queueStore'
|
import type { TaskItemImpl } from '@/queue/stores/queueStore'
|
||||||
import type { JobState } from '@/types/queue'
|
import type { JobState } from '@/queue/types/queue'
|
||||||
import { formatDuration } from '@/utils/formatUtil'
|
import { formatDuration } from '@/utils/formatUtil'
|
||||||
import { clampPercentInt, formatPercent0 } from '@/utils/numberUtil'
|
import { clampPercentInt, formatPercent0 } from '@/utils/numberUtil'
|
||||||
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { TaskItemImpl } from '@/stores/queueStore'
|
import type { TaskItemImpl } from '@/queue/stores/queueStore'
|
||||||
import type { JobState } from '@/types/queue'
|
import type { JobState } from '@/queue/types/queue'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Map a task to a UI job state, including initialization override.
|
* Map a task to a UI job state, including initialization override.
|
||||||
@@ -18,7 +18,7 @@ import { useAssetWidgetData } from '@/renderer/extensions/vueNodes/widgets/compo
|
|||||||
import type { ResultItemType } from '@/schemas/apiSchema'
|
import type { ResultItemType } from '@/schemas/apiSchema'
|
||||||
import { api } from '@/scripts/api'
|
import { api } from '@/scripts/api'
|
||||||
import { useAssetsStore } from '@/stores/assetsStore'
|
import { useAssetsStore } from '@/stores/assetsStore'
|
||||||
import { useQueueStore } from '@/stores/queueStore'
|
import { useQueueStore } from '@/queue/stores/queueStore'
|
||||||
import type { SimplifiedWidget } from '@/types/simplifiedWidget'
|
import type { SimplifiedWidget } from '@/types/simplifiedWidget'
|
||||||
import type { AssetKind } from '@/types/widgetTypes'
|
import type { AssetKind } from '@/types/widgetTypes'
|
||||||
import {
|
import {
|
||||||
|
|||||||
@@ -130,9 +130,6 @@ The following table lists ALL 46 store instances in the system as of 2025-09-01:
|
|||||||
| nodeBookmarkStore.ts | useNodeBookmarkStore | Manages node bookmarks and favorites | Nodes |
|
| nodeBookmarkStore.ts | useNodeBookmarkStore | Manages node bookmarks and favorites | Nodes |
|
||||||
| nodeDefStore.ts | useNodeDefStore | Manages node definitions and schemas | Nodes |
|
| nodeDefStore.ts | useNodeDefStore | Manages node definitions and schemas | Nodes |
|
||||||
| nodeDefStore.ts | useNodeFrequencyStore | Tracks node usage frequency | Nodes |
|
| nodeDefStore.ts | useNodeFrequencyStore | Tracks node usage frequency | Nodes |
|
||||||
| queueStore.ts | useQueueStore | Manages execution queue and task history | Execution |
|
|
||||||
| queueStore.ts | useQueuePendingTaskCountStore | Tracks pending task counts | Execution |
|
|
||||||
| queueStore.ts | useQueueSettingsStore | Manages queue execution settings | Execution |
|
|
||||||
| releaseStore.ts | useReleaseStore | Manages application release information | System |
|
| releaseStore.ts | useReleaseStore | Manages application release information | System |
|
||||||
| serverConfigStore.ts | useServerConfigStore | Handles server configuration | Config |
|
| serverConfigStore.ts | useServerConfigStore | Handles server configuration | Config |
|
||||||
| settingStore.ts | useSettingStore | Manages application settings | Config |
|
| settingStore.ts | useSettingStore | Manages application settings | Config |
|
||||||
@@ -148,6 +145,8 @@ The following table lists ALL 46 store instances in the system as of 2025-09-01:
|
|||||||
| workflowTemplatesStore.ts | useWorkflowTemplatesStore | Manages workflow templates | Workflows |
|
| workflowTemplatesStore.ts | useWorkflowTemplatesStore | Manages workflow templates | Workflows |
|
||||||
| workspaceStore.ts | useWorkspaceStore | Manages overall workspace state | Workspace |
|
| workspaceStore.ts | useWorkspaceStore | Manages overall workspace state | Workspace |
|
||||||
|
|
||||||
|
Note: queue stores live in `src/queue/stores/queueStore.ts`.
|
||||||
|
|
||||||
### Workspace Stores
|
### Workspace Stores
|
||||||
Located in `stores/workspace/`:
|
Located in `stores/workspace/`:
|
||||||
|
|
||||||
@@ -386,4 +385,4 @@ describe('useExampleStore', () => {
|
|||||||
})
|
})
|
||||||
```
|
```
|
||||||
|
|
||||||
For more information on Pinia, refer to the [Pinia documentation](https://pinia.vuejs.org/introduction.html).
|
For more information on Pinia, refer to the [Pinia documentation](https://pinia.vuejs.org/introduction.html).
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { isCloud } from '@/platform/distribution/types'
|
|||||||
import type { TaskItem } from '@/schemas/apiSchema'
|
import type { TaskItem } from '@/schemas/apiSchema'
|
||||||
import { api } from '@/scripts/api'
|
import { api } from '@/scripts/api'
|
||||||
|
|
||||||
import { TaskItemImpl } from './queueStore'
|
import { TaskItemImpl } from '@/queue/stores/queueStore'
|
||||||
|
|
||||||
const INPUT_LIMIT = 100
|
const INPUT_LIMIT = 100
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import type { SidebarTabExtension, ToastManager } from '@/types/extensionTypes'
|
|||||||
import { useApiKeyAuthStore } from './apiKeyAuthStore'
|
import { useApiKeyAuthStore } from './apiKeyAuthStore'
|
||||||
import { useCommandStore } from './commandStore'
|
import { useCommandStore } from './commandStore'
|
||||||
import { useFirebaseAuthStore } from './firebaseAuthStore'
|
import { useFirebaseAuthStore } from './firebaseAuthStore'
|
||||||
import { useQueueSettingsStore } from './queueStore'
|
import { useQueueSettingsStore } from '@/queue/stores/queueStore'
|
||||||
import { useBottomPanelStore } from './workspace/bottomPanelStore'
|
import { useBottomPanelStore } from './workspace/bottomPanelStore'
|
||||||
import { useSidebarTabStore } from './workspace/sidebarTabStore'
|
import { useSidebarTabStore } from './workspace/sidebarTabStore'
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
|
|
||||||
import type { JobAction } from '../../composables/queue/useJobActions'
|
import type { JobAction } from '@/queue/composables/useJobActions'
|
||||||
import type { JobListItem } from '../../composables/queue/useJobList'
|
import type { JobListItem } from '@/queue/composables/useJobList'
|
||||||
|
|
||||||
const actionsByJobId = ref<Record<string, JobAction[]>>({})
|
const actionsByJobId = ref<Record<string, JobAction[]>>({})
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import { computed, ref } from 'vue'
|
import { computed, ref } from 'vue'
|
||||||
|
|
||||||
import type { TaskItemImpl } from '../../stores/queueStore'
|
import type { TaskItemImpl } from '@/queue/stores/queueStore'
|
||||||
import type {
|
import type {
|
||||||
JobGroup,
|
JobGroup,
|
||||||
JobListItem,
|
JobListItem,
|
||||||
JobSortMode,
|
JobSortMode,
|
||||||
JobTab
|
JobTab
|
||||||
} from '../../composables/queue/useJobList'
|
} from '@/queue/composables/useJobList'
|
||||||
|
|
||||||
const jobItems = ref<JobListItem[]>([])
|
const jobItems = ref<JobListItem[]>([])
|
||||||
|
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
|
|||||||
import type { StatusWsMessageStatus } from '@/schemas/apiSchema'
|
import type { StatusWsMessageStatus } from '@/schemas/apiSchema'
|
||||||
import { api } from '@/scripts/api'
|
import { api } from '@/scripts/api'
|
||||||
import { app } from '@/scripts/app'
|
import { app } from '@/scripts/app'
|
||||||
import { setupAutoQueueHandler } from '@/services/autoQueueService'
|
import { setupAutoQueueHandler } from '@/queue/services/autoQueueService'
|
||||||
import { useKeybindingService } from '@/services/keybindingService'
|
import { useKeybindingService } from '@/services/keybindingService'
|
||||||
import { useAssetsStore } from '@/stores/assetsStore'
|
import { useAssetsStore } from '@/stores/assetsStore'
|
||||||
import { useCommandStore } from '@/stores/commandStore'
|
import { useCommandStore } from '@/stores/commandStore'
|
||||||
@@ -70,7 +70,7 @@ import { useNodeDefStore, useNodeFrequencyStore } from '@/stores/nodeDefStore'
|
|||||||
import {
|
import {
|
||||||
useQueuePendingTaskCountStore,
|
useQueuePendingTaskCountStore,
|
||||||
useQueueStore
|
useQueueStore
|
||||||
} from '@/stores/queueStore'
|
} from '@/queue/stores/queueStore'
|
||||||
import { useServerConfigStore } from '@/stores/serverConfigStore'
|
import { useServerConfigStore } from '@/stores/serverConfigStore'
|
||||||
import { useBottomPanelStore } from '@/stores/workspace/bottomPanelStore'
|
import { useBottomPanelStore } from '@/stores/workspace/bottomPanelStore'
|
||||||
import { useColorPaletteStore } from '@/stores/workspace/colorPaletteStore'
|
import { useColorPaletteStore } from '@/stores/workspace/colorPaletteStore'
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import WidgetInputNumberInput from '@/renderer/extensions/vueNodes/widgets/compo
|
|||||||
import { app } from '@/scripts/app'
|
import { app } from '@/scripts/app'
|
||||||
import { useCommandStore } from '@/stores/commandStore'
|
import { useCommandStore } from '@/stores/commandStore'
|
||||||
import { useNodeOutputStore } from '@/stores/imagePreviewStore'
|
import { useNodeOutputStore } from '@/stores/imagePreviewStore'
|
||||||
import { useQueueSettingsStore } from '@/stores/queueStore'
|
import { useQueueSettingsStore } from '@/queue/stores/queueStore'
|
||||||
import { isElectron } from '@/utils/envUtil'
|
import { isElectron } from '@/utils/envUtil'
|
||||||
|
|
||||||
const nodeOutputStore = useNodeOutputStore()
|
const nodeOutputStore = useNodeOutputStore()
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ import { mount } from '@vue/test-utils'
|
|||||||
import { afterEach, describe, expect, it, vi } from 'vitest'
|
import { afterEach, describe, expect, it, vi } from 'vitest'
|
||||||
import { defineComponent, nextTick } from 'vue'
|
import { defineComponent, nextTick } from 'vue'
|
||||||
|
|
||||||
import JobGroupsList from '@/components/queue/job/JobGroupsList.vue'
|
import JobGroupsList from '@/queue/components/job/JobGroupsList.vue'
|
||||||
import type { JobGroup, JobListItem } from '@/composables/queue/useJobList'
|
import type { JobGroup, JobListItem } from '@/queue/composables/useJobList'
|
||||||
|
|
||||||
const QueueJobItemStub = defineComponent({
|
const QueueJobItemStub = defineComponent({
|
||||||
name: 'QueueJobItemStub',
|
name: 'QueueJobItemStub',
|
||||||
@@ -22,7 +22,6 @@ const QueueJobItemStub = defineComponent({
|
|||||||
runningNodeName: { type: String, default: undefined },
|
runningNodeName: { type: String, default: undefined },
|
||||||
activeDetailsId: { type: String, default: null }
|
activeDetailsId: { type: String, default: null }
|
||||||
},
|
},
|
||||||
emits: ['cancel', 'delete', 'menu', 'view', 'details-enter', 'details-leave'],
|
|
||||||
template: '<div class="queue-job-item-stub"></div>'
|
template: '<div class="queue-job-item-stub"></div>'
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -3,12 +3,12 @@ import { computed, ref } from 'vue'
|
|||||||
import type { ComputedRef } from 'vue'
|
import type { ComputedRef } from 'vue'
|
||||||
|
|
||||||
import type { ExecutionErrorWsMessage } from '@/schemas/apiSchema'
|
import type { ExecutionErrorWsMessage } from '@/schemas/apiSchema'
|
||||||
import type { TaskItemImpl } from '@/stores/queueStore'
|
import type { TaskItemImpl } from '@/queue/stores/queueStore'
|
||||||
import type {
|
import type {
|
||||||
JobErrorDialogService,
|
JobErrorDialogService,
|
||||||
UseJobErrorReportingOptions
|
UseJobErrorReportingOptions
|
||||||
} from '@/components/queue/job/useJobErrorReporting'
|
} from '@/queue/components/job/useJobErrorReporting'
|
||||||
import * as jobErrorReporting from '@/components/queue/job/useJobErrorReporting'
|
import * as jobErrorReporting from '@/queue/components/job/useJobErrorReporting'
|
||||||
|
|
||||||
const createExecutionErrorMessage = (
|
const createExecutionErrorMessage = (
|
||||||
overrides: Partial<ExecutionErrorWsMessage> = {}
|
overrides: Partial<ExecutionErrorWsMessage> = {}
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||||
import { nextTick, reactive } from 'vue'
|
import { nextTick, reactive } from 'vue'
|
||||||
|
|
||||||
import { useCompletionSummary } from '@/composables/queue/useCompletionSummary'
|
import { useCompletionSummary } from '@/queue/composables/useCompletionSummary'
|
||||||
import { useExecutionStore } from '@/stores/executionStore'
|
import { useExecutionStore } from '@/stores/executionStore'
|
||||||
import { useQueueStore } from '@/stores/queueStore'
|
import { useQueueStore } from '@/queue/stores/queueStore'
|
||||||
|
|
||||||
type MockTask = {
|
type MockTask = {
|
||||||
displayStatus: 'Completed' | 'Failed' | 'Cancelled' | 'Running' | 'Pending'
|
displayStatus: 'Completed' | 'Failed' | 'Cancelled' | 'Running' | 'Pending'
|
||||||
@@ -14,7 +14,7 @@ type MockTask = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
vi.mock('@/stores/queueStore', () => {
|
vi.mock('@/queue/stores/queueStore', () => {
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
runningTasks: [] as MockTask[],
|
runningTasks: [] as MockTask[],
|
||||||
historyTasks: [] as MockTask[]
|
historyTasks: [] as MockTask[]
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest'
|
|||||||
import { nextTick, reactive, ref } from 'vue'
|
import { nextTick, reactive, ref } from 'vue'
|
||||||
import type { Ref } from 'vue'
|
import type { Ref } from 'vue'
|
||||||
|
|
||||||
import { useJobList } from '@/composables/queue/useJobList'
|
import { useJobList } from '@/queue/composables/useJobList'
|
||||||
import type { JobState } from '@/types/queue'
|
import type { JobState } from '@/queue/types/queue'
|
||||||
import { buildJobDisplay } from '@/utils/queueDisplay'
|
import { buildJobDisplay } from '@/queue/utils/queueDisplay'
|
||||||
import type { BuildJobDisplayCtx } from '@/utils/queueDisplay'
|
import type { BuildJobDisplayCtx } from '@/queue/utils/queueDisplay'
|
||||||
import type { TaskItemImpl } from '@/stores/queueStore'
|
import type { TaskItemImpl } from '@/queue/stores/queueStore'
|
||||||
|
|
||||||
type TestTask = {
|
type TestTask = {
|
||||||
promptId: string
|
promptId: string
|
||||||
@@ -57,7 +57,7 @@ const ensureProgressRefs = () => {
|
|||||||
if (!currentNodePercent) currentNodePercent = ref(0) as Ref<number>
|
if (!currentNodePercent) currentNodePercent = ref(0) as Ref<number>
|
||||||
return { totalPercent, currentNodePercent }
|
return { totalPercent, currentNodePercent }
|
||||||
}
|
}
|
||||||
vi.mock('@/composables/queue/useQueueProgress', () => ({
|
vi.mock('@/queue/composables/useQueueProgress', () => ({
|
||||||
useQueueProgress: () => {
|
useQueueProgress: () => {
|
||||||
ensureProgressRefs()
|
ensureProgressRefs()
|
||||||
return {
|
return {
|
||||||
@@ -67,7 +67,7 @@ vi.mock('@/composables/queue/useQueueProgress', () => ({
|
|||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
|
|
||||||
vi.mock('@/utils/queueDisplay', () => ({
|
vi.mock('@/queue/utils/queueDisplay', () => ({
|
||||||
buildJobDisplay: vi.fn(
|
buildJobDisplay: vi.fn(
|
||||||
(task: TaskItemImpl, state: JobState, options: BuildJobDisplayCtx) => ({
|
(task: TaskItemImpl, state: JobState, options: BuildJobDisplayCtx) => ({
|
||||||
primary: `Job ${task.promptId}`,
|
primary: `Job ${task.promptId}`,
|
||||||
@@ -80,7 +80,7 @@ vi.mock('@/utils/queueDisplay', () => ({
|
|||||||
)
|
)
|
||||||
}))
|
}))
|
||||||
|
|
||||||
vi.mock('@/utils/queueUtil', () => ({
|
vi.mock('@/queue/utils/queueUtil', () => ({
|
||||||
jobStateFromTask: vi.fn(
|
jobStateFromTask: vi.fn(
|
||||||
(task: TestTask, isInitializing?: boolean): JobState =>
|
(task: TestTask, isInitializing?: boolean): JobState =>
|
||||||
task.mockState ?? (isInitializing ? 'running' : 'completed')
|
task.mockState ?? (isInitializing ? 'running' : 'completed')
|
||||||
@@ -102,7 +102,7 @@ const ensureQueueStore = () => {
|
|||||||
}
|
}
|
||||||
return queueStoreMock
|
return queueStoreMock
|
||||||
}
|
}
|
||||||
vi.mock('@/stores/queueStore', () => ({
|
vi.mock('@/queue/stores/queueStore', () => ({
|
||||||
useQueueStore: () => {
|
useQueueStore: () => {
|
||||||
return ensureQueueStore()
|
return ensureQueueStore()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ import { describe, it, expect, beforeEach, vi } from 'vitest'
|
|||||||
import { nextTick, ref } from 'vue'
|
import { nextTick, ref } from 'vue'
|
||||||
import type { Ref } from 'vue'
|
import type { Ref } from 'vue'
|
||||||
|
|
||||||
import type { JobListItem } from '@/composables/queue/useJobList'
|
import type { JobListItem } from '@/queue/composables/useJobList'
|
||||||
import type { MenuEntry } from '@/composables/queue/useJobMenu'
|
import type { MenuEntry } from '@/queue/composables/useJobMenu'
|
||||||
|
|
||||||
const downloadFileMock = vi.fn()
|
const downloadFileMock = vi.fn()
|
||||||
vi.mock('@/base/common/downloadUtil', () => ({
|
vi.mock('@/base/common/downloadUtil', () => ({
|
||||||
@@ -99,7 +99,7 @@ const queueStoreMock = {
|
|||||||
update: vi.fn(),
|
update: vi.fn(),
|
||||||
delete: vi.fn()
|
delete: vi.fn()
|
||||||
}
|
}
|
||||||
vi.mock('@/stores/queueStore', () => ({
|
vi.mock('@/queue/stores/queueStore', () => ({
|
||||||
useQueueStore: () => queueStoreMock
|
useQueueStore: () => queueStoreMock
|
||||||
}))
|
}))
|
||||||
|
|
||||||
@@ -116,7 +116,7 @@ vi.mock('@/utils/formatUtil', () => ({
|
|||||||
appendJsonExtMock(...args)
|
appendJsonExtMock(...args)
|
||||||
}))
|
}))
|
||||||
|
|
||||||
import { useJobMenu } from '@/composables/queue/useJobMenu'
|
import { useJobMenu } from '@/queue/composables/useJobMenu'
|
||||||
|
|
||||||
const createJobItem = (overrides: Partial<JobListItem> = {}): JobListItem => ({
|
const createJobItem = (overrides: Partial<JobListItem> = {}): JobListItem => ({
|
||||||
id: overrides.id ?? 'job-1',
|
id: overrides.id ?? 'job-1',
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { nextTick, ref } from 'vue'
|
|||||||
import type { Ref } from 'vue'
|
import type { Ref } from 'vue'
|
||||||
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest'
|
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest'
|
||||||
|
|
||||||
import { useQueueProgress } from '@/composables/queue/useQueueProgress'
|
import { useQueueProgress } from '@/queue/composables/useQueueProgress'
|
||||||
import { formatPercent0 } from '@/utils/numberUtil'
|
import { formatPercent0 } from '@/utils/numberUtil'
|
||||||
|
|
||||||
type ProgressValue = number | null
|
type ProgressValue = number | null
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { describe, it, expect } from 'vitest'
|
import { describe, it, expect } from 'vitest'
|
||||||
|
|
||||||
import { useResultGallery } from '@/composables/queue/useResultGallery'
|
import { useResultGallery } from '@/queue/composables/useResultGallery'
|
||||||
import type { JobListItem } from '@/composables/queue/useJobList'
|
import type { JobListItem } from '@/queue/composables/useJobList'
|
||||||
|
|
||||||
type PreviewLike = { url: string; supportsPreview: boolean }
|
type PreviewLike = { url: string; supportsPreview: boolean }
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ const {
|
|||||||
WidgetToggleSwitch
|
WidgetToggleSwitch
|
||||||
} = FOR_TESTING
|
} = FOR_TESTING
|
||||||
|
|
||||||
vi.mock('@/stores/queueStore', () => ({
|
vi.mock('@/queue/stores/queueStore', () => ({
|
||||||
useQueueStore: vi.fn(() => ({
|
useQueueStore: vi.fn(() => ({
|
||||||
historyTasks: []
|
historyTasks: []
|
||||||
}))
|
}))
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ vi.mock('@/platform/distribution/types', () => ({
|
|||||||
}))
|
}))
|
||||||
|
|
||||||
// Mock TaskItemImpl
|
// Mock TaskItemImpl
|
||||||
vi.mock('@/stores/queueStore', () => ({
|
vi.mock('@/queue/stores/queueStore', () => ({
|
||||||
TaskItemImpl: class {
|
TaskItemImpl: class {
|
||||||
public flatOutputs: Array<{
|
public flatOutputs: Array<{
|
||||||
supportsPreview: boolean
|
supportsPreview: boolean
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import type {
|
|||||||
TaskStatus
|
TaskStatus
|
||||||
} from '@/schemas/apiSchema'
|
} from '@/schemas/apiSchema'
|
||||||
import { api } from '@/scripts/api'
|
import { api } from '@/scripts/api'
|
||||||
import { TaskItemImpl, useQueueStore } from '@/stores/queueStore'
|
import { TaskItemImpl, useQueueStore } from '@/queue/stores/queueStore'
|
||||||
|
|
||||||
// Fixture factories
|
// Fixture factories
|
||||||
const createTaskPrompt = (
|
const createTaskPrompt = (
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|||||||
|
|
||||||
import type { ComfyApp } from '@/scripts/app'
|
import type { ComfyApp } from '@/scripts/app'
|
||||||
import type { ComfyWorkflowJSON } from '@/platform/workflow/validation/schemas/workflowSchema'
|
import type { ComfyWorkflowJSON } from '@/platform/workflow/validation/schemas/workflowSchema'
|
||||||
import { TaskItemImpl } from '@/stores/queueStore'
|
import { TaskItemImpl } from '@/queue/stores/queueStore'
|
||||||
import * as getWorkflowModule from '@/platform/workflow/cloud'
|
import * as getWorkflowModule from '@/platform/workflow/cloud'
|
||||||
|
|
||||||
vi.mock('@/platform/distribution/types', () => ({
|
vi.mock('@/platform/distribution/types', () => ({
|
||||||
|
|||||||
Reference in New Issue
Block a user