Browse Source

#2382 Increase code coherence, restructure into new methods

pull/2390/head
jlukic 10 years ago
parent
commit
e3d43478b9
1 changed files with 34 additions and 17 deletions
  1. 51
      src/definitions/modules/dropdown.js

51
src/definitions/modules/dropdown.js

@ -165,6 +165,7 @@ $.fn.dropdown = function(parameters) {
var
$userChoices,
$userChoice,
isUserValue,
html
;
values = values || module.get.userValues();
@ -172,19 +173,21 @@ $.fn.dropdown = function(parameters) {
? values
: [values]
;
module.debug('Creating user choices for each value', values);
$.each(values, function(index, value) {
html = settings.templates.addition(value);
$userChoice = $('<div />')
.html(html)
.data(metadata.value, value)
.addClass(className.addition)
.addClass(className.item)
;
$userChoices = ($userChoices === undefined)
? $userChoice
: $userChoices.add($userChoice)
;
if(module.get.item(value) === false) {
html = settings.templates.addition(value);
$userChoice = $('<div />')
.html(html)
.data(metadata.value, value)
.addClass(className.addition)
.addClass(className.item)
;
$userChoices = ($userChoices === undefined)
? $userChoice
: $userChoices.add($userChoice)
;
module.verbose('Creating user choices for value', value, $userChoice);
}
});
return $userChoices;
},
@ -1532,6 +1535,19 @@ $.fn.dropdown = function(parameters) {
: $item.eq(0)
;
},
itemWithAdditions: function(value) {
var
$items = module.get.item(value),
$userItems = module.create.userChoice(value)
;
if($userItems.length > 0) {
$items = ($items.length > 0)
? $items.add($userItems)
: $userItems
;
}
return $items;
},
item: function(value, strict) {
var
$selectedItem = false,
@ -2031,10 +2047,15 @@ $.fn.dropdown = function(parameters) {
isMultiple = module.is.multiple(),
$userSelectedItem
;
$selectedItem = $selectedItem || module.get.item(value);
$selectedItem = (settings.allowAdditions)
? $selectedItem || module.get.itemWithAdditions(value)
: $selectedItem || module.get.item(value)
;
console.log($selectedItem);
if(!$selectedItem) {
return false;
}
module.debug('Setting selected menu item to', $selectedItem);
if(module.is.single()) {
module.remove.activeItem();
@ -2043,10 +2064,6 @@ $.fn.dropdown = function(parameters) {
else if(settings.useLabels) {
module.remove.selectedItem();
}
if(settings.allowAdditions) {
$userSelectedItem = module.create.userChoice(value);
$selectedItem = $selectedItem.add($userSelectedItem);
}
// select each item
$selectedItem
.each(function() {

Loading…
Cancel
Save