1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-08-02 07:47:32 +00:00

custom nav item (#4071)

* custom nav item

* optimize code

* optimize code
This commit is contained in:
Leo 2019-09-11 13:39:49 +08:00 committed by Daniel Pan
parent 3fa9f80432
commit d52949da9c
5 changed files with 33 additions and 2 deletions

View File

@ -8,7 +8,7 @@ import { Utils } from '../utils/utils';
import toaster from './toast';
import Group from '../models/group';
import { canViewOrg, isDocs, isPro } from '../utils/constants';
import { canViewOrg, isDocs, isPro, customNavItems } from '../utils/constants';
const propTypes = {
currentTab: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
@ -159,6 +159,21 @@ 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>
);
})
);
}
render() {
let showActivity = isDocs || isPro;
return (
@ -255,6 +270,7 @@ class MainSideNav extends React.Component {
</a>
{this.renderSharedAdmin()}
</li>
{customNavItems && this.renderCustomNavItems()}
</ul>
</div>
</div>

View File

@ -54,6 +54,7 @@ export const repoPasswordMinLength = window.app.pageOptions.repoPasswordMinLengt
export const canAddPublicRepo = window.app.pageOptions.canAddPublicRepo;
export const canInvitePeople = window.app.pageOptions.canInvitePeople;
export const canLockUnlockFile = window.app.pageOptions.canLockUnlockFile;
export const customNavItems = window.app.pageOptions.customNavItems;
export const curNoteMsg = window.app.pageOptions.curNoteMsg;
export const curNoteID = window.app.pageOptions.curNoteID;

View File

@ -913,3 +913,14 @@ if ENABLE_REMOTE_USER_AUTHENTICATION:
if ENABLE_OAUTH or ENABLE_WORK_WEIXIN:
AUTHENTICATION_BACKENDS += ('seahub.oauth.backends.OauthRemoteUserBackend',)
#####################
# Custom Nav Items #
#####################
# an example:
# CUSTOM_NAV_ITEMS = [
# {'icon': 'sf2-icon-star',
# 'desc': 'test custom name',
# 'link': 'http://127.0.0.1:8000/shared-libs/',
# },
# ]

View File

@ -91,6 +91,7 @@
repoPasswordMinLength: {{repo_password_min_length}},
canAddPublicRepo: {% if can_add_public_repo %} true {% else %} false {% endif %},
canInvitePeople: {% if enable_guest_invitation and user.permissions.can_invite_guest %} true {% else %} false {% endif %},
customNavItems: JSON.parse('{{ custom_nav_items | escapejs }}'),
{% if request.user.is_authenticated and request.cur_note %}
curNoteMsg: '{{ request.cur_note.message|urlize }}',

View File

@ -63,6 +63,7 @@ from seahub.onlyoffice.settings import ENABLE_ONLYOFFICE
from seahub.constants import HASH_URLS, PERMISSION_READ
LIBRARY_TEMPLATES = getattr(settings, 'LIBRARY_TEMPLATES', {})
CUSTOM_NAV_ITEMS = getattr(settings, 'CUSTOM_NAV_ITEMS', '')
from constance import config
@ -1267,5 +1268,6 @@ def react_fake_view(request, **kwargs):
'is_email_configured': IS_EMAIL_CONFIGURED,
'can_add_public_repo': request.user.permissions.can_add_public_repo(),
'folder_perm_enabled': folder_perm_enabled,
'file_audit_enabled' : FILE_AUDIT_ENABLED
'file_audit_enabled' : FILE_AUDIT_ENABLED,
'custom_nav_items' : json.dumps(CUSTOM_NAV_ITEMS),
})