From e83d83e897be12374817326a8a934e77271f9b8c Mon Sep 17 00:00:00 2001 From: Florent Bruneau Date: Fri, 7 Nov 2008 19:24:00 +0100 Subject: [PATCH] Rewrite auto_links stuff using jQuery. Signed-off-by: Florent Bruneau --- htdocs/javascript/close_on_esc.js | 14 +++--- htdocs/javascript/xorg.js | 102 ++++++++++++++------------------------ 2 files changed, 43 insertions(+), 73 deletions(-) diff --git a/htdocs/javascript/close_on_esc.js b/htdocs/javascript/close_on_esc.js index 5cb8e09..0ff10ad 100644 --- a/htdocs/javascript/close_on_esc.js +++ b/htdocs/javascript/close_on_esc.js @@ -18,13 +18,11 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ***************************************************************************/ -function closePopup(e) { - e = e || window.event; - if (e.keyCode == 27) { - window.close(); - } -} - -attachEvent(window, 'keydown', closePopup); +$(window).keydown( + function(e) { + if (e.keyCode == 27) { + window.close(); + } + }); // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: diff --git a/htdocs/javascript/xorg.js b/htdocs/javascript/xorg.js index e8b7952..56f0dc8 100644 --- a/htdocs/javascript/xorg.js +++ b/htdocs/javascript/xorg.js @@ -72,28 +72,6 @@ function addSearchEngine() } // }}} -// {{{ Events - -function eventClosure(obj, methodName) { - return (function(e) { - e = e || window.event; - return obj[methodName](e); - }); -} - -function attachEvent(obj, evt, f, useCapture) { - if (!useCapture) useCapture = false; - - if (obj.addEventListener) { - obj.addEventListener(evt, f, useCapture); - return true; - } else if (obj.attachEvent) { - return obj.attachEvent("on"+evt, f); - } - return false; -} - -// }}} // {{{ dynpost() function dynpost(action, values) @@ -117,6 +95,7 @@ function dynpost(action, values) form.submit(); } + function dynpostkv(action, k, v) { var dict = {}; @@ -149,9 +128,10 @@ RegExp.escape = function(text) { // {{{ function popWin() -function popWin(theNode,w,h) { +function popWin(theNode, w, h) { window.open(theNode.href, '_blank', - 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width='+w+',height='+h); + 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width='+w+',height='+h); + return false; } // }}} @@ -236,48 +216,46 @@ function __goodies_popup(node, sites, default_title) { // {{{ function auto_links() function auto_links() { - auto_links_nodes(document.getElementsByTagName('a')); - auto_links_nodes(document.getElementsByTagName('link')); -} - -function auto_links_nodes(nodes) { url = document.URL; fqdn = url.replace(/^https?:\/\/([^\/]*)\/.*$/,'$1'); light = (url.indexOf('display=light') > url.indexOf('?')); - for(var i=0; i < nodes.length; i++) { - node = nodes[i]; - if(!node.href || node.className == 'xdx' - || node.href.indexOf('mailto:') > -1 || node.href.indexOf('javascript:') > -1) - continue; - if (node.href.indexOf(fqdn) < 0 || node.className == 'popup') { - node.onclick = function () { window.open(this.href); return false; }; - } - if (node.href.indexOf(fqdn) > -1 && light) { - node.href = node.href.replace(/([^\#\?]*)\??([^\#]*)(\#.*)?/, - "$1?display=light&$2$3"); - } - if (node.href.indexOf('rss') > -1 || node.href.indexOf('ical') > -1) { - node.href = node.href.replace(/https/, 'http'); - if (node.href.indexOf('http') < 0) { - node.href = 'http://' + fqdn + '/' + node.href; + + $("a,link").each( + function(i) { + node = $(this); + enode = node.get(0); + href = enode.href; + if(!href || node.hasClass('xdx') + || href.indexOf('mailto:') > -1 || href.indexOf('javascript:') > -1) { + return; } - if (node.nodeName.toLowerCase() == 'a') { - goodiesPopup(node); + if (href.indexOf(fqdn) < 0 || node.hasClass('popup')) { + node.click(function () { window.open(this.href); return false; }); + } + if (href.indexOf(fqdn) > -1 && light) { + href = href.replace(/([^\#\?]*)\??([^\#]*)(\#.*)?/, "$1?display=light&$2$3"); + enode.href = href; + } + if (href.indexOf('rss') > -1 || href.indexOf('ical') > -1) { + if (href.indexOf('http') < 0) { + href = 'http://' + fqdn + '/' + href; + } + enode.href = href; + if (enode.nodeName.toLowerCase() == 'a') { + goodiesPopup(enode); + } + } + if(matches = (/^popup_([0-9]*)x([0-9]*)$/).exec(enode.className)) { + var w = matches[1], h = matches[2]; + node.click(function() { return popWin(this, w, h); }); } } - if(node.className == 'popup2') { - node.onclick = function () { popWin(this,840,600); return false; }; - } - if(node.className == 'popup3') { - node.onclick = function () { popWin(this, 640, 800); return false; }; - } - if(matches = (/^popup_([0-9]*)x([0-9]*)$/).exec(node.className)) { - var w = matches[1], h = matches[2]; - node.onclick = function () { popWin(this,w,h); return false; }; - } - } + ); + $('.popup2').click(function() { return popWin(this, 840, 600); }); + $('.popup3').click(function() { return popWin(this, 640, 800); }); } + // }}} @@ -364,12 +342,6 @@ function checkPassword(box, okLabel) { * The real OnLoad */ -// {{{ function pa_onload - -if (!attachEvent(window, 'load', auto_links)) { - window.onload = auto_links; -} - -// }}} +$(window).load(auto_links); // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: -- 2.1.4