mirror of
https://github.com/taobataoma/meanTorrent.git
synced 2026-07-06 21:28:33 +02:00
feat(core): add icon for menu item
This commit is contained in:
25
config/env/torrents.js
vendored
25
config/env/torrents.js
vendored
@@ -507,6 +507,9 @@ module.exports = {
|
||||
* @name: name of type, used by $translate at TORRENT_TYPE_LABEL, will show translate result as torrent tag in torrent list
|
||||
* @value: value of type, torrent type value in model, will write this value into mongodb and query torrents by this value
|
||||
* @title: title of type, used by $translate at MENU_TORRENTS_SUB, will show translate result in header submenu item
|
||||
* @role: role of type, limit none access users join
|
||||
* @faIcon: fontawesome icon front of menu item
|
||||
* @faClass: fontawesome icon class
|
||||
* @divider: divider status of submenu item
|
||||
* @position: position of submenu item(ordered index)
|
||||
* @state: angular state of torrent type, this state value used in module route config
|
||||
@@ -531,6 +534,8 @@ module.exports = {
|
||||
value: 'movie',
|
||||
title: 'MENU_TORRENTS_SUB.MOVIE',
|
||||
role: 'user',
|
||||
faIcon: 'fa-film',
|
||||
faClass: 'text-mt',
|
||||
divider: false,
|
||||
position: 1,
|
||||
state: 'torrents.movie',
|
||||
@@ -545,6 +550,8 @@ module.exports = {
|
||||
value: 'tvserial',
|
||||
title: 'MENU_TORRENTS_SUB.TVSERIAL',
|
||||
role: 'user',
|
||||
faIcon: 'fa-tv',
|
||||
faClass: 'text-mt',
|
||||
divider: false,
|
||||
position: 2,
|
||||
state: 'torrents.tvserial',
|
||||
@@ -559,6 +566,8 @@ module.exports = {
|
||||
value: 'music',
|
||||
title: 'MENU_TORRENTS_SUB.MUSIC',
|
||||
role: 'user',
|
||||
faIcon: 'fa-music',
|
||||
faClass: 'text-success',
|
||||
divider: true,
|
||||
position: 3,
|
||||
state: 'torrents.music',
|
||||
@@ -573,6 +582,8 @@ module.exports = {
|
||||
value: 'sports',
|
||||
title: 'MENU_TORRENTS_SUB.SPORTS',
|
||||
role: 'user',
|
||||
faIcon: 'fa-futbol-o',
|
||||
faClass: 'text-danger',
|
||||
divider: false,
|
||||
position: 4,
|
||||
state: 'torrents.sports',
|
||||
@@ -587,6 +598,8 @@ module.exports = {
|
||||
value: 'variety',
|
||||
title: 'MENU_TORRENTS_SUB.VARIETY',
|
||||
role: 'user',
|
||||
faIcon: 'fa-video-camera',
|
||||
faClass: 'text-primary',
|
||||
divider: false,
|
||||
position: 5,
|
||||
state: 'torrents.variety',
|
||||
@@ -601,6 +614,8 @@ module.exports = {
|
||||
value: 'picture',
|
||||
title: 'MENU_TORRENTS_SUB.PICTURE',
|
||||
role: 'user',
|
||||
faIcon: 'fa-photo',
|
||||
faClass: 'text-info',
|
||||
divider: false,
|
||||
position: 6,
|
||||
state: 'torrents.picture',
|
||||
@@ -615,6 +630,8 @@ module.exports = {
|
||||
value: 'game',
|
||||
title: 'MENU_TORRENTS_SUB.GAME',
|
||||
role: 'user',
|
||||
faIcon: 'fa-gamepad',
|
||||
faClass: 'text-danger',
|
||||
divider: true,
|
||||
position: 7,
|
||||
state: 'torrents.game',
|
||||
@@ -629,6 +646,8 @@ module.exports = {
|
||||
value: 'software',
|
||||
title: 'MENU_TORRENTS_SUB.SOFTWARE',
|
||||
role: 'user',
|
||||
faIcon: 'fa-hdd-o',
|
||||
faClass: 'text-success',
|
||||
divider: false,
|
||||
position: 8,
|
||||
state: 'torrents.software',
|
||||
@@ -643,6 +662,8 @@ module.exports = {
|
||||
value: 'ebook',
|
||||
title: 'MENU_TORRENTS_SUB.EBOOK',
|
||||
role: 'user',
|
||||
faIcon: 'fa-book',
|
||||
faClass: 'text-info',
|
||||
divider: false,
|
||||
position: 9,
|
||||
state: 'torrents.ebook',
|
||||
@@ -657,6 +678,8 @@ module.exports = {
|
||||
value: 'other',
|
||||
title: 'MENU_TORRENTS_SUB.OTHER',
|
||||
role: 'user',
|
||||
faIcon: null,
|
||||
faClass: null,
|
||||
divider: true,
|
||||
position: 10,
|
||||
state: 'torrents.other',
|
||||
@@ -671,6 +694,8 @@ module.exports = {
|
||||
value: 'adult',
|
||||
title: 'MENU_TORRENTS_SUB.ADULT',
|
||||
role: 'vip',
|
||||
faIcon: null,
|
||||
faClass: null,
|
||||
divider: true,
|
||||
position: 11,
|
||||
state: 'torrents.adult',
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
menuService.addSubMenuItem('topbar', 'about', {
|
||||
title: 'MENU_ABOUT_MANUAL',
|
||||
state: 'about.manual.userRules',
|
||||
faIcon: 'fa-question-circle',
|
||||
faClass: 'fa-class-user-manual',
|
||||
position: 1
|
||||
});
|
||||
// 2 is item of Users Ranking configure in module ranking
|
||||
@@ -30,11 +32,15 @@
|
||||
menuService.addSubMenuItem('topbar', 'about', {
|
||||
title: 'MENU_ABOUT_OPERLIST',
|
||||
state: 'about.operlist',
|
||||
faIcon: 'fa-user-secret',
|
||||
faClass: 'fa-class-operlist',
|
||||
position: 4
|
||||
});
|
||||
menuService.addSubMenuItem('topbar', 'about', {
|
||||
title: 'MENU_ABOUT_BLACKLIST',
|
||||
state: 'about.black',
|
||||
faIcon: 'fa-ban',
|
||||
faClass: 'text-danger',
|
||||
position: 5,
|
||||
divider: true
|
||||
});
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
 
|
||||
|
||||
---
|
||||
##### More manual link
|
||||
##### 更多手册内容连接
|
||||
* [用户守则](/about/manual/userRules)
|
||||
* [公共言论行为准则](/about/manual/chatRules)
|
||||
* [用户积分细则](/about/manual/scoreRules)
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
MENU_FORUMS: 'Forums',
|
||||
MENU_REQUESTS: 'Requests',
|
||||
MENU_ABOUT: 'About',
|
||||
MENU_ABOUT_MANUAL: 'Site Manual',
|
||||
MENU_ABOUT_MANUAL: 'User Manual',
|
||||
MENU_ABOUT_BLACKLIST: 'Client Black List',
|
||||
MENU_ABOUT_MAKERGROUP: 'Torrents Maker Group',
|
||||
MENU_ABOUT_OPERLIST: 'Admin/Oper List',
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
MENU_FORUMS: '论坛',
|
||||
MENU_REQUESTS: '求种',
|
||||
MENU_ABOUT: '关于',
|
||||
MENU_ABOUT_MANUAL: '站点手册',
|
||||
MENU_ABOUT_MANUAL: '用户手册',
|
||||
MENU_ABOUT_BLACKLIST: '禁止客户端列表',
|
||||
MENU_ABOUT_MAKERGROUP: '资源压制小组',
|
||||
MENU_ABOUT_OPERLIST: 'Admin/Oper 列表',
|
||||
|
||||
@@ -21,12 +21,16 @@
|
||||
|
||||
menuService.addSubMenuItem('account', 'settings', {
|
||||
title: 'EDIT_PROFILE',
|
||||
state: 'settings.profile'
|
||||
state: 'settings.profile',
|
||||
faIcon: 'fa-vcard',
|
||||
faClass: 'text-primary'
|
||||
});
|
||||
|
||||
menuService.addSubMenuItem('account', 'settings', {
|
||||
title: 'EDIT_PROFILE_PIC',
|
||||
state: 'settings.picture'
|
||||
state: 'settings.picture',
|
||||
faIcon: 'fa-photo',
|
||||
faClass: 'text-warning'
|
||||
});
|
||||
|
||||
menuService.addSubMenuItem('account', 'settings', {
|
||||
@@ -36,12 +40,16 @@
|
||||
|
||||
menuService.addSubMenuItem('account', 'settings', {
|
||||
title: 'CHANGE_PASSWORD',
|
||||
state: 'settings.password'
|
||||
state: 'settings.password',
|
||||
faIcon: 'fa-lock',
|
||||
faClass: 'text-danger'
|
||||
});
|
||||
|
||||
menuService.addSubMenuItem('account', 'settings', {
|
||||
title: 'RESET_PASSKEY',
|
||||
state: 'settings.passkey'
|
||||
state: 'settings.passkey',
|
||||
faIcon: 'fa-key',
|
||||
faClass: 'text-success'
|
||||
});
|
||||
}
|
||||
}());
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
function HeaderController($scope, $state, $timeout, $translate, Authentication, menuService, MeanTorrentConfig, localStorageService, ScoreLevelService,
|
||||
InvitationsService, $interval, MessagesService, TorrentsService, UsersService, mtDebug) {
|
||||
$scope.$state = $state;
|
||||
var vm = this;
|
||||
vm.user = Authentication.user;
|
||||
vm.language = MeanTorrentConfig.meanTorrentConfig.language;
|
||||
|
||||
@@ -1,5 +1,35 @@
|
||||
@import (reference) "../../../core/client/less/mt-var.less";
|
||||
|
||||
.navbar-nav {
|
||||
.fa-class-user-manual, .fa-class-admin-users {
|
||||
color: @brand-primary;
|
||||
}
|
||||
.fa-class-user-ranking, .fa-class-operlist, .fa-class-admin-official {
|
||||
color: @mt-base-color;
|
||||
}
|
||||
.fa-class-admin-torrents {
|
||||
color: @brand-info;
|
||||
}
|
||||
.fa-class-admin-upload {
|
||||
color: @brand-success;
|
||||
}
|
||||
.fa-class-admin-messages {
|
||||
color: @state-danger-text;
|
||||
}
|
||||
.fa-class-user-message {
|
||||
color: @brand-info;
|
||||
}
|
||||
.fa-class-revers {
|
||||
.fa-fw {
|
||||
color: #fafbfc;
|
||||
}
|
||||
}
|
||||
.fa-fw {
|
||||
margin: 0 5px 0 -15px;
|
||||
//font-size: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.home_notice {
|
||||
padding-top: 20px;
|
||||
.alert {
|
||||
|
||||
@@ -59,7 +59,9 @@
|
||||
items: [],
|
||||
shouldRender: shouldRender,
|
||||
target: options.target || undefined,
|
||||
divider: options.divider || false
|
||||
divider: options.divider || false,
|
||||
faClass: options.faClass || null,
|
||||
faIcon: options.faIcon || null
|
||||
});
|
||||
|
||||
// Add submenu items
|
||||
@@ -92,7 +94,9 @@
|
||||
position: options.position || 0,
|
||||
shouldRender: shouldRender,
|
||||
target: options.target || undefined,
|
||||
divider: options.divider || false
|
||||
divider: options.divider || false,
|
||||
faClass: options.faClass || null,
|
||||
faIcon: options.faIcon || null
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -1,84 +1,117 @@
|
||||
<div class="container" ng-controller="HeaderController as vm" ng-init="vm.getInvitationsCount(); vm.checkMessageUnread(); vm.checkHnRWarning();">
|
||||
<div class="navbar-header">
|
||||
<button class="navbar-toggle" type="button" ng-click="vm.isCollapsed = !vm.isCollapsed">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a ui-sref="home" class="navbar-brand"><span class="brand-title">{{vm.appConfig.name}}</span></a>
|
||||
</div>
|
||||
<nav class="navbar-collapse" uib-collapse="!vm.isCollapsed" role="navigation">
|
||||
<ul class="nav navbar-nav" ng-if="vm.menu.shouldRender(vm.authentication.user);" ng-hide="!vm.authentication.user && !vm.signConfig.showMenuHeaderForGuest">
|
||||
<li ng-repeat="item in vm.menu.items | orderBy: 'position'" ng-if="item.shouldRender(vm.authentication.user);" ng-switch="item.type" ng-class="{ dropdown: item.type === 'dropdown' }" ui-sref-active="active" class="{{item.class}}" uib-dropdown="item.type === 'dropdown'">
|
||||
<a ng-switch-when="dropdown" class="dropdown-toggle" uib-dropdown-toggle role="button"><span menu-title="{{item.title}}">{{::item.title}}</span> <span class="caret"></span></a>
|
||||
<ul ng-switch-when="dropdown" class="dropdown-menu">
|
||||
<li ui-sref-active="active" ng-repeat="subitem in item.items | orderBy: 'position'" ng-if="subitem.shouldRender(vm.authentication.user);" ng-class="{'menu-divider': subitem.divider}">
|
||||
<a ui-sref="{{subitem.state}}({{subitem.params}})" ng-bind="subitem.title" mt-target="{{subitem.target}}" menu-title="{{subitem.title}}"></a>
|
||||
</li>
|
||||
<div class="navbar-header">
|
||||
<button class="navbar-toggle" type="button" ng-click="vm.isCollapsed = !vm.isCollapsed">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a ui-sref="home" class="navbar-brand"><span class="brand-title">{{vm.appConfig.name}}</span></a>
|
||||
</div>
|
||||
<nav class="navbar-collapse" uib-collapse="!vm.isCollapsed" role="navigation">
|
||||
<ul class="nav navbar-nav" ng-if="vm.menu.shouldRender(vm.authentication.user);"
|
||||
ng-hide="!vm.authentication.user && !vm.signConfig.showMenuHeaderForGuest">
|
||||
<li ng-repeat="item in vm.menu.items | orderBy: 'position'" ng-if="item.shouldRender(vm.authentication.user);" ng-switch="item.type"
|
||||
ng-class="{ dropdown: item.type === 'dropdown' }" ui-sref-active="active" class="{{item.class}}"
|
||||
uib-dropdown="item.type === 'dropdown'">
|
||||
<a ng-switch-when="dropdown" class="dropdown-toggle" uib-dropdown-toggle role="button"><span
|
||||
menu-title="{{item.title}}">{{::item.title}}</span> <span class="caret"></span></a>
|
||||
<ul ng-switch-when="dropdown" class="dropdown-menu">
|
||||
<li ui-sref-active="active" ng-repeat="subitem in item.items | orderBy: 'position'"
|
||||
ng-if="subitem.shouldRender(vm.authentication.user);" ng-class="{'menu-divider': subitem.divider}">
|
||||
<a ui-sref="{{subitem.state}}({{subitem.params}})" mt-target="{{subitem.target}}"
|
||||
ng-class="{'fa-class-revers': $state.is(subitem.state)}">
|
||||
<i class="fa fa-fw {{subitem.faIcon}} {{subitem.faClass}}"></i><span ng-bind="subitem.title"
|
||||
menu-title="{{subitem.title}}"></span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<a ng-switch-default ui-sref="{{item.state}}" ng-bind="item.title" mt-target="{{item.target}}" menu-title="{{item.title}}"></a>
|
||||
</li>
|
||||
</ul>
|
||||
<a ng-switch-default ui-sref="{{item.state}}" ng-bind="item.title" mt-target="{{item.target}}" menu-title="{{item.title}}"></a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="nav navbar-nav navbar-right" ng-hide="vm.authentication.user">
|
||||
<li ui-sref-active="active">
|
||||
<a ui-sref="authentication.signup">{{'SIGNUP' | translate}}</a>
|
||||
</li>
|
||||
<li class="divider-vertical"></li>
|
||||
<li ui-sref-active="active">
|
||||
<a ui-sref="authentication.signin">{{'SIGNIN' | translate}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="nav navbar-nav navbar-right" ng-show="vm.authentication.user">
|
||||
<li class="scroll-info xs-hide sm-hide" ui-sref="status.account" ng-if="vm.authentication.user">
|
||||
<ul class="nav navbar-nav navbar-right" ng-hide="vm.authentication.user">
|
||||
<li ui-sref-active="active">
|
||||
<a ui-sref="authentication.signup">{{'SIGNUP' | translate}}</a>
|
||||
</li>
|
||||
<li class="divider-vertical"></li>
|
||||
<li ui-sref-active="active">
|
||||
<a ui-sref="authentication.signin">{{'SIGNIN' | translate}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="nav navbar-nav navbar-right" ng-show="vm.authentication.user">
|
||||
<li class="scroll-info xs-hide sm-hide" ui-sref="status.account" ng-if="vm.authentication.user">
|
||||
<span>
|
||||
{{'TABLE_FIELDS.RATIO' | translate}}: {{vm.authentication.user.ratio | ratio}},
|
||||
{{'TABLE_FIELDS.LEVEL' | translate}}: {{vm.scoreLevelData.currLevel}},
|
||||
{{'TABLE_FIELDS.SEEDED' | translate}}: {{vm.authentication.user.seeded}},
|
||||
{{'TABLE_FIELDS.LEECHED' | translate}}: {{vm.authentication.user.leeched}}</span>
|
||||
</li>
|
||||
<li class="dropdown" uib-dropdown>
|
||||
<a class="dropdown-toggle user-header-dropdown-toggle" uib-dropdown-toggle role="button">
|
||||
<img ng-src="{{vm.authentication.user.profileImageURL}}" alt="{{vm.authentication.user.displayName}}" class="header-profile-image" />
|
||||
<span class="sm-hide" ng-bind="vm.authentication.user.displayName"></span> <b class="caret"></b>
|
||||
<span class="header-red-dot" ng-if="vm.unreadCount>0 || vm.user.hnr_warning>0" ng-class="{'bg-hnr': vm.user.hnr_warning>0, 'bg-msg': vm.unreadCount>0}"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
<li>
|
||||
</li>
|
||||
<li class="dropdown" uib-dropdown>
|
||||
<a class="dropdown-toggle user-header-dropdown-toggle" uib-dropdown-toggle role="button">
|
||||
<img ng-src="{{vm.authentication.user.profileImageURL}}" alt="{{vm.authentication.user.displayName}}"
|
||||
class="header-profile-image"/>
|
||||
<span class="sm-hide" ng-bind="vm.authentication.user.displayName"></span> <b class="caret"></b>
|
||||
<span class="header-red-dot" ng-if="vm.unreadCount>0 || vm.user.hnr_warning>0"
|
||||
ng-class="{'bg-hnr': vm.user.hnr_warning>0, 'bg-msg': vm.unreadCount>0}"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
<li>
|
||||
<span class="lang-list">
|
||||
<span class="flag-icon {{l.class}}" title="{{l.title}}" ng-click="vm.changeLanguage(l.name);" ng-repeat="l in vm.language | orderBy: '-index'"></span>
|
||||
<span class="flag-icon {{l.class}}" title="{{l.title}}" ng-click="vm.changeLanguage(l.name);"
|
||||
ng-repeat="l in vm.language | orderBy: '-index'"></span>
|
||||
</span>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li ui-sref-active="active" ng-repeat="item in vm.followMenu.items" class="menu-parent">
|
||||
<a ui-sref="{{item.state}}" ng-bind="item.title" menu-title="{{item.title}}"></a><span class="badge menu-badge badge_default" ng-show="vm.getFollowCount(item)>0">{{vm.getFollowCount(item)}}</span>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li ui-sref-active="active" ng-repeat="item in vm.messagesMenu.items" class="menu-parent">
|
||||
<a ui-sref="{{item.state}}" ng-bind="item.title" menu-title="{{item.title}}"></a><span class="badge menu-badge badge_info" ng-show="vm.unreadCount>0">{{vm.unreadCount}}</span>
|
||||
</li>
|
||||
<li ui-sref-active="active" ng-repeat="item in vm.statusMenu.items" class="menu-parent">
|
||||
<a ui-sref="{{item.state}}" ng-bind="item.title" menu-title="{{item.title}}"></a><span class="badge menu-badge badge_danger" ng-show="vm.user.hnr_warning>0">{{vm.user.hnr_warning}}</span>
|
||||
</li>
|
||||
<li ui-sref-active="active" ng-repeat="item in vm.scoreMenu.items" class="menu-parent">
|
||||
<a ui-sref="{{item.state}}" ng-bind="item.title" menu-title="{{item.title}}"></a><span class="menu-score" score-level-curr="vm.user"></span>
|
||||
</li>
|
||||
<li ui-sref-active="active" ng-repeat="item in vm.inviteMenu.items" class="menu-parent">
|
||||
<a ui-sref="{{item.state}}" ng-bind="item.title" menu-title="{{item.title}}"></a><span class="badge menu-badge badge_info">{{vm.countMyInvitations}}</span>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li ui-sref-active="active" ng-repeat="item in vm.accountMenu.items">
|
||||
<a ui-sref="{{item.state}}" ng-bind="item.title" menu-title="{{item.title}}"></a>
|
||||
</li>
|
||||
<li ui-sref-active="active" ng-if="vm.signConfig.allowSocialSignin">
|
||||
<a ui-sref="settings.accounts" ng-bind="MANAGE_SOCIAL_ACCOUNTS" menu-title="MANAGE_SOCIAL_ACCOUNTS"></a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a href="/api/auth/signout" target="_self">{{'SIGNOUT' | translate}}</a>
|
||||
</li>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li ui-sref-active="active" ng-repeat="item in vm.followMenu.items" class="menu-parent">
|
||||
<a ui-sref="{{item.state}}">
|
||||
<i class="fa fa-fw {{item.faIcon}} {{item.faClass}}"></i><span ng-bind="item.title" menu-title="{{item.title}}"></span>
|
||||
</a>
|
||||
<span class="badge menu-badge badge_default" ng-show="vm.getFollowCount(item)>0">{{vm.getFollowCount(item)}}</span>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li ui-sref-active="active" ng-repeat="item in vm.messagesMenu.items" class="menu-parent">
|
||||
<a ui-sref="{{item.state}}">
|
||||
<i class="fa fa-fw {{item.faIcon}} {{item.faClass}}"></i><span ng-bind="item.title" menu-title="{{item.title}}"></span>
|
||||
</a>
|
||||
<span class="badge menu-badge badge_info" ng-show="vm.unreadCount>0">{{vm.unreadCount}}</span>
|
||||
</li>
|
||||
<li ui-sref-active="active" ng-repeat="item in vm.statusMenu.items" class="menu-parent">
|
||||
<a ui-sref="{{item.state}}">
|
||||
<i class="fa fa-fw {{item.faIcon}} {{item.faClass}}"></i><span ng-bind="item.title" menu-title="{{item.title}}"></span>
|
||||
</a>
|
||||
<span class="badge menu-badge badge_danger" ng-show="vm.user.hnr_warning>0">{{vm.user.hnr_warning}}</span>
|
||||
</li>
|
||||
<li ui-sref-active="active" ng-repeat="item in vm.scoreMenu.items" class="menu-parent">
|
||||
<a ui-sref="{{item.state}}">
|
||||
<i class="fa fa-fw {{item.faIcon}} {{item.faClass}}"></i><span ng-bind="item.title" menu-title="{{item.title}}"></span>
|
||||
</a>
|
||||
<span class="menu-score" score-level-curr="vm.user"></span>
|
||||
</li>
|
||||
<li ui-sref-active="active" ng-repeat="item in vm.inviteMenu.items" class="menu-parent">
|
||||
<a ui-sref="{{item.state}}">
|
||||
<i class="fa fa-fw {{item.faIcon}} {{item.faClass}}"></i><span ng-bind="item.title" menu-title="{{item.title}}"></span>
|
||||
</a>
|
||||
<span class="badge menu-badge badge_info">{{vm.countMyInvitations}}</span>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li ui-sref-active="active" ng-repeat="item in vm.accountMenu.items">
|
||||
<a ui-sref="{{item.state}}">
|
||||
<i class="fa fa-fw {{item.faIcon}} {{item.faClass}}"></i><span ng-bind="item.title" menu-title="{{item.title}}"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li ui-sref-active="active" ng-if="vm.signConfig.allowSocialSignin">
|
||||
<a ui-sref="settings.accounts" ng-bind="MANAGE_SOCIAL_ACCOUNTS">
|
||||
<i class="fa fa-fw"></i><span menu-title="MANAGE_SOCIAL_ACCOUNTS"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a href="/api/auth/signout" target="_self">
|
||||
<i class="fa fa-fw fa-sign-out text-danger"></i><span>{{'SIGNOUT' | translate}}</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
menuService.addSubMenuItem('topbar', 'admin', {
|
||||
title: 'MENU_ADMIN_OFFICIAL_INVITATION',
|
||||
state: 'admin.invitations.official',
|
||||
faIcon: 'fa-user-plus',
|
||||
faClass: 'fa-class-admin-official',
|
||||
position: 40
|
||||
});
|
||||
}
|
||||
|
||||
@@ -21,7 +21,9 @@
|
||||
|
||||
menuService.addSubMenuItem('mt-invite', 'invite', {
|
||||
title: 'MENU_MY_INVITE',
|
||||
state: 'invitations.detail'
|
||||
state: 'invitations.detail',
|
||||
faIcon: 'fa-user-plus',
|
||||
faClass: 'text-mt'
|
||||
});
|
||||
}
|
||||
}());
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
menuService.addSubMenuItem('topbar', 'admin', {
|
||||
title: 'MENU_ADMIN_MESSAGES',
|
||||
state: 'admin.messages',
|
||||
faIcon: 'fa-podcast',
|
||||
faClass: 'fa-class-admin-messages',
|
||||
position: 10,
|
||||
divider: true
|
||||
});
|
||||
|
||||
@@ -21,7 +21,9 @@
|
||||
|
||||
menuService.addSubMenuItem('mt-message', 'messages', {
|
||||
title: 'MENU_MESSAGE_BOX',
|
||||
state: 'messages.box'
|
||||
state: 'messages.box',
|
||||
faIcon: 'fa-comments',
|
||||
faClass: 'fa-class-user-message'
|
||||
});
|
||||
}
|
||||
}());
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
menuService.addSubMenuItem('topbar', 'about', {
|
||||
title: 'MENU_ABOUT_RANKING',
|
||||
state: 'ranking',
|
||||
faIcon: 'fa-user-circle-o',
|
||||
faClass: 'fa-class-user-ranking',
|
||||
position: 2,
|
||||
divider: true
|
||||
});
|
||||
|
||||
@@ -12,8 +12,10 @@
|
||||
menuService.addSubMenuItem('topbar', 'admin', {
|
||||
title: 'MENU_ADMIN_SYSTEMS',
|
||||
state: 'admin.systems.env',
|
||||
position: 1000,
|
||||
roles: ['admin'],
|
||||
faIcon: 'fa-cog',
|
||||
faClass: 'text-danger',
|
||||
position: 1000,
|
||||
divider: true
|
||||
});
|
||||
}
|
||||
|
||||
@@ -12,12 +12,16 @@
|
||||
menuService.addSubMenuItem('topbar', 'admin', {
|
||||
title: 'MENU_TORRENTS_ADMIN',
|
||||
state: 'admin.torrents',
|
||||
faIcon: 'fa-indent',
|
||||
faClass: 'fa-class-admin-torrents',
|
||||
position: 1
|
||||
});
|
||||
menuService.addSubMenuItem('topbar', 'admin', {
|
||||
title: 'MENU_UPLOADER_ADMIN',
|
||||
state: 'admin.uploader',
|
||||
roles: ['admin'],
|
||||
faIcon: 'fa-cloud-upload',
|
||||
faClass: 'fa-class-admin-upload',
|
||||
position: 2
|
||||
});
|
||||
|
||||
|
||||
@@ -33,6 +33,8 @@
|
||||
state: cfg.state,
|
||||
divider: cfg.divider,
|
||||
roles: ['*'],
|
||||
faIcon: cfg.faIcon,
|
||||
faClass: cfg.faClass,
|
||||
position: cfg.position
|
||||
});
|
||||
|
||||
@@ -41,7 +43,7 @@
|
||||
title: 'MENU_TORRENTS_SUB.MOVIE_COLLECTIONS',
|
||||
state: 'collections.list',
|
||||
roles: ['*'],
|
||||
position: 1
|
||||
position: cfg.position
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
menuService.addSubMenuItem('topbar', 'admin', {
|
||||
title: 'MENU_ADMIN_TRACE',
|
||||
state: 'admin.traces',
|
||||
faIcon: 'fa-table',
|
||||
faClass: 'text-warning',
|
||||
position: 20
|
||||
});
|
||||
}
|
||||
|
||||
@@ -11,7 +11,9 @@
|
||||
function menuConfig(menuService) {
|
||||
menuService.addSubMenuItem('topbar', 'admin', {
|
||||
title: 'MENU_USERS_ADMIN',
|
||||
state: 'admin.users'
|
||||
state: 'admin.users',
|
||||
faIcon: 'fa-users',
|
||||
faClass: 'fa-class-admin-users'
|
||||
});
|
||||
}
|
||||
}());
|
||||
|
||||
@@ -35,12 +35,16 @@
|
||||
|
||||
menuService.addSubMenuItem('mt-user', 'status', {
|
||||
title: 'MENU_ACCOUNT_STATUS',
|
||||
state: 'status.account'
|
||||
state: 'status.account',
|
||||
faIcon: 'fa-eye',
|
||||
faClass: 'text-success'
|
||||
});
|
||||
|
||||
menuService.addSubMenuItem('mt-user', 'score', {
|
||||
title: 'MENU_SCORE_LEVEL',
|
||||
state: 'score.detail'
|
||||
state: 'score.detail',
|
||||
faIcon: 'fa-ticket',
|
||||
faClass: 'text-mt'
|
||||
});
|
||||
|
||||
menuService.addSubMenuItem('mt-user', 'follow', {
|
||||
|
||||
Reference in New Issue
Block a user