Current Directory: /home/astoriaah/www/administrator/components/com_sh404sef/assets/js
Viewing File: /home/astoriaah/www/administrator/components/com_sh404sef/assets/js/shajax_modal_form.js
/**
* sh404SEF - SEO extension for Joomla!
*
* @author Yannick Gaultier
* @copyright (c) Yannick Gaultier - Weeblr llc - 2022
* @package sh404SEF
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
* @version 4.24.1.4308
* @date 2022-05-31
*/
;
(function (app, $) {
var $messageBox;
var $saveButton;
var $closeButton;
var $cancelButton;
var $form;
var messagesProviders = [];
var displayProviders = [];
function doRequest(event) {
event && event.preventDefault();
$messageBox.empty();
$saveButton.attr('disabled', true);
$.post(
'index.php',
$form.serialize(),
'json'
).done(
updateDisplay
);
}
function updateDisplay(data) {
$saveButton.attr('disabled', false);
$messageBox
.html(
getMessages(data.status ? 'success' : 'error', data)
);
var providersCount = displayProviders.length;
if (!providersCount) {
displayProviders.push(defaultDisplayProvider);
providersCount = 1;
}
for (var i = 0; i < providersCount; i++) {
displayProviders[i](data, $saveButton, $cancelButton, $closeButton);
}
}
function defaultMessageProvider(type, data) {
return data.message;
}
function defaultDisplayProvider(data, $saveButton, $cancelButton, $closeButton) {
if (data.status) {
$cancelButton.hide();
$saveButton.attr('disabled', true);
window.parent.location.href=window.parent.location.href;
}
}
function getMessages(type, data) {
var providersCount = messagesProviders.length;
var fullMessage = '';
for (var i = 0; i < providersCount; i++) {
fullMessage += messagesProviders[i](type, data);
}
switch (type) {
case 'error':
fullMessage = '<div class="alert alert-error">' + fullMessage + '</div>'
break;
case 'success':
fullMessage = '<div class="alert alert-success">' + fullMessage + '</div>'
break;
}
return fullMessage;
}
function onReady() {
$messageBox = $('#shmodal-message-block');
$saveButton = $('#shmodal-save-button');
$closeButton = $('#shmodal-close').hide();
$cancelButton = $('#shmodal-cancel');
$form = $('#adminForm');
$form.submit(doRequest);
$saveButton.on('click', doRequest);
}
// init
messagesProviders.push(
defaultMessageProvider
);
$(document).ready(
onReady
);
app.ajaxFormMessageProviders = messagesProviders;
app.ajaxFormDisplayProviders = displayProviders;
})(window.__sh404sefJs = window.__sh404sefJs || {}, jQuery);