1
0
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:
Michael An
2025-03-07 16:48:36 +08:00
committed by GitHub
parent 98e01baa8e
commit 56901e2ac1
4 changed files with 36 additions and 14 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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'>

View File

@@ -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 = {