Rewrite graphs feature
* remove commits stats page (will be replaced by graphs) * remove additions/deletions from graph because of bad performance * keep graph logic in gitlab Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
parent
633d42a335
commit
20e0c9b132
10 changed files with 29 additions and 98 deletions
|
@ -24,22 +24,7 @@ class window.ContributorsStatGraph
|
|||
class: 'graph-author-commits-count'
|
||||
})
|
||||
commits.text(author.commits + " commits")
|
||||
|
||||
additions = $('<span/>', {
|
||||
class: 'graph-additions'
|
||||
})
|
||||
additions.text(author.additions + " ++")
|
||||
|
||||
deletions = $('<span/>', {
|
||||
class: 'graph-deletions'
|
||||
})
|
||||
deletions.text(author.deletions + " --")
|
||||
|
||||
$('<span/>').append(commits)
|
||||
.append(" / ")
|
||||
.append(additions)
|
||||
.append(" / ")
|
||||
.append(deletions)
|
||||
|
||||
create_author_header: (author) ->
|
||||
list_item = $('<li/>', {
|
||||
|
|
|
@ -90,4 +90,4 @@ window.ContributorsStatGraphUtil =
|
|||
true
|
||||
else
|
||||
false
|
||||
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ class Projects::GraphsController < Projects::ApplicationController
|
|||
def show
|
||||
respond_to do |format|
|
||||
format.html
|
||||
format.js do
|
||||
format.json do
|
||||
fetch_graph
|
||||
end
|
||||
end
|
||||
|
@ -16,10 +16,17 @@ class Projects::GraphsController < Projects::ApplicationController
|
|||
private
|
||||
|
||||
def fetch_graph
|
||||
@log = @project.repository.graph_log.to_json
|
||||
@success = true
|
||||
rescue => ex
|
||||
@commits = @project.repository.commits(nil, nil, 6000, 0, true)
|
||||
@log = []
|
||||
@success = false
|
||||
|
||||
@commits.each do |commit|
|
||||
@log << {
|
||||
author_name: commit.author_name.force_encoding('UTF-8'),
|
||||
author_email: commit.author_email.force_encoding('UTF-8'),
|
||||
date: commit.committed_date.strftime("%Y-%m-%d")
|
||||
}
|
||||
end
|
||||
|
||||
render json: @log.to_json
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,11 +4,6 @@ class Projects::RepositoriesController < Projects::ApplicationController
|
|||
before_filter :authorize_code_access!
|
||||
before_filter :require_non_empty_project
|
||||
|
||||
def stats
|
||||
@stats = Gitlab::Git::Stats.new(@repository.raw_repository, @repository.root_ref)
|
||||
@graph = @stats.graph
|
||||
end
|
||||
|
||||
def archive
|
||||
unless can?(current_user, :download_code, @project)
|
||||
render_404 and return
|
||||
|
|
|
@ -32,7 +32,7 @@ class Repository
|
|||
commit
|
||||
end
|
||||
|
||||
def commits(ref, path = nil, limit = nil, offset = nil)
|
||||
def commits(ref, path = nil, limit = nil, offset = nil, skip_merges = false)
|
||||
commits = Gitlab::Git::Commit.where(
|
||||
repo: raw_repository,
|
||||
ref: ref,
|
||||
|
|
|
@ -13,7 +13,3 @@
|
|||
= link_to project_tags_path(@project) do
|
||||
Tags
|
||||
%span.badge.js-totaltags-count= @repository.tags.length
|
||||
|
||||
= nav_link(controller: :repositories, action: :stats) do
|
||||
= link_to stats_project_repository_path(@project) do
|
||||
Stats
|
||||
|
|
|
@ -3,15 +3,10 @@
|
|||
%h3.page-title
|
||||
%i.icon-spinner.icon-spin
|
||||
Building repository graph.
|
||||
%p Please wait a moment, this page will automatically refresh when ready.
|
||||
%p.slead Please wait a moment, this page will automatically refresh when ready.
|
||||
|
||||
.stat-graph
|
||||
.stat-graph.hide
|
||||
.header.clearfix
|
||||
.pull-right
|
||||
%select
|
||||
%option{:value => "commits"} Commits
|
||||
%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 6,000 commits
|
||||
|
@ -21,15 +16,21 @@
|
|||
#contributors.clearfix
|
||||
%ol.contributors-list.clearfix
|
||||
|
||||
:javascript
|
||||
$(".stat-graph").hide();
|
||||
|
||||
$.ajax({
|
||||
|
||||
:coffeescript
|
||||
$.ajax
|
||||
type: "GET",
|
||||
url: location.href,
|
||||
complete: function() {
|
||||
success: (data) ->
|
||||
graph = new ContributorsStatGraph()
|
||||
graph.init(data)
|
||||
|
||||
$("#brush_change").change ->
|
||||
graph.change_date_header()
|
||||
graph.redraw_authors()
|
||||
|
||||
$(".stat-graph").fadeIn();
|
||||
$(".loading-graph").hide();
|
||||
},
|
||||
dataType: "script"
|
||||
});
|
||||
dataType: "json"
|
||||
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
- if @success
|
||||
:plain
|
||||
controller = new ContributorsStatGraph
|
||||
controller.init(#{@log})
|
||||
|
||||
$("select").change( function () {
|
||||
var field = $(this).val()
|
||||
controller.set_current_field(field)
|
||||
controller.redraw_master()
|
||||
controller.redraw_authors()
|
||||
})
|
||||
|
||||
$("#brush_change").change( function () {
|
||||
controller.change_date_header()
|
||||
controller.redraw_authors()
|
||||
})
|
||||
- else
|
||||
:plain
|
||||
$('.stat-graph').replaceWith('<div class="alert alert-danger">Failed to load graph</div>')
|
|
@ -1,33 +0,0 @@
|
|||
= render "projects/commits/head"
|
||||
.row
|
||||
.col-md-6
|
||||
%div#activity-chart.chart
|
||||
%hr
|
||||
%p
|
||||
%b Total commits:
|
||||
%span= @repository.commit_count
|
||||
%p
|
||||
%b Total files in #{@repository.root_ref}:
|
||||
%span= @stats.files_count
|
||||
%p
|
||||
%b Authors:
|
||||
%span= @stats.authors_count
|
||||
|
||||
|
||||
.col-md-6
|
||||
%h4 Top 50 Committers:
|
||||
%ol.styled
|
||||
- @stats.authors[0...50].each do |author|
|
||||
%li
|
||||
= image_tag avatar_icon(author.email, 16), class: 'avatar s16', alt: ''
|
||||
= author.name
|
||||
%small.light= author.email
|
||||
.pull-right
|
||||
= author.commits
|
||||
|
||||
|
||||
:javascript
|
||||
var labels = [#{@graph.labels.to_json}];
|
||||
var commits = [#{@graph.commits.join(', ')}];
|
||||
var title = "Commit activity for last #{@graph.weeks} weeks";
|
||||
Chart.init(labels, commits, title);
|
|
@ -230,7 +230,6 @@ Gitlab::Application.routes.draw do
|
|||
|
||||
resource :repository, only: [:show] do
|
||||
member do
|
||||
get "stats"
|
||||
get "archive", constraints: { format: Gitlab::Regex.archive_formats_regex }
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue