From f6f92f11e76e0e340f8ec9cb72e3194ebab771ef Mon Sep 17 00:00:00 2001 From: riipah Date: Sun, 3 Jun 2018 15:10:21 +0300 Subject: [PATCH] fix resetting date --- VocaDbWeb/Scripts/Helpers/DateTimeHelper.ts | 8 +++++-- .../BindingHandlers/DatePicker.ts | 6 ++--- .../Tests/Helpers/DateTimeHelperTests.ts | 22 ++++++++++++++++--- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/VocaDbWeb/Scripts/Helpers/DateTimeHelper.ts b/VocaDbWeb/Scripts/Helpers/DateTimeHelper.ts index e91605f2d4..bce3c4fc7b 100644 --- a/VocaDbWeb/Scripts/Helpers/DateTimeHelper.ts +++ b/VocaDbWeb/Scripts/Helpers/DateTimeHelper.ts @@ -1,4 +1,4 @@ - + module vdb.helpers { export class DateTimeHelper { @@ -7,13 +7,17 @@ module vdb.helpers { return (val < 10 ? "0" + val : val); } - public static converToLocal(utcDate: Date) { + public static convertToLocal(utcDate: Date) { + if (utcDate == null) + return null; const momentDate = moment.utc(utcDate); return new Date(momentDate.year(), momentDate.month(), momentDate.date()); //return new Date(utcDate.getFullYear(), utcDate.getMonth(), utcDate.getDate()); } public static convertToUtc(localDate: Date) { + if (localDate == null) + return null; return moment.utc([localDate.getFullYear(), localDate.getMonth(), localDate.getDate()]).toDate(); } diff --git a/VocaDbWeb/Scripts/KnockoutExtensions/BindingHandlers/DatePicker.ts b/VocaDbWeb/Scripts/KnockoutExtensions/BindingHandlers/DatePicker.ts index 023edf65d6..5ecbd82336 100644 --- a/VocaDbWeb/Scripts/KnockoutExtensions/BindingHandlers/DatePicker.ts +++ b/VocaDbWeb/Scripts/KnockoutExtensions/BindingHandlers/DatePicker.ts @@ -1,4 +1,4 @@ - + interface KnockoutBindingHandlers { datepicker: KnockoutBindingHandler; } @@ -19,13 +19,13 @@ ko.bindingHandlers.datepicker = { $(element).datepicker({ dateFormat: options.dateFormat }); if (value) { - $(element).datepicker('setDate', vdb.helpers.DateTimeHelper.converToLocal(value)); + $(element).datepicker('setDate', vdb.helpers.DateTimeHelper.convertToLocal(value)); } if (ko.isObservable(options.value)) { var subscription = options.value.subscribe((newValue: Date) => { // datepicker displays time in local time, so we convert it back to local - $(element).datepicker('setDate', vdb.helpers.DateTimeHelper.converToLocal(newValue)); + $(element).datepicker('setDate', vdb.helpers.DateTimeHelper.convertToLocal(newValue)); }); ko.utils.domNodeDisposal.addDisposeCallback(element, () => { diff --git a/VocaDbWeb/Scripts/Tests/Helpers/DateTimeHelperTests.ts b/VocaDbWeb/Scripts/Tests/Helpers/DateTimeHelperTests.ts index c8101d7b96..926e5a65dd 100644 --- a/VocaDbWeb/Scripts/Tests/Helpers/DateTimeHelperTests.ts +++ b/VocaDbWeb/Scripts/Tests/Helpers/DateTimeHelperTests.ts @@ -1,19 +1,27 @@ - + module vdb.tests.helpers { QUnit.module("DateTimeHelper"); - QUnit.test("converToLocal", () => { + QUnit.test("convertToLocal", () => { var date = new Date(2016, 9, 3); date.setMinutes(date.getMinutes() - date.getTimezoneOffset()); - var result = vdb.helpers.DateTimeHelper.converToLocal(date); + var result = vdb.helpers.DateTimeHelper.convertToLocal(date); var expected = new Date(2016, 9, 3); QUnit.equal(result.toString(), expected.toString()); }); + QUnit.test("convertToLocal null", () => { + + var result = vdb.helpers.DateTimeHelper.convertToLocal(null); + + QUnit.equal(result, null, "result"); + + }); + QUnit.test("convertToUtc", () => { var date = new Date(2016, 9, 3); @@ -24,4 +32,12 @@ module vdb.tests.helpers { }); + QUnit.test("convertToUtc null", () => { + + var result = vdb.helpers.DateTimeHelper.convertToUtc(null); + + QUnit.equal(result, null, "result"); + + }); + } \ No newline at end of file