.dashboard_category {
margin-bottom:30px;
+ .ico {
+ background: url("images.png") no-repeat -85px -77px;
+ width: 19px;
+ height: 16px;
+ float: left;
+ position: relative;
+ margin-right: 10px;
+ top: 8px;
+
+ &.project {
+ background-position: -37px -77px;
+ }
+
+ &.activities {
+ background-position:-162px -22px;
+ }
+ &.projects {
+ background-position:-209px -21px;
+ }
+ }
+
+
+ h3 a {
+ color:#474D57;
+
+ &:hover {
+ text-decoration:underline;
+ }
+ }
.dashboard_block {
width:700px;
margin:auto;
h4 {
color:#666;
}
- &.event_feed {
- min-height:40px;
- border-bottom:1px solid #eee;
- .avatar {
- width:32px;
- }
- ul {
- margin-left:50px;
- margin-bottom:5px;
- .avatar {
- width:24px;
- }
- }
- }
}
}
}
-webkit-box-shadow: 0 0 5px#888;
box-shadow: 0 0 5px #888;
}
+
+.event_feed {
+ min-height:40px;
+ border-bottom:1px solid #eee;
+ .avatar {
+ width:32px;
+ }
+ ul {
+ margin-left:50px;
+ margin-bottom:5px;
+ .avatar {
+ width:24px;
+ }
+ }
+
+ padding: 10px 5px;
+ border-bottom: 1px solid #eee;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.05);
+ &:last-child { border:none }
+ .wll:hover { background:none }
+}
+
width:16px;
height:16px;
padding: 5px;
- border: 1px solid #ccc;
border-radius: 4px;
margin: 0px;
background: #eee;
width:16px;
height:16px;
padding: 5px;
- border: 1px solid #888;
border-radius: 4px;
margin: 0px;
background:#474D57 ;
margin-left:20px;
margin-top:4px;
&:hover {
- background:#f7f7f7;
+ background:#555;
}
img {
width:16px;
def show
return render "projects/empty" unless @project.repo_exists? && @project.has_commits?
- limit = (params[:limit] || 10).to_i
- @activities = @project.activities(limit)
+ limit = (params[:limit] || 20).to_i
+ @events = @project.events.recent.limit(limit)
end
def files
end
end
- # For now only push events enabled for system
+ # Next events currently enabled for system
+ # - push
+ # - new issue
+ # - merge request
def allowed?
- push?
+ push? || new_issue? || new_merge_request?
end
def push?
def pusher
User.find_by_id(data[:user_id])
end
+
+ def new_issue?
+ target_type == "Issue" &&
+ action == Created
+ end
+
+ def new_merge_request?
+ target_type == "MergeRequest" &&
+ action == Created
+ end
+
+ def issue
+ target if target_type == "Issue"
+ end
+
+ def merge_request
+ target if target_type == "MergeRequest"
+ end
+
+ def author
+ target.author
+ end
def commits
@commits ||= data[:commits].map do |commit|
end
delegate :id, :name, :email, :to => :pusher, :prefix => true, :allow_nil => true
+ delegate :name, :email, :to => :author, :prefix => true, :allow_nil => true
+ delegate :title, :to => :issue, :prefix => true, :allow_nil => true
+ delegate :title, :to => :merge_request, :prefix => true, :allow_nil => true
end
# == Schema Information
#
.wll
= link_to project do
%h4
+ %span.ico.project
= project.name
%small
last activity at
%div.dashboard_category
%h3
+ %span.ico.projects
= link_to "Projects" , "#projects", :id => "projects"
%small
( most recent )
- unless @events.blank?
%div.dashboard_category
%h3
+ %span.ico.activities
= link_to "Activities" , "#activities", :id => "activities"
%hr
- if event.allowed?
- .wll.event_feed
- - if event.push?
- - if event.new_branch?
- = image_tag gravatar_icon(event.pusher_email), :class => "avatar"
- %strong #{event.pusher_name}
- pushed new branch
- = link_to project_commits_path(event.project, :ref => event.branch_name) do
- %strong= event.branch_name
- at
- %strong= link_to event.project.name, event.project
- %span.cgray
- = time_ago_in_words(event.created_at)
- ago.
- - else
- = image_tag gravatar_icon(event.pusher_email), :class => "avatar"
- %strong #{event.pusher_name}
- pushed to
- = link_to project_commits_path(event.project, :ref => event.branch_name) do
- %strong= event.branch_name
- at
- %strong= link_to event.project.name, event.project
- %span.cgray
- = time_ago_in_words(event.created_at)
- ago.
- - if event.commits.count > 1
- = link_to compare_project_commits_path(event.project, :from => event.commits.first.prev_commit_id, :to => event.commits.last.id) do
- Compare #{event.commits.first.commit.id[0..8]}...#{event.commits.last.id[0..8]}
- - @project = event.project
- %ul.unstyled
- = render event.commits
-
+ .event_feed
+ - if event.new_issue?
+ = render "events/event_new_issue", :event => event
+ - if event.new_merge_request?
+ = render "events/event_new_merge_request", :event => event
+ - elsif event.push?
+ = render "events/event_push", :event => event
--- /dev/null
+= image_tag gravatar_icon(event.author_email), :class => "avatar"
+%strong #{event.author_name}
+created new issue
+= link_to project_issue_path(event.project, event.issue) do
+ %strong= truncate event.issue_title
+at
+%strong= link_to event.project.name, event.project
+%span.cgray
+ = time_ago_in_words(event.created_at)
+ ago.
--- /dev/null
+= image_tag gravatar_icon(event.author_email), :class => "avatar"
+%strong #{event.author_name}
+requested merge
+= link_to project_merge_request_path(event.project, event.merge_request) do
+ %strong= truncate event.merge_request_title
+at
+%strong= link_to event.project.name, event.project
+%span.cgray
+ = time_ago_in_words(event.created_at)
+ ago.
+%br
+%span.label= event.merge_request.source_branch
+→
+%span.label= event.merge_request.target_branch
+
--- /dev/null
+- if event.new_branch?
+ = image_tag gravatar_icon(event.pusher_email), :class => "avatar"
+ %strong #{event.pusher_name}
+ pushed new branch
+ = link_to project_commits_path(event.project, :ref => event.branch_name) do
+ %strong= event.branch_name
+ at
+ %strong= link_to event.project.name, event.project
+ %span.cgray
+ = time_ago_in_words(event.created_at)
+ ago.
+- else
+ = image_tag gravatar_icon(event.pusher_email), :class => "avatar"
+ %strong #{event.pusher_name}
+ pushed to
+ = link_to project_commits_path(event.project, :ref => event.branch_name) do
+ %strong= event.branch_name
+ at
+ %strong= link_to event.project.name, event.project
+ %span.cgray
+ = time_ago_in_words(event.created_at)
+ ago.
+ - if event.commits.count > 1
+ = link_to compare_project_commits_path(event.project, :from => event.commits.first.prev_commit_id, :to => event.commits.last.id) do
+ Compare #{event.commits.first.commit.id[0..8]}...#{event.commits.last.id[0..8]}
+ - @project = event.project
+ %ul.unstyled
+ = render event.commits
+
+
!!! 5
%html{ :lang => "en"}
= render "layouts/head"
- %body.ui_basic.admin
+ %body{:class => "#{app_theme} admin"}
= render "layouts/flash"
= render "layouts/head_panel", :title => "Admin area"
.container
= text_field_tag :project_clone, @project.url_to_repo, :class => "xlarge one_click_select git_clone_url"
= simple_format @project.description
-- unless @activities.blank?
- .ui-box
- %h5.cgray Recent Activity
- .content_list= render "feed"
+- unless @events.blank?
+ %h5.cgray Recent Activity
+ .content_list= render @events