1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-15 23:00:57 +00:00

update menu generate algorithm

This commit is contained in:
shanshuirenjia
2019-06-21 14:22:45 +08:00
parent 5e0924b383
commit e4fbc8674f
3 changed files with 40 additions and 15 deletions

View File

@@ -392,6 +392,10 @@ class DirentGridView extends React.Component{
menuList: menuList, menuList: menuList,
}; };
if (menuList.length === 0) {
return;
}
showMenu(showMenuConfig); showMenu(showMenuConfig);
} }
@@ -408,11 +412,17 @@ class DirentGridView extends React.Component{
let contextmenuList = []; let contextmenuList = [];
if (isContextmenu) { if (isContextmenu) {
let { SHARE, DOWNLOAD, DELETE } = TextTranslation; 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') { if (dirent.permission === 'rw' || dirent.permission === 'r') {
contextmenuList = canGenerateShareLink ? [SHARE, DOWNLOAD, DELETE, 'Divider'] : [DOWNLOAD, DELETE, 'Divider']; 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; let { RENAME, MOVE, COPY, PERMISSION, OPEN_VIA_CLIENT, LOCK, UNLOCK, COMMENT, HISTORY, ACCESS_LOG } = TextTranslation;

View File

@@ -2,7 +2,7 @@ import React, { Fragment } from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import MD5 from 'MD5'; import MD5 from 'MD5';
import { UncontrolledTooltip } from 'reactstrap'; 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 { Utils } from '../../utils/utils';
import { seafileAPI } from '../../utils/seafile-api'; import { seafileAPI } from '../../utils/seafile-api';
import URLDecorator from '../../utils/url-decorator'; import URLDecorator from '../../utils/url-decorator';
@@ -470,9 +470,11 @@ class DirentListItem extends React.Component {
{this.state.isOperationShow && !dirent.isSelected && {this.state.isOperationShow && !dirent.isSelected &&
<div className="operations"> <div className="operations">
<ul className="operation-group"> <ul className="operation-group">
<li className="operation-group-item"> {(dirent.permission === 'rw' || dirent.permission === 'r') && (
<i className="op-icon sf2-icon-download" title={gettext('Download')} onClick={this.onItemDownload}></i> <li className="operation-group-item">
</li> <i className="op-icon sf2-icon-download" title={gettext('Download')} onClick={this.onItemDownload}></i>
</li>
)}
{showShareBtn && ( {showShareBtn && (
<li className="operation-group-item"> <li className="operation-group-item">
<i className="op-icon sf2-icon-share" title={gettext('Share')} onClick={this.onItemShare}></i> <i className="op-icon sf2-icon-share" title={gettext('Share')} onClick={this.onItemShare}></i>
@@ -502,9 +504,11 @@ class DirentListItem extends React.Component {
{this.state.isOperationShow && {this.state.isOperationShow &&
<div className="operations"> <div className="operations">
<ul className="operation-group"> <ul className="operation-group">
<li className="operation-group-item"> {(dirent.permission === 'rw' || dirent.permission === 'r') && (
<i className="op-icon sf2-icon-download" title={gettext('Download')} onClick={this.onItemDownload}></i> <li className="operation-group-item">
</li> <i className="op-icon sf2-icon-download" title={gettext('Download')} onClick={this.onItemDownload}></i>
</li>
)}
{showShareBtn && ( {showShareBtn && (
<li className="operation-group-item"> <li className="operation-group-item">
<i className="op-icon sf2-icon-share" title={gettext('Share')} onClick={this.onItemShare}></i> <i className="op-icon sf2-icon-share" title={gettext('Share')} onClick={this.onItemShare}></i>

View File

@@ -320,6 +320,10 @@ class DirentListView extends React.Component {
menuList: menuList, menuList: menuList,
}; };
if (menuList.length === 0) {
return;
}
showMenu(showMenuConfig); showMenu(showMenuConfig);
} }
@@ -467,21 +471,28 @@ class DirentListView extends React.Component {
let menuList = []; let menuList = [];
let contextmenuList = []; let contextmenuList = [];
if (isContextmenu) { if (isContextmenu) {
let { SHARE, DOWNLOAD, DELETE } = TextTranslation; 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') { if (dirent.permission === 'rw' || dirent.permission === 'r') {
contextmenuList = canGenerateShareLink ? [SHARE, DOWNLOAD, DELETE, 'Divider'] : [DOWNLOAD, DELETE, 'Divider']; 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; let { RENAME, MOVE, COPY, PERMISSION, OPEN_VIA_CLIENT, LOCK, UNLOCK, COMMENT, HISTORY, ACCESS_LOG, TAGS } = TextTranslation;
if (type === 'dir' && permission === 'rw') { if (type === 'dir' && permission === 'rw') {
if (can_set_folder_perm) { 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 { } else {
menuList = [...contextmenuList, RENAME, MOVE, COPY, 'Divider', OPEN_VIA_CLIENT]; menuList = [...menuList, RENAME, MOVE, COPY, 'Divider', OPEN_VIA_CLIENT];
} }
return menuList; return menuList;
} }