Browse Source

feat(templating): new template variable selection dropdown now supports accepting custom values that are not an actual selectable value, Fixes #2344

Torkel Ödegaard 10 years ago
parent
commit
494810393a
1 changed files with 12 additions and 4 deletions
  1. 12 4
      public/app/directives/valueSelectDropdown.js

+ 12 - 4
public/app/directives/valueSelectDropdown.js

@@ -107,10 +107,14 @@ function (angular, app, _) {
           vm.moveHighlight(-1);
         }
         if (evt.keyCode === 13) {
-          vm.optionSelected(vm.search.options[vm.highlightIndex], {}, true, false);
+          if (vm.search.options.length === 0) {
+            vm.commitChanges();
+          } else {
+            vm.selectValue(vm.search.options[vm.highlightIndex], {}, true, false);
+          }
         }
         if (evt.keyCode === 32) {
-          vm.optionSelected(vm.search.options[vm.highlightIndex], {}, false, false);
+          vm.selectValue(vm.search.options[vm.highlightIndex], {}, false, false);
         }
       };
 
@@ -189,8 +193,12 @@ function (angular, app, _) {
       };
 
       vm.commitChanges = function() {
-        // make sure one option is selected
-        if (vm.selectedValues.length === 0) {
+        // if we have a search query and no options use that
+        if (vm.search.options.length === 0 && vm.search.query.length > 0) {
+          vm.variable.current = {text: vm.search.query, value: vm.search.query};
+        }
+        else if (vm.selectedValues.length === 0) {
+          // make sure one option is selected
           vm.options[0].selected = true;
           vm.selectionsChanged(false);
         }