-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);
}
var hotkeys_enabled = true;
+var xmlhttp_rpc = Ajax.getTransport();
+
function browser_has_opacity() {
return navigator.userAgent.match("Gecko") != null ||
navigator.userAgent.match("Opera") != null;
}
}
-var xmlhttp_rpc = Ajax.getTransport();
-
function parse_counters(reply, scheduled_call) {
try {
var f_document = getFeedsContext().document;
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);
+ }
+}
+
+
var xmlhttp = Ajax.getTransport();
+var init_params = new Array();
+
function expand_feed_callback() {
if (xmlhttp.readyState == 4) {
try {
}
}
+ if (active_tab != id) {
+ storeInitParam("prefs_active_tab", id);
+ }
+
active_tab = id;
+}
+
+function backend_sanity_check_callback() {
- setCookie('ttrss_pref_acttab', active_tab);
+ 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("");
}
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 =
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);
}
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>
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();
}
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");
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);
}
}
-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);
- }
-}
-
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) {