Преглед на файлове

Finished off tests for tags

This also adds back the ability for tags to return `null` in order
for no tag to be added to the results.
Kevin Brown преди 10 години
родител
ревизия
56d5778590
променени са 8 файла, в които са добавени 85 реда и са изтрити 20 реда
  1. 6 4
      dist/js/select2.amd.full.js
  2. 6 4
      dist/js/select2.amd.js
  3. 6 4
      dist/js/select2.full.js
  4. 0 0
      dist/js/select2.full.min.js
  5. 6 4
      dist/js/select2.js
  6. 0 0
      dist/js/select2.min.js
  7. 6 4
      src/js/select2/data/tags.js
  8. 55 0
      tests/data/tags-tests.js

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

@@ -2492,12 +2492,14 @@ define('select2/data/tags',[
 
       var tag = self.createTag(params);
 
-      var $option = self.option(tag);
-      $option.attr('data-select2-tag', true);
+      if (tag != null) {
+        var $option = self.option(tag);
+        $option.attr('data-select2-tag', true);
 
-      self.$element.append($option);
+        self.$element.append($option);
 
-      self.insertTag(data, tag);
+        self.insertTag(data, tag);
+      }
 
       callback(data);
     }

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

@@ -2492,12 +2492,14 @@ define('select2/data/tags',[
 
       var tag = self.createTag(params);
 
-      var $option = self.option(tag);
-      $option.attr('data-select2-tag', true);
+      if (tag != null) {
+        var $option = self.option(tag);
+        $option.attr('data-select2-tag', true);
 
-      self.$element.append($option);
+        self.$element.append($option);
 
-      self.insertTag(data, tag);
+        self.insertTag(data, tag);
+      }
 
       callback(data);
     }

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

@@ -12027,12 +12027,14 @@ define('select2/data/tags',[
 
       var tag = self.createTag(params);
 
-      var $option = self.option(tag);
-      $option.attr('data-select2-tag', true);
+      if (tag != null) {
+        var $option = self.option(tag);
+        $option.attr('data-select2-tag', true);
 
-      self.$element.append($option);
+        self.$element.append($option);
 
-      self.insertTag(data, tag);
+        self.insertTag(data, tag);
+      }
 
       callback(data);
     }

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/js/select2.full.min.js


+ 6 - 4
dist/js/select2.js

@@ -2920,12 +2920,14 @@ define('select2/data/tags',[
 
       var tag = self.createTag(params);
 
-      var $option = self.option(tag);
-      $option.attr('data-select2-tag', true);
+      if (tag != null) {
+        var $option = self.option(tag);
+        $option.attr('data-select2-tag', true);
 
-      self.$element.append($option);
+        self.$element.append($option);
 
-      self.insertTag(data, tag);
+        self.insertTag(data, tag);
+      }
 
       callback(data);
     }

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/js/select2.min.js


+ 6 - 4
src/js/select2/data/tags.js

@@ -55,12 +55,14 @@ define([
 
       var tag = self.createTag(params);
 
-      var $option = self.option(tag);
-      $option.attr('data-select2-tag', true);
+      if (tag != null) {
+        var $option = self.option(tag);
+        $option.attr('data-select2-tag', true);
 
-      self.$element.append($option);
+        self.$element.append($option);
 
-      self.insertTag(data, tag);
+        self.insertTag(data, tag);
+      }
 
       callback(data);
     }

+ 55 - 0
tests/data/tags-tests.js

@@ -130,3 +130,58 @@ test('old tags are removed automatically', function (assert) {
     assert.equal($tag.text(), 'second');
   });
 });
+
+test('insertTag controls the tag location', function (assert) {
+  var data = new SelectTags($('#qunit-fixture .single'), options);
+
+  data.insertTag = function (data, tag) {
+    data.push(tag);
+  };
+
+  data.query({
+    term: 'o'
+  }, function (data) {
+    assert.equal(data.length, 2);
+
+    var item = data[1];
+
+    assert.equal(item.id, 'o');
+    assert.equal(item.text, 'o');
+  });
+});
+
+test('createTag controls the tag object', function (assert) {
+  var data = new SelectTags($('#qunit-fixture .single'), options);
+
+  data.createTag = function (params) {
+    return {
+      id: 0,
+      text: params.term
+    };
+  };
+
+  data.query({
+    term: 'test'
+  }, function (data) {
+    assert.equal(data.length, 1);
+
+    var item = data[0];
+
+    assert.equal(item.id, 0);
+    assert.equal(item.text, 'test');
+  });
+});
+
+test('createTag returns null for no tag', function (assert) {
+  var data = new SelectTags($('#qunit-fixture .single'), options);
+
+  data.createTag = function (params) {
+    return null;
+  };
+
+  data.query({
+    term: 'o'
+  }, function (data) {
+    assert.equal(data.length, 1);
+  });
+});

Някои файлове не бяха показани, защото твърде много файлове са промени