Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dzaporozhets@sphereconsultinginc.com>2011-10-21 15:03:34 +0400
committerDmitriy Zaporozhets <dzaporozhets@sphereconsultinginc.com>2011-10-21 15:03:34 +0400
commitec1d69379b447e00d74e04bebed071093f29eb7b (patch)
treea59c45ef656afa986b759d48843d1cde9f3e33ac /app
parent4270686a7ef692a2ad00c17a9283fdad467cabf6 (diff)
recent radio button
Diffstat (limited to 'app')
-rw-r--r--app/controllers/projects_controller.rb34
-rw-r--r--app/models/note.rb1
-rw-r--r--app/models/project.rb28
-rw-r--r--app/views/projects/show.html.haml7
-rw-r--r--app/views/projects/wall.html.haml5
5 files changed, 54 insertions, 21 deletions
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index dc94bae2c71..5ccfe4bb342 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -60,24 +60,21 @@ class ProjectsController < ApplicationController
end
def show
- if @project.repo_exists?
- @date = case params[:view]
- when "week" then Date.today - 7.days
- else Date.today
- end.at_beginning_of_day
-
- @heads = @project.repo.heads
- @commits = @heads.map do |h|
- @project.repo.log(h.name, nil, :since => @date)
- end.flatten.uniq { |c| c.id }
-
- @commits.sort! do |x, y|
- y.committed_date <=> x.committed_date
- end
+ return render "projects/empty" unless @project.repo_exists?
+ @date = case params[:view]
+ when "week" then Date.today - 7.days
+ when "day" then Date.today
+ else nil
+ end
+
+ if @date
+ @date = @date.at_beginning_of_day
+ @commits = @project.commits_since(@date)
@messages = project.notes.since(@date).order("created_at DESC")
- else
- return render "projects/empty"
+ else
+ @commits = @project.fresh_commits
+ @messages = project.notes.fresh.limit(10)
end
end
@@ -89,11 +86,12 @@ class ProjectsController < ApplicationController
@date = case params[:view]
when "week" then Date.today - 7.days
when "all" then nil
- else Date.today
+ when "day" then Date.today
+ else nil
end
@notes = @project.common_notes.order("created_at DESC")
- @notes = @notes.since(@date.at_beginning_of_day) if @date
+ @notes = @date ? @notes.since(@date.at_beginning_of_day) : @notes.fresh.limit(10)
@note = Note.new
end
diff --git a/app/models/note.rb b/app/models/note.rb
index 71fd9dcd136..e3dabce4791 100644
--- a/app/models/note.rb
+++ b/app/models/note.rb
@@ -24,6 +24,7 @@ class Note < ActiveRecord::Base
scope :last_week, where("created_at >= :date", :date => (Date.today - 7.days))
scope :since, lambda { |day| where("created_at >= :date", :date => (day)) }
+ scope :fresh, order("created_at DESC")
mount_uploader :attachment, AttachmentUploader
end
diff --git a/app/models/project.rb b/app/models/project.rb
index f51bd9b3ad4..d70b18e7934 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -126,6 +126,34 @@ class Project < ActiveRecord::Base
end
end
+ def heads
+ @heads ||= repo.heads
+ end
+
+ def fresh_commits
+ commits = heads.map do |h|
+ repo.commits(h.name, 10)
+ end.flatten.uniq { |c| c.id }
+
+ commits.sort! do |x, y|
+ y.committed_date <=> x.committed_date
+ end
+
+ commits[0..10]
+ end
+
+ def commits_since(date)
+ commits = heads.map do |h|
+ repo.log(h.name, nil, :since => date)
+ end.flatten.uniq { |c| c.id }
+
+ commits.sort! do |x, y|
+ y.committed_date <=> x.committed_date
+ end
+
+ commits
+ end
+
def tree(fcommit, path = nil)
fcommit = commit if fcommit == :head
tree = fcommit.tree
diff --git a/app/views/projects/show.html.haml b/app/views/projects/show.html.haml
index ff6078c15a0..85019ecbe5d 100644
--- a/app/views/projects/show.html.haml
+++ b/app/views/projects/show.html.haml
@@ -1,9 +1,12 @@
%div
- %h2.left Recent history
+ %h2.left 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"
+ = radio_button_tag :view, "recent", (params[:view] || "recent") == "recent", :onclick => "this.form.submit()", :id => "recent_view"
+ = label_tag "recent_view","Recent"
+ .span-2
+ = radio_button_tag :view, "day", params[:view] == "day", :onclick => "this.form.submit()", :id => "day_view"
= label_tag "day_view","Today"
.span-2
= radio_button_tag :view, "week", params[:view] == "week", :onclick => "this.form.submit()", :id => "week_view"
diff --git a/app/views/projects/wall.html.haml b/app/views/projects/wall.html.haml
index d3dcb3530aa..ed22478c924 100644
--- a/app/views/projects/wall.html.haml
+++ b/app/views/projects/wall.html.haml
@@ -4,7 +4,10 @@
.right
= form_tag wall_project_path(@project), :method => :get do
.span-2
- = radio_button_tag :view, "day", (params[:view] || "day") == "day", :onclick => "this.form.submit()", :id => "day_view"
+ = radio_button_tag :view, "recent", (params[:view] || "recent") == "recent", :onclick => "this.form.submit()", :id => "recent_view"
+ = label_tag "recent_view","Recent"
+ .span-2
+ = radio_button_tag :view, "day", params[:view] == "day", :onclick => "this.form.submit()", :id => "day_view"
= label_tag "day_view","Today"
.span-2
= radio_button_tag :view, "week", params[:view] == "week", :onclick => "this.form.submit()", :id => "week_view"