49 lines
1.1 KiB
JavaScript
49 lines
1.1 KiB
JavaScript
"use strict";
|
|
{
|
|
const $ = django.jQuery;
|
|
|
|
$.fn.djangoCustomSelect2 = function () {
|
|
$.each(this, function (i, element) {
|
|
if (element.id.match(/__prefix__/)) {
|
|
return;
|
|
}
|
|
|
|
$(element).select2();
|
|
});
|
|
|
|
return this;
|
|
};
|
|
|
|
$.fn.djangoAdminSelect2 = function () {
|
|
$.each(this, function (i, element) {
|
|
$(element).select2({
|
|
ajax: {
|
|
data: (params) => {
|
|
return {
|
|
term: params.term,
|
|
page: params.page,
|
|
app_label: element.dataset.appLabel,
|
|
model_name: element.dataset.modelName,
|
|
field_name: element.dataset.fieldName,
|
|
};
|
|
},
|
|
},
|
|
});
|
|
});
|
|
return this;
|
|
};
|
|
|
|
$(function () {
|
|
$(".unfold-admin-autocomplete.admin-autocomplete").djangoCustomSelect2();
|
|
|
|
$(".admin-autocomplete")
|
|
.not(".unfold-admin-autocomplete")
|
|
.not("[name*=__prefix__]")
|
|
.djangoAdminSelect2();
|
|
});
|
|
|
|
document.addEventListener("formset:added", (event) => {
|
|
$(event.target).find(".admin-autocomplete").djangoAdminSelect2();
|
|
});
|
|
}
|