From f66492d357010a2e5ec11e07fd6db9825184d37d Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sat, 20 Apr 2013 10:43:21 +0400 Subject: [PATCH] better javascript error reporting, save error reports in tt-rss log --- classes/rpc.php | 11 +++++++++++ js/functions.js | 38 +++++++++++++++++++++++++++++++++++++- 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/classes/rpc.php b/classes/rpc.php index 61c815b3..750aa2cb 100644 --- a/classes/rpc.php +++ b/classes/rpc.php @@ -634,5 +634,16 @@ class RPC extends Handler_Protected { } } + function log() { + $logmsg = $this->dbh->escape_string($_REQUEST['logmsg']); + + if ($logmsg) { + Logger::get()->log_error(E_USER_WARNING, + $logmsg, '[client-js]', 0, false); + } + + echo json_encode(array("message" => "HOST_ERROR_LOGGED")); + + } } ?> diff --git a/js/functions.js b/js/functions.js index 04be58bf..8442e1c9 100644 --- a/js/functions.js +++ b/js/functions.js @@ -50,6 +50,21 @@ function exception_error(location, e, ext_info) { } } + try { + new Ajax.Request("backend.php", { + parameters: {op: "rpc", method: "log", logmsg: msg}, + onComplete: function (transport) { + console.log(transport.responseText); + } }); + + } catch (eii) { + console.log("Exception while trying to log the error."); + console.log(eii); + } + + msg += "

"+ __("The error will be reported to the configured log destination.") + + "

"; + var content = "
" + "
" + msg + "
"; @@ -106,7 +121,28 @@ function exception_error(location, e, ext_info) { dialog.show(); - } catch (e) { + } catch (ei) { + console.log("Exception while trying to report an exception. Oh boy."); + console.log(ei); + console.log("Original exception:"); + console.log(e); + + msg += "\n\nAdditional exception caught while trying to show the error dialog.\n\n" + format_exception_error('exception_error', ei); + + try { + new Ajax.Request("backend.php", { + parameters: {op: "rpc", method: "log", logmsg: msg}, + onComplete: function (transport) { + console.log(transport.responseText); + } }); + + } catch (eii) { + console.log("Third exception while trying to log the error! Seriously?"); + console.log(eii); + } + + msg += "\n\nThe error will be reported to the configured log destination."; + alert(msg); } -- 2.39.2