Merge remote-tracking branch 'origin/szzh' into szzh
This commit is contained in:
commit
ce16550545
|
@ -459,6 +459,12 @@ update
|
|||
data = graph_commits_per_month(@repository)
|
||||
when "commits_per_author"
|
||||
data = graph_commits_per_author(@repository)
|
||||
when "author_commits_per_month"
|
||||
data = graph_author_commits_per_month(@repository)
|
||||
when "author_commits_six_month"
|
||||
data = author_commits_six_month(@repository)
|
||||
when "author_qoc_per_author"
|
||||
data = graph_author_qoc_per_author(@repository)
|
||||
end
|
||||
if data
|
||||
headers["Content-Type"] = "image/svg+xml"
|
||||
|
@ -617,6 +623,80 @@ update
|
|||
)
|
||||
graph.burn
|
||||
end
|
||||
|
||||
# 用户每月提交次数
|
||||
def graph_author_commits_per_month(repository)
|
||||
@date_to = Date.today
|
||||
@date_from = @date_to << 1
|
||||
@date_from = Date.civil(@date_from.year, @date_from.month, @date_from.day)
|
||||
commits_by_author = Changeset.count(:all, :group => :committer,
|
||||
:conditions => ["#{Changeset.table_name}.repository_id = ? AND #{Changeset.table_name}.commit_date BETWEEN ? AND ?", repository.id, @date_from, @date_to])
|
||||
commits_by_author = commits_by_author.to_a.sort! {|x, y| x.last <=> y.last}.last(40)
|
||||
|
||||
fields = commits_by_author.collect {|r| r.first}
|
||||
commits_data = commits_by_author.collect {|r| r.last}
|
||||
|
||||
fields = fields + [""]*(10 - fields.length) if fields.length<10
|
||||
commits_data = commits_data + [0]*(10 - commits_data.length) if commits_data.length<10
|
||||
|
||||
# Remove email adress in usernames
|
||||
fields = fields.collect {|c| c.gsub(%r{<.+@.+>}, '') }
|
||||
|
||||
graph = SVG::Graph::BarHorizontal.new(
|
||||
:height => 400,
|
||||
:width => 600,
|
||||
:fields => fields,
|
||||
:stack => :side,
|
||||
:scale_integers => true,
|
||||
:show_data_values => true,
|
||||
:rotate_y_labels => false,
|
||||
:graph_title => l(:label_author_commits_per_month),
|
||||
:show_graph_title => true
|
||||
)
|
||||
graph.add_data(
|
||||
:data => commits_data,
|
||||
:title => l(:label_revision_plural)
|
||||
)
|
||||
graph.burn
|
||||
end
|
||||
|
||||
# 用户最近六个月的提交次数
|
||||
def author_commits_six_month(repository)
|
||||
@date_to = Date.today
|
||||
@date_from = @date_to << 6
|
||||
@date_from = Date.civil(@date_from.year, @date_from.month, @date_from.day)
|
||||
commits_by_author = Changeset.count(:all, :group => :committer,
|
||||
:conditions => ["#{Changeset.table_name}.repository_id = ? AND #{Changeset.table_name}.commit_date BETWEEN ? AND ?", repository.id, @date_from, @date_to])
|
||||
commits_by_author = commits_by_author.to_a.sort! {|x, y| x.last <=> y.last}.last(40)
|
||||
|
||||
fields = commits_by_author.collect {|r| r.first}
|
||||
commits_data = commits_by_author.collect {|r| r.last}
|
||||
|
||||
fields = fields + [""]*(10 - fields.length) if fields.length<10
|
||||
commits_data = commits_data + [0]*(10 - commits_data.length) if commits_data.length<10
|
||||
|
||||
# Remove email adress in usernames
|
||||
fields = fields.collect {|c| c.gsub(%r{<.+@.+>}, '') }
|
||||
|
||||
graph = SVG::Graph::BarHorizontal.new(
|
||||
:height => 400,
|
||||
:width => 600,
|
||||
:fields => fields,
|
||||
:stack => :side,
|
||||
:scale_integers => true,
|
||||
:show_data_values => true,
|
||||
:rotate_y_labels => false,
|
||||
:graph_title => l(:label_author_commits_six_month),
|
||||
:show_graph_title => true
|
||||
)
|
||||
graph.add_data(
|
||||
:data => commits_data,
|
||||
:title => l(:label_revision_plural)
|
||||
)
|
||||
graph.burn
|
||||
end
|
||||
|
||||
|
||||
def check_hidden_repo
|
||||
project = Project.find(params[:id])
|
||||
if !User.current.member_of?(project)
|
||||
|
|
|
@ -5,27 +5,27 @@
|
|||
<!--JS进度条-->
|
||||
<style type="text/css">
|
||||
#out{}
|
||||
#in{width:10px; height:20px;background:#15BCCF;color:white;text-align:center;}
|
||||
#in{}
|
||||
#font_color{background:yellow;text-align:center;color:white;}
|
||||
</style>
|
||||
<div style="padding-left: 200px;">
|
||||
<div id='out'>
|
||||
<p style="padding-left: 120px;padding-bottom: 10px;font-size: 14px;">云化部署中...</p>
|
||||
<div style="width:300px;height:20px;background:#EEE;">
|
||||
<div id="in" style="width:1%">0%</div>
|
||||
<p style="padding-left: 100px;padding-bottom: 10px;font-size: 14px;padding-top: 10px;">云化部署中....</p>
|
||||
<div>
|
||||
<div id="in" style="width:0%"></div>
|
||||
<div>
|
||||
<script type="text/javascript">
|
||||
i=0;
|
||||
$(function(){
|
||||
ba=setInterval("begin()",50);//setInterval 返回的是一个全局变量,一个间隔数值.这个数值是表示调用setInterval的次数
|
||||
ba=setInterval("begin()",60);//setInterval 返回的是一个全局变量,一个间隔数值.这个数值是表示调用setInterval的次数
|
||||
});
|
||||
function begin()
|
||||
{
|
||||
i+=1;
|
||||
if(i<=100)
|
||||
{
|
||||
document.getElementById("in").style.width=i+"%";
|
||||
document.getElementById("in").innerHTML=i+"%";}
|
||||
document.getElementById("in").style.width="";
|
||||
document.getElementById("in").innerHTML="";}
|
||||
else
|
||||
{
|
||||
clearInterval(ba);
|
||||
|
|
|
@ -1,11 +1,29 @@
|
|||
<div class="project_r_h">
|
||||
<h2 class="project_h2"><%= l(:label_statistics) %></h2>
|
||||
</div>
|
||||
<p>
|
||||
<div class="riviseRed fl"></div><div class="fl">修订 是版本库的提交次数, 显示为橘红色。</div><br>
|
||||
<div class="changeBlue fl"></div><div class="fl">变更 是对版本库中文件的修改次数, 显示为蓝色。</div>
|
||||
<p style="padding-top:35px;">
|
||||
<%= tag("embed", :width => 670, :height => 300, :type => "image/svg+xml", :src => url_for(:controller => 'repositories', :action => 'graph', :id => @project, :repository_id => @repository.identifier_param, :graph => "commits_per_month")) %>
|
||||
</p>
|
||||
<p style="padding-top: 50px;">
|
||||
<%# 用户每月提交代码次数 %>
|
||||
<%= tag("embed", :width => 670, :height => 400, :type => "image/svg+xml", :src => url_for(:controller => 'repositories', :action => 'graph', :id => @project, :repository_id => @repository.identifier_param, :graph => "commits_per_author")) %>
|
||||
</p>
|
||||
<p style="padding-top: 50px;">
|
||||
<%= tag("embed", :width => 670, :height => 400, :type => "image/svg+xml", :src => url_for(:controller => 'repositories', :action => 'graph', :id => @project, :repository_id => @repository.identifier_param, :graph => "author_commits_per_month")) %>
|
||||
</p>
|
||||
<p style="padding-top: 50px;">
|
||||
<%# 用户每月提交代码量 %>
|
||||
<%= tag("embed", :width => 670, :height => 400, :type => "image/svg+xml", :src => url_for(:controller => 'repositories', :action => 'graph', :id => @project, :repository_id => @repository.identifier_param, :graph => "author_qoc_per_author")) %>
|
||||
</p>
|
||||
<p style="padding-top: 50px;">
|
||||
<%# 用户最近六个月的提交次数 %>
|
||||
<%= tag("embed", :width => 670, :height => 400, :type => "image/svg+xml", :src => url_for(:controller => 'repositories', :action => 'graph', :id => @project, :repository_id => @repository.identifier_param, :graph => "author_commits_six_month")) %>
|
||||
</p>
|
||||
<p style="padding-top: 50px;">
|
||||
<%# 用户最近一年的提交次数 %>
|
||||
<%= tag("embed", :width => 670, :height => 400, :type => "image/svg+xml", :src => url_for(:controller => 'repositories', :action => 'graph', :id => @project, :repository_id => @repository.identifier_param, :graph => "author_qoc_per_author")) %>
|
||||
</p>
|
||||
<p><%= link_to l(:button_back), :action => 'show', :id => @project %></p>
|
||||
<% html_title(l(:label_repository), l(:label_statistics)) -%>
|
||||
|
|
|
@ -715,6 +715,9 @@ zh:
|
|||
|
||||
label_commits_per_month: 每月提交次数
|
||||
label_commits_per_author: 每用户提交次数
|
||||
label_author_commits_per_month: 用户最近一月的提交次数
|
||||
label_author_commits_six_month: 用户最近六个月的提交次数
|
||||
label_author_commits_year: 最近一年的提交次数
|
||||
label_view_diff: 查看差别
|
||||
label_diff_inline: 直列
|
||||
label_diff_side_by_side: 并排
|
||||
|
|
|
@ -551,7 +551,24 @@ p.percent {
|
|||
font-size: 12px;
|
||||
}
|
||||
.repositorytitle select{ width: 110px; height: 21px; }
|
||||
|
||||
.riviseRed {
|
||||
width:15px;
|
||||
height:15px;
|
||||
margin-right: 3px;
|
||||
background-color:#FF0000;
|
||||
filter:alpha(opacity=50); /* ie 有效*/
|
||||
-moz-opacity:0.5; /* Firefox 有效*/
|
||||
opacity: 0.5; /* 通用,其他浏览器 有效*/
|
||||
}
|
||||
.changeBlue {
|
||||
width:15px;
|
||||
height:15px;
|
||||
margin-right: 3px;
|
||||
background-color:#0000FF;
|
||||
filter:alpha(opacity=50); /* ie 有效*/
|
||||
-moz-opacity:0.5; /* Firefox 有效*/
|
||||
opacity: 0.5; /* 通用,其他浏览器 有效*/
|
||||
}
|
||||
|
||||
|
||||
/*导出*/
|
||||
|
|
Loading…
Reference in New Issue