From 307320b3ffd47c2bf5f5741f61cd56c5f9204d13 Mon Sep 17 00:00:00 2001 From: Dhrubomoy Das Gupta Date: Wed, 21 Jun 2017 22:35:32 -0400 Subject: [PATCH] [Autocomplete] Show warning icon if invalid option was typed --- platform/commonUI/general/res/sass/controls/_controls.scss | 7 +++++++ platform/forms/res/templates/controls/autocomplete.html | 4 ++++ platform/forms/src/controllers/AutocompleteController.js | 1 + .../forms/test/controllers/AutocompleteControllerSpec.js | 5 +++++ 4 files changed, 17 insertions(+) diff --git a/platform/commonUI/general/res/sass/controls/_controls.scss b/platform/commonUI/general/res/sass/controls/_controls.scss index b54201e16c..dd2cca893d 100644 --- a/platform/commonUI/general/res/sass/controls/_controls.scss +++ b/platform/commonUI/general/res/sass/controls/_controls.scss @@ -329,6 +329,13 @@ textarea.lg { position: relative; height: 300px; } color: $colorInspectorSectionHeaderFg; } } + .autocompleteWarning { + color: $colorFormInvalid; + position: absolute; + font-size: 11px; + left: 235px; + bottom: 7px; + } } /******************************************************** OBJECT-HEADER */ diff --git a/platform/forms/res/templates/controls/autocomplete.html b/platform/forms/res/templates/controls/autocomplete.html index 9649088848..3f022af148 100644 --- a/platform/forms/res/templates/controls/autocomplete.html +++ b/platform/forms/res/templates/controls/autocomplete.html @@ -26,6 +26,7 @@ type="text" ng-model="ngModel[field]" ng-change="filterOptions(ngModel[field])" + ng-init="filterOptions(ngModel[field])" ng-click="inputClicked()" ng-keydown="keyDown($event)"/> + + \ No newline at end of file diff --git a/platform/forms/src/controllers/AutocompleteController.js b/platform/forms/src/controllers/AutocompleteController.js index 46423ba728..1d13ca1337 100644 --- a/platform/forms/src/controllers/AutocompleteController.js +++ b/platform/forms/src/controllers/AutocompleteController.js @@ -111,6 +111,7 @@ define( name: option }; }); + $scope.invalidOption = $scope.filteredOptions.length === 0; }; $scope.inputClicked = function () { diff --git a/platform/forms/test/controllers/AutocompleteControllerSpec.js b/platform/forms/test/controllers/AutocompleteControllerSpec.js index 4edff63083..f284157d70 100644 --- a/platform/forms/test/controllers/AutocompleteControllerSpec.js +++ b/platform/forms/test/controllers/AutocompleteControllerSpec.js @@ -53,6 +53,11 @@ define([ expect(mockScope.filteredOptions).toEqual(filteredOptions); }); + it("checks if invalid option was typed", function () { + mockScope.filterOptions('openmct'); + expect(mockScope.invalidOption).toEqual(true); + }); + it("fills input with given string", function () { var str = "UTC"; mockScope.fillInput(str);