Files
@ fe7fa9942015
Branch filter:
Location: kallithea/rhodecode/templates/changelog/changelog.html - annotation
fe7fa9942015
6.4 KiB
text/html
limited calculation of added/changed/removed files for large changesets, saving a lot of memory
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 | 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 a1ec653f5f95 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 1e757ac98988 28524453bb76 1e757ac98988 1e757ac98988 1e757ac98988 28524453bb76 28524453bb76 28524453bb76 28524453bb76 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 ffd07396d315 1e757ac98988 1e757ac98988 fe7fa9942015 fe7fa9942015 7a1df0130533 7a1df0130533 7a1df0130533 fe7fa9942015 fe7fa9942015 fe7fa9942015 1e757ac98988 1e757ac98988 1e757ac98988 90eadff2c2a8 1e757ac98988 7fcc539e20b1 7fcc539e20b1 1e757ac98988 74bbfdd47884 ffd07396d315 1e757ac98988 1e757ac98988 7fcc539e20b1 7fcc539e20b1 7fcc539e20b1 7fcc539e20b1 1e757ac98988 52da7cba88a6 1e757ac98988 52da7cba88a6 52da7cba88a6 1e757ac98988 1e757ac98988 ffd07396d315 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 cabe887a9829 1e757ac98988 1e757ac98988 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 28524453bb76 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 28524453bb76 28524453bb76 28524453bb76 28524453bb76 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 | ## -*- coding: utf-8 -*-
<%inherit file="/base/base.html"/>
<%def name="title()">
${c.repo_name} ${_('Changelog')} - ${c.rhodecode_name}
</%def>
<%def name="breadcrumbs_links()">
${h.link_to(u'Home',h.url('/'))}
»
${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
»
${_('Changelog')} - ${_('showing ')} ${c.size if c.size <= c.total_cs else c.total_cs} ${_('out of')} ${c.total_cs} ${_('revisions')}
</%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">
% if c.pagination:
<div id="graph">
<div id="graph_nodes">
<canvas id="graph_canvas"></canvas>
</div>
<div id="graph_content">
<div class="container_header">
${h.form(h.url.current(),method='get')}
<div class="info_box">
<span>${_('Show')}:</span>
${h.text('size',size=1,value=c.size)}
<span>${_('revisions')}</span>
${h.submit('set',_('set'))}
</div>
${h.end_form()}
<div id="rev_range_container" style="display:none"></div>
</div>
%for cnt,cs in enumerate(c.pagination):
<div id="chg_${cnt+1}" class="container">
<div class="left">
<div class="date">
${h.checkbox(cs.short_id,class_="changeset_range")}
<span>${_('commit')} ${cs.revision}: ${h.short_id(cs.raw_id)}@${cs.date}</span>
</div>
<div class="author">
<div class="gravatar">
<img alt="gravatar" src="${h.gravatar_url(h.email(cs.author),20)}"/>
</div>
<span>${h.person(cs.author)}</span><br/>
<span><a href="mailto:${h.email_or_none(cs.author)}">${h.email_or_none(cs.author)}</a></span><br/>
</div>
<div class="message">${h.link_to(h.wrap_paragraphs(cs.message),h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}</div>
</div>
<div class="right">
<div class="changes">
% if len(cs.affected_files) <= 30:
<span class="removed tooltip" title="<b>${_('removed')}</b>${h.changed_tooltip(cs.removed)}">${len(cs.removed)}</span>
<span class="changed tooltip" title="<b>${_('changed')}</b>${h.changed_tooltip(cs.changed)}">${len(cs.changed)}</span>
<span class="added tooltip" title="<b>${_('added')}</b>${h.changed_tooltip(cs.added)}">${len(cs.added)}</span>
% else:
<span class="large tooltip" title="${_('affected %s files') % len(cs.affected_files)}">${len(cs.affected_files)}</span>
% endif
</div>
%if len(cs.parents)>1:
<div class="merge">
${_('merge')}<img alt="merge" src="${h.url("/images/icons/arrow_join.png")}"/>
</div>
%endif
%if cs.parents:
%for p_cs in reversed(cs.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">
%if cs.branch:
<span class="branchtag" title="${'%s %s' % (_('branch'),cs.branch)}">
${h.link_to(cs.branch,h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}</span>
%endif
%for tag in cs.tags:
<span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}</span>
%endfor
</span>
</div>
</div>
%endfor
<div class="pagination-wh pagination-left">
${c.pagination.pager('$link_previous ~2~ $link_next')}
</div>
</div>
</div>
<script type="text/javascript" src="${h.url('/js/graph.js')}"></script>
<script type="text/javascript">
YAHOO.util.Event.onDOMReady(function(){
//Monitor range checkboxes and build a link to changesets
//ranges
var checkboxes = YUD.getElementsByClassName('changeset_range');
var url_tmpl = "${h.url('changeset_home',repo_name=c.repo_name,revision='__REVRANGE__')}";
YUE.on(checkboxes,'click',function(e){
var checked_checkboxes = [];
for (pos in checkboxes){
if(checkboxes[pos].checked){
checked_checkboxes.push(checkboxes[pos]);
}
}
if(checked_checkboxes.length>1){
var rev_end = checked_checkboxes[0].name;
var rev_start = checked_checkboxes[checked_checkboxes.length-1].name;
var url = url_tmpl.replace('__REVRANGE__',
rev_start+'...'+rev_end);
var link = "<a href="+url+">${_('Show selected changes __S -> __E')}</a>"
link = link.replace('__S',rev_start);
link = link.replace('__E',rev_end);
YUD.get('rev_range_container').innerHTML = link;
YUD.setStyle('rev_range_container','display','');
}
else{
YUD.setStyle('rev_range_container','display','none');
}
});
function set_canvas() {
var c = document.getElementById('graph_nodes');
var t = document.getElementById('graph_content');
canvas = document.getElementById('graph_canvas');
var div_h = t.clientHeight;
c.style.height=div_h+'px';
canvas.setAttribute('height',div_h);
canvas.setAttribute('width',160);
};
set_canvas();
var jsdata = ${c.jsdata|n};
var r = new BranchRenderer();
r.render(jsdata);
});
</script>
%else:
${_('There are no changes yet')}
%endif
</div>
</div>
</%def>
|