From 5e0924b383a9e3baa83e2f967784814314e4b716 Mon Sep 17 00:00:00 2001 From: shanshuirenjia <978987373@qq.com> Date: Fri, 21 Jun 2019 10:44:41 +0800 Subject: [PATCH 1/2] repair set folder permission bug --- .../dirent-list-view/dirent-list-item.js | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/frontend/src/components/dirent-list-view/dirent-list-item.js b/frontend/src/components/dirent-list-view/dirent-list-item.js index f8c10ddaa4..418be7d4db 100644 --- a/frontend/src/components/dirent-list-view/dirent-list-item.js +++ b/frontend/src/components/dirent-list-view/dirent-list-item.js @@ -462,7 +462,7 @@ class DirentListItem extends React.Component { if (currentRepoInfo.permission === 'cloud-edit' || currentRepoInfo.permission === 'preview') { return ''; } - + return ( {selectedDirentList.length > 1 ? @@ -473,14 +473,16 @@ class DirentListItem extends React.Component {
  • - {showShareBtn && -
  • - -
  • - } -
  • - -
  • + {showShareBtn && ( +
  • + +
  • + )} + {dirent.permission === 'rw' && ( +
  • + +
  • + )}
  • - {showShareBtn && -
  • - -
  • - } -
  • - -
  • + {showShareBtn && ( +
  • + +
  • + )} + {dirent.permission === 'rw' && ( +
  • + +
  • + )}
  • Date: Fri, 21 Jun 2019 14:22:45 +0800 Subject: [PATCH 2/2] update menu generate algorithm --- .../dirent-grid-view/dirent-grid-view.js | 16 +++++++++++--- .../dirent-list-view/dirent-list-item.js | 18 +++++++++------- .../dirent-list-view/dirent-list-view.js | 21 ++++++++++++++----- 3 files changed, 40 insertions(+), 15 deletions(-) diff --git a/frontend/src/components/dirent-grid-view/dirent-grid-view.js b/frontend/src/components/dirent-grid-view/dirent-grid-view.js index a34b28fc29..f808cce064 100644 --- a/frontend/src/components/dirent-grid-view/dirent-grid-view.js +++ b/frontend/src/components/dirent-grid-view/dirent-grid-view.js @@ -392,6 +392,10 @@ class DirentGridView extends React.Component{ menuList: menuList, }; + if (menuList.length === 0) { + return; + } + showMenu(showMenuConfig); } @@ -408,11 +412,17 @@ class DirentGridView extends React.Component{ let contextmenuList = []; if (isContextmenu) { let { SHARE, DOWNLOAD, DELETE } = TextTranslation; - contextmenuList = this.props.showShareBtn ? [SHARE, DOWNLOAD, DELETE, 'Divider'] : [DOWNLOAD, DELETE, 'Divider']; + contextmenuList = this.props.showShareBtn ? [SHARE] : []; - if (dirent.type === 'file') { - contextmenuList = canGenerateShareLink ? [SHARE, DOWNLOAD, DELETE, 'Divider'] : [DOWNLOAD, DELETE, 'Divider']; + if (dirent.permission === 'rw' || dirent.permission === 'r') { + contextmenuList = [...contextmenuList, DOWNLOAD]; } + + if (dirent.permission === 'rw') { + contextmenuList = [...contextmenuList, DELETE]; + } + + contextmenuList = [...contextmenuList, 'Divider']; } let { RENAME, MOVE, COPY, PERMISSION, OPEN_VIA_CLIENT, LOCK, UNLOCK, COMMENT, HISTORY, ACCESS_LOG } = TextTranslation; diff --git a/frontend/src/components/dirent-list-view/dirent-list-item.js b/frontend/src/components/dirent-list-view/dirent-list-item.js index 418be7d4db..cec40a7f33 100644 --- a/frontend/src/components/dirent-list-view/dirent-list-item.js +++ b/frontend/src/components/dirent-list-view/dirent-list-item.js @@ -2,7 +2,7 @@ import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; import MD5 from 'MD5'; import { UncontrolledTooltip } from 'reactstrap'; -import { gettext, siteRoot, mediaUrl, username, canGenerateShareLink } from '../../utils/constants'; +import { gettext, siteRoot, mediaUrl, username } from '../../utils/constants'; import { Utils } from '../../utils/utils'; import { seafileAPI } from '../../utils/seafile-api'; import URLDecorator from '../../utils/url-decorator'; @@ -470,9 +470,11 @@ class DirentListItem extends React.Component { {this.state.isOperationShow && !dirent.isSelected &&
      -
    • - -
    • + {(dirent.permission === 'rw' || dirent.permission === 'r') && ( +
    • + +
    • + )} {showShareBtn && (
    • @@ -502,9 +504,11 @@ class DirentListItem extends React.Component { {this.state.isOperationShow &&
        -
      • - -
      • + {(dirent.permission === 'rw' || dirent.permission === 'r') && ( +
      • + +
      • + )} {showShareBtn && (
      • diff --git a/frontend/src/components/dirent-list-view/dirent-list-view.js b/frontend/src/components/dirent-list-view/dirent-list-view.js index 84d2107539..a71524cd6c 100644 --- a/frontend/src/components/dirent-list-view/dirent-list-view.js +++ b/frontend/src/components/dirent-list-view/dirent-list-view.js @@ -320,6 +320,10 @@ class DirentListView extends React.Component { menuList: menuList, }; + if (menuList.length === 0) { + return; + } + showMenu(showMenuConfig); } @@ -467,21 +471,28 @@ class DirentListView extends React.Component { let menuList = []; let contextmenuList = []; + if (isContextmenu) { let { SHARE, DOWNLOAD, DELETE } = TextTranslation; - contextmenuList = this.props.showShareBtn ? [SHARE, DOWNLOAD, DELETE, 'Divider'] : [DOWNLOAD, DELETE, 'Divider']; + contextmenuList = this.props.showShareBtn ? [SHARE] : []; - if (dirent.type === 'file') { - contextmenuList = canGenerateShareLink ? [SHARE, DOWNLOAD, DELETE, 'Divider'] : [DOWNLOAD, DELETE, 'Divider']; + if (dirent.permission === 'rw' || dirent.permission === 'r') { + contextmenuList = [...contextmenuList, DOWNLOAD]; } + + if (dirent.permission === 'rw') { + contextmenuList = [...contextmenuList, DELETE]; + } + + contextmenuList = [...contextmenuList, 'Divider']; } let { RENAME, MOVE, COPY, PERMISSION, OPEN_VIA_CLIENT, LOCK, UNLOCK, COMMENT, HISTORY, ACCESS_LOG, TAGS } = TextTranslation; if (type === 'dir' && permission === 'rw') { if (can_set_folder_perm) { - menuList = [...contextmenuList, RENAME, MOVE, COPY, 'Divider', PERMISSION, 'Divider', OPEN_VIA_CLIENT]; + menuList = [...menuList, RENAME, MOVE, COPY, 'Divider', PERMISSION, 'Divider', OPEN_VIA_CLIENT]; } else { - menuList = [...contextmenuList, RENAME, MOVE, COPY, 'Divider', OPEN_VIA_CLIENT]; + menuList = [...menuList, RENAME, MOVE, COPY, 'Divider', OPEN_VIA_CLIENT]; } return menuList; }