changeset 646:fdb984a94d5b beta

#43 main page quick filter
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 03 Nov 2010 01:06:54 +0100
parents a7beacb093a3
children 5e209dcd3821
files rhodecode/public/css/style.css rhodecode/templates/base/base.html rhodecode/templates/index.html
diffstat 3 files changed, 117 insertions(+), 59 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/public/css/style.css	Tue Nov 02 23:37:39 2010 +0100
+++ b/rhodecode/public/css/style.css	Wed Nov 03 01:06:54 2010 +0100
@@ -2309,4 +2309,11 @@
 border:none !important;
 height:20px !important;
 padding:0 !important;
-}
\ No newline at end of file
+}
+
+#q_filter{
+border: 0px;
+color:#CDCDCD;
+padding-left:3px
+}
+
--- a/rhodecode/templates/base/base.html	Tue Nov 02 23:37:39 2010 +0100
+++ b/rhodecode/templates/base/base.html	Wed Nov 03 01:06:54 2010 +0100
@@ -270,8 +270,10 @@
 ##<script type="text/javascript" src="/js/yui/container/container.js"></script>
 ##<script type="text/javascript" src="/js/yui/datasource/datasource.js"></script>
 ##<script type="text/javascript" src="/js/yui/autocomplete/autocomplete.js"></script>
+##<script type="text/javascript" src="/js/yui/selector/selector-min.js"></script>
 
 <script type="text/javascript" src="/js/yui2.js"></script>
+<script type="text/javascript" src="/js/yui/selector/selector-min.js"></script>
 <!--[if IE]><script language="javascript" type="text/javascript" src="/js/excanvas.min.js"></script><![endif]-->
 <script type="text/javascript" src="/js/yui.flot.js"></script>
 </%def>
--- a/rhodecode/templates/index.html	Tue Nov 02 23:37:39 2010 +0100
+++ b/rhodecode/templates/index.html	Wed Nov 03 01:06:54 2010 +0100
@@ -27,7 +27,9 @@
     <div class="box">
 	    <!-- box / title -->
 	    <div class="title">
-	        <h5>${_('Dashboard')}</h5>
+	        <h5>${_('Dashboard')}
+	        <input class="top-right-rounded-corner top-left-rounded-corner bottom-left-rounded-corner bottom-right-rounded-corner" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}"/>
+	        </h5>
 	        %if h.HasPermissionAny('hg.admin','hg.create.repository')():
 	        <ul class="links">
 	          <li>
@@ -38,7 +40,7 @@
 	    </div>
 	    <!-- end box / title -->
         <div class="table">
-                    <table>
+            <table>
             <thead>
 	            <tr>
 			        <th class="left">${get_sort(_('Name'))}</th>
@@ -50,61 +52,108 @@
 			        <th class="left">${_('Atom')}</th>
 	            </tr>
             </thead>
