[ARVADOS-WORKBENCH2] updated: 2.1.0-451-ge2914bad

Git user git at public.arvados.org
Tue Jul 6 20:17:37 UTC 2021


Summary of changes:
 package.json                                       |  9 +++---
 src/common/config.ts                               |  2 +-
 src/common/custom-theme.ts                         |  4 ---
 .../collection-panel-files.tsx                     |  2 +-
 .../details-attribute/details-attribute.tsx        |  4 +--
 src/components/tree/tree.tsx                       |  2 +-
 src/services/common-service/common-service.ts      |  2 +-
 src/services/services.ts                           |  2 +-
 ...llections-content-address-middleware-service.ts |  4 +--
 .../collections/collection-partial-copy-actions.ts |  2 +-
 .../favorite-panel-middleware-service.ts           |  4 +--
 .../process-logs-panel-actions.ts                  |  2 +-
 .../project-panel-middleware-service.ts            |  1 -
 .../public-favorites-middleware-service.ts         |  4 +--
 .../resource-type-filters/resource-type-filters.ts |  1 -
 .../search-results-middleware-service.ts           |  2 +-
 .../virtual-machines/virtual-machines-actions.ts   |  2 +-
 src/views-components/auto-logout/auto-logout.tsx   |  4 +--
 .../context-menu/actions/download-action.tsx       | 33 +++++++++++-----------
 .../context-menu/actions/file-viewer-action.tsx    |  1 +
 .../details-panel/collection-details.tsx           |  4 +--
 src/views-components/login-form/login-form.tsx     |  2 +-
 src/views-components/main-app-bar/help-menu.tsx    |  2 +-
 .../repositories-sample-git-dialog.tsx             |  4 +--
 .../token-dialog/token-dialog.test.tsx             |  8 ++++++
 .../webdav-s3-dialog/webdav-s3-dialog.tsx          |  4 +--
 src/views/collection-panel/collection-panel.tsx    |  4 +--
 src/views/not-found-panel/not-found-panel.tsx      |  2 +-
 .../virtual-machine-user-panel.tsx                 |  6 ++--
 src/views/workbench/fed-login.tsx                  |  4 +--
 .../workflow-panel/workflow-description-card.tsx   |  2 +-
 yarn.lock                                          | 27 ++++++++----------
 32 files changed, 76 insertions(+), 80 deletions(-)

       via  e2914badd89549dc768298d9150af8b53a96e380 (commit)
       via  110b716456d0cea66f8f526293f8bcaadaaeced4 (commit)
       via  8e812c1e720af23a4fa50a492981940cddd4f7f3 (commit)
       via  576f56d6e525eebebe19d1f1bdc8aaf8703e6f1b (commit)
       via  2e273c7f58e6fe02ae933e8af68683e093d62806 (commit)
       via  0ea102c171d9c9e3fae5a0fd1e8e1e5e4a25c4d6 (commit)
       via  05453f4991ee3e22c3ff0e3bca5450904aa883b8 (commit)
      from  d1c08db10cedac5138dc655dff8cd391185da369 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit e2914badd89549dc768298d9150af8b53a96e380
Author: Lucas Di Pentima <lucas.dipentima at curii.com>
Date:   Tue Jul 6 17:17:05 2021 -0300

    17782: Fixes a jest warning when running tests.
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima at curii.com>

diff --git a/package.json b/package.json
index 67c210ae..85762076 100644
--- a/package.json
+++ b/package.json
@@ -15,7 +15,7 @@
     "@types/jszip": "3.1.5",
     "@types/lodash": "4.14.116",
     "@types/react": "17.0.11",
-    "@types/react-copy-to-clipboard": "4.2.6",
+    "@types/react-copy-to-clipboard": "5.0.0",
     "@types/react-dropzone": "4.2.2",
     "@types/react-highlight-words": "0.12.0",
     "@types/react-virtualized-auto-sizer": "1.0.0",
@@ -45,7 +45,7 @@
     "prop-types": "15.7.2",
     "query-string": "6.9.0",
     "react": "16.8.6",
-    "react-copy-to-clipboard": "5.0.1",
+    "react-copy-to-clipboard": "5.0.3",
     "react-dnd": "5.0.0",
     "react-dnd-html5-backend": "5.0.1",
     "react-dom": "16.8.6",
diff --git a/src/views-components/token-dialog/token-dialog.test.tsx b/src/views-components/token-dialog/token-dialog.test.tsx
index 4d1412d8..d2ff77e3 100644
--- a/src/views-components/token-dialog/token-dialog.test.tsx
+++ b/src/views-components/token-dialog/token-dialog.test.tsx
@@ -2,6 +2,14 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
+// This mocks react-copy-to-clipboard's dependency module to avoid warnings
+// from jest when running tests. As we're not testing copy-to-clipboard, it's
+// safe to just mock it.
+// https://github.com/nkbt/react-copy-to-clipboard/issues/106#issuecomment-605227151
+jest.mock('copy-to-clipboard', () => {
+  return jest.fn();
+});
+
 import React from 'react';
 import { Button } from '@material-ui/core';
 import { mount, configure } from 'enzyme';
