Changeset - 92f0065ba238
[Not reviewed]
beta
0 1 0
Marcin Kuzminski - 14 years ago 2011-09-24 21:12:30
marcin@python-works.com
hide add new file button if user has no permission for it
1 file changed with 2 insertions and 0 deletions:
0 comments (0 inline, 0 general)
rhodecode/templates/files/files_browser.html
Show inline comments
 
<%def name="file_class(node)">
 
	%if node.is_file():
 
		<%return "browser-file" %>
 
	%else:
 
		<%return "browser-dir"%>
 
	%endif
 
</%def>
 
<div id="body" class="browserblock">
 
    <div class="browser-header">
 
		<div class="browser-nav">
 
			${h.form(h.url.current())}
 
			<div class="info_box">
 
	          <span class="rev">${_('view')}@rev</span> 
 
	          <a class="rev" href="${c.url_prev}" title="${_('previous revision')}">&laquo;</a>
 
	          ${h.text('at_rev',value=c.changeset.revision,size=5)}
 
	          <a class="rev" href="${c.url_next}" title="${_('next revision')}">&raquo;</a>
 
	          ## ${h.submit('view',_('view'),class_="ui-button-small")}
 
		    </div>           
 
			${h.end_form()}
 
		</div>
 
	    <div class="browser-branch">
 
	       ${h.checkbox('stay_at_branch',c.changeset.branch,c.changeset.branch==c.branch)}
 
	       <label>${_('follow current branch')}</label>
 
	    </div>
 
        <div class="browser-search">
 
              <div id="search_activate_id" class="search_activate">
 
                  <a id="filter_activate" href="#">${_('search file list')}</a>
 
              </div>
 
              % if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):            
 
              <div  id="add_node_id" class="add_node">
 
                  <a href="${h.url('files_add_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path)}">${_('add new file')}</a>
 
              </div>        
 
              % endif               
 
        <div>
 
            <div id="node_filter_box_loading" style="display:none">${_('Loading file list...')}</div>
 
            <div id="node_filter_box" style="display:none">
 
            ${h.files_breadcrumbs(c.repo_name,c.changeset.raw_id,c.files_list.path)}/<input type="text" value="type to search..." name="filter" size="25" id="node_filter" autocomplete="off">
 
            
 
            <script type="text/javascript">
 
            
 
            YUE.on('stay_at_branch','click',function(e){
 
                if(e.target.checked){
 
                    var uri = "${h.url.current(branch='__BRANCH__')}"
 
                    uri = uri.replace('__BRANCH__',e.target.value);
 
                    window.location = uri;
 
                }
 
                else{
 
                    window.location = "${h.url.current()}";
 
                }
 
                
 
            })            
 
            
 
            var n_filter = YUD.get('node_filter');
 
            var F = YAHOO.namespace('node_filter');
 
            
 
            var url = '${h.url("files_nodelist_home",repo_name="__REPO__",revision="__REVISION__",f_path="__FPATH__")}';
 
            var node_url = '${h.url("files_home",repo_name="__REPO__",revision="__REVISION__",f_path="__FPATH__")}';
 
            
 
            url  = url.replace('__REPO__','${c.repo_name}');
 
            url  = url.replace('__REVISION__','${c.changeset.raw_id}');
 
            url  = url.replace('__FPATH__','${c.files_list.path}');
 

	
 
            node_url  = node_url.replace('__REPO__','${c.repo_name}');
 
            node_url  = node_url.replace('__REVISION__','${c.changeset.raw_id}');
 
            
 
            
 
            F.filterTimeout = null;
 
            var nodes = null;
 
            
 
            
 
            F.initFilter = function(){
 
              YUD.setStyle('node_filter_box_loading','display','');
 
              YUD.setStyle('search_activate_id','display','none');
 
              YUD.setStyle('add_node_id','display','none');
 
              YUC.initHeader('X-PARTIAL-XHR',true);
 
              YUC.asyncRequest('GET',url,{
 
                  success:function(o){
 
                  	nodes = JSON.parse(o.responseText);
 
                  	YUD.setStyle('node_filter_box_loading','display','none');
 
                  	YUD.setStyle('node_filter_box','display','');
 
                  },
 
                  failure:function(o){
 
                      console.log('failed to load');
 
                  }
 
              },null);            
 
            }
 
            
 
            F.updateFilter  = function(e) {
 
            	
 
            	return function(){
 
                    // Reset timeout 
 
                    F.filterTimeout = null;
 
                    var query = e.target.value;
 
                    var match = [];
 
                    var matches = 0;
 
                    var matches_max = 20;
 
                    if (query != ""){
 
                        for(var i=0;i<nodes.length;i++){
 
                            var pos = nodes[i].toLowerCase().indexOf(query)
 
                            if(query && pos != -1){
 
                                
 
                                matches++
 
                                //show only certain amount to not kill browser 
 
                                if (matches > matches_max){
 
                                    break;
 
                                }
 
                                
 
                                var n = nodes[i];
 
                                var n_hl = n.substring(0,pos)
 
                                  +"<b>{0}</b>".format(n.substring(pos,pos+query.length))
 
                                  +n.substring(pos+query.length)                    
 
                                match.push('<tr><td><a class="browser-file" href="{0}">{1}</a></td><td colspan="5"></td></tr>'.format(node_url.replace('__FPATH__',n),n_hl));
 
                            }
 
                            if(match.length >= matches_max){
 
                                match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format("${_('search truncated')}"));
 
                            }
 
                            
 
                        }                    	
 
                    }
 
                    
 
                    if(query != ""){
 
                        YUD.setStyle('tbody','display','none');
 
                        YUD.setStyle('tbody_filtered','display','');
 
                        
 
                        if (match.length==0){
 
                          match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format("${_('no matching files')}"));
 
                        }                        	
 
                        
 
                    	YUD.get('tbody_filtered').innerHTML = match.join("");	
 
                    }
 
                    else{
 
                    	YUD.setStyle('tbody','display','');
 
                    	YUD.setStyle('tbody_filtered','display','none');
 
                    }
 
                    
 
            	}
 
            }
 
            
 
            
 
            YUE.on(YUD.get('filter_activate'),'click',function(){
 
                F.initFilter();
 
            })
 
            YUE.on(n_filter,'click',function(){
 
                n_filter.value = '';
 
             });
 
            YUE.on(n_filter,'keyup',function(e){
 
                clearTimeout(F.filterTimeout); 
 
                F.filterTimeout = setTimeout(F.updateFilter(e),600);
 
            });            
 
            </script>
 
            
 
            </div>        
 
        </div>
 
        </div>      
 
    </div>
 
    
 
	<div class="browser-body">
 
		<table class="code-browser">
 
		         <thead>
 
		             <tr>
 
		                 <th>${_('Name')}</th>
 
		                 <th>${_('Size')}</th>
 
		                 <th>${_('Mimetype')}</th>
 
		                 <th>${_('Revision')}</th>
 
		                 <th>${_('Last modified')}</th>
 
		                 <th>${_('Last commiter')}</th>
 
		             </tr>
 
		         </thead>
 
                
 
                <tbody id="tbody">
 
          		%if c.files_list.parent:
 
         		<tr class="parity0">
 
	          		<td>		          		
 
	          			${h.link_to('..',h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.files_list.parent.path),class_="browser-dir")}
 
	          		</td>
 
	          		<td></td>
 
	          		<td></td>
 
	          		<td></td>
 
	          		<td></td>
 
	          		<td></td>
 
				</tr>
 
          		%endif
 
		         	
 
		    %for cnt,node in enumerate(c.files_list):
 
				<tr class="parity${cnt%2}">
 
		             <td>
 
						${h.link_to(node.name,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=h.safe_unicode(node.path)),class_=file_class(node))}
 
		             </td>
 
		             <td>
 
		             %if node.is_file():
 
		             	${h.format_byte_size(node.size,binary=True)}
 
		             %endif	
 
		             </td>
 
		             <td>
 
		              %if node.is_file():
 
		                  ${node.mimetype}
 
		              %endif
 
		             </td>
 
		             <td>
 
		             	%if node.is_file():
 
		             		<span class="tooltip" title="${node.last_changeset.raw_id}">
 
		             		${'r%s:%s' % (node.last_changeset.revision,node.last_changeset.short_id)}</span>
 
		             	%endif
 
		             </td>
 
		             <td>
 
		             	%if node.is_file():
 
		             		<span class="tooltip" title="${node.last_changeset.date}">
 
                            ${h.age(node.last_changeset.date)}</span>
 
		             	%endif
 
		             </td>
 
		             <td>
 
		             	%if node.is_file():
 
		             		${node.last_changeset.author}
 
		             	%endif                    
 
		             </td>
 
				</tr>
 
			%endfor
 
                </tbody>
 
                <tbody id="tbody_filtered" style="display:none">
 
                </tbody>                
 
		</table>
 
	</div>
 
</div>
 
\ No newline at end of file
0 comments (0 inline, 0 general)