From: Peter Amstutz Date: Mon, 23 May 2022 14:30:04 +0000 (-0400) Subject: Merge branch '16583-intermediate-collections' refs #16583 X-Git-Tag: 2.4.1~1^2~3 X-Git-Url: https://git.arvados.org/arvados-workbench2.git/commitdiff_plain/0e3d1681d9ed60bae0b91b368efb1325f5aee239?hp=efda60590a2ed0942a8091d978d73fb047bd4a26 Merge branch '16583-intermediate-collections' refs #16583 Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- diff --git a/src/models/collection.ts b/src/models/collection.ts index 9a5d2ee2..defaca76 100644 --- a/src/models/collection.ts +++ b/src/models/collection.ts @@ -70,4 +70,5 @@ export enum CollectionType { GENERAL = 'nil', OUTPUT = 'output', LOG = 'log', + INTERMEDIATE = 'intermediate', } diff --git a/src/store/resource-type-filters/resource-type-filters.test.ts b/src/store/resource-type-filters/resource-type-filters.test.ts index 698515bd..a3684507 100644 --- a/src/store/resource-type-filters/resource-type-filters.test.ts +++ b/src/store/resource-type-filters/resource-type-filters.test.ts @@ -47,6 +47,7 @@ describe("serializeResourceTypeFilters", () => { deselectNode(ObjectTypeFilter.PROCESS), deselectNode(CollectionTypeFilter.GENERAL_COLLECTION), deselectNode(CollectionTypeFilter.LOG_COLLECTION), + deselectNode(CollectionTypeFilter.INTERMEDIATE_COLLECTION), )(); const serializedFilters = serializeResourceTypeFilters(filters); @@ -54,6 +55,20 @@ describe("serializeResourceTypeFilters", () => { .toEqual(`["uuid","is_a",["${ResourceKind.PROJECT}","${ResourceKind.COLLECTION}"]],["collections.properties.type","in",["output"]]`); }); + it("should serialize intermediate collections and projects", () => { + const filters = pipe( + () => getInitialResourceTypeFilters(), + deselectNode(ObjectTypeFilter.PROCESS), + deselectNode(CollectionTypeFilter.GENERAL_COLLECTION), + deselectNode(CollectionTypeFilter.LOG_COLLECTION), + deselectNode(CollectionTypeFilter.OUTPUT_COLLECTION), + )(); + + const serializedFilters = serializeResourceTypeFilters(filters); + expect(serializedFilters) + .toEqual(`["uuid","is_a",["${ResourceKind.PROJECT}","${ResourceKind.COLLECTION}"]],["collections.properties.type","in",["intermediate"]]`); + }); + it("should serialize general and log collections", () => { const filters = pipe( () => getInitialResourceTypeFilters(), diff --git a/src/store/resource-type-filters/resource-type-filters.ts b/src/store/resource-type-filters/resource-type-filters.ts index a39807d5..0539cefe 100644 --- a/src/store/resource-type-filters/resource-type-filters.ts +++ b/src/store/resource-type-filters/resource-type-filters.ts @@ -38,6 +38,7 @@ export enum CollectionTypeFilter { GENERAL_COLLECTION = 'General', OUTPUT_COLLECTION = 'Output', LOG_COLLECTION = 'Log', + INTERMEDIATE_COLLECTION = 'Intermediate', } export enum ProcessTypeFilter { @@ -82,6 +83,7 @@ export const getInitialResourceTypeFilters = pipe( initFilter(ObjectTypeFilter.COLLECTION), initFilter(CollectionTypeFilter.GENERAL_COLLECTION, ObjectTypeFilter.COLLECTION), initFilter(CollectionTypeFilter.OUTPUT_COLLECTION, ObjectTypeFilter.COLLECTION), + initFilter(CollectionTypeFilter.INTERMEDIATE_COLLECTION, ObjectTypeFilter.COLLECTION), initFilter(CollectionTypeFilter.LOG_COLLECTION, ObjectTypeFilter.COLLECTION), ), ); @@ -111,6 +113,7 @@ export const getTrashPanelTypeFilters = pipe( initFilter(ObjectTypeFilter.COLLECTION), initFilter(CollectionTypeFilter.GENERAL_COLLECTION, ObjectTypeFilter.COLLECTION), initFilter(CollectionTypeFilter.OUTPUT_COLLECTION, ObjectTypeFilter.COLLECTION), + initFilter(CollectionTypeFilter.INTERMEDIATE_COLLECTION, ObjectTypeFilter.COLLECTION), initFilter(CollectionTypeFilter.LOG_COLLECTION, ObjectTypeFilter.COLLECTION), ); @@ -167,6 +170,10 @@ const collectionTypeToPropertyValue = (type: CollectionTypeFilter) => { return CollectionType.OUTPUT; case CollectionTypeFilter.LOG_COLLECTION: return CollectionType.LOG; + case CollectionTypeFilter.INTERMEDIATE_COLLECTION: + return CollectionType.INTERMEDIATE; + default: + return CollectionType.GENERAL; } }; @@ -273,7 +280,7 @@ export const serializeSimpleObjectTypeFilters = (filters: Tree { +export const buildProcessStatusFilters = (fb: FilterBuilder, activeStatusFilter: string, resourcePrefix?: string): FilterBuilder => { switch (activeStatusFilter) { case ProcessStatusFilter.ONHOLD: { fb.addDistinct('state', ContainerRequestState.FINAL, resourcePrefix);