U4-10803: remove dependency on angular-moment

This commit is contained in:
Mads Rasmussen
2018-01-10 16:00:32 +01:00
parent 22ff1bcaa0
commit 0876004d9a
9 changed files with 68 additions and 44 deletions

View File

@@ -31,8 +31,7 @@
"moment": "~2.10.3",
"ace-builds": "^1.2.3",
"clipboard": "1.7.1",
"font-awesome": "~4.2",
"angular-moment": "^1.0.1"
"font-awesome": "~4.2"
},
"install": {
@@ -69,10 +68,6 @@
"bower_components/angular-local-storage/dist/angular-local-storage.min.js.map"
],
"angular-moment": [
"bower_components/angular-moment/angular-moment.min.js"
],
"tinymce": [
"bower_components/tinymce/tinymce.min.js"
],

View File

@@ -11,8 +11,7 @@ var app = angular.module('umbraco', [
'ngMobile',
'tmh.dynamicLocale',
'ngFileUpload',
'LocalStorageModule',
'angularMoment'
'LocalStorageModule'
]);
var packages = angular.module("umbraco.packages", []);

View File

@@ -84,6 +84,7 @@
}
function createButtons(content) {
$scope.page.buttonGroupState = "init";
var buttons = contentEditingHelper.configureContentEditorButtons({
create: $scope.page.isNew,
content: content,

View File

@@ -1,7 +1,7 @@
(function () {
'use strict';
function ContentNodeInfoDirective($timeout, $location, logResource, eventsService, userService, localizationService) {
function ContentNodeInfoDirective($timeout, $location, logResource, eventsService, userService, localizationService, dateHelper) {
function link(scope, element, attrs, ctrl) {
@@ -86,7 +86,7 @@
// get current backoffice user and format dates
userService.getCurrentUser().then(function (currentUser) {
angular.forEach(data.items, function(item) {
item.timestampFormatted = getLocalDate(item.timestamp, currentUser.locale, 'LLL');
item.timestampFormatted = dateHelper.getLocalDate(item.timestamp, currentUser.locale, 'LLL');
});
});
@@ -199,31 +199,24 @@
function ucfirst(string) {
return string.charAt(0).toUpperCase() + string.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;
scope.node.createDateFormatted = dateHelper.getLocalDate(scope.node.createDate, currentUser.locale, 'LLL');
scope.node.releaseDateYear = scope.node.releaseDate ? ucfirst(dateHelper.getLocalDate(scope.node.releaseDate, currentUser.locale, 'YYYY')) : null;
scope.node.releaseDateMonth = scope.node.releaseDate ? ucfirst(dateHelper.getLocalDate(scope.node.releaseDate, currentUser.locale, 'MMMM')) : null;
scope.node.releaseDateDayNumber = scope.node.releaseDate ? ucfirst(dateHelper.getLocalDate(scope.node.releaseDate, currentUser.locale, 'DD')) : null;
scope.node.releaseDateDay = scope.node.releaseDate ? ucfirst(dateHelper.getLocalDate(scope.node.releaseDate, currentUser.locale, 'dddd')) : null;
scope.node.releaseDateTime = scope.node.releaseDate ? ucfirst(dateHelper.getLocalDate(scope.node.releaseDate, currentUser.locale, 'HH:mm')) : null;
scope.node.removeDateYear = scope.node.removeDate ? ucfirst(dateHelper.getLocalDate(scope.node.removeDate, currentUser.locale, 'YYYY')) : null;
scope.node.removeDateMonth = scope.node.removeDate ? ucfirst(dateHelper.getLocalDate(scope.node.removeDate, currentUser.locale, 'MMMM')) : null;
scope.node.removeDateDayNumber = scope.node.removeDate ? ucfirst(dateHelper.getLocalDate(scope.node.removeDate, currentUser.locale, 'DD')) : null;
scope.node.removeDateDay = scope.node.removeDate ? ucfirst(dateHelper.getLocalDate(scope.node.removeDate, currentUser.locale, 'dddd')) : null;
scope.node.removeDateTime = scope.node.removeDate ? ucfirst(dateHelper.getLocalDate(scope.node.removeDate, currentUser.locale, 'HH:mm')) : null;
});
}

View File

@@ -1,20 +1,28 @@
(function () {
'use strict';
function MediaNodeInfoDirective($timeout, $location) {
function MediaNodeInfoDirective($timeout, $location, eventsService, userService, dateHelper) {
function link(scope, element, attrs, ctrl) {
var evts = [];
function onInit() {
scope.allowOpenMediaType = true;
// get document type details
scope.mediaType = scope.node.contentType;
// get node url
scope.nodeUrl = scope.node.mediaLink;
// make sure dates are formatted to the user's locale
formatDatesToLocal();
}
function formatDatesToLocal() {
// get current backoffice user and format dates
userService.getCurrentUser().then(function (currentUser) {
scope.node.createDateFormatted = dateHelper.getLocalDate(scope.node.createDate, currentUser.locale, 'LLL');
scope.node.updateDateFormatted = dateHelper.getLocalDate(scope.node.updateDate, currentUser.locale, 'LLL');
});
}
scope.openMediaType = function (mediaType) {
@@ -22,6 +30,20 @@
var url = "/settings/mediaTypes/edit/" + mediaType.id;
$location.path(url);
};
// watch for content updates - reload content when node is saved, published etc.
scope.$watch('node.updateDate', function(newValue, oldValue){
if(!newValue) { return; }
if(newValue === oldValue) { return; }
formatDatesToLocal();
});
//ensure to unregister from all events!
scope.$on('$destroy', function () {
for (var e in evts) {
eventsService.unsubscribe(evts[e]);
}
});
onInit();

View File

@@ -90,6 +90,21 @@ function dateHelper() {
//create a moment with the iso format which will include the offset with the correct time
// then convert it to local time
return moment.parseZone(isoFormat).local();
},
getLocalDate: function (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);
}
}
};
@@ -583,7 +598,7 @@ function queryStrings($window) {
var pl = /\+/g; // Regex for replacing addition symbol with a space
var search = /([^&=]+)=?([^&]*)/g;
var decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); };
var decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); };
return {

View File

@@ -109,9 +109,9 @@
</div>
<div class="date-container__date" ng-if="node.releaseDate">
<div class="date-wrapper__date">{{node.releaseDateMonth}} {{node.releaseDate | amDateFormat:'YYYY'}}</div>
<div class="date-wrapper__number">{{node.releaseDate | amDateFormat:'DD'}}</div>
<div class="date-wrapper__date">{{node.releaseDateDay}} {{node.releaseDate | amDateFormat:'HH:mm'}}</div>
<div class="date-wrapper__date">{{node.releaseDateMonth}} {{node.releaseDateYear}}</div>
<div class="date-wrapper__number">{{node.releaseDateDayNumber}}</div>
<div class="date-wrapper__date">{{node.releaseDateDay}} {{node.releaseDateTime}}</div>
</div>
<a href="" ng-if="!node.releaseDate" class="bold" style="color: #00aea2; text-decoration: underline;"><localize key="content_setDate">Set date</localize></a>
@@ -141,9 +141,9 @@
</div>
<div class="date-container__date" ng-if="node.removeDate">
<div class="date-wrapper__date">{{node.removeDateMonth}} {{node.removeDate | amDateFormat:'YYYY'}}</div>
<div class="date-wrapper__number">{{node.removeDate | amDateFormat:'DD'}}</div>
<div class="date-wrapper__date">{{node.removeDateDay}} {{node.removeDate | amDateFormat:'HH:mm'}}</div>
<div class="date-wrapper__date">{{node.removeDateMonth}} {{node.removeDateYear}}</div>
<div class="date-wrapper__number">{{node.removeDateDayNumber}}</div>
<div class="date-wrapper__date">{{node.removeDateDay}} {{node.removeDateTime}}</div>
</div>
<a href="" ng-if="!node.removeDate" class="bold" style="color: #00aea2; text-decoration: underline;"><localize key="content_setDate">Set date</localize></a>

View File

@@ -30,11 +30,11 @@
<umb-box-content class="block-form">
<umb-control-group data-element="node-info-create-date" label="@content_createDate">
{{node.createDate | amDateFormat:'MMMM Do YYYY, HH:mm'}} by {{ node.owner.name }}
{{node.createDateFormatted}} by {{ node.owner.name }}
</umb-control-group>
<umb-control-group data-element="node-info-update-date" label="@content_updateDate">
{{node.updateDate | amDateFormat:'MMMM Do YYYY, HH:mm'}}
{{node.updateDateFormatted}}
</umb-control-group>
<umb-control-group data-element="node-info-media-type" label="@content_mediatype">

View File

@@ -4,7 +4,6 @@
'lib/underscore/underscore-min.js',
'lib/moment/moment-with-locales.js',
'lib/angular-moment/angular-moment.min.js',
'lib/jquery-ui/jquery-ui.min.js',
'lib/jquery-ui-touch-punch/jquery.ui.touch-punch.js',