add sanity check & debug mode to prefs; misc code cleanups
This commit is contained in:
parent
ee1f45f4c7
commit
a756529344
6 changed files with 101 additions and 80 deletions
24
feedlist.js
24
feedlist.js
|
@ -1,29 +1,7 @@
|
|||
var xmlhttp = false;
|
||||
var xmlhttp = Ajax.getTransport();
|
||||
|
||||
var cat_view_mode = false;
|
||||
|
||||
/*@cc_on @*/
|
||||
/*@if (@_jscript_version >= 5)
|
||||
// JScript gives us Conditional compilation, we can cope with old IE versions.
|
||||
// and security blocked creation of the objects.
|
||||
try {
|
||||
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
|
||||
} catch (e) {
|
||||
try {
|
||||
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
|
||||
xmlhttp_rpc = new ActiveXObject("Microsoft.XMLHTTP");
|
||||
} catch (E) {
|
||||
xmlhttp = false;
|
||||
xmlhttp_rpc = false;
|
||||
}
|
||||
}
|
||||
@end @*/
|
||||
|
||||
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
|
||||
xmlhttp = new XMLHttpRequest();
|
||||
xmlhttp_rpc = new XMLHttpRequest();
|
||||
}
|
||||
|
||||
function viewCategory(cat) {
|
||||
viewfeed(cat, 0, '', false, true);
|
||||
}
|
||||
|
|
20
functions.js
20
functions.js
|
@ -1,5 +1,7 @@
|
|||
var hotkeys_enabled = true;
|
||||
|
||||
var xmlhttp_rpc = Ajax.getTransport();
|
||||
|
||||
function browser_has_opacity() {
|
||||
return navigator.userAgent.match("Gecko") != null ||
|
||||
navigator.userAgent.match("Opera") != null;
|
||||
|
@ -463,8 +465,6 @@ function setActiveFeedId(id) {
|
|||
}
|
||||
}
|
||||
|
||||
var xmlhttp_rpc = Ajax.getTransport();
|
||||
|
||||
function parse_counters(reply, scheduled_call) {
|
||||
try {
|
||||
var f_document = getFeedsContext().document;
|
||||
|
@ -1159,3 +1159,19 @@ function storeInitParam(key, value, is_client) {
|
|||
exception_error("storeInitParam", e);
|
||||
}
|
||||
}
|
||||
|
||||
function fatalError(code, message) {
|
||||
try {
|
||||
var fe = document.getElementById("fatal_error");
|
||||
var fc = document.getElementById("fatal_error_msg");
|
||||
|
||||
fc.innerHTML = "Code " + code + ": " + message;
|
||||
|
||||
fe.style.display = "block";
|
||||
|
||||
} catch (e) {
|
||||
exception_error("fatalError", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
81
prefs.js
81
prefs.js
|
@ -10,6 +10,8 @@ var piggie_fwd = true;
|
|||
|
||||
var xmlhttp = Ajax.getTransport();
|
||||
|
||||
var init_params = new Array();
|
||||
|
||||
function expand_feed_callback() {
|
||||
if (xmlhttp.readyState == 4) {
|
||||
try {
|
||||
|
@ -1157,9 +1159,69 @@ function selectTab(id, noupdate) {
|
|||
}
|
||||
}
|
||||
|
||||
active_tab = id;
|
||||
if (active_tab != id) {
|
||||
storeInitParam("prefs_active_tab", id);
|
||||
}
|
||||
|
||||
setCookie('ttrss_pref_acttab', active_tab);
|
||||
active_tab = id;
|
||||
}
|
||||
|
||||
function backend_sanity_check_callback() {
|
||||
|
||||
if (xmlhttp.readyState == 4) {
|
||||
|
||||
try {
|
||||
|
||||
if (!xmlhttp.responseXML) {
|
||||
fatalError(3, "[D001, Received reply is not XML]: " + xmlhttp.responseText);
|
||||
return;
|
||||
}
|
||||
|
||||
var reply = xmlhttp.responseXML.firstChild.firstChild;
|
||||
|
||||
if (!reply) {
|
||||
fatalError(3, "[D002, Invalid RPC reply]: " + xmlhttp.responseText);
|
||||
return;
|
||||
}
|
||||
|
||||
var error_code = reply.getAttribute("error-code");
|
||||
|
||||
if (error_code && error_code != 0) {
|
||||
return fatalError(error_code, reply.getAttribute("error-msg"));
|
||||
}
|
||||
|
||||
debug("sanity check ok");
|
||||
|
||||
var params = reply.nextSibling;
|
||||
|
||||
if (params) {
|
||||
debug('reading init-params...');
|
||||
var param = params.firstChild;
|
||||
|
||||
while (param) {
|
||||
var k = param.getAttribute("key");
|
||||
var v = param.getAttribute("value");
|
||||
debug(k + " => " + v);
|
||||
init_params[k] = v;
|
||||
param = param.nextSibling;
|
||||
}
|
||||
}
|
||||
|
||||
init_second_stage();
|
||||
|
||||
} catch (e) {
|
||||
exception_error("backend_sanity_check_callback", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function init_second_stage() {
|
||||
|
||||
active_tab = getInitParam("prefs_active_tab");
|
||||
if (!active_tab) active_tab = "genConfig";
|
||||
selectTab(active_tab);
|
||||
|
||||
notify("");
|
||||
|
||||
}
|
||||
|
||||
|
@ -1170,6 +1232,11 @@ function init() {
|
|||
if (arguments.callee.done) return;
|
||||
arguments.callee.done = true;
|
||||
|
||||
if (getURLParam('debug')) {
|
||||
document.getElementById('debug_output').style.display = 'block';
|
||||
debug('debug mode activated');
|
||||
}
|
||||
|
||||
// IE kludge
|
||||
if (!xmlhttp) {
|
||||
document.getElementById("prefContent").innerHTML =
|
||||
|
@ -1178,12 +1245,10 @@ function init() {
|
|||
return;
|
||||
}
|
||||
|
||||
active_tab = getCookie("ttrss_pref_acttab");
|
||||
if (!active_tab) active_tab = "genConfig";
|
||||
selectTab(active_tab);
|
||||
|
||||
document.onkeydown = hotkey_handler;
|
||||
notify("");
|
||||
xmlhttp.open("GET", "backend.php?op=rpc&subop=sanityCheck", true);
|
||||
xmlhttp.onreadystatechange=backend_sanity_check_callback;
|
||||
xmlhttp.send(null);
|
||||
|
||||
} catch (e) {
|
||||
exception_error("init", e);
|
||||
}
|
||||
|
|
|
@ -77,6 +77,13 @@ if (document.addEventListener) {
|
|||
window.onload = init;
|
||||
</script>
|
||||
|
||||
<ul id="debug_output"></ul>
|
||||
|
||||
<div id="fatal_error"><div id="fatal_error_inner">
|
||||
<h1>Fatal Error</h1>
|
||||
<div id="fatal_error_msg">Unknown Error</div>
|
||||
</div></div>
|
||||
|
||||
<table width="100%" height="100%" cellspacing="0" cellpadding="0" class="main">
|
||||
<? if (get_pref($link, 'DISPLAY_HEADER')) { ?>
|
||||
<tr>
|
||||
|
|
28
tt-rss.js
28
tt-rss.js
|
@ -173,7 +173,7 @@ function scheduleFeedUpdate(force) {
|
|||
var date = new Date();
|
||||
|
||||
if (!xmlhttp_ready(xmlhttp) && last_refetch < date.getTime() / 1000 - 60) {
|
||||
debug("xmlhttp seems to be stuck, aborting");
|
||||
debug("<b>xmlhttp seems to be stuck, aborting</b>");
|
||||
xmlhttp.abort();
|
||||
}
|
||||
|
||||
|
@ -389,15 +389,6 @@ function init_second_stage() {
|
|||
|
||||
if (navigator.userAgent.match("Opera")) {
|
||||
resize_feeds_frame();
|
||||
|
||||
/* // fix headlines frame height for Opera
|
||||
var h = document.getElementById("headlines");
|
||||
var c = document.getElementById("content");
|
||||
var nh = document.body.scrollHeight * 0.25;
|
||||
|
||||
h.style.height = nh + "px";
|
||||
c.style.height = c.scrollHeight - nh + "px"; */
|
||||
|
||||
}
|
||||
|
||||
debug("second stage ok");
|
||||
|
@ -479,9 +470,6 @@ function qfdDelete(feed_id) {
|
|||
return
|
||||
}
|
||||
|
||||
// var feeds_doc = window.frames["feeds-frame"].document;
|
||||
// feeds_doc.location.href = "backend.php?op=error&msg=Loading,%20please wait...";
|
||||
|
||||
_qfd_deleted_feed = feed_id;
|
||||
|
||||
xmlhttp.open("GET", "backend.php?op=pref-feeds&quiet=1&subop=remove&ids=" + feed_id);
|
||||
|
@ -523,18 +511,4 @@ function toggleDispRead() {
|
|||
}
|
||||
}
|
||||
|
||||
function fatalError(code, message) {
|
||||
try {
|
||||
var fe = document.getElementById("fatal_error");
|
||||
var fc = document.getElementById("fatal_error_msg");
|
||||
|
||||
fc.innerHTML = "Code " + code + ": " + message;
|
||||
|
||||
fe.style.display = "block";
|
||||
|
||||
} catch (e) {
|
||||
exception_error("fatalError", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
21
viewfeed.js
21
viewfeed.js
|
@ -1,25 +1,6 @@
|
|||
var active_post_id = false;
|
||||
|
||||
var xmlhttp_rpc = false;
|
||||
|
||||
/*@cc_on @*/
|
||||
/*@if (@_jscript_version >= 5)
|
||||
// JScript gives us Conditional compilation, we can cope with old IE versions.
|
||||
// and security blocked creation of the objects.
|
||||
try {
|
||||
xmlhttp_rpc = new ActiveXObject("Msxml2.XMLHTTP");
|
||||
} catch (e) {
|
||||
try {
|
||||
xmlhttp_rpc = new ActiveXObject("Microsoft.XMLHTTP");
|
||||
} catch (E) {
|
||||
xmlhttp_rpc = false;
|
||||
}
|
||||
}
|
||||
@end @*/
|
||||
|
||||
if (!xmlhttp_rpc && typeof XMLHttpRequest!='undefined') {
|
||||
xmlhttp_rpc = new XMLHttpRequest();
|
||||
}
|
||||
var xmlhttp_rpc = Ajax.getTransport();
|
||||
|
||||
function view(id, feed_id) {
|
||||
|
||||
|
|
Loading…
Reference in a new issue