summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--functions.js83
-rw-r--r--prefs.php14
-rw-r--r--tt-rss.css92
-rw-r--r--tt-rss.js6
-rw-r--r--tt-rss.php23
-rw-r--r--viewfeed.js8
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) {
diff --git a/prefs.php b/prefs.php
index bd29bd8b2..7223b3b3d 100644
--- a/prefs.php
+++ b/prefs.php
@@ -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>&nbsp;</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">&nbsp;</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">&nbsp;</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;
}
+
+
diff --git a/tt-rss.js b/tt-rss.js
index 1717cfbe2..2b6f7f822 100644
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -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">&nbsp;</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">&nbsp;</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>&nbsp;</li></ul>
-<div id="infoBoxShadow"><div id="infoBox">&nbsp;</div></div>
+<div id="infoBoxShadow" style="display : none"><div id="infoBox">&nbsp;</div></div>
+
+<div id="errorBoxShadow" style="display : none">
+ <div id="errorBox">
+ <div id="xebTitle">Fatal Exception</div><div id="xebContent">&nbsp;</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);
}
}