summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgitlabhq <m@gitlabhq.com>2011-10-18 17:44:43 +0300
committergitlabhq <m@gitlabhq.com>2011-10-18 17:44:43 +0300
commit1a03b17ab5055babaf006c99306f7c27b6e2ddaa (patch)
treee4a4b35ae296ce465ed2a3225f7de9a2189f530b
parentdbd69d1d0e1c084f79f6955828c1dc4a63a7908c (diff)
downloadgitlab-ce-1a03b17ab5055babaf006c99306f7c27b6e2ddaa.tar.gz
dsaboard
-rw-r--r--app/assets/stylesheets/projects.css.scss23
-rw-r--r--app/controllers/projects_controller.rb10
-rw-r--r--app/helpers/projects_helper.rb13
-rw-r--r--app/models/note.rb1
-rw-r--r--app/views/projects/_recent_commits.html.haml18
-rw-r--r--app/views/projects/_recent_messages.html.haml48
-rw-r--r--app/views/projects/show.html.haml58
7 files changed, 120 insertions, 51 deletions
diff --git a/app/assets/stylesheets/projects.css.scss b/app/assets/stylesheets/projects.css.scss
index 2ea79dcc2c2..4739a469e7d 100644
--- a/app/assets/stylesheets/projects.css.scss
+++ b/app/assets/stylesheets/projects.css.scss
@@ -552,3 +552,26 @@ tbody tr:nth-child(2n) td, tbody tr.even td {
height: 12px;
padding: 10px;
}
+
+.recent_message_parent {
+ img {
+ padding-right:10px;
+ }
+ background: #fff !important;
+ background: -webkit-gradient(linear,left top,left bottom,from(#fff),to(#EAEAEA)) !important;
+ background: -moz-linear-gradient(top,#fff,#EAEAEA) !important;
+ background: transparent 9 !important;
+
+ float: left;
+ margin: 0 20px 20px 0px;
+ padding: 5px 5px;;
+ width: 420px;
+
+ h4 {
+ margin-bottom:3px;
+ }
+
+ span {
+
+ }
+}
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 5a558bde64f..7469b05b0be 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -60,17 +60,21 @@ class ProjectsController < ApplicationController
end
def show
- @date = Date.today - 7.days
+ @date = case params[:view]
+ when "week" then Date.today - 7.days
+ else Date.today
+ end
+
@heads = @project.repo.heads
@commits = @heads.map do |h|
- @project.repo.log(h.name, nil, :since => @date)
+ @project.repo.log(h.name, nil, :since => @date - 1.day)
end.flatten.uniq { |c| c.id }
@commits.sort! do |x, y|
y.committed_date <=> x.committed_date
end
- @messages = project.notes.last_week.limit(40).order("created_at DESC")
+ @messages = project.notes.since(@date).limit(40).order("created_at DESC")
end
#
diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb
index 4556c8ba77b..02e1df5d0b6 100644
--- a/app/helpers/projects_helper.rb
+++ b/app/helpers/projects_helper.rb
@@ -4,15 +4,14 @@ module ProjectsHelper
cookies["project_view"] == type ? nil : "display:none"
end
- def noteable_link(id, type, project)
+ def load_note_parent(id, type, project)
case type
- when "Issue"
- link_to "Issue ##{id}", project_issue_path(project, id)
- when "Commit"
- commit = project.repo.commits(id).first
- link_to truncate(commit.id,:length => 10), project_commit_path(project, id)
+ when "Issue" then @project.issues.find(id)
+ when "Commit" then @project.repo.commits(id).first
else
- link_to "Wall", wall_project_path(project)
+ true
end
+ rescue
+ nil
end
end
diff --git a/app/models/note.rb b/app/models/note.rb
index a02464fae75..71fd9dcd136 100644
--- a/app/models/note.rb
+++ b/app/models/note.rb
@@ -23,6 +23,7 @@ class Note < ActiveRecord::Base
scope :common, where(:noteable_id => nil)
scope :last_week, where("created_at >= :date", :date => (Date.today - 7.days))
+ scope :since, lambda { |day| where("created_at >= :date", :date => (day)) }
mount_uploader :attachment, AttachmentUploader
end
diff --git a/app/views/projects/_recent_commits.html.haml b/app/views/projects/_recent_commits.html.haml
new file mode 100644
index 00000000000..812be93c1a3
--- /dev/null
+++ b/app/views/projects/_recent_commits.html.haml
@@ -0,0 +1,18 @@
+- @commits.each do |commit|
+ %div.commit
+ - if commit.author.email
+ = image_tag gravatar_icon(commit.author.email), :class => "left", :width => 40, :style => "padding-right:5px;"
+ - else
+ = image_tag "no_avatar.png", :class => "left", :width => 40, :style => "padding-right:5px;"
+ %p{:style => "margin-bottom: 3px;"}
+ %strong
+ = link_to truncate_commit_message(commit, 60), project_commit_path(@project, :id => commit.id)
+
+ %span
+ %span
+ [ #{commit.author} ]
+ %cite
+ = time_ago_in_words(commit.committed_date)
+ ago
+ %br
+
diff --git a/app/views/projects/_recent_messages.html.haml b/app/views/projects/_recent_messages.html.haml
new file mode 100644
index 00000000000..2191ed954aa
--- /dev/null
+++ b/app/views/projects/_recent_messages.html.haml
@@ -0,0 +1,48 @@
+- @messages.group_by{ |x| [x.noteable_id, x.noteable_type]}.each do |item, notes|
+ - id, type = item[0], item[1]
+ - parent = load_note_parent(id, type, @project)
+ - next unless parent
+
+ - case type
+ - when "Issue"
+ - issue = parent
+ - item_code = issue.author.email
+ - link_item_name = truncate(issue.title, :length => 50)
+ - link_to_item = project_issue_path(@project, issue)
+ - when "Commit"
+ - commit = parent
+ - item_code = commit.author.email
+ - link_item_name = truncate_commit_message(commit, 50)
+ - link_to_item = project_commit_path(@project, :id => commit.id)
+ - else
+ - item_code = @project.name
+ - link_item_name = "Project Wall"
+ - link_to_item = wall_project_path(@project)
+
+ %div.recent_message_parent
+ = image_tag gravatar_icon(item_code), :class => "left", :width => 40
+ %h4
+ = link_to(link_item_name, link_to_item)
+ %span
+ = type
+ .clear
+ - notes.sort {|x,y| x.updated_at <=> y.updated_at }.each do |note|
+ %div.message
+ = image_tag gravatar_icon(note.author.email), :class => "left", :width => 24, :style => "padding-right:5px;"
+ %p{:style => "margin-bottom: 3px;"}
+ = link_to truncate(note.note, :length => 50), "#"
+ - if note.attachment.url
+ %br
+ Attachment:
+ = link_to note.attachment_identifier, note.attachment.url
+ %br
+ %span
+ %span
+ [ #{note.author.name} ]
+ %cite
+ = time_ago_in_words(note.created_at)
+ ago
+ %br
+ .append-bottom
+ &nbsp;
+ .clear
diff --git a/app/views/projects/show.html.haml b/app/views/projects/show.html.haml
index 9daa44aa30c..25cd7b947c4 100644
--- a/app/views/projects/show.html.haml
+++ b/app/views/projects/show.html.haml
@@ -1,44 +1,20 @@
-.span-12
- %h2 Recent commits
+%div
+ %h2.left Recent history
+ .right
+ = form_tag project_path(@project), :method => :get do
+ .span-2
+ = radio_button_tag :view, "day", (params[:view] || "day") == "day", :onclick => "this.form.submit()", :id => "day_view"
+ = label_tag "day_view","Day"
+ .span-2
+ = radio_button_tag :view, "week", params[:view] == "week", :onclick => "this.form.submit()", :id => "week_view"
+ = label_tag "week_view","Week"
+ .clear
%hr
- - @commits.each do |commit|
- %div.commit
- - if commit.author.email
- = image_tag gravatar_icon(commit.author.email), :class => "left", :width => 40, :style => "padding-right:5px;"
- - else
- = image_tag "no_avatar.png", :class => "left", :width => 40, :style => "padding-right:5px;"
- %p{:style => "margin-bottom: 3px;"}
- %strong
- = link_to truncate_commit_message(commit, 60), project_commit_path(@project, :id => commit.id)
-
- %span
- %span
- [ #{commit.author} ]
- %cite
- = time_ago_in_words(commit.committed_date)
- ago
- %br
.span-11
- %h2 Recent Messages
- %hr
- - @messages.group_by{ |x| [x.noteable_id, x.noteable_type]}.each do |item, notes|
- %h3
- = noteable_link(item[0], item[1], @project)
- - notes.each do |note|
- %div.message
- = image_tag gravatar_icon(note.author.email), :class => "left", :width => 40, :style => "padding-right:5px;"
- %p{:style => "margin-bottom: 3px;"}
- = link_to truncate(note.note, :length => 50), "#"
- - if note.attachment.url
- %br
- Attachment:
- = link_to note.attachment_identifier, note.attachment.url
- %br
- %span
- %span
- [ #{note.author.name} ]
- %cite
- = time_ago_in_words(note.created_at)
- ago
- %br
+ %h3 Commits
+ =render "projects/recent_commits"
+
+.span-11.right
+ %h3 Messages
+ =render "projects/recent_messages"