Mercurial > kallithea
diff rhodecode/templates/base/base.html @ 1263:83714588272c beta
added quick filter into repo switcher list
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sat, 16 Apr 2011 22:03:19 +0200 |
parents | f4807acf643d |
children | cb216757a62d |
line wrap: on
line diff
--- a/rhodecode/templates/base/base.html Sat Apr 16 21:11:49 2011 +0200 +++ b/rhodecode/templates/base/base.html Sat Apr 16 22:03:19 2011 +0200 @@ -121,12 +121,55 @@ </ul> <script type="text/javascript"> YUE.on('repo_switcher','mouseover',function(){ + function qfilter(){ + var S = YAHOO.util.Selector; + + var q_filter = YUD.get('q_filter_rs'); + var F = YAHOO.namespace('q_filter_rs'); + + YUE.on(q_filter,'click',function(){ + q_filter.value = ''; + }); + + F.filterTimeout = null; + + F.updateFilter = function() { + // Reset timeout + F.filterTimeout = null; + + var obsolete = []; + var nodes = S.query('ul#repo_switcher_list li a.repo_name'); + var req = YUD.get('q_filter_rs').value; + for (n in nodes){ + YUD.setStyle(nodes[n].parentNode,'display','') + } + if (req){ + for (n in nodes){ + console.log(n); + if (nodes[n].innerHTML.toLowerCase().indexOf(req) == -1) { + obsolete.push(nodes[n]); + } + } + if(obsolete){ + for (n in obsolete){ + YUD.setStyle(obsolete[n].parentNode,'display','none'); + } + } + } + } + + YUE.on(q_filter,'keyup',function(e){ + clearTimeout(F.filterTimeout); + setTimeout(F.updateFilter,600); + }); + } var loaded = YUD.hasClass('repo_switcher','loaded'); if(!loaded){ YUD.addClass('repo_switcher','loaded'); YAHOO.util.Connect.asyncRequest('GET',"${h.url('repo_switcher')}",{ success:function(o){ YUD.get('repo_switcher_list').innerHTML = o.responseText; + qfilter(); }, failure:function(o){ YUD.removeClass('repo_switcher','loaded');