From cd93fa83ba632588b357b190f47809205b9a5d91 Mon Sep 17 00:00:00 2001 From: Arne Georg Gleditsch Date: Tue, 12 Feb 2008 22:53:01 +0100 Subject: Change line number layout and caching mechanism. --- webroot/.static/js/lxrng-funcs.js | 79 +++++++++++++++++++++++++++------------ 1 file changed, 56 insertions(+), 23 deletions(-) (limited to 'webroot/.static/js/lxrng-funcs.js') diff --git a/webroot/.static/js/lxrng-funcs.js b/webroot/.static/js/lxrng-funcs.js index 0aa4237..939eefd 100644 --- a/webroot/.static/js/lxrng-funcs.js +++ b/webroot/.static/js/lxrng-funcs.js @@ -190,6 +190,59 @@ function load_file(tree, file, ver, line) { return false; } + +function ajaxify_link_handlers(links) { + var i; + for (i = 0; i < links.length; i++) { + if (links[i].className == 'fref') { + links[i].onclick = ajax_nav; + } + else if (links[i].className == 'line') { + links[i].onclick = ajax_jumpto_line; + } + else if (links[i].className == 'sref' || + links[i].className == 'falt') + { + links[i].onclick = ajax_lookup_anchor; + } + + } +} + +function load_next_pending_fragment() { + var pre = document.getElementById('file_contents'); + if (!pre) + return; + + for (var i = 0; i < pre.childNodes.length; i++) { + if ((pre.childNodes[i].nodeName == 'DIV') && + (pre.childNodes[i].className == 'pending')) + { + pjx_load_fragment(['tree__' + pending_tree, + 'frag__' + pre.childNodes[i].id], + [load_fragment_finalize]); + return; + } + } +} + +function load_fragment_finalize(content) { + var split = content.indexOf('|'); + var div = document.getElementById(content.substr(0, split)); + if (!div) + return; + + div.innerHTML = content.substr(split+1); + div.className = 'done'; + + var links = div.getElementsByTagName('a'); + ajaxify_link_handlers(links); + load_next_pending_fragment(); + +// if (location.hash) +// location.hash = location.hash; +} + function load_file_finalize(content) { var res = document.getElementById('content'); res.innerHTML = 'Done'; @@ -198,7 +251,7 @@ function load_file_finalize(content) { head.innerHTML = '' + pending_tree + ''; var path_walked = ''; var elems = pending_file.split(/\//); - for (var i=0; i