Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
gitlab-ce
Commits
95ec0442
Commit
95ec0442
authored
Jan 30, 2015
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'improve-calendar-widget' into 'master'
Improve calendar widget See merge request !1453
parents
98116b76
78d7c508
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
47 additions
and
15 deletions
+47
-15
app/assets/stylesheets/generic/avatar.scss
app/assets/stylesheets/generic/avatar.scss
+4
-0
app/controllers/users_controller.rb
app/controllers/users_controller.rb
+3
-6
app/models/project_contributions.rb
app/models/project_contributions.rb
+23
-0
app/views/groups/show.html.haml
app/views/groups/show.html.haml
+1
-1
app/views/users/calendar.html.haml
app/views/users/calendar.html.haml
+1
-1
app/views/users/show.html.haml
app/views/users/show.html.haml
+3
-3
lib/gitlab/commits_calendar.rb
lib/gitlab/commits_calendar.rb
+12
-4
No files found.
app/assets/stylesheets/generic/avatar.scss
View file @
95ec0442
...
...
@@ -15,6 +15,10 @@
&
.s24
{
margin-right
:
4px
;
}
}
&
.avatar-tile
{
@include
border-radius
(
0px
);
}
&
.s16
{
width
:
16px
;
height
:
16px
;
margin-right
:
6px
;
}
&
.s24
{
width
:
24px
;
height
:
24px
;
margin-right
:
8px
;
}
&
.s26
{
width
:
26px
;
height
:
26px
;
margin-right
:
8px
;
}
...
...
app/controllers/users_controller.rb
View file @
95ec0442
...
...
@@ -28,13 +28,10 @@ class UsersController < ApplicationController
def
calendar
visible_projects
=
ProjectsFinder
.
new
.
execute
(
current_user
)
# Get user repositories and collect timestamps for commits
user_repositories
=
visible_projects
.
map
(
&
:repository
)
calendar
=
Gitlab
::
CommitsCalendar
.
new
(
user_repositories
,
@user
)
calendar
=
Gitlab
::
CommitsCalendar
.
new
(
visible_projects
,
@user
)
@timestamps
=
calendar
.
timestamps
@starting_year
=
(
Time
.
now
-
1
.
year
).
strftime
(
"%Y"
)
@starting_month
=
Date
.
today
.
strftime
(
"%m"
).
to_i
@starting_year
=
calendar
.
starting_year
@starting_month
=
calendar
.
starting_month
render
'calendar'
,
layout:
false
end
...
...
app/models/project_contributions.rb
0 → 100644
View file @
95ec0442
class
ProjectContributions
attr_reader
:project
,
:user
def
initialize
(
project
,
user
)
@project
,
@user
=
project
,
user
end
def
commits_log
repository
=
project
.
repository
if
!
repository
.
exists?
||
repository
.
empty?
return
{}
end
Rails
.
cache
.
fetch
(
cache_key
)
do
repository
.
commits_per_day_for_user
(
user
)
end
end
def
cache_key
"
#{
Date
.
today
.
to_s
}
-commits-log-
#{
project
.
id
}
-
#{
user
.
email
}
"
end
end
app/views/groups/show.html.haml
View file @
95ec0442
.dashboard
%div
=
image_tag
group_icon
(
@group
.
path
),
class:
"avatar s90"
=
image_tag
group_icon
(
@group
.
path
),
class:
"avatar
avatar-tile
s90"
.clearfix
%h2
=
@group
.
name
...
...
app/views/users/calendar.html.haml
View file @
95ec0442
%h4
Calendar
:
%h4
Calendar
#cal-heatmap
.calendar
:javascript
new
calendar
(
...
...
app/views/users/show.html.haml
View file @
95ec0442
.row
.col-md-8
%h3
.page-title
=
image_tag
avatar_icon
(
@user
.
email
,
90
),
class:
"avatar s90"
,
alt:
''
=
image_tag
avatar_icon
(
@user
.
email
,
90
),
class:
"avatar
avatar-tile
s90"
,
alt:
''
=
@user
.
name
-
if
@user
==
current_user
.pull-right
...
...
@@ -15,7 +15,7 @@
.clearfix
-
if
@groups
.
any?
%h4
Groups
:
%h4
Groups
=
render
'groups'
,
groups:
@groups
%hr
...
...
@@ -24,7 +24,7 @@
%i
.fa.fa-spinner.fa-spin
%hr
%h4
User Activity
:
User Activity
-
if
current_user
%span
.rss-icon.pull-right
...
...
lib/gitlab/commits_calendar.rb
View file @
95ec0442
...
...
@@ -2,15 +2,15 @@ module Gitlab
class
CommitsCalendar
attr_reader
:timestamps
def
initialize
(
repositorie
s
,
user
)
def
initialize
(
project
s
,
user
)
@timestamps
=
{}
date_timestamps
=
[]
repositories
.
select
(
&
:exists?
).
reject
(
&
:empty?
).
each
do
|
raw_repository
|
commits_log
=
raw_repository
.
commits_per_day_for_user
(
user
)
date_timestamps
<<
commits_log
projects
.
reject
(
&
:forked?
).
each
do
|
project
|
date_timestamps
<<
ProjectContributions
.
new
(
project
,
user
).
commits_log
end
# Sumarrize commits from all projects per days
date_timestamps
=
date_timestamps
.
inject
do
|
collection
,
date
|
collection
.
merge
(
date
)
{
|
k
,
old_v
,
new_v
|
old_v
+
new_v
}
end
...
...
@@ -21,5 +21,13 @@ module Gitlab
@timestamps
[
timestamp
]
=
commits
if
timestamp
end
end
def
starting_year
(
Time
.
now
-
1
.
year
).
strftime
(
"%Y"
)
end
def
starting_month
Date
.
today
.
strftime
(
"%m"
).
to_i
end
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment