From ac378ad4ec0b870931b16daebcf0c1f22f9fa303 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 23 May 2006 07:03:08 +0100 Subject: [PATCH] getMainContext() and related JS-stuff --- feedlist.js | 2 +- functions.js | 38 ++++++++++++++++++++++++++++++++------ tt-rss.js | 27 ++++++++------------------- 3 files changed, 41 insertions(+), 26 deletions(-) diff --git a/feedlist.js b/feedlist.js index 66ae169cd..599c7e7c5 100644 --- a/feedlist.js +++ b/feedlist.js @@ -111,7 +111,7 @@ function viewfeed(feed, skip, subop, doc, is_cat, subop_param) { query = query + "&ts=" + timestamp } - parent.debug(query); + debug(query); headlines_frame.location.href = query; diff --git a/functions.js b/functions.js index 5940174d3..384f34827 100644 --- a/functions.js +++ b/functions.js @@ -413,8 +413,13 @@ function setActiveFeedId(id) { var xmlhttp_rpc = Ajax.getTransport(); -function parse_counters(reply, f_document, title_obj, scheduled_call) { +function parse_counters(reply, scheduled_call) { try { + var f_document = getMainContext().frames["feeds-frame"].document; + var title_obj = getMainContext(); + + debug("F_DOC: " + f_document + ", T_OBJ: " + title_obj); + for (var l = 0; l < reply.childNodes.length; l++) { if (!reply.childNodes[l] || typeof(reply.childNodes[l].getAttribute) == "undefined") { @@ -498,9 +503,6 @@ function parse_counters(reply, f_document, title_obj, scheduled_call) { } } -// this one is called from feedlist context -// thus title_obj passed to parse_counters is parent (e.g. main ttrss window) - function all_counters_callback() { if (xmlhttp_rpc.readyState == 4) { try { @@ -515,9 +517,9 @@ function all_counters_callback() { } var reply = xmlhttp_rpc.responseXML.firstChild; - var f_document = parent.frames["feeds-frame"].document; +// var f_document = parent.frames["feeds-frame"].document; - parse_counters(reply, f_document, parent); + parse_counters(reply); } catch (e) { exception_error("all_counters_callback", e); @@ -1054,4 +1056,28 @@ function filterCR(e) return true; } +function getMainContext() { + if (parent.window != window) { + return parent.window; + } else { + return this.window; + } +} + +function debug(msg) { + var ctx = getMainContext(); + + var c = ctx.document.getElementById('debug_output'); + if (c && c.style.display == "block") { + while (c.lastChild != 'undefined' && c.childNodes.length > 20) { + c.removeChild(c.lastChild); + } + + var d = new Date(); + var ts = leading_zero(d.getHours()) + ":" + leading_zero(d.getMinutes()) + + ":" + leading_zero(d.getSeconds()); + c.innerHTML = "
  • [" + ts + "] " + msg + "
  • " + c.innerHTML; + } +} + diff --git a/tt-rss.js b/tt-rss.js index c7e6cbcd7..ed6cae91e 100644 --- a/tt-rss.js +++ b/tt-rss.js @@ -95,9 +95,7 @@ function refetch_callback() { return fatalError(error_code, reply.getAttribute("error-msg")); } - var f_document = window.frames["feeds-frame"].document; - - parse_counters(reply, f_document, window, true); + parse_counters(reply, true); debug("refetch_callback: done"); @@ -582,20 +580,6 @@ function toggleDispRead() { } } -function debug(msg) { - var c = document.getElementById('debug_output'); - if (c && c.style.display == "block") { - while (c.lastChild != 'undefined' && c.childNodes.length > 20) { - c.removeChild(c.lastChild); - } - - var d = new Date(); - var ts = leading_zero(d.getHours()) + ":" + leading_zero(d.getMinutes()) + - ":" + leading_zero(d.getSeconds()); - c.innerHTML = "
  • [" + ts + "] " + msg + "
  • " + c.innerHTML; - } -} - function fatalError(code, message) { try { var fe = document.getElementById("fatal_error"); @@ -615,6 +599,11 @@ function getInitParam(key) { } function storeInitParam(key, value) { - new Ajax.Request("backend.php?op=rpc&subop=storeParam&key=" + - param_escape(key) + "&value=" + param_escape(value)); + try { + init_params[key] = value; + new Ajax.Request("backend.php?op=rpc&subop=storeParam&key=" + + param_escape(key) + "&value=" + param_escape(value)); + } catch (e) { + exception_error("storeInitParam", e); + } }