15768: merge cleanup Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa.knox@curii.com>
authorLisa Knox <lisaknox83@gmail.com>
Tue, 10 Oct 2023 19:31:09 +0000 (15:31 -0400)
committerLisa Knox <lisaknox83@gmail.com>
Tue, 10 Oct 2023 19:31:09 +0000 (15:31 -0400)
src/components/icon/icon.tsx
src/store/store.ts
src/views-components/data-explorer/renderers.tsx

index 20b87b20515e90de0fdaf281a5d9b75b25a789a1..5f3f4e659b5f3491cbe4f76c7b3154d826fa38cd 100644 (file)
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import React from 'react';
-import { Badge, SvgIcon, Tooltip } from '@material-ui/core';
-import Add from '@material-ui/icons/Add';
-import ArrowBack from '@material-ui/icons/ArrowBack';
-import ArrowDropDown from '@material-ui/icons/ArrowDropDown';
-import Build from '@material-ui/icons/Build';
-import Cached from '@material-ui/icons/Cached';
-import DescriptionIcon from '@material-ui/icons/Description';
-import ChevronLeft from '@material-ui/icons/ChevronLeft';
-import CloudUpload from '@material-ui/icons/CloudUpload';
-import Code from '@material-ui/icons/Code';
-import Create from '@material-ui/icons/Create';
-import ImportContacts from '@material-ui/icons/ImportContacts';
-import ChevronRight from '@material-ui/icons/ChevronRight';
-import Close from '@material-ui/icons/Close';
-import ContentCopy from '@material-ui/icons/FileCopyOutlined';
-import CreateNewFolder from '@material-ui/icons/CreateNewFolder';
-import Delete from '@material-ui/icons/Delete';
-import DeviceHub from '@material-ui/icons/DeviceHub';
-import Edit from '@material-ui/icons/Edit';
-import ErrorRoundedIcon from '@material-ui/icons/ErrorRounded';
-import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
-import FlipToFront from '@material-ui/icons/FlipToFront';
-import Folder from '@material-ui/icons/Folder';
-import FolderShared from '@material-ui/icons/FolderShared';
-import Pageview from '@material-ui/icons/Pageview';
-import GetApp from '@material-ui/icons/GetApp';
-import Help from '@material-ui/icons/Help';
-import HelpOutline from '@material-ui/icons/HelpOutline';
-import History from '@material-ui/icons/History';
-import Inbox from '@material-ui/icons/Inbox';
-import Memory from '@material-ui/icons/Memory';
-import MoveToInbox from '@material-ui/icons/MoveToInbox';
-import Info from '@material-ui/icons/Info';
-import Input from '@material-ui/icons/Input';
-import InsertDriveFile from '@material-ui/icons/InsertDriveFile';
-import LastPage from '@material-ui/icons/LastPage';
-import LibraryBooks from '@material-ui/icons/LibraryBooks';
-import ListAlt from '@material-ui/icons/ListAlt';
-import Menu from '@material-ui/icons/Menu';
-import MoreVert from '@material-ui/icons/MoreVert';
-import Mail from '@material-ui/icons/Mail';
-import Notifications from '@material-ui/icons/Notifications';
-import OpenInNew from '@material-ui/icons/OpenInNew';
-import People from '@material-ui/icons/People';
-import Person from '@material-ui/icons/Person';
-import PersonAdd from '@material-ui/icons/PersonAdd';
-import PlayArrow from '@material-ui/icons/PlayArrow';
-import Public from '@material-ui/icons/Public';
-import RateReview from '@material-ui/icons/RateReview';
-import RestoreFromTrash from '@material-ui/icons/History';
-import Search from '@material-ui/icons/Search';
-import SettingsApplications from '@material-ui/icons/SettingsApplications';
-import SettingsEthernet from '@material-ui/icons/SettingsEthernet';
-import Settings from '@material-ui/icons/Settings';
-import Star from '@material-ui/icons/Star';
-import StarBorder from '@material-ui/icons/StarBorder';
-import Warning from '@material-ui/icons/Warning';
-import VpnKey from '@material-ui/icons/VpnKey';
-import LinkOutlined from '@material-ui/icons/LinkOutlined';
-import RemoveRedEye from '@material-ui/icons/RemoveRedEye';
-import Computer from '@material-ui/icons/Computer';
-import WrapText from '@material-ui/icons/WrapText';
-import TextIncrease from '@material-ui/icons/ZoomIn';
-import TextDecrease from '@material-ui/icons/ZoomOut';
-import FullscreenSharp from '@material-ui/icons/FullscreenSharp';
-import FullscreenExitSharp from '@material-ui/icons/FullscreenExitSharp';
-import ExitToApp from '@material-ui/icons/ExitToApp';
-import CheckCircleOutline from '@material-ui/icons/CheckCircleOutline';
-import RemoveCircleOutline from '@material-ui/icons/RemoveCircleOutline';
-import NotInterested from '@material-ui/icons/NotInterested';
-import Image from '@material-ui/icons/Image';
-import Stop from '@material-ui/icons/Stop';
+import React from "react";
+import { Badge, SvgIcon, Tooltip } from "@material-ui/core";
+import Add from "@material-ui/icons/Add";
+import ArrowBack from "@material-ui/icons/ArrowBack";
+import ArrowDropDown from "@material-ui/icons/ArrowDropDown";
+import Build from "@material-ui/icons/Build";
+import Cached from "@material-ui/icons/Cached";
+import DescriptionIcon from "@material-ui/icons/Description";
+import ChevronLeft from "@material-ui/icons/ChevronLeft";
+import CloudUpload from "@material-ui/icons/CloudUpload";
+import Code from "@material-ui/icons/Code";
+import Create from "@material-ui/icons/Create";
+import ImportContacts from "@material-ui/icons/ImportContacts";
+import ChevronRight from "@material-ui/icons/ChevronRight";
+import Close from "@material-ui/icons/Close";
+import ContentCopy from "@material-ui/icons/FileCopyOutlined";
+import CreateNewFolder from "@material-ui/icons/CreateNewFolder";
+import Delete from "@material-ui/icons/Delete";
+import DeviceHub from "@material-ui/icons/DeviceHub";
+import Edit from "@material-ui/icons/Edit";
+import ErrorRoundedIcon from "@material-ui/icons/ErrorRounded";
+import ExpandMoreIcon from "@material-ui/icons/ExpandMore";
+import FlipToFront from "@material-ui/icons/FlipToFront";
+import Folder from "@material-ui/icons/Folder";
+import FolderShared from "@material-ui/icons/FolderShared";
+import Pageview from "@material-ui/icons/Pageview";
+import GetApp from "@material-ui/icons/GetApp";
+import Help from "@material-ui/icons/Help";
+import HelpOutline from "@material-ui/icons/HelpOutline";
+import History from "@material-ui/icons/History";
+import Inbox from "@material-ui/icons/Inbox";
+import Memory from "@material-ui/icons/Memory";
+import MoveToInbox from "@material-ui/icons/MoveToInbox";
+import Info from "@material-ui/icons/Info";
+import Input from "@material-ui/icons/Input";
+import InsertDriveFile from "@material-ui/icons/InsertDriveFile";
+import LastPage from "@material-ui/icons/LastPage";
+import LibraryBooks from "@material-ui/icons/LibraryBooks";
+import ListAlt from "@material-ui/icons/ListAlt";
+import Menu from "@material-ui/icons/Menu";
+import MoreVert from "@material-ui/icons/MoreVert";
+import MoreHoriz from "@material-ui/icons/MoreHoriz";
+import Mail from "@material-ui/icons/Mail";
+import Notifications from "@material-ui/icons/Notifications";
+import OpenInNew from "@material-ui/icons/OpenInNew";
+import People from "@material-ui/icons/People";
+import Person from "@material-ui/icons/Person";
+import PersonAdd from "@material-ui/icons/PersonAdd";
+import PlayArrow from "@material-ui/icons/PlayArrow";
+import Public from "@material-ui/icons/Public";
+import RateReview from "@material-ui/icons/RateReview";
+import RestoreFromTrash from "@material-ui/icons/History";
+import Search from "@material-ui/icons/Search";
+import SettingsApplications from "@material-ui/icons/SettingsApplications";
+import SettingsEthernet from "@material-ui/icons/SettingsEthernet";
+import Settings from "@material-ui/icons/Settings";
+import Star from "@material-ui/icons/Star";
+import StarBorder from "@material-ui/icons/StarBorder";
+import Warning from "@material-ui/icons/Warning";
+import VpnKey from "@material-ui/icons/VpnKey";
+import LinkOutlined from "@material-ui/icons/LinkOutlined";
+import RemoveRedEye from "@material-ui/icons/RemoveRedEye";
+import Computer from "@material-ui/icons/Computer";
+import WrapText from "@material-ui/icons/WrapText";
+import TextIncrease from "@material-ui/icons/ZoomIn";
+import TextDecrease from "@material-ui/icons/ZoomOut";
+import FullscreenSharp from "@material-ui/icons/FullscreenSharp";
+import FullscreenExitSharp from "@material-ui/icons/FullscreenExitSharp";
+import ExitToApp from "@material-ui/icons/ExitToApp";
+import CheckCircleOutline from "@material-ui/icons/CheckCircleOutline";
+import RemoveCircleOutline from "@material-ui/icons/RemoveCircleOutline";
+import NotInterested from "@material-ui/icons/NotInterested";
+import Image from "@material-ui/icons/Image";
+import Stop from "@material-ui/icons/Stop";
+import FileCopy from "@material-ui/icons/FileCopy";
 
 // Import FontAwesome icons
