Files @ b61824e61e68
Branch filter:

Location: kallithea/rhodecode/templates/changeset/changeset_range.html

Marcin Kuzminski
Don't cache dulwich Repos, in pararell multithreaded evniroment dulwich pack file openers
can break badly. We need to create Repo() objects always for each call, even when it's
taken from cache.
Fixed issue with dulwich filedescriptor leak ref #573
## -*- coding: utf-8 -*-
<%inherit file="/base/base.html"/>

<%def name="title()">
    ${_('%s Changesets') % c.repo_name} - r${c.cs_ranges[0].revision}:${h.short_id(c.cs_ranges[0].raw_id)} -> r${c.cs_ranges[-1].revision}:${h.short_id(c.cs_ranges[-1].raw_id)} - ${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;
    ${_('Changesets')} - r${c.cs_ranges[0].revision}:${h.short_id(c.cs_ranges[0].raw_id)} -> r${c.cs_ranges[-1].revision}:${h.short_id(c.cs_ranges[-1].raw_id)}
</%def>

<%def name="page_nav()">
    ${self.menu('changelog')}
</%def>

<%def name="main()">
<div class="box">
    <!-- box / title -->
    <div class="title">
        ${self.breadcrumbs()}
    </div>
    <div class="table">
		<div id="body" class="diffblock">
			<div class="code-header cv">
		        <h3 class="code-header-title">${_('Compare View')} / ${h.link_to(_('Show combined compare'),h.url('compare_url',repo_name=c.repo_name,org_ref_type='rev',org_ref=getattr(c.cs_ranges[0].parents[0] if c.cs_ranges[0].parents else h.EmptyChangeset(),'raw_id'),other_ref_type='rev',other_ref=c.cs_ranges[-1].raw_id))}</h3>
                <div>
				${_('Changesets')} - r${c.cs_ranges[0].revision}:${h.short_id(c.cs_ranges[0].raw_id)} -> r${c.cs_ranges[-1].revision}:${h.short_id(c.cs_ranges[-1].raw_id)}
				</div>
			</div>
		</div>
	    <div id="changeset_compare_view_content">
			<div class="container">
			<table class="compare_view_commits noborder">
            %for cnt,cs in enumerate(c.cs_ranges):
                <tr>
                <td><div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(h.email_or_none(cs.author),14)}"/></div></td>
                <td>${h.link_to('r%s:%s' % (cs.revision,h.short_id(cs.raw_id)),h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}</td>
                <td><div class="author">${h.person(cs.author)}</div></td>
                <td><span class="tooltip" title="${h.age(cs.date)}">${cs.date}</span></td>
                <td>
                  %if c.statuses:
                    <div title="${h.tooltip(_('Changeset status'))}" class="changeset-status-ico"><img src="${h.url('/images/icons/flag_status_%s.png' % c.statuses[cnt])}" /></div>
                  %endif
                </td>
                <td><div class="message">${h.urlify_commit(h.wrap_paragraphs(cs.message),c.repo_name)}</div></td>
                </tr>
            %endfor
            </table>
	        </div>
	        <div style="font-size:1.1em;font-weight: bold;clear:both;padding-top:10px">${_('Files affected')}</div>
	        <div class="cs_files">
	               %for cs in c.cs_ranges:
	                   <div class="cur_cs">${h.link_to('r%s:%s' % (cs.revision,h.short_id(cs.raw_id)),h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}</div>
	                  %for FID, (cs1, cs2, change, path, diff, stats) in c.changes[cs.raw_id].iteritems():
	                    <div class="cs_${change}">${h.link_to(h.safe_unicode(path),h.url.current(anchor=FID))}</div>
	                  %endfor
	               %endfor
	        </div>
	    </div>

    </div>
    <%namespace name="comment" file="/changeset/changeset_file_comment.html"/>
    <%namespace name="diff_block" file="/changeset/diff_block.html"/>
     %for cs in c.cs_ranges:
          ##${comment.comment_inline_form(cs)}
          ## diff block
          <div class="h3">
          <a class="tooltip" title="${h.tooltip(cs.message)}" href="${h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id)}">${'r%s:%s' % (cs.revision,h.short_id(cs.raw_id))}</a>
             <div class="gravatar">
                 <img alt="gravatar" src="${h.gravatar_url(h.email_or_none(cs.author),20)}"/>
             </div>
             <div class="right">
              <span class="logtags">
                %if len(cs.parents)>1:
                <span class="merge">${_('merge')}</span>
                %endif
                %if cs.branch:
                <span class="branchtag" title="${'%s %s' % (_('branch'),cs.branch)}">
                   ${h.link_to(h.shorter(cs.branch),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}
                </span>
                %endif
                %if h.is_hg(c.rhodecode_repo):
                  %for book in cs.bookmarks:
                  <span class="bookbook" title="${'%s %s' % (_('bookmark'),book)}">
                     ${h.link_to(h.shorter(book),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}
                  </span>
                  %endfor
                %endif
                %for tag in cs.tags:
                    <span class="tagtag"  title="${'%s %s' % (_('tag'),tag)}">
                    ${h.link_to(h.shorter(tag),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}</span>
                %endfor
              </span>
            </div>
           </div>
          ${diff_block.diff_block(c.changes[cs.raw_id])}
          ##${comment.comments(cs)}

     %endfor
     <script type="text/javascript">

      YUE.onDOMReady(function(){

          YUE.on(YUQ('.diff-menu-activate'),'click',function(e){
              var act = e.currentTarget.nextElementSibling;

              if(YUD.hasClass(act,'active')){
                  YUD.removeClass(act,'active');
                  YUD.setStyle(act,'display','none');
              }else{
                  YUD.addClass(act,'active');
                  YUD.setStyle(act,'display','');
              }
          });
      })
    </script>
    </div>
</%def>