summary.html
274 lines
| 8.7 KiB
| text/html
|
HtmlLexer
r183 | <%inherit file="/base/base.html"/> | ||
r362 | |||
r183 | <%def name="title()"> | ||
r362 | ${_('Mercurial Repository Overview')} | ||
r183 | </%def> | ||
r362 | |||
<%def name="breadcrumbs_links()"> | |||
r183 | ${h.link_to(u'Home',h.url('/'))} | ||
r362 | » | ||
r183 | ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))} | ||
r362 | » | ||
r183 | ${_('summary')} | ||
</%def> | |||
r362 | |||
r183 | <%def name="page_nav()"> | ||
r189 | ${self.menu('summary')} | ||
r183 | </%def> | ||
r219 | |||
r362 | <%def name="main()"> | ||
r219 | <script type="text/javascript"> | ||
var E = YAHOO.util.Event; | |||
var D = YAHOO.util.Dom; | |||
E.onDOMReady(function(e){ | |||
id = 'clone_url'; | |||
r362 | E.addListener(id,'click',function(e){ | ||
D.get('clone_url').select(); | |||
}) | |||
r219 | }) | ||
</script> | |||
r362 | <div class="box box-left"> | ||
<!-- box / title --> | |||
<div class="title"> | |||
${self.breadcrumbs()} | |||
</div> | |||
<!-- end box / title --> | |||
<div class="form"> | |||
<div class="fields"> | |||
<div class="field"> | |||
<div class="label"> | |||
<label>${_('Name')}:</label> | |||
</div> | |||
<div class="input-short"> | |||
${c.repo_info.name} | |||
</div> | |||
</div> | |||
<div class="field"> | |||
<div class="label"> | |||
<label>${_('Description')}:</label> | |||
</div> | |||
<div class="input-short"> | |||
${c.repo_info.description} | |||
</div> | |||
</div> | |||
<div class="field"> | |||
<div class="label"> | |||
<label>${_('Contact')}:</label> | |||
</div> | |||
<div class="input-short"> | |||
r400 | <div class="gravatar"> | ||
<img alt="gravatar" src="${h.gravatar_url(c.repo_info.dbrepo.user.email)}"/> | |||
</div> | |||
${_('Username')}: ${c.repo_info.dbrepo.user.username}<br/> | |||
${_('Name')}: ${c.repo_info.dbrepo.user.name} ${c.repo_info.dbrepo.user.lastname}<br/> | |||
${_('Email')}: <a href="mailto:${c.repo_info.dbrepo.user.email}">${c.repo_info.dbrepo.user.email}</a> | |||
r362 | </div> | ||
</div> | |||
<div class="field"> | |||
<div class="label"> | |||
<label>${_('Last change')}:</label> | |||
</div> | |||
<div class="input-short"> | |||
${h.age(c.repo_info.last_change)} - ${h.rfc822date(c.repo_info.last_change)} | |||
</div> | |||
</div> | |||
<div class="field"> | |||
<div class="label"> | |||
<label>${_('Clone url')}:</label> | |||
</div> | |||
<div class="input-short"> | |||
<input type="text" id="clone_url" readonly="readonly" value="hg clone ${c.clone_repo_url}" size="70"/> | |||
</div> | |||
</div> | |||
<div class="field"> | |||
<div class="label"> | |||
<label>${_('Download')}:</label> | |||
</div> | |||
<div class="input-short"> | |||
%for cnt,archive in enumerate(c.repo_info._get_archives()): | |||
%if cnt >=1: | |||
| | |||
%endif | |||
${h.link_to(c.repo_info.name+'.'+archive['type'], | |||
h.url('files_archive_home',repo_name=c.repo_info.name, | |||
revision='tip',fileformat=archive['extension']),class_="archive_icon")} | |||
%endfor | |||
</div> | |||
</div> | |||
<div class="field"> | |||
<div class="label"> | |||
<label>${_('Feeds')}:</label> | |||
</div> | |||
<div class="input-short"> | |||
${h.link_to(_('RSS'),h.url('rss_feed_home',repo_name=c.repo_info.name),class_='rss_icon')} | |||
${h.link_to(_('Atom'),h.url('atom_feed_home',repo_name=c.repo_info.name),class_='atom_icon')} | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="box box-right"> | |||
<!-- box / title --> | |||
<div class="title"> | |||
<h5>${_('Last month commit activity')}</h5> | |||
</div> | |||
<div class="table"> | |||
r379 | <div id="commit_history" style="width:460px;height:370px;float:left"></div> | ||
r362 | <div id="legend_data"> | ||
<div id="legend_container"></div> | |||
<div id="legend_choices"> | |||
r379 | <table id="legend_choices_tables" style="font-size:smaller;color:#545454"></table> | ||
r362 | </div> | ||
</div> | |||
<script type="text/javascript"> | |||
(function () { | |||
var datasets = {${c.commit_data|n}}; | |||
var i = 0; | |||
var choiceContainer = YAHOO.util.Dom.get("legend_choices"); | |||
var choiceContainerTable = YAHOO.util.Dom.get("legend_choices_tables"); | |||
for(var key in datasets) { | |||
datasets[key].color = i; | |||
i++; | |||
choiceContainerTable.innerHTML += '<tr>'+ | |||
'<td>'+ | |||
'<input type="checkbox" name="' + key +'" checked="checked" />'+datasets[key].label+ | |||
'</td>'+ | |||
'</tr>'; | |||
}; | |||
r219 | |||
r362 | function plotAccordingToChoices() { | ||
var data = []; | |||
var inputs = choiceContainer.getElementsByTagName("input"); | |||
for(var i=0; i<inputs.length; i++) { | |||
if(!inputs[i].checked) | |||
continue; | |||
var key = inputs[i].name; | |||
if (key && datasets[key]) | |||
data.push(datasets[key]); | |||
}; | |||
if (data.length > 0){ | |||
var plot = YAHOO.widget.Flot("commit_history", data, | |||
r390 | { bars: { show: true, align:'center',lineWidth:4 }, | ||
r362 | points: { show: true, radius:0,fill:true }, | ||
legend:{show:true, container:"legend_container"}, | |||
selection: { mode: "xy" }, | |||
r405 | yaxis: {tickDecimals:0}, | ||
r362 | xaxis: { mode: "time", timeformat: "%d",tickSize:[1, "day"],min:${c.ts_min},max:${c.ts_max} }, | ||
grid: { hoverable: true, clickable: true,autoHighlight:true }, | |||
}); | |||
r405 | |||
r362 | function showTooltip(x, y, contents) { | ||
var div=document.getElementById('tooltip'); | |||
if(!div) { | |||
div = document.createElement('div'); | |||
div.id="tooltip"; | |||
div.style.position="absolute"; | |||
div.style.border='1px solid #fdd'; | |||
div.style.padding='2px'; | |||
div.style.backgroundColor='#fee'; | |||
document.body.appendChild(div); | |||
} | |||
YAHOO.util.Dom.setStyle(div, 'opacity', 0); | |||
div.innerHTML = contents; | |||
div.style.top=(y + 5) + "px"; | |||
div.style.left=(x + 5) + "px"; | |||
var anim = new YAHOO.util.Anim(div, {opacity: {to: 0.8}}, 0.2); | |||
anim.animate(); | |||
} | |||
r183 | |||
r362 | var previousPoint = null; | ||
plot.subscribe("plothover", function (o) { | |||
var pos = o.pos; | |||
var item = o.item; | |||
//YAHOO.util.Dom.get("x").innerHTML = pos.x.toFixed(2); | |||
//YAHOO.util.Dom.get("y").innerHTML = pos.y.toFixed(2); | |||
if (item) { | |||
if (previousPoint != item.datapoint) { | |||
previousPoint = item.datapoint; | |||
var tooltip = YAHOO.util.Dom.get("tooltip"); | |||
if(tooltip) { | |||
tooltip.parentNode.removeChild(tooltip); | |||
} | |||
var x = item.datapoint.x.toFixed(2); | |||
var y = item.datapoint.y.toFixed(2); | |||
if (!item.series.label){ | |||
item.series.label = 'commits'; | |||
} | |||
var d = new Date(x*1000); | |||
var fd = d.getFullYear()+'-'+(d.getMonth()+1)+'-'+d.getDate(); | |||
var nr_commits = parseInt(y); | |||
r372 | var suffix = ''; | ||
if(nr_commits > 1){ | |||
var suffix = 's'; | |||
} | |||
showTooltip(item.pageX, item.pageY, item.series.label + " on " + fd + ": " + nr_commits+" commit" + suffix); | |||
r362 | } | ||
} | |||
else { | |||
var tooltip = YAHOO.util.Dom.get("tooltip"); | |||
if(tooltip) { | |||
tooltip.parentNode.removeChild(tooltip); | |||
} | |||
previousPoint = null; | |||
} | |||
}); | |||
r183 | |||
r362 | } | ||
} | |||
YAHOO.util.Event.on(choiceContainer.getElementsByTagName("input"), "click", plotAccordingToChoices); | |||
plotAccordingToChoices(); | |||
})(); | |||
</script> | |||
</div> | |||
</div> | |||
<div class="box"> | |||
<div class="title"> | |||
<div class="breadcrumbs">${h.link_to(_('Last ten changes'),h.url('changelog_home',repo_name=c.repo_name))}</div> | |||
</div> | |||
<div class="table"> | |||
<%include file='../shortlog/shortlog_data.html'/> | |||
</div> | |||
</div> | |||
<div class="box"> | |||
<div class="title"> | |||
<div class="breadcrumbs">${h.link_to(_('Last ten tags'),h.url('tags_home',repo_name=c.repo_name))}</div> | |||
</div> | |||
<div class="table"> | |||
<%include file='../tags/tags_data.html'/> | |||
</div> | |||
</div> | |||
<div class="box"> | |||
<div class="title"> | |||
<div class="breadcrumbs">${h.link_to(_('Last ten branches'),h.url('branches_home',repo_name=c.repo_name))}</div> | |||
</div> | |||
<div class="table"> | |||
<%include file='../branches/branches_data.html'/> | |||
</div> | |||
</div> | |||
r183 | |||
</%def> |