|
601 | 601 |
|
602 | 602 | opts = $.extend({}, { |
603 | 603 | populateResults: function(container, results, query) { |
604 | | - var populate, data, result, children, id=this.opts.id; |
| 604 | + var populate, data, result, children, id=this.opts.id, self=this; |
605 | 605 |
|
606 | 606 | populate=function(results, container, depth) { |
607 | 607 |
|
|
617 | 617 | node.addClass("select2-result"); |
618 | 618 | node.addClass(selectable ? "select2-result-selectable" : "select2-result-unselectable"); |
619 | 619 | if (compound) { node.addClass("select2-result-with-children"); } |
| 620 | + node.addClass(self.opts.formatResultCssClass(result)); |
620 | 621 |
|
621 | 622 | label=$("<div></div>"); |
622 | 623 | label.addClass("select2-result-label"); |
|
660 | 661 | var group; |
661 | 662 | if (element.is("option")) { |
662 | 663 | if (query.matcher(term, element.text(), element)) { |
663 | | - collection.push({id:element.attr("value"), text:element.text(), element: element.get()}); |
| 664 | + collection.push({id:element.attr("value"), text:element.text(), element: element.get(), css: element.attr("class")}); |
664 | 665 | } |
665 | 666 | } else if (element.is("optgroup")) { |
666 | | - group={text:element.attr("label"), children:[], element: element.get()}; |
| 667 | + group={text:element.attr("label"), children:[], element: element.get(), css: element.attr("class")}; |
667 | 668 | element.children().each2(function(i, elm) { process(elm, group.children); }); |
668 | 669 | if (group.children.length>0) { |
669 | 670 | collection.push(group); |
|
687 | 688 | }); |
688 | 689 | // this is needed because inside val() we construct choices from options and there id is hardcoded |
689 | 690 | opts.id=function(e) { return e.id; }; |
| 691 | + opts.formatResultCssClass = function(data) { return data.css; } |
690 | 692 | } else { |
691 | 693 | if (!("query" in opts)) { |
692 | 694 | if ("ajax" in opts) { |
|
2208 | 2210 | formatSelection: function (data, container) { |
2209 | 2211 | return data.text; |
2210 | 2212 | }, |
| 2213 | + formatResultCssClass: function(data) {return undefined;}, |
2211 | 2214 | formatNoMatches: function () { return "No matches found"; }, |
2212 | 2215 | formatInputTooShort: function (input, min) { return "Please enter " + (min - input.length) + " more characters"; }, |
2213 | 2216 | formatSelectionTooBig: function (limit) { return "You can only select " + limit + " items"; }, |
|
0 commit comments