OSDN Git Service

repo branches and tags
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Sat, 31 Dec 2011 11:12:10 +0000 (13:12 +0200)
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Sat, 31 Dec 2011 11:12:10 +0000 (13:12 +0200)
app/assets/stylesheets/projects.css.scss
app/controllers/repositories_controller.rb
app/views/repositories/_head.html.haml
app/views/repositories/branches.html.haml [new file with mode: 0644]
app/views/repositories/tags.html.haml [new file with mode: 0644]
config/routes.rb
spec/requests/repositories_spec.rb

index 6916d65..316ef03 100644 (file)
@@ -598,6 +598,7 @@ h4.middle-panel {
     }
   }
 }
+.merge-tabs.repository .tab span{ background: url("images.png") no-repeat -38px -77px; }
 .activities-tab span {  background: url("images.png") no-repeat -161px -1px; } 
 .stat-tab span,
 .team-tab span,
index 8e1fc74..9a112f4 100644 (file)
@@ -11,4 +11,12 @@ class RepositoriesController < ApplicationController
   def show
     @activities = @project.fresh_commits(20)
   end
+
+  def branches
+    @branches = @project.repo.heads.sort_by(&:name)
+  end
+
+  def tags
+    @tags = @project.repo.tags.sort_by(&:name).reverse
+  end
 end
index 7cf8c20..c22286e 100644 (file)
@@ -2,16 +2,16 @@
   = link_to project_repository_path(@project), :class => "activities-tab tab #{'active' if current_page?(project_repository_path(@project)) }" do 
     %span
     Activities
-  = link_to "#", :class => "tab" do 
+  = link_to branches_project_repository_path(@project), :class => "tab #{'active' if current_page?(branches_project_repository_path(@project)) }" do 
     %span
     Branches
-  = link_to "#", :class => "tab" do 
+  = link_to tags_project_repository_path(@project), :class => "tab #{'active' if current_page?(tags_project_repository_path(@project)) }" do 
     %span 
     Tags
-  = link_to "#", :class => "tab" do 
+  -#= link_to "#", :class => "tab" do 
     %span
     Hooks
-  = link_to "#", :class => "tab" do 
+  -#= link_to "#", :class => "tab" do 
     %span
     Deploy Keys
 
diff --git a/app/views/repositories/branches.html.haml b/app/views/repositories/branches.html.haml
new file mode 100644 (file)
index 0000000..3a63e76
--- /dev/null
@@ -0,0 +1,10 @@
+= render "head"
+- unless @branches.empty?
+  %div.update-data.ui-box.ui-box-small
+    .data
+      - @branches.each do |branch|
+        %a.update-item{:href => project_commits_path(@project, :ref => branch.name)}
+          %span.update-title{:style => "margin-bottom:0px;"}
+            = branch.name
+- else 
+  %h3 No brances
diff --git a/app/views/repositories/tags.html.haml b/app/views/repositories/tags.html.haml
new file mode 100644 (file)
index 0000000..6c8e377
--- /dev/null
@@ -0,0 +1,10 @@
+= render "head"
+- unless @tags.empty?
+  %div.update-data.ui-box.ui-box-small
+    .data
+      - @tags.each do |tag|
+        %a.update-item{:href => project_commits_path(@project, :ref => tag.name)}
+          %span.update-title{:style => "margin-bottom:0px;"}
+            = tag.name
+- else 
+  %h3 No tags
index 9e5e15a..90b391c 100644 (file)
@@ -46,7 +46,12 @@ Gitlab::Application.routes.draw do
       get "files"
     end
 
-    resource :repository
+    resource :repository do 
+      member do 
+        get "branches"
+        get "tags"
+      end
+    end
 
     resources :refs, :only => [], :path => "/" do 
       collection do 
index 92933b4..8c3ebf1 100644 (file)
@@ -31,5 +31,28 @@ describe "Repository" do
       page.all(:css, ".project-update").size.should == 20
     end
   end
+
+  describe "GET /:project_name/repository/branches" do
+    before do
+      visit branches_project_repository_path(@project)
+    end
+
+    it "should have link to repo activities" do
+      page.should have_content("Branches")
+      page.should have_content("master")
+    end
+  end
+
+  # TODO: Add new repo to seeds with tags list
+  describe "GET /:project_name/repository/tags" do
+    before do
+      visit tags_project_repository_path(@project)
+    end
+
+    it "should have link to repo activities" do
+      page.should have_content("Tags")
+      page.should have_content("No tags")
+    end
+  end
 end