summaryrefslogtreecommitdiff
path: root/chimere/static/bsmSelect/js
diff options
context:
space:
mode:
Diffstat (limited to 'chimere/static/bsmSelect/js')
-rw-r--r--chimere/static/bsmSelect/js/jquery.bsmselect.compatibility.js10
-rw-r--r--chimere/static/bsmSelect/js/jquery.bsmselect.js43
-rw-r--r--chimere/static/bsmSelect/js/jquery.bsmselect.sortable.js18
3 files changed, 40 insertions, 31 deletions
diff --git a/chimere/static/bsmSelect/js/jquery.bsmselect.compatibility.js b/chimere/static/bsmSelect/js/jquery.bsmselect.compatibility.js
index a743a07..683d865 100644
--- a/chimere/static/bsmSelect/js/jquery.bsmselect.compatibility.js
+++ b/chimere/static/bsmSelect/js/jquery.bsmselect.compatibility.js
@@ -1,17 +1,17 @@
/*
* Better Select Multiple Compatibility Plugin - jQuery Plugin
*
- * Copyright (c) 2010 by Victor Berchet - http://www.github.com/vicb
+ * Copyright (c) 2010-2011 by Victor Berchet - http://www.github.com/vicb
*
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
*
- * version: v1.0.0 - 2010-09-05
+ * version: v1.0.1 - 2011-11-14
*/
(function($) {
$.bsmSelect.plugins.compatibility = function()
{
- if (!(this instanceof arguments.callee)) {
- return new arguments.callee();
+ if (!(this instanceof $.bsmSelect.plugins.compatibility)) {
+ return new $.bsmSelect.plugins.compatibility();
}
}
@@ -31,7 +31,7 @@
o.showEffect = $.bsmSelect.effects[o.animate.add];
} else {
o.showEffect = $.bsmSelect.effects.show;
- }
+ }
if ($.isFunction(o.animate.drop)) {
o.hideEffect = o.animate.drop;
diff --git a/chimere/static/bsmSelect/js/jquery.bsmselect.js b/chimere/static/bsmSelect/js/jquery.bsmselect.js
index 25527c6..7751418 100644
--- a/chimere/static/bsmSelect/js/jquery.bsmselect.js
+++ b/chimere/static/bsmSelect/js/jquery.bsmselect.js
@@ -4,11 +4,11 @@
* based on Alternate Select Multiple (asmSelect) 1.0.4a beta (http://www.ryancramer.com/projects/asmselect/)
*
* Copyright (c) 2009 by Ryan Cramer - http://www.ryancramer.com
- * Copyright (c) 2010 by Victor Berchet - http://www.github.com/vicb
+ * Copyright (c) 2010-2013 by Victor Berchet - http://www.github.com/vicb
*
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
*
- * bsmSelect version: v1.4.3 - 2011-05-05
+ * bsmSelect version: v1.4.7 - 2013-12-19
*/
(function($) {
@@ -39,7 +39,7 @@
if (o.addItemTarget === 'original') {
$('option', this.$original).each(function(i, o) {
- if ($(o).data('bsm-order') === null) { $(o).data('bsm-order', i); }
+ if ($(o).data('bsm-order') === undefined) { $(o).data('bsm-order', i); }
});
}
@@ -47,7 +47,6 @@
this.$select = $('<select>', {
'class': o.selectClass,
- name: o.selectClass + this.uid,
id: o.selectClass + this.uid,
change: $.proxy(this.selectChangeEvent, this),
click: $.proxy(this.selectClickEvent, this)
@@ -69,7 +68,7 @@
if (!this.$list.parent().length) { this.$original.before(this.$list); }
if (this.$original.attr('id')) {
- $('label[for=' + this.$original.attr('id') + ']').attr('for', this.$select.attr('id'));
+ $("label[for='" + this.$original.attr('id') + "']").attr('for', this.$select.attr('id'));
}
// set up remove event (may be a link, or the list item itself)
@@ -86,11 +85,12 @@
* Check to make sure it's not an IE screwup, and add it to the list
*/
selectChangeEvent: function() {
- if ($.browser.msie && $.browser.version < 7 && !this.ieClick) { return; }
+ if ($.browser && $.browser.msie && $.browser.version < 7 && !this.ieClick) { return; }
var bsmOpt = $('option:selected:eq(0)', this.$select);
if (bsmOpt.data('orig-option')) {
- this.addListItem(bsmOpt);
- this.triggerOriginalChange(bsmOpt.data('orig-option'), 'add');
+ if (this.triggerOriginalChange(bsmOpt.data('orig-option'), 'add') == false) {
+ this.addListItem(bsmOpt);
+ }
}
this.ieClick = false;
},
@@ -115,7 +115,7 @@
this.buildSelect();
// opera has an issue where it needs a force redraw, otherwise
// the items won't appear until something else forces a redraw
- if ($.browser.opera) { this.$list.hide().show(); }
+ if ($.browser && $.browser.opera) { this.$list.hide().show(); }
}
},
@@ -198,7 +198,7 @@
.removeAttr('selected')
.attr('disabled', 'disabled')
.toggle(!this.options.hideWhenAdded);
- if ($.browser.msie && $.browser.version < 8) { this.$select.hide().show(); } // this forces IE to update display
+ if ($.browser && $.browser.msie && $.browser.version < 8) { this.$select.hide().show(); } // this forces IE to update display
},
/**
@@ -210,7 +210,7 @@
$bsmOpt.removeClass(this.options.optionDisabledClass)
.removeAttr('disabled')
.toggle(!this.options.hideWhenAdded);
- if ($.browser.msie && $.browser.version < 8) { this.$select.hide().show(); } // this forces IE to update display
+ if ($.browser && $.browser.msie && $.browser.version < 8) { this.$select.hide().show(); } // this forces IE to update display
},
/**
@@ -243,7 +243,7 @@
break;
case 'original':
var order = $origOpt.data('bsm-order'), inserted = false;
- $('.' + o.listItemClass, this.$list).each(function() {
+ this.$list.children().each(function() {
if (order < $(this).data('bsm-option').data('orig-option').data('bsm-order')) {
$item.hide().insertBefore(this);
inserted = true;
@@ -268,15 +268,16 @@
/**
* Remove an item from the list of selection
*
- * @param {jQuey} $item A list item
+ * @param {jQuery} $item A list item
*/
dropListItem: function($item) {
var $bsmOpt = $item.data('bsm-option'), o = this.options;
- $bsmOpt.removeData('item').data('orig-option').removeAttr('selected');
- (this.buildingSelect ? $.bsmSelect.effects.remove : o.hideEffect)($item);
- this.enableSelectOption($bsmOpt);
- o.highlightEffect(this.$select, $item, o.highlightRemovedLabel, o);
- this.triggerOriginalChange($bsmOpt.data('orig-option'), 'drop');
+ if (this.triggerOriginalChange($bsmOpt.data('orig-option'), 'drop') == false) {
+ $bsmOpt.removeData('item').data('orig-option').removeAttr('selected');
+ (this.buildingSelect ? $.bsmSelect.effects.remove : o.hideEffect)($item);
+ this.enableSelectOption($bsmOpt);
+ o.highlightEffect(this.$select, $item, o.highlightRemovedLabel, o);
+ }
},
/**
@@ -285,15 +286,19 @@
*
* @param {jQuery} $origOpt The option from the original select
* @param {String} type Event type
+ *
+ * @return Whether the event default is prevented
*/
triggerOriginalChange: function($origOpt, type) {
+ var event = $.Event('change');
this.ignoreOriginalChangeEvent = true;
- this.$original.trigger('change', [{
+ this.$original.trigger(event, [{
option: $origOpt,
value: $origOpt.val(),
item: $origOpt.data('bsm-option').data('item'),
type: type
}]);
+ return event.isDefaultPrevented();
}
};
diff --git a/chimere/static/bsmSelect/js/jquery.bsmselect.sortable.js b/chimere/static/bsmSelect/js/jquery.bsmselect.sortable.js
index 3e4b9f8..cd79028 100644
--- a/chimere/static/bsmSelect/js/jquery.bsmselect.sortable.js
+++ b/chimere/static/bsmSelect/js/jquery.bsmselect.sortable.js
@@ -1,17 +1,17 @@
/*
* Better Select Multiple Sortable Plugin
*
- * Copyright (c) 2010 by Victor Berchet - http://www.github.com/vicb
+ * Copyright (c) 2010-2012 by Victor Berchet - http://www.github.com/vicb
*
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
*
- * version: v1.1.1 - 2010-11-17
+ * version: v1.4.4 - 2012-01-19
*/
(function($) {
$.bsmSelect.plugins.sortable = function(sortConfig, options)
{
- if (!(this instanceof arguments.callee)) {
- return new arguments.callee(sortConfig, options);
+ if (!(this instanceof $.bsmSelect.plugins.sortable)) {
+ return new $.bsmSelect.plugins.sortable(sortConfig, options);
}
this.sortConfig = sortConfig;
this.options = $.extend({}, this.defaultOpt, options || {});
@@ -27,13 +27,18 @@
config = $.extend({}, this.sortConfig, { items: '.' + o.listItemClass }),
self = this;
bsm.$list.addClass(o.listSortableClass).sortable(config);
+ // Fix a bug when the 'html' element has an overflow set to either 'scroll' or 'auto' on FF.
+ // See issue #21 (https://github.com/vicb/bsmSelect/issues/21)
+ if ($.inArray($('html').css('overflow-x'), ['auto', 'scroll']) > -1 || $.inArray($('html').css('overflow-y'), ['auto', 'scroll']) > -1) {
+ $('.' + o.listSortableClass).addClass('bsmScrollWorkaround');
+ }
bsm.$original.bind('change', function(e, info) { self.onChange.call(self, bsm, e, info); } );
bsm.$list.bind('sortupdate', function(e, ui) { self.onSort.call(self, bsm, e, ui); } );
},
onChange: function(bsm, e, info) {
- if (info && info.type == 'add' && !bsm.buildingSelect) {
- info.option.detach()[bsm.options.addItemTarget == 'top' ? 'prependTo' : 'appendTo'](bsm.$original);
+ if (info && info.type === 'add' && !bsm.buildingSelect) {
+ info.option.detach()[bsm.options.addItemTarget === 'top' ? 'prependTo' : 'appendTo'](bsm.$original);
bsm.$list.sortable('refresh');
}
},
@@ -46,4 +51,3 @@
}
});
})(jQuery);
-