Merge pull request #17542 from MauricioFauth/index-preview-modal

Fix the indexes modal not opening the SQL preview
This commit is contained in:
Maurício Meneghini Fauth 2022-05-22 22:33:51 -03:00 committed by GitHub
commit 8c2a904bf0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 54 additions and 7 deletions

View File

@ -3376,6 +3376,39 @@ AJAX.registerOnload('functions.js', function () {
Functions.indexDialogModal = function (routeUrl, url, title, callbackSuccess, callbackFailure) {
/* Remove the hidden dialogs if there are*/
var modal = $('#indexDialogModal');
const indexDialogPreviewModal = document.getElementById('indexDialogPreviewModal');
indexDialogPreviewModal.addEventListener('shown.bs.modal', () => {
const modalBody = indexDialogPreviewModal.querySelector('.modal-body');
const $form = $('#index_frm');
const formUrl = $form.attr('action');
const sep = CommonParams.get('arg_separator');
const formData = $form.serialize() +
sep + 'do_save_data=1' +
sep + 'preview_sql=1' +
sep + 'ajax_request=1';
$.post({
url: formUrl,
data: formData,
success: response => {
if (! response.success) {
modalBody.innerHTML = '<div class="alert alert-danger" role="alert">' + Messages.strErrorProcessingRequest + '</div>';
return;
}
modalBody.innerHTML = response.sql_data;
Functions.highlightSql($('#indexDialogPreviewModal'));
},
error: () => {
modalBody.innerHTML = '<div class="alert alert-danger" role="alert">' + Messages.strErrorProcessingRequest + '</div>';
}
});
});
indexDialogPreviewModal.addEventListener('hidden.bs.modal', () => {
indexDialogPreviewModal.querySelector('.modal-body').innerHTML = '<div class="spinner-border" role="status">' +
'<span class="visually-hidden">' + Messages.strLoading + '</span></div>';
});
/**
* @var button_options Object that stores the options
* passed to jQueryUI dialog
@ -3427,11 +3460,7 @@ Functions.indexDialogModal = function (routeUrl, url, title, callbackSuccess, ca
}
}); // end $.post()
});
$('#indexDialogModalPreviewButton').on('click', function () {
// Function for Previewing SQL
var $form = $('#index_frm');
Functions.previewSql($form);
});
var $msgbox = Functions.ajaxShowMessage();
$.post(routeUrl, url, function (data) {
if (typeof data !== 'undefined' && data.success === false) {

View File

@ -7,10 +7,28 @@
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" id="indexDialogModalGoButton">{% trans 'Go' %}</button>
<button type="button" class="btn btn-secondary" id="indexDialogModalPreviewButton">{% trans 'Preview SQL' %}</button>
<button type="button" class="btn btn-primary" id="indexDialogModalGoButton">{% trans 'Go' %}</button>
<button type="button" class="btn btn-secondary" data-bs-target="#indexDialogPreviewModal" data-bs-toggle="modal">{% trans 'Preview SQL' %}</button>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{% trans 'Close' %}</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="indexDialogPreviewModal" aria-hidden="true" aria-labelledby="indexDialogPreviewModalLabel" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="indexDialogPreviewModalLabel">{% trans 'Preview SQL' %}</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="{% trans 'Close' %}"></button>
</div>
<div class="modal-body">
<div class="spinner-border" role="status">
<span class="visually-hidden">{% trans 'Loading…' %}</span>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-primary" data-bs-target="#indexDialogModal" data-bs-toggle="modal">{% trans 'Go back' %}</button>
</div>
</div>
</div>
</div>