-import { library } from '@fortawesome/fontawesome-svg-core';
-import { faPencilAlt, faSlash, faUsers, faEllipsisH } from '@fortawesome/free-solid-svg-icons';
-import { FormatAlignLeft } from '@material-ui/icons';
-library.add(
-    faPencilAlt,
-    faSlash,
-    faUsers,
-    faEllipsisH,
-);
+import { library } from "@fortawesome/fontawesome-svg-core";
+import { faPencilAlt, faSlash, faUsers, faEllipsisH } from "@fortawesome/free-solid-svg-icons";
+import { FormatAlignLeft } from "@material-ui/icons";
+library.add(faPencilAlt, faSlash, faUsers, faEllipsisH);
 
-export const FreezeIcon = (props: any) =>
+export const FreezeIcon = (props: any) => (
     <SvgIcon {...props}>
         <path d="M20.79,13.95L18.46,14.57L16.46,13.44V10.56L18.46,9.43L20.79,10.05L21.31,8.12L19.54,7.65L20,5.88L18.07,5.36L17.45,7.69L15.45,8.82L13,7.38V5.12L14.71,3.41L13.29,2L12,3.29L10.71,2L9.29,3.41L11,5.12V7.38L8.5,8.82L6.5,7.69L5.92,5.36L4,5.88L4.47,7.65L2.7,8.12L3.22,10.05L5.55,9.43L7.55,10.56V13.45L5.55,14.58L3.22,13.96L2.7,15.89L4.47,16.36L4,18.12L5.93,18.64L6.55,16.31L8.55,15.18L11,16.62V18.88L9.29,20.59L10.71,22L12,20.71L13.29,22L14.7,20.59L13,18.88V16.62L15.5,15.17L17.5,16.3L18.12,18.63L20,18.12L19.53,16.35L21.3,15.88L20.79,13.95M9.5,10.56L12,9.11L14.5,10.56V13.44L12,14.89L9.5,13.44V10.56Z" />
     </SvgIcon>
+);
 
-export const UnfreezeIcon = (props: any) =>
+export const UnfreezeIcon = (props: any) => (
     <SvgIcon {...props}>
         <path d="M11 5.12L9.29 3.41L10.71 2L12 3.29L13.29 2L14.71 3.41L13 5.12V7.38L15.45 8.82L17.45 7.69L18.07 5.36L20 5.88L19.54 7.65L21.31 8.12L20.79 10.05L18.46 9.43L16.46 10.56V13.26L14.5 11.3V10.56L12.74 9.54L10.73 7.53L11 7.38V5.12M18.46 14.57L16.87 13.67L19.55 16.35L21.3 15.88L20.79 13.95L18.46 14.57M13 16.62V18.88L14.7 20.59L13.29 22L12 20.71L10.71 22L9.29 20.59L11 18.88V16.62L8.55 15.18L6.55 16.31L5.93 18.64L4 18.12L4.47 16.36L2.7 15.89L3.22 13.96L5.55 14.58L7.55 13.45V10.56L5.55 9.43L3.22 10.05L2.7 8.12L4.47 7.65L4 5.89L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73L14.1 16L13 16.62M12 14.89L12.63 14.5L9.5 11.39V13.44L12 14.89Z" />
     </SvgIcon>
+);
 
-export const PendingIcon = (props: any) =>
+export const PendingIcon = (props: any) => (
     <span {...props}>
-        <span className='fas fa-ellipsis-h' />
+        <span className="fas fa-ellipsis-h" />
     </span>
+);
 
-export const ReadOnlyIcon = (props: any) =>
+export const ReadOnlyIcon = (props: any) => (
     <span {...props}>
         <div className="fa-layers fa-1x fa-fw">
-            <span className="fas fa-slash"
-                data-fa-mask="fas fa-pencil-alt" data-fa-transform="down-1.5" />
+            <span
+                className="fas fa-slash"
+                data-fa-mask="fas fa-pencil-alt"
+                data-fa-transform="down-1.5"
+            />
             <span className="fas fa-slash" />
         </div>
-    </span>;
+    </span>
+);
 
-export const GroupsIcon = (props: any) =>
+export const GroupsIcon = (props: any) => (
     <span {...props}>
         <span className="fas fa-users" />
-    </span>;
+    </span>
+);
 
-export const CollectionOldVersionIcon = (props: any) =>
-    <Tooltip title='Old version'>
-        <Badge badgeContent={<History fontSize='small' />}>
+export const CollectionOldVersionIcon = (props: any) => (
+    <Tooltip title="Old version">
+        <Badge badgeContent={<History fontSize="small" />}>
             <CollectionIcon {...props} />
         </Badge>
-    </Tooltip>;
+    </Tooltip>
+);
 
 // https://materialdesignicons.com/icon/image-off
-export const ImageOffIcon = (props: any) =>
+export const ImageOffIcon = (props: any) => (
     <SvgIcon {...props}>
         <path d="M21 17.2L6.8 3H19C20.1 3 21 3.9 21 5V17.2M20.7 22L19.7 21H5C3.9 21 3 20.1 3 19V4.3L2 3.3L3.3 2L22 20.7L20.7 22M16.8 18L12.9 14.1L11 16.5L8.5 13.5L5 18H16.8Z" />
-    </SvgIcon>;
+    </SvgIcon>
+);
 
 // https://materialdesignicons.com/icon/inbox-arrow-up
-export const OutputIcon: IconType = (props: any) =>
+export const OutputIcon: IconType = (props: any) => (
     <SvgIcon {...props}>
         <path d="M14,14H10V11H8L12,7L16,11H14V14M16,11M5,15V5H19V15H15A3,3 0 0,1 12,18A3,3 0 0,1 9,15H5M19,3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3" />
-    </SvgIcon>;
+    </SvgIcon>
+);
 
-export type IconType = React.SFC<{ className?: string, style?: object }>;
+// https://pictogrammers.com/library/mdi/icon/file-move/
+export const FileMoveIcon: IconType = (props: any) => (
+    <SvgIcon {...props}>
+        <path d="M14,17H18V14L23,18.5L18,23V20H14V17M13,9H18.5L13,3.5V9M6,2H14L20,8V12.34C19.37,12.12 18.7,12 18,12A6,6 0 0,0 12,18C12,19.54 12.58,20.94 13.53,22H6C4.89,22 4,21.1 4,20V4A2,2 0 0,1 6,2Z" />
+    </SvgIcon>
+);
 
