]> git.wh0rd.org - tt-rss.git/blobdiff - functions.js
part of #276: if the html page has only one single feed, we subscribe to that one...
[tt-rss.git] / functions.js
index 8b4945edcef63fe2df9c1c354c2612d18fdcfa5a..af18f8383629e52ab694af6fffc5e12f7b567255 100644 (file)
@@ -15,9 +15,9 @@ Array.prototype.remove = function(s) {
 /* create console.log if it doesn't exist */
 
 if (!window.console) console = {};
-console.log = console.log || function(msg) { debug(msg); };
-console.warn = console.warn || function(msg) { debug(msg); };
-console.error = console.error || function(msg) { debug(msg); };
+console.log = console.log || function(msg) { };
+console.warn = console.warn || function(msg) { };
+console.error = console.error || function(msg) { };
 
 function exception_error(location, e, ext_info) {
        var msg = format_exception_error(location, e);
@@ -1319,6 +1319,7 @@ function subscribeToFeed() {
                                }
                                break;
                        case 2:
+                       case 3:
                                alert(__("Can't subscribe to the specified URL."));
                                break;
                        case 0:
@@ -1356,28 +1357,6 @@ function filterCR(e, f)
        }
 }
 
-var debug_last_class = "even";
-
-function debug(msg) {
-
-       if (debug_last_class == "even") {
-               debug_last_class = "odd";
-       } else {
-               debug_last_class = "even";
-       }
-
-       var c = $('debug_output');
-       if (c && Element.visible(c)) {
-               while (c.lastChild != 'undefined' && c.childNodes.length > 100) {
-                       c.removeChild(c.lastChild);
-               }
-       
-               var ts = make_timestamp();
-               c.innerHTML = "<li class=\"" + debug_last_class + "\"><span class=\"debugTS\">[" + ts + "]</span> " + 
-                       msg + "</li>" + c.innerHTML;
-       }
-}
-
 function getInitParam(key) {
        return init_params[key];
 }
@@ -1655,36 +1634,6 @@ function openArticleInNewWindow(id) {
        }
 }
 
-/* http://textsnippets.com/posts/show/835 */
-
-Position.GetWindowSize = function(w) {
-        w = w ? w : window;
-        var width = w.innerWidth || (w.document.documentElement.clientWidth || w.document.body.clientWidth);
-        var height = w.innerHeight || (w.document.documentElement.clientHeight || w.document.body.clientHeight);
-        return [width, height]
-}
-
-/* http://textsnippets.com/posts/show/836 */
-
-Position.Center = function(element, parent) {
-        var w, h, pw, ph;
-        var d = Element.getDimensions(element);
-        w = d.width;
-        h = d.height;
-        Position.prepare();
-        if (!parent) {
-                var ws = Position.GetWindowSize();
-                pw = ws[0];
-                ph = ws[1];
-        } else {
-                pw = parent.offsetWidth;
-                ph = parent.offsetHeight;
-        }
-        element.style.top = (ph/2) - (h/2) -  Position.deltaY + "px";
-        element.style.left = (pw/2) - (w/2) -  Position.deltaX + "px";
-}
-
-
 function isCdmMode() {
        return !$("headlinesList");
 }
@@ -2191,3 +2140,95 @@ function has_local_storage() {
                return false;
        }
 }
+
+function catSelectOnChange(elem) {
+       try {
+               var value = elem[elem.selectedIndex].value;
+               var def = elem.getAttribute('default');
+
+               if (value == "ADD_CAT") {
+
+                       if (def)
+                               dropboxSelect(elem, def);
+                       else
+                               elem.selectedIndex = 0;
+
+                       quickAddCat(elem);
+               }
+
+       } catch (e) {
+               exception_error("catSelectOnChange", e);
+       }
+}
+
+function quickAddCat(select) {
+       try {
+               var cat = prompt(__("Please enter category title:"));
+
+               if (cat) {
+
+                       var query = "?op=rpc&subop=quickAddCat&cat=" + param_escape(cat);
+
+                       new Ajax.Request("backend.php", {
+                               parameters: query,
+                               onComplete: function (transport) {
+                                       var response = transport.responseXML;
+
+                                       var payload = response.getElementsByTagName("payload")[0];
+
+                                       if (payload)
+                                               select.innerHTML = payload.firstChild.nodeValue;
+
+                       } });
+
+               }
+
+       } catch (e) {
+               exception_error("quickAddCat", e);
+       }
+}
+
+function genUrlChangeKey(feed, is_cat) {
+
+       try {
+               var ok = confirm(__("Generate new syndication address for this feed?"));
+       
+               if (ok) {
+       
+                       notify_progress("Trying to change address...", true);
+       
+                       var query = "?op=rpc&subop=regenFeedKey&id=" + param_escape(feed) + 
+                               "&is_cat=" + param_escape(is_cat);
+
+                       new Ajax.Request("backend.php", {
+                               parameters: query,
+                               onComplete: function(transport) {
+                                               var new_link = transport.responseXML.getElementsByTagName("link")[0];
+       
+                                               var e = $('gen_feed_url');
+       
+                                               if (new_link) {
+                                                       
+                                                       new_link = new_link.firstChild.nodeValue;
+
+                                                       e.innerHTML = e.innerHTML.replace(/\&amp;key=.*$/, 
+                                                               "&amp;key=" + new_link);
+
+                                                       e.href = e.href.replace(/\&amp;key=.*$/,
+                                                               "&amp;key=" + new_link);
+
+                                                       new Effect.Highlight(e);
+
+                                                       notify('');
+       
+                                               } else {
+                                                       notify_error("Could not change feed URL.");
+                                               }
+                               } });
+               }
+       } catch (e) {
+               exception_error("genUrlChangeKey", e);
+       }
+       return false;
+}
+