From 011cb33fbb22c0900baab05dac4e23e67748d6c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E9=A1=BA=E5=BC=BA?= Date: Wed, 25 Mar 2020 18:03:04 +0800 Subject: [PATCH] Add hu berlin requirement (#4500) * add new requirement * update demo copyright * update sf-font * optimize code * improve variables naming --- frontend/src/components/common/logout.js | 18 +++++ .../src/components/dialog/about-dialog.js | 13 +++- .../src/components/dialog/share-dialog.js | 19 ++++- frontend/src/components/side-nav-footer.js | 43 +++++++---- .../src/components/toolbar/common-toolbar.js | 4 +- frontend/src/utils/constants.js | 5 ++ media/css/sf_font3/iconfont.css | 72 ++++++++++++------ media/css/sf_font3/iconfont.eot | Bin 3560 -> 4612 bytes media/css/sf_font3/iconfont.js | 2 +- media/css/sf_font3/iconfont.svg | 45 ++++++++--- media/css/sf_font3/iconfont.ttf | Bin 3392 -> 4444 bytes media/css/sf_font3/iconfont.woff | Bin 2172 -> 2872 bytes media/css/sf_font3/iconfont.woff2 | Bin 1700 -> 2280 bytes seahub/settings.py | 23 ++++++ seahub/templates/base_for_react.html | 4 + seahub/views/__init__.py | 7 +- 16 files changed, 200 insertions(+), 55 deletions(-) create mode 100644 frontend/src/components/common/logout.js diff --git a/frontend/src/components/common/logout.js b/frontend/src/components/common/logout.js new file mode 100644 index 0000000000..3d07441d1c --- /dev/null +++ b/frontend/src/components/common/logout.js @@ -0,0 +1,18 @@ +import React from 'react'; +import { siteRoot, gettext } from '../../utils/constants' + +export default function Logout() { + const style = { + width: '32px', + height: '32px', + marginLeft: '8px', + color: '#bbb', + textDecoration: 'none' + }; + const classname = "d-flex align-items-center justify-content-center" + return ( + + + + ) +} \ No newline at end of file diff --git a/frontend/src/components/dialog/about-dialog.js b/frontend/src/components/dialog/about-dialog.js index cb16603ffb..e87740fefb 100644 --- a/frontend/src/components/dialog/about-dialog.js +++ b/frontend/src/components/dialog/about-dialog.js @@ -1,7 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { Modal, ModalBody } from 'reactstrap'; -import { gettext, lang, mediaUrl, logoPath, logoWidth, logoHeight, siteTitle, seafileVersion } from '../../utils/constants'; +import { gettext, lang, mediaUrl, logoPath, logoWidth, logoHeight, siteTitle, seafileVersion, extraAboutDialogLinks } from '../../utils/constants'; const propTypes = { onCloseAboutDialog: PropTypes.func.isRequired, @@ -13,6 +13,16 @@ class AboutDialog extends React.Component { this.props.onCloseAboutDialog(); } + renderExternalAboutLinks = () => { + if (extraAboutDialogLinks && (typeof extraAboutDialogLinks) === 'object') { + let keys = Object.keys(extraAboutDialogLinks); + return keys.map((key, index) => { + return ; + }); + } + return null; + } + render() { let href = lang === lang == 'zh-cn' ? 'http://seafile.com/about/' : 'http://seafile.com/en/about/'; @@ -23,6 +33,7 @@ class AboutDialog extends React.Component {

logo

{gettext('Server Version: ')}{seafileVersion}
© 2019 {gettext('Seafile')}

+

{this.renderExternalAboutLinks()}

{gettext('About Us')}

diff --git a/frontend/src/components/dialog/share-dialog.js b/frontend/src/components/dialog/share-dialog.js index 627ad2b3a4..607e0280dc 100644 --- a/frontend/src/components/dialog/share-dialog.js +++ b/frontend/src/components/dialog/share-dialog.js @@ -1,7 +1,7 @@ import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; import { Modal, ModalHeader, ModalBody, TabContent, TabPane, Nav, NavItem, NavLink } from 'reactstrap'; -import { gettext, username, canGenerateShareLink, canGenerateUploadLink } from '../../utils/constants'; +import { gettext, username, canGenerateShareLink, canGenerateUploadLink, extraShareDialogNote } from '../../utils/constants'; import ShareToUser from './share-to-user'; import ShareToGroup from './share-to-group'; import GenerateShareLink from './generate-share-link'; @@ -207,13 +207,28 @@ class ShareDialog extends React.Component { ); } + renderExternalShareMessage = () => { + if (extraShareDialogNote && (typeof extraShareDialogNote) === 'object') { + return ( +
+
{extraShareDialogNote.title}
+
{extraShareDialogNote.content}
+
+ ); + } + return null; + } + render() { const { itemType, itemName, repoEncrypted } = this.props; const enableShareLink = !repoEncrypted && canGenerateShareLink; return (
- {gettext('Share')} {itemName} + + {gettext('Share')} {itemName} + {this.renderExternalShareMessage()} + {(itemType === 'library' || itemType === 'dir') && this.renderDirContent()} {(itemType === 'file' && enableShareLink) && this.renderFileContent()} diff --git a/frontend/src/components/side-nav-footer.js b/frontend/src/components/side-nav-footer.js index 3efd0839cf..7805fdd7ce 100644 --- a/frontend/src/components/side-nav-footer.js +++ b/frontend/src/components/side-nav-footer.js @@ -1,5 +1,5 @@ -import React from 'react'; -import { gettext, siteRoot, sideNavFooterCustomHtml } from '../utils/constants'; +import React, { Fragment } from 'react'; +import { gettext, siteRoot, sideNavFooterCustomHtml, extraAppBottomLinks } from '../utils/constants'; import ModalPortal from './modal-portal'; import AboutDialog from './dialog/about-dialog'; @@ -16,26 +16,39 @@ class SideNavFooter extends React.Component { this.setState({isAboutDialogShow: !this.state.isAboutDialogShow}); } + renderExternalAppLinks = () => { + if (extraAppBottomLinks && (typeof extraAppBottomLinks) === 'object') { + let keys = Object.keys(extraAppBottomLinks); + return keys.map((key, index) => { + return ; + }); + } + return null; + } + render() { - if (sideNavFooterCustomHtml === "") { - return ( -
+ + if (sideNavFooterCustomHtml) { + return (
); + } + return ( + + - ); - } else { - return (
); - } + {this.state.isAboutDialogShow && ( + + + + )} +
+ ); } } diff --git a/frontend/src/components/toolbar/common-toolbar.js b/frontend/src/components/toolbar/common-toolbar.js index e884d7cfb2..fe4a560c89 100644 --- a/frontend/src/components/toolbar/common-toolbar.js +++ b/frontend/src/components/toolbar/common-toolbar.js @@ -1,9 +1,10 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { isPro, gettext } from '../../utils/constants'; +import { isPro, gettext, showExtraLogoutIcon } from '../../utils/constants'; import Search from '../search/search'; import Notification from '../common/notification'; import Account from '../common/account'; +import Logout from '../common/logout'; const propTypes = { repoID: PropTypes.string, @@ -25,6 +26,7 @@ class CommonToolbar extends React.Component { )} + {showExtraLogoutIcon && ()}
); } diff --git a/frontend/src/utils/constants.js b/frontend/src/utils/constants.js index 868edd4e8b..19bd362848 100644 --- a/frontend/src/utils/constants.js +++ b/frontend/src/utils/constants.js @@ -61,6 +61,11 @@ export const maxNumberOfFilesForFileupload = window.app.pageOptions.maxNumberOfF export const curNoteMsg = window.app.pageOptions.curNoteMsg; export const curNoteID = window.app.pageOptions.curNoteID; +export const showExtraLogoutIcon = window.app.pageOptions.showExtraLogoutIcon; +export const extraShareDialogNote = window.app.pageOptions.extraShareDialogNote; +export const extraAppBottomLinks = window.app.pageOptions.extraAppBottomLinks; +export const extraAboutDialogLinks = window.app.pageOptions.extraAboutDialogLinks; + // wiki export const slug = window.wiki ? window.wiki.config.slug : ''; export const repoID = window.wiki ? window.wiki.config.repoId : ''; diff --git a/media/css/sf_font3/iconfont.css b/media/css/sf_font3/iconfont.css index fe3e68aaa4..390052e824 100644 --- a/media/css/sf_font3/iconfont.css +++ b/media/css/sf_font3/iconfont.css @@ -1,10 +1,10 @@ @font-face {font-family: "sf3-font"; - src: url('iconfont.eot?t=1564546243284'); /* IE9 */ - src: url('iconfont.eot?t=1564546243284#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), - url('iconfont.woff?t=1564546243284') format('woff'), - url('iconfont.ttf?t=1564546243284') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ - url('iconfont.svg?t=1564546243284#sf3-font') format('svg'); /* iOS 4.1- */ + src: url('iconfont.eot?t=1585125551666'); /* IE9 */ + src: url('iconfont.eot?t=1585125551666#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), + url('iconfont.woff?t=1585125551666') format('woff'), + url('iconfont.ttf?t=1585125551666') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ + url('iconfont.svg?t=1585125551666#sf3-font') format('svg'); /* iOS 4.1- */ } .sf3-font { @@ -15,6 +15,50 @@ -moz-osx-font-smoothing: grayscale; } +.sf3-font-logout:before { + content: "\e6bb"; +} + +.sf3-font-sort-up-down:before { + content: "\e6ba"; +} + +.sf3-font-dingtalk:before { + content: "\e6b8"; +} + +.sf3-font-enlarge:before { + content: "\e6af"; +} + +.sf3-font-narrow:before { + content: "\e6b0"; +} + +.sf3-font-page-size:before { + content: "\e6ae"; +} + +.sf3-font-arrow:before { + content: "\e675"; +} + +.sf3-font-table:before { + content: "\e672"; +} + +.sf3-font-cancel-invitation:before { + content: "\e661"; +} + +.sf3-font-sort:before { + content: "\e657"; +} + +.sf3-font-add:before { + content: "\e653"; +} + .sf3-font-dtable-logo:before { content: "\e601"; } @@ -23,19 +67,3 @@ content: "\e602"; } -.sf3-font-add:before { - content: "\e653"; -} - -.sf3-font-form:before { - content: "\e654"; -} - -.sf3-font-sort:before { - content: "\e657"; -} - -.sf3-font-cancel-invitation:before { - content: "\e661"; -} - diff --git a/media/css/sf_font3/iconfont.eot b/media/css/sf_font3/iconfont.eot index 7563a842365b1002cbc46bf4dc236f7ad346523c..1cb9f136983aa16df67dc4ae8e788cf595fc71e4 100644 GIT binary patch delta 1712 zcma)6Z){Ul6hG(Q_ouJj+P<}GH&(X2j=ect8(>=thC$VDi181E86?VcE!#rZHeJU* zmG%SC_$LukWBjBu8VqJ4gc$j&H6a@J1wIfy5I>L*UqoUc0ZlaU>bdPq@SC^qci*|^ zp7T5Bo_qR!?K-qVk=g)u=tq=``_i6^FZOkOw!)t~Sq zJXf7!%gdw@&i@O|L}W7OgrTMzE-WQ@l(fQPh~93BwLqi?XdMJUX(XH3TkLV$vWxbd zeZoF%pR3nt)5eF?$4Py*Ua#srFpT6Fdg!+dmJwMCw1S7|H9D0F3Wbn~oQc4wke^fS z<#N?0Ddh#S7NeEwM7sjy4K~$6prPMFGJzPu9&bXVZd*-I6tIg;P&}~bnxM#FA8&$k z0Gp~VAgXAeXrfGsfql9ON)ha{O^C~|&o!}Bxo6=ZIM{(EZpFj+8{5UM@NRxpx=NId ztK;9ZJJ12E0s4)oIff&Nq%mqH6QMAMf+{Lza+J6Cc~RB7F+AMf7sr9}h&ifnz+_^W zjX8g5t?m|dqgVAvIIgPBF|7+f{jp~d(Fk6^Oa`A_}k^WNrsobGGnUqh1y1w zNAq66J5Qt8>x?h&mp9`R!*Z(&PsCCoD(zB&%x2fAieb8i0W<1DB~%U@8&D31)@;Ot zIbe8^UAyS+^3*(f5D#<&oX0P?Bkl`cU#IhSP{+GB-0mCxC}Q+#LwW>pg&?Q8)#v$j zzOzBT89+8+AOXn`gcaa)U^*`yGL8Yo$A;BpUy^h|Wgw1aiknPq#Hd&dm?L4bBq5GT zGtq+~TB-_zMd!9GqrSL^x-2`l7f;@jq+2H&^I)K}E3oNs?_(i<#2<_CNJ}Ib>JGN6 zv&+Ln3hOdI)LPF3wQfX7+rD+%^Sf1L=R;KGMdIeK{>w(3&YNa@&9Wcf*e<&z$4+MMg;(jk18t6Goo$`<{u?MGcz$U90-3{X~bd0>fivEb#k-O}&F=53Aj6$3S?jli^A%v^^T&)RL-9y@Ro_&OdQ5 zHH3G=>%;Agnoj&Vmkz~2rDL^0^*z_os_wp5U9J6Gy{W!`YQI$Ar)1AzR;FG=juOhK zpo%WksNf!K!B)!A2TC?SnV&1Q%;t-w*jyo&&hO2+($l%gl9k=9W^!4pIGIs$R76$nB4J%O(E69hgS6 zFsxt~1q-pV2!Sg^1S>_vLcuh_YDgm(P_U8nn_Yvx;hTByoA(_SEm^~VxO>0w?kXz)~t)De~oz3m#YywOk21=g!p(MefQbp{*QA+ z#Rd`gqp%xSUTr-hD!)gI;Wa9CoeNejie;~{O0;ptHtoOHx2&@*V;4DI~hr%<6 zi|Hd=akZcpl^l(T6jSwm9~s&h^2#)hrF{+!Baf#{MCMZ|SRZ^@C(?y<#|LPg4EkM# zK{WJ03V*1f`&0`V^cZR}gPuXj3|c3(Ascee8~mL(O9jn{0m>)n7@eTgw0Wy^StOr} z50hGcnEWn$Nm$|6=JxmlUbh%$f*CBwOlGk>m7G{!YrEBU*bJxKAa*-Zr`2_J+tpUkYsE5dg+bcOA5&R{+5i9m diff --git a/media/css/sf_font3/iconfont.js b/media/css/sf_font3/iconfont.js index 018147f11f..f699f8dbd9 100644 --- a/media/css/sf_font3/iconfont.js +++ b/media/css/sf_font3/iconfont.js @@ -1 +1 @@ -!function(h){var c,e='',t=(c=document.getElementsByTagName("script"))[c.length-1].getAttribute("data-injectcss");if(t&&!h.__iconfont__svg__cssinject__){h.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}!function(c){if(document.addEventListener)if(~["complete","loaded","interactive"].indexOf(document.readyState))setTimeout(c,0);else{var t=function(){document.removeEventListener("DOMContentLoaded",t,!1),c()};document.addEventListener("DOMContentLoaded",t,!1)}else document.attachEvent&&(n=c,o=h.document,l=!1,(i=function(){try{o.documentElement.doScroll("left")}catch(c){return void setTimeout(i,50)}e()})(),o.onreadystatechange=function(){"complete"==o.readyState&&(o.onreadystatechange=null,e())});function e(){l||(l=!0,n())}var n,o,l,i}(function(){var c,t;(c=document.createElement("div")).innerHTML=e,e=null,(t=c.getElementsByTagName("svg")[0])&&(t.setAttribute("aria-hidden","true"),t.style.position="absolute",t.style.width=0,t.style.height=0,t.style.overflow="hidden",function(c,t){t.firstChild?function(c,t){t.parentNode.insertBefore(c,t)}(c,t.firstChild):t.appendChild(c)}(t,document.body))})}(window); \ No newline at end of file +!function(n){var c,i='',t=(c=document.getElementsByTagName("script"))[c.length-1].getAttribute("data-injectcss");if(t&&!n.__iconfont__svg__cssinject__){n.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}!function(c){if(document.addEventListener)if(~["complete","loaded","interactive"].indexOf(document.readyState))setTimeout(c,0);else{var t=function(){document.removeEventListener("DOMContentLoaded",t,!1),c()};document.addEventListener("DOMContentLoaded",t,!1)}else document.attachEvent&&(l=c,o=n.document,h=!1,(i=function(){try{o.documentElement.doScroll("left")}catch(c){return void setTimeout(i,50)}e()})(),o.onreadystatechange=function(){"complete"==o.readyState&&(o.onreadystatechange=null,e())});function e(){h||(h=!0,l())}var l,o,h,i}(function(){var c,t,e,l,o,h;(c=document.createElement("div")).innerHTML=i,i=null,(t=c.getElementsByTagName("svg")[0])&&(t.setAttribute("aria-hidden","true"),t.style.position="absolute",t.style.width=0,t.style.height=0,t.style.overflow="hidden",e=t,(l=document.body).firstChild?(o=e,(h=l.firstChild).parentNode.insertBefore(o,h)):l.appendChild(e))})}(window); \ No newline at end of file diff --git a/media/css/sf_font3/iconfont.svg b/media/css/sf_font3/iconfont.svg index 112d096f78..15b4b33d20 100644 --- a/media/css/sf_font3/iconfont.svg +++ b/media/css/sf_font3/iconfont.svg @@ -20,24 +20,45 @@ Created by iconfont /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - diff --git a/media/css/sf_font3/iconfont.ttf b/media/css/sf_font3/iconfont.ttf index 916f7ac43d63b3c9483dfe08e4f18058b38879fe..fbca1dd2847d64be646ebbf766a4b193d61cbbbc 100644 GIT binary patch delta 1663 zcma)6U2GIp6h7zP`Ptd+{&lxI{iE${>D0yUinQGYLt)W3#P|cD2LC#Cm(sA^-LzXl zRCXVXit(Yz8sd{eG#E@p2r=@jYhpC%idI}DLgY9VI4qU+B*lu>2_wZ$DnJ63Q#lK~@pdB6t7%-yd7>*=U#;BP} zMs$pXRaDH>C~xccp&IN#eYmYZfrI4{b2PXKQ^{dA=KQ63-7V-wpX!ltTveUpS{Hu& zLvIYx2w%B0^0wl+!)mHOMYgaqn7}f{O(i#DR49Yyh)$j)Brs(rdoe<)sxVk`ZptzSmzFRn%g)WE zQ#T~(#;L{_3w3mbwl4HN5(#t%;&I;H(jAWUgxl1)Rr-*^y37wW@7b`{gD7dccIKGD-&( zGY7iX4p94v4yo68ji*JEV$f(ag8e~b)CjUPR-6hwSmEgvfn-|J=&CaC8rDPsL$oH% zD|ahc6SLH#D}*vp1{-JAAT%1}*r1Q0h{J2d4)+L7g;y$dZ~$qnpooVcqza=s1TonR zT>qMWHIIQoe-jxuiGqs<6X?TUq&5ggbVKza)jt&-W^dq3K+}*Rb1~YDT#8`R=Z|fWNHbzY+KF*a*aZqVntx)|% zJyxC8?ot}s=YFSX1S zW=rw;VmwpWmv?2R^HU`&w^z;PbJpxsR>@nlvxR+H(VEJ}=cW&2<%TYote11y;G~tG f%;w_L`B$b(R%yDBmjoHNG8s>%WL44INniCp(cxud delta 608 zcmYjOJxE+Z5T4n6ckg^2Mg>7cgZb;uB1Nn$#m++f4;SKccX~(e-8=Phs0b%$BUlJ4 z*r|<#R2Cv!A>l&05Q2q;fgq{23#3TE?(*$>kz|%{=VxcWnPI;@ZuadzsZSE|CK1i# zd{xcg9>L_Fz?Y@+`eOI14Tnfx5heGE1(omlakho0ryt!!oCEa7X5IopJ5SS zAf3BMYwhMD&lheYYmNLVJ2 z$*tBFWu1r?lSCSC_u@toMBj|J&A)yy@|)U`1^K%4;^RNvI&nxYz)z9DZN)OV^p5l+ zK4PVtJWxl-7XJ^p2|xmw_=#(Oho~ZINixtL_-ZH|h3`d8gb`-S%o^2d5g9g<_ck)D zF!IvWfn#j}4kv|HNq9;9LEPyp(OybNsdLedAFxC*Y-58>EbK-GpJ-tRHB&L{9%eR% zUBajsmM4-1H-r#b@kx%IH@#)4hr9!Q>NfOr+l`)2-JL)0*cY8H3zqC~f|KlWiu6d= j!)H?E^Uh+h;ybIsO4yZCm0Y1bRI1cUp$bbuCF1`BYKwMm diff --git a/media/css/sf_font3/iconfont.woff b/media/css/sf_font3/iconfont.woff index 14c28f5dd280d9d14c1ce0f25c1a3b92406a5b9e..d41617d21563c8197328e0bb7bc44de52b80ece0 100644 GIT binary patch delta 2413 zcmV-z36l2w5V#f;cTYw}00961000X(01E&B000qOkrY3Ftz&IrZ~y=SfB*mhxc~qH zSR4Y04`*z7W&i*JJOBU&eEpNyZ`_IF8}}lHW+2MTWDxyVE_OK z>;M1&9smFUBnRUIjA(6icmMzi3;+NC5&!@II5+_S0Bmn#VE_OLAOHXW9smFU9u8g$ zer;iRZ~y={2|xe<03QGV03ZP&0JUymZDjxe319#K0Zae@0&S&SJmcjQ0#a%?X+IJPew z9orjD4s8DHAiM!twncjY004NLl~rAc+}0Jo=iZU-NHdZ~BaJjW|B`kzo!Qx0do&{@ zadvj&G%dUFl1+awHl&mq%D(i6CUq&Kp>zth3#HJ4P2EBZb_}5nr6i9A$DQJml6}fU z$bYH$L1N>HevfdVs!O=iavheca zs-+~UrTNi!=nlydn-J*ut_GrII};FWYq$cT-*Hr+H~uVFbF-Xo!uQHX{K%_vO@39? z=Hj22I_!VGEz55gTmbj2RQnvjd|EakpI&4;>{J^27$JgBIw6THVvB@fxmYdMH~>S` zXuu;cLYpae27sT9!WD26z2lE;bVOwUksmg}!XXza*^WOF1kks)K^KJhqwQBd$Yefv zC6!%cu4=6Ry!DV(s1+6$SuI~Pt%h0Rr|WiKq*Z_amy&YDlo|jT>FMJqp87f$Pu(2~ zL$l{^1w$GC*dGilubq8bkTaQFo4S(B1wj-bBaU5aWOFvK)q?hfi>K7}+tovD3F`-} zf5v8P73(LUJ0(Z=bZ6}7bQPxY6d#zf)dK||vcCp5ZU(bt_Y7RJ%BG)8VU|p0ZpRZa zqMm=AR~pYrV?!Ff3(05L3}cc#{Kr!^oqkGU0w|}Dd=5yWO({uylF5TyuVpgqQR3h^ z!6e!3zk^^ z`TBaQuW2ghYtm76DviR}nXRp}d%u6~%LR7nxfAA`n(y;3E(M$MjGe|9ER~>S3xcL? zY-k!Uh{x8sE~x6phN_}@t;4!dE3TS9U>^t|?ZoY|a#DEt#h>l}~>@cFV9_ zcHMG(z0!IJo=?>?WtTc8{IT3@mg7h47Hu7E*65R`b6If9c}sqeOU8TVAs3AA?)|>f zpzl}a=SLoZ7e5Q$I8mw%|NE96_`2jpkS4Z+Z=gDEb+enn z?`s&jV~=<5uisCA^1oXV%!q*x*}Kd}7V^mvvPpi69b2@6M#6fxDbatAL_|Cntpx7T z1n)J+MwQ&*#L)_uAoWXq_6ZXkX%vo=c8={8QoERRF*~6Mdl(+UhKF1cB6(m7?0A01 z7rCc_=Z{wyHef$#ePNUYu+v=dsY7Tr;b5}k(~GjqtSZg67i}(7^y*<#d`knNYRHDn z%yGlAm5wFnFBJ-Eu{wW5tCT5KS+;FSd8a?IY>p(Y_qBphHIdil_z#c&=&*0k=a!VN zseqAZoU!_e)}*C5#xF9?}0FotbI!I%uRUe?qtMH-{$EaBdmX0wkXJ7IxL7Cn=68@ zD+ZP($rS#YeK_zB9ed$1bD)1&$rperJz0cuwrS)gAtO=9^cV=TVpy^+H2M!rkNB-_ zkj-SWLAT%;<*1sMGI`eBoIm6TD_QB^!5g%E0001ZoMT{QU|;~^XXkA@;`wd9GH|mn zfWWPVmg^Dp{{??6EX)Z&E(Ze>NE84@s|y7Hc${NkWME)!_}{<~!vbXe|HHz<0Hjd> z9{_R>1a|-cc${NlU|?V&6*Dq0000Kd06G8w0000008jva0R90O0VV-d0gwUe0%ii# z10Dm`1l9lmc${NkWME+6V_3<+$p8XOK+FY%3=IFld*67e^Rg&~SIrVAEnEqu6pwbLh3)1)Twc3WdIX+kl9_|`^7cyVqZH>^ fPR{l2GVIxySd`P6{Kod+`3gyD%omL*E#UwFKBier delta 1714 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 delta 1692 zcmV;N24nf?5u^3Z3l519Sc#EPEwcbM}lqJV1-wsE|w!1+M(GJ3Vo@<9YMABZ_gh7y$|dF z$g?FyiA_Zj2oGdzjEd0_hK+bvOScKF3&oB9?=FhgRI23L-sSRTe>R&o9;Yz^jgTN5 zlHtEIdz0A|Z=ywiyrSx$LUsyg+a5G&o!mLDvZ8}K*Z4aB{jt)`@wLT#8&+V2Uh)6m z$hv6Du%-h(I*e$G6f8SGFgn1~kj`de!G~`EE+>#pb9Bxh-iENR#O;AjPpnB{Kjl@{ zutMvoOAal?H)L&kpJsut?)&3E?8iPyRp7f`KfW*E>KF2VD@BPOVW*)mt}l$lS(F5 z)x_0xbu{qw)t=?kzG|_Oqiyt7Rvmz%qj(6gIsU%)3DTX+-Tg`>u)p(b$vd60-!2mDl{18B`zDoEaLKNeycGO zmV2s|c2FSSNsX}Ce7;7{>JA(>hc(0vSh6}I#!LySIqEm$8#T-SM$gMWhpH0=gF?K#hMCC;Um=DsBQHXS?MZ2 zCi*a{VnEjKNhz(}My&|xUZCq6iZ{sWAw^z$mby=jMuEvBv{=Mu^Uffd8p2E%=&F`m zQ-cJm&5k9O0<&3Erz5OlH15#ISZX_gNR^d;1XC!`DHU5Rgsy01k-~EO|8hE@V@5Pe zW-9ib{u@v0e{1_MfZN||b?BB-`*Rs{l7eIvsT76^Oq*UJxkauzSFKxk?y?Y{!9}p$ zpnl{3-yb%mJU6ZDwb0Zu|FfCGi(Ss!8;wF7XC0FO|2zMT1SUPIufpL17Vh$9Jq zPrBv7qQLZ#uYxH%saQ}Wx*tVng+70pobo|FJ8Henjty%BaAb1dn=`8nA6GP(9OJ*a zfSWA2*;9diG0mi3JsN6hDS3Q2^w8_`(vERHg_Abp%AsyRPYPX$#O&2q!B1t%9F0b5 z{Z`7D8-w4buN_>Q{%vQAoJ2zyBw(0-fnX_c^7S2l=bS(8bloAn7`ZdztD_^dlCDCZ z-aEb2k=_y-LZ6KM!Pu(G7W;uoUe`N`V4akV}^kiC|y4C?R<+UX1VS;wAS3f9F3agCCL%2GWNjRBKZWUsC?|w9BNWGB&JD z5|U0!ku6{sO1F@Z6t_JkB`k?FSOFjIU{O)bIMp1R421 zAQLepjVUO!7O5q36DplUsI`tD+wgdFXAIjCWgpgkFbKmwAsO@o3d6pCsU`CVDwF=8 zHXK`!-GuEaJIi4Y(->31LS-9eb856~C5MGNc75kQnnjgz((E{6RLeBOT)e4B+w+6)vOT?=YB+R;p_CZOf|A)NS~=3tJBdTD zX)!nV^?k@#sHC{2-$`_P3<=0$`AWzWfcl6UQosA6Mav~4BJHrIRGE=FkcZ{Ms1jA8 zwB;Mkpq%hbmngS-{MLAyioByF_3dnfLGU{^k)nt)s;HxhR`*EKtU|XULl<~DACOzN mb97gjPgB|2R}|YgalKtgEEjp& diff --git a/seahub/views/__init__.py b/seahub/views/__init__.py index 155c235182..c359cc0f75 100644 --- a/seahub/views/__init__.py +++ b/seahub/views/__init__.py @@ -56,7 +56,8 @@ from seahub.settings import AVATAR_FILE_STORAGE, \ ENABLE_SUB_LIBRARY, ENABLE_FOLDER_PERM, ENABLE_REPO_SNAPSHOT_LABEL, \ UNREAD_NOTIFICATIONS_REQUEST_INTERVAL, SHARE_LINK_EXPIRE_DAYS_MIN, \ SHARE_LINK_EXPIRE_DAYS_MAX, SHARE_LINK_EXPIRE_DAYS_DEFAULT, \ - SEAFILE_COLLAB_SERVER, ENABLE_RESET_ENCRYPTED_REPO_PASSWORD + SEAFILE_COLLAB_SERVER, ENABLE_RESET_ENCRYPTED_REPO_PASSWORD, \ + SHOW_EXTRA_LOGOUT_ICON, EXTRA_SHARE_DIALOG_NOTE, EXTRA_APP_BOTTOM_LINKS, EXTRA_ABOUT_DIALOG_LINKS from seahub.wopi.settings import ENABLE_OFFICE_WEB_APP from seahub.onlyoffice.settings import ENABLE_ONLYOFFICE @@ -1277,4 +1278,8 @@ def react_fake_view(request, **kwargs): 'folder_perm_enabled': folder_perm_enabled, 'file_audit_enabled' : FILE_AUDIT_ENABLED, 'custom_nav_items' : json.dumps(CUSTOM_NAV_ITEMS), + 'show_extra_logout_icon': SHOW_EXTRA_LOGOUT_ICON, + 'extra_share_dialog_note': EXTRA_SHARE_DIALOG_NOTE, + 'extra_app_bottom_links': EXTRA_APP_BOTTOM_LINKS, + 'extra_about_dialog_links': EXTRA_ABOUT_DIALOG_LINKS })