diff --git a/modules/about/client/config/about.client.menus.js b/modules/about/client/config/about.client.menus.js index 948e5350..c48fcd2c 100644 --- a/modules/about/client/config/about.client.menus.js +++ b/modules/about/client/config/about.client.menus.js @@ -32,6 +32,12 @@ state: 'about.maker', position: 3 }); + menuService.addSubMenuItem('topbar', 'about', { + title: 'MENU_ABOUT_OPERLIST', + state: 'about.operlist', + position: 4, + divider: true + }); } }()); diff --git a/modules/about/client/config/about.client.routes.js b/modules/about/client/config/about.client.routes.js index 8ac055fa..4e36f6c8 100644 --- a/modules/about/client/config/about.client.routes.js +++ b/modules/about/client/config/about.client.routes.js @@ -35,6 +35,14 @@ roles: ['user', 'oper', 'admin'], pageTitle: 'PAGETITLE.MAKER' } + }) + .state('about.operlist', { + url: '/operlist', + templateUrl: '/modules/about/client/views/operlist.client.view.html', + data: { + roles: ['user', 'oper', 'admin'], + pageTitle: 'PAGETITLE.OPERLIST' + } }); } }()); diff --git a/modules/about/client/controllers/about.client.controller.js b/modules/about/client/controllers/about.client.controller.js index fe864a59..b116d190 100644 --- a/modules/about/client/controllers/about.client.controller.js +++ b/modules/about/client/controllers/about.client.controller.js @@ -5,16 +5,29 @@ .module('about') .controller('AboutController', AboutController); - AboutController.$inject = ['$scope', 'getStorageLangService', 'MeanTorrentConfig']; + AboutController.$inject = ['$scope', 'getStorageLangService', 'MeanTorrentConfig', 'AdminService']; - function AboutController($scope, getStorageLangService, MeanTorrentConfig) { + function AboutController($scope, getStorageLangService, MeanTorrentConfig, AdminService) { var vm = this; vm.lang = getStorageLangService.getLang(); vm.blackListConfig = MeanTorrentConfig.meanTorrentConfig.clientBlackList; + vm.appConfig = MeanTorrentConfig.meanTorrentConfig.app; vm.announce = MeanTorrentConfig.meanTorrentConfig.announce; vm.init = function () { }; + + /** + * getOperList + */ + vm.getOperList = function () { + AdminService.get({ + isOper: true, + isAdmin: true + }, function (data) { + vm.operList = data.rows; + }); + }; } }()); diff --git a/modules/about/client/less/about.less b/modules/about/client/less/about.less index bfb998a5..a773419a 100644 --- a/modules/about/client/less/about.less +++ b/modules/about/client/less/about.less @@ -23,7 +23,9 @@ z-index: 100; } span { - color: #888; + color: #999; + position: relative; + z-index: 100; } &:hover { @@ -32,7 +34,7 @@ transform: scale(1.5); /* csslint ignore:end */ } - h4 { + h4, span { color: #fff; } .black-icon { @@ -49,6 +51,62 @@ } } +.oper-list { + .oper-item { + cursor: pointer; + position: relative; + border: solid 1px darken(@state-danger-text, 15%); + border-radius: 4px; + background-color: lighten(@state-danger-text, 1%); + padding: 10px 0 15px 0; + margin: 20px 0 0 0; + overflow: hidden; + + &.is-admin { + background-color: darken(@state-danger-text, 10%); + } + + .fa { + transition-property: transform, opacity; + transition-duration: .5s; + transition-timing-function: ease; + font-size: 7em; + color: #888; + } + span { + color: #ddd; + position: relative; + z-index: 100; + } + div { + color: #999; + position: relative; + z-index: 100; + } + + &:hover { + .fa { + /* csslint ignore:start */ + transform: scale(1.5); + /* csslint ignore:end */ + } + .h3, .h4, div { + color: #fff; + } + .oper-icon { + opacity: 0.3; + } + } + } + + .oper-icon { + position: absolute; + top: 2px; + right: -40px; + opacity: 0.5; + } +} + .maker-side-overlay { top: 50px !important; @media (min-width: @screen-sm-min) { diff --git a/modules/about/client/views/black.client.view.html b/modules/about/client/views/black.client.view.html index e4178844..507a4e7d 100644 --- a/modules/about/client/views/black.client.view.html +++ b/modules/about/client/views/black.client.view.html @@ -16,11 +16,9 @@