Changeset - b1e1dffd595c
[Not reviewed]
beta
0 5 0
Marcin Kuzminski - 14 years ago 2011-11-04 20:18:46
marcin@python-works.com
one generic qfilter function.
5 files changed with 96 insertions and 168 deletions:
0 comments (0 inline, 0 general)
rhodecode/public/js/rhodecode.js
Show inline comments
 
@@ -198,24 +198,84 @@ var tooltip_activate = function(){
 
        }
 
        return ids
 
    };
 
    var myToolTips = new YAHOO.widget.Tooltip("tooltip", {
 
        context: [[toolTipsId()],"tl","bl",null,[0,5]],
 
        monitorresize:false,
 
        xyoffset :[0,0],
 
        autodismissdelay:300000,
 
        hidedelay:5,
 
        showdelay:20,
 
    });
 
}
 

	
 
/**
 
 * show more
 
 */
 
var show_more_event = function(){
 
    YUE.on(YUD.getElementsByClassName('show_more'),'click',function(e){
 
        var el = e.target;
 
        YUD.setStyle(YUD.get(el.id.substring(1)),'display','');
 
        YUD.setStyle(el.parentNode,'display','none');
 
    });
 
}
 

	
 

	
 
/**
 
 * Quick filter widget
 
 * 
 
 * @param target: filter input target
 
 * @param nodes: list of nodes in html we want to filter.
 
 * @param display_element function that takes current node from nodes and
 
 *    does hide or show based on the node
 
 * 
 
 */
 
var q_filter = function(target,nodes,display_element){
 
	
 
	var nodes = nodes;
 
	var q_filter_field = YUD.get(target);
 
	var F = YAHOO.namespace(target);
 

	
 
	YUE.on(q_filter_field,'click',function(){
 
	   q_filter_field.value = '';
 
	});
 

	
 
	YUE.on(q_filter_field,'keyup',function(e){
 
	    clearTimeout(F.filterTimeout); 
 
	    F.filterTimeout = setTimeout(F.updateFilter,600); 
 
	});
 

	
 
	F.filterTimeout = null;
 

	
 
	var show_node = function(node){
 
		YUD.setStyle(node,'display','')
 
	}
 
	var hide_node = function(node){
 
		YUD.setStyle(node,'display','none');
 
	}
 
	
 
	F.updateFilter  = function() { 
 
	   // Reset timeout 
 
	   F.filterTimeout = null;
 
	   
 
	   var obsolete = [];
 
	   
 
	   var req = q_filter_field.value.toLowerCase();
 
	   
 
	   var l = nodes.length;
 
	   var i;
 
       for (i=0;i<l;i++ ){
 
    	   var n = nodes[i];
 
    	   var target_element = display_element(n)
 
    	   if(req && n.innerHTML.toLowerCase().indexOf(req) == -1){
 
    		   hide_node(target_element);
 
    	   }
 
    	   else{
 
    		   show_node(target_element);
 
    	   }
 
       }	  	   
 

	
 
	}	
 
}
 

	
 

	
 

	
rhodecode/templates/admin/users/user_edit_my_account.html
Show inline comments
 
@@ -91,49 +91,49 @@
 
	            
 
	             <div class="field">
 
	                <div class="label">
 
	                    <label for="email">${_('Email')}:</label>
 
	                </div>
 
	                <div class="input">
 
	                    ${h.text('email',class_="medium")}
 
	                </div>
 
	             </div>
 
	            
 
	            <div class="buttons">
 
	              ${h.submit('save',_('Save'),class_="ui-button")}
 
	              ${h.reset('reset',_('Reset'),class_="ui-button")}
 
	            </div>             
 
	    	</div>
 
	    </div>    	
 
    ${h.end_form()}
 
    </div>
 
</div>    
 

	
 
