autocomplete.js
33 lines
| 1.0 KiB
| application/javascript
|
JavascriptLexer
|
r367 | 'use strict'; | ||
{ | ||||
const $ = django.jQuery; | ||||
r338 | ||||
|
r367 | $.fn.djangoAdminSelect2 = function() { | ||
r338 | $.each(this, function(i, element) { | |||
|
r367 | $(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 | ||||
}; | ||||
} | ||||
} | ||||
}); | ||||
r338 | }); | |||
return this; | ||||
}; | ||||
$(function() { | ||||
// Initialize all autocomplete widgets except the one in the template | ||||
// form used when a new formset is added. | ||||
$('.admin-autocomplete').not('[name*=__prefix__]').djangoAdminSelect2(); | ||||
}); | ||||
|
r367 | document.addEventListener('formset:added', (event) => { | ||
$(event.target).find('.admin-autocomplete').djangoAdminSelect2(); | ||||
}); | ||||
} | ||||