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-18 15:33:30 +0400
committerDmitriy Zaporozhets <dzaporozhets@sphereconsultinginc.com>2011-10-18 15:33:30 +0400
commit961eceda69e9eaac24728cdf27e20e5b28c78471 (patch)
tree1642a25ada15c3071fe147ca94083718069984a8 /app
parent65608b6aaa2101ec74cc64824bef6544aa052480 (diff)
project dashboard
Diffstat (limited to 'app')
-rw-r--r--app/controllers/projects_controller.rb16
-rw-r--r--app/helpers/projects_helper.rb12
-rw-r--r--app/models/note.rb2
-rw-r--r--app/views/projects/_top_menu.html.haml3
-rw-r--r--app/views/projects/show.html.haml49
5 files changed, 69 insertions, 13 deletions
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index e8f1c3925c9..c6dcafab311 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -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
#
diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb
index d570dff4639..4556c8ba77b 100644
--- a/app/helpers/projects_helper.rb
+++ b/app/helpers/projects_helper.rb
@@ -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
diff --git a/app/models/note.rb b/app/models/note.rb
index f89fb9f8995..a02464fae75 100644
--- a/app/models/note.rb
+++ b/app/models/note.rb
@@ -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
diff --git a/app/views/projects/_top_menu.html.haml b/app/views/projects/_top_menu.html.haml
index fe4b72da681..e281b93b287 100644
--- a/app/views/projects/_top_menu.html.haml
+++ b/app/views/projects/_top_menu.html.haml
@@ -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
diff --git a/app/views/projects/show.html.haml b/app/views/projects/show.html.haml
index 0fd9c8ead19..b8e660d72f6 100644
--- a/app/views/projects/show.html.haml
+++ b/app/views/projects/show.html.haml
@@ -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
+