view rhodecode/templates/changeset/changeset.html @ 1837:a6a30c919513 beta

#73 mapping of commited issues from commit message into issue tracker url.
author Marcin Kuzminski <marcin@python-works.com>
date Fri, 06 Jan 2012 19:27:32 +0200
parents d4a7b6c82efe
children a048d0c6da3c
line wrap: on
line source

## -*- coding: utf-8 -*-

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

<%def name="title()">
    ${c.repo_name} ${_('Changeset')} - r${c.changeset.revision}:${h.short_id(c.changeset.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;
    ${_('Changeset')} - r${c.changeset.revision}:${h.short_id(c.changeset.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 class="diffblock">
			<div class="code-header">
                <div class="date">${_('commit')} ${c.changeset.revision}:${h.short_id(c.changeset.raw_id)} ${c.changeset.date}</div>
                <div class="diff-menu-wrapper">
                    <img class="diff-menu-activate" style="cursor: pointer" alt="diff-menu" src="${h.url('/images/icons/script_gear.png')}" />
                    <div class="diff-menu" style="display:none">
                        <ul>
                          <li>${h.link_to(_('raw diff'),h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id,diff='show'))}</li>
                          <li>${h.link_to(_('download diff'),h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id,diff='download'))}</li>
                          <li>${c.ignorews_url()}</li>
                          <li>${c.context_url()}</li>
                        </ul>
                    </div>                        
                </div>				
                <div class="comments-number" style="float:right;padding-right:5px">${len(c.comments)} comment(s) (${c.inline_cnt} ${_('inline')})</div>
			</div>
		</div>
	    <div id="changeset_content">
			<div class="container">
	             <div class="left">
	                 <div class="author">
	                     <div class="gravatar">
	                         <img alt="gravatar" src="${h.gravatar_url(h.email(c.changeset.author),20)}"/>
	                     </div>
	                     <span>${h.person(c.changeset.author)}</span><br/>
	                     <span><a href="mailto:${h.email_or_none(c.changeset.author)}">${h.email_or_none(c.changeset.author)}</a></span><br/>
	                 </div>
	                 <div class="message">${h.urlify_commit(h.wrap_paragraphs(c.changeset.message))}</div>
	             </div>
	             <div class="right">
		             <div class="changes">
                        % if len(c.changeset.affected_files) <= c.affected_files_cut_off:	             
		                 <span class="removed" title="${_('removed')}">${len(c.changeset.removed)}</span>
		                 <span class="changed" title="${_('changed')}">${len(c.changeset.changed)}</span>
		                 <span class="added" title="${_('added')}">${len(c.changeset.added)}</span>
	                    % else:
                         <span class="removed" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>
                         <span class="changed" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>
                         <span class="added"   title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>	                    
	                    % endif		                 
		             </div>                  
		                 %if len(c.changeset.parents)>1:
		                 <div class="merge">
		                     ${_('merge')}<img alt="merge" src="${h.url('/images/icons/arrow_join.png')}"/>
		                 </div>
		                 %endif
		                 
		            %if c.changeset.parents:
		             %for p_cs in reversed(c.changeset.parents):
		                 <div class="parent">${_('Parent')} ${p_cs.revision}: ${h.link_to(h.short_id(p_cs.raw_id),
		                     h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.raw_id),title=p_cs.message)}
		                 </div>
		             %endfor
                    %else: 
                        <div class="parent">${_('No parents')}</div>   
                    %endif		             
		         <span class="logtags">
		             <span class="branchtag" title="${'%s %s' % (_('branch'),c.changeset.branch)}">
		             ${h.link_to(c.changeset.branch,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}</span>
		             %for tag in c.changeset.tags:
		                 <span class="tagtag"  title="${'%s %s' % (_('tag'),tag)}">
		                 ${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}</span>
		             %endfor
		         </span>                                                                 
	                </div>              
	        </div>
	        <span style="font-size:1.1em;font-weight: bold">
	        ${_('%s files affected with %s additions and %s deletions.') % (len(c.changeset.affected_files),c.lines_added,c.lines_deleted)}
	        </span>
	        <div class="cs_files">
	                %for change,filenode,diff,cs1,cs2,stat in c.changes:
	                    <div class="cs_${change}">
                            <div class="node">
                            %if change != 'removed':
                                ${h.link_to(h.safe_unicode(filenode.path),c.anchor_url(filenode.changeset.raw_id,filenode.path))}
                            %else:
                                ${h.link_to(h.safe_unicode(filenode.path),h.url.current(anchor=h.FID('',filenode.path)))}
                            %endif
                            </div>
		                    <div class="changes">${h.fancy_file_stats(stat)}</div>
	                    </div>
	                %endfor
	                % if c.cut_off:
	                  ${_('Changeset was too big and was cut off...')}
	                % endif
	        </div>         
	    </div>
	    
    </div>
    
    ## diff block    	
    <%namespace name="diff_block" file="/changeset/diff_block.html"/>
    ${diff_block.diff_block(c.changes)}
    
    ## template for inline comment form
    <%namespace name="comment" file="/changeset/changeset_file_comment.html"/>
    ${comment.comment_inline_form(c.changeset)}
    
    ${comment.comments(c.changeset)}
    
    <script type="text/javascript">
      var deleteComment = function(comment_id){

          var url = "${url('changeset_comment_delete',repo_name=c.repo_name,comment_id='__COMMENT_ID__')}".replace('__COMMENT_ID__',comment_id);
          var postData = '_method=delete';
          var success = function(o){
              var n = YUD.get('comment-'+comment_id);
              n.parentNode.removeChild(n);
          }
          ajaxPOST(url,postData,success);
      }

      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','');
              }
          });
                  
          YUE.on(YUQ('.show-inline-comments'),'change',function(e){
              var show = 'none';
              var target = e.currentTarget;
              if(target.checked){
                  var show = ''
              }
              var boxid = YUD.getAttribute(target,'id_for');
              var comments = YUQ('#{0} .inline-comments'.format(boxid));
              for(c in comments){ 
                 YUD.setStyle(comments[c],'display',show);
              }
              var btns = YUQ('#{0} .inline-comments-button'.format(boxid));
              for(c in btns){ 
                  YUD.setStyle(btns[c],'display',show);
               }              
          })
          
          YUE.on(YUQ('.line'),'click',function(e){
              var tr = e.currentTarget;
              injectInlineForm(tr);
          });
          
          // inject comments into they proper positions
          var file_comments = YUQ('.inline-comment-placeholder');
          
          for (f in file_comments){
              var box = file_comments[f];
              var inlines = box.children;
              for(var i=0; i<inlines.length; i++){
                  try{

                    var inline = inlines[i];
                    var lineno = YUD.getAttribute(inlines[i],'line');
                    var lineid = "{0}_{1}".format(YUD.getAttribute(inline,'target_id'),lineno);
                    var target_line = YUD.get(lineid);
                    
                    var add = createInlineAddButton(target_line.parentNode,'${_("add another comment")}');
                    YUD.insertAfter(add,target_line.parentNode);
                    
                    var comment = new YAHOO.util.Element(tableTr('inline-comments',inline.innerHTML))
                    YUD.insertAfter(comment,target_line.parentNode);
                  }catch(e){
                	  console.log(e);
                  }
              }
          }
      })
      
    </script>     
    
    </div>
</%def>