scinote-web/app/assets/javascripts/shared/remote_modal.js

37 lines
1.2 KiB
JavaScript

/* global animateSpinner ProtocolsIndex ProjectsIndex */
(function() {
'use strict';
function initRemoteModalListeners() {
$(document).on('click', 'a[data-action="remote-modal"]', function(ev) {
ev.stopImmediatePropagation();
ev.stopPropagation();
ev.preventDefault();
animateSpinner();
$.get(ev.currentTarget.getAttribute('href')).then(function({ modal, html }) {
$(modal || html)
.on('shown.bs.modal', function() {
if ($(this).hasClass('project-assignments-modal')) {
$(this).on('ajax:success', 'form', function() {
ProjectsIndex.loadCardsView();
});
}
if ($(this).hasClass('protocol-assignments-modal')) {
$(this).on('ajax:success', 'form', function() {
ProtocolsIndex.reloadTable();
});
}
$(this).find('.selectpicker').selectpicker();
})
.on('hidden.bs.modal', function() {
$(this).remove();
})
.modal('show');
animateSpinner(null, false);
});
});
}
$(document).one('turbolinks:load', initRemoteModalListeners);
}());