diff --git a/dashboard-ui/components/humanedate.js b/dashboard-ui/components/humanedate.js
index 67e77166e1..52699c3196 100644
--- a/dashboard-ui/components/humanedate.js
+++ b/dashboard-ui/components/humanedate.js
@@ -1,4 +1,4 @@
-define([], function () {
+define(['datetime'], function (datetime) {
/*
* Javascript Humane Dates
@@ -29,7 +29,7 @@
];
var dt = new Date;
- var date = parseISO8601Date(date_str, { toLocal: true });
+ var date = datetime.parseISO8601Date(date_str, true);
var seconds = ((dt - date) / 1000);
var token = ' ago';
diff --git a/dashboard-ui/components/metadataeditor/metadataeditor.js b/dashboard-ui/components/metadataeditor/metadataeditor.js
index d1a9ba344b..aa8cc9d6be 100644
--- a/dashboard-ui/components/metadataeditor/metadataeditor.js
+++ b/dashboard-ui/components/metadataeditor/metadataeditor.js
@@ -1,4 +1,4 @@
-define(['dialogHelper', 'jQuery', 'paper-checkbox', 'paper-input', 'paper-item-body', 'paper-icon-item', 'paper-textarea', 'paper-fab'], function (dialogHelper, $) {
+define(['dialogHelper', 'datetime', 'jQuery', 'paper-checkbox', 'paper-input', 'paper-item-body', 'paper-icon-item', 'paper-textarea', 'paper-fab'], function (dialogHelper, $, datetime) {
var currentContext;
var metadataEditorInfo;
@@ -96,7 +96,7 @@
if (currentItem[property]) {
- var date = parseISO8601Date(currentItem[property], { toLocal: true });
+ var date = datetime.parseISO8601Date(currentItem[property], true);
var parts = date.toISOString().split('T');
@@ -278,7 +278,7 @@
ReplaceAllMetadata: true
});
- require(['toast'], function(toast) {
+ require(['toast'], function (toast) {
toast(Globalize.translate('MessageRefreshQueued'));
});
}
@@ -873,7 +873,7 @@
if (item.DateCreated) {
try {
- date = parseISO8601Date(item.DateCreated, { toLocal: true });
+ date = datetime.parseISO8601Date(item.DateCreated, true);
$('#txtDateAdded', context).val(date.toISOString().slice(0, 10));
} catch (e) {
@@ -885,7 +885,7 @@
if (item.PremiereDate) {
try {
- date = parseISO8601Date(item.PremiereDate, { toLocal: true });
+ date = datetime.parseISO8601Date(item.PremiereDate, true);
$('#txtPremiereDate', context).val(date.toISOString().slice(0, 10));
} catch (e) {
@@ -897,7 +897,7 @@
if (item.EndDate) {
try {
- date = parseISO8601Date(item.EndDate, { toLocal: true });
+ date = datetime.parseISO8601Date(item.EndDate, true);
$('#txtEndDate', context).val(date.toISOString().slice(0, 10));
} catch (e) {
diff --git a/dashboard-ui/scripts/autoorganizelog.js b/dashboard-ui/scripts/autoorganizelog.js
index 4b076460e8..82ff9990d0 100644
--- a/dashboard-ui/scripts/autoorganizelog.js
+++ b/dashboard-ui/scripts/autoorganizelog.js
@@ -1,4 +1,4 @@
-define(['jQuery'], function ($) {
+define(['jQuery', 'datetime'], function ($, datetime) {
var query = {
@@ -160,7 +160,7 @@
html += '
';
- var date = parseISO8601Date(item.Date, { toLocal: true });
+ var date = datetime.parseISO8601Date(item.Date, true);
html += date.toLocaleDateString();
html += ' | ';
diff --git a/dashboard-ui/scripts/editorsidebar.js b/dashboard-ui/scripts/editorsidebar.js
index 239f25965c..180cce89bd 100644
--- a/dashboard-ui/scripts/editorsidebar.js
+++ b/dashboard-ui/scripts/editorsidebar.js
@@ -1,4 +1,4 @@
-define(['jQuery'], function ($) {
+define(['datetime', 'jQuery'], function (datetime, $) {
function getNode(item, folderState, selected) {
@@ -84,7 +84,7 @@
if (item.Type == "Episode" && item.LocationType == "Virtual") {
try {
- if (item.PremiereDate && (new Date().getTime() >= parseISO8601Date(item.PremiereDate, { toLocal: true }).getTime())) {
+ if (item.PremiereDate && (new Date().getTime() >= datetime.parseISO8601Date(item.PremiereDate, true).getTime())) {
htmlName += '
';
}
} catch (err) {
@@ -446,7 +446,7 @@
}
window.MetadataEditor = {
- getItemPromise: function() {
+ getItemPromise: function () {
var currentItemId = getCurrentItemId();
if (currentItemId) {
diff --git a/dashboard-ui/scripts/extensions.js b/dashboard-ui/scripts/extensions.js
index 7334b17792..7e906acec9 100644
--- a/dashboard-ui/scripts/extensions.js
+++ b/dashboard-ui/scripts/extensions.js
@@ -39,63 +39,4 @@ function replaceQueryString(url, param, value) {
}
return url;
-}
-
-function parseISO8601Date(s, options) {
-
- options = options || {};
-
- // parenthese matches:
- // year month day hours minutes seconds
- // dotmilliseconds
- // tzstring plusminus hours minutes
- var re = /(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?(Z|([+-])(\d{2}):(\d{2}))?/;
-
- var d = s.match(re);
-
- // "2010-12-07T11:00:00.000-09:00" parses to:
- // ["2010-12-07T11:00:00.000-09:00", "2010", "12", "07", "11",
- // "00", "00", ".000", "-09:00", "-", "09", "00"]
- // "2010-12-07T11:00:00.000Z" parses to:
- // ["2010-12-07T11:00:00.000Z", "2010", "12", "07", "11",
- // "00", "00", ".000", "Z", undefined, undefined, undefined]
-
- if (!d) {
-
- throw "Couldn't parse ISO 8601 date string '" + s + "'";
- }
-
- // parse strings, leading zeros into proper ints
- var a = [1, 2, 3, 4, 5, 6, 10, 11];
- for (var i in a) {
- d[a[i]] = parseInt(d[a[i]], 10);
- }
- d[7] = parseFloat(d[7]);
-
- // Date.UTC(year, month[, date[, hrs[, min[, sec[, ms]]]]])
- // note that month is 0-11, not 1-12
- // see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/UTC
- var ms = Date.UTC(d[1], d[2] - 1, d[3], d[4], d[5], d[6]);
-
- // if there are milliseconds, add them
- if (d[7] > 0) {
- ms += Math.round(d[7] * 1000);
- }
-
- // if there's a timezone, calculate it
- if (d[8] != "Z" && d[10]) {
- var offset = d[10] * 60 * 60 * 1000;
- if (d[11]) {
- offset += d[11] * 60 * 1000;
- }
- if (d[9] == "-") {
- ms -= offset;
- } else {
- ms += offset;
- }
- } else if (!options.toLocal) {
- ms += new Date().getTimezoneOffset() * 60000;
- }
-
- return new Date(ms);
}
\ No newline at end of file
diff --git a/dashboard-ui/scripts/homeupcoming.js b/dashboard-ui/scripts/homeupcoming.js
index b80f4b8f98..9dd12ac305 100644
--- a/dashboard-ui/scripts/homeupcoming.js
+++ b/dashboard-ui/scripts/homeupcoming.js
@@ -1,4 +1,4 @@
-define(['jQuery', 'scrollStyles'], function ($) {
+define(['datetime', 'scrollStyles'], function (datetime) {
function loadUpcoming(page) {
Dashboard.showLoadingMsg();
@@ -59,7 +59,7 @@
if (item.PremiereDate) {
try {
- var premiereDate = parseISO8601Date(item.PremiereDate, { toLocal: true });
+ var premiereDate = datetime.parseISO8601Date(item.PremiereDate, true);
if (premiereDate.getDate() == new Date().getDate() - 1) {
dateText = Globalize.translate('Yesterday');
diff --git a/dashboard-ui/scripts/itemdetailpage.js b/dashboard-ui/scripts/itemdetailpage.js
index 67515e9192..437886ead6 100644
--- a/dashboard-ui/scripts/itemdetailpage.js
+++ b/dashboard-ui/scripts/itemdetailpage.js
@@ -93,7 +93,7 @@
var now = new Date();
- if (now >= parseISO8601Date(item.StartDate, { toLocal: true }) && now < parseISO8601Date(item.EndDate, { toLocal: true })) {
+ if (now >= datetime.parseISO8601Date(item.StartDate, true) && now < datetime.parseISO8601Date(item.EndDate, true)) {
$('.btnPlay', page).removeClass('hide');
canPlay = true;
} else {
@@ -176,7 +176,7 @@
if (item.Type == "Person" && item.PremiereDate) {
try {
- var birthday = parseISO8601Date(item.PremiereDate, { toLocal: true }).toDateString();
+ var birthday = datetime.parseISO8601Date(item.PremiereDate, true).toDateString();
$('#itemBirthday', page).show().html(Globalize.translate('BirthDateValue').replace('{0}', birthday));
}
@@ -190,7 +190,7 @@
if (item.Type == "Person" && item.EndDate) {
try {
- var deathday = parseISO8601Date(item.EndDate, { toLocal: true }).toDateString();
+ var deathday = datetime.parseISO8601Date(item.EndDate, true).toDateString();
$('#itemDeathDate', page).show().html(Globalize.translate('DeathDateValue').replace('{0}', deathday));
}
@@ -222,7 +222,7 @@
if (item.LocationType == "Virtual" && item.Type == "Episode") {
try {
- if (item.PremiereDate && (new Date().getTime() >= parseISO8601Date(item.PremiereDate, { toLocal: true }).getTime())) {
+ if (item.PremiereDate && (new Date().getTime() >= datetime.parseISO8601Date(item.PremiereDate, true).getTime())) {
isMissingEpisode = true;
}
} catch (err) {
@@ -1221,7 +1221,7 @@
try {
- var date = parseISO8601Date(review.Date, { toLocal: true }).toLocaleDateString();
+ var date = datetime.parseISO8601Date(review.Date, true).toLocaleDateString();
html += '' + date + '';
}
diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js
index a27edbf702..ff9701e48d 100644
--- a/dashboard-ui/scripts/librarybrowser.js
+++ b/dashboard-ui/scripts/librarybrowser.js
@@ -1916,7 +1916,7 @@
if (item.StartDate) {
try {
- dateText = LibraryBrowser.getFutureDateText(parseISO8601Date(item.StartDate, { toLocal: true }), true);
+ dateText = LibraryBrowser.getFutureDateText(datetime.parseISO8601Date(item.StartDate, true), true);
} catch (err) {
}
@@ -2426,7 +2426,7 @@
if (options.showProgramAirInfo) {
- var date = parseISO8601Date(item.StartDate, { toLocal: true });
+ var date = datetime.parseISO8601Date(item.StartDate, true);
var text = item.StartDate ?
date.toLocaleString() :
@@ -2614,7 +2614,7 @@
if (item.Type == 'Episode') {
try {
- var date = parseISO8601Date(item.PremiereDate, { toLocal: true });
+ var date = datetime.parseISO8601Date(item.PremiereDate, true);
if (item.PremiereDate && (new Date().getTime() < date.getTime())) {
return '' + Globalize.translate('HeaderUnaired') + '
';
@@ -3442,7 +3442,7 @@
if (item.PremiereDate) {
try {
- date = parseISO8601Date(item.PremiereDate, { toLocal: true });
+ date = datetime.parseISO8601Date(item.PremiereDate, true);
text = date.toLocaleDateString();
miscInfo.push(text);
@@ -3456,7 +3456,7 @@
if (item.StartDate) {
try {
- date = parseISO8601Date(item.StartDate, { toLocal: true });
+ date = datetime.parseISO8601Date(item.StartDate, true);
text = date.toLocaleDateString();
miscInfo.push(text);
@@ -3485,10 +3485,10 @@
try {
- var endYear = parseISO8601Date(item.EndDate, { toLocal: true }).getFullYear();
+ var endYear = datetime.parseISO8601Date(item.EndDate, true).getFullYear();
if (endYear != item.ProductionYear) {
- text += "-" + parseISO8601Date(item.EndDate, { toLocal: true }).getFullYear();
+ text += "-" + datetime.parseISO8601Date(item.EndDate, true).getFullYear();
}
}
@@ -3510,7 +3510,7 @@
else if (item.PremiereDate) {
try {
- text = parseISO8601Date(item.PremiereDate, { toLocal: true }).getFullYear();
+ text = datetime.parseISO8601Date(item.PremiereDate, true).getFullYear();
miscInfo.push(text);
}
catch (e) {
@@ -3678,7 +3678,7 @@
if (item.PremiereDate) {
try {
- var date = parseISO8601Date(item.PremiereDate, { toLocal: true });
+ var date = datetime.parseISO8601Date(item.PremiereDate, true);
var translationKey = new Date().getTime() > date.getTime() ? "ValuePremiered" : "ValuePremieres";
diff --git a/dashboard-ui/scripts/livetvchannel.js b/dashboard-ui/scripts/livetvchannel.js
index 1e6800b1b5..c957798fbb 100644
--- a/dashboard-ui/scripts/livetvchannel.js
+++ b/dashboard-ui/scripts/livetvchannel.js
@@ -1,4 +1,4 @@
-define(['datetime'], function (datetime) {
+define(['datetime', 'tvguide'], function (datetime) {
function renderPrograms(page, result) {
@@ -12,10 +12,10 @@
var program = result.Items[i];
- var startDate = parseISO8601Date(program.StartDate, { toLocal: true });
+ var startDate = datetime.parseISO8601Date(program.StartDate, true);
var startDateText = LibraryBrowser.getFutureDateText(startDate);
- var endDate = parseISO8601Date(program.EndDate, { toLocal: true });
+ var endDate = datetime.parseISO8601Date(program.EndDate, true);
if (startDateText != currentIndexValue) {
diff --git a/dashboard-ui/scripts/livetvcomponents.js b/dashboard-ui/scripts/livetvcomponents.js
index 51a39a9752..7224c3f01d 100644
--- a/dashboard-ui/scripts/livetvcomponents.js
+++ b/dashboard-ui/scripts/livetvcomponents.js
@@ -13,7 +13,7 @@
var timer = timers[i];
- var startDateText = LibraryBrowser.getFutureDateText(parseISO8601Date(timer.StartDate, { toLocal: true }));
+ var startDateText = LibraryBrowser.getFutureDateText(datetime.parseISO8601Date(timer.StartDate, true));
if (startDateText != index) {
@@ -130,7 +130,7 @@
if (airDate && item.IsRepeat) {
try {
- airDate = parseISO8601Date(airDate, { toLocal: true }).toLocaleDateString();
+ airDate = datetime.parseISO8601Date(airDate, true).toLocaleDateString();
}
catch (e) {
console.log("Error parsing date: " + airDate);
diff --git a/dashboard-ui/scripts/logpage.js b/dashboard-ui/scripts/logpage.js
index 2e71e14aea..014b2eb6a6 100644
--- a/dashboard-ui/scripts/logpage.js
+++ b/dashboard-ui/scripts/logpage.js
@@ -61,7 +61,7 @@
logHtml += "" + log.Name + "
";
- var date = parseISO8601Date(log.DateModified, { toLocal: true });
+ var date = datetime.parseISO8601Date(log.DateModified, true);
var text = date.toLocaleDateString();
diff --git a/dashboard-ui/scripts/serversecurity.js b/dashboard-ui/scripts/serversecurity.js
index 3b39c2b59b..0cf184ecc5 100644
--- a/dashboard-ui/scripts/serversecurity.js
+++ b/dashboard-ui/scripts/serversecurity.js
@@ -59,7 +59,7 @@
html += '';
- var date = parseISO8601Date(item.DateCreated, { toLocal: true });
+ var date = datetime.parseISO8601Date(item.DateCreated, true);
html += datetime.toLocaleDateString(date) + ' ' + datetime.getDisplayTime(date);
diff --git a/dashboard-ui/scripts/syncjob.js b/dashboard-ui/scripts/syncjob.js
index 5f10d02ac7..27deace63c 100644
--- a/dashboard-ui/scripts/syncjob.js
+++ b/dashboard-ui/scripts/syncjob.js
@@ -1,11 +1,11 @@
-define(['jQuery', 'paper-progress', 'paper-fab', 'paper-item-body', 'paper-icon-item', 'paper-icon-button', 'paper-button'], function ($) {
+define(['jQuery', 'datetime', 'paper-progress', 'paper-fab', 'paper-item-body', 'paper-icon-item', 'paper-icon-button', 'paper-button'], function ($, datetime) {
function renderJob(page, job, dialogOptions) {
var html = '';
html += ' ';
- html += Globalize.translate('ValueDateCreated', parseISO8601Date(job.DateCreated, { toLocal: true }).toLocaleString());
+ html += Globalize.translate('ValueDateCreated', datetime.parseISO8601Date(job.DateCreated, true).toLocaleString());
html += ' ';
html += ' ';
html += '';
diff --git a/dashboard-ui/scripts/tvupcoming.js b/dashboard-ui/scripts/tvupcoming.js
index 34dc8ea08c..c6ce40c3dd 100644
--- a/dashboard-ui/scripts/tvupcoming.js
+++ b/dashboard-ui/scripts/tvupcoming.js
@@ -1,4 +1,4 @@
-define(['scrollStyles'], function () {
+define(['datetime', 'scrollStyles'], function (datetime) {
function loadUpcoming(context, params) {
@@ -62,7 +62,7 @@
if (item.PremiereDate) {
try {
- var premiereDate = parseISO8601Date(item.PremiereDate, { toLocal: true });
+ var premiereDate = datetime.parseISO8601Date(item.PremiereDate, true);
if (premiereDate.getDate() == new Date().getDate() - 1) {
dateText = Globalize.translate('Yesterday');
|