.
This commit is contained in:
+73
@@ -0,0 +1,73 @@
|
||||
var DjangoSelect2 = window.DjangoSelect2 || {};
|
||||
|
||||
(function() {
|
||||
var $ = DjangoSelect2.jQuery;
|
||||
if (!$) {
|
||||
$ = DjangoSelect2.jQuery = (window.django || {}).jQuery || window.jQuery;
|
||||
}
|
||||
|
||||
DjangoSelect2.init = function(input) {
|
||||
var $input = $(input);
|
||||
var ajaxOptions = {
|
||||
ajax: {
|
||||
data: function(term, page) {
|
||||
return {
|
||||
q: term,
|
||||
page: page,
|
||||
page_limit: 10
|
||||
};
|
||||
},
|
||||
results: function(data, page) {
|
||||
return data;
|
||||
}
|
||||
},
|
||||
initSelection: function (element, callback) {
|
||||
var inputVal = $input.val();
|
||||
if (!inputVal) {
|
||||
return;
|
||||
}
|
||||
var data = {
|
||||
q: inputVal
|
||||
};
|
||||
var select2 = $input.data('select2') || {};
|
||||
if (typeof select2.opts == 'object' && select2.opts !== null) {
|
||||
data.multiple = (select2.opts.multiple) ? 1 : 0;
|
||||
}
|
||||
$.ajax({
|
||||
url: $input.data('initSelectionUrl'),
|
||||
dataType: 'json',
|
||||
data: data,
|
||||
success: function(data) {
|
||||
if (typeof(data) == 'object' && typeof(data.results) == 'object' && data.results) {
|
||||
callback(data.results);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
var options = $input.data('select2Options') || {};
|
||||
if (typeof options.ajax == 'object') {
|
||||
options = $.extend(true, ajaxOptions, options);
|
||||
}
|
||||
$input.select2(options);
|
||||
if ($input.data('sortable') && typeof $.fn.djs2sortable == 'function') {
|
||||
$input.select2("container").find("ul.select2-choices").djs2sortable({
|
||||
containment: 'parent',
|
||||
start: function() { $input.select2("onSortStart"); },
|
||||
update: function() { $input.select2("onSortEnd"); }
|
||||
});
|
||||
}
|
||||
$input.data('select2').selection.addClass('vTextField');
|
||||
};
|
||||
|
||||
$(document).ready(function() {
|
||||
$('.django-select2:not([name*="__prefix__"])').each(function() {
|
||||
DjangoSelect2.init(this);
|
||||
});
|
||||
$(document).on('formset:added', function(event, $form) {
|
||||
$form.find('.django-select2:not([name*="__prefix__"])').each(function() {
|
||||
DjangoSelect2.init(this);
|
||||
});
|
||||
});
|
||||
});
|
||||
})();
|
||||
Reference in New Issue
Block a user