From 117470068a01951c90151a7c8fe8fe942d42c357 Mon Sep 17 00:00:00 2001 From: Victor Woeltjen Date: Thu, 22 Oct 2015 12:17:08 -0700 Subject: [PATCH] [Time Conductor] Use dateService from TimeRangeController --- platform/commonUI/general/bundle.json | 2 +- .../src/controllers/TimeRangeController.js | 17 +++++++++------ .../controllers/TimeRangeControllerSpec.js | 21 ++++++++++++++++++- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/platform/commonUI/general/bundle.json b/platform/commonUI/general/bundle.json index a69c810195..05c86cbcf7 100644 --- a/platform/commonUI/general/bundle.json +++ b/platform/commonUI/general/bundle.json @@ -66,7 +66,7 @@ { "key": "TimeRangeController", "implementation": "controllers/TimeRangeController.js", - "depends": [ "$scope", "now" ] + "depends": [ "$scope", "dateService", "now" ] }, { "key": "DateTimePickerController", diff --git a/platform/commonUI/general/src/controllers/TimeRangeController.js b/platform/commonUI/general/src/controllers/TimeRangeController.js index d4fb21be08..9ec95bac23 100644 --- a/platform/commonUI/general/src/controllers/TimeRangeController.js +++ b/platform/commonUI/general/src/controllers/TimeRangeController.js @@ -30,23 +30,28 @@ define( TICK_SPACING_PX = 150; /** + * Controller used by the `time-controller` template. * @memberof platform/commonUI/general * @constructor */ - function TimeConductorController($scope, now) { + function TimeRangeController($scope, dateService, now) { var tickCount = 2, innerMinimumSpan = 1000, // 1 second outerMinimumSpan = 1000 * 60 * 60, // 1 hour initialDragValue; + function timeSystemKey() { + return ($scope.parameters || {}).domain; + } + function formatTimestamp(ts) { - return moment.utc(ts).format(DATE_FORMAT); + return dateService.format(ts, timeSystemKey()); } function parseTimestamp(text) { - var m = moment.utc(text, DATE_FORMAT); - if (m.isValid()) { - return m.valueOf(); + var key = timeSystemKey(); + if (dateService.validate(text, key)) { + return dateService.parse(text, key); } else { throw new Error("Could not parse " + text); } @@ -297,6 +302,6 @@ define( $scope.$watch("boundsModel.end", updateEndFromText); } - return TimeConductorController; + return TimeRangeController; } ); diff --git a/platform/commonUI/general/test/controllers/TimeRangeControllerSpec.js b/platform/commonUI/general/test/controllers/TimeRangeControllerSpec.js index 91d3ecb9db..30cddab922 100644 --- a/platform/commonUI/general/test/controllers/TimeRangeControllerSpec.js +++ b/platform/commonUI/general/test/controllers/TimeRangeControllerSpec.js @@ -33,6 +33,7 @@ define( describe("The TimeRangeController", function () { var mockScope, + mockDateService, mockNow, controller; @@ -57,8 +58,26 @@ define( "$scope", [ "$apply", "$watch", "$watchCollection" ] ); + mockDateService = jasmine.createSpyObj( + "dateService", + [ "validate", "format", "parse" ] + ); + mockDateService.validate.andCallFake(function (text) { + return moment.utc(text).isValid(); + }); + mockDateService.parse.andCallFake(function (text) { + return moment.utc(text).valueOf(); + }); + mockDateService.format.andCallFake(function (value) { + return moment.utc(value).format("YYYY-MM-DD HH:mm:ss"); + }); mockNow = jasmine.createSpy('now'); - controller = new TimeRangeController(mockScope, mockNow); + + controller = new TimeRangeController( + mockScope, + mockDateService, + mockNow + ); }); it("watches the model that was passed in", function () {