<div class="box box-right">
 
    <!-- box / title -->
 
    <div class="title">
 
        <h5> 
 
        <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}"/>
 
        <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}"/>        
 
        ${_('My repositories')}
 
        </h5>
 
         %if h.HasPermissionAny('hg.admin','hg.create.repository')():
 
         <ul class="links">
 
           <li>
 
             <span>${h.link_to(_('ADD REPOSITORY'),h.url('admin_settings_create_repository'))}</span>
 
           </li>          
 
         </ul>           
 
         %endif        
 
    </div>
 
    <!-- end box / title -->
 
    <div class="table">
 
	    <table>
 
	    <thead>
 
            <tr>
 
            <th class="left">${_('Name')}</th>
 
            <th class="left">${_('revision')}</th>
 
            <th colspan="2" class="left">${_('action')}</th>            
 
	    </thead>
 
	     <tbody>
 
	     %if c.user_repos:
 
		     %for repo in c.user_repos:
 
		        <tr>
 
		            <td>
 
@@ -157,71 +157,34 @@
 
		            	title="${_('Fork of')} ${repo['dbrepo_fork']['repo_name']}" 
 
		            	src="${h.url('/images/icons/arrow_divide.png')}"/></a>
 
		            %endif		            
 
		            </td> 
 
		            <td><span class="tooltip" title="${repo['last_change']}">${("r%s:%s") % (repo['rev'],h.short_id(repo['tip']))}</span></td>
 
		            <td><a href="${h.url('repo_settings_home',repo_name=repo['name'])}" title="${_('edit')}"><img class="icon" alt="${_('private')}" src="${h.url('/images/icons/application_form_edit.png')}"/></a></td>
 
		            <td>
 
	                  ${h.form(url('repo_settings_delete', repo_name=repo['name']),method='delete')}
 
	                    ${h.submit('remove_%s' % repo['name'],'',class_="delete_icon action_button",onclick="return confirm('Confirm to delete this repository');")}
 
	                  ${h.end_form()}	            
 
		            </td>
 
		        </tr>
 
		     %endfor
 
	     %else:
 
            <div style="padding:5px 0px 10px 0px;">
 
	     	${_('No repositories yet')} 
 
	     	%if h.HasPermissionAny('hg.admin','hg.create.repository')():
 
	     		${h.link_to(_('create one now'),h.url('admin_settings_create_repository'),class_="ui-button-small")}
 
	     	%endif
 
            </div>
 
	     %endif
 
	     </tbody>
 
	     </table>
 
    </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 = q_filter.value.toLowerCase();
 
        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); 
 
         F.filterTimeout = setTimeout(F.updateFilter,600); 
 
     });
 
     
 
    </script>
 
<script type="text/javascript">
 
var nodes = YUQ('div.table tr td a.repo_name');
 
var target = 'q_filter';
 
var func = function(node){
 
    return node.parentNode.parentNode;
 
}
 
q_filter(target,nodes,func);
 
</script>
 
</%def>  
rhodecode/templates/base/base.html
Show inline comments
 
