cr change
authorPawel Kowalczyk <pawel.kowalczyk@contractors.roche.com>
Mon, 26 Nov 2018 11:01:30 +0000 (12:01 +0100)
committerPawel Kowalczyk <pawel.kowalczyk@contractors.roche.com>
Mon, 26 Nov 2018 11:01:30 +0000 (12:01 +0100)
Feature #14529

Arvados-DCO-1.1-Signed-off-by: Pawel Kowalczyk <pawel.kowalczyk@contractors.roche.com>

src/store/advanced-tab/advanced-tab.ts
src/store/context-menu/context-menu-actions.ts
src/views-components/advanced-tab-dialog/advanced-tab-dialog.tsx
src/views-components/advanced-tab-dialog/metadataTab.tsx
src/views-components/context-menu/action-sets/collection-action-set.ts
src/views-components/context-menu/action-sets/collection-resource-action-set.ts
src/views-components/context-menu/action-sets/process-action-set.ts
src/views-components/context-menu/action-sets/project-action-set.ts
src/views-components/context-menu/action-sets/repository-action-set.ts
src/views-components/context-menu/action-sets/trashed-collection-action-set.ts

index 4ba2ddbe3d4b15fd32c7702e3a31e0f5527bfb44..385e4978936c915c87474db1a6ea40fe50719560 100644 (file)
@@ -5,7 +5,7 @@
 import { dialogActions } from '~/store/dialog/dialog-actions';
 import { RootState } from '~/store/store';
 import { Dispatch } from 'redux';
 import { dialogActions } from '~/store/dialog/dialog-actions';
 import { RootState } from '~/store/store';
 import { Dispatch } from 'redux';
-import { ResourceKind, extractUuidKind } from '~/models/resource';
+import { ResourceKind, extractUuidKind, ResourceObjectType, extractUuidObjectType } from '~/models/resource';
 import { getResource } from '~/store/resources/resources';
 import { GroupContentsResourcePrefix } from '~/services/groups-service/groups-service';
 import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
 import { getResource } from '~/store/resources/resources';
 import { GroupContentsResourcePrefix } from '~/services/groups-service/groups-service';
 import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