diff --git a/yarn.lock b/yarn.lock
index 9159597d..30b722bb 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1926,10 +1926,10 @@
   resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24"
   integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==
 
-"@types/react-copy-to-clipboard at 4.2.6":
-  version "4.2.6"
-  resolved "https://registry.yarnpkg.com/@types/react-copy-to-clipboard/-/react-copy-to-clipboard-4.2.6.tgz#d1374550dec803f17f26ec71b62783c5737bfc02"
-  integrity sha512-v4/yLsuPf8GSFuTy9fA1ABpL5uuy04vwW7qs+cfxSe1UU/M/KK95rF3N3GRseismoK9tA28SvpwVsAg/GWoF3A==
+"@types/react-copy-to-clipboard at 5.0.0":
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/@types/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.0.tgz#38b035ca0c28334d3e0efaf3f319b81eea9690cd"
+  integrity sha512-faUg6Kx3Dfv0MBIcs+xzIptlRtjEVSaNjqyC14YAp4UwSiTHghnKtBOt9ERRTZZJfoJgnw10tomVaqG86GzdAw==
   dependencies:
     "@types/react" "*"
 
@@ -10911,10 +10911,10 @@ react-app-polyfill@^1.0.6:
     regenerator-runtime "^0.13.3"
     whatwg-fetch "^3.0.0"
 
-react-copy-to-clipboard at 5.0.1:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.1.tgz#8eae107bb400be73132ed3b6a7b4fb156090208e"
-  integrity sha512-ELKq31/E3zjFs5rDWNCfFL4NvNFQvGRoJdAKReD/rUPA+xxiLPQmZBZBvy2vgH7V0GE9isIQpT9WXbwIVErYdA==
+react-copy-to-clipboard at 5.0.3:
+  version "5.0.3"
+  resolved "https://registry.yarnpkg.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.3.tgz#2a0623b1115a1d8c84144e9434d3342b5af41ab4"
+  integrity sha512-9S3j+m+UxDZOM0Qb8mhnT/rMR0NGSrj9A/073yz2DSxPMYhmYFBMYIdI2X4o8AjOjyFsSNxDRnCX6s/gRxpriw==
   dependencies:
     copy-to-clipboard "^3"
     prop-types "^15.5.8"

commit 110b716456d0cea66f8f526293f8bcaadaaeced4
Author: Lucas Di Pentima <lucas.dipentima at curii.com>
Date:   Tue Jul 6 16:51:48 2021 -0300

    17782: Fixes assorted compile warnings.
    
    There're some more not being addressed, the majority being from the cwl-svg
    library.
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima at curii.com>

