webstaff: Show filtered list on user input
authorMike Rylander <mrylander@gmail.com>
Tue, 1 Sep 2015 17:03:13 +0000 (13:03 -0400)
committerJason Stephenson <jstephenson@mvlc.org>
Mon, 14 Sep 2015 19:44:17 +0000 (15:44 -0400)
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Open-ILS/web/js/ui/default/staff/services/ui.js

index aa5d0b7..0c240c2 100644 (file)
@@ -217,16 +217,26 @@ function($modal, $interpolate) {
         },
         template:
             '<div class="input-group">'+
-                '<input type="text" class="form-control" ng-model="selected">'+
-                '<div class="input-group-btn" dropdown>'+
+                '<input type="text" class="form-control" ng-model="selected" focus-me="always" ng-change="makeOpen()">'+
+                '<div class="input-group-btn" dropdown ng-class="{open:isopen}">'+
                     '<button type="button" class="btn btn-default dropdown-toggle"><span class="caret"></span></button>'+
                     '<ul class="dropdown-menu dropdown-menu-right">'+
-                        '<li ng-repeat="item in list"><a href ng-click="changeValue(item)">{{item}}</a></li>'+
+                        '<li ng-repeat="item in list|filter:selected"><a href ng-click="changeValue(item)">{{item}}</a></li>'+
                     '</ul>'+
                 '</div>'+
             '</div>',
-        controller: ['$scope',
-            function($scope) {
+        controller: ['$scope','$filter',
+            function( $scope , $filter) {
+
+                $scope.always = true;
+                $scope.isopen = false;
+
+                $scope.makeOpen = function () {
+                    return $scope.isopen = $filter('filter')(
+                        $scope.list,
+                        $scope.selected
+                    ).length > 0 && $scope.selected.length > 0;
+                }
 
                 $scope.changeValue = function (newVal) {
                     $scope.selected = newVal;