Skip to content

Commit 0081716

Browse files
committed
Header and footer decorators
Added examples of header and footer decorators.
1 parent f822020 commit 0081716

6 files changed

Lines changed: 35 additions & 8 deletions

File tree

dist/js/select2.amd.full.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -507,7 +507,7 @@ define('select2/options',[
507507

508508
this.dataAdapter = SelectData;
509509
this.resultsAdapter = ResultsList;
510-
this.dropdownAdapter = Dropdown;
510+
this.dropdownAdapter = options.dropdownAdapter || Dropdown;
511511
this.selectionAdapter = options.selectionAdapter;
512512

513513
if (this.selectionAdapter == null) {

dist/js/select2.amd.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -507,7 +507,7 @@ define('select2/options',[
507507

508508
this.dataAdapter = SelectData;
509509
this.resultsAdapter = ResultsList;
510-
this.dropdownAdapter = Dropdown;
510+
this.dropdownAdapter = options.dropdownAdapter || Dropdown;
511511
this.selectionAdapter = options.selectionAdapter;
512512

513513
if (this.selectionAdapter == null) {

dist/js/select2.full.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10044,7 +10044,7 @@ define('select2/options',[
1004410044

1004510045
this.dataAdapter = SelectData;
1004610046
this.resultsAdapter = ResultsList;
10047-
this.dropdownAdapter = Dropdown;
10047+
this.dropdownAdapter = options.dropdownAdapter || Dropdown;
1004810048
this.selectionAdapter = options.selectionAdapter;
1004910049

1005010050
if (this.selectionAdapter == null) {

dist/js/select2.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -935,7 +935,7 @@ define('select2/options',[
935935

936936
this.dataAdapter = SelectData;
937937
this.resultsAdapter = ResultsList;
938-
this.dropdownAdapter = Dropdown;
938+
this.dropdownAdapter = options.dropdownAdapter || Dropdown;
939939
this.selectionAdapter = options.selectionAdapter;
940940

941941
if (this.selectionAdapter == null) {

playground/basic/decorators.html

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,8 @@
152152
</style>
153153

154154
<script>
155-
require(["select2/core", "select2/utils", "select2/selection"], function (Select2, Utils, Selection) {
155+
require(["select2/core", "select2/utils", "select2/selection/single",
156+
"select2/dropdown"], function (Select2, Utils, Selection, Dropdown) {
156157
function ClearSelection () { }
157158

158159
ClearSelection.prototype.render = function (decorated) {
@@ -203,10 +204,36 @@
203204
}
204205
};
205206

206-
var CustomSelection = Utils.Decorate(Selection, ClearSelection);
207+
function DropdownFooter () { }
208+
209+
DropdownFooter.prototype.render = function (decorated) {
210+
var $dropdown = decorated.call(this);
211+
212+
$dropdown.append('<div class="footer">My custom footer</div>');
213+
214+
return $dropdown;
215+
}
216+
217+
function DropdownHeader () { }
218+
219+
DropdownHeader.prototype.render = function (decorated) {
220+
var $dropdown = decorated.call(this);
221+
222+
$dropdown.prepend('<div class="header">Some custom header</div>');
223+
224+
return $dropdown;
225+
}
226+
227+
var CustomSelection = Utils.Decorate(Selection, ClearSelection)
228+
229+
var CustomDropdown = Utils.Decorate(
230+
Utils.Decorate(Dropdown, DropdownHeader),
231+
DropdownFooter
232+
);
207233

208234
var s2 = new Select2($("#source"), {
209-
selectionAdapter: CustomSelection
235+
selectionAdapter: CustomSelection,
236+
dropdownAdapter: CustomDropdown
210237
});
211238
});
212239
</script>

src/js/select2/options.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ define([
1111

1212
this.dataAdapter = SelectData;
1313
this.resultsAdapter = ResultsList;
14-
this.dropdownAdapter = Dropdown;
14+
this.dropdownAdapter = options.dropdownAdapter || Dropdown;
1515
this.selectionAdapter = options.selectionAdapter;
1616

1717
if (this.selectionAdapter == null) {

0 commit comments

Comments
 (0)