]> git.wh0rd.org - tt-rss.git/blobdiff - functions.js
iframify main interface, numerous javascript cleanups
[tt-rss.git] / functions.js
index 8cd5b47cae976467f3e3dc9ec21a29509332060d..cb241ada6c2747834f204a19b574e31dbcc9230a 100644 (file)
@@ -1,3 +1,32 @@
+var hotkeys_enabled = true;
+
+function disableHotkeys() {
+       hotkeys_enabled = false;
+}
+
+function enableHotkeys() {
+       hotkeys_enabled = true;
+}
+
+function xmlhttp_ready(obj) {
+       return obj.readyState == 4 || obj.readyState == 0 || !obj.readyState;
+}
+
+
+function notify_callback() {
+       var container = document.getElementById('notify');
+       if (xmlhttp.readyState == 4) {
+               container.innerHTML=xmlhttp.responseText;
+       }
+}
+
+function rpc_notify_callback() {
+       var container = document.getElementById('notify');
+       if (xmlhttp_rpc.readyState == 4) {
+               container.innerHTML=xmlhttp_rpc.responseText;
+       }
+}
+
 function param_escape(arg) {
        if (typeof encodeURIComponent != 'undefined')
                return encodeURIComponent(arg); 
@@ -25,6 +54,8 @@ function notify(msg) {
 
        var n = document.getElementById("notify");
 
+       if (!n) return;
+
        n.innerHTML = msg;
 
        if (msg.length == 0) {
@@ -36,14 +67,16 @@ function notify(msg) {
 }
 
 function printLockingError() {
-       notify("Please wait until operation finishes");
-}
+       notify("Please wait until operation finishes");}
 
 var seq = "";
 
 function hotkey_handler(e) {
+
        var keycode;
 
+       if (!hotkeys_enabled) return;
+
        if (window.event) {
                keycode = window.event.keyCode;
        } else if (e) {
@@ -64,7 +97,82 @@ function hotkey_handler(e) {
                localPiggieFunction(false);
        }
 
+       if (typeof localHotkeyHandler != 'undefined') {
+               localHotkeyHandler(keycode);
+       }
+
 }
 
+function cleanSelected(element) {
+       var content = document.getElementById(element);
+
+       var rows = new Array();
+
+       for (i = 0; i < content.rows.length; i++) {
+               content.rows[i].className = content.rows[i].className.replace("Selected", "");
+       }
+
+}
+
+function getVisibleUnreadHeadlines() {
+       var content = document.getElementById("headlinesList");
+
+       var rows = new Array();
+
+       for (i = 0; i < content.rows.length; i++) {
+               var row_id = content.rows[i].id.replace("RROW-", "");
+               if (row_id.length > 0 && content.rows[i].className.match("Unread")) {
+                               rows.push(row_id);      
+               }
+       }
+       return rows;
+}
+
+function getVisibleHeadlineIds() {
+
+       var content = document.getElementById("headlinesList");
+
+       var rows = new Array();
+
+       for (i = 0; i < content.rows.length; i++) {
+               var row_id = content.rows[i].id.replace("RROW-", "");
+               if (row_id.length > 0) {
+                               rows.push(row_id);      
+               }
+       }
+       return rows;
+}
+
+function getFirstVisibleHeadlineId() {
+       var rows = getVisibleHeadlineIds();
+       return rows[0];
+}
+
+function getLastVisibleHeadlineId() {
+       var rows = getVisibleHeadlineIds();
+       return rows[rows.length-1];
+}
+
+function markHeadline(id) {
+       var row = document.getElementById("RROW-" + id);
+       if (row) {
+               row.className = row.className + "Selected";
+       }
+}
+
+function getFeedIds() {
+       var content = document.getElementById("feedsList");
+
+       var rows = new Array();
+
+       for (i = 0; i < content.rows.length; i++) {
+               var id = content.rows[i].id.replace("FEEDR-", "");
+               if (id.length > 0) {
+                       rows.push(id);
+               }
+       }
+
+       return rows;
+}