From 17dba3e3c7c7575b7dc41b2166fb15f44c282779 Mon Sep 17 00:00:00 2001 From: zxj96 <519213124@qq.com> Date: Thu, 25 Apr 2019 15:09:28 +0800 Subject: [PATCH] When canGenerateShareLink is equal to false delete share --- .../dirent-grid-view/dirent-grid-view.js | 6 +++++- .../dirent-list-view/dirent-list-item.js | 20 ++++++++++++++++--- .../dirent-list-view/dirent-list-view.js | 6 +++++- .../toolbar/markdown-viewer-toolbar.js | 6 ++++-- .../toolbar/mutilple-dir-operation-toolbar.js | 10 +++++++--- .../components/toolbar/view-file-toolbar.js | 7 ++++--- 6 files changed, 42 insertions(+), 13 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 a56e1b49c3..7d0ac33394 100644 --- a/frontend/src/components/dirent-grid-view/dirent-grid-view.js +++ b/frontend/src/components/dirent-grid-view/dirent-grid-view.js @@ -1,6 +1,6 @@ import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; -import { siteRoot, thumbnailSizeForOriginal, username, isPro, enableFileComment, fileAuditEnabled, folderPermEnabled } from '../../utils/constants'; +import { siteRoot, thumbnailSizeForOriginal, username, isPro, enableFileComment, fileAuditEnabled, folderPermEnabled, canGenerateShareLink } from '../../utils/constants'; import { Utils } from '../../utils/utils'; import { seafileAPI } from '../../utils/seafile-api'; import URLDecorator from '../../utils/url-decorator'; @@ -412,6 +412,10 @@ class DirentGridView extends React.Component{ if (isContextmenu) { let { SHARE, DOWNLOAD, DELETE } = TextTranslation; contextmenuList = this.props.showShareBtn ? [SHARE, DOWNLOAD, DELETE, 'Divider'] : [DOWNLOAD, DELETE, 'Divider']; + + if (dirent.type === 'file') { + contextmenuList = canGenerateShareLink ? [SHARE, DOWNLOAD, DELETE, 'Divider'] : [DOWNLOAD, DELETE, 'Divider'] + } } let { RENAME, MOVE, COPY, PERMISSION, DETAILS, 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 9fe750caef..07c3eebf54 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 } from '../../utils/constants'; +import { gettext, siteRoot, mediaUrl, username, canGenerateShareLink } from '../../utils/constants'; import { Utils } from '../../utils/utils'; import { seafileAPI } from '../../utils/seafile-api'; import URLDecorator from '../../utils/url-decorator'; @@ -412,6 +412,20 @@ class DirentListItem extends React.Component { if (currentRepoInfo.permission === 'cloud-edit' || currentRepoInfo.permission === 'preview') { return ''; } + + let isShowShareBtn = false; + + if (canGenerateShareLink) { + isShowShareBtn = true; + } else { + if (this.props.showShareBtn) { + if (dirent.type === 'dir') { + isShowShareBtn = true; + } else { + isShowShareBtn = false; + } + } + } return ( @@ -423,7 +437,7 @@ class DirentListItem extends React.Component {
  • - {this.props.showShareBtn && + {this.props.showShareBtn && isShowShareBtn &&
  • @@ -453,7 +467,7 @@ class DirentListItem extends React.Component {
  • - {this.props.showShareBtn && + {this.props.showShareBtn && isShowShareBtn &&
  • 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 5b28016eb6..3bffdc7925 100644 --- a/frontend/src/components/dirent-list-view/dirent-list-view.js +++ b/frontend/src/components/dirent-list-view/dirent-list-view.js @@ -1,6 +1,6 @@ import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; -import { siteRoot, gettext, thumbnailSizeForOriginal, username, isPro, enableFileComment, fileAuditEnabled, folderPermEnabled } from '../../utils/constants'; +import { siteRoot, gettext, thumbnailSizeForOriginal, username, isPro, enableFileComment, fileAuditEnabled, folderPermEnabled, canGenerateShareLink } from '../../utils/constants'; import { Utils } from '../../utils/utils'; import TextTranslation from '../../utils/text-translation'; import { seafileAPI } from '../../utils/seafile-api'; @@ -459,6 +459,10 @@ class DirentListView extends React.Component { if (isContextmenu) { let { SHARE, DOWNLOAD, DELETE } = TextTranslation; contextmenuList = this.props.showShareBtn ? [SHARE, DOWNLOAD, DELETE, 'Divider'] : [DOWNLOAD, DELETE, 'Divider']; + + if (dirent.type === 'file') { + contextmenuList = canGenerateShareLink ? [SHARE, DOWNLOAD, DELETE, 'Divider'] : [DOWNLOAD, DELETE, 'Divider'] + } } let { RENAME, MOVE, COPY, PERMISSION, OPEN_VIA_CLIENT, LOCK, UNLOCK, COMMENT, HISTORY, ACCESS_LOG, TAGS } = TextTranslation; diff --git a/frontend/src/components/toolbar/markdown-viewer-toolbar.js b/frontend/src/components/toolbar/markdown-viewer-toolbar.js index 2966c16c2e..379e306a3d 100644 --- a/frontend/src/components/toolbar/markdown-viewer-toolbar.js +++ b/frontend/src/components/toolbar/markdown-viewer-toolbar.js @@ -1,6 +1,6 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { gettext } from '../../utils/constants'; +import { gettext, canGenerateShareLink } from '../../utils/constants'; import { IconButton, ButtonGroup, CollabUsersButton } from '@seafile/seafile-editor/dist/components/topbarcomponent/editorToolBar'; import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem, Tooltip } from 'reactstrap'; import FileInfo from '@seafile/seafile-editor/dist/components/topbarcomponent/file-info'; @@ -141,8 +141,10 @@ class MarkdownViewerToolbar extends React.Component { /> } - + } { diff --git a/frontend/src/components/toolbar/mutilple-dir-operation-toolbar.js b/frontend/src/components/toolbar/mutilple-dir-operation-toolbar.js index b75373da27..29066e60ea 100644 --- a/frontend/src/components/toolbar/mutilple-dir-operation-toolbar.js +++ b/frontend/src/components/toolbar/mutilple-dir-operation-toolbar.js @@ -1,7 +1,7 @@ import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; import { Button, ButtonGroup } from 'reactstrap'; -import { gettext } from '../../utils/constants'; +import { gettext, canGenerateShareLink } from '../../utils/constants'; import { Utils, isPro } from '../../utils/utils'; import { seafileAPI } from '../../utils/seafile-api'; import URLDecorator from '../../utils/url-decorator'; @@ -92,13 +92,17 @@ class MutipleDirOperationToolbar extends React.Component { const { SHARE, TAGS, RELATED_FILES, HISTORY, OPEN_VIA_CLIENT, LOCK, UNLOCK } = TextTranslation; + let shareBtn = currentRepoInfo.encrypted ? [] : [SHARE]; + if (dirent.type === 'dir') { - menuList = [SHARE]; + menuList = [...shareBtn]; return menuList; } if (dirent.type === 'file') { - menuList = [SHARE, TAGS, RELATED_FILES, 'Divider', HISTORY, 'Divider', OPEN_VIA_CLIENT]; + shareBtn = canGenerateShareLink ? [SHARE] : []; + + menuList = [...shareBtn, TAGS, RELATED_FILES, 'Divider', HISTORY, 'Divider', OPEN_VIA_CLIENT]; if (!Utils.isMarkdownFile(dirent.name)) { menuList.splice(2, 1); } diff --git a/frontend/src/components/toolbar/view-file-toolbar.js b/frontend/src/components/toolbar/view-file-toolbar.js index f5834c5ba6..8ce9ccfbf1 100644 --- a/frontend/src/components/toolbar/view-file-toolbar.js +++ b/frontend/src/components/toolbar/view-file-toolbar.js @@ -2,7 +2,7 @@ import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; import { DropdownToggle, Dropdown, DropdownMenu, DropdownItem, Tooltip} from 'reactstrap'; import { Utils } from '../../utils/utils'; -import { gettext, siteRoot } from '../../utils/constants'; +import { gettext, siteRoot, canGenerateShareLink } from '../../utils/constants'; import { seafileAPI } from '../../utils/seafile-api'; import ModalPotal from '../modal-portal'; import ShareDialog from '../dialog/share-dialog'; @@ -88,7 +88,6 @@ class ViewFileToolbar extends React.Component { let { filePermission } = this.props; let name = Utils.getFileName(this.props.path); let dirent = { name: name }; - return (
    @@ -109,7 +108,9 @@ class ViewFileToolbar extends React.Component { {gettext('More')} - {gettext('Share')} + {canGenerateShareLink && + {gettext('Share')} + } {gettext('Tags')} {gettext('Related Files')}