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 f83107247f..319534b627 100644 --- a/frontend/src/components/dirent-list-view/dirent-list-item.js +++ b/frontend/src/components/dirent-list-view/dirent-list-item.js @@ -2,6 +2,7 @@ import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; import MD5 from 'MD5'; import { UncontrolledTooltip } from 'reactstrap'; +import { Dropdown, DropdownToggle, DropdownItem } from 'reactstrap'; import { gettext, siteRoot, mediaUrl, username } from '../../utils/constants'; import { Utils } from '../../utils/utils'; import { seafileAPI } from '../../utils/seafile-api'; @@ -70,6 +71,7 @@ class DirentListItem extends React.Component { isDropTipshow: false, isEditFileTagShow: false, isPermissionDialogOpen: false, + isOpMenuOpen: false // for mobile }; } @@ -86,6 +88,12 @@ class DirentListItem extends React.Component { } } + toggleOpMenu = () => { + this.setState({ + isOpMenuOpen: !this.state.isOpMenuOpen + }); + } + //UI Interactive onMouseEnter = () => { if (!this.props.isItemFreezed) { @@ -186,6 +194,11 @@ class DirentListItem extends React.Component { this.setState({isShareDialogShow: !this.state.isShareDialogShow}); } + onMobileMenuItemClick = (e) => { + const operation = e.target.getAttribute('data-op'); + this.onMenuItemClick(operation, e); + } + onMenuItemClick = (operation, event) => { switch(operation) { case 'Download': @@ -586,70 +599,121 @@ class DirentListItem extends React.Component { trClass += (activeDirent && activeDirent.name === dirent.name) ? 'tr-active' : ''; trClass += dirent.isSelected? 'tr-active' : ''; - let lockedInfo = gettext('locked by {name}'); - lockedInfo = lockedInfo.replace('{name}', dirent.lock_owner_name); + let lockedInfo = gettext('locked by {name}').replace('{name}', dirent.lock_owner_name); + + const isDesktop = Utils.isDesktop(); + const desktopItem = ( +
@@ -678,6 +681,15 @@ class DirentListView extends React.Component { | {gettext('Last Update')} {sortByTime && sortIcon} | |
---|---|---|
+ | + | + |