From fcd214ed60491f3b58741960e1c545c5d10cbf49 Mon Sep 17 00:00:00 2001 From: Victor Woeltjen Date: Wed, 3 Jun 2015 14:20:45 -0700 Subject: [PATCH] [Forms] Show initial value in datetime control Initialize value for datetime control based on available data, and keep up-to-date with changes from UI. Supports clocks/timers, which use datetime as an entry field, WTD-1221. --- .../src/controllers/DateTimeController.js | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/platform/forms/src/controllers/DateTimeController.js b/platform/forms/src/controllers/DateTimeController.js index 530c966380..c026e98935 100644 --- a/platform/forms/src/controllers/DateTimeController.js +++ b/platform/forms/src/controllers/DateTimeController.js @@ -68,13 +68,35 @@ define( } } + function updateDateTime(value) { + var m; + if (value !== undefined) { + m = moment.utc(value); + $scope.datetime = { + date: m.format(DATE_FORMAT), + hour: m.format("H"), + min: m.format("m"), + sec: m.format("s") + }; + } else { + $scope.datetime = {}; + } + } + + // ...and update form values when actual field in model changes + $scope.$watch("ngModel[field]", updateDateTime); + // Update value whenever any field changes. $scope.$watch("datetime.date", update); $scope.$watch("datetime.hour", update); $scope.$watch("datetime.min", update); $scope.$watch("datetime.sec", update); - $scope.datetime = {}; + // Initialize forms values + updateDateTime( + ($scope.ngModel && $scope.field) ? + $scope.ngModel[$scope.field] : undefined + ); } return DateTimeController;