From 69011567a324db087a9a414c34a05ff1859109ea Mon Sep 17 00:00:00 2001 From: llj Date: Mon, 27 May 2024 16:47:19 +0800 Subject: [PATCH] [dir view] redesigned the toolbar for the current folder (#6117) * [dir view] redesigned the toolbar for the current folder * [dir view] toolbar for the current folder: code cleanup * [dir view] toolbar for the current folder: updated the 'upload' icon; modified UI details --- .../src/components/cur-dir-path/dir-path.js | 49 +++- frontend/src/components/cur-dir-path/index.js | 12 +- .../toolbar/dir-operation-toolbar.js | 219 +++++++++++------- frontend/src/css/lib-content-view.css | 22 ++ .../lib-content-view/lib-content-container.js | 9 + .../lib-content-view/lib-content-toolbar.js | 20 -- .../lib-content-view/lib-content-view.js | 3 + media/css/seahub_react.css | 19 +- media/css/sf_font3/iconfont.css | 16 +- media/css/sf_font3/iconfont.eot | Bin 18128 -> 18232 bytes media/css/sf_font3/iconfont.js | 2 +- media/css/sf_font3/iconfont.svg | 2 + media/css/sf_font3/iconfont.ttf | Bin 17960 -> 18064 bytes media/css/sf_font3/iconfont.woff | Bin 10920 -> 10972 bytes media/css/sf_font3/iconfont.woff2 | Bin 9296 -> 9344 bytes 15 files changed, 257 insertions(+), 116 deletions(-) diff --git a/frontend/src/components/cur-dir-path/dir-path.js b/frontend/src/components/cur-dir-path/dir-path.js index bcf1970b25..a2da6aee42 100644 --- a/frontend/src/components/cur-dir-path/dir-path.js +++ b/frontend/src/components/cur-dir-path/dir-path.js @@ -5,6 +5,7 @@ import { UncontrolledTooltip } from 'reactstrap'; import { siteRoot, gettext } from '../../utils/constants'; import { Utils } from '../../utils/utils'; import { InternalLinkOperation } from '../operations'; +import DirOperationToolBar from '../../components/toolbar/dir-operation-toolbar'; const propTypes = { repoName: PropTypes.string.isRequired, @@ -50,7 +51,23 @@ class DirPath extends React.Component { return ( / - {item} + + {item} + ); } else { @@ -58,7 +75,7 @@ class DirPath extends React.Component { return ( / - {item} + {item} ); } @@ -78,31 +95,47 @@ class DirPath extends React.Component { } return ( -
+
{this.props.pathPrefix && this.props.pathPrefix.map((item, index) => { return ( - this.onTabNavClick(e, item.name, item.id)}>{gettext(item.showName)} + this.onTabNavClick(e, item.name, item.id)}>{gettext(item.showName)} / ); })} {this.props.pathPrefix && this.props.pathPrefix.length === 0 && ( - this.onTabNavClick(e, 'libraries')}>{gettext('Files')} + this.onTabNavClick(e, 'libraries')}>{gettext('Files')} / )} {!this.props.pathPrefix && ( - this.onTabNavClick(e, 'libraries')}>{gettext('Files')} + this.onTabNavClick(e, 'libraries')}>{gettext('Files')} / )} {(currentPath === '/' || currentPath === '') ? - {repoName}: - {repoName} + + {repoName} + : + {repoName} } {pathElem} {this.props.isViewFile && ( diff --git a/frontend/src/components/cur-dir-path/index.js b/frontend/src/components/cur-dir-path/index.js index ecd9154eea..b5359238a6 100644 --- a/frontend/src/components/cur-dir-path/index.js +++ b/frontend/src/components/cur-dir-path/index.js @@ -47,15 +47,25 @@ class CurDirPath extends React.Component { return ( {isDesktop && { + this.setState({isDesktopMenuOpen: !this.state.isDesktopMenuOpen}); + }; toggleMobileOpMenu = () => { this.setState({isMobileOpMenuOpen: !this.state.isMobileOpMenuOpen}); }; - hideOperationMenu = () => { - this.setState({ - isUploadMenuShow: false, - isCreateMenuShow: false, - }); - }; - - toggleOperationMenu = (e) => { - e.nativeEvent.stopImmediatePropagation(); - let targetRect = e.target.getBoundingClientRect(); - let left = targetRect.left; - let top = targetRect.bottom; - let style = {position: 'fixed', display: 'block', left: left, top: top}; - this.setState({operationMenuStyle: style}); - }; - - onUploadClick = (e) => { - this.toggleOperationMenu(e); - this.setState({ - isUploadMenuShow: !this.state.isUploadMenuShow, - isCreateMenuShow: false, - }); - }; - onUploadFile = (e) => { - this.setState({isUploadMenuShow: false}); this.props.onUploadFile(e); }; onUploadFolder = (e) => { - this.setState({isUploadMenuShow: false}); this.props.onUploadFolder(e); }; - onCreateClick = (e) => { - this.toggleOperationMenu(e); - this.setState({ - isCreateMenuShow: !this.state.isCreateMenuShow, - isUploadMenuShow: false, - }); - }; - onShareClick = () => { this.setState({ isShareDialogShow: !this.state.isShareDialogShow @@ -161,6 +121,41 @@ class DirOperationToolbar extends React.Component { return isDuplicated; }; + onDropdownToggleKeyDown = (e) => { + if (e.key == 'Enter' || e.key == 'Space') { + this.toggleDesktopOpMenu(); + } + }; + + onDropDownMouseMove = (e) => { + if (this.state.isSubMenuShown && e.target && e.target.className === 'dropdown-item') { + this.setState({ + isSubMenuShown: false + }); + } + }; + + toggleSubMenu = (e) => { + e.stopPropagation(); + this.setState({ + isSubMenuShown: !this.state.isSubMenuShown}, () => { + this.toggleDesktopOpMenu(); + }); + }; + + toggleSubMenuShown = (item) => { + this.setState({ + isSubMenuShown: true, + currentItem: item.text + }); + }; + + onMenuItemKeyDown = (item, e) => { + if (e.key == 'Enter' || e.key == 'Space') { + item.onClick(); + } + }; + render() { let { path, repoName, userPerm } = this.props; @@ -179,42 +174,108 @@ class DirOperationToolbar extends React.Component { let content = null; if (Utils.isDesktop()) { const { showShareBtn, repoEncrypted } = this.props; + let opList = []; + if (canUpload) { + if (Utils.isSupportUploadFolder()) { + opList.push({ + 'icon': 'upload-files', + 'text': gettext('Upload'), + subOpList: [ + {'text': gettext('Upload Files'), 'onClick': this.onUploadFile}, + {'text': gettext('Upload Folder'), 'onClick': this.onUploadFolder} + ] + }); + } else { + opList.push({'text': gettext('Upload'), 'onClick': this.onUploadFile}); + } + } + + if (canCreate) { + let newSubOpList = [ + {'text': gettext('New Folder'), 'onClick': this.onCreateFolderToggle}, + {'text': gettext('New File'), 'onClick': this.onCreateFileToggle}, + 'Divider', + {'text': gettext('New Markdown File'), 'onClick': this.onCreateMarkdownToggle}, + {'text': gettext('New Excel File'), 'onClick': this.onCreateExcelToggle}, + {'text': gettext('New PowerPoint File'), 'onClick': this.onCreatePPTToggle}, + {'text': gettext('New Word File'), 'onClick': this.onCreateWordToggle} + ]; + if (enableSeadoc && !repoEncrypted) { + newSubOpList.push({'text': gettext('New SeaDoc File'), 'onClick': this.onCreateSeaDocToggle}); + } + opList.push({ + 'icon': 'new', + 'text': gettext('New'), + subOpList: newSubOpList + }); + } + + if (showShareBtn) { + opList.push({ + 'icon': 'share', + 'text': gettext('Share'), + 'onClick': this.onShareClick + }); + } + content = ( - {canUpload && ( - - {Utils.isSupportUploadFolder() ? - - - {this.state.isUploadMenuShow && ( - - )} - - : - } - - )} - {canCreate && - - - {this.state.isCreateMenuShow && ( - - )} - - } - {showShareBtn && } + + + {this.props.children} + + + + {opList.map((item, index)=> { + if (item == 'Divider') { + return ; + } else if (item.subOpList) { + return ( + {e.stopPropagation();}} + > + + + {item.text} + + + {item.subOpList.map((item, index)=> { + if (item == 'Divider') { + return ; + } else { + return ({item.text}); + } + })} + + + ); + } else { + return ( + + {item.text} + ); + } + })} + + ); } else { diff --git a/frontend/src/css/lib-content-view.css b/frontend/src/css/lib-content-view.css index 366d3ab7e3..e7bc8965bf 100644 --- a/frontend/src/css/lib-content-view.css +++ b/frontend/src/css/lib-content-view.css @@ -237,3 +237,25 @@ .op-btn:hover { background: #f5f5f5; } + +.dir-view-path .path-item { + min-width: 0; /* overwrite some styles */ + padding: 0 6px; + font-size: 1rem; + color: inherit; + border-radius: 3px; + text-decoration: none; +} + +.dir-view-path .path-item:hover { + background: #efefef; +} + +.dir-view-path .path-item-dropdown-toggle { + color: #999; + font-size: .6rem; +} + +.dir-view-path .path-split { + padding: 0 2px; +} diff --git a/frontend/src/pages/lib-content-view/lib-content-container.js b/frontend/src/pages/lib-content-view/lib-content-container.js index a1f4dabc6c..4a497ddb2d 100644 --- a/frontend/src/pages/lib-content-view/lib-content-container.js +++ b/frontend/src/pages/lib-content-view/lib-content-container.js @@ -209,6 +209,8 @@ class LibContentContainer extends React.Component { }
diff --git a/frontend/src/pages/lib-content-view/lib-content-toolbar.js b/frontend/src/pages/lib-content-view/lib-content-toolbar.js index 8316a95a2b..b217f3ca51 100644 --- a/frontend/src/pages/lib-content-view/lib-content-toolbar.js +++ b/frontend/src/pages/lib-content-view/lib-content-toolbar.js @@ -2,7 +2,6 @@ import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; import { gettext } from '../../utils/constants'; import CommonToolbar from '../../components/toolbar/common-toolbar'; -import DirOperationToolBar from '../../components/toolbar/dir-operation-toolbar'; import ViewFileToolbar from '../../components/toolbar/view-file-toolbar'; const propTypes = { @@ -86,25 +85,6 @@ class LibContentToolbar extends React.Component {
- {!this.props.isDirentSelected && - - }
{canUpload && this.state.pathExist && !this.state.isViewFile && ( .btn-secondary.dropdown-toggle.dropdown-item .dropdown-item-icon { + color: #fff; +} + +.dropdown-item:hover .dropdown-item-icon, +.dropdown-item:hover .btn .dropdown-item-icon, +.dropdown-item:focus .dropdown-item-icon, +.dropdown-item:focus .btn .dropdown-item-icon { + color: #fff; +} + /* empty-tip */ .empty-tip { margin: 5.5em 1em; diff --git a/media/css/sf_font3/iconfont.css b/media/css/sf_font3/iconfont.css index 0fdb372694..d60f4f60eb 100644 --- a/media/css/sf_font3/iconfont.css +++ b/media/css/sf_font3/iconfont.css @@ -1,11 +1,11 @@ @font-face { font-family: "sf3-font"; /* Project id 1230969 */ - src: url('iconfont.eot?t=1716614768424'); /* IE9 */ - src: url('iconfont.eot?t=1716614768424#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('iconfont.woff2?t=1716614768424') format('woff2'), - url('iconfont.woff?t=1716614768424') format('woff'), - url('iconfont.ttf?t=1716614768424') format('truetype'), - url('iconfont.svg?t=1716614768424#sf3-font') format('svg'); + src: url('iconfont.eot?t=1716779999367'); /* IE9 */ + src: url('iconfont.eot?t=1716779999367#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('iconfont.woff2?t=1716779999367') format('woff2'), + url('iconfont.woff?t=1716779999367') format('woff'), + url('iconfont.ttf?t=1716779999367') format('truetype'), + url('iconfont.svg?t=1716779999367#sf3-font') format('svg'); } .sf3-font { @@ -16,6 +16,10 @@ -moz-osx-font-smoothing: grayscale; } +.sf3-font-upload-files:before { + content: "\e821"; +} + .sf3-font-share:before { content: "\e820"; } diff --git a/media/css/sf_font3/iconfont.eot b/media/css/sf_font3/iconfont.eot index a366a0a897f23fb6f0a2601ca968c4508c413763..1ffbf7357e775a1023ee4cb95b32891bf9108dce 100644 GIT binary patch delta 1611 zcmX|>TWDNW6o&tO=03^XGSkeNX>HSFI!SM~iQ2Ta)x^ZsTP4(jqSa(HNh2gC*aQ*~ z$A{2Lz>qRU`%obd3Q~g#0SRa|RLF}y2=<})AY+tsHln7swQ6Y-|2+#moA2y>E_FqTD|=%(bH$z&K2);Zz};FFW|?C!HND0UtC!MLT7>2$$`E? zZ&UL8=K#uN&j4=(%AT({HurJ^L!;w%c-K z%I0<5D}|vx|JeJtfp%V7Cq{-(Mn)fhzIh(#c!QgWmwHvhmP1f{nVgQU^moS&{D~^F z8n8Su*Zp5#no}8dsI;W?`~@qa8Ye50pk9ZkGTOmD%x_G>tB!Kg4%ESm>e8}jYboO0 zWv#81+P&M0iVyCtv=&I)1Jm~Y-`dcIPCUT|_79^242)H=K77;$uI0e74L7wHf-m;Jhq?#xlU~2zBZ#C8?hc6a2K*jAp@J| zb*M!eL4+8GkCUqrK@>5>kw6WTWiieGb@IXQUpXEH97<^5w&7R;1Az0C zz);{kEifoJ&k76=&T|3-g>zhB$Z!e*gNO5~KpEf^$9N)C1kOhSwSn`oK$YNpB2X_l z3j&pc^O-;m;e01hO*oeY>Iyd|P+_>W0=0%)Clo0=+$#cwhFcbx3b;QCObXm(f$4$! zlfXp5{aIkj;L^b zCD09USq=vJ0`96%`S2RYgkFJWXP|4KnNkD&1I@G=kSlV){21sdXy(m;I`%$+K7;lP zbR0C@W1#n-g92R$9TMnAXx5N{&V*(_26_~lZZpuQ&=FGPiN=MF3bZgZb7rW#6z7=G z*3b!o28XT@Xmw~B&p^{dn}rGO4{hcUQ_$MXAuI`KGlv+Zi`smUm^#pABZL(LZFWmo zJJ2RN!YYC`(Gk`Yw26+evY?F`gf#|jlq9S+=sJOQ2W^xj=1-%IlJ(5LDMlVm7{>y> z#|@QIqw1=awH~uhSyw$d&oR$sZ1sW3#i9qA5wb-*cbNf~{ua;E0>)oE2 zuG!hy#ca;XXBVx-)$2#zx$~)YaO%kX?(oHZ{I~wzF%?&bQ9U*?I9%x6+5hrj-^uxj H&STcUa0p}5 delta 1537 zcmX|>TWnNS6o&sjGiPp{Tc^WZDC$s38IWp=wdJN(D1;azB${ZfK}Vs?Lko>95fhW~ z0TR=IvCfO(!58(7sG*6OczF;LLJT1!8p9JQmF%-0YEn^AD{1}Ltmy1~XYX_NK48?#opUTBoe*w%Q$&H_Qt=jCpybXxnZwUHitjjA ze9FR5wl_AJ{T@0XGZH&FQ<3^fwmAI z01I#QEdAFvE|`+p*SKul+{HlBY?^7k1aq39$m?6#$GOK0LgoeDKZG(uNHuJ5vne-H zp}vsoT3v1Qd%bnT$-Y(_fVSq`cZ&0Q1)H&j&o-hPT_f0l`|$wJw;uOlEjqCd zC3K*O0x4i?eG|Dm|BHD>i0~YXG;(SC*{iD0l-oWfv1KI zC_F#xvkD`DeO_TqurDf%4t7)#ci5K{Mhsh37(49i3RS4Xp5zUoAh4e*lm_-Qg(AUz zu23%6rb6Lhzfve6><i3$Gy{Crgg{%sUr|~cuX0Ri6*zVRO#{c23g}|bln8Yi368lEXel_BjX-n3c?!zx zX&HfrgNrD%9$ZwR3E^T2?Fh#p1R4{rO`%2M=r(~ig-ddOUO?Z%r4%|CjyV%ri!vM& zx*D!sp}*m1Hi1rulaCR49!}N~x*tx~5!L~mtRt)lIN5_B&ip&soUlybJb(jTv?I77$?#bDZtjRehBa3BCcZ5JZ-L+ zJAtmi;lP!^z2Mg1g-|8*ikJ1yd)LCnu#HSdzK^bp)}oi9cVmZREAcPeYKeGaEU}zC zkgB8y(^u0=nJt;g%^whrHvY{H{y9E1GGj1zd*r!*7~)@WTTdSV diff --git a/media/css/sf_font3/iconfont.js b/media/css/sf_font3/iconfont.js index 2d3b16b868..807191c58f 100644 --- a/media/css/sf_font3/iconfont.js +++ b/media/css/sf_font3/iconfont.js @@ -1 +1 @@ -window._iconfont_svg_string_1230969='',function(h){var c=(c=document.getElementsByTagName("script"))[c.length-1],l=c.getAttribute("data-injectcss"),c=c.getAttribute("data-disable-injectsvg");if(!c){var s,o,t,v,i,m=function(c,l){l.parentNode.insertBefore(c,l)};if(l&&!h.__iconfont__svg__cssinject__){h.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}s=function(){var c,l=document.createElement("div");l.innerHTML=h._iconfont_svg_string_1230969,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(c=document.body).firstChild?m(l,c.firstChild):c.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(s,0):(o=function(){document.removeEventListener("DOMContentLoaded",o,!1),s()},document.addEventListener("DOMContentLoaded",o,!1)):document.attachEvent&&(t=s,v=h.document,i=!1,f(),v.onreadystatechange=function(){"complete"==v.readyState&&(v.onreadystatechange=null,z())})}function z(){i||(i=!0,t())}function f(){try{v.documentElement.doScroll("left")}catch(c){return void setTimeout(f,50)}z()}}(window); \ No newline at end of file +window._iconfont_svg_string_1230969='',function(h){var c=(c=document.getElementsByTagName("script"))[c.length-1],l=c.getAttribute("data-injectcss"),c=c.getAttribute("data-disable-injectsvg");if(!c){var s,o,t,v,i,m=function(c,l){l.parentNode.insertBefore(c,l)};if(l&&!h.__iconfont__svg__cssinject__){h.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}s=function(){var c,l=document.createElement("div");l.innerHTML=h._iconfont_svg_string_1230969,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(c=document.body).firstChild?m(l,c.firstChild):c.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(s,0):(o=function(){document.removeEventListener("DOMContentLoaded",o,!1),s()},document.addEventListener("DOMContentLoaded",o,!1)):document.attachEvent&&(t=s,v=h.document,i=!1,f(),v.onreadystatechange=function(){"complete"==v.readyState&&(v.onreadystatechange=null,z())})}function z(){i||(i=!0,t())}function f(){try{v.documentElement.doScroll("left")}catch(c){return void setTimeout(f,50)}z()}}(window); \ No newline at end of file diff --git a/media/css/sf_font3/iconfont.svg b/media/css/sf_font3/iconfont.svg index 621e79afcb..64de3e564c 100644 --- a/media/css/sf_font3/iconfont.svg +++ b/media/css/sf_font3/iconfont.svg @@ -14,6 +14,8 @@ /> + + diff --git a/media/css/sf_font3/iconfont.ttf b/media/css/sf_font3/iconfont.ttf index cf27bfc96ff8ba4f583411e203be88429f24001b..24db2185bf15d282001b76da4da52a6381fc54bd 100644 GIT binary patch delta 1617 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 diff --git a/media/css/sf_font3/iconfont.woff2 b/media/css/sf_font3/iconfont.woff2 index f64abf91613b3f4567ebdf93471f9cce1fa53ecb..c766abc1f1e25995d6e3a88df484860eb9097128 100644 GIT binary patch literal 9344 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