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;