summaryrefslogtreecommitdiffstats
path: root/media/admin/js/autocomplete.js
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@klebos.com>2022-03-03 14:18:51 +0000
committerPhilip Sargent <philip.sargent@klebos.com>2022-03-03 14:18:51 +0000
commitdc4374cb9e7d0aa117e62a1cd026dd81ff7cc3e6 (patch)
tree6471901627388dae5a391bcf6cc04f09e233fa4b /media/admin/js/autocomplete.js
parent7f41017ce3569cd89c706f089e3f51179e5edc7b (diff)
downloadtroggle-dc4374cb9e7d0aa117e62a1cd026dd81ff7cc3e6.tar.gz
troggle-dc4374cb9e7d0aa117e62a1cd026dd81ff7cc3e6.tar.bz2
troggle-dc4374cb9e7d0aa117e62a1cd026dd81ff7cc3e6.zip
Update to new Django admin styles for v3.x
Diffstat (limited to 'media/admin/js/autocomplete.js')
-rw-r--r--media/admin/js/autocomplete.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/media/admin/js/autocomplete.js b/media/admin/js/autocomplete.js
new file mode 100644
index 0000000..c55eee1
--- /dev/null
+++ b/media/admin/js/autocomplete.js
@@ -0,0 +1,41 @@
+'use strict';
+{
+ const $ = django.jQuery;
+ const init = function($element, options) {
+ const settings = $.extend({
+ ajax: {
+ data: function(params) {
+ return {
+ term: params.term,
+ page: params.page,
+ app_label: $element.data('app-label'),
+ model_name: $element.data('model-name'),
+ field_name: $element.data('field-name')
+ };
+ }
+ }
+ }, options);
+ $element.select2(settings);
+ };
+
+ $.fn.djangoAdminSelect2 = function(options) {
+ const settings = $.extend({}, options);
+ $.each(this, function(i, element) {
+ const $element = $(element);
+ init($element, settings);
+ });
+ 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();
+ });
+
+ $(document).on('formset:added', (function() {
+ return function(event, $newFormset) {
+ return $newFormset.find('.admin-autocomplete').djangoAdminSelect2();
+ };
+ })(this));
+}