OSDN Git Service

remove last commit widget, added repo size and owner info on project home page
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Thu, 7 Mar 2013 09:14:19 +0000 (11:14 +0200)
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Thu, 7 Mar 2013 09:14:19 +0000 (11:14 +0200)
app/controllers/projects_controller.rb
app/models/repository.rb
app/services/git_push_service.rb
app/views/projects/_last_commit.html.haml [deleted file]
app/views/projects/show.html.haml

index 4588536..f703cf6 100644 (file)
@@ -59,7 +59,6 @@ class ProjectsController < ProjectResourceController
       format.html do
         if @project.repository && !@project.repository.empty?
           @last_push = current_user.recent_push(@project.id)
-          @last_commit = CommitDecorator.decorate(@project.repository.commit)
           render :show
         else
           render "projects/empty"
index 3feb318..934c1a6 100644 (file)
@@ -1,4 +1,6 @@
 class Repository
+  include Gitlab::Popen
+
   # Repository directory name with namespace direcotry
   # Examples:
   #   gitlab/gitolite
@@ -147,4 +149,21 @@ class Repository
 
     file_path
   end
+
+  # Return repo size in megabytes
+  # Cached in redis
+  def size
+    Rails.cache.fetch(cache_key(:size)) do
+      size = popen('du -s', path_to_repo).first.strip.to_i
+      (size.to_f / 1024).round(2)
+    end
+  end
+
+  def expire_cache
+    Rails.cache.delete(cache_key(:size))
+  end
+
+  def cache_key(type)
+    "#{type}:#{path_with_namespace}"
+  end
 end
index 208ccf6..d0b3dd5 100644 (file)
@@ -23,6 +23,7 @@ class GitPushService
 
     project.ensure_satellite_exists
     project.discover_default_branch
+    project.repository.expire_cache
 
     if push_to_branch?(ref, oldrev)
       project.update_merge_requests(oldrev, newrev, ref, @user)
diff --git a/app/views/projects/_last_commit.html.haml b/app/views/projects/_last_commit.html.haml
deleted file mode 100644 (file)
index 5d94041..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.commit
-  %p
-    %time.committed_ago{ datetime: commit.committed_date, title: commit.committed_date.stamp("Aug 21, 2011 9:23pm") }
-      = time_ago_in_words(commit.committed_date)
-      ago
-      &nbsp;
-    = commit.author_link avatar: true, size: 16
-  %p
-    = link_to commit.short_id(8), project_commit_path(@project, commit), class: "commit_short_id"
-    &nbsp;
-    = link_to_gfm truncate(commit.title, length: 30), project_commit_path(@project, commit.id), class: "row_title"
index 48bed5b..861930c 100644 (file)
@@ -3,19 +3,31 @@
 = render "events/event_last_push", event: @last_push
 
 .row
-  .span8
+  .span9
     .content_list= render @events
     .loading.hide
-  .span4
+  .span3
     .ui-box.white
       .padded
         %h3.page_title
           = @project.name
-        %hr
         - if @project.description.present?
           %p.light= @project.description
 
-        %h5 Last commit:
-        = render 'last_commit', commit: @last_commit
+        %hr
+        %p
+          Access level:
+          - if @project.public
+            %span.cblue
+              %i.icon-share
+              Public
+          - else
+            %span.cgreen
+              %i.icon-lock
+              Private
+
+        %p Repo Size: #{@project.repository.size} MB
+        %p Created at: #{@project.created_at.stamp('Aug 22, 2013')}
+        %p Owner: #{link_to @project.owner_name, @project.owner}
 :javascript
   $(function(){ Pager.init(20); });