view rhodecode/templates/files/files_source.html @ 2931:4c7cc3a4c330 beta

fixed issue with show at revision button. Some JS were not properly loaded due to ajaxified files view. Removed JS code and the logic for that is in python view now. Simpler and less ugly JS callbacks
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 17 Oct 2012 21:13:04 +0200
parents a01c5994015c
children 37c7abd34d44
line wrap: on
line source

<dl>
	<dt class="file_history">${_('History')}</dt>
	<dd>
        <div>
    		<div style="float:left">
    		${h.form(h.url('files_diff_home',repo_name=c.repo_name,f_path=c.f_path),method='get')}
    		${h.hidden('diff2',c.file_changeset.raw_id)}
    		${h.select('diff1',c.file_changeset.raw_id,c.file_history)}
    		${h.submit('diff',_('diff to revision'),class_="ui-btn")}
    		${h.submit('show_rev',_('show at revision'),class_="ui-btn")}
            ${h.hidden('annotate', c.annotate)}
    		${h.end_form()}
    		</div>
            <div class="file_author">
                <div class="item">${h.literal(ungettext(u'%s author',u'%s authors',len(c.authors)) % ('<b>%s</b>' % len(c.authors))) }</div>
                %for email, user in c.authors:
                  <div class="contributor tooltip" style="float:left" title="${h.tooltip(user)}">
                    <div class="gravatar" style="margin:1px"><img alt="gravatar" src="${h.gravatar_url(email, 20)}"/> </div>
                  </div>
                %endfor
            </div>
        </div>
        <div style="clear:both"></div>
	</dd>

</dl>

<div id="body" class="codeblock">
	<div class="code-header">
        <div class="stats">
            <div class="left img"><img src="${h.url('/images/icons/file.png')}"/></div>
            <div class="left item"><pre class="tooltip" title="${h.tooltip(h.fmt_date(c.file_changeset.date))}">${h.link_to("r%s:%s" % (c.file_changeset.revision,h.short_id(c.file_changeset.raw_id)),h.url('changeset_home',repo_name=c.repo_name,revision=c.file_changeset.raw_id))}</pre></div>
            <div class="left item"><pre>${h.format_byte_size(c.file.size,binary=True)}</pre></div>
            <div class="left item last"><pre>${c.file.mimetype}</pre></div>
            <div class="buttons">
              %if c.annotate:
                ${h.link_to(_('show source'),    h.url('files_home',         repo_name=c.repo_name,revision=c.file_changeset.raw_id,f_path=c.f_path),class_="ui-btn")}
              %else:
                ${h.link_to(_('show annotation'),h.url('files_annotate_home',repo_name=c.repo_name,revision=c.file_changeset.raw_id,f_path=c.f_path),class_="ui-btn")}
              %endif
              ${h.link_to(_('show as raw'),h.url('files_raw_home',repo_name=c.repo_name,revision=c.file_changeset.raw_id,f_path=c.f_path),class_="ui-btn")}
              ${h.link_to(_('download as raw'),h.url('files_rawfile_home',repo_name=c.repo_name,revision=c.file_changeset.raw_id,f_path=c.f_path),class_="ui-btn")}
              % 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.file_changeset.raw_id,f_path=c.f_path),class_="ui-btn")}
               % endif
              % endif
            </div>
        </div>
        <div class="author">
            <div class="gravatar">
                <img alt="gravatar" src="${h.gravatar_url(h.email_or_none(c.file_changeset.author),16)}"/>
            </div>
            <div title="${c.file_changeset.author}" class="user">${h.person(c.file_changeset.author)}</div>
        </div>
		<div class="commit">${h.urlify_commit(c.file_changeset.message,c.repo_name)}</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:
            %if c.annotate:
              ${h.pygmentize_annotation(c.repo_name,c.file,linenos=True,anchorlinenos=True,lineanchors='L',cssclass="code-highlight")}
            %else:
			  ${h.pygmentize(c.file,linenos=True,anchorlinenos=True,lineanchors='L',cssclass="code-highlight")}
            %endif
		%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.file_changeset.raw_id,f_path=c.f_path))}
		%endif
     %endif
	</div>
</div>

<script type="text/javascript">
YUE.onDOMReady(function(){
    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;

    }

    YUE.on('hlcode','mouseup',getSelectionLink("${_('Selection link')}"))
   });
</script>