[Forms] Allow date-time controls to be optional

Don't force date-time inputs to act as if they are
required; allow them to be treated as optional, but
enforce that this only occurs when left completely
empty (as opposed to partially complete.)

Supports WTD-1221.
This commit is contained in:
Victor Woeltjen
2015-06-02 13:43:35 -07:00
parent ca4f37b259
commit 45568ecb21
2 changed files with 18 additions and 4 deletions

View File

@ -52,6 +52,20 @@ define(
if (fullDateTime.isValid()) {
$scope.ngModel[$scope.field] = fullDateTime.valueOf();
}
// If anything is complete, say so in scope; there are
// ng-required usages that will update off of this (to
// allow datetime to be optional while still permitting
// incomplete input)
$scope.partiallyComplete =
Object.keys($scope.datetime).some(function (key) {
return $scope.datetime[key];
});
// Treat empty input as an undefined value
if (!$scope.partiallyComplete) {
$scope.ngModel[$scope.field] = undefined;
}
}
// Update value whenever any field changes.