@@ -21,7 +21,7 @@ export const ADVANCED_TAB_DIALOG = 'advancedTabDialog';
 export interface AdvancedTabDialogData {
     apiResponse: any;
     metadata: any;
 export interface AdvancedTabDialogData {
     apiResponse: any;
     metadata: any;
-    uuid: string;
+    tail: string;
     pythonHeader: string;
     pythonExample: string;
     cliGetHeader: string;
     pythonHeader: string;
     pythonExample: string;
     cliGetHeader: string;
@@ -52,7 +52,7 @@ enum RepositoryData {
     CREATED_AT = 'created_at'
 }
 
     CREATED_AT = 'created_at'
 }
 
-export const openAdvancedTabDialog = (uuid: string, ownerUuid: string, index?: number) =>
+export const openAdvancedTabDialog = (uuid: string, index?: number) =>
     async (dispatch: Dispatch<any>, getState: () => RootState, services: ServiceRepository) => {
         const { resources } = getState();
         const kind = extractUuidKind(uuid);
     async (dispatch: Dispatch<any>, getState: () => RootState, services: ServiceRepository) => {
         const { resources } = getState();
         const kind = extractUuidKind(uuid);
@@ -60,23 +60,23 @@ export const openAdvancedTabDialog = (uuid: string, ownerUuid: string, index?: n
         const repositoryData = getState().repositories.items[index!];
         if (data || repositoryData) {
             if (data) {
         const repositoryData = getState().repositories.items[index!];
         if (data || repositoryData) {
             if (data) {
-                const user = await services.userService.get(ownerUuid);
+                const type = extractUuidObjectType(data.ownerUuid);
                 const metadata = await services.linkService.list({
                     filters: new FilterBuilder()
                         .addEqual('headUuid', uuid)
                         .getFilters()
                 });
                 const metadata = await services.linkService.list({
                     filters: new FilterBuilder()
                         .addEqual('headUuid', uuid)
                         .getFilters()
                 });
+                const tail = metadata.itemsAvailable && type !== ResourceObjectType.GROUP ? await services.userService.get(data.ownerUuid) : data.ownerUuid;
                 if (kind === ResourceKind.COLLECTION) {
                 if (kind === ResourceKind.COLLECTION) {
-                    const dataCollection: AdvancedTabDialogData = advancedTabData(uuid, metadata, user, collectionApiResponse, data, CollectionData.COLLECTION, GroupContentsResourcePrefix.COLLECTION, CollectionData.STORAGE_CLASSES_CONFIRMED, data.storageClassesConfirmed);
+                    const dataCollection: AdvancedTabDialogData = advancedTabData(uuid, metadata, tail, collectionApiResponse, data, CollectionData.COLLECTION, GroupContentsResourcePrefix.COLLECTION, CollectionData.STORAGE_CLASSES_CONFIRMED, data.storageClassesConfirmed);
                     dispatch(dialogActions.OPEN_DIALOG({ id: ADVANCED_TAB_DIALOG, data: dataCollection }));
                 } else if (kind === ResourceKind.PROCESS) {
                     dispatch(dialogActions.OPEN_DIALOG({ id: ADVANCED_TAB_DIALOG, data: dataCollection }));
                 } else if (kind === ResourceKind.PROCESS) {
-                    const dataProcess: AdvancedTabDialogData = advancedTabData(uuid, metadata, user, containerRequestApiResponse, data, ProcessData.CONTAINER_REQUEST, GroupContentsResourcePrefix.PROCESS, ProcessData.OUTPUT_NAME, data.outputName);
+                    const dataProcess: AdvancedTabDialogData = advancedTabData(uuid, metadata, tail, containerRequestApiResponse, data, ProcessData.CONTAINER_REQUEST, GroupContentsResourcePrefix.PROCESS, ProcessData.OUTPUT_NAME, data.outputName);
                     dispatch(dialogActions.OPEN_DIALOG({ id: ADVANCED_TAB_DIALOG, data: dataProcess }));
                 } else if (kind === ResourceKind.PROJECT) {
                     dispatch(dialogActions.OPEN_DIALOG({ id: ADVANCED_TAB_DIALOG, data: dataProcess }));
                 } else if (kind === ResourceKind.PROJECT) {
-                    const dataProject: AdvancedTabDialogData = advancedTabData(uuid, metadata, user, groupRequestApiResponse, data, ProjectData.GROUP, GroupContentsResourcePrefix.PROJECT, ProjectData.DELETE_AT, data.deleteAt);
+                    const dataProject: AdvancedTabDialogData = advancedTabData(uuid, metadata, tail, groupRequestApiResponse, data, ProjectData.GROUP, GroupContentsResourcePrefix.PROJECT, ProjectData.DELETE_AT, data.deleteAt);
                     dispatch(dialogActions.OPEN_DIALOG({ id: ADVANCED_TAB_DIALOG, data: dataProject }));
                 }
                     dispatch(dialogActions.OPEN_DIALOG({ id: ADVANCED_TAB_DIALOG, data: dataProject }));
                 }
-
             } else if (kind === ResourceKind.REPOSITORY) {
                 const dataRepository: AdvancedTabDialogData = advancedTabData(uuid, '', '', repositoryApiResponse, repositoryData, RepositoryData.REPOSITORY, 'repositories', RepositoryData.CREATED_AT, repositoryData.createdAt);
                 dispatch(dialogActions.OPEN_DIALOG({ id: ADVANCED_TAB_DIALOG, data: dataRepository }));
             } else if (kind === ResourceKind.REPOSITORY) {
                 const dataRepository: AdvancedTabDialogData = advancedTabData(uuid, '', '', repositoryApiResponse, repositoryData, RepositoryData.REPOSITORY, 'repositories', RepositoryData.CREATED_AT, repositoryData.createdAt);
                 dispatch(dialogActions.OPEN_DIALOG({ id: ADVANCED_TAB_DIALOG, data: dataRepository }));
@@ -86,10 +86,10 @@ export const openAdvancedTabDialog = (uuid: string, ownerUuid: string, index?: n
         }
     };
 
         }
     };
 
-const advancedTabData = (uuid: string, metadata: any, user: any, apiResponseKind: any, data: any, resourceKind: CollectionData | ProcessData | ProjectData | RepositoryData, resourcePrefix: GroupContentsResourcePrefix | 'repositories', resourceKindProperty: CollectionData | ProcessData | ProjectData | RepositoryData, property: any) => {
+const advancedTabData = (uuid: string, metadata: any, tail: any, apiResponseKind: any, data: any, resourceKind: CollectionData | ProcessData | ProjectData | RepositoryData, resourcePrefix: GroupContentsResourcePrefix | 'repositories', resourceKindProperty: CollectionData | ProcessData | ProjectData | RepositoryData, property: any) => {
     return {
         uuid,
     return {
         uuid,
-        user,
+        tail,
         metadata,
         apiResponse: apiResponseKind(data),
         pythonHeader: pythonHeader(resourceKind),
         metadata,
         apiResponse: apiResponseKind(data),
         pythonHeader: pythonHeader(resourceKind),
index 596ac87b098f89503ce248a9c82786a5f5f6ae78..4bab12acbd8fed82ae2befd1f0d4b1de7fe24833 100644 (file)
@@ -119,10 +119,10 @@ export const openProcessContextMenu = (event: React.MouseEvent<HTMLElement>, pro
     (dispatch: Dispatch, getState: () => RootState) => {
         const resource = {
             uuid: process.containerRequest.uuid,
     (dispatch: Dispatch, getState: () => RootState) => {
         const resource = {
             uuid: process.containerRequest.uuid,
-            ownerUuid: '',
+            ownerUuid: process.containerRequest.ownerUuid,
             kind: ResourceKind.PROCESS,
             kind: ResourceKind.PROCESS,
-            name: '',
-            description: '',
+            name: process.containerRequest.name,
+            description: process.containerRequest.description,
             menuKind: ContextMenuKind.PROCESS
         };
         dispatch<any>(openContextMenu(event, resource));
             menuKind: ContextMenuKind.PROCESS
         };
         dispatch<any>(openContextMenu(event, resource));
index 8bce416d2ac8b9eb24ca3fd3246ae14f403b0347..5f31afa1e7714eba2218b5d30af800488b47701b 100644 (file)
@@ -61,7 +61,7 @@ export const AdvancedTabDialog = compose(
                 curlHeader,
                 curlExample,
                 uuid,
                 curlHeader,
                 curlExample,
                 uuid,
-                user
+                tail
             } = this.props.data;
             return <Dialog
                 open={open}
             } = this.props.data;
             return <Dialog
                 open={open}
@@ -78,7 +78,7 @@ export const AdvancedTabDialog = compose(
                 </Tabs>
                 <DialogContent className={classes.content}>
                     {value === 0 && <div>{dialogContentExample(apiResponse, classes)}</div>}
                 </Tabs>
                 <DialogContent className={classes.content}>
                     {value === 0 && <div>{dialogContentExample(apiResponse, classes)}</div>}
-                    {value === 1 && <div>{metadata !== '' && metadata.items.length > 0 ? <MetadataTab items={metadata.items} uuid={uuid} user={user} /> : dialogContentHeader('(No metadata links found)')}</div>}
+                    {value === 1 && <div>{metadata !== '' && metadata.items.length > 0 ? <MetadataTab items={metadata.items} uuid={uuid} tail={tail} /> : dialogContentHeader('(No metadata links found)')}</div>}
                     {value === 2 && dialogContent(pythonHeader, pythonExample, classes)}
                     {value === 3 && <div>
                         {dialogContent(cliGetHeader, cliGetExample, classes)}
                     {value === 2 && dialogContent(pythonHeader, pythonExample, classes)}
                     {value === 3 && <div>
                         {dialogContent(cliGetHeader, cliGetExample, classes)}
index 6250a7ad643c5cd48aba090a26a36312586f5572..b7a7680ffdabf2f6dd29fa51737c4732d482bebe 100644 (file)
@@ -25,7 +25,7 @@ interface MetadataTable {
 
 interface MetadataProps {
     items: MetadataTable[];
 
 interface MetadataProps {
     items: MetadataTable[];
-    user: UserResource;
+    tail: any;
     uuid: string;
 }
 
     uuid: string;
 }
 
@@ -47,7 +47,7 @@ export const MetadataTab = withStyles(styles)((props: MetadataProps & WithStyles
                     <TableCell className={props.classes.cell}>{it.uuid}</TableCell>
                     <TableCell className={props.classes.cell}>{it.linkClass}</TableCell>
                     <TableCell className={props.classes.cell}>{it.name}</TableCell>
                     <TableCell className={props.classes.cell}>{it.uuid}</TableCell>
                     <TableCell className={props.classes.cell}>{it.linkClass}</TableCell>
                     <TableCell className={props.classes.cell}>{it.name}</TableCell>
-                    <TableCell className={props.classes.cell}>{props.user ? `User: ${props.user.firstName} ${props.user.lastName}` : it.tailUuid}</TableCell>
+                    <TableCell className={props.classes.cell}>{props.tail.firstName ? `User: ${props.tail.firstName} ${props.tail.lastName}` : `Group: ${props.tail}`}</TableCell>
                     <TableCell className={props.classes.cell}>{it.headUuid === props.uuid ? 'this' : it.headUuid}</TableCell>
                     <TableCell className={props.classes.cell}>{JSON.stringify(it.properties)}</TableCell>
                 </TableRow>
                     <TableCell className={props.classes.cell}>{it.headUuid === props.uuid ? 'this' : it.headUuid}</TableCell>
                     <TableCell className={props.classes.cell}>{JSON.stringify(it.properties)}</TableCell>
                 </TableRow>
index 2dc2a92e582bd34d34f9e7e676e47814a0735286..809529ee46ec64786a94262edc6a35caa5dc3745 100644 (file)
@@ -76,8 +76,8 @@ export const collectionActionSet: ContextMenuActionSet = [[
     {
         icon: AdvancedIcon,
         name: "Advanced",
     {
         icon: AdvancedIcon,
         name: "Advanced",
-        execute: (dispatch, { uuid, ownerUuid }) => {
-            dispatch<any>(openAdvancedTabDialog(uuid, ownerUuid));
+        execute: (dispatch, { uuid }) => {
+            dispatch<any>(openAdvancedTabDialog(uuid));
         }
     }
     // {
         }
     }
     // {
index d00f864caea13c8e9c951cb1900d4cc307daa4f1..8f439c4eeaf27837371824cc0d401bc0e7f890b6 100644 (file)
@@ -70,8 +70,8 @@ export const collectionResourceActionSet: ContextMenuActionSet = [[
     {
         icon: AdvancedIcon,
         name: "Advanced",
     {
         icon: AdvancedIcon,
         name: "Advanced",
-        execute: (dispatch, { uuid, ownerUuid }) => {
-            dispatch<any>(openAdvancedTabDialog(uuid, ownerUuid));
+        execute: (dispatch, { uuid }) => {
+            dispatch<any>(openAdvancedTabDialog(uuid));
         }
     }
     // {
         }
     }
     // {
index 3b5f29760352bac16af682bceb1bda8cd028d890..5c4c952af0fee12b09568d95d18c563f9e974af5 100644 (file)
@@ -110,8 +110,8 @@ export const processActionSet: ContextMenuActionSet = [[
     {
         icon: AdvancedIcon,
         name: "Advanced",
     {
         icon: AdvancedIcon,
         name: "Advanced",
-        execute: (dispatch, { uuid, ownerUuid }) => {
-            dispatch<any>(openAdvancedTabDialog(uuid, ownerUuid));
+        execute: (dispatch, { uuid }) => {
+            dispatch<any>(openAdvancedTabDialog(uuid));
         }
     }
     // {
         }
     }
     // {
index 1e38733d7e1af083c6c08cf530e7ee77bdaa6130..726707ed6f47633e796de7b687a924d758195206 100644 (file)
@@ -77,8 +77,8 @@ export const projectActionSet: ContextMenuActionSet = [[
     {
         icon: AdvancedIcon,
         name: "Advanced",
     {
         icon: AdvancedIcon,
         name: "Advanced",
-        execute: (dispatch, { uuid, ownerUuid }) => {
-            dispatch<any>(openAdvancedTabDialog(uuid, ownerUuid));
+        execute: (dispatch, { uuid }) => {
+            dispatch<any>(openAdvancedTabDialog(uuid));
         }
     },
 ]];
         }
     },
 ]];
index 7382475cece6a1dc39fc6cfce43f71edc878e78f..cf7fb883cfeb0bab89c0364085627e1ec2ceb1e9 100644 (file)
@@ -23,8 +23,8 @@ export const repositoryActionSet: ContextMenuActionSet = [[{
 }, {
     name: "Advanced",
     icon: AdvancedIcon,
 }, {
     name: "Advanced",
     icon: AdvancedIcon,
-    execute: (dispatch, { uuid, ownerUuid, index }) => {
-        dispatch<any>(openAdvancedTabDialog(uuid, ownerUuid, index));
+    execute: (dispatch, { uuid, index }) => {
+        dispatch<any>(openAdvancedTabDialog(uuid, index));
     }
 }, {
     name: "Remove",
     }
 }, {
     name: "Remove",
index 7ba9f5ee50e197ac5f88086ae3f1be0520883023..ce2abdd5143f7c29a9407b7b0ee096f8676e6c0d 100644 (file)
@@ -5,7 +5,6 @@
 import { ContextMenuActionSet } from "../context-menu-action-set";
 import { DetailsIcon, ProvenanceGraphIcon, AdvancedIcon, RestoreFromTrashIcon } from '~/components/icon/icon';
 import { toggleCollectionTrashed } from "~/store/trash/trash-actions";
 import { ContextMenuActionSet } from "../context-menu-action-set";
 import { DetailsIcon, ProvenanceGraphIcon, AdvancedIcon, RestoreFromTrashIcon } from '~/components/icon/icon';
 import { toggleCollectionTrashed } from "~/store/trash/trash-actions";
-import { detailsPanelActions } from "~/store/details-panel/details-panel-action";
 import { openAdvancedTabDialog } from "~/store/advanced-tab/advanced-tab";
 import { toggleDetailsPanel } from '~/store/details-panel/details-panel-action';
 
 import { openAdvancedTabDialog } from "~/store/advanced-tab/advanced-tab";
 import { toggleDetailsPanel } from '~/store/details-panel/details-panel-action';
 
@@ -27,8 +26,8 @@ export const trashedCollectionActionSet: ContextMenuActionSet = [[
     {
         icon: AdvancedIcon,
         name: "Advanced",
     {
         icon: AdvancedIcon,
         name: "Advanced",
-        execute: (dispatch, { uuid, ownerUuid }) => {
-            dispatch<any>(openAdvancedTabDialog(uuid, ownerUuid));
+        execute: (dispatch, { uuid }) => {
+            dispatch<any>(openAdvancedTabDialog(uuid));
         }
     },
     {
         }
     },
     {