X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/e7ba429b7bec690811df51893817968c177853be..fa9b3ce44a3a9315207852d1f182000a6166f9e9:/src/store/collection-panel/collection-panel-action.ts?ds=sidebyside diff --git a/src/store/collection-panel/collection-panel-action.ts b/src/store/collection-panel/collection-panel-action.ts index 5e991619..919cd908 100644 --- a/src/store/collection-panel/collection-panel-action.ts +++ b/src/store/collection-panel/collection-panel-action.ts @@ -13,8 +13,11 @@ import { TagProperty } from "~/models/tag"; import { snackbarActions } from "../snackbar/snackbar-actions"; import { resourcesActions } from "~/store/resources/resources-actions"; import { unionize, ofType, UnionOf } from '~/common/unionize'; +import { SnackbarKind } from '~/store/snackbar/snackbar-actions'; +import { navigateTo } from '~/store/navigation/navigation-action'; export const collectionPanelActions = unionize({ + SET_COLLECTION: ofType(), LOAD_COLLECTION: ofType<{ uuid: string }>(), LOAD_COLLECTION_SUCCESS: ofType<{ item: CollectionResource }>() }); @@ -34,7 +37,7 @@ export const loadCollectionPanel = (uuid: string) => return collection; }; -export const createCollectionTag = (data: TagProperty) => +export const createCollectionTag = (data: TagProperty) => async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { const item = getState().collectionPanel.item; const uuid = item ? item.uuid : ''; @@ -43,7 +46,7 @@ export const createCollectionTag = (data: TagProperty) => item.properties[data.key] = data.value; const updatedCollection = await services.collectionService.update(uuid, item); dispatch(resourcesActions.SET_RESOURCES([updatedCollection])); - dispatch(snackbarActions.OPEN_SNACKBAR({ message: "Tag has been successfully added.", hideDuration: 2000 })); + dispatch(snackbarActions.OPEN_SNACKBAR({ message: "Tag has been successfully added.", hideDuration: 2000, kind: SnackbarKind.SUCCESS })); return updatedCollection; } return; @@ -52,6 +55,16 @@ export const createCollectionTag = (data: TagProperty) => } }; +export const navigateToProcess = (uuid: string) => + async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { + try { + await services.containerRequestService.get(uuid); + dispatch(navigateTo(uuid)); + } catch { + dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'This process does not exists!', hideDuration: 2000, kind: SnackbarKind.ERROR })); + } + }; + export const deleteCollectionTag = (key: string) => async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { const item = getState().collectionPanel.item; @@ -61,7 +74,7 @@ export const deleteCollectionTag = (key: string) => delete item.properties[key]; const updatedCollection = await services.collectionService.update(uuid, item); dispatch(resourcesActions.SET_RESOURCES([updatedCollection])); - dispatch(snackbarActions.OPEN_SNACKBAR({ message: "Tag has been successfully deleted.", hideDuration: 2000 })); + dispatch(snackbarActions.OPEN_SNACKBAR({ message: "Tag has been successfully deleted.", hideDuration: 2000, kind: SnackbarKind.SUCCESS })); return updatedCollection; } return;