Przeglądaj źródła

Visibility of the search can be controlled

Kevin Brown 10 lat temu
rodzic
commit
5cf0dbf114

+ 27 - 5
dist/js/select2.amd.full.js

@@ -253,15 +253,15 @@ define('select2/results',[
   Results.prototype.bind = function (container, $container) {
     var self = this;
 
-    this.on('results:all', function (data) {
+    container.on('results:all', function (params) {
       self.clear();
-      self.append(data);
+      self.append(params.data);
 
       self.setClasses();
     });
 
-    this.on('results:append', function (data) {
-      self.append(data);
+    container.on('results:append', function (params) {
+      self.append(params.data);
 
       self.setClasses();
     });
@@ -796,6 +796,7 @@ define('select2/dropdown/search',[
       '</span>'
     );
 
+    this.$searchContainer = $search;
     this.$search = $search.find('input');
 
     $rendered.prepend($search);
@@ -804,6 +805,8 @@ define('select2/dropdown/search',[
   };
 
   Search.prototype.bind = function (decorated, container, $container) {
+    var self = this;
+
     decorated.call(this, container, $container);
 
     this.$search.on('keyup', function () {
@@ -811,6 +814,22 @@ define('select2/dropdown/search',[
         term: $(this).val()
       });
     });
+
+    container.on('results:all', function (params) {
+      if (params.query.term == null || params.query.term === '') {
+        var showSearch = self.showSearch(params);
+
+        if (showSearch) {
+          self.$searchContainer.show();
+        } else {
+          self.$searchContainer.hide();
+        }
+      }
+    });
+  };
+
+  Search.prototype.showSearch = function (params) {
+    return true;
   };
 
   return Search;
@@ -1006,7 +1025,10 @@ define('select2/core',[
 
     this.on('query', function (params) {
       this.data.query(params, function (data) {
-        self.results.trigger('results:all', data);
+        self.trigger('results:all', {
+          data: data,
+          query: params
+        });
       });
     });
 

+ 27 - 5
dist/js/select2.amd.js

@@ -253,15 +253,15 @@ define('select2/results',[
   Results.prototype.bind = function (container, $container) {
     var self = this;
 
-    this.on('results:all', function (data) {
+    container.on('results:all', function (params) {
       self.clear();
-      self.append(data);
+      self.append(params.data);
 
       self.setClasses();
     });
 
-    this.on('results:append', function (data) {
-      self.append(data);
+    container.on('results:append', function (params) {
+      self.append(params.data);
 
       self.setClasses();
     });
@@ -796,6 +796,7 @@ define('select2/dropdown/search',[
       '</span>'
     );
 
+    this.$searchContainer = $search;
     this.$search = $search.find('input');
 
     $rendered.prepend($search);
@@ -804,6 +805,8 @@ define('select2/dropdown/search',[
   };
 
   Search.prototype.bind = function (decorated, container, $container) {
+    var self = this;
+
     decorated.call(this, container, $container);
 
     this.$search.on('keyup', function () {
@@ -811,6 +814,22 @@ define('select2/dropdown/search',[
         term: $(this).val()
       });
     });
+
+    container.on('results:all', function (params) {
+      if (params.query.term == null || params.query.term === '') {
+        var showSearch = self.showSearch(params);
+
+        if (showSearch) {
+          self.$searchContainer.show();
+        } else {
+          self.$searchContainer.hide();
+        }
+      }
+    });
+  };
+
+  Search.prototype.showSearch = function (params) {
+    return true;
   };
 
   return Search;
@@ -1006,7 +1025,10 @@ define('select2/core',[
 
     this.on('query', function (params) {
       this.data.query(params, function (data) {
-        self.results.trigger('results:all', data);
+        self.trigger('results:all', {
+          data: data,
+          query: params
+        });
       });
     });
 

+ 27 - 5
dist/js/select2.full.js

@@ -9791,15 +9791,15 @@ define('select2/results',[
   Results.prototype.bind = function (container, $container) {
     var self = this;
 
-    this.on('results:all', function (data) {
+    container.on('results:all', function (params) {
       self.clear();
-      self.append(data);
+      self.append(params.data);
 
       self.setClasses();
     });
 
-    this.on('results:append', function (data) {
-      self.append(data);
+    container.on('results:append', function (params) {
+      self.append(params.data);
 
       self.setClasses();
     });
@@ -10334,6 +10334,7 @@ define('select2/dropdown/search',[
       '</span>'
     );
 
+    this.$searchContainer = $search;
     this.$search = $search.find('input');
 
     $rendered.prepend($search);
@@ -10342,6 +10343,8 @@ define('select2/dropdown/search',[
   };
 
   Search.prototype.bind = function (decorated, container, $container) {
+    var self = this;
+
     decorated.call(this, container, $container);
 
     this.$search.on('keyup', function () {
@@ -10349,6 +10352,22 @@ define('select2/dropdown/search',[
         term: $(this).val()
       });
     });
+
+    container.on('results:all', function (params) {
+      if (params.query.term == null || params.query.term === '') {
+        var showSearch = self.showSearch(params);
+
+        if (showSearch) {
+          self.$searchContainer.show();
+        } else {
+          self.$searchContainer.hide();
+        }
+      }
+    });
+  };
+
+  Search.prototype.showSearch = function (params) {
+    return true;
   };
 
   return Search;
@@ -10544,7 +10563,10 @@ define('select2/core',[
 
     this.on('query', function (params) {
       this.data.query(params, function (data) {
-        self.results.trigger('results:all', data);
+        self.trigger('results:all', {
+          data: data,
+          query: params
+        });
       });
     });
 

Plik diff jest za duży
+ 0 - 0
dist/js/select2.full.min.js


+ 27 - 5
dist/js/select2.js

@@ -682,15 +682,15 @@ define('select2/results',[
   Results.prototype.bind = function (container, $container) {
     var self = this;
 
-    this.on('results:all', function (data) {
+    container.on('results:all', function (params) {
       self.clear();
-      self.append(data);
+      self.append(params.data);
 
       self.setClasses();
     });
 
-    this.on('results:append', function (data) {
-      self.append(data);
+    container.on('results:append', function (params) {
+      self.append(params.data);
 
       self.setClasses();
     });
@@ -1225,6 +1225,7 @@ define('select2/dropdown/search',[
       '</span>'
     );
 
+    this.$searchContainer = $search;
     this.$search = $search.find('input');
 
     $rendered.prepend($search);
@@ -1233,6 +1234,8 @@ define('select2/dropdown/search',[
   };
 
   Search.prototype.bind = function (decorated, container, $container) {
+    var self = this;
+
     decorated.call(this, container, $container);
 
     this.$search.on('keyup', function () {
@@ -1240,6 +1243,22 @@ define('select2/dropdown/search',[
         term: $(this).val()
       });
     });
+
+    container.on('results:all', function (params) {
+      if (params.query.term == null || params.query.term === '') {
+        var showSearch = self.showSearch(params);
+
+        if (showSearch) {
+          self.$searchContainer.show();
+        } else {
+          self.$searchContainer.hide();
+        }
+      }
+    });
+  };
+
+  Search.prototype.showSearch = function (params) {
+    return true;
   };
 
   return Search;
@@ -1435,7 +1454,10 @@ define('select2/core',[
 
     this.on('query', function (params) {
       this.data.query(params, function (data) {
-        self.results.trigger('results:all', data);
+        self.trigger('results:all', {
+          data: data,
+          query: params
+        });
       });
     });
 

Plik diff jest za duży
+ 0 - 0
dist/js/select2.min.js


+ 4 - 1
src/js/select2/core.js

@@ -102,7 +102,10 @@ define([
 
     this.on('query', function (params) {
       this.data.query(params, function (data) {
-        self.results.trigger('results:all', data);
+        self.trigger('results:all', {
+          data: data,
+          query: params
+        });
       });
     });
 

+ 19 - 0
src/js/select2/dropdown/search.js

@@ -12,6 +12,7 @@ define([
       '</span>'
     );
 
+    this.$searchContainer = $search;
     this.$search = $search.find('input');
 
     $rendered.prepend($search);
@@ -20,6 +21,8 @@ define([
   };
 
   Search.prototype.bind = function (decorated, container, $container) {
+    var self = this;
+
     decorated.call(this, container, $container);
 
     this.$search.on('keyup', function () {
@@ -27,6 +30,22 @@ define([
         term: $(this).val()
       });
     });
+
+    container.on('results:all', function (params) {
+      if (params.query.term == null || params.query.term === '') {
+        var showSearch = self.showSearch(params);
+
+        if (showSearch) {
+          self.$searchContainer.show();
+        } else {
+          self.$searchContainer.hide();
+        }
+      }
+    });
+  };
+
+  Search.prototype.showSearch = function (params) {
+    return true;
   };
 
   return Search;

+ 4 - 4
src/js/select2/results.js

@@ -114,15 +114,15 @@ define([
   Results.prototype.bind = function (container, $container) {
     var self = this;
 
-    this.on('results:all', function (data) {
+    container.on('results:all', function (params) {
       self.clear();
-      self.append(data);
+      self.append(params.data);
 
       self.setClasses();
     });
 
-    this.on('results:append', function (data) {
-      self.append(data);
+    container.on('results:append', function (params) {
+      self.append(params.data);
 
       self.setClasses();
     });

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików