Kaynağa Gözat

Allow for custom sorting functions

This adds the `sorter` function, which works in the same way as the
old `sortResults` function.
Kevin Brown 10 yıl önce
ebeveyn
işleme
caf4ad73d7

+ 6 - 1
dist/js/select2.amd.full.js

@@ -236,7 +236,9 @@ define('select2/results',[
   };
 
   Results.prototype.sort = function (data) {
-    return data;
+    var sorter = this.options.get('sorter');
+
+    return sorter(data);
   };
 
   Results.prototype.setClasses = function () {
@@ -3268,6 +3270,9 @@ define('select2/defaults',[
     this.defaults = {
       language: EnglishTranslation,
       matcher: matcher,
+      sorter: function (data) {
+        return data;
+      },
       minimumInputLength: 0,
       maximumInputLength: 0,
       theme: 'default',

+ 6 - 1
dist/js/select2.amd.js

@@ -236,7 +236,9 @@ define('select2/results',[
   };
 
   Results.prototype.sort = function (data) {
-    return data;
+    var sorter = this.options.get('sorter');
+
+    return sorter(data);
   };
 
   Results.prototype.setClasses = function () {
@@ -3268,6 +3270,9 @@ define('select2/defaults',[
     this.defaults = {
       language: EnglishTranslation,
       matcher: matcher,
+      sorter: function (data) {
+        return data;
+      },
       minimumInputLength: 0,
       maximumInputLength: 0,
       theme: 'default',

+ 6 - 1
dist/js/select2.full.js

@@ -9771,7 +9771,9 @@ define('select2/results',[
   };
 
   Results.prototype.sort = function (data) {
-    return data;
+    var sorter = this.options.get('sorter');
+
+    return sorter(data);
   };
 
   Results.prototype.setClasses = function () {
@@ -12803,6 +12805,9 @@ define('select2/defaults',[
     this.defaults = {
       language: EnglishTranslation,
       matcher: matcher,
+      sorter: function (data) {
+        return data;
+      },
       minimumInputLength: 0,
       maximumInputLength: 0,
       theme: 'default',

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/js/select2.full.min.js


+ 6 - 1
dist/js/select2.js

@@ -664,7 +664,9 @@ define('select2/results',[
   };
 
   Results.prototype.sort = function (data) {
-    return data;
+    var sorter = this.options.get('sorter');
+
+    return sorter(data);
   };
 
   Results.prototype.setClasses = function () {
@@ -3696,6 +3698,9 @@ define('select2/defaults',[
     this.defaults = {
       language: EnglishTranslation,
       matcher: matcher,
+      sorter: function (data) {
+        return data;
+      },
       minimumInputLength: 0,
       maximumInputLength: 0,
       theme: 'default',

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/js/select2.min.js


+ 9 - 11
docs/examples.html

@@ -502,7 +502,15 @@ $(".js-example-language").select2({
 
       <pre data-fill-from=".js-code-theme"></pre>
 
-      <!-- Code is further down the page -->
+<script type="text/javascript" class="js-code-theme">
+$(".js-example-theme-single").select2({
+  theme: "classic"
+});
+
+$(".js-example-theme-multiple").select2({
+  theme: "classic"
+});
+</script>
     </div>
   </section>
 </div>
@@ -698,13 +706,3 @@ $.fn.select2.amd.require(
   });
 });
 </script>
-
-<script type="text/javascript" class="js-code-theme">
-$(".js-example-theme-single").select2({
-  theme: "classic"
-});
-
-$(".js-example-theme-multiple").select2({
-  theme: "classic"
-});
-</script>

+ 3 - 0
src/js/select2/defaults.js

@@ -231,6 +231,9 @@ define([
     this.defaults = {
       language: EnglishTranslation,
       matcher: matcher,
+      sorter: function (data) {
+        return data;
+      },
       minimumInputLength: 0,
       maximumInputLength: 0,
       theme: 'default',

+ 3 - 1
src/js/select2/results.js

@@ -78,7 +78,9 @@ define([
   };
 
   Results.prototype.sort = function (data) {
-    return data;
+    var sorter = this.options.get('sorter');
+
+    return sorter(data);
   };
 
   Results.prototype.setClasses = function () {

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor