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');