recent radio button
This commit is contained in:
parent
b5a5e5a416
commit
a07923a549
6 changed files with 54 additions and 21 deletions
|
@ -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
|
||||
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
|
||||
|
||||
@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
|
||||
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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -73,7 +73,7 @@ describe "Projects" do
|
|||
end
|
||||
|
||||
it "should beahave like dashboard" do
|
||||
page.should have_content("Recent history")
|
||||
page.should have_content("History")
|
||||
end
|
||||
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue