From 20e0c9b132f1a7d12b156936114155c89d55b8cf Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Fri, 26 Sep 2014 18:04:41 +0300 Subject: 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 --- .../javascripts/stat_graph_contributors.js.coffee | 15 ---------- .../stat_graph_contributors_util.js.coffee | 2 +- app/controllers/projects/graphs_controller.rb | 17 +++++++---- .../projects/repositories_controller.rb | 5 ---- app/models/repository.rb | 2 +- app/views/projects/commits/_head.html.haml | 4 --- app/views/projects/graphs/show.html.haml | 29 ++++++++++--------- app/views/projects/graphs/show.js.haml | 19 ------------- app/views/projects/repositories/stats.html.haml | 33 ---------------------- 9 files changed, 29 insertions(+), 97 deletions(-) delete mode 100644 app/views/projects/graphs/show.js.haml delete mode 100644 app/views/projects/repositories/stats.html.haml (limited to 'app') diff --git a/app/assets/javascripts/stat_graph_contributors.js.coffee b/app/assets/javascripts/stat_graph_contributors.js.coffee index 168b7337041..ab785a54543 100644 --- a/app/assets/javascripts/stat_graph_contributors.js.coffee +++ b/app/assets/javascripts/stat_graph_contributors.js.coffee @@ -24,22 +24,7 @@ class window.ContributorsStatGraph class: 'graph-author-commits-count' }) commits.text(author.commits + " commits") - - additions = $('', { - class: 'graph-additions' - }) - additions.text(author.additions + " ++") - - deletions = $('', { - class: 'graph-deletions' - }) - deletions.text(author.deletions + " --") - $('').append(commits) - .append(" / ") - .append(additions) - .append(" / ") - .append(deletions) create_author_header: (author) -> list_item = $('
  • ', { diff --git a/app/assets/javascripts/stat_graph_contributors_util.js.coffee b/app/assets/javascripts/stat_graph_contributors_util.js.coffee index 364cab18377..1670f5c7bc1 100644 --- a/app/assets/javascripts/stat_graph_contributors_util.js.coffee +++ b/app/assets/javascripts/stat_graph_contributors_util.js.coffee @@ -90,4 +90,4 @@ window.ContributorsStatGraphUtil = true else false - + diff --git a/app/controllers/projects/graphs_controller.rb b/app/controllers/projects/graphs_controller.rb index 252d47d939e..92bb5607f81 100644 --- a/app/controllers/projects/graphs_controller.rb +++ b/app/controllers/projects/graphs_controller.rb @@ -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 diff --git a/app/controllers/projects/repositories_controller.rb b/app/controllers/projects/repositories_controller.rb index c030320d037..4e0f190ed1c 100644 --- a/app/controllers/projects/repositories_controller.rb +++ b/app/controllers/projects/repositories_controller.rb @@ -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 diff --git a/app/models/repository.rb b/app/models/repository.rb index a2bdfe87469..b7ca6e0919f 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -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, diff --git a/app/views/projects/commits/_head.html.haml b/app/views/projects/commits/_head.html.haml index 2dcd84af010..0c9d906481b 100644 --- a/app/views/projects/commits/_head.html.haml +++ b/app/views/projects/commits/_head.html.haml @@ -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 diff --git a/app/views/projects/graphs/show.html.haml b/app/views/projects/graphs/show.html.haml index 8e4548f26d0..c2878e13e7c 100644 --- a/app/views/projects/graphs/show.html.haml +++ b/app/views/projects/graphs/show.html.haml @@ -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" + diff --git a/app/views/projects/graphs/show.js.haml b/app/views/projects/graphs/show.js.haml deleted file mode 100644 index dcf6cacdceb..00000000000 --- a/app/views/projects/graphs/show.js.haml +++ /dev/null @@ -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('
    Failed to load graph
    ') diff --git a/app/views/projects/repositories/stats.html.haml b/app/views/projects/repositories/stats.html.haml deleted file mode 100644 index 70db27d6444..00000000000 --- a/app/views/projects/repositories/stats.html.haml +++ /dev/null @@ -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); -- cgit v1.2.3