]> git.wh0rd.org Git - tt-rss.git/commitdiff
getMainContext() and related JS-stuff
authorAndrew Dolgov <fox@madoka.spb.ru>
Tue, 23 May 2006 06:03:08 +0000 (07:03 +0100)
committerAndrew Dolgov <fox@madoka.spb.ru>
Tue, 23 May 2006 06:03:08 +0000 (07:03 +0100)
feedlist.js
functions.js
tt-rss.js

index 66ae169cdf0fcc7f24a0440ae81fb99f5bf57bb5..599c7e7c589abe12b4f595220af6414c6794f92b 100644 (file)
@@ -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;
        
index 5940174d30b646f4239d6adca13b30b164985768..384f34827c8b20e12c90f6db297ca1c400e6d79b 100644 (file)
@@ -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 = "<li>[" + ts + "] " + msg + "</li>" + c.innerHTML;
+       }
+}
+
 
index c7e6cbcd79c79da0b99ea1eac955d2d6063a5e8e..ed6cae91e5f274ae3452aa59d43916081ea53b4a 100644 (file)
--- 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 = "<li>[" + ts + "] " + msg + "</li>" + 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);
+       }
 }