- () =>
- async (
- dispatch: Dispatch,
- getState: () => RootState,
- services: ServiceRepository
- ) => {
- dispatch(progressIndicatorActions.START_WORKING(WORKBENCH_LOADING_SCREEN));
- const { auth, router } = getState();
- const { user } = auth;
- if (user) {
- dispatch(
- projectPanelActions.SET_COLUMNS({ columns: projectPanelColumns })
- );
- dispatch(
- favoritePanelActions.SET_COLUMNS({ columns: favoritePanelColumns })
- );
- dispatch(
- allProcessesPanelActions.SET_COLUMNS({
- columns: allProcessesPanelColumns,
- })
- );
- dispatch(
- publicFavoritePanelActions.SET_COLUMNS({
- columns: publicFavoritePanelColumns,
- })
- );
- dispatch(trashPanelActions.SET_COLUMNS({ columns: trashPanelColumns }));
- dispatch(
- sharedWithMePanelActions.SET_COLUMNS({ columns: projectPanelColumns })
- );
- dispatch(
- workflowPanelActions.SET_COLUMNS({ columns: workflowPanelColumns })
- );
- dispatch(
- searchResultsPanelActions.SET_FETCH_MODE({
- fetchMode: DataTableFetchMode.INFINITE,
- })
- );
- dispatch(
- searchResultsPanelActions.SET_COLUMNS({
- columns: searchResultsPanelColumns,
- })
- );
- dispatch(userBindedActions.SET_COLUMNS({ columns: userPanelColumns }));
- dispatch(
- groupPanelActions.GroupsPanelActions.SET_COLUMNS({
- columns: groupsPanelColumns,
- })
- );
- dispatch(
- groupDetailsPanelActions.GroupMembersPanelActions.SET_COLUMNS({
- columns: groupDetailsMembersPanelColumns,
- })
- );
- dispatch(
- groupDetailsPanelActions.GroupPermissionsPanelActions.SET_COLUMNS({
- columns: groupDetailsPermissionsPanelColumns,
- })
- );
- dispatch(
- userProfilePanelActions.UserProfileGroupsActions.SET_COLUMNS({
- columns: userProfileGroupsColumns,
- })
- );
- dispatch(linkPanelActions.SET_COLUMNS({ columns: linkPanelColumns }));
- dispatch(
- apiClientAuthorizationsActions.SET_COLUMNS({
- columns: apiClientAuthorizationPanelColumns,
- })
- );
- dispatch(
- collectionsContentAddressActions.SET_COLUMNS({
- columns: collectionContentAddressPanelColumns,
- })
- );
- dispatch(
- subprocessPanelActions.SET_COLUMNS({ columns: subprocessPanelColumns })
- );
-
- if (services.linkAccountService.getAccountToLink()) {
- dispatch(linkAccountPanelActions.HAS_SESSION_DATA());
- }
-
- dispatch<any>(initSidePanelTree());
- if (router.location) {
- const match = matchRootRoute(router.location.pathname);
- if (match) {
- dispatch<any>(navigateToRootProject);
- }
- }
- } else {
- dispatch(userIsNotAuthenticated);
- }
- };
+ () =>
+ async (
+ dispatch: Dispatch,
+ getState: () => RootState,
+ services: ServiceRepository
+ ) => {
+ dispatch(progressIndicatorActions.START_WORKING(WORKBENCH_LOADING_SCREEN));
+ const { auth, router } = getState();
+ const { user } = auth;
+ if (user) {
+ dispatch(
+ projectPanelActions.SET_COLUMNS({ columns: projectPanelColumns })
+ );
+ dispatch(
+ favoritePanelActions.SET_COLUMNS({ columns: favoritePanelColumns })
+ );
+ dispatch(
+ allProcessesPanelActions.SET_COLUMNS({
+ columns: allProcessesPanelColumns,
+ })
+ );
+ dispatch(
+ publicFavoritePanelActions.SET_COLUMNS({
+ columns: publicFavoritePanelColumns,
+ })
+ );
+ dispatch(trashPanelActions.SET_COLUMNS({ columns: trashPanelColumns }));
+ dispatch(
+ sharedWithMePanelActions.SET_COLUMNS({ columns: projectPanelColumns })
+ );
+ dispatch(
+ workflowPanelActions.SET_COLUMNS({ columns: workflowPanelColumns })
+ );
+ dispatch(
+ searchResultsPanelActions.SET_FETCH_MODE({
+ fetchMode: DataTableFetchMode.INFINITE,
+ })
+ );
+ dispatch(
+ searchResultsPanelActions.SET_COLUMNS({
+ columns: searchResultsPanelColumns,
+ })
+ );
+ dispatch(userBindedActions.SET_COLUMNS({ columns: userPanelColumns }));
+ dispatch(
+ groupPanelActions.GroupsPanelActions.SET_COLUMNS({
+ columns: groupsPanelColumns,
+ })
+ );
+ dispatch(
+ groupDetailsPanelActions.GroupMembersPanelActions.SET_COLUMNS({
+ columns: groupDetailsMembersPanelColumns,
+ })
+ );
+ dispatch(
+ groupDetailsPanelActions.GroupPermissionsPanelActions.SET_COLUMNS({
+ columns: groupDetailsPermissionsPanelColumns,
+ })
+ );
+ dispatch(
+ userProfilePanelActions.UserProfileGroupsActions.SET_COLUMNS({
+ columns: userProfileGroupsColumns,
+ })
+ );
+ dispatch(linkPanelActions.SET_COLUMNS({ columns: linkPanelColumns }));
+ dispatch(
+ apiClientAuthorizationsActions.SET_COLUMNS({
+ columns: apiClientAuthorizationPanelColumns,
+ })
+ );
+ dispatch(
+ collectionsContentAddressActions.SET_COLUMNS({
+ columns: collectionContentAddressPanelColumns,
+ })
+ );
+ dispatch(
+ subprocessPanelActions.SET_COLUMNS({ columns: subprocessPanelColumns })
+ );
+
+ if (services.linkAccountService.getAccountToLink()) {
+ dispatch(linkAccountPanelActions.HAS_SESSION_DATA());
+ }
+
+ dispatch<any>(initSidePanelTree());
+ if (router.location) {
+ const match = matchRootRoute(router.location.pathname);
+ if (match) {
+ dispatch<any>(navigateToRootProject);
+ }
+ }
+ } else {
+ dispatch(userIsNotAuthenticated);
+ }
+ };
- handleFirstTimeLoad(
- async (
- dispatch: Dispatch<any>,
- getState: () => RootState,
- services: ServiceRepository
- ) => {
- const userUuid = getUserUuid(getState());
- dispatch(setIsProjectPanelTrashed(false));
- if (!userUuid) {
- return;
- }
- if (extractUuidKind(uuid) === ResourceKind.USER && userUuid !== uuid) {
- // Load another users home projects
- dispatch(finishLoadingProject(uuid));
- } else if (userUuid !== uuid) {
- await dispatch(finishLoadingProject(uuid));
- const match = await loadGroupContentsResource({
- uuid,
- userUuid,
- services,
- });
- match({
- OWNED: async () => {
- await dispatch(activateSidePanelTreeItem(uuid));
- dispatch<any>(setSidePanelBreadcrumbs(uuid));
- },
- SHARED: async () => {
- await dispatch(activateSidePanelTreeItem(uuid));
- dispatch<any>(setSharedWithMeBreadcrumbs(uuid));
- },
- TRASHED: async () => {
- await dispatch(
- activateSidePanelTreeItem(SidePanelTreeCategory.TRASH)
- );
- dispatch<any>(setTrashBreadcrumbs(uuid));
- dispatch(setIsProjectPanelTrashed(true));
- },
- });
- } else {
- await dispatch(finishLoadingProject(userUuid));
- await dispatch(activateSidePanelTreeItem(userUuid));
- dispatch<any>(setSidePanelBreadcrumbs(userUuid));
- }
- }
- );
+ handleFirstTimeLoad(
+ async (
+ dispatch: Dispatch<any>,
+ getState: () => RootState,
+ services: ServiceRepository
+ ) => {
+ const userUuid = getUserUuid(getState());
+ dispatch(setIsProjectPanelTrashed(false));
+ if (!userUuid) {
+ return;
+ }
+ if (extractUuidKind(uuid) === ResourceKind.USER && userUuid !== uuid) {
+ // Load another users home projects
+ dispatch(finishLoadingProject(uuid));
+ } else if (userUuid !== uuid) {
+ await dispatch(finishLoadingProject(uuid));
+ const match = await loadGroupContentsResource({
+ uuid,
+ userUuid,
+ services,
+ });
+ match({
+ OWNED: async () => {
+ await dispatch(activateSidePanelTreeItem(uuid));
+ dispatch<any>(setSidePanelBreadcrumbs(uuid));
+ },
+ SHARED: async () => {
+ await dispatch(activateSidePanelTreeItem(uuid));
+ dispatch<any>(setSharedWithMeBreadcrumbs(uuid));
+ },
+ TRASHED: async () => {
+ await dispatch(
+ activateSidePanelTreeItem(SidePanelTreeCategory.TRASH)
+ );
+ dispatch<any>(setTrashBreadcrumbs(uuid));
+ dispatch(setIsProjectPanelTrashed(true));
+ },
+ });
+ } else {
+ await dispatch(finishLoadingProject(userUuid));
+ await dispatch(activateSidePanelTreeItem(userUuid));
+ dispatch<any>(setSidePanelBreadcrumbs(userUuid));
+ }
+ }
+ );
- (data: projectCreateActions.ProjectCreateFormDialogData) =>
- async (dispatch: Dispatch) => {
- const newProject = await dispatch<any>(
- projectCreateActions.createProject(data)
- );
- if (newProject) {
- dispatch(
- snackbarActions.OPEN_SNACKBAR({
- message: 'Project has been successfully created.',
- hideDuration: 2000,
- kind: SnackbarKind.SUCCESS,
- })
- );
- await dispatch<any>(loadSidePanelTreeProjects(newProject.ownerUuid));
- dispatch<any>(navigateTo(newProject.uuid));
- }
- };
+ (data: projectCreateActions.ProjectCreateFormDialogData) =>
+ async (dispatch: Dispatch) => {
+ const newProject = await dispatch<any>(
+ projectCreateActions.createProject(data)
+ );
+ if (newProject) {
+ dispatch(
+ snackbarActions.OPEN_SNACKBAR({
+ message: 'Project has been successfully created.',
+ hideDuration: 2000,
+ kind: SnackbarKind.SUCCESS,
+ })
+ );
+ await dispatch<any>(loadSidePanelTreeProjects(newProject.ownerUuid));
+ dispatch<any>(navigateTo(newProject.uuid));
+ }
+ };
- (data: MoveToFormDialogData) =>
- async (
- dispatch: Dispatch,
- getState: () => RootState,
- services: ServiceRepository
- ) => {
- try {
- const oldProject = getResource(data.uuid)(getState().resources);
- const oldOwnerUuid = oldProject ? oldProject.ownerUuid : '';
- const movedProject = await dispatch<any>(
- projectMoveActions.moveProject(data)
- );
- if (movedProject) {
- dispatch(
- snackbarActions.OPEN_SNACKBAR({
- message: 'Project has been moved',
- hideDuration: 2000,
- kind: SnackbarKind.SUCCESS,
- })
- );
- if (oldProject) {
- await dispatch<any>(loadSidePanelTreeProjects(oldProject.ownerUuid));
- }
- dispatch<any>(
- reloadProjectMatchingUuid([
- oldOwnerUuid,
- movedProject.ownerUuid,
- movedProject.uuid,
- ])
- );
- }
- } catch (e) {
- dispatch(
- snackbarActions.OPEN_SNACKBAR({
- message: e.message,
- hideDuration: 2000,
- kind: SnackbarKind.ERROR,
- })
- );
- }
- };
+ (data: MoveToFormDialogData) =>
+ async (
+ dispatch: Dispatch,
+ getState: () => RootState,
+ services: ServiceRepository
+ ) => {
+ try {
+ const oldProject = getResource(data.uuid)(getState().resources);
+ const oldOwnerUuid = oldProject ? oldProject.ownerUuid : '';
+ const movedProject = await dispatch<any>(
+ projectMoveActions.moveProject(data)
+ );
+ if (movedProject) {
+ dispatch(
+ snackbarActions.OPEN_SNACKBAR({
+ message: 'Project has been moved',
+ hideDuration: 2000,
+ kind: SnackbarKind.SUCCESS,
+ })
+ );
+ if (oldProject) {
+ await dispatch<any>(loadSidePanelTreeProjects(oldProject.ownerUuid));
+ }
+ dispatch<any>(
+ reloadProjectMatchingUuid([
+ oldOwnerUuid,
+ movedProject.ownerUuid,
+ movedProject.uuid,
+ ])
+ );
+ }
+ } catch (e) {
+ dispatch(
+ snackbarActions.OPEN_SNACKBAR({
+ message: e.message,
+ hideDuration: 2000,
+ kind: SnackbarKind.ERROR,
+ })
+ );
+ }
+ };
- (data: projectUpdateActions.ProjectUpdateFormDialogData) =>
- async (dispatch: Dispatch) => {
- const updatedProject = await dispatch<any>(
- projectUpdateActions.updateProject(data)
- );
- if (updatedProject) {
- dispatch(
- snackbarActions.OPEN_SNACKBAR({
- message: 'Project has been successfully updated.',
- hideDuration: 2000,
- kind: SnackbarKind.SUCCESS,
- })
- );
- await dispatch<any>(loadSidePanelTreeProjects(updatedProject.ownerUuid));
- dispatch<any>(
- reloadProjectMatchingUuid([
- updatedProject.ownerUuid,
- updatedProject.uuid,
- ])
- );
- }
- };
+ (data: projectUpdateActions.ProjectUpdateFormDialogData) =>
+ async (dispatch: Dispatch) => {
+ const updatedProject = await dispatch<any>(
+ projectUpdateActions.updateProject(data)
+ );
+ if (updatedProject) {
+ dispatch(
+ snackbarActions.OPEN_SNACKBAR({
+ message: 'Project has been successfully updated.',
+ hideDuration: 2000,
+ kind: SnackbarKind.SUCCESS,
+ })
+ );
+ await dispatch<any>(loadSidePanelTreeProjects(updatedProject.ownerUuid));
+ dispatch<any>(
+ reloadProjectMatchingUuid([
+ updatedProject.ownerUuid,
+ updatedProject.uuid,
+ ])
+ );
+ }
+ };
- (data: projectUpdateActions.ProjectUpdateFormDialogData) =>
- async (dispatch: Dispatch) => {
- const updatedGroup = await dispatch<any>(
- groupPanelActions.updateGroup(data)
- );
- if (updatedGroup) {
- dispatch(
- snackbarActions.OPEN_SNACKBAR({
- message: 'Group has been successfully updated.',
- hideDuration: 2000,
- kind: SnackbarKind.SUCCESS,
- })
- );
- await dispatch<any>(loadSidePanelTreeProjects(updatedGroup.ownerUuid));
- dispatch<any>(
- reloadProjectMatchingUuid([updatedGroup.ownerUuid, updatedGroup.uuid])
- );
- }
- };
+ (data: projectUpdateActions.ProjectUpdateFormDialogData) =>
+ async (dispatch: Dispatch) => {
+ const updatedGroup = await dispatch<any>(
+ groupPanelActions.updateGroup(data)
+ );
+ if (updatedGroup) {
+ dispatch(
+ snackbarActions.OPEN_SNACKBAR({
+ message: 'Group has been successfully updated.',
+ hideDuration: 2000,
+ kind: SnackbarKind.SUCCESS,
+ })
+ );
+ await dispatch<any>(loadSidePanelTreeProjects(updatedGroup.ownerUuid));
+ dispatch<any>(
+ reloadProjectMatchingUuid([updatedGroup.ownerUuid, updatedGroup.uuid])
+ );
+ }
+ };
- handleFirstTimeLoad(
- async (
- dispatch: Dispatch<any>,
- getState: () => RootState,
- services: ServiceRepository
- ) => {
- const userUuid = getUserUuid(getState());
- if (userUuid) {
- const match = await loadGroupContentsResource({
- uuid,
- userUuid,
- services,
- });
- match({
- OWNED: (collection) => {
- dispatch(
- collectionPanelActions.SET_COLLECTION(
- collection as CollectionResource
- )
- );
- dispatch(updateResources([collection]));
- dispatch(activateSidePanelTreeItem(collection.ownerUuid));
- dispatch(setSidePanelBreadcrumbs(collection.ownerUuid));
- dispatch(loadCollectionPanel(collection.uuid));
- },
- SHARED: (collection) => {
- dispatch(
- collectionPanelActions.SET_COLLECTION(
- collection as CollectionResource
- )
- );
- dispatch(updateResources([collection]));
- dispatch<any>(setSharedWithMeBreadcrumbs(collection.ownerUuid));
- dispatch(activateSidePanelTreeItem(collection.ownerUuid));
- dispatch(loadCollectionPanel(collection.uuid));
- },
- TRASHED: (collection) => {
- dispatch(
- collectionPanelActions.SET_COLLECTION(
- collection as CollectionResource
- )
- );
- dispatch(updateResources([collection]));
- dispatch(setTrashBreadcrumbs(''));
- dispatch(activateSidePanelTreeItem(SidePanelTreeCategory.TRASH));
- dispatch(loadCollectionPanel(collection.uuid));
- },
- });
- }
- }
- );
+ handleFirstTimeLoad(
+ async (
+ dispatch: Dispatch<any>,
+ getState: () => RootState,
+ services: ServiceRepository
+ ) => {
+ const userUuid = getUserUuid(getState());
+ if (userUuid) {
+ const match = await loadGroupContentsResource({
+ uuid,
+ userUuid,
+ services,
+ });
+ let collection: CollectionResource | undefined;
+ let breadcrumbfunc: ((uuid: string) => (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => Promise<void>) | undefined;
+ let sidepanel: string | undefined;
+ match({
+ OWNED: (thecollection) => {
+ collection = thecollection as CollectionResource;
+ sidepanel = collection.ownerUuid;
+ breadcrumbfunc = setSidePanelBreadcrumbs;
+ },
+ SHARED: (thecollection) => {
+ collection = thecollection as CollectionResource;
+ sidepanel = collection.ownerUuid;
+ breadcrumbfunc = setSharedWithMeBreadcrumbs;
+ },
+ TRASHED: (thecollection) => {
+ collection = thecollection as CollectionResource;
+ sidepanel = SidePanelTreeCategory.TRASH;
+ breadcrumbfunc = () => setTrashBreadcrumbs('');
+ },
+ });
+ if (collection && breadcrumbfunc && sidepanel) {
+ dispatch(updateResources([collection]));
+ await dispatch<any>(finishLoadingProject(collection.ownerUuid));
+ dispatch(collectionPanelActions.SET_COLLECTION(collection));
+ await dispatch(activateSidePanelTreeItem(sidepanel));
+ dispatch(breadcrumbfunc(collection.ownerUuid));
+ dispatch(loadCollectionPanel(collection.uuid));
+ }
+ }
+ }
+ );
- (data: collectionCreateActions.CollectionCreateFormDialogData) =>
- async (dispatch: Dispatch) => {
- const collection = await dispatch<any>(
- collectionCreateActions.createCollection(data)
- );
- if (collection) {
- dispatch(
- snackbarActions.OPEN_SNACKBAR({
- message: 'Collection has been successfully created.',
- hideDuration: 2000,
- kind: SnackbarKind.SUCCESS,
- })
- );
- dispatch<any>(updateResources([collection]));
- dispatch<any>(navigateTo(collection.uuid));
- }
- };
+ (data: collectionCreateActions.CollectionCreateFormDialogData) =>
+ async (dispatch: Dispatch) => {
+ const collection = await dispatch<any>(
+ collectionCreateActions.createCollection(data)
+ );
+ if (collection) {
+ dispatch(
+ snackbarActions.OPEN_SNACKBAR({
+ message: 'Collection has been successfully created.',
+ hideDuration: 2000,
+ kind: SnackbarKind.SUCCESS,
+ })
+ );
+ dispatch<any>(updateResources([collection]));
+ dispatch<any>(navigateTo(collection.uuid));
+ }
+ };
- (data: CopyFormDialogData) =>
- async (
- dispatch: Dispatch,
- getState: () => RootState,
- services: ServiceRepository
- ) => {
- try {
- const copyToProject = getResource(data.ownerUuid)(getState().resources);
- const collection = await dispatch<any>(
- collectionCopyActions.copyCollection(data)
- );
- if (copyToProject && collection) {
- dispatch<any>(reloadProjectMatchingUuid([copyToProject.uuid]));
- dispatch(
- snackbarActions.OPEN_SNACKBAR({
- message: 'Collection has been copied.',
- hideDuration: 3000,
- kind: SnackbarKind.SUCCESS,
- link: collection.ownerUuid,
- })
- );
- }
- } catch (e) {
- dispatch(
- snackbarActions.OPEN_SNACKBAR({
- message: e.message,
- hideDuration: 2000,
- kind: SnackbarKind.ERROR,
- })
- );
- }
- };
+ (data: CopyFormDialogData) =>
+ async (
+ dispatch: Dispatch,
+ getState: () => RootState,
+ services: ServiceRepository
+ ) => {
+ try {
+ const copyToProject = getResource(data.ownerUuid)(getState().resources);
+ const collection = await dispatch<any>(
+ collectionCopyActions.copyCollection(data)
+ );
+ if (copyToProject && collection) {
+ dispatch<any>(reloadProjectMatchingUuid([copyToProject.uuid]));
+ dispatch(
+ snackbarActions.OPEN_SNACKBAR({
+ message: 'Collection has been copied.',
+ hideDuration: 3000,
+ kind: SnackbarKind.SUCCESS,
+ link: collection.ownerUuid,
+ })
+ );
+ }
+ } catch (e) {
+ dispatch(
+ snackbarActions.OPEN_SNACKBAR({
+ message: e.message,
+ hideDuration: 2000,
+ kind: SnackbarKind.ERROR,
+ })
+ );
+ }
+ };
- (data: MoveToFormDialogData) =>
- async (
- dispatch: Dispatch,
- getState: () => RootState,
- services: ServiceRepository
- ) => {
- try {
- const collection = await dispatch<any>(
- collectionMoveActions.moveCollection(data)
- );
- dispatch<any>(updateResources([collection]));
- dispatch<any>(reloadProjectMatchingUuid([collection.ownerUuid]));
- dispatch(
- snackbarActions.OPEN_SNACKBAR({
- message: 'Collection has been moved.',
- hideDuration: 2000,
- kind: SnackbarKind.SUCCESS,
- })
- );
- } catch (e) {
- dispatch(
- snackbarActions.OPEN_SNACKBAR({
- message: e.message,
- hideDuration: 2000,
- kind: SnackbarKind.ERROR,
- })
- );
- }
- };
+ (data: MoveToFormDialogData) =>
+ async (
+ dispatch: Dispatch,
+ getState: () => RootState,
+ services: ServiceRepository
+ ) => {
+ try {
+ const collection = await dispatch<any>(
+ collectionMoveActions.moveCollection(data)
+ );
+ dispatch<any>(updateResources([collection]));
+ dispatch<any>(reloadProjectMatchingUuid([collection.ownerUuid]));
+ dispatch(
+ snackbarActions.OPEN_SNACKBAR({
+ message: 'Collection has been moved.',
+ hideDuration: 2000,
+ kind: SnackbarKind.SUCCESS,
+ })
+ );
+ } catch (e) {
+ dispatch(
+ snackbarActions.OPEN_SNACKBAR({
+ message: e.message,
+ hideDuration: 2000,
+ kind: SnackbarKind.ERROR,
+ })
+ );
+ }
+ };
- handleFirstTimeLoad(async (dispatch: Dispatch, getState: () => RootState) => {
- dispatch<any>(loadProcessPanel(uuid));
- const process = await dispatch<any>(processesActions.loadProcess(uuid));
- await dispatch<any>(
- activateSidePanelTreeItem(process.containerRequest.ownerUuid)
- );
- dispatch<any>(setProcessBreadcrumbs(uuid));
- dispatch<any>(loadDetailsPanel(uuid));
- });
+ handleFirstTimeLoad(async (dispatch: Dispatch, getState: () => RootState) => {
+ dispatch<any>(loadProcessPanel(uuid));
+ const process = await dispatch<any>(processesActions.loadProcess(uuid));
+ if (process) {
+ await dispatch<any>(finishLoadingProject(process.containerRequest.ownerUuid));
+ await dispatch<any>(
+ activateSidePanelTreeItem(process.containerRequest.ownerUuid)
+ );
+ dispatch<any>(setProcessBreadcrumbs(uuid));
+ dispatch<any>(loadDetailsPanel(uuid));
+ }
+ });
+
+export const loadRegisteredWorkflow = (uuid: string) =>
+ handleFirstTimeLoad(async (dispatch: Dispatch,
+ getState: () => RootState,
+ services: ServiceRepository) => {
+
+ const userUuid = getUserUuid(getState());
+ if (userUuid) {
+ const match = await loadGroupContentsResource({
+ uuid,
+ userUuid,
+ services,
+ });
+ let workflow: WorkflowResource | undefined;
+ let breadcrumbfunc: ((uuid: string) => (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => Promise<void>) | undefined;
+ match({
+ OWNED: async (theworkflow) => {
+ workflow = theworkflow as WorkflowResource;
+ breadcrumbfunc = setSidePanelBreadcrumbs;
+ },
+ SHARED: async (theworkflow) => {
+ workflow = theworkflow as WorkflowResource;
+ breadcrumbfunc = setSharedWithMeBreadcrumbs;
+ },
+ TRASHED: () => { }
+ });
+ if (workflow && breadcrumbfunc) {
+ dispatch(updateResources([workflow]));
+ await dispatch<any>(finishLoadingProject(workflow.ownerUuid));
+ await dispatch<any>(activateSidePanelTreeItem(workflow.ownerUuid));
+ dispatch<any>(breadcrumbfunc(workflow.ownerUuid));
+ }
+ }
+ });
- (data: processUpdateActions.ProcessUpdateFormDialogData) =>
- async (dispatch: Dispatch) => {
- try {
- const process = await dispatch<any>(
- processUpdateActions.updateProcess(data)
- );
- if (process) {
- dispatch(
- snackbarActions.OPEN_SNACKBAR({
- message: 'Process has been successfully updated.',
- hideDuration: 2000,
- kind: SnackbarKind.SUCCESS,
- })
- );
- dispatch<any>(updateResources([process]));
- dispatch<any>(reloadProjectMatchingUuid([process.ownerUuid]));
- }
- } catch (e) {
- dispatch(
- snackbarActions.OPEN_SNACKBAR({
- message: e.message,
- hideDuration: 2000,
- kind: SnackbarKind.ERROR,
- })
- );
- }
- };
+ (data: processUpdateActions.ProcessUpdateFormDialogData) =>
+ async (dispatch: Dispatch) => {
+ try {
+ const process = await dispatch<any>(
+ processUpdateActions.updateProcess(data)
+ );
+ if (process) {
+ dispatch(
+ snackbarActions.OPEN_SNACKBAR({
+ message: 'Process has been successfully updated.',
+ hideDuration: 2000,
+ kind: SnackbarKind.SUCCESS,
+ })
+ );
+ dispatch<any>(updateResources([process]));
+ dispatch<any>(reloadProjectMatchingUuid([process.ownerUuid]));
+ }
+ } catch (e) {
+ dispatch(
+ snackbarActions.OPEN_SNACKBAR({
+ message: e.message,
+ hideDuration: 2000,
+ kind: SnackbarKind.ERROR,
+ })
+ );
+ }
+ };
- (data: MoveToFormDialogData) =>
- async (
- dispatch: Dispatch,
- getState: () => RootState,
- services: ServiceRepository
- ) => {
- try {
- const process = await dispatch<any>(processMoveActions.moveProcess(data));
- dispatch<any>(updateResources([process]));
- dispatch<any>(reloadProjectMatchingUuid([process.ownerUuid]));
- dispatch(
- snackbarActions.OPEN_SNACKBAR({
- message: 'Process has been moved.',
- hideDuration: 2000,
- kind: SnackbarKind.SUCCESS,
- })
- );
- } catch (e) {
- dispatch(
- snackbarActions.OPEN_SNACKBAR({
- message: e.message,
- hideDuration: 2000,
- kind: SnackbarKind.ERROR,
- })
- );
- }
- };
+ (data: MoveToFormDialogData) =>
+ async (
+ dispatch: Dispatch,
+ getState: () => RootState,
+ services: ServiceRepository
+ ) => {
+ try {
+ const process = await dispatch<any>(processMoveActions.moveProcess(data));
+ dispatch<any>(updateResources([process]));
+ dispatch<any>(reloadProjectMatchingUuid([process.ownerUuid]));
+ dispatch(
+ snackbarActions.OPEN_SNACKBAR({
+ message: 'Process has been moved.',
+ hideDuration: 2000,
+ kind: SnackbarKind.SUCCESS,
+ })
+ );
+ } catch (e) {
+ dispatch(
+ snackbarActions.OPEN_SNACKBAR({
+ message: e.message,
+ hideDuration: 2000,
+ kind: SnackbarKind.ERROR,
+ })
+ );
+ }
+ };
- (data: CopyFormDialogData) =>
- async (
- dispatch: Dispatch,
- getState: () => RootState,
- services: ServiceRepository
- ) => {
- try {
- const process = await dispatch<any>(processCopyActions.copyProcess(data));
- dispatch<any>(updateResources([process]));
- dispatch<any>(reloadProjectMatchingUuid([process.ownerUuid]));
- dispatch(
- snackbarActions.OPEN_SNACKBAR({
- message: 'Process has been copied.',
- hideDuration: 2000,
- kind: SnackbarKind.SUCCESS,
- })
- );
- } catch (e) {
- dispatch(
- snackbarActions.OPEN_SNACKBAR({
- message: e.message,
- hideDuration: 2000,
- kind: SnackbarKind.ERROR,
- })
- );
- }
- };
+ (data: CopyFormDialogData) =>
+ async (
+ dispatch: Dispatch,
+ getState: () => RootState,
+ services: ServiceRepository
+ ) => {
+ try {
+ const process = await dispatch<any>(processCopyActions.copyProcess(data));
+ dispatch<any>(updateResources([process]));
+ dispatch<any>(reloadProjectMatchingUuid([process.ownerUuid]));
+ dispatch(
+ snackbarActions.OPEN_SNACKBAR({
+ message: 'Process has been copied.',
+ hideDuration: 2000,
+ kind: SnackbarKind.SUCCESS,
+ })
+ );
+ dispatch<any>(navigateTo(process.uuid));
+ } catch (e) {
+ dispatch(
+ snackbarActions.OPEN_SNACKBAR({
+ message: e.message,
+ hideDuration: 2000,
+ kind: SnackbarKind.ERROR,
+ })
+ );
+ }
+ };
- (matchingUuids: string[]) =>
- async (
- dispatch: Dispatch,
- getState: () => RootState,
- services: ServiceRepository
- ) => {
- const currentProjectPanelUuid = getProjectPanelCurrentUuid(getState());
- if (
- currentProjectPanelUuid &&
- matchingUuids.some((uuid) => uuid === currentProjectPanelUuid)
- ) {
- dispatch<any>(loadProject(currentProjectPanelUuid));
- }
- };
+ (matchingUuids: string[]) =>
+ async (
+ dispatch: Dispatch,
+ getState: () => RootState,
+ services: ServiceRepository
+ ) => {
+ const currentProjectPanelUuid = getProjectPanelCurrentUuid(getState());
+ if (
+ currentProjectPanelUuid &&
+ matchingUuids.some((uuid) => uuid === currentProjectPanelUuid)
+ ) {
+ dispatch<any>(loadProject(currentProjectPanelUuid));
+ }
+ };
- const filters = new FilterBuilder()
- .addEqual('uuid', params.uuid)
- .getFilters();
- const { items } = await params.services.groupsService.contents(
- params.userUuid,
- {
- filters,
- recursive: true,
- includeTrash: true,
- }
- );
- const resource = items.shift();
- let handler: GroupContentsHandler;
- if (resource) {
- handler =
- (resource.kind === ResourceKind.COLLECTION ||
- resource.kind === ResourceKind.PROJECT) &&
- resource.isTrashed
- ? groupContentsHandlers.TRASHED(resource)
- : groupContentsHandlers.OWNED(resource);
- } else {
- const kind = extractUuidKind(params.uuid);
- let resource: GroupContentsResource;
- if (kind === ResourceKind.COLLECTION) {
- resource = await params.services.collectionService.get(params.uuid);
- } else if (kind === ResourceKind.PROJECT) {
- resource = await params.services.projectService.get(params.uuid);
+ const filters = new FilterBuilder()
+ .addEqual('uuid', params.uuid)
+ .getFilters();
+ const { items } = await params.services.groupsService.contents(
+ params.userUuid,
+ {
+ filters,
+ recursive: true,
+ includeTrash: true,
+ }
+ );
+ const resource = items.shift();
+ let handler: GroupContentsHandler;
+ if (resource) {
+ handler =
+ (resource.kind === ResourceKind.COLLECTION ||
+ resource.kind === ResourceKind.PROJECT) &&
+ resource.isTrashed
+ ? groupContentsHandlers.TRASHED(resource)
+ : groupContentsHandlers.OWNED(resource);