diff --git a/src/components/collection-panel-files/collection-panel-files.tsx b/src/components/collection-panel-files/collection-panel-files.tsx
index 4667248c..41182482 100644
--- a/src/components/collection-panel-files/collection-panel-files.tsx
+++ b/src/components/collection-panel-files/collection-panel-files.tsx
@@ -75,7 +75,7 @@ export const CollectionPanelFilesComponent = ({ onItemMenuOpen, onSearchChange,
 
     useEffect(() => {
         onSearchChange(searchValue);
-    }, [searchValue]);
+    }, [onSearchChange, searchValue]);
 
     return (<Card data-cy='collection-files-panel' className={classes.root}>
         <CardHeader
diff --git a/src/store/project-panel/project-panel-middleware-service.ts b/src/store/project-panel/project-panel-middleware-service.ts
index d9bf0d28..659cd957 100644
--- a/src/store/project-panel/project-panel-middleware-service.ts
+++ b/src/store/project-panel/project-panel-middleware-service.ts
@@ -129,7 +129,6 @@ export const getFilters = (dataExplorer: DataExplorer) => {
             break;
         }
         case ProcessStatusFilter.CANCELLED:
-        case ProcessStatusFilter.FAILED:
         case ProcessStatusFilter.LOCKED:
         case ProcessStatusFilter.QUEUED:
         case ProcessStatusFilter.RUNNING: {
diff --git a/src/store/resource-type-filters/resource-type-filters.ts b/src/store/resource-type-filters/resource-type-filters.ts
index 8e902606..e42a16d8 100644
--- a/src/store/resource-type-filters/resource-type-filters.ts
+++ b/src/store/resource-type-filters/resource-type-filters.ts
@@ -290,7 +290,6 @@ export const buildProcessStatusFilters = ( fb:FilterBuilder, activeStatusFilter:
             break;
         }
         case ProcessStatusFilter.CANCELLED:
-        case ProcessStatusFilter.FAILED:
         case ProcessStatusFilter.LOCKED:
         case ProcessStatusFilter.RUNNING: {
             fb.addEqual('container.state', activeStatusFilter);
diff --git a/src/store/virtual-machines/virtual-machines-actions.ts b/src/store/virtual-machines/virtual-machines-actions.ts
index aa8cbfdd..e3b69d8d 100644
--- a/src/store/virtual-machines/virtual-machines-actions.ts
+++ b/src/store/virtual-machines/virtual-machines-actions.ts
@@ -81,7 +81,7 @@ export const loadVirtualMachinesUserData = () =>
 
 export const saveRequestedDate = () =>
     (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
-        const date = formatDate((new Date).toISOString());
+        const date = formatDate((new Date()).toISOString());
         services.virtualMachineService.saveRequestedDate(date);
         dispatch<any>(loadRequestedDate());
     };
diff --git a/src/views-components/auto-logout/auto-logout.tsx b/src/views-components/auto-logout/auto-logout.tsx
index 9a8299b2..a2d71d08 100644
--- a/src/views-components/auto-logout/auto-logout.tsx
+++ b/src/views-components/auto-logout/auto-logout.tsx
@@ -63,7 +63,7 @@ export const AutoLogoutComponent = (props: AutoLogoutProps) => {
         return () => {
             window.removeEventListener('storage', handleStorageEvents);
         };
-    }, []);
+    });
 
     const handleStorageEvents = (e: StorageEvent) => {
         if (e.key === LAST_ACTIVE_TIMESTAMP) {
@@ -90,7 +90,7 @@ export const AutoLogoutComponent = (props: AutoLogoutProps) => {
 
     const handleOnAction = () => {
         // Notify the other tabs there was some activity.
-        const now = (new Date).getTime();
+        const now = (new Date()).getTime();
         localStorage.setItem(LAST_ACTIVE_TIMESTAMP, now.toString());
     };
 
diff --git a/src/views/workflow-panel/workflow-description-card.tsx b/src/views/workflow-panel/workflow-description-card.tsx
index 7da39b98..9c1d81c3 100644
--- a/src/views/workflow-panel/workflow-description-card.tsx
+++ b/src/views/workflow-panel/workflow-description-card.tsx
@@ -114,7 +114,7 @@ export const WorkflowDetailsCard = withStyles(styles)(
                     return getWorkflowInputs(definition);
                 }
             }
-            return;
+            return undefined;
         }
 
         renderInputsTable() {

commit 8e812c1e720af23a4fa50a492981940cddd4f7f3
Author: Lucas Di Pentima <lucas.dipentima at curii.com>
Date:   Tue Jul 6 16:23:44 2021 -0300

    17782: Fixes 'no-mixed-operators' compile warnings.
    
    Reference: https://eslint.org/docs/rules/no-mixed-operators
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima at curii.com>

diff --git a/src/services/services.ts b/src/services/services.ts
index a887717c..b9118981 100644
--- a/src/services/services.ts
+++ b/src/services/services.ts
@@ -80,7 +80,7 @@ export const createServices = (config: Config, actions: ApiActions, useApiClient
 
     const ancestorsService = new AncestorService(groupsService, userService);
 
-    const idleTimeout = config && config.clusterConfig && config.clusterConfig.Workbench.IdleTimeout || '0s';
+    const idleTimeout = (config && config.clusterConfig && config.clusterConfig.Workbench.IdleTimeout) || '0s';
     const authService = new AuthService(apiClient, config.rootUrl, actions,
         (parse(idleTimeout, 's') || 0) > 0);
 
diff --git a/src/store/process-logs-panel/process-logs-panel-actions.ts b/src/store/process-logs-panel/process-logs-panel-actions.ts
index de6528d9..ecbd030b 100644
--- a/src/store/process-logs-panel/process-logs-panel-actions.ts
+++ b/src/store/process-logs-panel/process-logs-panel-actions.ts
@@ -51,7 +51,7 @@ export const addProcessLogsPanelItem = (message: ResourceEventMessage<{ text: st
                 if (process) {
                     const { containerRequest, container } = process;
                     if (message.objectUuid === containerRequest.uuid
-                        || container && message.objectUuid === container.uuid) {
+                        || (container && message.objectUuid === container.uuid)) {
                         dispatch(processLogsPanelActions.ADD_PROCESS_LOGS_PANEL_ITEM({
                             logType: SUMMARIZED_FILTER_TYPE,
                             log: message.properties.text
diff --git a/src/views-components/details-panel/collection-details.tsx b/src/views-components/details-panel/collection-details.tsx
index 9f03f38a..0e747fed 100644
--- a/src/views-components/details-panel/collection-details.tsx
+++ b/src/views-components/details-panel/collection-details.tsx
@@ -70,10 +70,10 @@ interface CollectionVersionBrowserDispatchProps {
 
 const mapStateToProps = (state: RootState): CollectionVersionBrowserProps => {
     const currentCollection = getResource<CollectionResource>(state.detailsPanel.resourceUuid)(state.resources);
-    const versions = currentCollection
+    const versions = (currentCollection
         && filterResources(rsc =>
             (rsc as CollectionResource).currentVersionUuid === currentCollection.currentVersionUuid)(state.resources)
-                .sort((a: CollectionResource, b: CollectionResource) => b.version - a.version) as CollectionResource[]
+                .sort((a: CollectionResource, b: CollectionResource) => b.version - a.version) as CollectionResource[])
         || [];
     return { currentCollection, versions };
 };
diff --git a/src/views-components/login-form/login-form.tsx b/src/views-components/login-form/login-form.tsx
index e4ede79b..aac13642 100644
--- a/src/views-components/login-form/login-form.tsx
+++ b/src/views-components/login-form/login-form.tsx
@@ -98,7 +98,7 @@ export const LoginForm = withStyles(styles)(
             .catch((err) => {
                 setError(true);
                 setSubmitting(false);
-                setHelperText(`${err.response && err.response.data && err.response.data.errors[0] || 'Error logging in: '+err}`);
+                setHelperText(`${(err.response && err.response.data && err.response.data.errors[0]) || 'Error logging in: '+err}`);
                 setFocus();
             });
         };
diff --git a/src/views/collection-panel/collection-panel.tsx b/src/views/collection-panel/collection-panel.tsx
index 4d0211e6..94a5af33 100644
--- a/src/views/collection-panel/collection-panel.tsx
+++ b/src/views/collection-panel/collection-panel.tsx
@@ -126,8 +126,8 @@ export const CollectionPanel = withStyles(styles)(
             }
         }
         const loadingFilesIndicator = getProgressIndicator(COLLECTION_PANEL_LOAD_FILES)(state.progressIndicator);
-        const isLoadingFiles = loadingFilesIndicator && loadingFilesIndicator!.working || false;
-        const tooManyFiles = !state.collectionPanel.loadBigCollections && item && item.fileCount > COLLECTION_PANEL_LOAD_FILES_THRESHOLD || false;
+        const isLoadingFiles = (loadingFilesIndicator && loadingFilesIndicator!.working) || false;
+        const tooManyFiles = (!state.collectionPanel.loadBigCollections && item && item.fileCount > COLLECTION_PANEL_LOAD_FILES_THRESHOLD) || false;
         return { item, isWritable, isOldVersion, isLoadingFiles, tooManyFiles };
     })(
         class extends React.Component<CollectionPanelProps> {

commit 576f56d6e525eebebe19d1f1bdc8aaf8703e6f1b
Author: Lucas Di Pentima <lucas.dipentima at curii.com>
Date:   Tue Jul 6 12:29:01 2021 -0300

    17782: Fixes 'react/jsx-no-target-blank' compile warnings.
    
    Reference:
    https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-target-blank.md
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima at curii.com>

diff --git a/src/components/details-attribute/details-attribute.tsx b/src/components/details-attribute/details-attribute.tsx
index 7b2b119b..e52c487d 100644
--- a/src/components/details-attribute/details-attribute.tsx
+++ b/src/components/details-attribute/details-attribute.tsx
@@ -95,10 +95,10 @@ export const DetailsAttribute = connect(mapStateToProps)(withStyles(styles)(
                 if (linkUrl[0] === '/') {
                     valueNode = <Link to={linkUrl} className={classes.link}>{uuid}</Link>;
                 } else {
-                    valueNode = <a href={linkUrl} className={classes.link} target='_blank'>{uuid}</a>;
+                    valueNode = <a href={linkUrl} className={classes.link} target='_blank' rel="noopener noreferrer">{uuid}</a>;
                 }
             } else if (link) {
-                valueNode = <a href={link} className={classes.link} target='_blank'>{value}</a>;
+                valueNode = <a href={link} className={classes.link} target='_blank' rel="noopener noreferrer">{value}</a>;
             } else {
                 valueNode = value;
             }
diff --git a/src/views-components/context-menu/actions/file-viewer-action.tsx b/src/views-components/context-menu/actions/file-viewer-action.tsx
index bc3d0bd6..5d98ab6e 100644
--- a/src/views-components/context-menu/actions/file-viewer-action.tsx
+++ b/src/views-components/context-menu/actions/file-viewer-action.tsx
@@ -12,6 +12,7 @@ export const FileViewerAction = (props: any) => {
             style={{ textDecoration: 'none' }}
             href={props.href}
             target="_blank"
+            rel="noopener noreferrer"
             onClick={props.onClick}>
             <ListItem button>
                 <ListItemIcon>
diff --git a/src/views-components/main-app-bar/help-menu.tsx b/src/views-components/main-app-bar/help-menu.tsx
index 55e0424b..af76e4f1 100644
--- a/src/views-components/main-app-bar/help-menu.tsx
+++ b/src/views-components/main-app-bar/help-menu.tsx
@@ -72,7 +72,7 @@ export const HelpMenu = compose(
                 {
                     links.map(link =>
                         <MenuItem key={link.title}>
-                            <a href={link.link} target="_blank" className={classes.link}>
+                            <a href={link.link} target="_blank" rel="noopener noreferrer" className={classes.link}>
                                 <ImportContactsIcon className={classes.icon} />
                                 <Typography className={classes.linkTitle}>{link.title}</Typography>
                             </a>
diff --git a/src/views-components/repositories-sample-git-dialog/repositories-sample-git-dialog.tsx b/src/views-components/repositories-sample-git-dialog/repositories-sample-git-dialog.tsx
index 704f13f2..854f3f4f 100644
--- a/src/views-components/repositories-sample-git-dialog/repositories-sample-git-dialog.tsx
+++ b/src/views-components/repositories-sample-git-dialog/repositories-sample-git-dialog.tsx
@@ -54,8 +54,8 @@ export const RepositoriesSampleGitDialog = compose(
                         lines={[snippetText(props.data.uuidPrefix)]} />
                     <Typography variant='body1' className={props.classes.spacing}>
                         See also:
-                        <div><a href="https://doc.arvados.org/user/getting_started/ssh-access-unix.html" className={props.classes.link} target="_blank">SSH access</a></div>
-                        <div><a href="https://doc.arvados.org/user/tutorials/tutorial-firstscript.html" className={props.classes.link} target="_blank">Writing a Crunch Script</a></div>
+                        <div><a href="https://doc.arvados.org/user/getting_started/ssh-access-unix.html" className={props.classes.link} target="_blank" rel="noopener noreferrer">SSH access</a></div>
+                        <div><a href="https://doc.arvados.org/user/tutorials/tutorial-firstscript.html" className={props.classes.link} target="_blank" rel="noopener noreferrer">Writing a Crunch Script</a></div>
                     </Typography>
                 </DialogContent>
                 <DialogActions>
diff --git a/src/views-components/webdav-s3-dialog/webdav-s3-dialog.tsx b/src/views-components/webdav-s3-dialog/webdav-s3-dialog.tsx
index 181e6e28..39c1068e 100644
--- a/src/views-components/webdav-s3-dialog/webdav-s3-dialog.tsx
+++ b/src/views-components/webdav-s3-dialog/webdav-s3-dialog.tsx
@@ -161,7 +161,7 @@ export const WebDavS3InfoDialog = compose(
 
                     <DetailsAttribute
                         label='Internet address'
-                        value={<a href={winDav.toString()} target="_blank">{winDav.toString()}</a>}
+                        value={<a href={winDav.toString()} target="_blank" rel="noopener noreferrer">{winDav.toString()}</a>}
                         copyValue={winDav.toString()} />
 
                     <DetailsAttribute
@@ -191,7 +191,7 @@ export const WebDavS3InfoDialog = compose(
                 <TabPanel index={0} value={activeTab}>
                     <DetailsAttribute
                         label='Server'
-                        value={<a href={cyberDavStr} target="_blank">{cyberDavStr}</a>}
+                        value={<a href={cyberDavStr} target="_blank" rel="noopener noreferrer">{cyberDavStr}</a>}
                         copyValue={cyberDavStr} />
 
                     <DetailsAttribute
diff --git a/src/views/virtual-machine-panel/virtual-machine-user-panel.tsx b/src/views/virtual-machine-panel/virtual-machine-user-panel.tsx
index 1900dda5..10be5d63 100644
--- a/src/views/virtual-machine-panel/virtual-machine-user-panel.tsx
+++ b/src/views/virtual-machine-panel/virtual-machine-user-panel.tsx
@@ -134,7 +134,7 @@ const CardContentWithVirtualMachines = (props: VirtualMachineProps) =>
                         {virtualMachineSendRequest(props)}
                     </div>
                     <div className={props.classes.icon}>
-                        <a href="https://doc.arvados.org/user/getting_started/vm-login-with-webshell.html" target="_blank" className={props.classes.linkIcon}>
+                        <a href="https://doc.arvados.org/user/getting_started/vm-login-with-webshell.html" target="_blank" rel="noopener noreferrer" className={props.classes.linkIcon}>
                             <Tooltip title="Access VM using webshell">
                                 <HelpIcon />
                             </Tooltip>
@@ -181,7 +181,7 @@ const virtualMachinesTable = (props: VirtualMachineProps) =>
                                 {command}
                             </TableCell>
                             {props.webShell !== "" && <TableCell>
-                                <a href={`${props.webShell}${it.href}/webshell/${username}`} target="_blank" className={props.classes.link}>
+                                <a href={`${props.webShell}${it.href}/webshell/${username}`} target="_blank" rel="noopener noreferrer" className={props.classes.link}>
                                     Log in as {username}
                                 </a>
                             </TableCell>}

commit 2e273c7f58e6fe02ae933e8af68683e093d62806
Author: Lucas Di Pentima <lucas.dipentima at curii.com>
Date:   Tue Jul 6 12:18:51 2021 -0300

    17782: Fixes some of the 'no-unused-vars' compile warnings.
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima at curii.com>

diff --git a/src/common/custom-theme.ts b/src/common/custom-theme.ts
index d93b37b7..74dee7f6 100644
--- a/src/common/custom-theme.ts
+++ b/src/common/custom-theme.ts
@@ -4,7 +4,6 @@
 
 import { createMuiTheme } from '@material-ui/core/styles';
 import { ThemeOptions, Theme } from '@material-ui/core/styles/createMuiTheme';
-import purple from '@material-ui/core/colors/purple';
 import blue from '@material-ui/core/colors/blue';
 import grey from '@material-ui/core/colors/grey';
 import green from '@material-ui/core/colors/green';
@@ -31,12 +30,9 @@ interface Colors {
 }
 
 const arvadosPurple = '#361336';
-const purple800 = purple["800"];
-const grey500 = grey["500"];
 const grey600 = grey["600"];
 const grey700 = grey["700"];
 const grey900 = grey["900"];
-const rocheBlue = '#06C';
 
 export const themeOptions: ArvadosThemeOptions = {
     typography: {
diff --git a/src/components/tree/tree.tsx b/src/components/tree/tree.tsx
index 1b77b5d9..3ae884b6 100644
--- a/src/components/tree/tree.tsx
+++ b/src/components/tree/tree.tsx
@@ -202,7 +202,7 @@ const ItemIcon = React.memo(({ type, kind, active, groupClass, classes }: any) =
 const FlatTree = (props: FlatTreeProps) =>
     <div
         onContextMenu={(event) => {
-            const [action, id] = getActionAndId(event, FLAT_TREE_ACTIONS.contextMenu);
+            const id = getActionAndId(event, FLAT_TREE_ACTIONS.contextMenu)[1];
             props.onContextMenu(event, { id } as any);
         }}
         onClick={(event) => {
diff --git a/src/views/not-found-panel/not-found-panel.tsx b/src/views/not-found-panel/not-found-panel.tsx
index 18df092c..148c331e 100644
--- a/src/views/not-found-panel/not-found-panel.tsx
+++ b/src/views/not-found-panel/not-found-panel.tsx
@@ -4,7 +4,7 @@
 
 import { RootState } from 'store/store';
 import { connect } from 'react-redux';
-import { NotFoundPanelRoot, NotFoundPanelRootDataProps, NotFoundPanelOwnProps } from 'views/not-found-panel/not-found-panel-root';
+import { NotFoundPanelRoot, NotFoundPanelRootDataProps } from 'views/not-found-panel/not-found-panel-root';
 
 const mapStateToProps = (state: RootState): NotFoundPanelRootDataProps => {
     return {

commit 0ea102c171d9c9e3fae5a0fd1e8e1e5e4a25c4d6
Author: Lucas Di Pentima <lucas.dipentima at curii.com>
Date:   Tue Jul 6 12:06:52 2021 -0300

    17782: Fixes 'array-callback-return' compile warnings.
    
    Reference: https://eslint.org/docs/rules/array-callback-return
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima at curii.com>

diff --git a/src/common/config.ts b/src/common/config.ts
index 55e99e01..f3d06840 100644
--- a/src/common/config.ts
+++ b/src/common/config.ts
@@ -142,7 +142,7 @@ const getApiRevision = async (apiUrl: string) => {
 
 const removeTrailingSlashes = (config: ClusterConfigJSON): ClusterConfigJSON => {
     const svcs: any = {};
-    Object.keys(config.Services).map((s) => {
+    Object.keys(config.Services).forEach((s) => {
         svcs[s] = config.Services[s];
         if (svcs[s].hasOwnProperty('ExternalURL')) {
             svcs[s].ExternalURL = svcs[s].ExternalURL.replace(/\/+$/, '');
diff --git a/src/services/common-service/common-service.ts b/src/services/common-service/common-service.ts
index c19c1978..82777342 100644
--- a/src/services/common-service/common-service.ts
+++ b/src/services/common-service/common-service.ts
@@ -141,7 +141,7 @@ export class CommonService<T> {
             // Using the POST special case to avoid URI length 414 errors.
             const formData = new FormData();
             formData.append("_method", "GET");
-            Object.keys(params).map(key => {
+            Object.keys(params).forEach(key => {
                 if (params[key] !== undefined) {
                     formData.append(key, params[key]);
                 }
diff --git a/src/store/collections-content-address-panel/collections-content-address-middleware-service.ts b/src/store/collections-content-address-panel/collections-content-address-middleware-service.ts
index 9a4df10b..983b309a 100644
--- a/src/store/collections-content-address-panel/collections-content-address-middleware-service.ts
+++ b/src/store/collections-content-address-panel/collections-content-address-middleware-service.ts
@@ -89,7 +89,7 @@ export class CollectionsWithSameContentAddressMiddlewareService extends DataExpl
                         .getFilters(),
                     count: "none"
                 });
-                responseUsers.items.map(it => {
+                responseUsers.items.forEach(it => {
                     api.dispatch<any>(ownerNameActions.SET_OWNER_NAME({
                         name: it.uuid === userUuid
                             ? 'User: Me'
@@ -97,7 +97,7 @@ export class CollectionsWithSameContentAddressMiddlewareService extends DataExpl
                         uuid: it.uuid
                     }));
                 });
-                responseGroups.items.map(it => {
+                responseGroups.items.forEach(it => {
                     api.dispatch<any>(ownerNameActions.SET_OWNER_NAME({ name: `Project: ${it.name}`, uuid: it.uuid }));
                 });
                 api.dispatch<any>(setBreadcrumbs([{ label: 'Projects', uuid: userUuid }]));
diff --git a/src/store/collections/collection-partial-copy-actions.ts b/src/store/collections/collection-partial-copy-actions.ts
index 849716eb..49900f2c 100644
--- a/src/store/collections/collection-partial-copy-actions.ts
+++ b/src/store/collections/collection-partial-copy-actions.ts
@@ -130,7 +130,7 @@ export const copyCollectionPartialToSelectedCollection = ({ collectionUuid }: Co
                     if (fileExistsInSelectedCollection) {
                         return path;
                     } else {
-                        return;
+                        return null;
                     }
                 });
                 const diffPathToRemove = difference(paths, pathsToRemove);
diff --git a/src/store/favorite-panel/favorite-panel-middleware-service.ts b/src/store/favorite-panel/favorite-panel-middleware-service.ts
index cb45e68e..f88f7b91 100644
--- a/src/store/favorite-panel/favorite-panel-middleware-service.ts
+++ b/src/store/favorite-panel/favorite-panel-middleware-service.ts
@@ -88,11 +88,11 @@ export class FavoritePanelMiddlewareService extends DataExplorerMiddlewareServic
                         .getFilters()
                 });
                 const response = groupItems;
-                collectionItems.items.map((it: any) => {
+                collectionItems.items.forEach((it: any) => {
                     response.itemsAvailable++;
                     response.items.push(it);
                 });
-                processItems.items.map((it: any) => {
+                processItems.items.forEach((it: any) => {
                     response.itemsAvailable++;
                     response.items.push(it);
                 });
diff --git a/src/store/public-favorites-panel/public-favorites-middleware-service.ts b/src/store/public-favorites-panel/public-favorites-middleware-service.ts
index 04395ca2..dd21a380 100644
--- a/src/store/public-favorites-panel/public-favorites-middleware-service.ts
+++ b/src/store/public-favorites-panel/public-favorites-middleware-service.ts
@@ -87,11 +87,11 @@ export class PublicFavoritesMiddlewareService extends DataExplorerMiddlewareServ
                         .getFilters()
                 });
                 const response = groupItems;
-                collectionItems.items.map((it: any) => {
+                collectionItems.items.forEach((it: any) => {
                     response.itemsAvailable++;
                     response.items.push(it);
                 });
-                processItems.items.map((it: any) => {
+                processItems.items.forEach((it: any) => {
                     response.itemsAvailable++;
                     response.items.push(it);
                 });
diff --git a/src/store/search-results-panel/search-results-middleware-service.ts b/src/store/search-results-panel/search-results-middleware-service.ts
index 563db496..78ba6c38 100644
--- a/src/store/search-results-panel/search-results-middleware-service.ts
+++ b/src/store/search-results-panel/search-results-middleware-service.ts
@@ -54,7 +54,7 @@ export class SearchResultsMiddlewareService extends DataExplorerMiddlewareServic
             api.dispatch(setItems(initial));
         }
 
-        sessions.map(session => {
+        sessions.forEach(session => {
             const params = getParams(dataExplorer, searchValue, session.apiRevision);
             this.services.groupsService.contents('', params, session)
                 .then((response) => {
diff --git a/src/views-components/context-menu/actions/download-action.tsx b/src/views-components/context-menu/actions/download-action.tsx
index 22f0eb01..352f84bd 100644
--- a/src/views-components/context-menu/actions/download-action.tsx
+++ b/src/views-components/context-menu/actions/download-action.tsx
@@ -21,27 +21,26 @@ export const DownloadAction = (props: { href?: any, download?: any, onClick?: ()
                 return letter !== '/';
             });
 
-        filteredFileUrls
-            .map((href: string) => {
-                axios.get(href).then(response => response).then(({ data }: any) => {
-                    const splittedByDot = href.split('.');
-                    if (splittedByDot[splittedByDot.length - 1] !== 'json') {
-                        if (filteredFileUrls.length === id) {
-                            zip.file(download[id - 1], data);
-                            zip.generateAsync({ type: 'blob' }).then((content) => {
-                                FileSaver.saveAs(content, `download-${props.currentCollectionUuid}.zip`);
-                            });
-                        } else {
-                            zip.file(download[id - 1], data);
-                            zip.generateAsync({ type: 'blob' });
-                        }
+        filteredFileUrls.forEach((href: string) => {
+            axios.get(href).then(response => response).then(({ data }: any) => {
+                const splittedByDot = href.split('.');
+                if (splittedByDot[splittedByDot.length - 1] !== 'json') {
+                    if (filteredFileUrls.length === id) {
+                        zip.file(download[id - 1], data);
+                        zip.generateAsync({ type: 'blob' }).then((content) => {
+                            FileSaver.saveAs(content, `download-${props.currentCollectionUuid}.zip`);
+                        });
                     } else {
-                        zip.file(download[id - 1], JSON.stringify(data));
+                        zip.file(download[id - 1], data);
                         zip.generateAsync({ type: 'blob' });
                     }
-                    id++;
-                });
+                } else {
+                    zip.file(download[id - 1], JSON.stringify(data));
+                    zip.generateAsync({ type: 'blob' });
+                }
+                id++;
             });
+        });
     };
 
     return props.href || props.kind === 'files'
diff --git a/src/views/virtual-machine-panel/virtual-machine-user-panel.tsx b/src/views/virtual-machine-panel/virtual-machine-user-panel.tsx
index b5f7d5f5..1900dda5 100644
--- a/src/views/virtual-machine-panel/virtual-machine-user-panel.tsx
+++ b/src/views/virtual-machine-panel/virtual-machine-user-panel.tsx
@@ -187,7 +187,7 @@ const virtualMachinesTable = (props: VirtualMachineProps) =>
                             </TableCell>}
                         </TableRow>;
                     }
-                    return;
+                    return null;
                 }
                 ))}
         </TableBody>
diff --git a/src/views/workbench/fed-login.tsx b/src/views/workbench/fed-login.tsx
index 27b52116..14229519 100644
--- a/src/views/workbench/fed-login.tsx
+++ b/src/views/workbench/fed-login.tsx
@@ -34,11 +34,11 @@ export const FedLogin = connect(mapStateToProps)(
                 {Object.keys(remoteHostsConfig)
                     .map((k) => {
                         if (k === localCluster) {
-                            return;
+                            return null;
                         }
                         if (!remoteHostsConfig[k].workbench2Url) {
                             console.log(`Cluster ${k} does not define workbench2Url.  Federated login / cross-site linking to ${k} is unavailable.  Tell the admin of ${k} to set Services->Workbench2->ExternalURL in config.yml.`);
-                            return;
+                            return null;
                         }
                         const fedtoken = (remoteHostsConfig[k].loginCluster === localCluster)
                             ? apiToken : getSaltedToken(k, apiToken);

commit 05453f4991ee3e22c3ff0e3bca5450904aa883b8
Author: Lucas Di Pentima <lucas.dipentima at curii.com>
Date:   Tue Jul 6 11:41:59 2021 -0300

    17782: Updates module dependencies.
    
    Removes a couple of now unnecessary resolutions, adds another to address
    a security warning.
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima at curii.com>

diff --git a/package.json b/package.json
index 37392cf8..67c210ae 100644
--- a/package.json
+++ b/package.json
@@ -107,7 +107,7 @@
     "enzyme-adapter-react-16": "1.15.6",
     "jest-localstorage-mock": "2.2.0",
     "node-sass": "^4.9.4",
-    "node-sass-chokidar": "^1.3.4",
+    "node-sass-chokidar": "1.5.0",
     "redux-devtools": "3.4.1",
     "redux-mock-store": "1.5.4",
     "ts-mock-imports": "1.3.7",
@@ -116,9 +116,8 @@
     "yamljs": "0.3.0"
   },
   "resolutions": {
-    "fbjs/ua-parser-js": "0.7.24",
     "**/meow/trim-newlines": "^3.0.1",
-    "react-rte/**/ua-parser-js": "0.7.24",
+    "react-scripts/**/css-what": "5.0.1",
     "**/@typescript-eslint/eslint-plugin": "^4.1.1",
     "**/@typescript-eslint/parser": "^4.1.1"
   },
diff --git a/yarn.lock b/yarn.lock
index 140e34ab..9159597d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4353,12 +4353,7 @@ css-vendor@^0.3.8:
   dependencies:
     is-in-browser "^1.0.2"
 
-css-what@^3.2.1:
-  version "3.4.2"
-  resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4"
-  integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==
-
-css-what@^5.0.0, css-what@^5.0.1:
+css-what at 5.0.1, css-what@^3.2.1, css-what@^5.0.0, css-what@^5.0.1:
   version "5.0.1"
   resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad"
   integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==
@@ -9165,7 +9160,7 @@ node-releases@^1.1.52, node-releases@^1.1.71:
   resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20"
   integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==
 
-node-sass-chokidar@^1.3.4:
+node-sass-chokidar at 1.5.0:
   version "1.5.0"
   resolved "https://registry.yarnpkg.com/node-sass-chokidar/-/node-sass-chokidar-1.5.0.tgz#d550889c4b1d63b5feba262e7b72b83922ce10a8"
   integrity sha512-Ss7PbeKd1OmJGzWVObBjoYeqgVIi0S0w7b9Ryx+cC2+c2UwU2VL4ODxLJoXC8LBzMJNmKHlCHQ1gRRNXQRTLjQ==
@@ -13165,7 +13160,7 @@ typescript at 4.3.4:
   resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.4.tgz#3f85b986945bcf31071decdd96cf8bfa65f9dcbc"
   integrity sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew==
 
-ua-parser-js at 0.7.24, ua-parser-js@^0.7.18:
+ua-parser-js@^0.7.18:
   version "0.7.24"
   resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.24.tgz#8d3ecea46ed4f1f1d63ec25f17d8568105dc027c"
   integrity sha512-yo+miGzQx5gakzVK3QFfN0/L9uVhosXBBO7qmnk7c2iw1IhL212wfA3zbnI54B0obGwC/5NWub/iT9sReMx+Fw==

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list