From ca9098d8982041ba76402c80c9018beb10836db8 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Thu, 7 Mar 2013 11:14:19 +0200 Subject: [PATCH] remove last commit widget, added repo size and owner info on project home page --- app/controllers/projects_controller.rb | 1 - app/models/repository.rb | 19 +++++++++++++++++++ app/services/git_push_service.rb | 1 + app/views/projects/_last_commit.html.haml | 11 ----------- app/views/projects/show.html.haml | 22 +++++++++++++++++----- 5 files changed, 37 insertions(+), 17 deletions(-) delete mode 100644 app/views/projects/_last_commit.html.haml diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 4588536e..f703cf6b 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -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" diff --git a/app/models/repository.rb b/app/models/repository.rb index 3feb3180..934c1a6e 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -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 diff --git a/app/services/git_push_service.rb b/app/services/git_push_service.rb index 208ccf69..d0b3dd55 100644 --- a/app/services/git_push_service.rb +++ b/app/services/git_push_service.rb @@ -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 index 5d940417..00000000 --- a/app/views/projects/_last_commit.html.haml +++ /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 -   - = commit.author_link avatar: true, size: 16 - %p - = link_to commit.short_id(8), project_commit_path(@project, commit), class: "commit_short_id" -   - = link_to_gfm truncate(commit.title, length: 30), project_commit_path(@project, commit.id), class: "row_title" diff --git a/app/views/projects/show.html.haml b/app/views/projects/show.html.haml index 48bed5b1..861930ca 100644 --- a/app/views/projects/show.html.haml +++ b/app/views/projects/show.html.haml @@ -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); });