From dbba4c0d6469af499f0b02ac8714dc5d9328bde7 Mon Sep 17 00:00:00 2001 From: OldHawk Date: Wed, 21 Jun 2017 09:58:27 +0800 Subject: [PATCH] feat(users): add filter to show ratio formated info --- .../core/client/filter/ratio.client.filter.js | 19 +++++++++++++++++++ .../views/admin/list-users.client.view.html | 2 +- .../views/admin/view-user.client.view.html | 2 +- .../views/status/account.client.view.html | 2 +- .../users/server/models/user.server.model.js | 4 +++- 5 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 modules/core/client/filter/ratio.client.filter.js diff --git a/modules/core/client/filter/ratio.client.filter.js b/modules/core/client/filter/ratio.client.filter.js new file mode 100644 index 00000000..c9dec48d --- /dev/null +++ b/modules/core/client/filter/ratio.client.filter.js @@ -0,0 +1,19 @@ +(function () { + 'use strict'; + + // Focus the element on page load + // Unless the user is on a small device, because this could obscure the page with a keyboard + + angular.module('core') + .filter('ratio', ratio); + + function ratio() { + return function (number) { + if (number === -1) { + return '∞'; + } else { + return number; + } + }; + } +}()); diff --git a/modules/users/client/views/admin/list-users.client.view.html b/modules/users/client/views/admin/list-users.client.view.html index 9e98dcc1..5b141ee7 100644 --- a/modules/users/client/views/admin/list-users.client.view.html +++ b/modules/users/client/views/admin/list-users.client.view.html @@ -14,7 +14,7 @@ ng-class="{'span-banned': user.status == 'banned'}"> -

+

{{user.displayName}} - {{user.username}}

diff --git a/modules/users/client/views/admin/view-user.client.view.html b/modules/users/client/views/admin/view-user.client.view.html index c0d5242f..38f0c591 100644 --- a/modules/users/client/views/admin/view-user.client.view.html +++ b/modules/users/client/views/admin/view-user.client.view.html @@ -145,7 +145,7 @@
{{ 'STATUS_FIELD.RATIO' | translate}}:
-
{{ vm.user.ratio }}
+
{{ vm.user.ratio | ratio}}
{{ 'STATUS_FIELD.SCORE' | translate}}:
diff --git a/modules/users/client/views/status/account.client.view.html b/modules/users/client/views/status/account.client.view.html index 08328012..dc52f5a3 100644 --- a/modules/users/client/views/status/account.client.view.html +++ b/modules/users/client/views/status/account.client.view.html @@ -99,7 +99,7 @@
{{ 'STATUS_FIELD.RATIO' | translate}}:
-
{{ vm.user.ratio }}
+
{{ vm.user.ratio | ratio}}
  • diff --git a/modules/users/server/models/user.server.model.js b/modules/users/server/models/user.server.model.js index dae93ea8..7c1b770f 100644 --- a/modules/users/server/models/user.server.model.js +++ b/modules/users/server/models/user.server.model.js @@ -214,7 +214,9 @@ UserSchema.pre('save', function (next) { this.password = this.hashPassword(this.password); } - if (this.uploaded === 0 || this.downloaded === 0) { + if (this.uploaded > 0 && this.downloaded === 0) { + this.ratio = -1; + } else if (this.uploaded === 0 || this.downloaded === 0) { this.ratio = 0; } else { this.ratio = Math.round((this.uploaded / this.downloaded) * 100) / 100;