Skip to content

Commit 7225780

Browse files
authored
fix(dropdown): using different keyname for fields.values failed
When calling templates.menu(), the object passed always has a single fixed key values. However, the implementation of templates.menu() reads the object with the configurable key fields.values. So if a key other then values is configured, this will fail.
1 parent 04eca76 commit 7225780

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

src/definitions/modules/dropdown.js

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -810,9 +810,9 @@ $.fn.dropdown = function(parameters) {
810810
values = [];
811811
}
812812
module.remove.message();
813-
module.setup.menu({
814-
values: values
815-
});
813+
var menuConfig = {};
814+
menuConfig[fields.values] = values;
815+
module.setup.menu(menuConfig);
816816

817817
if(values.length===0 && !settings.allowAdditions) {
818818
module.add.message(message.noResults);
@@ -1008,7 +1008,9 @@ $.fn.dropdown = function(parameters) {
10081008
module.clear();
10091009
}
10101010
module.debug('Creating dropdown with specified values', values);
1011-
module.setup.menu({values: values});
1011+
var menuConfig = {};
1012+
menuConfig[fields.values] = values;
1013+
module.setup.menu(menuConfig);
10121014
$.each(values, function(index, item) {
10131015
if(item.selected == true) {
10141016
module.debug('Setting initial selection to', item[fields.value]);
@@ -1981,9 +1983,9 @@ $.fn.dropdown = function(parameters) {
19811983
selectValues: function() {
19821984
var
19831985
select = {},
1984-
oldGroup = []
1986+
oldGroup = [],
1987+
values = []
19851988
;
1986-
select.values = [];
19871989
$module
19881990
.find('option')
19891991
.each(function() {
@@ -2004,14 +2006,14 @@ $.fn.dropdown = function(parameters) {
20042006
}
20052007
else {
20062008
if(group.length !== oldGroup.length || group[0] !== oldGroup[0]) {
2007-
select.values.push({
2009+
values.push({
20082010
type: 'header',
20092011
divider: settings.headerDivider,
20102012
name: group.attr('label') || ''
20112013
});
20122014
oldGroup = group;
20132015
}
2014-
select.values.push({
2016+
values.push({
20152017
name : name,
20162018
value : value,
20172019
text : text,
@@ -2026,19 +2028,21 @@ $.fn.dropdown = function(parameters) {
20262028
}
20272029
if(settings.sortSelect) {
20282030
if(settings.sortSelect === true) {
2029-
select.values.sort(function(a, b) {
2031+
values.sort(function(a, b) {
20302032
return a.name.localeCompare(b.name);
20312033
});
20322034
} else if(settings.sortSelect === 'natural') {
2033-
select.values.sort(function(a, b) {
2035+
values.sort(function(a, b) {
20342036
return (a.name.toLowerCase().localeCompare(b.name.toLowerCase()));
20352037
});
20362038
} else if($.isFunction(settings.sortSelect)) {
2037-
select.values.sort(settings.sortSelect);
2039+
values.sort(settings.sortSelect);
20382040
}
2041+
select[fields.values] = values;
20392042
module.debug('Retrieved and sorted values from select', select);
20402043
}
20412044
else {
2045+
select[fields.values] = values;
20422046
module.debug('Retrieved values from select', select);
20432047
}
20442048
return select;

0 commit comments

Comments
 (0)