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
22 changed files with 38 additions and 28 deletions

View File

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

View File

@@ -179,7 +179,8 @@ var tower = angular.module('Tower', [
'CreateCustomInventoryHelper', 'CreateCustomInventoryHelper',
'CustomInventoryListDefinition', 'CustomInventoryListDefinition',
'AdhocHelper', 'AdhocHelper',
'features' 'features',
'longDateFilter'
]) ])
.constant('AngularScheduler.partials', urlPrefix + 'lib/angular-scheduler/lib/') .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) + 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-" + ". Click for details\" aw-tip-placement=\"top\"><i class=\"fa icon-job-" +
row.status + "\"></i></a></td>\n"; 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) + 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>"; ". Click for details\" aw-tip-placement=\"top\">" + ellipsis(row.name) + "</a></td>";
html += "</tr>\n"; html += "</tr>\n";
@@ -457,7 +457,7 @@ export function HomeGroups($log, $scope, $filter, $compile, $location, $routePar
data.results.forEach( function(row) { data.results.forEach( function(row) {
html += "<tr>"; 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><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 += "<td><a href=\"\" ng-click=\"viewJob('" + row.related.last_update + "')\">" + ellipsis(row.summary_fields.group.name) + "</a></td>";
html += "</tr>\n"; html += "</tr>\n";
}); });

View File

@@ -202,7 +202,7 @@ export function InventoriesList($scope, $rootScope, $location, $log,
html += "<tr>\n"; html += "<tr>\n";
html += "<td><a href=\"#/jobs/" + row.id + "\" " + "aw-tool-tip=\"" + row.status.charAt(0).toUpperCase() + row.status.slice(1) + 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"; ". 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) + 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>"; ". Click for details\" aw-tip-placement=\"top\">" + ellipsis(row.name) + "</a></td>";
html += "</tr>\n"; html += "</tr>\n";
@@ -238,7 +238,7 @@ export function InventoriesList($scope, $rootScope, $location, $log,
if (row.related.last_update) { if (row.related.last_update) {
html += "<tr>"; 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><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 += "<td><a href=\"\" ng-click=\"viewJob('" + row.related.last_update + "')\">" + ellipsis(row.summary_fields.group.name) + "</a></td>";
html += "</tr>\n"; html += "</tr>\n";
} }

View File

@@ -175,7 +175,7 @@ export function JobEventsList($sce, $filter, $scope, $rootScope, $location, $log
} }
//cDate = new Date(set[i].created); //cDate = new Date(set[i].created);
//set[i].created = FormatDate(cDate); //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 // Need below lookup to get inventory_id, which is not on event record. Plus, good idea to get status and name

View File

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

View File

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

View File

@@ -423,10 +423,10 @@ export default
else if (key === "start" || key === "end" || key === "created") { else if (key === "start" || key === "end" || key === "created") {
if (!/Z$/.test(itm)) { if (!/Z$/.test(itm)) {
itm = itm.replace(/\ /,'T') + 'Z'; itm = itm.replace(/\ /,'T') + 'Z';
html += $filter('date')(itm, 'MM/dd/yy HH:mm:ss.sss'); html += $filter('longDate')(itm);
} }
else { else {
html += $filter('date')(itm, 'MM/dd/yy HH:mm:ss'); html += $filter('longDate')(itm);
} }
} }
else if (key === "host_name" && event.host_id) { 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-" + ". Click for details\" data-placement=\"top\"><i class=\"fa icon-job-" +
job.status + "\"></i></a></td>\n"; 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 + "\" " + html += "<td class=\"break\"><a href=\"#/jobs/" + job.id + "\" " +
"aw-tool-tip=\"" + job.status.charAt(0).toUpperCase() + job.status.slice(1) + "aw-tool-tip=\"" + job.status.charAt(0).toUpperCase() + job.status.slice(1) +

View File

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

View File

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

View File

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

View File

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

View File

@@ -45,7 +45,7 @@ export default
}, },
last_updated: { last_updated: {
label: '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", columnClass: "col-lg-2 col-md-2 hidden-sm hidden-xs",
excludeModal: true, excludeModal: true,
searchable: false, searchable: false,

View File

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

View File

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

View File

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

View File

@@ -572,7 +572,7 @@ angular.module('Utilities', ['RestServices', 'Utilities', 'sanitizeFilter'])
.factory('FormatDate', ['$filter', .factory('FormatDate', ['$filter',
function ($filter) { function ($filter) {
return function (dt) { 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 = generator.inject(form, { mode: 'edit', modal: true, related: false });
scope.changes = activity.changes_stringified; scope.changes = activity.changes_stringified;
scope.user = ((activity.summary_fields.actor) ? activity.summary_fields.actor.username : 'system') + 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.operation = activity.description_nolink;
scope.formModalAction = function () { scope.formModalAction = function () {