diff --git a/add.php b/add.php index 40656843d..e946ce2ba 100755 --- a/add.php +++ b/add.php @@ -80,11 +80,11 @@ if (isAjaxRequest()) { $(document).ready(function(){ $("#form_'.$id_module.'-'.$id_plugin.'").find("form").submit(function () { let $form = $(this); - $form.variables = new Object(); - $form.variables.id_module = \''.$id_module.'\'; - $form.variables.id_plugin = \''.$id_plugin.'\'; - submitAjax(this, $form.variables, function(response) { + salvaForm(this, { + id_module: "'.$id_module.'", + id_plugin: "'.$id_plugin.'", + }).then(function(response) { // Selezione automatica nuovo valore per il select let select = "#'.get('select').'"; if ($(select).val() !== undefined) { @@ -93,8 +93,7 @@ $(document).ready(function(){ } $form.closest("div[id^=bs-popup").modal("hide"); - - }); + }) return false; }) diff --git a/assets/src/js/functions/form.js b/assets/src/js/functions/form.js new file mode 100644 index 000000000..a39911be1 --- /dev/null +++ b/assets/src/js/functions/form.js @@ -0,0 +1,248 @@ +/* + * OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione + * Copyright (C) DevCode s.r.l. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * @deprecated + * @param form + * @param data + * @param callback + * @param errorCallback + * @returns {*|jQuery} + */ +function submitAjax(form, data, callback, errorCallback) { + let valid = $(form).parsley().validate(); + if (!valid) { + return valid; + } + + if (!data) data = {}; + + // Lettura dei contenuti degli input + data = {...getInputsData(form), ...data}; + + $("#main_loading").show(); + content_was_modified = false; + + // Fix per gli id di default + data.id_module = data.id_module ? data.id_module : globals.id_module; + data.id_record = data.id_record ? data.id_record : globals.id_record; + data.id_plugin = data.id_plugin ? data.id_plugin : globals.id_plugin; + data.ajax = 1; + + prepareForm(form); + + // Invio dei dati + $(form).ajaxSubmit({ + url: globals.rootdir + "/actions.php", + data: data, + type: "post", + success: function (data) { + let response = data.trim(); + + // Tentativo di conversione da JSON + try { + response = JSON.parse(response); + } catch (e) { + } + + callback(response); + + $("#main_loading").fadeOut(); + + renderMessages(); + }, + error: function (data) { + $("#main_loading").fadeOut(); + + toastr["error"](data); + + if (errorCallback) errorCallback(data); + } + }); + + return valid; +} + +/** + * + * @param form + */ +function prepareForm(form) { + $(form).find('input:disabled, select:disabled').prop('disabled', false); + + let hash = window.location.hash; + if (hash) { + var input = $('', { + type: 'hidden', + name: 'hash', + value: hash, + }); + + $(form).append(input); + } +} + +/** + * Funzione per la gestione delle animazioni di caricamento sui pulsanti cliccati e appositamente predisposti, + * + * @param button + * @returns {[*, *]} + */ +function buttonLoading(button) { + let $this = $(button); + + let result = [ + $this.html(), + $this.attr("class") + ]; + + $this.html(' Attendere...'); + $this.addClass("btn-warning"); + $this.prop("disabled", true); + + return result; +} + +/** + * Funzione per ripristinare un pulsante con animazioni allo stato precedente. + * + * @param button + * @param loadingResult + */ +function buttonRestore(button, loadingResult) { + let $this = $(button); + + $this.html(loadingResult[0]); + + $this.attr("class", ""); + $this.addClass(loadingResult[1]); + $this.prop("disabled", false); +} + +/** + * Funzione per salvare i contenuti di un form via AJAX, utilizzando una struttura più recente fondata sull'utilizzo di Promise. + * + * @param button + * @param form + * @param data + * @returns {Promise} + */ +function salvaForm(form, data = {}, button = null) { + return new Promise(function (resolve, reject) { + // Caricamento visibile nel pulsante + let restore = buttonLoading(button); + + // Messaggio in caso di eventuali errori + let valid = $(form).parsley().validate(); + if (!valid) { + swal({ + type: "error", + title: globals.translations.ajax.missing.title, + text: globals.translations.ajax.missing.text, + }); + buttonRestore(button, restore); + + reject(); + } + + // Gestione grafica di salvataggio + $("#main_loading").show(); + content_was_modified = false; + + // Lettura dei contenuti degli input + data = {...getInputsData(form), ...data}; + data.ajax = 1; + + // Fix per gli id di default + data.id_module = data.id_module ? data.id_module : globals.id_module; + data.id_record = data.id_record ? data.id_record : globals.id_record; + data.id_plugin = data.id_plugin ? data.id_plugin : globals.id_plugin; + + // Invio dei dati + $.ajax({ + url: globals.rootdir + "/actions.php", + data: data, + type: "POST", + success: function (data) { + let response = data.trim(); + + // Tentativo di conversione da JSON + try { + response = JSON.parse(response); + } catch (e) { + } + + // Gestione grafica del successo + $("#main_loading").fadeOut(); + renderMessages(); + buttonRestore(button, restore); + + resolve(response); + }, + error: function (data) { + toastr["error"](data); + + // Gestione grafica dell'errore + $("#main_loading").fadeOut(); + swal({ + type: "error", + title: globals.translations.ajax.error.title, + text: globals.translations.ajax.error.text, + }); + buttonRestore(button, restore); + + reject(data); + } + }); + }); +} + +/** + * Funzione per recuperare come oggetto i contenuti degli input interni a un tag HTML. + * + * @param {HTMLElement|string|jQuery} form + * @returns {{}} + */ +function getInputsData(form) { + let place = $(form); + let data = {}; + + // Gestione input previsti con sistema JS integrato + let inputs = place.find('.openstamanager-input'); + for (const x of inputs) { + const i = input(x); + const name = i.getElement().attr('name'); + const value = i.get(); + + data[name] = value ? value : undefined; + } + + // Gestione input HTML standard + let standardInputs = place.find(':input').not('.openstamanager-input').serializeArray(); + for (const x of standardInputs) { + data[x.name] = x.value; + } + + // Gestione hash dell'URL + let hash = window.location.hash; + if (hash) { + data['hash'] = hash; + } + + return data; +} diff --git a/assets/src/js/functions/functions.js b/assets/src/js/functions/functions.js index 286274c43..b0fff95b5 100755 --- a/assets/src/js/functions/functions.js +++ b/assets/src/js/functions/functions.js @@ -360,72 +360,6 @@ function getCookie(cname) { return ""; } -function submitAjax(form, data, callback, errorCallback) { - let valid = $(form).parsley().validate(); - if (!valid) { - return valid; - } - - if (!data) data = {}; - - $("#main_loading").show(); - content_was_modified = false; - - // Fix per gli id di default - data.id_module = data.id_module ? data.id_module : globals.id_module; - data.id_record = data.id_record ? data.id_record : globals.id_record; - data.id_plugin = data.id_plugin ? data.id_plugin : globals.id_plugin; - data.ajax = 1; - - prepareForm(form); - - // Invio dei dati - $(form).ajaxSubmit({ - url: globals.rootdir + "/actions.php", - data: data, - type: "post", - success: function (data) { - let response = data.trim(); - - // Tentativo di conversione da JSON - try { - response = JSON.parse(response); - } catch (e) { - } - - callback(response); - - $("#main_loading").fadeOut(); - - renderMessages(); - }, - error: function (data) { - $("#main_loading").fadeOut(); - - toastr["error"](data); - - if (errorCallback) errorCallback(data); - } - }); - - return valid; -} - -function prepareForm(form) { - $(form).find('input:disabled, select:disabled').prop('disabled', false); - - var hash = window.location.hash; - if (hash) { - var input = $('', { - type: 'hidden', - name: 'hash', - value: hash, - }); - - $(form).append(input); - } -} - /** * Visualizzazione dei messaggi attivi tramite toastr. */ @@ -457,10 +391,20 @@ function renderMessages() { }); } +/** + * Rimuove l'hash dall'URL corrente. + */ function removeHash() { history.replaceState(null, null, ' '); } +/** + * + * @param str + * @param find + * @param replace + * @returns {*} + */ function replaceAll(str, find, replace) { return str.replace(new RegExp(find, "g"), replace); } @@ -495,7 +439,7 @@ function restart_inputs() { */ function alertPush() { if ($(window).width() > 1023) { - var i = 0; + let i = 0; $('.alert-success.push').each(function () { i++; @@ -524,7 +468,7 @@ function alertPush() { } /** - * Fuinzione per l'apertura del messaggi di rimozione elemento standard. + * Funzione per l'apertura del messaggi di rimozione elemento standard. * * @param button * @param title @@ -542,101 +486,6 @@ function confirmDelete(button, title, message) { }) } -/** - * Funzione per la gestione delle animazioni di caricamento sui pulsanti cliccati e appositamente predisposti, - * - * @param button - * @returns {[*, *]} - */ -function buttonLoading(button) { - var $this = $(button); - - var result = [ - $this.html(), - $this.attr("class") - ]; - - $this.html(' Attendere...'); - $this.addClass("btn-warning"); - $this.prop("disabled", true); - - return result; -} - -/** - * Funzione per ripristinare un pulsante con animazioni allo stato precedente. - * - * @param button - * @param loadingResult - */ -function buttonRestore(button, loadingResult) { - var $this = $(button); - - $this.html(loadingResult[0]); - - $this.attr("class", ""); - $this.addClass(loadingResult[1]); - $this.prop("disabled", false); -} - -/** - * Funzione per serializzare i contenuti di un form in JSON. - * - * @param form - * @returns {object} - */ -function serializeForm(form) { - let obj = {}; - - let formData = new FormData(form); - for (let key of formData.keys()) { - obj[key] = formData.get(key); - } - - return obj; -} - -/** - * Funzione per salvare i contenuti di un form via AJAX, utilizzando una struttura più recente fondata sull'utilizzo di Promise. - * - * @param button - * @param form - * @param data - * @returns {Promise} - */ -function salvaForm(button, form, data = {}) { - return new Promise(function (resolve, reject) { - // Caricamento visibile nel pulsante - let restore = buttonLoading(button); - - // Messaggio in caso di eventuali errori - let valid = $(form).parsley().validate(); - if (!valid) { - swal({ - type: "error", - title: globals.translations.ajax.missing.title, - text: globals.translations.ajax.missing.text, - }); - buttonRestore(button, restore); - - resolve(false); - } - - submitAjax(form, data, function (response) { - buttonRestore(button, restore); - resolve(true); - }, function (data) { - swal({ - type: "error", - title: globals.translations.ajax.error.title, - text: globals.translations.ajax.error.text, - }); - - buttonRestore(button, restore); - resolve(false); - }); - }); -} /** * Nasconde una specifica colonna di una tabella indicata. @@ -697,6 +546,7 @@ function hideTableColumn(table, column) { /** * Funzione per aggiungere in un *endpoint* il contenuto di uno specifico *template*, effettuando delle sostituzioni di base e inizializzando i campi aggiunti. + * * @param {string|jQuery|HTMLElement} endpoint_selector * @param {string|jQuery|HTMLElement} template_selector * @param {object} replaces diff --git a/assets/src/js/functions/input.js b/assets/src/js/functions/input.js index c50831a97..f63f0c743 100644 --- a/assets/src/js/functions/input.js +++ b/assets/src/js/functions/input.js @@ -104,13 +104,11 @@ Input.prototype.init = function () { // Inizializzazione per textarea else if (this.element.hasClass('autosize') || htmlElement.hasAttribute('maxlength')) { - if (this.element.hasClass('autosize')) initCompleted = initTextareaInput(htmlElement); if (htmlElement.hasAttribute('charcounter')) initCompleted = initCharCounter(htmlElement); - } // Inizializzazione per select @@ -240,6 +238,11 @@ Input.prototype.getData = function () { Input.prototype.get = function () { let value = this.element.val(); + // Gestione dei valori per select + if (this.element.hasClass("select-input")) { + value = value ? value : null; + } + // Gestione dei valori per l'editor if (this.element.hasClass("editor-input")) { const name = this.element.attr("id"); diff --git a/assets/src/js/functions/textarea.js b/assets/src/js/functions/textarea.js index 8042ff088..689de27a7 100644 --- a/assets/src/js/functions/textarea.js +++ b/assets/src/js/functions/textarea.js @@ -29,8 +29,7 @@ function initTextareaInput(input) { function initCharCounter(input) { let $input = $(input); - if (input.hasAttribute('maxlength')){ - + if (input.hasAttribute('maxlength')) { $input.maxlength({ warningClass: "help-block", limitReachedClass: "help-block text-danger", @@ -45,9 +44,8 @@ function initCharCounter(input) { threshold: 150 }); - }else{ - - $input.attr('maxlength','65535'); + } else { + $input.attr('maxlength', '65535'); $input.maxlength({ warningClass: "help-block", @@ -58,9 +56,7 @@ function initCharCounter(input) { appendToParent: true, alwaysShow: true }); - } - return true; } @@ -77,9 +73,7 @@ function waitCKEditor(input) { */ function initEditorInput(input) { if (window.CKEDITOR && CKEDITOR.status === "loaded") { - $(document).ready(function () { - initCKEditor(input); - }) + initCKEditor(input); } else { waitCKEditor(input); } diff --git a/modules/contratti/edit.php b/modules/contratti/edit.php index 23d5396e3..7e8512df2 100755 --- a/modules/contratti/edit.php +++ b/modules/contratti/edit.php @@ -364,18 +364,15 @@ function gestioneDescrizione(button) { async function gestioneRiga(button, options) { // Salvataggio via AJAX - let valid = await salvaForm(button, $("#edit-form")); + await salvaForm("#edit-form", {}, button); + + // Lettura titolo e chiusura tooltip + let title = $(button).tooltipster("content"); + $(button).tooltipster("close") // Apertura modal - if (valid) { - // Lettura titolo e chiusura tooltip - let title = $(button).tooltipster("content"); - $(button).tooltipster("close") - - // Apertura modal - options = options ? options : "is_riga"; - openModal(title, "'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&" + options); - } + options = options ? options : "is_riga"; + openModal(title, "'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&" + options); } /** @@ -524,7 +521,6 @@ $(document).ready(function() { data_accettazione.data("DateTimePicker").date(e.date); } }); - }); '; ?> diff --git a/modules/contratti/row-list.php b/modules/contratti/row-list.php index f61f09e2c..969f2090f 100755 --- a/modules/contratti/row-list.php +++ b/modules/contratti/row-list.php @@ -225,16 +225,14 @@ async function modificaRiga(button) { let type = riga.data("type"); // Salvataggio via AJAX - let valid = await salvaForm(button, $("#edit-form")); + await salvaForm("#edit-form", {}, button); - if (valid) { - // Chiusura tooltip - if ($(button).hasClass("tooltipstered")) - $(button).tooltipster("close"); + // Chiusura tooltip + if ($(button).hasClass("tooltipstered")) + $(button).tooltipster("close"); - // Apertura modal - openModal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type); - } + // Apertura modal + openModal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type); } function rimuoviRiga(button) { diff --git a/modules/ddt/edit.php b/modules/ddt/edit.php index a6e24948f..58ec56369 100755 --- a/modules/ddt/edit.php +++ b/modules/ddt/edit.php @@ -396,18 +396,15 @@ function gestioneDescrizione(button) { async function gestioneRiga(button, options) { // Salvataggio via AJAX - let valid = await salvaForm(button, $("#edit-form")); + await salvaForm("#edit-form", {}, button); + + // Lettura titolo e chiusura tooltip + let title = $(button).tooltipster("content"); + $(button).tooltipster("close") // Apertura modal - if (valid) { - // Lettura titolo e chiusura tooltip - let title = $(button).tooltipster("content"); - $(button).tooltipster("close") - - // Apertura modal - options = options ? options : "is_riga"; - openModal(title, "'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&" + options); - } + options = options ? options : "is_riga"; + openModal(title, "'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&" + options); } /** diff --git a/modules/ddt/row-list.php b/modules/ddt/row-list.php index d572662b3..b17cc14a3 100755 --- a/modules/ddt/row-list.php +++ b/modules/ddt/row-list.php @@ -283,16 +283,14 @@ async function modificaRiga(button) { let type = riga.data("type"); // Salvataggio via AJAX - let valid = await salvaForm(button, $("#edit-form")); + await salvaForm("#edit-form", {}, button); - if (valid) { - // Chiusura tooltip - if ($(button).hasClass("tooltipstered")) - $(button).tooltipster("close"); + // Chiusura tooltip + if ($(button).hasClass("tooltipstered")) + $(button).tooltipster("close"); - // Apertura modal - openModal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type); - } + // Apertura modal + openModal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type); } function rimuoviRiga(button) { diff --git a/modules/fatture/edit.php b/modules/fatture/edit.php index c49ead879..04bb1a61e 100755 --- a/modules/fatture/edit.php +++ b/modules/fatture/edit.php @@ -852,18 +852,15 @@ function gestioneDescrizione(button) { async function gestioneRiga(button, options) { // Salvataggio via AJAX - let valid = await salvaForm(button, $("#edit-form")); + await salvaForm("#edit-form", {}, button); + + // Lettura titolo e chiusura tooltip + let title = $(button).tooltipster("content"); + $(button).tooltipster("close") // Apertura modal - if (valid) { - // Lettura titolo e chiusura tooltip - let title = $(button).tooltipster("content"); - $(button).tooltipster("close") - - // Apertura modal - options = options ? options : "is_riga"; - openModal(title, "'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&" + options); - } + options = options ? options : "is_riga"; + openModal(title, "'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&" + options); } /** diff --git a/modules/fatture/row-list.php b/modules/fatture/row-list.php index f9630beea..a0e435e5b 100755 --- a/modules/fatture/row-list.php +++ b/modules/fatture/row-list.php @@ -402,16 +402,14 @@ async function modificaRiga(button) { let type = riga.data("type"); // Salvataggio via AJAX - let valid = await salvaForm(button, $("#edit-form")); + await salvaForm("#edit-form", {}, button); - if (valid) { - // Chiusura tooltip - if ($(button).hasClass("tooltipstered")) - $(button).tooltipster("close"); + // Chiusura tooltip + if ($(button).hasClass("tooltipstered")) + $(button).tooltipster("close"); - // Apertura modal - openModal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type); - } + // Apertura modal + openModal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type); } function rimuoviRiga(button) { diff --git a/modules/interventi/actions.php b/modules/interventi/actions.php index 3738e2774..381c5da8c 100644 --- a/modules/interventi/actions.php +++ b/modules/interventi/actions.php @@ -154,7 +154,7 @@ switch (post('op')) { $intervento->id_preventivo = post('idpreventivo'); $intervento->id_contratto = post('idcontratto'); $intervento->id_ordine = post('idordine'); - $intervento->richiesta = post('richiesta_add'); + $intervento->richiesta = post('richiesta'); $intervento->idsede_destinazione = $idsede_destinazione; $intervento->data_scadenza = $data_scadenza; diff --git a/modules/interventi/add.php b/modules/interventi/add.php index 5f96f4f2b..32719ec7f 100755 --- a/modules/interventi/add.php +++ b/modules/interventi/add.php @@ -197,7 +197,7 @@ echo '
- {[ "type": "ckeditor", "label": "'.tr('Richiesta').'", "name": "richiesta_add", "required": 1, "value": "'.$richiesta.'", "extra": "style=\'max-height:80px;\'" ]} + {[ "type": "ckeditor", "label": "'.tr('Richiesta').'", "name": "richiesta", "id": "richiesta_add", "required": 1, "value": "'.$richiesta.'", "extra": "style=\'max-height:80px;\'" ]}
'; @@ -339,7 +339,7 @@ if (!empty($id_intervento)) { input("idzona").disable(); input("idtipointervento").disable(); input("idstatointervento").disable(); - input("richiesta_add").disable(); + input("richiesta").disable(); input("data_richiesta").disable(); }); '; @@ -520,10 +520,9 @@ if (filter('orario_fine') !== null) { } // Submit dinamico tramite AJAX - let valid = await salvaForm(button, "#add-form", { + let response = await salvaForm("#add-form", { id_module: "'.$id_module.'", // Fix creazione da Dashboard - }); - if (!valid) return; + }, button); // Se l\'aggiunta intervento proviene dalla scheda di pianificazione ordini di servizio della dashboard, la ricarico if (ref == "dashboard") { diff --git a/modules/interventi/ajax_tecnici.php b/modules/interventi/ajax_tecnici.php index d1639615c..a89796210 100755 --- a/modules/interventi/ajax_tecnici.php +++ b/modules/interventi/ajax_tecnici.php @@ -250,16 +250,14 @@ async function modificaSessione(button) { var id = riga.data("id"); // Salvataggio via AJAX - let valid = await salvaForm(button, $("#edit-form")); + await salvaForm("#edit-form", {}, button); - if (valid) { - // Chiusura tooltip - if ($(button).hasClass("tooltipstered")) - $(button).tooltipster("close"); + // Chiusura tooltip + if ($(button).hasClass("tooltipstered")) + $(button).tooltipster("close"); - // Apertura modal - openModal("'.tr('Modifica sessione').'", "'.$module->fileurl('modals/manage_sessione.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&id_sessione=" + id); - } + // Apertura modal + openModal("'.tr('Modifica sessione').'", "'.$module->fileurl('modals/manage_sessione.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&id_sessione=" + id); } function calcolaConflittiTecnici() { diff --git a/modules/interventi/edit.php b/modules/interventi/edit.php index 42c019361..d402c2dd0 100755 --- a/modules/interventi/edit.php +++ b/modules/interventi/edit.php @@ -530,18 +530,15 @@ function gestioneDescrizione(button) { async function gestioneRiga(button, options) { // Salvataggio via AJAX - let valid = await salvaForm(button, $("#edit-form")); + await salvaForm("#edit-form", {}, button); + + // Lettura titolo e chiusura tooltip + let title = $(button).tooltipster("content"); + $(button).tooltipster("close"); // Apertura modal - if (valid) { - // Lettura titolo e chiusura tooltip - let title = $(button).tooltipster("content"); - $(button).tooltipster("close"); - - // Apertura modal - options = options ? options : "is_riga"; - openModal(title, "'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&" + options); - } + options = options ? options : "is_riga"; + openModal(title, "'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&" + options); } /** diff --git a/modules/interventi/row-list.php b/modules/interventi/row-list.php index 97cd8696b..2156a297d 100755 --- a/modules/interventi/row-list.php +++ b/modules/interventi/row-list.php @@ -184,16 +184,14 @@ async function modificaRiga(button) { let type = riga.data("type"); // Salvataggio via AJAX - let valid = await salvaForm(button, $("#edit-form")); + await salvaForm("#edit-form", {}, button); - if (valid) { - // Chiusura tooltip - if ($(button).hasClass("tooltipstered")) - $(button).tooltipster("close"); + // Chiusura tooltip + if ($(button).hasClass("tooltipstered")) + $(button).tooltipster("close"); - // Apertura modal - openModal("'.tr('Modifica sessione').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type); - } + // Apertura modal + openModal("'.tr('Modifica sessione').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type); } function rimuoviRiga(button) { diff --git a/modules/movimenti/add.php b/modules/movimenti/add.php index 478d70729..0e7fa9588 100755 --- a/modules/movimenti/add.php +++ b/modules/movimenti/add.php @@ -185,60 +185,58 @@ echo ' let qta_input = input("qta"); let tipo_movimento = $("#tipo_movimento").val(); - let valid = await salvaForm(button, "#add-form"); + await salvaForm("#add-form", {}, button); - if (valid) { - let articolo = $("#idarticolo").selectData(); + let articolo = $("#idarticolo").selectData(); - let prezzo_acquisto = parseFloat(articolo.prezzo_acquisto); - let prezzo_vendita = parseFloat(articolo.prezzo_vendita); + let prezzo_acquisto = parseFloat(articolo.prezzo_acquisto); + let prezzo_vendita = parseFloat(articolo.prezzo_vendita); - let qta_movimento = qta_input.get(); + let qta_movimento = qta_input.get(); - let alert_type, icon, text, qta_rimanente; - if (tipo_movimento === "carico") { - alert_type = "alert-success"; - icon = "fa-arrow-up"; - text = "Carico"; - qta_rimanente = parseFloat(articolo.qta) + parseFloat(qta_movimento); - } else if (tipo_movimento === "scarico") { - alert_type = "alert-danger"; - icon = "fa-arrow-down"; - text = "Scarico"; - qta_rimanente = parseFloat(articolo.qta) - parseFloat(qta_movimento); - } else if (tipo_movimento === "spostamento") { - alert_type = "alert-info"; - icon = "fa-arrow-down"; - text = "Spostamento"; - qta_rimanente = parseFloat(articolo.qta); - } + let alert_type, icon, text, qta_rimanente; + if (tipo_movimento === "carico") { + alert_type = "alert-success"; + icon = "fa-arrow-up"; + text = "Carico"; + qta_rimanente = parseFloat(articolo.qta) + parseFloat(qta_movimento); + } else if (tipo_movimento === "scarico") { + alert_type = "alert-danger"; + icon = "fa-arrow-down"; + text = "Scarico"; + qta_rimanente = parseFloat(articolo.qta) - parseFloat(qta_movimento); + } else if (tipo_movimento === "spostamento") { + alert_type = "alert-info"; + icon = "fa-arrow-down"; + text = "Spostamento"; + qta_rimanente = parseFloat(articolo.qta); + } - if (articolo.descrizione) { - let testo = $("#info-articolo").html(); + if (articolo.descrizione) { + let testo = $("#info-articolo").html(); - testo = testo.replace("|alert-type|", alert_type) - .replace("|icon|", icon) - .replace("|descrizione|", articolo.descrizione) - .replace("|codice|", articolo.codice) - .replace("|misura|", articolo.um) - .replace("|misura|", articolo.um) - .replace("|descrizione-movimento|", text) - .replace("|movimento|", qta_movimento.toLocale()) - .replace("|rimanente|", qta_rimanente.toLocale()) - .replace("|prezzo_acquisto|", prezzo_acquisto.toLocale()) - .replace("|prezzo_vendita|", prezzo_vendita.toLocale()); + testo = testo.replace("|alert-type|", alert_type) + .replace("|icon|", icon) + .replace("|descrizione|", articolo.descrizione) + .replace("|codice|", articolo.codice) + .replace("|misura|", articolo.um) + .replace("|misura|", articolo.um) + .replace("|descrizione-movimento|", text) + .replace("|movimento|", qta_movimento.toLocale()) + .replace("|rimanente|", qta_rimanente.toLocale()) + .replace("|prezzo_acquisto|", prezzo_acquisto.toLocale()) + .replace("|prezzo_vendita|", prezzo_vendita.toLocale()); - $("#messages").html(testo); - } + $("#messages").html(testo); + } - qta_input.set(1); - $("#causale").trigger("change"); + qta_input.set(1); + $("#causale").trigger("change"); - if( input("barcode").get() !== "" ){ - $("#idarticolo").selectReset(); - input("barcode").set(""); - $("#barcode").focus(); - } + if( input("barcode").get() !== "" ){ + $("#idarticolo").selectReset(); + input("barcode").set(""); + $("#barcode").focus(); } } '; diff --git a/modules/ordini/edit.php b/modules/ordini/edit.php index b436fd0fd..1b4ec3c64 100755 --- a/modules/ordini/edit.php +++ b/modules/ordini/edit.php @@ -94,7 +94,7 @@ if ($module['name'] == 'Ordini cliente') { } echo ' - +
'; if (!empty($record['idreferente'])) { echo Plugins::link('Referenti', $record['idanagrafica'], null, null, 'class="pull-right"'); @@ -285,18 +285,15 @@ function gestioneDescrizione(button) { async function gestioneRiga(button, options) { // Salvataggio via AJAX - let valid = await salvaForm(button, $("#edit-form")); + await salvaForm("#edit-form", {}, button); + + // Lettura titolo e chiusura tooltip + let title = $(button).tooltipster("content"); + $(button).tooltipster("close") // Apertura modal - if (valid) { - // Lettura titolo e chiusura tooltip - let title = $(button).tooltipster("content"); - $(button).tooltipster("close") - - // Apertura modal - options = options ? options : "is_riga"; - openModal(title, "'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&" + options); - } + options = options ? options : "is_riga"; + openModal(title, "'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&" + options); } /** diff --git a/modules/ordini/row-list.php b/modules/ordini/row-list.php index dbdf3e2de..36bfc9062 100755 --- a/modules/ordini/row-list.php +++ b/modules/ordini/row-list.php @@ -306,16 +306,14 @@ async function modificaRiga(button) { let type = riga.data("type"); // Salvataggio via AJAX - let valid = await salvaForm(button, $("#edit-form")); + await salvaForm("#edit-form", {}, button); - if (valid) { - // Chiusura tooltip - if ($(button).hasClass("tooltipstered")) - $(button).tooltipster("close"); + // Chiusura tooltip + if ($(button).hasClass("tooltipstered")) + $(button).tooltipster("close"); - // Apertura modal - openModal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type); - } + // Apertura modal + openModal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type); } function rimuoviRiga(button) { diff --git a/modules/preventivi/edit.php b/modules/preventivi/edit.php index 1ab09b71d..f090917fb 100755 --- a/modules/preventivi/edit.php +++ b/modules/preventivi/edit.php @@ -292,18 +292,15 @@ function gestioneDescrizione(button) { async function gestioneRiga(button, options) { // Salvataggio via AJAX - let valid = await salvaForm(button, $("#edit-form")); + await salvaForm("#edit-form", {}, button); + + // Lettura titolo e chiusura tooltip + let title = $(button).tooltipster("content"); + $(button).tooltipster("close") // Apertura modal - if (valid) { - // Lettura titolo e chiusura tooltip - let title = $(button).tooltipster("content"); - $(button).tooltipster("close") - - // Apertura modal - options = options ? options : "is_riga"; - openModal(title, "'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&" + options); - } + options = options ? options : "is_riga"; + openModal(title, "'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&" + options); } /** diff --git a/modules/preventivi/row-list.php b/modules/preventivi/row-list.php index ceec6ad35..333d03436 100755 --- a/modules/preventivi/row-list.php +++ b/modules/preventivi/row-list.php @@ -251,16 +251,14 @@ async function modificaRiga(button) { let type = riga.data("type"); // Salvataggio via AJAX - let valid = await salvaForm(button, $("#edit-form")); + await salvaForm("#edit-form", {}, button); - if (valid) { - // Chiusura tooltip - if ($(button).hasClass("tooltipstered")) - $(button).tooltipster("close"); + // Chiusura tooltip + if ($(button).hasClass("tooltipstered")) + $(button).tooltipster("close"); - // Apertura modal - openModal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type); - } + // Apertura modal + openModal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type); } function rimuoviRiga(button) { diff --git a/plugins/exportFE/edit.php b/plugins/exportFE/edit.php index 4e0ea01ac..5c7cf22da 100755 --- a/plugins/exportFE/edit.php +++ b/plugins/exportFE/edit.php @@ -269,8 +269,8 @@ echo ' } function generaFE(button) { - salvaForm(button, "#edit-form").then(function(valid) { - if (valid) {'; + salvaForm("#edit-form", {}, button) + .then(function(valid) {'; if ($generata) { echo ' @@ -294,13 +294,12 @@ echo ' $("#form-xml").submit();'; } echo ' - } else { + }).catch(function() { swal({ type: "error", title: "'.tr('Errore').'", text: "'.tr('Alcuni campi obbligatori non sono stati compilati correttamente').'.", }); - } - }); + }); }; ';