(function () { "use strict"; angular.module("EnrApp") .filter("lastUpdatedTimestamp", ['$filter', function ($filter) { return function (input) { // Early Out: No data has been bound yet. if (input === undefined || input === null) return input; // Validation: Input is not in the format date_time. var indexOfUnderscore = input.indexOf("_"); var invalidOverallInputFormat = indexOfUnderscore === -1 || indexOfUnderscore === 0 || indexOfUnderscore === input.length - 1; if (invalidOverallInputFormat) return "Invalid Timestamp Format"; // Get raw date/time var splitInput = input.split("_"); var datePart = splitInput[0]; var timePart = splitInput[1]; // Validation: Date and time are in correct format. if (datePart.length !== 8) datePart = "Invalid Date Format"; if (timePart.length !== 6) timePart = "Invalid Time Format"; // Create ISO 8601 (angular usable) date from the constiuent parts // insert dashes into date datePart = [datePart.slice(0, 6), "-", datePart.slice(6)].join(''); datePart = [datePart.slice(0, 4), "-", datePart.slice(4)].join(''); // Add colons to the time timePart = [timePart.slice(0, 4), ":", timePart.slice(4)].join(''); timePart = [timePart.slice(0, 2), ":", timePart.slice(2)].join(''); var datetime = datePart + "T" + timePart; // Create human readable datetime datetime = $filter("date")(datetime, 'medium'); return datetime; }; }]); }());