Commit 31e9f82e authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Improve repository graph

parent 7825830c
......@@ -16,7 +16,7 @@ class window.ContributorsStatGraph
_.each(limited_author_data, (d) =>
author_header = @create_author_header(d)
$(".contributors-list").append(author_header)
@authors[d.author] = author_graph = new ContributorsAuthorGraph(d.dates)
@authors[d.author_name] = author_graph = new ContributorsAuthorGraph(d.dates)
author_graph.draw()
)
format_author_commit_info: (author) ->
......@@ -46,13 +46,15 @@ class window.ContributorsStatGraph
class: 'person'
style: 'display: block;'
})
author_name = $('<h4>' + author.author + '</h4>')
author_name = $('<h4>' + author.author_name + '</h4>')
author_email = $('<p class="graph-author-email">' + author.author_email + '</p>')
author_commit_info_span = $('<span/>', {
class: 'commits'
})
author_commit_info = @format_author_commit_info(author)
author_commit_info_span.html(author_commit_info)
list_item.append(author_name)
list_item.append(author_email)
list_item.append(author_commit_info_span)
list_item
redraw_master: ->
......@@ -65,9 +67,9 @@ class window.ContributorsStatGraph
author_commits = ContributorsStatGraphUtil.get_author_data(@parsed_log, @field, x_domain)
_.each(author_commits, (d) =>
@redraw_author_commit_info(d)
$(@authors[d.author].list_item).appendTo("ol")
@authors[d.author].set_data(d.dates)
@authors[d.author].redraw()
$(@authors[d.author_name].list_item).appendTo("ol")
@authors[d.author_name].set_data(d.dates)
@authors[d.author_name].redraw()
)
set_current_field: (field) ->
@field = field
......@@ -77,6 +79,6 @@ class window.ContributorsStatGraph
print = print_date_format(x_domain[0]) + " - " + print_date_format(x_domain[1])
$("#date_header").text(print)
redraw_author_commit_info: (author) ->
author_list_item = $(@authors[author.author].list_item)
author_list_item = $(@authors[author.author_name].list_item)
author_commit_info = @format_author_commit_info(author)
author_list_item.find("span").html(author_commit_info)
......@@ -90,9 +90,9 @@ class window.ContributorsMasterGraph extends ContributorsGraph
y(d.commits = d.commits ? d.additions ? d.deletions)
).interpolate("basis")
create_brush: ->
@brush = d3.svg.brush().x(@x).on("brushend", @update_content);
@brush = d3.svg.brush().x(@x).on("brushend", @update_content)
draw_path: (data) ->
@svg.append("path").datum(data).attr("class", "area").attr("d", @area);
@svg.append("path").datum(data).attr("class", "area").attr("d", @area)
add_brush: ->
@svg.append("g").attr("class", "selection").call(@brush).selectAll("rect").attr("height", @height);
update_content: =>
......
......@@ -4,9 +4,9 @@ window.ContributorsStatGraphUtil =
by_author = {}
for entry in log
@add_date(entry.date, total) unless total[entry.date]?
@add_author(entry.author, by_author) unless by_author[entry.author]?
@add_date(entry.date, by_author[entry.author]) unless by_author[entry.author][entry.date]
@store_data(entry, total[entry.date], by_author[entry.author][entry.date])
@add_author(entry, by_author) unless by_author[entry.author_name]?
@add_date(entry.date, by_author[entry.author_name]) unless by_author[entry.author_name][entry.date]
@store_data(entry, total[entry.date], by_author[entry.author_name][entry.date])
total = _.toArray(total)
by_author = _.toArray(by_author)
total: total, by_author: by_author
......@@ -16,8 +16,9 @@ window.ContributorsStatGraphUtil =
collection[date].date = date
add_author: (author, by_author) ->
by_author[author] = {}
by_author[author].author = author
by_author[author.author_name] = {}
by_author[author.author_name].author_name = author.author_name
by_author[author.author_name].author_email = author.author_email
store_data: (entry, total, by_author) ->
@store_commits(total, by_author)
......@@ -71,10 +72,11 @@ window.ContributorsStatGraphUtil =
parse_log_entry: (log_entry, field, date_range) ->
parsed_entry = {}
parsed_entry.author = log_entry.author
parsed_entry.author_name = log_entry.author_name
parsed_entry.author_email = log_entry.author_email
parsed_entry.dates = {}
parsed_entry.commits = parsed_entry.additions = parsed_entry.deletions = 0
_.each(_.omit(log_entry, 'author'), (value, key) =>
_.each(_.omit(log_entry, 'author_name', 'author_email'), (value, key) =>
if @in_range(value.date, date_range)
parsed_entry.dates[value.date] = value[field]
parsed_entry.commits += value.commits
......
......@@ -22,6 +22,11 @@
.graph-author-commits-count {
}
.graph-author-email {
float: right;
color: #777;
}
.graph-additions {
color: #4a2;
}
......
.loading-graph
%center
.loading
%h3.page-title Building repository graph. Please wait a moment.
%h3.page-title Building repository graph.
%p Please wait a moment, this page will automatically refresh when ready.
.stat-graph
.header.clearfix
......@@ -11,6 +12,8 @@
%option{:value => "additions"} Additions
%option{:value => "deletions"} Deletions
%h3#date_header.page-title
%p.light
Commits to #{@project.default_branch}, excluding merge commits. Limited by 8,000 commits
%input#brush_change{:type => "hidden"}
.graphs
#contributors-master
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment