Merge pull request #213 from jaredevantabor/dates

Filter Tower dates using moment.js
This commit is contained in:
jaredevantabor 2015-05-18 15:11:30 -04:00
commit a1011106db
22 changed files with 38 additions and 28 deletions

View File

@ -23,7 +23,8 @@
"it": false,
"expect": false,
"context": false,
"describe": false
"describe": false,
"moment": false
},
"strict": false,
"quotmark": false,

View File

@ -179,7 +179,8 @@ var tower = angular.module('Tower', [
'CreateCustomInventoryHelper',
'CustomInventoryListDefinition',
'AdhocHelper',
'features'
'features',
'longDateFilter'
])
.constant('AngularScheduler.partials', urlPrefix + 'lib/angular-scheduler/lib/')

View File

@ -422,7 +422,7 @@ export function HomeGroups($log, $scope, $filter, $compile, $location, $routePar
html += "<td><a href=\"#/jobs/" + row.id + "\" " + "aw-tool-tip=\"" + row.status.charAt(0).toUpperCase() + row.status.slice(1) +
". Click for details\" aw-tip-placement=\"top\"><i class=\"fa icon-job-" +
row.status + "\"></i></a></td>\n";
html += "<td>" + ($filter('date')(row.finished,'MM/dd HH:mm:ss')).replace(/ /,'<br />') + "</td>";
html += "<td>" + ($filter('longDate')(row.finished)).replace(/ /,'<br />') + "</td>";
html += "<td><a href=\"#/jobs/" + row.id + "\" " + "aw-tool-tip=\"" + row.status.charAt(0).toUpperCase() + row.status.slice(1) +
". Click for details\" aw-tip-placement=\"top\">" + ellipsis(row.name) + "</a></td>";
html += "</tr>\n";
@ -457,7 +457,7 @@ export function HomeGroups($log, $scope, $filter, $compile, $location, $routePar
data.results.forEach( function(row) {
html += "<tr>";
html += "<td><a href=\"\" ng-click=\"viewJob('" + row.related.last_update + "')\" aw-tool-tip=\"" + row.status.charAt(0).toUpperCase() + row.status.slice(1) + ". Click for details\" aw-tip-placement=\"top\"><i class=\"fa icon-job-" + row.status + "\"></i></a></td>";
html += "<td>" + ($filter('date')(row.last_updated,'MM/dd HH:mm:ss')).replace(/ /,'<br />') + "</td>";
html += "<td>" + ($filter('longDate')(row.last_updated)).replace(/ /,'<br />') + "</td>";
html += "<td><a href=\"\" ng-click=\"viewJob('" + row.related.last_update + "')\">" + ellipsis(row.summary_fields.group.name) + "</a></td>";
html += "</tr>\n";
});

View File

@ -202,7 +202,7 @@ export function InventoriesList($scope, $rootScope, $location, $log,
html += "<tr>\n";
html += "<td><a href=\"#/jobs/" + row.id + "\" " + "aw-tool-tip=\"" + row.status.charAt(0).toUpperCase() + row.status.slice(1) +
". Click for details\" aw-tip-placement=\"top\"><i class=\"fa icon-job-" + row.status + "\"></i></a></td>\n";
html += "<td>" + ($filter('date')(row.finished,'MM/dd HH:mm:ss')).replace(/ /,'<br />') + "</td>";
html += "<td>" + ($filter('longDate')(row.finished)).replace(/ /,'<br />') + "</td>";
html += "<td><a href=\"#/jobs/" + row.id + "\" " + "aw-tool-tip=\"" + row.status.charAt(0).toUpperCase() + row.status.slice(1) +
". Click for details\" aw-tip-placement=\"top\">" + ellipsis(row.name) + "</a></td>";
html += "</tr>\n";
@ -238,7 +238,7 @@ export function InventoriesList($scope, $rootScope, $location, $log,
if (row.related.last_update) {
html += "<tr>";
html += "<td><a href=\"\" ng-click=\"viewJob('" + row.related.last_update + "')\" aw-tool-tip=\"" + row.status.charAt(0).toUpperCase() + row.status.slice(1) + ". Click for details\" aw-tip-placement=\"top\"><i class=\"fa icon-job-" + row.status + "\"></i></a></td>";
html += "<td>" + ($filter('date')(row.last_updated,'MM/dd HH:mm:ss')).replace(/ /,'<br />') + "</td>";
html += "<td>" + ($filter('longDate')(row.last_updated)).replace(/ /,'<br />') + "</td>";
html += "<td><a href=\"\" ng-click=\"viewJob('" + row.related.last_update + "')\">" + ellipsis(row.summary_fields.group.name) + "</a></td>";
html += "</tr>\n";
}

View File

@ -175,7 +175,7 @@ export function JobEventsList($sce, $filter, $scope, $rootScope, $location, $log
}
//cDate = new Date(set[i].created);
//set[i].created = FormatDate(cDate);
set[i].created = $filter('date')(set[i].created, 'MM/dd HH:mm:ss');
set[i].created = $filter('longDate')(set[i].created);
}
// Need below lookup to get inventory_id, which is not on event record. Plus, good idea to get status and name
@ -360,4 +360,4 @@ export function JobEventsEdit($scope, $rootScope, $compile, $location, $log, $ro
JobEventsEdit.$inject = ['$scope', '$rootScope', '$compile', '$location', '$log', '$routeParams', 'JobEventsForm', 'GenerateForm',
'Rest', 'Alert', 'ProcessErrors', 'LoadBreadCrumbs', 'ClearScope', 'GetBasePath', 'FormatDate', 'EventView', 'Wait'
];
];

View File

@ -1,7 +1,9 @@
import sanitizeFilter from 'tower/filters/sanitize/xss-sanitizer.filter';
import capitalizeFilter from 'tower/filters/capitalize.filter';
import sanitizeFilter from 'tower/shared/xss-sanitizer.filter';
import capitalizeFilter from 'tower/shared/capitalize.filter';
import longDateFilter from 'tower/shared/long-date.filter';
export {
sanitizeFilter,
capitalizeFilter
capitalizeFilter,
longDateFilter
};

View File

@ -38,13 +38,13 @@ export default
"started": {
label: "Started",
type: "date",
"filter": "date:'MM/dd/yy HH:mm:ss'",
"filter": "longDate",
readonly: true
},
"finished": {
label: "Finished",
type: "date",
"filter": "date:'MM/dd/yy HH:mm:ss'",
"filter": "longDate",
readonly: true
},
"elapsed": {

View File

@ -423,10 +423,10 @@ export default
else if (key === "start" || key === "end" || key === "created") {
if (!/Z$/.test(itm)) {
itm = itm.replace(/\ /,'T') + 'Z';
html += $filter('date')(itm, 'MM/dd/yy HH:mm:ss.sss');
html += $filter('longDate')(itm);
}
else {
html += $filter('date')(itm, 'MM/dd/yy HH:mm:ss');
html += $filter('longDate')(itm);
}
}
else if (key === "host_name" && event.host_id) {

View File

@ -121,7 +121,7 @@ angular.module('HostsHelper', [ 'RestServices', 'Utilities', listGenerator.name,
". Click for details\" data-placement=\"top\"><i class=\"fa icon-job-" +
job.status + "\"></i></a></td>\n";
html += "<td>" + ($filter('date')(job.finished,'MM/dd HH:mm:ss')).replace(/ /,'<br />') + "</td>\n";
html += "<td>" + ($filter('longDate')(job.finished)).replace(/ /,'<br />') + "</td>\n";
html += "<td class=\"break\"><a href=\"#/jobs/" + job.id + "\" " +
"aw-tool-tip=\"" + job.status.charAt(0).toUpperCase() + job.status.slice(1) +

View File

@ -52,7 +52,7 @@ export default
label: 'Finished',
noLink: true,
searchable: false,
filter: "date:'MM/dd HH:mm:ss'",
filter: "longDate",
columnClass: "col-lg-2 col-md-2 hidden-xs",
key: true,
desc: true

View File

@ -51,7 +51,7 @@ export default
label: 'Finished',
noLink: true,
searchable: false,
filter: "date:'MM/dd HH:mm:ss'",
filter: "longDate",
columnClass: "col-lg-2 col-md-2 hidden-xs",
key: true,
desc: true

View File

@ -57,7 +57,7 @@ export default
label: 'Started',
noLink: true,
searchable: false,
filter: "date:'MM/dd HH:mm:ss'",
filter: "longDate",
columnClass: "col-lg-2 col-md-2 hidden-xs"
},
type: {

View File

@ -58,7 +58,7 @@ export default
label: 'Started',
noLink: true,
searchable: false,
filter: "date:'MM/dd HH:mm:ss'",
filter: "longDate",
columnClass: "col-lg-3 col-md-3 hidden-xs"
},
name: {

View File

@ -45,7 +45,7 @@ export default
},
last_updated: {
label: 'Last Updated',
filter: "date:'MM/dd/yy HH:mm:ss'",
filter: "longDate",
columnClass: "col-lg-2 col-md-2 hidden-sm hidden-xs",
excludeModal: true,
searchable: false,

View File

@ -36,7 +36,7 @@ export default
noLink: true,
searchable: false,
columnClass: "col-lg-2 col-md-2 hidden-xs",
filter: "date:'MM/dd HH:mm:ss'",
filter: "longDate",
key: true
},
type: {

View File

@ -29,19 +29,19 @@ export default
},
dtstart: {
label: 'First Run',
filter: "date:'MM/dd/yy HH:mm:ss'",
filter: "longDate",
searchable: false,
columnClass: "col-md-2 col-sm-3 hidden-xs"
},
next_run: {
label: 'Next Run',
filter: "date:'MM/dd/yy HH:mm:ss'",
filter: "longDate",
searchable: false,
columnClass: "col-md-2 col-sm-3 col-xs-3"
},
dtend: {
label: 'Final Run',
filter: "date:'MM/dd/yy HH:mm:ss'",
filter: "longDate",
searchable: false,
columnClass: "col-md-2 col-sm-3 hidden-xs"
}

View File

@ -29,7 +29,7 @@ export default
desc: true,
noLink: true,
searchable: false,
filter: "date:'MM/dd/yy HH:mm:ss'"
filter: "longDate"
},
user: {
label: 'Initiated by',

View File

@ -572,7 +572,7 @@ angular.module('Utilities', ['RestServices', 'Utilities', 'sanitizeFilter'])
.factory('FormatDate', ['$filter',
function ($filter) {
return function (dt) {
return $filter('date')(dt, 'MM/dd/yy HH:mm:ss');
return $filter('longDate')(dt);
};
}
])

View File

@ -0,0 +1,6 @@
angular.module('longDateFilter', []).filter('longDate', function() {
return function(input) {
var date = moment(input).locale(navigator.language);
return date.format('l LTS');
};
});

View File

@ -300,7 +300,7 @@ angular.module('StreamWidget', ['RestServices', 'Utilities', 'StreamListDefiniti
scope = generator.inject(form, { mode: 'edit', modal: true, related: false });
scope.changes = activity.changes_stringified;
scope.user = ((activity.summary_fields.actor) ? activity.summary_fields.actor.username : 'system') +
' on ' + $filter('date')(activity.timestamp, "MM/dd/yy HH:mm:ss");
' on ' + $filter('longDate')(activity.timestamp);
scope.operation = activity.description_nolink;
scope.formModalAction = function () {