Skip to content

Commit 62e3a7d

Browse files
committed
Implement deferred Select2 initialization for tag modal
1 parent 8c84654 commit 62e3a7d

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

cmd/admin/templates/table.html

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -411,12 +411,25 @@ <h4 class="modal-title">Tag nodes</h4>
411411
$(this).find('#carve').focus();
412412
});
413413

414-
// Select2 initialization
415-
var tagsSelect = $('#modal_tags').select2({
416-
theme: "classic"
417-
});
418-
tagsSelect.on("select2:select", function(e){
419-
$('#add_tags').append(new Option(e.params.data.text, e.params.data.text));
414+
// Deferred Select2 initialization (only when tag modal first opens)
415+
var _tagsSelectReady = false;
416+
function ensureSelect2(cb){
417+
if ($.fn.select2) { return cb(); }
418+
// If not loaded (edge case), dynamically load from CDN
419+
var s = document.createElement('script');
420+
s.src = 'https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js';
421+
s.onload = cb;
422+
document.head.appendChild(s);
423+
}
424+
$('#tagModal').one('shown.bs.modal', function(){
425+
ensureSelect2(function(){
426+
if(_tagsSelectReady) return;
427+
var tagsSelect = $('#modal_tags').select2({ theme: 'classic' });
428+
tagsSelect.on('select2:select', function(e){
429+
$('#add_tags').append(new Option(e.params.data.text, e.params.data.text));
430+
});
431+
_tagsSelectReady = true;
432+
});
420433
});
421434
});
422435
</script>

0 commit comments

Comments
 (0)