-export const AddIcon: IconType = (props) => <Add {...props} />;
-export const AddFavoriteIcon: IconType = (props) => <StarBorder {...props} />;
-export const AdminMenuIcon: IconType = (props) => <Build {...props} />;
-export const AdvancedIcon: IconType = (props) => <SettingsApplications {...props} />;
-export const AttributesIcon: IconType = (props) => <ListAlt {...props} />;
-export const BackIcon: IconType = (props) => <ArrowBack {...props} />;
-export const CustomizeTableIcon: IconType = (props) => <Menu {...props} />;
-export const CommandIcon: IconType = (props) => <LastPage {...props} />;
-export const CopyIcon: IconType = (props) => <ContentCopy {...props} />;
-export const CollectionIcon: IconType = (props) => <LibraryBooks {...props} />;
-export const CloseIcon: IconType = (props) => <Close {...props} />;
-export const CloudUploadIcon: IconType = (props) => <CloudUpload {...props} />;
-export const DefaultIcon: IconType = (props) => <RateReview {...props} />;
-export const DetailsIcon: IconType = (props) => <Info {...props} />;
-export const DirectoryIcon: IconType = (props) => <Folder {...props} />;
-export const DownloadIcon: IconType = (props) => <GetApp {...props} />;
-export const EditSavedQueryIcon: IconType = (props) => <Create {...props} />;
-export const ExpandIcon: IconType = (props) => <ExpandMoreIcon {...props} />;
-export const ErrorIcon: IconType = (props) => <ErrorRoundedIcon style={{ color: '#ff0000' }} {...props} />;
-export const FavoriteIcon: IconType = (props) => <Star {...props} />;
-export const FileIcon: IconType = (props) => <DescriptionIcon {...props} />;
-export const HelpIcon: IconType = (props) => <Help {...props} />;
-export const HelpOutlineIcon: IconType = (props) => <HelpOutline {...props} />;
-export const ImportContactsIcon: IconType = (props) => <ImportContacts {...props} />;
-export const InfoIcon: IconType = (props) => <Info {...props} />;
-export const FileInputIcon: IconType = (props) => <InsertDriveFile {...props} />;
-export const KeyIcon: IconType = (props) => <VpnKey {...props} />;
-export const LogIcon: IconType = (props) => <SettingsEthernet {...props} />;
-export const MailIcon: IconType = (props) => <Mail {...props} />;
-export const MaximizeIcon: IconType = (props) => <FullscreenSharp {...props} />;
-export const MemoryIcon: IconType = (props) => <Memory {...props} />;
-export const UnMaximizeIcon: IconType = (props) => <FullscreenExitSharp {...props} />;
-export const MoreOptionsIcon: IconType = (props) => <MoreVert {...props} />;
-export const MoveToIcon: IconType = (props) => <Input {...props} />;
-export const NewProjectIcon: IconType = (props) => <CreateNewFolder {...props} />;
-export const NotificationIcon: IconType = (props) => <Notifications {...props} />;
-export const OpenIcon: IconType = (props) => <OpenInNew {...props} />;
-export const InputIcon: IconType = (props) => <MoveToInbox {...props} />;
-export const PaginationDownIcon: IconType = (props) => <ArrowDropDown {...props} />;
-export const PaginationLeftArrowIcon: IconType = (props) => <ChevronLeft {...props} />;
-export const PaginationRightArrowIcon: IconType = (props) => <ChevronRight {...props} />;
-export const ProcessIcon: IconType = (props) => <Settings {...props} />;
-export const ProjectIcon: IconType = (props) => <Folder {...props} />;
-export const FilterGroupIcon: IconType = (props) => <Pageview {...props} />;
-export const ProjectsIcon: IconType = (props) => <Inbox {...props} />;
-export const ProvenanceGraphIcon: IconType = (props) => <DeviceHub {...props} />;
-export const RemoveIcon: IconType = (props) => <Delete {...props} />;
-export const RemoveFavoriteIcon: IconType = (props) => <Star {...props} />;
-export const PublicFavoriteIcon: IconType = (props) => <Public {...props} />;
-export const RenameIcon: IconType = (props) => <Edit {...props} />;
-export const RestoreVersionIcon: IconType = (props) => <FlipToFront {...props} />;
-export const RestoreFromTrashIcon: IconType = (props) => <RestoreFromTrash {...props} />;
-export const ReRunProcessIcon: IconType = (props) => <Cached {...props} />;
-export const SearchIcon: IconType = (props) => <Search {...props} />;
-export const ShareIcon: IconType = (props) => <PersonAdd {...props} />;
-export const ShareMeIcon: IconType = (props) => <People {...props} />;
-export const SidePanelRightArrowIcon: IconType = (props) => <PlayArrow {...props} />;
-export const TrashIcon: IconType = (props) => <Delete {...props} />;
-export const UserPanelIcon: IconType = (props) => <Person {...props} />;
-export const UsedByIcon: IconType = (props) => <Folder {...props} />;
-export const WorkflowIcon: IconType = (props) => <Code {...props} />;
-export const WarningIcon: IconType = (props) => <Warning style={{ color: '#fbc02d', height: '30px', width: '30px' }} {...props} />;
-export const Link: IconType = (props) => <LinkOutlined {...props} />;
-export const FolderSharedIcon: IconType = (props) => <FolderShared {...props} />;
-export const CanReadIcon: IconType = (props) => <RemoveRedEye {...props} />;
-export const CanWriteIcon: IconType = (props) => <Edit {...props} />;
-export const CanManageIcon: IconType = (props) => <Computer {...props} />;
-export const AddUserIcon: IconType = (props) => <PersonAdd {...props} />;
-export const WordWrapOnIcon: IconType = (props) => <WrapText {...props} />;
-export const WordWrapOffIcon: IconType = (props) => <FormatAlignLeft {...props} />;
-export const TextIncreaseIcon: IconType = (props) => <TextIncrease {...props} />;
-export const TextDecreaseIcon: IconType = (props) => <TextDecrease {...props} />;
-export const DeactivateUserIcon: IconType = (props) => <NotInterested {...props} />;
-export const LoginAsIcon: IconType = (props) => <ExitToApp {...props} />;
-export const ActiveIcon: IconType = (props) => <CheckCircleOutline {...props} />;
-export const SetupIcon: IconType = (props) => <RemoveCircleOutline {...props} />;
-export const InactiveIcon: IconType = (props) => <NotInterested {...props} />;
-export const ImageIcon: IconType = (props) => <Image {...props} />;
-export const StartIcon: IconType = (props) => <PlayArrow {...props} />;
-export const StopIcon: IconType = (props) => <Stop {...props} />;
+// https://pictogrammers.com/library/mdi/icon/checkbox-multiple-outline/
+export const CheckboxMultipleOutline: IconType = (props: any) => (
+    <SvgIcon {...props}>
+        <path d="M20,2H8A2,2 0 0,0 6,4V16A2,2 0 0,0 8,18H20A2,2 0 0,0 22,16V4A2,2 0 0,0 20,2M20,16H8V4H20V16M16,20V22H4A2,2 0 0,1 2,20V7H4V20H16M18.53,8.06L17.47,7L12.59,11.88L10.47,9.76L9.41,10.82L12.59,14L18.53,8.06Z" />
+    </SvgIcon>
+);
+
+// https://pictogrammers.com/library/mdi/icon/checkbox-multiple-blank-outline/
+export const CheckboxMultipleBlankOutline: IconType = (props: any) => (
+    <SvgIcon {...props}>
+        <path d="M20,16V4H8V16H20M22,16A2,2 0 0,1 20,18H8C6.89,18 6,17.1 6,16V4C6,2.89 6.89,2 8,2H20A2,2 0 0,1 22,4V16M16,20V22H4A2,2 0 0,1 2,20V7H4V20H16Z" />
+    </SvgIcon>
+);
+
+export type IconType = React.SFC<{ className?: string; style?: object }>;
+
+export const AddIcon: IconType = props => <Add {...props} />;
+export const AddFavoriteIcon: IconType = props => <StarBorder {...props} />;
+export const AdminMenuIcon: IconType = props => <Build {...props} />;
+export const AdvancedIcon: IconType = props => <SettingsApplications {...props} />;
+export const AttributesIcon: IconType = props => <ListAlt {...props} />;
+export const BackIcon: IconType = props => <ArrowBack {...props} />;
+export const CustomizeTableIcon: IconType = props => <Menu {...props} />;
+export const CommandIcon: IconType = props => <LastPage {...props} />;
+export const CopyIcon: IconType = props => <ContentCopy {...props} />;
+export const FileCopyIcon: IconType = props => <FileCopy {...props} />;
+export const CollectionIcon: IconType = props => <LibraryBooks {...props} />;
+export const CloseIcon: IconType = props => <Close {...props} />;
+export const CloudUploadIcon: IconType = props => <CloudUpload {...props} />;
+export const DefaultIcon: IconType = props => <RateReview {...props} />;
+export const DetailsIcon: IconType = props => <Info {...props} />;
+export const DirectoryIcon: IconType = props => <Folder {...props} />;
+export const DownloadIcon: IconType = props => <GetApp {...props} />;
+export const EditSavedQueryIcon: IconType = props => <Create {...props} />;
+export const ExpandIcon: IconType = props => <ExpandMoreIcon {...props} />;
+export const ErrorIcon: IconType = props => (
+    <ErrorRoundedIcon
+        style={{ color: "#ff0000" }}
+        {...props}
+    />
+);
+export const FavoriteIcon: IconType = props => <Star {...props} />;
+export const FileIcon: IconType = props => <DescriptionIcon {...props} />;
+export const HelpIcon: IconType = props => <Help {...props} />;
+export const HelpOutlineIcon: IconType = props => <HelpOutline {...props} />;
+export const ImportContactsIcon: IconType = props => <ImportContacts {...props} />;
+export const InfoIcon: IconType = props => <Info {...props} />;
+export const FileInputIcon: IconType = props => <InsertDriveFile {...props} />;
+export const KeyIcon: IconType = props => <VpnKey {...props} />;
+export const LogIcon: IconType = props => <SettingsEthernet {...props} />;
+export const MailIcon: IconType = props => <Mail {...props} />;
+export const MaximizeIcon: IconType = props => <FullscreenSharp {...props} />;
+export const MemoryIcon: IconType = props => <Memory {...props} />;
+export const UnMaximizeIcon: IconType = props => <FullscreenExitSharp {...props} />;
+export const MoreVerticalIcon: IconType = props => <MoreVert {...props} />;
+export const MoreHorizontalIcon: IconType = props => <MoreHoriz {...props} />;
+export const MoveToIcon: IconType = props => <Input {...props} />;
+export const NewProjectIcon: IconType = props => <CreateNewFolder {...props} />;
+export const NotificationIcon: IconType = props => <Notifications {...props} />;
+export const OpenIcon: IconType = props => <OpenInNew {...props} />;
+export const InputIcon: IconType = props => <MoveToInbox {...props} />;
+export const PaginationDownIcon: IconType = props => <ArrowDropDown {...props} />;
+export const PaginationLeftArrowIcon: IconType = props => <ChevronLeft {...props} />;
+export const PaginationRightArrowIcon: IconType = props => <ChevronRight {...props} />;
+export const ProcessIcon: IconType = props => <Settings {...props} />;
+export const ProjectIcon: IconType = props => <Folder {...props} />;
+export const FilterGroupIcon: IconType = props => <Pageview {...props} />;
+export const ProjectsIcon: IconType = props => <Inbox {...props} />;
+export const ProvenanceGraphIcon: IconType = props => <DeviceHub {...props} />;
+export const RemoveIcon: IconType = props => <Delete {...props} />;
+export const RemoveFavoriteIcon: IconType = props => <Star {...props} />;
+export const PublicFavoriteIcon: IconType = props => <Public {...props} />;
+export const RenameIcon: IconType = props => <Edit {...props} />;
+export const RestoreVersionIcon: IconType = props => <FlipToFront {...props} />;
+export const RestoreFromTrashIcon: IconType = props => <RestoreFromTrash {...props} />;
+export const ReRunProcessIcon: IconType = props => <Cached {...props} />;
+export const SearchIcon: IconType = props => <Search {...props} />;
+export const ShareIcon: IconType = props => <PersonAdd {...props} />;
+export const ShareMeIcon: IconType = props => <People {...props} />;
+export const SidePanelRightArrowIcon: IconType = props => <PlayArrow {...props} />;
+export const TrashIcon: IconType = props => <Delete {...props} />;
+export const UserPanelIcon: IconType = props => <Person {...props} />;
+export const UsedByIcon: IconType = props => <Folder {...props} />;
+export const WorkflowIcon: IconType = props => <Code {...props} />;
+export const WarningIcon: IconType = props => (
+    <Warning
+        style={{ color: "#fbc02d", height: "30px", width: "30px" }}
+        {...props}
+    />
+);
+export const Link: IconType = props => <LinkOutlined {...props} />;
+export const FolderSharedIcon: IconType = props => <FolderShared {...props} />;
+export const CanReadIcon: IconType = props => <RemoveRedEye {...props} />;
+export const CanWriteIcon: IconType = props => <Edit {...props} />;
+export const CanManageIcon: IconType = props => <Computer {...props} />;
+export const AddUserIcon: IconType = props => <PersonAdd {...props} />;
+export const WordWrapOnIcon: IconType = props => <WrapText {...props} />;
+export const WordWrapOffIcon: IconType = props => <FormatAlignLeft {...props} />;
+export const TextIncreaseIcon: IconType = props => <TextIncrease {...props} />;
+export const TextDecreaseIcon: IconType = props => <TextDecrease {...props} />;
+export const DeactivateUserIcon: IconType = props => <NotInterested {...props} />;
+export const LoginAsIcon: IconType = props => <ExitToApp {...props} />;
+export const ActiveIcon: IconType = props => <CheckCircleOutline {...props} />;
+export const SetupIcon: IconType = props => <RemoveCircleOutline {...props} />;
+export const InactiveIcon: IconType = props => <NotInterested {...props} />;
+export const ImageIcon: IconType = props => <Image {...props} />;
+export const StartIcon: IconType = props => <PlayArrow {...props} />;
+export const StopIcon: IconType = props => <Stop {...props} />;
+export const SelectAllIcon: IconType = props => <CheckboxMultipleOutline {...props} />;
+export const SelectNoneIcon: IconType = props => <CheckboxMultipleBlankOutline {...props} />;
index e0af6047f4cef1742544df36be355b36b448f68e..ac56d40793a402a744ab61ca9ab97172e59a7a62 100644 (file)
@@ -78,6 +78,8 @@ import { tooltipsMiddleware } from "./tooltips/tooltips-middleware";
 import { sidePanelReducer } from "./side-panel/side-panel-reducer";
 import { bannerReducer } from "./banner/banner-reducer";
 import { multiselectReducer } from "./multiselect/multiselect-reducer";
