project dashboard

This commit is contained in:
gitlabhq 2011-10-18 14:33:30 +03:00
parent 5a5845e490
commit c29b49de66
5 changed files with 69 additions and 13 deletions

View file

@ -6,7 +6,7 @@ class ProjectsController < ApplicationController
before_filter :authorize_read_project!, :except => [:index, :new, :create]
before_filter :authorize_admin_project!, :only => [:edit, :update, :destroy]
before_filter :require_non_empty_project, :only => [:blob, :tree]
before_filter :require_non_empty_project, :only => [:blob, :tree, :show]
def index
@projects = current_user.projects.all
@ -60,15 +60,13 @@ class ProjectsController < ApplicationController
end
def show
@repo = project.repo
@commit = @repo.commits.first
@tree = @commit.tree
@tree = @tree / params[:path] if params[:path]
@date = Date.today - 7.days
@heads = @project.repo.heads
@commits = @heads.map do |h|
@project.repo.log(h.name, nil, :since => @date)
end.flatten.uniq { |c| c.id }
rescue Grit::NoSuchPathError => ex
respond_to do |format|
format.html {render "projects/empty"}
end
@messages = project.notes.last_week.limit(40).order("created_at DESC")
end
#

View file

@ -3,4 +3,16 @@ module ProjectsHelper
cookies["project_view"] ||= "tile"
cookies["project_view"] == type ? nil : "display:none"
end
def noteable_link(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)
else
link_to "Wall", wall_project_path(project)
end
end
end

View file

@ -22,6 +22,8 @@ class Note < ActiveRecord::Base
scope :common, where(:noteable_id => nil)
scope :last_week, where("created_at >= :date", :date => (Date.today - 7.days))
mount_uploader :attachment, AttachmentUploader
end
# == Schema Information

View file

@ -1,7 +1,8 @@
%div.top_project_menu
-#%span= link_to @project.code.capitalize, @project, :class => current_page?(:controller => "projects", :action => "show", :id => @project) ? "current" : nil
- if @project.repo_exists?
%span= link_to "Tree", tree_project_path(@project), :class => current_page?(:controller => "projects", :action => "show", :id => @project) || current_page?(:controller => "projects", :action => "tree", :id => @project) ? "current" : nil
%span= link_to image_tag("home.png", :width => 20), project_path(@project), :class => current_page?(:controller => "projects", :action => "show", :id => @project) ? "current" : nil
%span= link_to "Tree", tree_project_path(@project), :class => current_page?(:controller => "projects", :action => "tree", :id => @project) ? "current" : nil
%span= link_to "Commits", project_commits_path(@project), :class => current_page?(:controller => "commits", :action => "index", :project_id => @project) ? "current" : nil
%span
= link_to team_project_path(@project), :class => current_page?(:controller => "projects", :action => "team", :id => @project) ? "current" : nil do

View file

@ -1,3 +1,46 @@
%div
%div#tree-holder
= render :partial => "tree", :locals => {:repo => @repo, :commit => @commit, :tree => @commit.tree}
.span-12
%h2 Recent commits
%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
.span-2
&nbsp;
= 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