assets/javascripts/semantic_ui/definitions/modules/dropdown.js in less-rails-semantic_ui-1.10.4.0 vs assets/javascripts/semantic_ui/definitions/modules/dropdown.js in less-rails-semantic_ui-1.11.1.0
- old
+ new
@@ -73,29 +73,29 @@
initialize: function() {
module.debug('Initializing dropdown', settings);
if( module.is.alreadySetup() ) {
- module.error(error.alreadySetup);
+ module.setup.reference();
}
else {
module.setup.layout();
- }
- module.save.defaults();
- module.set.selected();
+ module.save.defaults();
+ module.set.selected();
- module.create.id();
+ module.create.id();
- if(hasTouch) {
- module.bind.touchEvents();
- }
- module.bind.mouseEvents();
- module.bind.keyboardEvents();
+ if(hasTouch) {
+ module.bind.touchEvents();
+ }
+ module.bind.mouseEvents();
+ module.bind.keyboardEvents();
- module.observeChanges();
- module.instantiate();
+ module.observeChanges();
+ module.instantiate();
+ }
},
instantiate: function() {
module.verbose('Storing instance of dropdown', module);
instance = module;
@@ -139,13 +139,13 @@
}
},
create: {
id: function() {
- module.verbose('Creating unique id for element');
- id = module.get.uniqueID();
+ id = (Math.random().toString(16) + '000000000').substr(2,8);
elementNamespace = '.' + id;
+ module.verbose('Creating unique id for element', id);
}
},
search: function() {
var
@@ -159,11 +159,10 @@
module.show();
}
},
setup: {
-
layout: function() {
if( $module.is('select') ) {
module.setup.select();
}
if( module.is.search() && !module.is.searchable() ) {
@@ -210,10 +209,25 @@
.removeAttr('class')
.prependTo($module)
;
}
module.refresh();
+ },
+ reference: function() {
+ var
+ index = $allModules.index($module),
+ $firstModules,
+ $lastModules
+ ;
+ module.debug('Dropdown behavior was called on select, replacing with closest dropdown');
+ // replace module reference
+ $module = $module.parent(selector.dropdown);
+ module.refresh();
+ // adjust all modules
+ $firstModules = $allModules.slice(0, index);
+ $lastModules = $allModules.slice(index + 1);
+ $allModules = $firstModules.add($module).add($lastModules);
}
},
refresh: function() {
module.verbose('Refreshing selector cache');
@@ -454,10 +468,11 @@
: $activeItem,
hasSelected = ($selectedItem.size() > 0)
;
if(hasSelected) {
module.event.item.click.call($selectedItem);
+ module.remove.filteredItem();
}
},
event: {
// prevents focus callback from occuring on mousedown
@@ -820,10 +835,13 @@
}
},
get: {
+ id: function() {
+ return id;
+ },
text: function() {
return $text.text();
},
value: function() {
return ($input.length > 0)
@@ -967,13 +985,10 @@
}
else {
value = module.get.text();
}
return $selectedItem || false;
- },
- uniqueID: function() {
- return (Math.random().toString(16) + '000000000').substr(2,8);
}
},
restore: {
defaults: function() {
@@ -1644,13 +1659,12 @@
}
module.initialize();
}
})
;
-
return (returnedValue !== undefined)
? returnedValue
- : this
+ : $allModules
;
};
$.fn.dropdown.settings = {