diff --git a/client/src/components/Collections/ListCollectionCreator.vue b/client/src/components/Collections/ListCollectionCreator.vue index 825c2c4a13b..eeaca575bd5 100644 --- a/client/src/components/Collections/ListCollectionCreator.vue +++ b/client/src/components/Collections/ListCollectionCreator.vue @@ -159,7 +159,7 @@ function _isElementInvalid(element: HistoryItemSummary): string | null { return localize("is a collection, this is not allowed"); } - var validState = element.state === STATES.OK || STATES.NOT_READY_STATES.includes(element.state as string); + const validState = STATES.VALID_INPUT_STATES.includes(element.state as string); if (!validState) { return localize("has errored, is paused, or is not accessible"); diff --git a/client/src/components/Collections/PairCollectionCreator.vue b/client/src/components/Collections/PairCollectionCreator.vue index 95997a5c00c..13e755dbd14 100644 --- a/client/src/components/Collections/PairCollectionCreator.vue +++ b/client/src/components/Collections/PairCollectionCreator.vue @@ -199,7 +199,7 @@ function _isElementInvalid(element: HistoryItemSummary) { return localize("is a collection, this is not allowed"); } - var validState = element.state === STATES.OK || STATES.NOT_READY_STATES.includes(element.state as string); + const validState = STATES.VALID_INPUT_STATES.includes(element.state as string); if (!validState) { return localize("has errored, is paused, or is not accessible"); diff --git a/client/src/components/Collections/PairedListCollectionCreator.vue b/client/src/components/Collections/PairedListCollectionCreator.vue index 4542ad32445..6fd9f9be825 100644 --- a/client/src/components/Collections/PairedListCollectionCreator.vue +++ b/client/src/components/Collections/PairedListCollectionCreator.vue @@ -290,7 +290,7 @@ function _isElementInvalid(element: HistoryItemSummary) { if (element.history_content_type === "dataset_collection") { return localize("is a collection, this is not allowed"); } - var validState = element.state === STATES.OK || STATES.NOT_READY_STATES.includes(element.state as string); + const validState = STATES.VALID_INPUT_STATES.includes(element.state as string); if (!validState) { return localize("has errored, is paused, or is not accessible"); } diff --git a/client/src/mvc/dataset/states.ts b/client/src/mvc/dataset/states.ts index dd5b37d7fb0..262b1e99fe6 100644 --- a/client/src/mvc/dataset/states.ts +++ b/client/src/mvc/dataset/states.ts @@ -2,7 +2,7 @@ /** Map of possible HDA/collection/job states to their string equivalents. * A port of galaxy.model.Dataset.states. */ -const STATES = { +const RAW_STATES = { // NOT ready states /** is uploading and not ready */ UPLOAD: "upload", @@ -34,23 +34,31 @@ const STATES = { DEFERRED: "deferred", /** the tool producing this dataset failed */ ERROR: "error", - - READY_STATES: [] as string[], - NOT_READY_STATES: [] as string[], }; -STATES.READY_STATES = [ - STATES.OK, - STATES.EMPTY, - STATES.PAUSED, - STATES.FAILED_METADATA, - STATES.NOT_VIEWABLE, - STATES.DEFERRED, - STATES.DISCARDED, - STATES.ERROR, -]; - -STATES.NOT_READY_STATES = [STATES.UPLOAD, STATES.QUEUED, STATES.RUNNING, STATES.SETTING_METADATA, STATES.NEW]; +const STATES = { + ...RAW_STATES, + READY_STATES: [ + RAW_STATES.OK, + RAW_STATES.EMPTY, + RAW_STATES.PAUSED, + RAW_STATES.FAILED_METADATA, + RAW_STATES.NOT_VIEWABLE, + RAW_STATES.DEFERRED, + RAW_STATES.DISCARDED, + RAW_STATES.ERROR, + ], + NOT_READY_STATES: [ + RAW_STATES.UPLOAD, + RAW_STATES.QUEUED, + RAW_STATES.RUNNING, + RAW_STATES.SETTING_METADATA, + RAW_STATES.NEW, + ], + VALID_INPUT_STATES: Object.values(RAW_STATES).filter( + (state) => ![RAW_STATES.ERROR, RAW_STATES.DISCARDED, RAW_STATES.FAILED_METADATA].includes(state) + ), +}; //============================================================================== export default STATES;