From c6bc767834706ca5824307307c26c62a793489b6 Mon Sep 17 00:00:00 2001 From: Thomas Negre Date: Thu, 7 Jul 2022 17:05:47 +0200 Subject: [PATCH 1/4] send formconfirm as a POST --- htdocs/core/class/html.form.class.php | 29 ++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 9568ec25828..f3c88b55af4 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -5148,8 +5148,9 @@ class Form closeOnEscape: false, buttons: { "'.dol_escape_js($langs->transnoentities($labelbuttonyes)).'": function() { - var options = "&token='.urlencode(newToken()).'"; + var options = "token='.urlencode(newToken()).'"; var inputok = '.json_encode($inputok).'; /* List of fields into form */ + var page = "'.dol_escape_js(!empty($page) ? $page : '').'"; var pageyes = "'.dol_escape_js(!empty($pageyes) ? $pageyes : '').'"; if (inputok.length>0) { $.each(inputok, function(i, inputname) { @@ -5166,12 +5167,20 @@ class Form options += "&" + inputname + "=" + encodeURIComponent(inputvalue); }); } - var urljump = pageyes + (pageyes.indexOf("?") < 0 ? "?" : "") + options; - if (pageyes.length > 0) { location.href = urljump; } + if (pageyes.length > 0) { + console.log(page); + console.log(pageyes); + console.log(options); + var post = $.post( + pageyes, + options, + () => {location.assign(page)} + ); + } $(this).dialog("close"); }, "'.dol_escape_js($langs->transnoentities($labelbuttonno)).'": function() { - var options = "&token='.urlencode(newToken()).'"; + var options = "token='.urlencode(newToken()).'"; var inputko = '.json_encode($inputko).'; /* List of fields into form */ var pageno="'.dol_escape_js(!empty($pageno) ? $pageno : '').'"; if (inputko.length>0) { @@ -5183,9 +5192,15 @@ class Form options += "&" + inputname + "=" + encodeURIComponent(inputvalue); }); } - var urljump=pageno + (pageno.indexOf("?") < 0 ? "?" : "") + options; - //alert(urljump); - if (pageno.length > 0) { location.href = urljump; } + if (pageno.length > 0) { + console.log(pageno); + console.log(options); + var post = $.post( + pageno, + options, + () => {location.assign(page)} + ); + } $(this).dialog("close"); } } From 11e97df5581c1fb283006657176ca111516fb019 Mon Sep 17 00:00:00 2001 From: Thomas Negre Date: Thu, 7 Jul 2022 17:38:41 +0200 Subject: [PATCH 2/4] forgot a 'page' parameter for 'no' button --- htdocs/core/class/html.form.class.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index f3c88b55af4..2b70d91b5c4 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -5182,6 +5182,7 @@ class Form "'.dol_escape_js($langs->transnoentities($labelbuttonno)).'": function() { var options = "token='.urlencode(newToken()).'"; var inputko = '.json_encode($inputko).'; /* List of fields into form */ + var page = "'.dol_escape_js(!empty($page) ? $page : '').'"; var pageno="'.dol_escape_js(!empty($pageno) ? $pageno : '').'"; if (inputko.length>0) { $.each(inputko, function(i, inputname) { From 8f505fbd67edc0c15ee3334a2d6e4782b76e6e8c Mon Sep 17 00:00:00 2001 From: Thomas Negre Date: Fri, 8 Jul 2022 16:30:26 +0200 Subject: [PATCH 3/4] formconfirm: redraw the page with the data returned from POST request. This displays errors, if there are. --- htdocs/core/class/html.form.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 2b70d91b5c4..5ba9e139e09 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -5174,7 +5174,7 @@ class Form var post = $.post( pageyes, options, - () => {location.assign(page)} + (data) => {$("body").html(data)} ); } $(this).dialog("close"); @@ -5199,7 +5199,7 @@ class Form var post = $.post( pageno, options, - () => {location.assign(page)} + (data) => {$("body").html(data)} ); } $(this).dialog("close"); From c71000aef6c72ad32bcdea4e2282c664c8c35e24 Mon Sep 17 00:00:00 2001 From: Thomas Negre Date: Mon, 11 Jul 2022 09:18:03 +0200 Subject: [PATCH 4/4] remove useless console.log() --- htdocs/core/class/html.form.class.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 5ba9e139e09..18273b0e509 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -5168,9 +5168,6 @@ class Form }); } if (pageyes.length > 0) { - console.log(page); - console.log(pageyes); - console.log(options); var post = $.post( pageyes, options, @@ -5194,8 +5191,6 @@ class Form }); } if (pageno.length > 0) { - console.log(pageno); - console.log(options); var post = $.post( pageno, options,