mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-26 23:34:45 +00:00
change readonly path UI (#7573)
This commit is contained in:
@@ -128,15 +128,19 @@ class DirPath extends React.Component {
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<span className="path-split">/</span>
|
<span className="path-split">/</span>
|
||||||
<span className="path-item">{gettext('Views')}</span>
|
<span className="path-item path-item-read-only">{gettext('Views')}</span>
|
||||||
<span className="path-split">/</span>
|
<span className="path-split">/</span>
|
||||||
<span className="path-item" role={children ? 'button' : null} onClick={children ? this.handleRefresh : () => {}}>
|
<span
|
||||||
|
className="path-item path-item-read-only"
|
||||||
|
role={children ? 'button' : null}
|
||||||
|
onClick={children ? this.handleRefresh : () => {}}
|
||||||
|
>
|
||||||
<MetadataViewName id={viewId} />
|
<MetadataViewName id={viewId} />
|
||||||
</span>
|
</span>
|
||||||
{children && (
|
{children && (
|
||||||
<>
|
<>
|
||||||
<span className="path-split">/</span>
|
<span className="path-split">/</span>
|
||||||
<span className="path-item">{children}</span>
|
<span className="path-item path-item-read-only">{children}</span>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
<div className="path-item-refresh" id="sf-metadata-view-refresh" onClick={this.handleRefresh}>
|
<div className="path-item-refresh" id="sf-metadata-view-refresh" onClick={this.handleRefresh}>
|
||||||
@@ -156,13 +160,13 @@ class DirPath extends React.Component {
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<span className="path-split">/</span>
|
<span className="path-split">/</span>
|
||||||
<span className="path-item">{gettext('Tags')}</span>
|
<span className="path-item path-item-read-only">{gettext('Tags')}</span>
|
||||||
<span className="path-split">/</span>
|
<span className="path-split">/</span>
|
||||||
<TagViewName id={tagId} canSelectAllTags={canSelectAllTags} />
|
<TagViewName id={tagId} canSelectAllTags={canSelectAllTags} />
|
||||||
{children && (
|
{children && (
|
||||||
<>
|
<>
|
||||||
<span className="path-split">/</span>
|
<span className="path-split">/</span>
|
||||||
<span className="path-item">{children}</span>
|
<span className="path-item path-item-read-only">{children}</span>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
@@ -172,8 +176,12 @@ class DirPath extends React.Component {
|
|||||||
turnPathToLink = (path) => {
|
turnPathToLink = (path) => {
|
||||||
path = path[path.length - 1] === '/' ? path.slice(0, path.length - 1) : path;
|
path = path[path.length - 1] === '/' ? path.slice(0, path.length - 1) : path;
|
||||||
const pathList = path.split('/');
|
const pathList = path.split('/');
|
||||||
if (pathList.includes(PRIVATE_FILE_TYPE.FILE_EXTENDED_PROPERTIES)) return this.turnViewPathToLink(pathList);
|
if (pathList.includes(PRIVATE_FILE_TYPE.FILE_EXTENDED_PROPERTIES)) {
|
||||||
if (pathList.includes(PRIVATE_FILE_TYPE.TAGS_PROPERTIES)) return this.turnTagPathToLink(pathList);
|
return this.turnViewPathToLink(pathList);
|
||||||
|
}
|
||||||
|
if (pathList.includes(PRIVATE_FILE_TYPE.TAGS_PROPERTIES)) {
|
||||||
|
return this.turnTagPathToLink(pathList);
|
||||||
|
}
|
||||||
let nodePath = '';
|
let nodePath = '';
|
||||||
let pathElem = pathList.map((item, index) => {
|
let pathElem = pathList.map((item, index) => {
|
||||||
if (item === '') return null;
|
if (item === '') return null;
|
||||||
|
@@ -299,6 +299,10 @@
|
|||||||
background: #efefef;
|
background: #efefef;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dir-view-path .path-item.path-item-read-only:hover {
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
.dir-view-path .path-item-refresh {
|
.dir-view-path .path-item-refresh {
|
||||||
height: 24px;
|
height: 24px;
|
||||||
width: 24px;
|
width: 24px;
|
||||||
|
@@ -8,7 +8,7 @@ import { useTags } from '../../../hooks';
|
|||||||
|
|
||||||
import './index.css';
|
import './index.css';
|
||||||
|
|
||||||
const AllTagsOperationToolbar = ({ children }) => {
|
const AllTagsOperationToolbar = () => {
|
||||||
const [isMenuOpen, setMenuOpen] = useState(false);
|
const [isMenuOpen, setMenuOpen] = useState(false);
|
||||||
const [isShowEditTagDialog, setShowEditTagDialog] = useState(false);
|
const [isShowEditTagDialog, setShowEditTagDialog] = useState(false);
|
||||||
|
|
||||||
@@ -44,6 +44,7 @@ const AllTagsOperationToolbar = ({ children }) => {
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="dir-operation">
|
<div className="dir-operation">
|
||||||
|
<span className="path-item path-item-read-only">{gettext('All tags')}</span>
|
||||||
<Dropdown isOpen={isMenuOpen} toggle={toggleMenuOpen}>
|
<Dropdown isOpen={isMenuOpen} toggle={toggleMenuOpen}>
|
||||||
<DropdownToggle
|
<DropdownToggle
|
||||||
tag="span"
|
tag="span"
|
||||||
@@ -53,8 +54,7 @@ const AllTagsOperationToolbar = ({ children }) => {
|
|||||||
onKeyDown={onDropdownKeyDown}
|
onKeyDown={onDropdownKeyDown}
|
||||||
data-toggle="dropdown"
|
data-toggle="dropdown"
|
||||||
>
|
>
|
||||||
{children}
|
<i className="sf3-font-new sf3-font path-item-new-toggle"></i>
|
||||||
<i className="ml-1 sf3-font-new sf3-font path-item-new-toggle"></i>
|
|
||||||
<i className="sf3-font-down sf3-font path-item-dropdown-toggle"></i>
|
<i className="sf3-font-down sf3-font path-item-dropdown-toggle"></i>
|
||||||
</DropdownToggle>
|
</DropdownToggle>
|
||||||
<DropdownMenu className='position-fixed'>
|
<DropdownMenu className='position-fixed'>
|
||||||
|
@@ -18,17 +18,27 @@ const TagViewName = ({ id, canSelectAllTags }) => {
|
|||||||
if (!id) return null;
|
if (!id) return null;
|
||||||
if (id === ALL_TAGS_ID) {
|
if (id === ALL_TAGS_ID) {
|
||||||
if (canSelectAllTags) {
|
if (canSelectAllTags) {
|
||||||
return (<span className="path-item" role="button" onClick={selectAllTags}>{gettext('All tags')}</span>);
|
return (
|
||||||
|
<span className="path-item" role="button" onClick={selectAllTags}>{gettext('All tags')}</span>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const canModify = context.canModify();
|
const canModify = context.canModify();
|
||||||
const canAddTag = context.canAddTag();
|
const canAddTag = context.canAddTag();
|
||||||
if (!canModify || !canAddTag) return (<span className="path-item">{gettext('All tags')}</span>);
|
if (!canModify || !canAddTag) {
|
||||||
return (<AllTagsOperationToolbar>{gettext('All tags')}</AllTagsOperationToolbar>);
|
return (
|
||||||
|
<span className="path-item path-item-read-only">{gettext('All tags')}</span>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return (
|
||||||
|
<AllTagsOperationToolbar/>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
const tag = getRowById(tagsData, id);
|
const tag = getRowById(tagsData, id);
|
||||||
if (!tag) return null;
|
if (!tag) return null;
|
||||||
return (<span className="path-item">{getTagName(tag)}</span>);
|
return (
|
||||||
|
<span className="path-item path-item-read-only">{getTagName(tag)}</span>
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
TagViewName.propTypes = {
|
TagViewName.propTypes = {
|
||||||
|
Reference in New Issue
Block a user