From 91bec12382d15d9fdeb1abefc7637a6623e93a54 Mon Sep 17 00:00:00 2001 From: OldHawk Date: Mon, 11 Sep 2017 15:12:21 +0800 Subject: [PATCH] feat(users): show user h&r warning numbers in header menu and user info page --- modules/core/client/app/trans-string-en.js | 1 + modules/core/client/app/trans-string-zh.js | 1 + .../controllers/header.client.controller.js | 22 +++++++++++++++++-- modules/core/client/less/mt.less | 2 +- .../core/client/views/header.client.view.html | 10 ++++----- .../client/views/detail.client.view.html | 4 ++-- .../client/views/box.client.view.html | 2 +- .../client/services/users.client.service.js | 7 ++++++ .../views/status/account.client.view.html | 8 +++++++ .../views/userinfo/userinfo.client.view.html | 5 +++++ .../users/users.profile.server.controller.js | 20 +++++++++++++++++ .../server/routes/users.server.routes.js | 1 + 12 files changed, 72 insertions(+), 11 deletions(-) diff --git a/modules/core/client/app/trans-string-en.js b/modules/core/client/app/trans-string-en.js index f060eebf..597c3ffc 100644 --- a/modules/core/client/app/trans-string-en.js +++ b/modules/core/client/app/trans-string-en.js @@ -444,6 +444,7 @@ SEEDED: 'Torrents seeded', LEECHED: 'Torrents leeched', FINISHED: 'Torrents finished', + HNY_WARNING: 'H&R Warning', FORUM_TOPICS: 'Forum topics', FORUM_REPLIES: 'Forum replies', DETAIL: 'Detail', diff --git a/modules/core/client/app/trans-string-zh.js b/modules/core/client/app/trans-string-zh.js index 4e045614..3e8a3b37 100644 --- a/modules/core/client/app/trans-string-zh.js +++ b/modules/core/client/app/trans-string-zh.js @@ -444,6 +444,7 @@ SEEDED: '正在做种', LEECHED: '正在下载', FINISHED: '下载完成', + HNY_WARNING: 'H&R 警告', FORUM_TOPICS: '论坛主题数', FORUM_REPLIES: '论坛回复数', DETAIL: '详情', diff --git a/modules/core/client/controllers/header.client.controller.js b/modules/core/client/controllers/header.client.controller.js index 23daa196..bfb38cba 100644 --- a/modules/core/client/controllers/header.client.controller.js +++ b/modules/core/client/controllers/header.client.controller.js @@ -6,10 +6,10 @@ .controller('HeaderController', HeaderController); HeaderController.$inject = ['$scope', '$state', '$stateParams', '$translate', 'Authentication', 'menuService', 'MeanTorrentConfig', 'localStorageService', - 'ScoreLevelService', 'InvitationsService', '$interval', 'MessagesService', 'TorrentsService']; + 'ScoreLevelService', 'InvitationsService', '$interval', 'MessagesService', 'TorrentsService', 'UsersService']; function HeaderController($scope, $state, $stateParams, $translate, Authentication, menuService, MeanTorrentConfig, localStorageService, ScoreLevelService, - InvitationsService, $interval, MessagesService, TorrentsService) { + InvitationsService, $interval, MessagesService, TorrentsService, UsersService) { var vm = this; vm.user = Authentication.user; vm.language = MeanTorrentConfig.meanTorrentConfig.language; @@ -68,6 +68,7 @@ * checkMessageUnread */ vm.checkMessageUnread = function () { + vm.getCountUnread(); $interval(vm.getCountUnread, 120000); }; @@ -79,6 +80,23 @@ } }; + /** + * checkHnRWarning + */ + vm.checkHnRWarning = function () { + vm.getWarning(); + $interval(vm.getWarning, 120000); + }; + + vm.getWarning = function () { + if (Authentication.user) { + UsersService.getUserWarningNumber() + .then(function (data) { + vm.user.hnr_warning = Authentication.user.hnr_warning = data.hnr_warning; + }); + } + }; + /** * stateChangeSuccess */ diff --git a/modules/core/client/less/mt.less b/modules/core/client/less/mt.less index 27635888..cc433bf6 100644 --- a/modules/core/client/less/mt.less +++ b/modules/core/client/less/mt.less @@ -188,7 +188,7 @@ body { .menu-badge { position: absolute; right: 10px; - top: 3px; + top: 4px; } .menu-parent { diff --git a/modules/core/client/views/header.client.view.html b/modules/core/client/views/header.client.view.html index ddd50190..f8cccb9b 100644 --- a/modules/core/client/views/header.client.view.html +++ b/modules/core/client/views/header.client.view.html @@ -1,4 +1,4 @@ -
+
  • diff --git a/modules/users/server/controllers/users/users.profile.server.controller.js b/modules/users/server/controllers/users/users.profile.server.controller.js index 4e7962dd..ab3d164b 100644 --- a/modules/users/server/controllers/users/users.profile.server.controller.js +++ b/modules/users/server/controllers/users/users.profile.server.controller.js @@ -160,6 +160,7 @@ exports.me = function (req, res) { username: validator.escape(req.user.username), created: req.user.created.toString(), roles: req.user.roles, + hnr_warning: req.user.hnr_warning, profileImageURL: req.user.profileImageURL, email: validator.escape(req.user.email), lastName: validator.escape(req.user.lastName), @@ -170,3 +171,22 @@ exports.me = function (req, res) { res.json(safeUserObject || null); }; + + +/** + * warningNumber + * @param req + * @param res + * @param next + */ +exports.warningNumber = function (req, res, next) { + if (req.user) { + res.json({ + hnr_warning: req.user.hnr_warning + }); + } else { + res.status(401).send({ + message: 'User is not signed in' + }); + } +}; diff --git a/modules/users/server/routes/users.server.routes.js b/modules/users/server/routes/users.server.routes.js index 5bf34eea..45fb45a5 100644 --- a/modules/users/server/routes/users.server.routes.js +++ b/modules/users/server/routes/users.server.routes.js @@ -10,6 +10,7 @@ module.exports = function (app) { app.route('/api/users/accounts').delete(users.removeOAuthProvider); app.route('/api/users/password').post(users.changePassword); app.route('/api/users/passkey').post(users.resetPasskey); + app.route('/api/users/warningNumber').get(users.warningNumber); app.route('/api/users/picture').post(users.changeProfilePicture); // Finish by binding the user middleware