|
|
<%inherit file="/base/base.html"/>
|
|
|
|
|
|
<%def name="title()">
|
|
|
${_('Mercurial Repository Overview')}
|
|
|
</%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))}
|
|
|
»
|
|
|
${_('summary')}
|
|
|
</%def>
|
|
|
|
|
|
<%def name="page_nav()">
|
|
|
${self.menu('summary')}
|
|
|
</%def>
|
|
|
|
|
|
<%def name="main()">
|
|
|
<script type="text/javascript">
|
|
|
var E = YAHOO.util.Event;
|
|
|
var D = YAHOO.util.Dom;
|
|
|
|
|
|
E.onDOMReady(function(e){
|
|
|
id = 'clone_url';
|
|
|
E.addListener(id,'click',function(e){
|
|
|
D.get('clone_url').select();
|
|
|
})
|
|
|
})
|
|
|
</script>
|
|
|
<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">
|
|
|
${c.repo_info.contact}
|
|
|
</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">
|
|
|
<div id="commit_history" style="width:460px;height:370px;float:left"></div>
|
|
|
<div id="legend_data">
|
|
|
<div id="legend_container"></div>
|
|
|
<div id="legend_choices">
|
|
|
<table id="legend_choices_tables" style="font-size:smaller;color:#545454"></table>
|
|
|
</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>';
|
|
|
};
|
|
|
|
|
|
|
|
|
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,
|
|
|
{ bars: { show: true, align:'center',lineWidth:4 },
|
|
|
points: { show: true, radius:0,fill:true },
|
|
|
legend:{show:true, container:"legend_container"},
|
|
|
selection: { mode: "xy" },
|
|
|
yaxis:{tickSize:[1]},
|
|
|
xaxis: { mode: "time", timeformat: "%d",tickSize:[1, "day"],min:${c.ts_min},max:${c.ts_max} },
|
|
|
grid: { hoverable: true, clickable: true,autoHighlight:true },
|
|
|
});
|
|
|
|
|
|
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();
|
|
|
}
|
|
|
|
|
|
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);
|
|
|
var suffix = '';
|
|
|
if(nr_commits > 1){
|
|
|
var suffix = 's';
|
|
|
}
|
|
|
showTooltip(item.pageX, item.pageY, item.series.label + " on " + fd + ": " + nr_commits+" commit" + suffix);
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
|
var tooltip = YAHOO.util.Dom.get("tooltip");
|
|
|
|
|
|
if(tooltip) {
|
|
|
tooltip.parentNode.removeChild(tooltip);
|
|
|
}
|
|
|
previousPoint = null;
|
|
|
}
|
|
|
});
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
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>
|
|
|
|
|
|
</%def>
|