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
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
if @project.repo_exists?
|
return render "projects/empty" unless @project.repo_exists?
|
||||||
@date = case params[:view]
|
@date = case params[:view]
|
||||||
when "week" then Date.today - 7.days
|
when "week" then Date.today - 7.days
|
||||||
else Date.today
|
when "day" then Date.today
|
||||||
end.at_beginning_of_day
|
else nil
|
||||||
|
|
||||||
@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
|
end
|
||||||
|
|
||||||
|
if @date
|
||||||
|
@date = @date.at_beginning_of_day
|
||||||
|
|
||||||
|
@commits = @project.commits_since(@date)
|
||||||
@messages = project.notes.since(@date).order("created_at DESC")
|
@messages = project.notes.since(@date).order("created_at DESC")
|
||||||
else
|
else
|
||||||
return render "projects/empty"
|
@commits = @project.fresh_commits
|
||||||
|
@messages = project.notes.fresh.limit(10)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -89,11 +86,12 @@ class ProjectsController < ApplicationController
|
||||||
@date = case params[:view]
|
@date = case params[:view]
|
||||||
when "week" then Date.today - 7.days
|
when "week" then Date.today - 7.days
|
||||||
when "all" then nil
|
when "all" then nil
|
||||||
else Date.today
|
when "day" then Date.today
|
||||||
|
else nil
|
||||||
end
|
end
|
||||||
|
|
||||||
@notes = @project.common_notes.order("created_at DESC")
|
@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
|
@note = Note.new
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@ class Note < ActiveRecord::Base
|
||||||
|
|
||||||
scope :last_week, where("created_at >= :date", :date => (Date.today - 7.days))
|
scope :last_week, where("created_at >= :date", :date => (Date.today - 7.days))
|
||||||
scope :since, lambda { |day| where("created_at >= :date", :date => (day)) }
|
scope :since, lambda { |day| where("created_at >= :date", :date => (day)) }
|
||||||
|
scope :fresh, order("created_at DESC")
|
||||||
|
|
||||||
mount_uploader :attachment, AttachmentUploader
|
mount_uploader :attachment, AttachmentUploader
|
||||||
end
|
end
|
||||||
|
|
|
@ -126,6 +126,34 @@ class Project < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
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)
|
def tree(fcommit, path = nil)
|
||||||
fcommit = commit if fcommit == :head
|
fcommit = commit if fcommit == :head
|
||||||
tree = fcommit.tree
|
tree = fcommit.tree
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
%div
|
%div
|
||||||
%h2.left Recent history
|
%h2.left History
|
||||||
.right
|
.right
|
||||||
= form_tag project_path(@project), :method => :get do
|
= form_tag project_path(@project), :method => :get do
|
||||||
.span-2
|
.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"
|
= label_tag "day_view","Today"
|
||||||
.span-2
|
.span-2
|
||||||
= radio_button_tag :view, "week", params[:view] == "week", :onclick => "this.form.submit()", :id => "week_view"
|
= radio_button_tag :view, "week", params[:view] == "week", :onclick => "this.form.submit()", :id => "week_view"
|
||||||
|
|
|
@ -4,7 +4,10 @@
|
||||||
.right
|
.right
|
||||||
= form_tag wall_project_path(@project), :method => :get do
|
= form_tag wall_project_path(@project), :method => :get do
|
||||||
.span-2
|
.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"
|
= label_tag "day_view","Today"
|
||||||
.span-2
|
.span-2
|
||||||
= radio_button_tag :view, "week", params[:view] == "week", :onclick => "this.form.submit()", :id => "week_view"
|
= radio_button_tag :view, "week", params[:view] == "week", :onclick => "this.form.submit()", :id => "week_view"
|
||||||
|
|
|
@ -73,7 +73,7 @@ describe "Projects" do
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should beahave like dashboard" do
|
it "should beahave like dashboard" do
|
||||||
page.should have_content("Recent history")
|
page.should have_content("History")
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue