diff --git a/js/layouts/dashboard/dashboard.js b/js/layouts/dashboard/dashboard.js index fcd5a5024d..04e2b2c337 100644 --- a/js/layouts/dashboard/dashboard.js +++ b/js/layouts/dashboard/dashboard.js @@ -321,8 +321,12 @@ class IboDashboard extends HTMLElement { // This payload shape is expected by the server const aPayload = this.Serialize(); - let sSaveUrl = GetAbsoluteUrlAppRoot() + '/pages/UI.php?route=dashboard.save&values='+encodeURIComponent(JSON.stringify(aPayload)); - fetch(sSaveUrl) + let sSaveUrl = GetAbsoluteUrlAppRoot() + '/pages/UI.php?route=dashboard.save'; + + fetch(sSaveUrl, { + method: "POST", + body: new URLSearchParams({ values: JSON.stringify(aPayload) }), + }) .then(async data => { const res = await data.json(); if(res.status === 'ok') { diff --git a/sources/Application/Dashboard/Controller/DashboardController.php b/sources/Application/Dashboard/Controller/DashboardController.php index ff089e6042..9973355516 100644 --- a/sources/Application/Dashboard/Controller/DashboardController.php +++ b/sources/Application/Dashboard/Controller/DashboardController.php @@ -97,7 +97,7 @@ class DashboardController extends Controller public function OperationSave() { - $sViewData = utils::ReadParam('values', '', false, utils::ENUM_SANITIZATION_FILTER_RAW_DATA); + $sViewData = utils::ReadPostedParam('values', '', utils::ENUM_SANITIZATION_FILTER_RAW_DATA); $aViewData = !empty($sViewData) ? json_decode($sViewData, true, 20) : []; try { @@ -127,7 +127,8 @@ class DashboardController extends Controller $aFormErrors = $oForm->getErrors(true, true); $sMessage = $aFormErrors->__toString(); } - } catch (Exception $e) { + } + catch (Exception $e) { IssueLog::Exception($e->getMessage(), $e); $sStatus = 'error'; $sMessage = $e->getMessage(); @@ -135,10 +136,11 @@ class DashboardController extends Controller $oPage = new JsonPage(); $oPage->SetData([ - 'status' => $sStatus, + 'status' => $sStatus, 'message' => $sMessage, ]); $oPage->SetOutputDataOnly(true); + return $oPage; } @@ -203,9 +205,11 @@ class DashboardController extends Controller $oDoc = utils::ReadPostedDocument('dashboard_upload_file'); $oDashboard->FromXml($oDoc->GetData()); $oDashboard->PersistDashboard($oDoc->GetData()); - } catch (DOMException $e) { + } + catch (DOMException $e) { $aResult = ['error' => Dict::S('UI:Error:InvalidDashboardFile')]; - } catch (Exception $e) { + } + catch (Exception $e) { $aResult = ['error' => $e->getMessage()]; } } else {