Skip to content

Commit 1053637

Browse files
committed
Add support for initializing tags
This adds backwards compatibility for the old tags.
1 parent d306fcf commit 1053637

9 files changed

Lines changed: 93 additions & 3 deletions

File tree

dist/js/select2.amd.full.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1168,6 +1168,13 @@ define('select2/data/select',[
11681168
};
11691169

11701170
SelectAdapter.prototype._normalizeItem = function (item) {
1171+
if (item.text == null) {
1172+
item = {
1173+
id: item,
1174+
text: item
1175+
};
1176+
}
1177+
11711178
var defaults = {
11721179
selected: false,
11731180
disabled: false
@@ -1334,6 +1341,17 @@ define('select2/data/tags',[
13341341
var tags = options.get('tags');
13351342

13361343
decorated.call(this, $element, options);
1344+
1345+
if ($.isArray(tags)) {
1346+
for (var t = 0; t < tags.length; t++) {
1347+
var tag = tags[t];
1348+
var item = this._normalizeItem(tag);
1349+
1350+
var $option = this.option(item);
1351+
1352+
this.$element.append($option);
1353+
}
1354+
}
13371355
}
13381356

13391357
Tags.prototype.query = function (decorated, params, callback) {

dist/js/select2.amd.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1168,6 +1168,13 @@ define('select2/data/select',[
11681168
};
11691169

11701170
SelectAdapter.prototype._normalizeItem = function (item) {
1171+
if (item.text == null) {
1172+
item = {
1173+
id: item,
1174+
text: item
1175+
};
1176+
}
1177+
11711178
var defaults = {
11721179
selected: false,
11731180
disabled: false
@@ -1334,6 +1341,17 @@ define('select2/data/tags',[
13341341
var tags = options.get('tags');
13351342

13361343
decorated.call(this, $element, options);
1344+
1345+
if ($.isArray(tags)) {
1346+
for (var t = 0; t < tags.length; t++) {
1347+
var tag = tags[t];
1348+
var item = this._normalizeItem(tag);
1349+
1350+
var $option = this.option(item);
1351+
1352+
this.$element.append($option);
1353+
}
1354+
}
13371355
}
13381356

13391357
Tags.prototype.query = function (decorated, params, callback) {

dist/js/select2.full.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10703,6 +10703,13 @@ define('select2/data/select',[
1070310703
};
1070410704

1070510705
SelectAdapter.prototype._normalizeItem = function (item) {
10706+
if (item.text == null) {
10707+
item = {
10708+
id: item,
10709+
text: item
10710+
};
10711+
}
10712+
1070610713
var defaults = {
1070710714
selected: false,
1070810715
disabled: false
@@ -10869,6 +10876,17 @@ define('select2/data/tags',[
1086910876
var tags = options.get('tags');
1087010877

1087110878
decorated.call(this, $element, options);
10879+
10880+
if ($.isArray(tags)) {
10881+
for (var t = 0; t < tags.length; t++) {
10882+
var tag = tags[t];
10883+
var item = this._normalizeItem(tag);
10884+
10885+
var $option = this.option(item);
10886+
10887+
this.$element.append($option);
10888+
}
10889+
}
1087210890
}
1087310891

1087410892
Tags.prototype.query = function (decorated, params, callback) {

dist/js/select2.full.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/js/select2.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1596,6 +1596,13 @@ define('select2/data/select',[
15961596
};
15971597

15981598
SelectAdapter.prototype._normalizeItem = function (item) {
1599+
if (item.text == null) {
1600+
item = {
1601+
id: item,
1602+
text: item
1603+
};
1604+
}
1605+
15991606
var defaults = {
16001607
selected: false,
16011608
disabled: false
@@ -1762,6 +1769,17 @@ define('select2/data/tags',[
17621769
var tags = options.get('tags');
17631770

17641771
decorated.call(this, $element, options);
1772+
1773+
if ($.isArray(tags)) {
1774+
for (var t = 0; t < tags.length; t++) {
1775+
var tag = tags[t];
1776+
var item = this._normalizeItem(tag);
1777+
1778+
var $option = this.option(item);
1779+
1780+
this.$element.append($option);
1781+
}
1782+
}
17651783
}
17661784

17671785
Tags.prototype.query = function (decorated, params, callback) {

dist/js/select2.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/examples.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -554,7 +554,7 @@ <h2>Example code</h2>
554554
$(".js-example-programmatic").select2();
555555

556556
$tags.select2({
557-
tags: true
557+
tags: ['red', 'blue', 'green']
558558
});
559559

560560
function matchStart (term, text) {

src/js/select2/data/select.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,13 @@ define([
189189
};
190190

191191
SelectAdapter.prototype._normalizeItem = function (item) {
192+
if (item.text == null) {
193+
item = {
194+
id: item,
195+
text: item
196+
};
197+
}
198+
192199
var defaults = {
193200
selected: false,
194201
disabled: false

src/js/select2/data/tags.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,17 @@ define([
55
var tags = options.get('tags');
66

77
decorated.call(this, $element, options);
8+
9+
if ($.isArray(tags)) {
10+
for (var t = 0; t < tags.length; t++) {
11+
var tag = tags[t];
12+
var item = this._normalizeItem(tag);
13+
14+
var $option = this.option(item);
15+
16+
this.$element.append($option);
17+
}
18+
}
819
}
920

1021
Tags.prototype.query = function (decorated, params, callback) {

0 commit comments

Comments
 (0)