From 55a4214a5c08e166f933ff9cc7ddd468aebfb96e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 8 Aug 2017 13:05:46 +0200 Subject: [PATCH] fixes: U4-10233 Umbraco 7.7 beta - format user last login date --- .../src/views/users/user.controller.js | 22 ++++++++++++++++++- .../src/views/users/user.html | 5 +++-- .../users/views/users/users.controller.js | 15 +++++++++++-- 3 files changed, 37 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/users/user.controller.js b/src/Umbraco.Web.UI.Client/src/views/users/user.controller.js index 237c44255c..e060eaf393 100644 --- a/src/Umbraco.Web.UI.Client/src/views/users/user.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/users/user.controller.js @@ -1,7 +1,7 @@ (function () { "use strict"; - function UserEditController($scope, $timeout, $location, $routeParams, formHelper, usersResource, contentEditingHelper, localizationService, notificationsService, mediaHelper, Upload, umbRequestHelper, usersHelper, authResource) { + function UserEditController($scope, $timeout, $location, $routeParams, formHelper, usersResource, contentEditingHelper, localizationService, notificationsService, mediaHelper, Upload, umbRequestHelper, usersHelper, authResource, dateHelper) { var vm = this; @@ -66,6 +66,11 @@ makeBreadcrumbs(vm.user); setUserDisplayState(); + // format dates to local + if(vm.user.lastLoginDate) { + vm.user.formattedLastLogin = getLocalDate(vm.user.lastLoginDate, "MMMM Do YYYY, HH:mm"); + } + vm.emailIsUsername = user.email === user.username; //go get the config for the membership provider and add it to the model @@ -81,6 +86,21 @@ }); }); } + + function getLocalDate(date, format) { + var dateVal; + var serverOffset = Umbraco.Sys.ServerVariables.application.serverTimeOffset; + var localOffset = new Date().getTimezoneOffset(); + var serverTimeNeedsOffsetting = (-serverOffset !== localOffset); + + if(serverTimeNeedsOffsetting) { + dateVal = dateHelper.convertToLocalMomentTime(date, serverOffset); + } else { + dateVal = moment(date, "YYYY-MM-DD HH:mm:ss"); + } + + return dateVal.format(format); + } function toggleChangePassword() { vm.changePasswordModel.isChanging = !vm.changePasswordModel.isChanging; diff --git a/src/Umbraco.Web.UI.Client/src/views/users/user.html b/src/Umbraco.Web.UI.Client/src/views/users/user.html index 84e50a3360..94c8360346 100644 --- a/src/Umbraco.Web.UI.Client/src/views/users/user.html +++ b/src/Umbraco.Web.UI.Client/src/views/users/user.html @@ -225,9 +225,10 @@
- Last login:
+ Last login: +
- {{ vm.user.lastLoginDate }} + {{ vm.user.formattedLastLogin }} {{ vm.user.name }} has not logged in yet
diff --git a/src/Umbraco.Web.UI.Client/src/views/users/views/users/users.controller.js b/src/Umbraco.Web.UI.Client/src/views/users/views/users/users.controller.js index 96db5e07b1..69db1a1da1 100644 --- a/src/Umbraco.Web.UI.Client/src/views/users/views/users/users.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/users/views/users/users.controller.js @@ -1,7 +1,7 @@ (function () { "use strict"; - function UsersController($scope, $timeout, $location, usersResource, userGroupsResource, localizationService, contentEditingHelper, usersHelper, formHelper, notificationsService) { + function UsersController($scope, $timeout, $location, usersResource, userGroupsResource, localizationService, contentEditingHelper, usersHelper, formHelper, notificationsService, dateHelper) { var vm = this; var localizeSaving = localizationService.localize("general_saving"); @@ -539,7 +539,18 @@ function formatDates(users) { angular.forEach(users, function (user) { if (user.lastLoginDate) { - user.formattedLastLogin = moment(user.lastLoginDate).format("MMMM Do YYYY, HH:mm"); + var dateVal; + var serverOffset = Umbraco.Sys.ServerVariables.application.serverTimeOffset; + var localOffset = new Date().getTimezoneOffset(); + var serverTimeNeedsOffsetting = (-serverOffset !== localOffset); + + if(serverTimeNeedsOffsetting) { + dateVal = dateHelper.convertToLocalMomentTime(user.lastLoginDate, serverOffset); + } else { + dateVal = moment(user.lastLoginDate, "YYYY-MM-DD HH:mm:ss"); + } + + user.formattedLastLogin = dateVal.format("MMMM Do YYYY, HH:mm"); } }); }