1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-02 15:38:15 +00:00

add type & lang to custom nav (#4347)

This commit is contained in:
Leo
2019-12-11 14:05:02 +08:00
committed by Daniel Pan
parent f260b3b60c
commit d137c49184
2 changed files with 45 additions and 13 deletions

View File

@@ -2,7 +2,7 @@ import React from 'react';
import PropTypes from 'prop-types';
import { Link } from '@reach/router';
import { Badge } from 'reactstrap';
import { gettext, siteRoot, canPublishRepo, canAddRepo, canGenerateShareLink, canGenerateUploadLink, canInvitePeople, dtableWebServer } from '../utils/constants';
import { gettext, siteRoot, canPublishRepo, canAddRepo, canGenerateShareLink, canGenerateUploadLink, canInvitePeople, dtableWebServer, lang } from '../utils/constants';
import { seafileAPI } from '../utils/seafile-api';
import { Utils } from '../utils/utils';
import toaster from './toast';
@@ -167,14 +167,33 @@ class MainSideNav extends React.Component {
renderCustomNavItems() {
return (
customNavItems.map((item, idx) => {
return (
<li key={idx} className="nav-item">
<a href={item.link} className="nav-link ellipsis" title={item.desc}>
<span className={item.icon} aria-hidden="true"></span>
<span className="nav-text">{item.desc}</span>
</a>
</li>
);
// if no item.lang, show
// if has item.lang && system.lang in item.lang, show
// other case hide
if (item.hasOwnProperty('lang') && item.lang.indexOf(lang) == -1) return null;
if (item.type === 'heading') {
return (
<h3 key={idx} className="sf-heading">{item.desc}</h3>
);
} else {
return (
<ul className="nav nav-pills flex-column nav-container">
{
item.map((nav, idx) => {
if (nav.hasOwnProperty('lang') && nav.lang.indexOf(lang) == -1) return null;
return (
<li key={idx} className="nav-item">
<a href={nav.link} className="nav-link ellipsis" title={nav.desc}>
<span className={nav.icon} aria-hidden="true"></span>
<span className="nav-text">{nav.desc}</span>
</a>
</li>
);
})
}
</ul>
);
}
})
);
}
@@ -276,8 +295,8 @@ class MainSideNav extends React.Component {
</a>
{this.renderSharedAdmin()}
</li>
{customNavItems && this.renderCustomNavItems()}
</ul>
{customNavItems && this.renderCustomNavItems()}
</div>
{dtableWebServer &&