diff options
author | Andrew Dolgov <[email protected]> | 2009-01-23 18:19:17 +0100 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2009-01-23 18:19:17 +0100 |
commit | 273d1e293e63a27f28a4df7cd603d59d206907ef (patch) | |
tree | 043198d5f4d39d99ce0c621a226b139986496335 | |
parent | e8a429e3f80ea764d603b9f505e938e174fd0e64 (diff) |
new style exception reporting
-rw-r--r-- | functions.js | 83 | ||||
-rw-r--r-- | prefs.php | 14 | ||||
-rw-r--r-- | tt-rss.css | 92 | ||||
-rw-r--r-- | tt-rss.js | 6 | ||||
-rw-r--r-- | tt-rss.php | 23 | ||||
-rw-r--r-- | viewfeed.js | 8 |
6 files changed, 103 insertions, 123 deletions
diff --git a/functions.js b/functions.js index ebf9232e5..0e9ec02a1 100644 --- a/functions.js +++ b/functions.js @@ -16,40 +16,41 @@ function is_opera() { return window.opera; } -function exception_error_ext(location, e, ext_info) { +function exception_error(location, e, ext_info) { var msg = format_exception_error(location, e); - var ebc = document.getElementById("xebContent"); disableHotkeys(); - if (ebc) { - - Element.show("dialog_overlay"); - Element.show("extendedErrorBox"); + try { - if (ext_info) { - if (ext_info.responseText) { - ext_info = ext_info.responseText; + var ebc = document.getElementById("xebContent"); + + if (ebc) { + + Element.show("dialog_overlay"); + Element.show("errorBoxShadow"); + + if (ext_info) { + if (ext_info.responseText) { + ext_info = ext_info.responseText; + } } + + ebc.innerHTML = + "<div><b>Error message:</b></div>" + + "<pre>" + msg + "</pre>" + + "<div><b>Additional information:</b></div>" + + "<textarea readonly=\"1\">" + ext_info + "</textarea>"; + + } else { + alert(msg); } - ebc.innerHTML = - "<div><b>Error message:</b></div>" + - "<pre>" + msg + "</pre>" + - "<div><b>Additional information:</b></div>" + - "<textarea readonly=\"1\">" + ext_info + "</textarea>"; - - } else { + } catch (e) { alert(msg); - } -} - -function exception_error(location, e, silent) { - var msg = format_exception_error(location, e); - if (!silent) { - alert(msg); } + } function format_exception_error(location, e) { @@ -647,7 +648,7 @@ function all_counters_callback2(transport, async_call) { debug("<b>all_counters_callback2 OUT: " + transport + "</b>"); } catch (e) { - exception_error("all_counters_callback2", e); + exception_error("all_counters_callback2", e, transport); } } @@ -655,7 +656,6 @@ function get_feed_unread(id) { try { return parseInt(document.getElementById("FEEDU-" + id).innerHTML); } catch (e) { - exception_error("get_feed_unread", e, true); return -1; } } @@ -667,7 +667,6 @@ function get_cat_unread(id) { ctr = ctr.replace(")", ""); return parseInt(ctr); } catch (e) { - exception_error("get_feed_unread", e, true); return -1; } } @@ -1280,10 +1279,9 @@ function leading_zero(p) { function closeErrorBox() { - if (Element.visible("extendedErrorBox")) { + if (Element.visible("errorBoxShadow")) { Element.hide("dialog_overlay"); - - Element.hide("extendedErrorBox"); + Element.hide("errorBoxShadow"); enableHotkeys(); } @@ -1507,7 +1505,7 @@ function storeInitParam(key, value) { init_params[key] = value; } -function fatalError(code, message) { +function fatalError(code, msg, ext_info) { try { if (code == 6) { @@ -1515,14 +1513,29 @@ function fatalError(code, message) { } else if (code == 5) { window.location.href = "update.php"; } else { - var fe = document.getElementById("fatal_error"); - var fc = document.getElementById("fatal_error_msg"); - if (message == "") message = "Unknown error"; + if (msg == "") msg = "Unknown error"; - fc.innerHTML = "<img src='images/sign_excl.gif'> " + message + " (Code " + code + ")"; + var ebc = document.getElementById("xebContent"); - fe.style.display = "block"; + if (ebc) { + + Element.show("dialog_overlay"); + Element.show("errorBoxShadow"); + Element.hide("xebBtn"); + + if (ext_info) { + if (ext_info.responseText) { + ext_info = ext_info.responseText; + } + } + + ebc.innerHTML = + "<div><b>Error message:</b></div>" + + "<pre>" + msg + "</pre>" + + "<div><b>Additional information:</b></div>" + + "<textarea readonly=\"1\">" + ext_info + "</textarea>"; + } } } catch (e) { @@ -78,7 +78,6 @@ </div> </div> - <div id="hotkey_help_overlay" style="display : none" onclick="Element.hide(this)"> <?php rounded_table_start("hho"); ?> <?php include "help/4.php" ?> @@ -96,11 +95,6 @@ window.onload = init; <ul id="debug_output" style='display : none'><li> </li></ul> -<div id="fatal_error"><div id="fatal_error_inner"> - <h1>Fatal Error</h1> - <div id="fatal_error_msg"><?php echo __('Unknown Error') ?></div> -</div></div> - <div id="prefHeader"> <div class="topLinks"> <?php if (!SINGLE_USER_MODE) { ?> @@ -160,6 +154,14 @@ window.onload = init; <div id="notify" class="notify"><span id="notify_body"> </span></div> <div id="infoBoxShadow"><div id="infoBox">BAH</div></div> +<div id="errorBoxShadow" style="display : none"> + <div id="errorBox"> + <div id="xebTitle">Fatal Exception</div><div id="xebContent"> </div> + <div id="xebBtn" align='center'><input type="submit" + onclick="closeErrorBox()" value="Close this window"/></div> + </div> +</div> + <div id="dialog_overlay" style="display : none"> </div> <div id="prefFooter"> diff --git a/tt-rss.css b/tt-rss.css index 96502b560..ddeb44f54 100644 --- a/tt-rss.css +++ b/tt-rss.css @@ -567,13 +567,25 @@ div.helpResponse { top : -4px; } -html>body #infoBox { +div#errorBox { + background-color : #ffcccc; + border : 1px solid #ff0000; + font-size : 12px; + position: relative; + overflow : hidden; + left : -4px; + top : -4px; +} + + +html>body #infoBox, html>body #errorBox { left : -10px; top : -10px; margin : 0; } -#infoBoxShadow:before, #infoBoxShadow:after { +#infoBoxShadow:before, #infoBoxShadow:after, +#errorBoxShadow:before, #errorBoxShadow:after { content : " "; display : block; background : inherit; @@ -581,7 +593,7 @@ html>body #infoBox { height : 10px; } -#infoBoxShadow:before { +#infoBoxShadow:before, #errorBoxShadow:before { position : absolute; top : 0; right : 0; @@ -589,24 +601,30 @@ html>body #infoBox { background-position : right top; } -#infoBoxShadow:after { +#infoBoxShadow:after, #errorBoxShadow:after { margin : -10px 0 0 -10px; background-position : left bottom; } -#infoBoxShadow { +#infoBoxShadow, #errorBoxShadow { background-image : url("images/shadow.png"); background-position : bottom right; left : 25%; top : 70px; width : 50%; - z-index : 5; position : absolute; - display : none; min-width : 600px; } +#infoBoxShadow { + z-index : 5; +} + +#errorBoxShadow { + z-index : 400; +} + div.infoBoxContents { padding : 10px; margin-bottom : 5px; @@ -1328,44 +1346,6 @@ a.cdmToggleLink:hover { margin : 10px; } -#fatal_error { - background : white; - left : 0; - top : 0; - height : 100%; - width : 100%; - z-index : 200; - display : none; - position : absolute; -} - -#fatal_error_inner { - font-weight : bold; - margin : 10px; - color : red; -} - -#fatal_error_msg { - color : black; - padding : 10px; - font-weight : normal; - background-color : #ffcccc; - border : 1px solid #ff0000; -} - -#fatal_error_msg a { - color : red; -} - -#fatal_error_msg a:hover { - color : red; - text-decoration : underline; -} - -#fatal_error_msg img { - vertical-align : middle; -} - #noDaemonWarning { position : absolute; background-color : #ecf4ff; @@ -2084,19 +2064,7 @@ ul#headlineActionsBody li.insensitive:hover { color : gray; } -div#extendedErrorBox { - left : 25%; - top : 70px; - width : 50%; - z-index : 999; - position : absolute; - min-width : 600px; - background-color : #ffcccc; - border : 1px solid #ff0000; - font-size : 12px; -} - -div#extendedErrorBox div#xebTitle { +div#errorBox div#xebTitle { background-color : #ff0000; color : white; padding : 4px 2px 4px 10px; @@ -2105,16 +2073,18 @@ div#extendedErrorBox div#xebTitle { font-size : 12px; } -div#extendedErrorBox div#xebContent { +div#errorBox div#xebContent { font-size : 12px; padding : 10px; } -div#extendedErrorBox textarea { +div#errorBox textarea { width : 100%; height : 200px; } -div#extendedErrorBox input { +div#errorBox input { margin-bottom : 10px; } + + @@ -131,14 +131,14 @@ function backend_sanity_check_callback(transport) { } if (!transport.responseXML) { - fatalError(3, "[D001, Received reply is not XML]: " + transport.responseText); + fatalError(3, "Sanity check: Received reply is not XML", transport.responseText); return; } var reply = transport.responseXML.firstChild.firstChild; if (!reply) { - fatalError(3, "[D002, Invalid RPC reply]: " + transport.responseText); + fatalError(3, "Sanity check: invalid RPC reply", transport.responseText); return; } @@ -170,7 +170,7 @@ function backend_sanity_check_callback(transport) { init_second_stage(); } catch (e) { - exception_error("backend_sanity_check_callback", e); + exception_error("backend_sanity_check_callback", e, transport); } } diff --git a/tt-rss.php b/tt-rss.php index 8f1dadd9e..5ab205e25 100644 --- a/tt-rss.php +++ b/tt-rss.php @@ -51,14 +51,6 @@ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> - <div id="extendedErrorBox" style="display : none"> - <div id="xebTitle">Fatal Exception</div> - <div id="xebContent"> </div> - <div align='center'> - <input type="submit" onclick="closeErrorBox()" value="Close this window"/> - </div> - </div> - <script type="text/javascript"> //<![CDATA[ if (navigator.userAgent.match("Opera")) { @@ -96,11 +88,6 @@ <div id="notify" class="notify"><span id="notify_body"> </span></div> -<div id="fatal_error"><div id="fatal_error_inner"> - <h1>Fatal Error</h1> - <div id="fatal_error_msg">Unknown Error</div> -</div></div> - <div id="dialog_overlay" style="display : none"> </div> <script type="text/javascript"> @@ -112,7 +99,15 @@ window.onload = init; <ul id="debug_output" style='display : none'><li> </li></ul> -<div id="infoBoxShadow"><div id="infoBox"> </div></div> +<div id="infoBoxShadow" style="display : none"><div id="infoBox"> </div></div> + +<div id="errorBoxShadow" style="display : none"> + <div id="errorBox"> + <div id="xebTitle">Fatal Exception</div><div id="xebContent"> </div> + <div id="xebBtn" align='center'><input type="submit" + onclick="closeErrorBox()" value="Close this window"/></div> + </div> +</div> <div id="header"> <div class="topLinks"> diff --git a/viewfeed.js b/viewfeed.js index 489a014d6..0be41d776 100644 --- a/viewfeed.js +++ b/viewfeed.js @@ -39,7 +39,7 @@ function catchup_callback2(transport, callback) { setTimeout(callback, 10); } } catch (e) { - exception_error("catchup_callback2", e); + exception_error("catchup_callback2", e, transport); } } @@ -234,7 +234,7 @@ function headlines_callback2(transport, feed_cur_page) { remove_splash(); } catch (e) { - exception_error_ext("headlines_callback2", e, transport); + exception_error("headlines_callback2", e, transport); } } @@ -290,7 +290,7 @@ function showArticleInHeadlines(id) { view_mode = document.forms['main_toolbar_form'].view_mode; view_mode = view_mode[view_mode.selectedIndex].value; } catch (e) { - exception_error("showArticleInHeadlines/viewmode", e, true); + // } if (upd_img_pic && upd_img_pic.src.match("updated.png")) { @@ -386,7 +386,7 @@ function article_callback2(transport, id, feed_id) { notify(""); } catch (e) { - exception_error("article_callback2", e); + exception_error("article_callback2", e, transport); } } |