Mercurial > kallithea
view rhodecode/templates/files/files_source.html @ 2930:a01c5994015c beta
smarter calculation of showed associated changeset in file source view
- before rhodecode showed TIP changeset when initially displaing file source as description of associated commit
this can be misleading. Now smart calculate last commit of a file, and show specific commits when switching from history view
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 17 Oct 2012 20:46:54 +0200 |
parents | c25cc1c7c65f |
children | 4c7cc3a4c330 |
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.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('show_rev','click',function(e){ YUE.preventDefault(e); var cs = YUD.get('diff1').value; %if c.annotate: var url = "${h.url('files_annotate_home',repo_name=c.repo_name,revision='__CS__',f_path=c.f_path)}".replace('__CS__',cs); %else: var url = "${h.url('files_home',repo_name=c.repo_name,revision='__CS__',f_path=c.f_path)}".replace('__CS__',cs); %endif window.location = url; }); YUE.on('hlcode','mouseup',getSelectionLink("${_('Selection link')}")) }); </script>