From 9c5da1265312d2a3bd7b5d4440e30a0b73d3cdc2 Mon Sep 17 00:00:00 2001 From: Anders Bjerner Date: Sat, 11 Nov 2017 19:53:48 +0100 Subject: [PATCH] Updated the "umbContentNodeInfo" directive with localized dates --- .../content/umbcontentnodeinfo.directive.js | 42 ++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/content/umbcontentnodeinfo.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/content/umbcontentnodeinfo.directive.js index 6f0511f10d..0bb8f1df03 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/content/umbcontentnodeinfo.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/content/umbcontentnodeinfo.directive.js @@ -1,7 +1,7 @@ (function () { 'use strict'; - function ContentNodeInfoDirective($timeout, $location, logResource, eventsService) { + function ContentNodeInfoDirective($timeout, $location, logResource, eventsService, userService) { function link(scope, element, attrs, ctrl) { @@ -38,6 +38,10 @@ loadAuditTrail(); } }); + + // make sure dates are formatted to the user's locale + formatDatesToLocal(); + } scope.auditTrailPageChange = function (pageNumber) { @@ -112,6 +116,9 @@ // update publish value scope.node.releaseDate = date; + // make sure dates are formatted to the user's locale + formatDatesToLocal(); + // emit event var args = { node: scope.node, date: date }; eventsService.emit("editors.content.changePublishDate", args); @@ -134,6 +141,9 @@ // update publish value scope.node.removeDate = date; + // make sure dates are formatted to the user's locale + formatDatesToLocal(); + // emit event var args = { node: scope.node, date: date }; eventsService.emit("editors.content.changeUnpublishDate", args); @@ -150,6 +160,36 @@ eventsService.emit("editors.content.changeUnpublishDate", args); } + + function ucfirst(hest) { + return hest.charAt(0).toUpperCase() + hest.slice(1); + } + + function getLocalDate(date, culture, format) { + if (date) { + 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.locale(culture).format(format); + } + } + + function formatDatesToLocal() { + // get current backoffice user and format dates + userService.getCurrentUser().then(function (currentUser) { + scope.node.createDateFormatted = getLocalDate(scope.node.createDate, currentUser.locale, 'LLL'); + scope.node.releaseDateMonth = scope.node.releaseDate ? ucfirst(getLocalDate(scope.node.releaseDate, currentUser.locale, 'MMMM')) : null; + scope.node.releaseDateDay = scope.node.releaseDate ? ucfirst(getLocalDate(scope.node.releaseDate, currentUser.locale, 'dddd')) : null; + scope.node.removeDateMonth = scope.node.removeDate ? ucfirst(getLocalDate(scope.node.removeDate, currentUser.locale, 'MMMM')) : null; + scope.node.removeDateDay = scope.node.removeDate ? ucfirst(getLocalDate(scope.node.removeDate, currentUser.locale, 'dddd')) : null; + }); + } onInit();