activity by date

This commit is contained in:
Tomasz Gieniusz 2012-10-21 15:41:59 +02:00
parent 6fc44905cb
commit b3cbf65f83
6 changed files with 43 additions and 8 deletions

View File

@ -30,4 +30,7 @@ en:
commits_by_year_month: Commits by year and month
commits_by_month_of_year: Commits by month of year
year: Year
commits_by_year: Commits by year
commits_by_year: Commits by year
activity: Activity
activity_by_date: Activity by date
commits_by_date: Commits by date

View File

@ -6,6 +6,10 @@ module GitStats
add_commits(commits)
end
def by_date
@by_date ||= default_hash
end
def by_hour
@by_hour ||= default_hash
end
@ -51,6 +55,7 @@ module GitStats
end
def add_commit_at(date)
self.by_date[date] += 1
self.by_hour[date.hour] += 1
self.by_wday[date.wday] += 1
self.by_wday_hour[date.wday][date.hour] += 1

View File

@ -6,6 +6,16 @@ module GitStats
@activity = activity
end
def activity_by_date
Chart.new do |f|
f.date_column_chart(
data: @activity.by_date,
title: :commits_by_date.t,
y_text: :commits.t
)
end
end
def activity_by_hour
Chart.new do |f|
f.simple_column_chart(

View File

@ -38,10 +38,16 @@ module GitStats
series(
name: params[:title],
type: "spline",
data: params[:data].map {|date, value| [date.to_i * 1000, value]}
data: params[:data].map { |date, value| [date.to_i * 1000, value] }
)
end
def date_column_chart(params)
date_chart(params)
data[0][:type] = 'column'
data[0][:dataGrouping] = {units: [['week', [1]]], forced: true}
end
def default_legend
legend(
layout: 'vertical',

View File

@ -4,8 +4,11 @@ module GitStats
class All
delegate :files_by_extension, :lines_by_extension, :files_by_date, :lines_by_date,
:lines_added_by_author, :lines_deleted_by_author, to: :repo_charts
delegate :by_authors_wday, to: :authors_charts
delegate :activity_by_hour, :activity_by_wday, :activity_by_month, :activity_by_year, to: :activity_charts
delegate :activity_by_date, :activity_by_hour, :activity_by_wday, :activity_by_month,
:activity_by_year, to: :activity_charts
attr_reader :repo

View File

@ -1,6 +1,8 @@
.tabbable.tabs-left
%ul.nav.nav-tabs
%li.active
%a{:href => '#activity_by_date', 'data-toogle' => 'tab'}= :activity_by_date.t
%li
%a{:href => '#hour_of_day', 'data-toogle' => 'tab'}= :hour_of_day.t
%li
%a{:href => '#day_of_week', 'data-toogle' => 'tab'}= :day_of_week.t
@ -14,7 +16,13 @@
%a{:href => '#year_month', 'data-toogle' => 'tab'}= :year_month.t
.tab-content
.tab-pane.active{id: 'hour_of_day'}
.tab-pane.active{id: 'activity_by_date'}
.page-header
%h1.pagination-centered= :activity_by_date.t
= high_stock("charts.activity_by_date", charts.activity_by_date)
.tab-pane{id: 'hour_of_day'}
.page-header
%h1.pagination-centered= :hour_of_day.t
%table{:class => "table table-bordered table-condensed"}
@ -30,7 +38,7 @@
%th= :percentage.t
- repo.activity.by_hour_array.each do |commits|
%td= (commits * 100.0 / repo.activity.by_hour_array.sum).round(2)
= high_chart("activity_by_hour", charts.activity_by_hour)
= high_chart("charts.activity_by_hour", charts.activity_by_hour)
.tab-pane{id: 'day_of_week'}
.page-header
@ -48,7 +56,7 @@
%th= :percentage.t
- repo.activity.by_wday_array.each do |commits|
%td= (commits * 100.0 / repo.activity.by_wday_array.sum).round(2)
= high_chart("activity_by_wday", charts.activity_by_wday)
= high_chart("charts.activity_by_wday", charts.activity_by_wday)
.tab-pane{id: 'hour_of_week'}
@ -81,13 +89,13 @@
%th= :percentage.t
- repo.activity.by_month_array.each do |commits|
%td= (commits * 100.0 / repo.activity.by_month_array.sum).round(2)
= high_chart("activity_by_month", charts.activity_by_month)
= high_chart("charts.activity_by_month", charts.activity_by_month)
.tab-pane{id: 'year'}
.page-header
%h1.pagination-centered= :year.t
= high_chart("activity_by_year", charts.activity_by_year)
= high_chart("charts.activity_by_year", charts.activity_by_year)
.tab-pane{id: 'year_month'}