From: Lucas Di Pentima Date: Thu, 5 Nov 2020 22:51:28 +0000 (-0300) Subject: Merge branch '17018-readonly-file-actions-fix' X-Git-Tag: 2.1.1~6 X-Git-Url: https://git.arvados.org/arvados-workbench2.git/commitdiff_plain/9ee35a64c605f116aec71f78c65b54730d6e1076?hp=7776b799eed223b9318443c1e319e01957a8fb45 Merge branch '17018-readonly-file-actions-fix' Closes #17018 Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima --- diff --git a/cypress/integration/collection-panel.spec.js b/cypress/integration/collection-panel.spec.js index 414d7e3e..404d1c5b 100644 --- a/cypress/integration/collection-panel.spec.js +++ b/cypress/integration/collection-panel.spec.js @@ -64,8 +64,8 @@ describe('Collection panel tests', function() { .click() cy.get('[data-cy=context-menu]') .should('contain', 'Add to favorites') - .and(`${isWritable ? '' : 'not.'}contain`, 'Edit collection') - .type('{esc}'); // Collapse the options menu + .and(`${isWritable ? '' : 'not.'}contain`, 'Edit collection'); + cy.get('body').click(); // Collapse the menu avoiding details panel expansion cy.get('[data-cy=collection-properties-panel]') .should('contain', 'someKey') .and('contain', 'someValue') @@ -95,6 +95,15 @@ describe('Collection panel tests', function() { cy.get('[data-cy=upload-button]') .should(`${isWritable ? '' : 'not.'}contain`, 'Upload data'); }); + cy.get('[data-cy=collection-files-panel]') + .contains('bar').rightclick(); + cy.get('[data-cy=context-menu]') + .should('contain', 'Download') + .and('contain', 'Open in new tab') + .and('contain', 'Copy to clipboard') + .and(`${isWritable ? '' : 'not.'}contain`, 'Rename') + .and(`${isWritable ? '' : 'not.'}contain`, 'Remove'); + cy.get('body').click(); // Collapse the menu // Hamburger 'more options' menu button cy.get('[data-cy=collection-files-panel-options-btn]') .click() @@ -106,14 +115,14 @@ describe('Collection panel tests', function() { cy.get('[data-cy=context-menu]') // .should('contain', 'Download selected') .should(`${isWritable ? '' : 'not.'}contain`, 'Remove selected') - .type('{esc}'); // Collapse the options menu + cy.get('body').click(); // Collapse the menu // File item 'more options' button cy.get('[data-cy=file-item-options-btn') .click() cy.get('[data-cy=context-menu]') .should('contain', 'Download') - .and(`${isWritable ? '' : 'not.'}contain`, 'Remove') - .type('{esc}'); // Collapse + .and(`${isWritable ? '' : 'not.'}contain`, 'Remove'); + cy.get('body').click(); // Collapse the menu }) }) }) diff --git a/src/views-components/context-menu/actions/collection-copy-to-clipboard-action.tsx b/src/views-components/context-menu/actions/collection-copy-to-clipboard-action.tsx index f6038b80..4fc11fb2 100644 --- a/src/views-components/context-menu/actions/collection-copy-to-clipboard-action.tsx +++ b/src/views-components/context-menu/actions/collection-copy-to-clipboard-action.tsx @@ -12,7 +12,9 @@ const mapStateToProps = (state: RootState) => { const { resource } = state.contextMenu; const currentCollectionUuid = state.collectionPanel.item ? state.collectionPanel.item.uuid : ''; const { keepWebServiceUrl } = state.auth.config; - if (resource && resource.menuKind === ContextMenuKind.COLLECTION_FILES_ITEM) { + if (resource && ( + resource.menuKind === ContextMenuKind.COLLECTION_FILES_ITEM || + resource.menuKind === ContextMenuKind.READONLY_COLLECTION_FILES_ITEM)) { const file = getNodeValue(resource.uuid)(state.collectionPanelFiles); if (file) { return { @@ -21,10 +23,8 @@ const mapStateToProps = (state: RootState) => { currentCollectionUuid }; } - } else { - return ; } - return ; + return {}; }; export const CollectionCopyToClipboardAction = connect(mapStateToProps)(CopyToClipboardAction); diff --git a/src/views-components/context-menu/actions/collection-file-viewer-action.tsx b/src/views-components/context-menu/actions/collection-file-viewer-action.tsx index f75da238..dfc9d14a 100644 --- a/src/views-components/context-menu/actions/collection-file-viewer-action.tsx +++ b/src/views-components/context-menu/actions/collection-file-viewer-action.tsx @@ -11,7 +11,9 @@ import { ContextMenuKind } from '~/views-components/context-menu/context-menu'; const mapStateToProps = (state: RootState) => { const { resource } = state.contextMenu; const currentCollectionUuid = state.collectionPanel.item ? state.collectionPanel.item.uuid : ''; - if (resource && resource.menuKind === ContextMenuKind.COLLECTION_FILES_ITEM) { + if (resource && ( + resource.menuKind === ContextMenuKind.COLLECTION_FILES_ITEM || + resource.menuKind === ContextMenuKind.READONLY_COLLECTION_FILES_ITEM)) { const file = getNodeValue(resource.uuid)(state.collectionPanelFiles); if (file) { return { @@ -20,10 +22,8 @@ const mapStateToProps = (state: RootState) => { currentCollectionUuid }; } - } else { - return; } - return; + return {}; }; export const CollectionFileViewerAction = connect(mapStateToProps)(FileViewerAction); diff --git a/src/views-components/context-menu/actions/copy-to-clipboard-action.tsx b/src/views-components/context-menu/actions/copy-to-clipboard-action.tsx index 31ef4b97..fffcc19b 100644 --- a/src/views-components/context-menu/actions/copy-to-clipboard-action.tsx +++ b/src/views-components/context-menu/actions/copy-to-clipboard-action.tsx @@ -27,7 +27,7 @@ export const CopyToClipboardAction = (props: { href?: any, download?: any, onCli Copy to clipboard - + : null; }; \ No newline at end of file diff --git a/src/views-components/context-menu/actions/download-collection-file-action.tsx b/src/views-components/context-menu/actions/download-collection-file-action.tsx index 3e4e4a0b..e1986d3c 100644 --- a/src/views-components/context-menu/actions/download-collection-file-action.tsx +++ b/src/views-components/context-menu/actions/download-collection-file-action.tsx @@ -13,7 +13,9 @@ import { sanitizeToken } from "./helpers"; const mapStateToProps = (state: RootState) => { const { resource } = state.contextMenu; const currentCollectionUuid = state.collectionPanel.item ? state.collectionPanel.item.uuid : ''; - if (resource && resource.menuKind === ContextMenuKind.COLLECTION_FILES_ITEM) { + if (resource && ( + resource.menuKind === ContextMenuKind.COLLECTION_FILES_ITEM || + resource.menuKind === ContextMenuKind.READONLY_COLLECTION_FILES_ITEM)) { const file = getNodeValue(resource.uuid)(state.collectionPanelFiles); if (file) { return {