+import { composeWithDevTools } from "redux-devtools-extension";
+const composeEnhancers = (process.env.NODE_ENV === "development" && window && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__) || compose;
 
 declare global {
     interface Window {
@@ -85,9 +87,6 @@ declare global {
     }
 }
 
-const composeEnhancers = (process.env.NODE_ENV === "development" && window && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__) || compose;
-import { composeWithDevTools } from "redux-devtools-extension";
-
 export type RootState = ReturnType<ReturnType<typeof createRootReducer>>;
 
 export type RootStore = Store<RootState, Action> & { dispatch: Dispatch<any> };
index 5accd0522fd0d23af4a0fa6acc756c1b58a47eb4..dca06084f63bfeef74aedf896a411b7ac624f764 100644 (file)
@@ -2,17 +2,10 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-<<<<<<< HEAD
-import React from 'react';
-import { Grid, Typography, withStyles, Tooltip, IconButton, Checkbox, Chip } from '@material-ui/core';
-import { FavoriteStar, PublicFavoriteStar } from '../favorite-star/favorite-star';
-import { Resource, ResourceKind, TrashableResource } from 'models/resource';
-=======
 import React from "react";
 import { Grid, Typography, withStyles, Tooltip, IconButton, Checkbox, Chip } from "@material-ui/core";
 import { FavoriteStar, PublicFavoriteStar } from "../favorite-star/favorite-star";
 import { Resource, ResourceKind, TrashableResource } from "models/resource";
->>>>>>> main
 import {
     FreezeIcon,
     ProjectIcon,
@@ -28,49 +21,6 @@ import {
     ActiveIcon,
     SetupIcon,
     InactiveIcon,
-<<<<<<< HEAD
-} from 'components/icon/icon';
-import { formatDate, formatFileSize, formatTime } from 'common/formatters';
-import { resourceLabel } from 'common/labels';
-import { connect, DispatchProp } from 'react-redux';
-import { RootState } from 'store/store';
-import { getResource, filterResources } from 'store/resources/resources';
-import { GroupContentsResource } from 'services/groups-service/groups-service';
-import { getProcess, Process, getProcessStatus, getProcessStatusStyles, getProcessRuntime } from 'store/processes/process';
-import { ArvadosTheme } from 'common/custom-theme';
-import { compose, Dispatch } from 'redux';
-import { WorkflowResource } from 'models/workflow';
-import { ResourceStatus as WorkflowStatus } from 'views/workflow-panel/workflow-panel-view';
-import { getUuidPrefix, openRunProcess } from 'store/workflow-panel/workflow-panel-actions';
-import { openSharingDialog } from 'store/sharing-dialog/sharing-dialog-actions';
-import { getUserFullname, getUserDisplayName, User, UserResource } from 'models/user';
-import { toggleIsAdmin } from 'store/users/users-actions';
-import { LinkClass, LinkResource } from 'models/link';
-import { navigateTo, navigateToGroupDetails, navigateToUserProfile } from 'store/navigation/navigation-action';
-import { withResourceData } from 'views-components/data-explorer/with-resources';
-import { CollectionResource } from 'models/collection';
-import { IllegalNamingWarning } from 'components/warning/warning';
-import { loadResource } from 'store/resources/resources-actions';
-import { BuiltinGroups, getBuiltinGroupUuid, GroupClass, GroupResource, isBuiltinGroup } from 'models/group';
-import { openRemoveGroupMemberDialog } from 'store/group-details-panel/group-details-panel-actions';
-import { setMemberIsHidden } from 'store/group-details-panel/group-details-panel-actions';
-import { formatPermissionLevel } from 'views-components/sharing-dialog/permission-select';
-import { PermissionLevel } from 'models/permission';
-import { openPermissionEditContextMenu } from 'store/context-menu/context-menu-actions';
-import { getUserUuid } from 'common/getuser';
-import { VirtualMachinesResource } from 'models/virtual-machines';
-import { CopyToClipboardSnackbar } from 'components/copy-to-clipboard-snackbar/copy-to-clipboard-snackbar';
-import { ProjectResource } from 'models/project';
-import { ProcessResource } from 'models/process';
-
-const renderName = (dispatch: Dispatch, item: GroupContentsResource) => {
-    const navFunc = 'groupClass' in item && item.groupClass === GroupClass.ROLE ? navigateToGroupDetails : navigateTo;
-    return (
-        <Grid container alignItems='center' wrap='nowrap' spacing={16}>
-            <Grid item>{renderIcon(item)}</Grid>
-            <Grid item>
-                <Typography color='primary' style={{ width: 'auto', cursor: 'pointer' }} onClick={() => dispatch<any>(navFunc(item.uuid))}>
-=======
 } from "components/icon/icon";
 import { formatDate, formatFileSize, formatTime } from "common/formatters";
 import { resourceLabel } from "common/labels";
@@ -120,17 +70,12 @@ const renderName = (dispatch: Dispatch, item: GroupContentsResource) => {
                     style={{ width: "auto", cursor: "pointer" }}
                     onClick={() => dispatch<any>(navFunc(item.uuid))}
                 >
->>>>>>> main
                     {item.kind === ResourceKind.PROJECT || item.kind === ResourceKind.COLLECTION ? <IllegalNamingWarning name={item.name} /> : null}
                     {item.name}
                 </Typography>
             </Grid>
             <Grid item>
-<<<<<<< HEAD
-                <Typography variant='caption'>
-=======
                 <Typography variant="caption">
->>>>>>> main
                     <FavoriteStar resourceUuid={item.uuid} />
                     <PublicFavoriteStar resourceUuid={item.uuid} />
                     {item.kind === ResourceKind.PROJECT && <FrozenProject item={item} />}
@@ -150,17 +95,12 @@ const FrozenProject = (props: { item: ProjectResource }) => {
 
     if (props.item.frozenByUuid) {
         return (
-<<<<<<< HEAD
-            <Tooltip onOpen={getFullName} enterDelay={500} title={<span>Project was frozen by {fullUsername}</span>}>
-                <FreezeIcon style={{ fontSize: 'inherit' }} />
-=======
             <Tooltip
                 onOpen={getFullName}
                 enterDelay={500}
                 title={<span>Project was frozen by {fullUsername}</span>}
             >
                 <FreezeIcon style={{ fontSize: "inherit" }} />
->>>>>>> main
             </Tooltip>
         );
     } else {
@@ -196,26 +136,16 @@ const renderIcon = (item: GroupContentsResource) => {
 
 const renderDate = (date?: string) => {
     return (
-<<<<<<< HEAD
-        <Typography noWrap style={{ minWidth: '100px' }}>
-=======
         <Typography
             noWrap
             style={{ minWidth: "100px" }}
         >
->>>>>>> main
             {formatDate(date)}
         </Typography>
     );
 };
 
 const renderWorkflowName = (item: WorkflowResource) => (
-<<<<<<< HEAD
-    <Grid container alignItems='center' wrap='nowrap' spacing={16}>
-        <Grid item>{renderIcon(item)}</Grid>
-        <Grid item>
-            <Typography color='primary' style={{ width: '100px' }}>
-=======
     <Grid
         container
         alignItems="center"
@@ -228,7 +158,6 @@ const renderWorkflowName = (item: WorkflowResource) => (
                 color="primary"
                 style={{ width: "100px" }}
             >
->>>>>>> main
                 {item.name}
             </Typography>
         </Grid>
@@ -249,11 +178,7 @@ const resourceShare = (dispatch: Dispatch, uuidPrefix: string, ownerUuid?: strin
     return (
         <div>
             {!isPublic && uuid && (
-<<<<<<< HEAD
-                <Tooltip title='Share'>
-=======
                 <Tooltip title="Share">
->>>>>>> main
                     <IconButton onClick={() => dispatch<any>(openSharingDialog(uuid))}>
                         <ShareIcon />
                     </IconButton>
@@ -267,13 +192,8 @@ export const ResourceShare = connect((state: RootState, props: { uuid: string })
     const resource = getResource<WorkflowResource>(props.uuid)(state.resources);
     const uuidPrefix = getUuidPrefix(state);
     return {
-<<<<<<< HEAD
-        uuid: resource ? resource.uuid : '',
-        ownerUuid: resource ? resource.ownerUuid : '',
-=======
         uuid: resource ? resource.uuid : "",
         ownerUuid: resource ? resource.ownerUuid : "",
->>>>>>> main
         uuidPrefix,
     };
 })((props: { ownerUuid?: string; uuidPrefix: string; uuid?: string } & DispatchProp<any>) =>
@@ -287,26 +207,13 @@ const renderFirstName = (item: { firstName: string }) => {
 
 export const ResourceFirstName = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<UserResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return resource || { firstName: '' };
-=======
     return resource || { firstName: "" };
->>>>>>> main
 })(renderFirstName);
 
 const renderLastName = (item: { lastName: string }) => <Typography noWrap>{item.lastName}</Typography>;
 
 export const ResourceLastName = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<UserResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return resource || { lastName: '' };
-})(renderLastName);
-
-const renderFullName = (dispatch: Dispatch, item: { uuid: string; firstName: string; lastName: string }, link?: boolean) => {
-    const displayName = (item.firstName + ' ' + item.lastName).trim() || item.uuid;
-    return link ? (
-        <Typography noWrap color='primary' style={{ cursor: 'pointer' }} onClick={() => dispatch<any>(navigateToUserProfile(item.uuid))}>
-=======
     return resource || { lastName: "" };
 })(renderLastName);
 
@@ -319,7 +226,6 @@ const renderFullName = (dispatch: Dispatch, item: { uuid: string; firstName: str
             style={{ cursor: "pointer" }}
             onClick={() => dispatch<any>(navigateToUserProfile(item.uuid))}
         >
->>>>>>> main
             {displayName}
         </Typography>
     ) : (
@@ -329,40 +235,22 @@ const renderFullName = (dispatch: Dispatch, item: { uuid: string; firstName: str
 
 export const UserResourceFullName = connect((state: RootState, props: { uuid: string; link?: boolean }) => {
     const resource = getResource<UserResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return { item: resource || { uuid: '', firstName: '', lastName: '' }, link: props.link };
-=======
     return { item: resource || { uuid: "", firstName: "", lastName: "" }, link: props.link };
->>>>>>> main
 })((props: { item: { uuid: string; firstName: string; lastName: string }; link?: boolean } & DispatchProp<any>) =>
     renderFullName(props.dispatch, props.item, props.link)
 );
 
 const renderUuid = (item: { uuid: string }) => (
-<<<<<<< HEAD
-    <Typography data-cy='uuid' noWrap>
-        {item.uuid}
-        {(item.uuid && <CopyToClipboardSnackbar value={item.uuid} />) || '-'}
-=======
     <Typography
         data-cy="uuid"
         noWrap
     >
         {item.uuid}
         {(item.uuid && <CopyToClipboardSnackbar value={item.uuid} />) || "-"}
->>>>>>> main
     </Typography>
 );
 
 const renderUuidCopyIcon = (item: { uuid: string }) => (
-<<<<<<< HEAD
-    <Typography data-cy='uuid' noWrap>
-        {(item.uuid && <CopyToClipboardSnackbar value={item.uuid} />) || '-'}
-    </Typography>
-);
-
-export const ResourceUuid = connect((state: RootState, props: { uuid: string }) => getResource<UserResource>(props.uuid)(state.resources) || { uuid: '' })(renderUuid);
-=======
     <Typography
         data-cy="uuid"
         noWrap
@@ -374,26 +262,11 @@ export const ResourceUuid = connect((state: RootState, props: { uuid: string })
 export const ResourceUuid = connect(
     (state: RootState, props: { uuid: string }) => getResource<UserResource>(props.uuid)(state.resources) || { uuid: "" }
 )(renderUuid);
->>>>>>> main
 
 const renderEmail = (item: { email: string }) => <Typography noWrap>{item.email}</Typography>;
 
 export const ResourceEmail = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<UserResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return resource || { email: '' };
-})(renderEmail);
-
-enum UserAccountStatus {
-    ACTIVE = 'Active',
-    INACTIVE = 'Inactive',
-    SETUP = 'Setup',
-    UNKNOWN = '',
-}
-
-const renderAccountStatus = (props: { status: UserAccountStatus }) => (
-    <Grid container alignItems='center' wrap='nowrap' spacing={8} data-cy='account-status'>
-=======
     return resource || { email: "" };
 })(renderEmail);
 
@@ -412,24 +285,15 @@ const renderAccountStatus = (props: { status: UserAccountStatus }) => (
         spacing={8}
         data-cy="account-status"
     >
->>>>>>> main
         <Grid item>
             {(() => {
                 switch (props.status) {
                     case UserAccountStatus.ACTIVE:
-<<<<<<< HEAD
-                        return <ActiveIcon style={{ color: '#4caf50', verticalAlign: 'middle' }} />;
-                    case UserAccountStatus.SETUP:
-                        return <SetupIcon style={{ color: '#2196f3', verticalAlign: 'middle' }} />;
-                    case UserAccountStatus.INACTIVE:
-                        return <InactiveIcon style={{ color: '#9e9e9e', verticalAlign: 'middle' }} />;
-=======
                         return <ActiveIcon style={{ color: "#4caf50", verticalAlign: "middle" }} />;
                     case UserAccountStatus.SETUP:
                         return <SetupIcon style={{ color: "#2196f3", verticalAlign: "middle" }} />;
                     case UserAccountStatus.INACTIVE:
                         return <InactiveIcon style={{ color: "#9e9e9e", verticalAlign: "middle" }} />;
->>>>>>> main
                     default:
                         return <></>;
                 }
@@ -481,19 +345,11 @@ const renderIsHidden = (props: {
     if (props.memberLinkUuid) {
         return (
             <Checkbox
-<<<<<<< HEAD
-                data-cy='user-visible-checkbox'
-                color='primary'
-                checked={props.visible}
-                disabled={!props.canManage}
-                onClick={(e) => {
-=======
                 data-cy="user-visible-checkbox"
                 color="primary"
                 checked={props.visible}
                 disabled={!props.canManage}
                 onClick={e => {
->>>>>>> main
                     e.stopPropagation();
                     props.setMemberIsHidden(props.memberLinkUuid, props.permissionLinkUuid, !props.visible);
                 }}
@@ -525,18 +381,14 @@ export const ResourceLinkTailIsVisible = connect(
 
         return member?.kind === ResourceKind.USER
             ? { memberLinkUuid: link?.uuid, permissionLinkUuid, visible: isVisible, canManage: !isBuiltin }
-<<<<<<< HEAD
-            : { memberLinkUuid: '', permissionLinkUuid: '', visible: false, canManage: false };
-=======
             : { memberLinkUuid: "", permissionLinkUuid: "", visible: false, canManage: false };
->>>>>>> main
     },
     { setMemberIsHidden }
 )(renderIsHidden);
 
 const renderIsAdmin = (props: { uuid: string; isAdmin: boolean; toggleIsAdmin: (uuid: string) => void }) => (
     <Checkbox
-        color='primary'
+        color="primary"
         checked={props.isAdmin}
         onClick={e => {
             e.stopPropagation();
@@ -557,11 +409,7 @@ const renderUsername = (item: { username: string; uuid: string }) => <Typography
 
 export const ResourceUsername = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<UserResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return resource || { username: '', uuid: props.uuid };
-=======
     return resource || { username: "", uuid: props.uuid };
->>>>>>> main
 })(renderUsername);
 
 // Virtual machine resource
@@ -570,26 +418,16 @@ const renderHostname = (item: { hostname: string }) => <Typography noWrap>{item.
 
 export const VirtualMachineHostname = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<VirtualMachinesResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return resource || { hostname: '' };
-=======
     return resource || { hostname: "" };
->>>>>>> main
 })(renderHostname);
 
 const renderVirtualMachineLogin = (login: { user: string }) => <Typography noWrap>{login.user}</Typography>;
 
 export const VirtualMachineLogin = connect((state: RootState, props: { linkUuid: string }) => {
     const permission = getResource<LinkResource>(props.linkUuid)(state.resources);
-<<<<<<< HEAD
-    const user = getResource<UserResource>(permission?.tailUuid || '')(state.resources);
-
-    return { user: user?.username || permission?.tailUuid || '' };
-=======
     const user = getResource<UserResource>(permission?.tailUuid || "")(state.resources);
 
     return { user: user?.username || permission?.tailUuid || "" };
->>>>>>> main
 })(renderVirtualMachineLogin);
 
 // Common methods
@@ -619,37 +457,21 @@ export const TokenScopes = withResourceData("scopes", renderCommonData);
 export const TokenUserId = withResourceData("userId", renderCommonData);
 
 const clusterColors = [
-<<<<<<< HEAD
-    ['#f44336', '#fff'],
-    ['#2196f3', '#fff'],
-    ['#009688', '#fff'],
-    ['#cddc39', '#fff'],
-    ['#ff9800', '#fff'],
-=======
     ["#f44336", "#fff"],
     ["#2196f3", "#fff"],
     ["#009688", "#fff"],
     ["#cddc39", "#fff"],
     ["#ff9800", "#fff"],
->>>>>>> main
 ];
 
 export const ResourceCluster = (props: { uuid: string }) => {
     const CLUSTER_ID_LENGTH = 5;
-<<<<<<< HEAD
-    const pos = props.uuid.length > CLUSTER_ID_LENGTH ? props.uuid.indexOf('-') : 5;
-    const clusterId = pos >= CLUSTER_ID_LENGTH ? props.uuid.substring(0, pos) : '';
-    const ci =
-        pos >= CLUSTER_ID_LENGTH
-            ? ((props.uuid.charCodeAt(0) * props.uuid.charCodeAt(1) + props.uuid.charCodeAt(2)) * props.uuid.charCodeAt(3) + props.uuid.charCodeAt(4)) %
-=======
     const pos = props.uuid.length > CLUSTER_ID_LENGTH ? props.uuid.indexOf("-") : 5;
     const clusterId = pos >= CLUSTER_ID_LENGTH ? props.uuid.substring(0, pos) : "";
     const ci =
         pos >= CLUSTER_ID_LENGTH
             ? ((props.uuid.charCodeAt(0) * props.uuid.charCodeAt(1) + props.uuid.charCodeAt(2)) * props.uuid.charCodeAt(3) +
                   props.uuid.charCodeAt(4)) %
->>>>>>> main
               clusterColors.length
             : 0;
     return (
@@ -657,11 +479,7 @@ export const ResourceCluster = (props: { uuid: string }) => {
             style={{
                 backgroundColor: clusterColors[ci][0],
                 color: clusterColors[ci][1],
-<<<<<<< HEAD
-                padding: '2px 7px',
-=======
                 padding: "2px 7px",
->>>>>>> main
                 borderRadius: 3,
             }}
         >
@@ -671,38 +489,22 @@ export const ResourceCluster = (props: { uuid: string }) => {
 };
 
 // Links Resources
-<<<<<<< HEAD
-const renderLinkName = (item: { name: string }) => <Typography noWrap>{item.name || '-'}</Typography>;
-
-export const ResourceLinkName = connect((state: RootState, props: { uuid: string }) => {
-    const resource = getResource<LinkResource>(props.uuid)(state.resources);
-    return resource || { name: '' };
-=======
 const renderLinkName = (item: { name: string }) => <Typography noWrap>{item.name || "-"}</Typography>;
 
 export const ResourceLinkName = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<LinkResource>(props.uuid)(state.resources);
     return resource || { name: "" };
->>>>>>> main
 })(renderLinkName);
 
 const renderLinkClass = (item: { linkClass: string }) => <Typography noWrap>{item.linkClass}</Typography>;
 
 export const ResourceLinkClass = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<LinkResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return resource || { linkClass: '' };
-})(renderLinkClass);
-
-const getResourceDisplayName = (resource: Resource): string => {
-    if ((resource as UserResource).kind === ResourceKind.USER && typeof (resource as UserResource).firstName !== 'undefined') {
-=======
     return resource || { linkClass: "" };
 })(renderLinkClass);
 
 const getResourceDisplayName = (resource: Resource): string => {
     if ((resource as UserResource).kind === ResourceKind.USER && typeof (resource as UserResource).firstName !== "undefined") {
->>>>>>> main
         // We can be sure the resource is UserResource
         return getUserDisplayName(resource as UserResource);
     } else {
@@ -714,10 +516,6 @@ const renderResourceLink = (dispatch: Dispatch, item: Resource) => {
     var displayName = getResourceDisplayName(item);
 
     return (
-<<<<<<< HEAD
-        <Typography noWrap color='primary' style={{ cursor: 'pointer' }} onClick={() => dispatch<any>(navigateTo(item.uuid))}>
-            {resourceLabel(item.kind, item && item.kind === ResourceKind.GROUP ? (item as GroupResource).groupClass || '' : '')}: {displayName || item.uuid}
-=======
         <Typography
             noWrap
             color="primary"
@@ -731,103 +529,64 @@ const renderResourceLink = (dispatch: Dispatch, item: Resource) => {
         >
             {resourceLabel(item.kind, item && item.kind === ResourceKind.GROUP ? (item as GroupResource).groupClass || "" : "")}:{" "}
             {displayName || item.uuid}
->>>>>>> main
         </Typography>
     );
 };
 
 export const ResourceLinkTail = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<LinkResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    const tailResource = getResource<Resource>(resource?.tailUuid || '')(state.resources);
-
-    return {
-        item: tailResource || { uuid: resource?.tailUuid || '', kind: resource?.tailKind || ResourceKind.NONE },
-=======
     const tailResource = getResource<Resource>(resource?.tailUuid || "")(state.resources);
 
     return {
         item: tailResource || { uuid: resource?.tailUuid || "", kind: resource?.tailKind || ResourceKind.NONE },
->>>>>>> main
     };
 })((props: { item: Resource } & DispatchProp<any>) => renderResourceLink(props.dispatch, props.item));
 
 export const ResourceLinkHead = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<LinkResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    const headResource = getResource<Resource>(resource?.headUuid || '')(state.resources);
-
-    return {
-        item: headResource || { uuid: resource?.headUuid || '', kind: resource?.headKind || ResourceKind.NONE },
-=======
     const headResource = getResource<Resource>(resource?.headUuid || "")(state.resources);
 
     return {
         item: headResource || { uuid: resource?.headUuid || "", kind: resource?.headKind || ResourceKind.NONE },
->>>>>>> main
     };
 })((props: { item: Resource } & DispatchProp<any>) => renderResourceLink(props.dispatch, props.item));
 
 export const ResourceLinkUuid = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<LinkResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return resource || { uuid: '' };
-=======
     return resource || { uuid: "" };
->>>>>>> main
 })(renderUuid);
 
 export const ResourceLinkHeadUuid = connect((state: RootState, props: { uuid: string }) => {
     const link = getResource<LinkResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    const headResource = getResource<Resource>(link?.headUuid || '')(state.resources);
-
-    return headResource || { uuid: '' };
-=======
     const headResource = getResource<Resource>(link?.headUuid || "")(state.resources);
 
     return headResource || { uuid: "" };
->>>>>>> main
 })(renderUuid);
 
 export const ResourceLinkTailUuid = connect((state: RootState, props: { uuid: string }) => {
     const link = getResource<LinkResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    const tailResource = getResource<Resource>(link?.tailUuid || '')(state.resources);
-
-    return tailResource || { uuid: '' };
-=======
     const tailResource = getResource<Resource>(link?.tailUuid || "")(state.resources);
 
     return tailResource || { uuid: "" };
->>>>>>> main
 })(renderUuid);
 
 const renderLinkDelete = (dispatch: Dispatch, item: LinkResource, canManage: boolean) => {
     if (item.uuid) {
         return canManage ? (
             <Typography noWrap>
-<<<<<<< HEAD
-                <IconButton data-cy='resource-delete-button' onClick={() => dispatch<any>(openRemoveGroupMemberDialog(item.uuid))}>
-=======
                 <IconButton
                     data-cy="resource-delete-button"
                     onClick={() => dispatch<any>(openRemoveGroupMemberDialog(item.uuid))}
                 >
->>>>>>> main
                     <RemoveIcon />
                 </IconButton>
             </Typography>
         ) : (
             <Typography noWrap>
-<<<<<<< HEAD
-                <IconButton disabled data-cy='resource-delete-button'>
-=======
                 <IconButton
                     disabled
                     data-cy="resource-delete-button"
                 >
->>>>>>> main
                     <RemoveIcon />
                 </IconButton>
             </Typography>
@@ -839,45 +598,26 @@ const renderLinkDelete = (dispatch: Dispatch, item: LinkResource, canManage: boo
 
 export const ResourceLinkDelete = connect((state: RootState, props: { uuid: string }) => {
     const link = getResource<LinkResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    const isBuiltin = isBuiltinGroup(link?.headUuid || '') || isBuiltinGroup(link?.tailUuid || '');
-
-    return {
-        item: link || { uuid: '', kind: ResourceKind.NONE },
-=======
     const isBuiltin = isBuiltinGroup(link?.headUuid || "") || isBuiltinGroup(link?.tailUuid || "");
 
     return {
         item: link || { uuid: "", kind: ResourceKind.NONE },
->>>>>>> main
         canManage: link && getResourceLinkCanManage(state, link) && !isBuiltin,
     };
 })((props: { item: LinkResource; canManage: boolean } & DispatchProp<any>) => renderLinkDelete(props.dispatch, props.item, props.canManage));
 
 export const ResourceLinkTailEmail = connect((state: RootState, props: { uuid: string }) => {
     const link = getResource<LinkResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    const resource = getResource<UserResource>(link?.tailUuid || '')(state.resources);
-
-    return resource || { email: '' };
-=======
     const resource = getResource<UserResource>(link?.tailUuid || "")(state.resources);
 
     return resource || { email: "" };
->>>>>>> main
 })(renderEmail);
 
 export const ResourceLinkTailUsername = connect((state: RootState, props: { uuid: string }) => {
     const link = getResource<LinkResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    const resource = getResource<UserResource>(link?.tailUuid || '')(state.resources);
-
-    return resource || { username: '' };
-=======
     const resource = getResource<UserResource>(link?.tailUuid || "")(state.resources);
 
     return resource || { username: "" };
->>>>>>> main
 })(renderUsername);
 
 const renderPermissionLevel = (dispatch: Dispatch, link: LinkResource, canManage: boolean) => {
@@ -885,13 +625,6 @@ const renderPermissionLevel = (dispatch: Dispatch, link: LinkResource, canManage
         <Typography noWrap>
             {formatPermissionLevel(link.name as PermissionLevel)}
             {canManage ? (
-<<<<<<< HEAD
-                <IconButton data-cy='edit-permission-button' onClick={(event) => dispatch<any>(openPermissionEditContextMenu(event, link))}>
-                    <RenameIcon />
-                </IconButton>
-            ) : (
-                ''
-=======
                 <IconButton
                     data-cy="edit-permission-button"
                     onClick={event => dispatch<any>(openPermissionEditContextMenu(event, link))}
@@ -900,7 +633,6 @@ const renderPermissionLevel = (dispatch: Dispatch, link: LinkResource, canManage
                 </IconButton>
             ) : (
                 ""
->>>>>>> main
             )}
         </Typography>
     );
@@ -908,34 +640,20 @@ const renderPermissionLevel = (dispatch: Dispatch, link: LinkResource, canManage
 
 export const ResourceLinkHeadPermissionLevel = connect((state: RootState, props: { uuid: string }) => {
     const link = getResource<LinkResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    const isBuiltin = isBuiltinGroup(link?.headUuid || '') || isBuiltinGroup(link?.tailUuid || '');
-
-    return {
-        link: link || { uuid: '', name: '', kind: ResourceKind.NONE },
-=======
     const isBuiltin = isBuiltinGroup(link?.headUuid || "") || isBuiltinGroup(link?.tailUuid || "");
 
     return {
         link: link || { uuid: "", name: "", kind: ResourceKind.NONE },
->>>>>>> main
         canManage: link && getResourceLinkCanManage(state, link) && !isBuiltin,
     };
 })((props: { link: LinkResource; canManage: boolean } & DispatchProp<any>) => renderPermissionLevel(props.dispatch, props.link, props.canManage));
 
 export const ResourceLinkTailPermissionLevel = connect((state: RootState, props: { uuid: string }) => {
     const link = getResource<LinkResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    const isBuiltin = isBuiltinGroup(link?.headUuid || '') || isBuiltinGroup(link?.tailUuid || '');
-
-    return {
-        link: link || { uuid: '', name: '', kind: ResourceKind.NONE },
-=======
     const isBuiltin = isBuiltinGroup(link?.headUuid || "") || isBuiltinGroup(link?.tailUuid || "");
 
     return {
         link: link || { uuid: "", name: "", kind: ResourceKind.NONE },
->>>>>>> main
         canManage: link && getResourceLinkCanManage(state, link) && !isBuiltin,
     };
 })((props: { link: LinkResource; canManage: boolean } & DispatchProp<any>) => renderPermissionLevel(props.dispatch, props.link, props.canManage));
@@ -955,11 +673,7 @@ const resourceRunProcess = (dispatch: Dispatch, uuid: string) => {
     return (
         <div>
             {uuid && (
-<<<<<<< HEAD
-                <Tooltip title='Run process'>
-=======
                 <Tooltip title="Run process">
->>>>>>> main
                     <IconButton onClick={() => dispatch<any>(openRunProcess(uuid))}>
                         <ProcessIcon />
                     </IconButton>
@@ -972,11 +686,7 @@ const resourceRunProcess = (dispatch: Dispatch, uuid: string) => {
 export const ResourceRunProcess = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<WorkflowResource>(props.uuid)(state.resources);
     return {
-<<<<<<< HEAD
-        uuid: resource ? resource.uuid : '',
-=======
         uuid: resource ? resource.uuid : "",
->>>>>>> main
     };
 })((props: { uuid: string } & DispatchProp<any>) => resourceRunProcess(props.dispatch, props.uuid));
 
@@ -989,14 +699,10 @@ const renderWorkflowStatus = (uuidPrefix: string, ownerUuid?: string) => {
 };
 
 const renderStatus = (status: string) => (
-<<<<<<< HEAD
-    <Typography noWrap style={{ width: '60px' }}>
-=======
     <Typography
         noWrap
         style={{ width: "60px" }}
     >
->>>>>>> main
         {status}
     </Typography>
 );
@@ -1005,47 +711,24 @@ export const ResourceWorkflowStatus = connect((state: RootState, props: { uuid:
     const resource = getResource<WorkflowResource>(props.uuid)(state.resources);
     const uuidPrefix = getUuidPrefix(state);
     return {
-<<<<<<< HEAD
-        ownerUuid: resource ? resource.ownerUuid : '',
-=======
         ownerUuid: resource ? resource.ownerUuid : "",
->>>>>>> main
         uuidPrefix,
     };
 })((props: { ownerUuid?: string; uuidPrefix: string }) => renderWorkflowStatus(props.uuidPrefix, props.ownerUuid));
 
 export const ResourceContainerUuid = connect((state: RootState, props: { uuid: string }) => {
     const process = getProcess(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return { uuid: process?.container?.uuid ? process?.container?.uuid : '' };
-})((props: { uuid: string }) => renderUuid({ uuid: props.uuid }));
-
-enum ColumnSelection {
-    OUTPUT_UUID = 'outputUuid',
-    LOG_UUID = 'logUuid',
-=======
     return { uuid: process?.container?.uuid ? process?.container?.uuid : "" };
 })((props: { uuid: string }) => renderUuid({ uuid: props.uuid }));
 
 enum ColumnSelection {
     OUTPUT_UUID = "outputUuid",
     LOG_UUID = "logUuid",
->>>>>>> main
 }
 
 const renderUuidLinkWithCopyIcon = (dispatch: Dispatch, item: ProcessResource, column: string) => {
     const selectedColumnUuid = item[column];
     return (
-<<<<<<< HEAD
-        <Grid container alignItems='center' wrap='nowrap'>
-            <Grid item>
-                {selectedColumnUuid ? (
-                    <Typography color='primary' style={{ width: 'auto', cursor: 'pointer' }} noWrap onClick={() => dispatch<any>(navigateTo(selectedColumnUuid))}>
-                        {selectedColumnUuid}
-                    </Typography>
-                ) : (
-                    '-'
-=======
         <Grid
             container
             alignItems="center"
@@ -1063,7 +746,6 @@ const renderUuidLinkWithCopyIcon = (dispatch: Dispatch, item: ProcessResource, c
                     </Typography>
                 ) : (
                     "-"
->>>>>>> main
                 )}
             </Grid>
             <Grid item>{selectedColumnUuid && renderUuidCopyIcon({ uuid: selectedColumnUuid })}</Grid>
@@ -1083,58 +765,31 @@ export const ResourceLogUuid = connect((state: RootState, props: { uuid: string
 
 export const ResourceParentProcess = connect((state: RootState, props: { uuid: string }) => {
     const process = getProcess(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return { parentProcess: process?.containerRequest?.requestingContainerUuid || '' };
-=======
     return { parentProcess: process?.containerRequest?.requestingContainerUuid || "" };
->>>>>>> main
 })((props: { parentProcess: string }) => renderUuid({ uuid: props.parentProcess }));
 
 export const ResourceModifiedByUserUuid = connect((state: RootState, props: { uuid: string }) => {
     const process = getProcess(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return { userUuid: process?.containerRequest?.modifiedByUserUuid || '' };
-=======
     return { userUuid: process?.containerRequest?.modifiedByUserUuid || "" };
->>>>>>> main
 })((props: { userUuid: string }) => renderUuid({ uuid: props.userUuid }));
 
 export const ResourceCreatedAtDate = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<GroupContentsResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return { date: resource ? resource.createdAt : '' };
-=======
     return { date: resource ? resource.createdAt : "" };
->>>>>>> main
 })((props: { date: string }) => renderDate(props.date));
 
 export const ResourceLastModifiedDate = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<GroupContentsResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return { date: resource ? resource.modifiedAt : '' };
-=======
     return { date: resource ? resource.modifiedAt : "" };
->>>>>>> main
 })((props: { date: string }) => renderDate(props.date));
 
 export const ResourceTrashDate = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<TrashableResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return { date: resource ? resource.trashAt : '' };
-=======
     return { date: resource ? resource.trashAt : "" };
->>>>>>> main
 })((props: { date: string }) => renderDate(props.date));
 
 export const ResourceDeleteDate = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<TrashableResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return { date: resource ? resource.deleteAt : '' };
-})((props: { date: string }) => renderDate(props.date));
-
-export const renderFileSize = (fileSize?: number) => (
-    <Typography noWrap style={{ minWidth: '45px' }}>
-=======
     return { date: resource ? resource.deleteAt : "" };
 })((props: { date: string }) => renderDate(props.date));
 
@@ -1143,7 +798,6 @@ export const renderFileSize = (fileSize?: number) => (
         noWrap
         style={{ minWidth: "45px" }}
     >
->>>>>>> main
         {formatFileSize(fileSize)}
     </Typography>
 );
@@ -1152,66 +806,38 @@ export const ResourceFileSize = connect((state: RootState, props: { uuid: string
     const resource = getResource<CollectionResource>(props.uuid)(state.resources);
 
     if (resource && resource.kind !== ResourceKind.COLLECTION) {
-<<<<<<< HEAD
-        return { fileSize: '' };
-=======
         return { fileSize: "" };
->>>>>>> main
     }
 
     return { fileSize: resource ? resource.fileSizeTotal : 0 };
 })((props: { fileSize?: number }) => renderFileSize(props.fileSize));
 
-<<<<<<< HEAD
-const renderOwner = (owner: string) => <Typography noWrap>{owner || '-'}</Typography>;
-
-export const ResourceOwner = connect((state: RootState, props: { uuid: string }) => {
-    const resource = getResource<GroupContentsResource>(props.uuid)(state.resources);
-    return { owner: resource ? resource.ownerUuid : '' };
-=======
 const renderOwner = (owner: string) => <Typography noWrap>{owner || "-"}</Typography>;
 
 export const ResourceOwner = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<GroupContentsResource>(props.uuid)(state.resources);
     return { owner: resource ? resource.ownerUuid : "" };
->>>>>>> main
 })((props: { owner: string }) => renderOwner(props.owner));
 
 export const ResourceOwnerName = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<GroupContentsResource>(props.uuid)(state.resources);
     const ownerNameState = state.ownerName;
-<<<<<<< HEAD
-    const ownerName = ownerNameState.find((it) => it.uuid === resource!.ownerUuid);
-=======
     const ownerName = ownerNameState.find(it => it.uuid === resource!.ownerUuid);
->>>>>>> main
     return { owner: ownerName ? ownerName!.name : resource!.ownerUuid };
 })((props: { owner: string }) => renderOwner(props.owner));
 
 export const ResourceUUID = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<CollectionResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return { uuid: resource ? resource.uuid : '' };
-})((props: { uuid: string }) => renderUuid({ uuid: props.uuid }));
-
-const renderVersion = (version: number) => {
-    return <Typography>{version ?? '-'}</Typography>;
-=======
     return { uuid: resource ? resource.uuid : "" };
 })((props: { uuid: string }) => renderUuid({ uuid: props.uuid }));
 
 const renderVersion = (version: number) => {
     return <Typography>{version ?? "-"}</Typography>;
->>>>>>> main
 };
 
 export const ResourceVersion = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<CollectionResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return { version: resource ? resource.version : '' };
-=======
     return { version: resource ? resource.version : "" };
->>>>>>> main
 })((props: { version: number }) => renderVersion(props.version));
 
 const renderPortableDataHash = (portableDataHash: string | null) => (
@@ -1222,47 +848,27 @@ const renderPortableDataHash = (portableDataHash: string | null) => (
                 <CopyToClipboardSnackbar value={portableDataHash} />
             </>
         ) : (
-<<<<<<< HEAD
-            '-'
-=======
             "-"
->>>>>>> main
         )}
     </Typography>
 );
 
 export const ResourcePortableDataHash = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<CollectionResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return { portableDataHash: resource ? resource.portableDataHash : '' };
-})((props: { portableDataHash: string }) => renderPortableDataHash(props.portableDataHash));
-
-const renderFileCount = (fileCount: number) => {
-    return <Typography>{fileCount ?? '-'}</Typography>;
-=======
     return { portableDataHash: resource ? resource.portableDataHash : "" };
 })((props: { portableDataHash: string }) => renderPortableDataHash(props.portableDataHash));
 
 const renderFileCount = (fileCount: number) => {
     return <Typography>{fileCount ?? "-"}</Typography>;
->>>>>>> main
 };
 
 export const ResourceFileCount = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<CollectionResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return { fileCount: resource ? resource.fileCount : '' };
-})((props: { fileCount: number }) => renderFileCount(props.fileCount));
-
-const userFromID = connect((state: RootState, props: { uuid: string }) => {
-    let userFullname = '';
-=======
     return { fileCount: resource ? resource.fileCount : "" };
 })((props: { fileCount: number }) => renderFileCount(props.fileCount));
 
 const userFromID = connect((state: RootState, props: { uuid: string }) => {
     let userFullname = "";
->>>>>>> main
     const resource = getResource<GroupContentsResource & UserResource>(props.uuid)(state.resources);
 
     if (resource) {
@@ -1275,11 +881,7 @@ const userFromID = connect((state: RootState, props: { uuid: string }) => {
 const ownerFromResourceId = compose(
     connect((state: RootState, props: { uuid: string }) => {
         const childResource = getResource<GroupContentsResource & UserResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-        return { uuid: childResource ? (childResource as Resource).ownerUuid : '' };
-=======
         return { uuid: childResource ? (childResource as Resource).ownerUuid : "" };
->>>>>>> main
     }),
     userFromID
 );
@@ -1289,12 +891,6 @@ const _resourceWithName = withStyles(
     { withTheme: true }
 )((props: { uuid: string; userFullname: string; dispatch: Dispatch; theme: ArvadosTheme }) => {
     const { uuid, userFullname, dispatch, theme } = props;
-<<<<<<< HEAD
-    if (userFullname === '') {
-        dispatch<any>(loadResource(uuid, false));
-        return (
-            <Typography style={{ color: theme.palette.primary.main }} inline noWrap>
-=======
     if (userFullname === "") {
         dispatch<any>(loadResource(uuid, false));
         return (
@@ -1303,22 +899,17 @@ const _resourceWithName = withStyles(
                 inline
                 noWrap
             >
->>>>>>> main
                 {uuid}
             </Typography>
         );
     }
 
     return (
-<<<<<<< HEAD
-        <Typography style={{ color: theme.palette.primary.main }} inline noWrap>
-=======
         <Typography
             style={{ color: theme.palette.primary.main }}
             inline
             noWrap
         >
->>>>>>> main
             {userFullname} ({uuid})
         </Typography>
     );
@@ -1331,11 +922,7 @@ export const ResourceWithName = userFromID(_resourceWithName);
 export const UserNameFromID = compose(userFromID)((props: { uuid: string; displayAsText?: string; userFullname: string; dispatch: Dispatch }) => {
     const { uuid, userFullname, dispatch } = props;
 
-<<<<<<< HEAD
-    if (userFullname === '') {
-=======
     if (userFullname === "") {
->>>>>>> main
         dispatch<any>(loadResource(uuid, false));
     }
     return <span>{userFullname ? userFullname : uuid}</span>;
@@ -1343,15 +930,9 @@ export const UserNameFromID = compose(userFromID)((props: { uuid: string; displa
 
 export const ResponsiblePerson = compose(
     connect((state: RootState, props: { uuid: string; parentRef: HTMLElement | null }) => {
-<<<<<<< HEAD
-        let responsiblePersonName: string = '';
-        let responsiblePersonUUID: string = '';
-        let responsiblePersonProperty: string = '';
-=======
         let responsiblePersonName: string = "";
         let responsiblePersonUUID: string = "";
         let responsiblePersonProperty: string = "";
->>>>>>> main
 
         if (state.auth.config.clusterConfig.Collections.ManagedProperties) {
             let index = 0;
@@ -1359,11 +940,7 @@ export const ResponsiblePerson = compose(
 
             while (!responsiblePersonProperty && keys[index]) {
                 const key = keys[index];
-<<<<<<< HEAD
-                if (state.auth.config.clusterConfig.Collections.ManagedProperties[key].Function === 'original_owner') {
-=======
                 if (state.auth.config.clusterConfig.Collections.ManagedProperties[key].Function === "original_owner") {
->>>>>>> main
                     responsiblePersonProperty = key;
                 }
                 index++;
@@ -1388,45 +965,30 @@ export const ResponsiblePerson = compose(
     const { uuid, responsiblePersonName, parentRef, theme } = props;
 
     if (!uuid && parentRef) {
-<<<<<<< HEAD
-        parentRef.style.display = 'none';
-        return null;
-    } else if (parentRef) {
-        parentRef.style.display = 'block';
-=======
         parentRef.style.display = "none";
         return null;
     } else if (parentRef) {
         parentRef.style.display = "block";
->>>>>>> main
     }
 
     if (!responsiblePersonName) {
         return (
-<<<<<<< HEAD
-            <Typography style={{ color: theme.palette.primary.main }} inline noWrap>
-=======
             <Typography
                 style={{ color: theme.palette.primary.main }}
                 inline
                 noWrap
             >
->>>>>>> main
                 {uuid}
             </Typography>
         );
     }
 
     return (
-<<<<<<< HEAD
-        <Typography style={{ color: theme.palette.primary.main }} inline noWrap>
-=======
         <Typography
             style={{ color: theme.palette.primary.main }}
             inline
             noWrap
         >
->>>>>>> main
             {responsiblePersonName} ({uuid})
         </Typography>
     );
@@ -1436,39 +998,27 @@ const renderType = (type: string, subtype: string) => <Typography noWrap>{resour
 
 export const ResourceType = connect((state: RootState, props: { uuid: string }) => {
     const resource = getResource<GroupContentsResource>(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return { type: resource ? resource.kind : '', subtype: resource && resource.kind === ResourceKind.GROUP ? resource.groupClass : '' };
-=======
     return { type: resource ? resource.kind : "", subtype: resource && resource.kind === ResourceKind.GROUP ? resource.groupClass : "" };
->>>>>>> main
 })((props: { type: string; subtype: string }) => renderType(props.type, props.subtype));
 
 export const ResourceStatus = connect((state: RootState, props: { uuid: string }) => {
     return { resource: getResource<GroupContentsResource>(props.uuid)(state.resources) };
 })((props: { resource: GroupContentsResource }) =>
-<<<<<<< HEAD
-    props.resource && props.resource.kind === ResourceKind.COLLECTION ? <CollectionStatus uuid={props.resource.uuid} /> : <ProcessStatus uuid={props.resource.uuid} />
-=======
     props.resource && props.resource.kind === ResourceKind.COLLECTION ? (
         <CollectionStatus uuid={props.resource.uuid} />
     ) : (
         <ProcessStatus uuid={props.resource.uuid} />
     )
->>>>>>> main
 );
 
 export const CollectionStatus = connect((state: RootState, props: { uuid: string }) => {
     return { collection: getResource<CollectionResource>(props.uuid)(state.resources) };
 })((props: { collection: CollectionResource }) =>
-<<<<<<< HEAD
-    props.collection.uuid !== props.collection.currentVersionUuid ? <Typography>version {props.collection.version}</Typography> : <Typography>head version</Typography>
-=======
     props.collection.uuid !== props.collection.currentVersionUuid ? (
         <Typography>version {props.collection.version}</Typography>
     ) : (
         <Typography>head version</Typography>
     )
->>>>>>> main
 );
 
 export const CollectionName = connect((state: RootState, props: { uuid: string; className?: string }) => {
@@ -1494,11 +1044,7 @@ export const ProcessStatus = compose(
                 height: props.theme.spacing.unit * 3,
                 width: props.theme.spacing.unit * 12,
                 ...getProcessStatusStyles(getProcessStatus(props.process), props.theme),
-<<<<<<< HEAD
-                fontSize: '0.875rem',
-=======
                 fontSize: "0.875rem",
->>>>>>> main
                 borderRadius: props.theme.spacing.unit * 0.625,
             }}
         />
@@ -1509,13 +1055,6 @@ export const ProcessStatus = compose(
 
 export const ProcessStartDate = connect((state: RootState, props: { uuid: string }) => {
     const process = getProcess(props.uuid)(state.resources);
-<<<<<<< HEAD
-    return { date: process && process.container ? process.container.startedAt : '' };
-})((props: { date: string }) => renderDate(props.date));
-
-export const renderRunTime = (time: number) => (
-    <Typography noWrap style={{ minWidth: '45px' }}>
-=======
     return { date: process && process.container ? process.container.startedAt : "" };
 })((props: { date: string }) => renderDate(props.date));
 
@@ -1524,7 +1063,6 @@ export const renderRunTime = (time: number) => (
         noWrap
         style={{ minWidth: "45px" }}
     >
->>>>>>> main
         {formatTime(time, true)}
     </Typography>
 );