-                        <tbody>
-					    %for cnt,repo in enumerate(c.repos_list):
-					        %if h.HasRepoPermissionAny('repository.write','repository.read','repository.admin')(repo['name'],'main page check'):
-					        <tr class="parity${cnt%2}">
-					            <td>
-					             %if repo['repo'].dbrepo.repo_type =='hg':
-					               <img class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="/images/icons/hgicon.png"/>
-					             %elif repo['repo'].dbrepo.repo_type =='git':
-					               <img class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="/images/icons/giticon.png"/>
-					             %else:
-					               
-					             %endif 
-					            
-					             %if repo['repo'].dbrepo.private:
-					                <img class="icon" title="${_('private repository')}" alt="${_('private repository')}" src="/images/icons/lock.png"/>
-					             %else:
-					                <img class="icon" title="${_('public repository')}" alt="${_('public repository')}" src="/images/icons/lock_open.png"/>
-					             %endif  
-					            ${h.link_to(repo['name'],
-					                h.url('summary_home',repo_name=repo['name']))}
-					            %if repo['repo'].dbrepo.fork:
-					            	<a href="${h.url('summary_home',repo_name=repo['repo'].dbrepo.fork.repo_name)}">
-					            	<img class="icon" alt="${_('fork')}"
-					            	title="${_('Fork of')} ${repo['repo'].dbrepo.fork.repo_name}" 
-					            	src="/images/icons/arrow_divide.png"/></a>
-					            %endif
-					            </td>
-					            <td><span class="tooltip" tooltip_title="${repo['description']}">
-					               ${h.truncate(repo['description'],60)}</span>
-					            </td>
-					            <td><span class="tooltip" tooltip_title="${repo['last_change']}">
-					                ${h.age(repo['last_change'])} </span>
-					            </td>
-					            <td>
-					            	%if repo['rev']>=0:
-					            	${h.link_to('r%s:%s' % (repo['rev'],h.short_id(repo['tip'])),
-					                h.url('changeset_home',repo_name=repo['name'],revision=repo['tip']),
-					                class_="tooltip",
-					                tooltip_title=h.tooltip(repo['last_msg']))}
-					            	%else:
-					            		${_('No changesets yet')}
-					            	%endif    
-					            </td>
-					            <td title="${repo['contact']}">${h.person(repo['contact'])}</td>
-					            <td>
-					                <a title="${_('Subscribe to %s rss feed')%repo['name']}" class="rss_icon"  href="${h.url('rss_feed_home',repo_name=repo['name'])}"></a>
-					            </td>        
-					            <td>
-					                <a title="${_('Subscribe to %s atom feed')%repo['name']}"  class="atom_icon" href="${h.url('atom_feed_home',repo_name=repo['name'])}"></a>
-					            </td>
-					        </tr>
-					        %endif
-					    %endfor
-                        </tbody>
-                    </table>
+            <tbody>
+		    %for cnt,repo in enumerate(c.repos_list):
+		        %if h.HasRepoPermissionAny('repository.write','repository.read','repository.admin')(repo['name'],'main page check'):
+		        <tr class="parity${cnt%2}">
+		            <td>
+		             %if repo['repo'].dbrepo.repo_type =='hg':
+		               <img class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="/images/icons/hgicon.png"/>
+		             %elif repo['repo'].dbrepo.repo_type =='git':
+		               <img class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="/images/icons/giticon.png"/>
+		             %else:
+		               
+		             %endif 
+		            
+		             %if repo['repo'].dbrepo.private:
+		                <img class="icon" title="${_('private repository')}" alt="${_('private repository')}" src="/images/icons/lock.png"/>
+		             %else:
+		                <img class="icon" title="${_('public repository')}" alt="${_('public repository')}" src="/images/icons/lock_open.png"/>
+		             %endif  
+		            ${h.link_to(repo['name'],
+		                h.url('summary_home',repo_name=repo['name']),class_="repo_name")}
+		            %if repo['repo'].dbrepo.fork:
+		            	<a href="${h.url('summary_home',repo_name=repo['repo'].dbrepo.fork.repo_name)}">
+		            	<img class="icon" alt="${_('fork')}"
+		            	title="${_('Fork of')} ${repo['repo'].dbrepo.fork.repo_name}" 
+		            	src="/images/icons/arrow_divide.png"/></a>
+		            %endif
+		            </td>
+		            <td><span class="tooltip" tooltip_title="${repo['description']}">
+		               ${h.truncate(repo['description'],60)}</span>
+		            </td>
+		            <td><span class="tooltip" tooltip_title="${repo['last_change']}">
+		                ${h.age(repo['last_change'])} </span>
+		            </td>
+		            <td>
+		            	%if repo['rev']>=0:
+		            	${h.link_to('r%s:%s' % (repo['rev'],h.short_id(repo['tip'])),
+		                h.url('changeset_home',repo_name=repo['name'],revision=repo['tip']),
+		                class_="tooltip",
+		                tooltip_title=h.tooltip(repo['last_msg']))}
+		            	%else:
+		            		${_('No changesets yet')}
+		            	%endif    
+		            </td>
+		            <td title="${repo['contact']}">${h.person(repo['contact'])}</td>
+		            <td>
+		                <a title="${_('Subscribe to %s rss feed')%repo['name']}" class="rss_icon"  href="${h.url('rss_feed_home',repo_name=repo['name'])}"></a>
+		            </td>        
+		            <td>
+		                <a title="${_('Subscribe to %s atom feed')%repo['name']}"  class="atom_icon" href="${h.url('atom_feed_home',repo_name=repo['name'])}"></a>
+		            </td>
+		        </tr>
+		        %endif
+		    %endfor
+            </tbody>
+            </table>
             </div>
-    </div>	
+    </div>
+    
+    
+    <script type="text/javascript">
+     var D = YAHOO.util.Dom;
+     var E = YAHOO.util.Event;
+     var S = YAHOO.util.Selector;
+     
+     var q_filter = D.get('q_filter');
+     var F = YAHOO.namespace('q_filter'); 
+     
+     E.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('div.table tr td a.repo_name');
+        var req = D.get('q_filter').value;
+        for (n in nodes){
+            D.setStyle(nodes[n].parentNode.parentNode,'display','')
+        }
+        if (req){
+	        for (n in nodes){
+	        	if (nodes[n].innerHTML.toLowerCase().indexOf(req) == -1) {
+	        		obsolete.push(nodes[n]); 
+	        	}
+	    	}
+	        if(obsolete){
+		        for (n in obsolete){
+		        	D.setStyle(obsolete[n].parentNode.parentNode,'display','none');
+		        }
+	        }
+        }
+     }
+     
+     E.on(q_filter,'keyup',function(e){
+    	 clearTimeout(F.filterTimeout); 
+    	 setTimeout(F.updateFilter,600); 
+     });
+     
+    </script>
+    	
 </%def>