view rhodecode/templates/files/files_annotate.html @ 1512:bf263968da47

merge beta in stable branch
author Marcin Kuzminski <marcin@python-works.com>
date Fri, 07 Oct 2011 01:08:50 +0200
parents 0dc8d578ff49 aaec08ad9daf
children 82a88013a3fd
line wrap: on
line source

<%inherit file="/base/base.html"/>

<%def name="title()">
    ${c.repo_name} ${_('File annotate')} - ${c.rhodecode_name}
</%def>

<%def name="breadcrumbs_links()">
    ${h.link_to(u'Home',h.url('/'))}
    &raquo;
    ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
    &raquo;
    ${_('annotate')} @ R${c.cs.revision}:${h.short_id(c.cs.raw_id)}
</%def>

<%def name="page_nav()">
		${self.menu('files')}     
</%def>
<%def name="main()">
<div class="box">
    <!-- box / title -->
    <div class="title">
        ${self.breadcrumbs()}
        <ul class="links">
            <li>
              <span style="text-transform: uppercase;"><a href="#">${_('branch')}: ${c.cs.branch}</a></span>
            </li>          
        </ul>          
    </div>
    <div class="table">
		<div id="files_data">
			<h3 class="files_location">${_('Location')}: ${h.files_breadcrumbs(c.repo_name,c.cs.revision,c.file.path)}</h3>
			<dl class="overview">
				<dt>${_('Revision')}</dt>
				<dd>${h.link_to("r%s:%s" % (c.file.last_changeset.revision,h.short_id(c.file.last_changeset.raw_id)),
						h.url('changeset_home',repo_name=c.repo_name,revision=c.file.last_changeset.raw_id))} </dd>
				<dt>${_('Size')}</dt>
				<dd>${h.format_byte_size(c.file.size,binary=True)}</dd>
    			<dt>${_('Mimetype')}</dt>
				<dd>${c.file.mimetype}</dd>				
				<dt>${_('Options')}</dt>
				<dd>${h.link_to(_('show source'),
						h.url('files_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path))}  
					/ ${h.link_to(_('show as raw'),
						h.url('files_raw_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path))}
					/ ${h.link_to(_('download as raw'),
						h.url('files_rawfile_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path))}
                    % if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
                     % if not c.file.is_binary:                   
                    / ${h.link_to(_('edit'),
                        h.url('files_edit_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path))}
                     % endif 
                    % endif						
				</dd>
			    <dt>${_('History')}</dt>
			    <dd>
			        <div>
			        ${h.form(h.url('files_diff_home',repo_name=c.repo_name,f_path=c.f_path),method='get')}
			        ${h.hidden('diff2',c.file.last_changeset.raw_id)}
			        ${h.select('diff1',c.file.last_changeset.raw_id,c.file_history)}
			        ${h.submit('diff','diff to revision',class_="ui-button-small")}
			        ${h.submit('show_rev','show at revision',class_="ui-button-small")}
			        ${h.end_form()}
			        </div>
			    </dd>					
			</dl>
			<div id="body" class="codeblock">
				<div class="code-header">
					<div class="revision">${c.file.name}@r${c.file.last_changeset.revision}:${h.short_id(c.file.last_changeset.raw_id)}</div>
					<div class="commit">"${c.file.message}"</div>
				</div>
				<div class="code-body">
			       %if c.file.is_binary:
			           ${_('Binary file (%s)') % c.file.mimetype}
			       %else:				
					% if c.file.size < c.cut_off_limit:
						${h.pygmentize_annotation(c.repo_name,c.file,linenos=True,anchorlinenos=True,lineanchors='L',cssclass="code-highlight")}
					%else:
						${_('File is too big to display')} ${h.link_to(_('show as raw'),
						h.url('files_raw_home',repo_name=c.repo_name,revision=c.cs.revision,f_path=c.f_path))}
					%endif
			       <script type="text/javascript">
			           function highlight_lines(lines){
			               for(pos in lines){
			                 YUD.setStyle('L'+lines[pos],'background-color','#FFFFBE');                       
			               }
			           }       
			           page_highlights = location.href.substring(location.href.indexOf('#')+1).split('L');
			           if (page_highlights.length == 2){
			              highlight_ranges  = page_highlights[1].split(",");
			
			              var h_lines = [];
			              for (pos in highlight_ranges){
			                   var _range = highlight_ranges[pos].split('-');
			                   if(_range.length == 2){
			                       var start = parseInt(_range[0]);
			                       var end = parseInt(_range[1]);
			                       if (start < end){
			                           for(var i=start;i<=end;i++){
			                               h_lines.push(i);
			                           }
			                       } 
			                   }
			                   else{
			                       h_lines.push(parseInt(highlight_ranges[pos]));
			                   }
			             }
			           highlight_lines(h_lines);
			           
			           //remember original location 
			           var old_hash  = location.href.substring(location.href.indexOf('#'));
			           
			           // this makes a jump to anchor moved by 3 posstions for padding 
			           window.location.hash = '#L'+Math.max(parseInt(h_lines[0])-3,1);
			           
			           //sets old anchor 
			           window.location.hash = old_hash;
			           
			           }
			       </script>					
				   %endif				
				</div>
			</div>
            <script type="text/javascript">
            YAHOO.util.Event.onDOMReady(function(){
                YUE.on('show_rev','click',function(e){
                    YAHOO.util.Event.preventDefault(e);
                    var cs = YAHOO.util.Dom.get('diff1').value;
                    var url = "${h.url('files_annotate_home',repo_name=c.repo_name,revision='__CS__',f_path=c.f_path)}".replace('__CS__',cs);
                    window.location = url;
                    });
               });
            </script>			
		</div>    
    </div>
</div>    
</%def>