@@ -235,110 +235,77 @@
 
                    % endif
 
                   </ul>             
 
                </li>
 
                
 
                <li>
 
                    <a title="${_('Followers')}" href="${h.url('repo_followers_home',repo_name=c.repo_name)}">
 
                    <span class="icon_short">
 
                        <img src="${h.url('/images/icons/heart.png')}" alt="${_('Followers')}" />
 
                    </span>
 
                    <span id="current_followers_count" class="short">${c.repository_followers}</span>
 
                    </a>
 
                </li>
 
                <li>
 
                    <a title="${_('Forks')}" href="${h.url('repo_forks_home',repo_name=c.repo_name)}">
 
                    <span class="icon_short">
 
                        <img src="${h.url('/images/icons/arrow_divide.png')}" alt="${_('Forks')}" />
 
                    </span>
 
                    <span class="short">${c.repository_forks}</span>
 
                    </a>
 
                </li>                
 
	        </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.toLowerCase();
 
                            for (n in nodes){
 
                                YUD.setStyle(nodes[n].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){
 
                                        YUD.setStyle(obsolete[n].parentNode,'display','none');
 
                                    }
 
                                }
 
                            }
 
                         }
 
                         
 
                         YUE.on(q_filter,'keyup',function(e){
 
                             clearTimeout(F.filterTimeout); 
 
                             F.filterTimeout = setTimeout(F.updateFilter,600); 
 
                         });
 
                }
 
                          var nodes = YUQ('ul#repo_switcher_list li a.repo_name');
 
                          var target = 'q_filter_rs';
 
                          var func = function(node){
 
                              return node.parentNode;
 
                          }                          
 
                          q_filter(target,nodes,func);                         
 
                      }
 
                   var loaded = YUD.hasClass('repo_switcher','loaded');
 
                   if(!loaded){
 
                       YUD.addClass('repo_switcher','loaded');
 
                       ypjax("${h.url('repo_switcher')}",'repo_switcher_list',
 
                           function(o){qfilter();},
 
                           function(o){YUD.removeClass('repo_switcher','loaded');}
 
                           ,null);
 
                   }
 
                   return false;
 
               });
 

	
 
            YUE.on('branch_tag_switcher','mouseover',function(){
 
               var loaded = YUD.hasClass('branch_tag_switcher','loaded');
 
               if(!loaded){
 
                   YUD.addClass('branch_tag_switcher','loaded');
 
                   ypjax("${h.url('branch_tag_switcher',repo_name=c.repo_name)}",'switch_to_list',
 
                       function(o){},
 
                       function(o){YUD.removeClass('branch_tag_switcher','loaded');}
 
                       ,null);
 
               }
 
               return false;
 
            });
 
              YUE.on('branch_tag_switcher','mouseover',function(){
 
                 var loaded = YUD.hasClass('branch_tag_switcher','loaded');
 
                 if(!loaded){
 
                     YUD.addClass('branch_tag_switcher','loaded');
 
                     ypjax("${h.url('branch_tag_switcher',repo_name=c.repo_name)}",'switch_to_list',
 
                         function(o){},
 
                         function(o){YUD.removeClass('branch_tag_switcher','loaded');}
 
                         ,null);
 
                 }
 
                 return false;
 
              });
 
            </script>             
 
		%else:
 
		    ##ROOT MENU
 
            <ul id="quick">
 
                <li>
 
                    <a title="${_('Home')}"  href="${h.url('home')}">
 
                    <span class="icon">
 
                        <img src="${h.url('/images/icons/home_16.png')}" alt="${_('Home')}" />
 
                    </span>
 
                    <span>${_('Home')}</span>                 
 
                    </a>        
 
                </li>
 
                % if c.rhodecode_user.username != 'default':
 
                 <li>
 
                    <a title="${_('Journal')}"  href="${h.url('journal')}">
 
                    <span class="icon">
 
                        <img src="${h.url('/images/icons/book.png')}" alt="${_('Journal')}" />
 
                    </span>
 
                    <span>${_('Journal')}</span>                 
 
                    </a>        
 
                 </li>
 
                % endif
 
                <li>
 
                    <a title="${_('Search')}"  href="${h.url('search')}">
rhodecode/templates/index_base.html
Show inline comments
 
@@ -135,91 +135,32 @@
 
                            ${_('No changesets yet')}
 
                        %endif    
 
                    </td>
 
                    <td title="${repo['contact']}">${h.person(repo['contact'])}</td>
 
                    <td>
 
                      %if c.rhodecode_user.username != 'default':
 
                        <a title="${_('Subscribe to %s rss feed')%repo['name']}" class="rss_icon"  href="${h.url('rss_feed_home',repo_name=repo['name'],api_key=c.rhodecode_user.api_key)}"></a>
 
                      %else:
 
                        <a title="${_('Subscribe to %s rss feed')%repo['name']}" class="rss_icon"  href="${h.url('rss_feed_home',repo_name=repo['name'])}"></a>
 
                      %endif:                       
 
                    </td>        
 
                    <td>
 
                      %if c.rhodecode_user.username != 'default':
 
                        <a title="${_('Subscribe to %s atom feed')%repo['name']}"  class="atom_icon" href="${h.url('atom_feed_home',repo_name=repo['name'],api_key=c.rhodecode_user.api_key)}"></a>
 
                      %else:
 
                        <a title="${_('Subscribe to %s atom feed')%repo['name']}"  class="atom_icon" href="${h.url('atom_feed_home',repo_name=repo['name'])}"></a>
 
                      %endif:
 
                    </td>
 
                </tr>
 
            %endfor
 
            </tbody>
 
            </table>
 
            </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;
 
     
 
     function set_count(count){
 
    
 
    	 if(count == 0){
 
    		 YUD.setStyle('repos_list','display','none');
 
    		 YUD.setStyle('welcome','display','');
 
    	 }
 
    	 else{
 
    		 YUD.setStyle('repos_list','display','');
 
    		 YUD.setStyle('welcome','display','none');
 
    	 }
 
    	 YUD.get('repo_count').innerHTML = count;
 
    	 
 
     }
 
     
 
     
 
     //set initial count for repos
 
     var nodes = S.query('div.table tr td div a.repo_name');
 
     
 
     set_count(nodes.length)
 
     F.updateFilter  = function() { 
 
        // Reset timeout 
 
        F.filterTimeout = null;
 
        
 
        var obsolete = [];
 
        nodes = S.query('div.table tr td div a.repo_name');
 
        var req = q_filter.value.toLowerCase();
 
        for (n in nodes){
 
            D.setStyle(nodes[n].parentNode.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.parentNode,'display','none');
 
                }
 
            }
 
        }
 
        // set new count into dashboard
 
        set_count(nodes.length - obsolete.length)
 
     }
 
     
 
     E.on(q_filter,'keyup',function(e){
 
         clearTimeout(F.filterTimeout); 
 
         F.filterTimeout = setTimeout(F.updateFilter,600); 
 
     });
 
     
 
    </script>
 
    <script>
 
      var nodes = YUQ('div.table tr td a.repo_name');
 
      var target = 'q_filter';
 
      var func = function(node){
 
    	  return node.parentNode.parentNode.parentNode;
 
      }
 
      q_filter(target,nodes,func);
 
    </script>
 
\ No newline at end of file
rhodecode/templates/repo_switcher_list.html
Show inline comments
 
## -*- coding: utf-8 -*-
 

	
 
<li class="qfilter_rs">
 
<input type="text" 
 
style="border:0"        
 
value="quick filter..." 
 
name="filter" size="15" id="q_filter_rs" />
 
    <input type="text" style="border:0" value="quick filter..." name="filter" size="15" id="q_filter_rs" />
 
</li>
 
    
 
%for repo in c.repos_list:
 
     
 
      %if repo['dbrepo']['private']:
 
         <li>
 
             <img src="${h.url('/images/icons/lock.png')}" alt="${_('Private repository')}" class="repo_switcher_type"/>
 
             ${h.link_to(repo['name'],h.url('summary_home',repo_name=repo['name']),class_="repo_name %s" % repo['dbrepo']['repo_type'])}
 
          </li>
 
      %else:
 
         <li>
 
             <img src="${h.url('/images/icons/lock_open.png')}" alt="${_('Public repository')}" class="repo_switcher_type" />
 
             ${h.link_to(repo['name'],h.url('summary_home',repo_name=repo['name']),class_="repo_name %s" % repo['dbrepo']['repo_type'])}
 
         </li>
 
      %endif  
 
%endfor
 
\ No newline at end of file
0 comments (0 inline, 0 general)