Commit 781cde0068529382459daa7ef059713f73f68c78

Use the context/sub menu when in the repository scope

Commit diff

app/controllers/repositories_controller.rb

 
1111
1212 def show
1313 @repository = @project.repositories.find_by_name!(params[:id])
14 @comment_count = @repository.comments.count
15 @merge_request_count = @repository.merge_requests.count_open
16 if @repository.has_commits?
17 @commits = @repository.paginated_commits(@repository.head_candidate.name, page=1)
18 else
19 @commits = []
20 end
14 @events = @repository.events.paginate(:all, :page => params[:page],
15 :order => "created_at desc")
2116
2217 @atom_auto_discovery_url = formatted_project_repository_path(@project, @repository, :atom)
2318 respond_to do |format|
toggle raw diff

app/views/blobs/show.html.erb

 
11<% @page_title = "#{current_path.join("/")} - #{@repository.name} in #{@project.title}" -%>
22<% @load_syntax_themes = true -%>
33
4<% content_for :submenu do -%>
5 <%= render :partial => "repositories/context_menu" -%>
6<% end -%>
7
48<ul class="mode_selector">
59 <li class="list_header">
610 Softwrap mode:
toggle raw diff

app/views/comments/index.html.erb

 
33 Comments for &quot;<%= h(@repository.name) -%>&quot; repository in <%= h(@repository.project.title) -%>
44</h1>
55
6<%= render :partial => "repositories/infobox" -%>
7
8<p>You can clone this repository with the following command:</p>
9<% if logged_in? && current_user.can_write_to?(@repository) -%>
10 <pre>git clone <%= @repository.push_url -%></pre>
11<% else -%>
12 <pre>git clone <%= @repository.clone_url -%></pre>
6<% content_for :submenu do -%>
7 <%= render :partial => "repositories/context_menu" -%>
138<% end -%>
149
15<ul class="tab_menu">
16 <li><%= link_to "Recent commits", project_repository_path(@project, @repository) -%></li>
17 <li class="selected">Comments (<%= @comments.size -%>)</li>
18 <li><%= link_to "merge requests(#{@merge_request_count})",
19 project_repository_merge_requests_path(@project, @repository) -%></li>
20</ul>
10<%= render :partial => "repositories/infobox" -%>
2111
12<h3>Comments</h3>
2213<%= render :partial => @comments -%>
23
2414<%= render :partial => "form" -%>
toggle raw diff

app/views/commits/show.html.erb

 
3030 <% end -%>
3131<% end -%>
3232<% end -%>
33
34<% content_for :submenu do -%>
35 <%= render :partial => "repositories/context_menu" -%>
36<% end -%>
toggle raw diff

app/views/events/_events.html.erb

 
1<ul class="project_list">
2<% events.reverse_each do |event| -%>
3 <%= render :partial => event -%>
1<ul class="events">
2<% events.group_by{|e| e.created_at.strftime("%A %B %d") }.each do |day, events_group| -%>
3 <li>
4 <p class="date"><%= day -%></p>
5 <ul class="event_instances">
6 <%= render :partial => events_group -%>
7 </ul>
8 </li>
49<% end -%>
5</ul>
10</ul>
11<%= will_paginate events -%>
toggle raw diff

app/views/logs/_log.html.erb

 
11<% users_by_email = @repository.users_by_commits(@commits) %>
2<ul class="commit_list">
3<% @commits.each do |commit| -%>
4<% user = users_by_email[commit.author.email] %>
5<li class="commit_item">
6 <div>
7 <a href=""><%= link_to h(commit.id_abbrev),
8 project_repository_commit_path(@project, @repository, commit.id) -%></a>
9 by <strong><%= user ? link_to(user.login, user_path(user)) : h(commit.author.name) -%></strong> <%=h time_ago_in_words(commit.authored_date) -%> ago
10 </div>
11 <%= gravatar_frame(commit.author.email, :size => 32) %>
12 <div class="commit_message"> <%= link_to simple_format(h(commit.short_message)), project_repository_commit_path(@project, @repository, commit.id) -%></div>
13 <div class="clear_left"></div>
14</li>
2<ul class="events">
3<% @commits.group_by{|c| c.committed_date.strftime("%A %B %d") }.each do |day, commits| -%>
4 <li>
5 <p class="date"><%= day -%></p>
6 <ul class="event_instances">
7 <% commits.each do |commit| -%>
8 <% user = users_by_email[commit.author.email] %>
9 <li class="event_instance">
10 <p class="event_date"><%= commit.committed_date.strftime("%H:%M") %></p>
11 <%= gravatar(commit.author.email, :size => 16) %>
12 <div class="event_meta">
13 <p>
14 <%= user ? link_to(user.login, user_path(user)) : h(commit.author.name) -%>
15 <strong>committed</strong> <%= link_to h(commit.id_abbrev),
16 project_repository_commit_path(@project, @repository, commit.id) -%>
17 </p>
18 <p>
19 <div class="commit_message">
20 <%= link_to simple_format(h(commit.short_message)),
21 project_repository_commit_path(@project, @repository, commit.id) -%>
22 </div>
23 </p>
24 </div>
25 </li>
26 <% end -%>
27 </ul>
28 </li>
1529<% end -%>
1630</ul>
31<%= will_paginate @commits -%>
toggle raw diff

app/views/logs/show.html.erb

 
33 Commitlog for <%= h(@repository.name) -%> repository in <%= h(@project.title) -%>
44</h1>
55
6<% content_for :submenu do -%>
7 <%= render :partial => "repositories/context_menu" -%>
8<% end -%>
9
610<h2>Commits in "<%=h params[:id] -%>"</h2>
711<%= render :partial => "log" -%>
8<%= will_paginate @commits %>
912
1013<% content_for :sidebar do -%>
1114 <ul>
toggle raw diff

app/views/merge_requests/index.html.erb

 
33 Merge requests in <%=h @repository.name -%>
44</h1>
55
6<% content_for :submenu do -%>
7 <%= render :partial => "repositories/context_menu" -%>
8<% end -%>
9
610<%= render :partial => "repositories/infobox" -%>
711
812<p class="hint">
1414 would like their changes to be merged upstream.
1515</p>
1616
17<ul class="tab_menu">
18 <li><%= link_to "Recent commits", project_repository_path(@project, @repository) -%></li>
19 <li><%= link_to "comments (#{@comment_count})",
20 project_repository_comments_path(@project, @repository) -%></li>
21 <li class="selected">merge requests(<%= @merge_requests.select{|mr| mr.open? }.size -%>)</li>
22</ul>
23
2417<% if @merge_requests.blank? -%>
2518 <p>
2619 <em>No merge requests yet</em><br />
toggle raw diff

app/views/projects/show.html.erb

 
55 <%= auto_link(markdown(sanitize(@project.description)), :urls) -%>
66</div>
77
8<ul class="events">
9 <h2>Recent Events</h2>
10 <% @events.group_by{|e| e.created_at.strftime("%A %B %d") }.each do |day, events| -%>
11 <li>
12 <p class="date"><%= day -%></p>
13 <ul class="event_instances">
14 <%= render :partial => events -%>
15 </ul>
16 </li>
17 <% end -%>
18</ul>
19
20<%= will_paginate @events -%>
8<h2>Activities</h2>
9<%= render :partial => "events/events", :locals => { :events => @events } -%>
2110
2211<% content_for :submenu do -%>
2312 <% if @project.admin?(current_user) -%>
toggle raw diff

app/views/repositories/_context_menu.html.erb

 
1<li><%= link_to "Activity", [@project, @repository] -%></li>
2<li><%= link_to "Commits",
3 project_repository_logs_path(@project, @repository) -%></li>
4<li><%= link_to "Trees",
5 project_repository_trees_path(@project, @repository) -%></li>
6<li><%= link_to "Comments (#{@repository.comments.count})",
7 project_repository_comments_path(@project, @repository) -%></li>
8<li><%= link_to "Merge requests(#{@repository.merge_requests.count_open})",
9 project_repository_merge_requests_path(@project, @repository) -%></li>
toggle raw diff

app/views/repositories/index.html.erb

 
1212 </tr>
1313 <tr class="meta">
1414 <td class="commit_count">
15 <span class="bignum"><%= repo.total_commit_count -%></span> total commits
15 <span class="bignum"><%= repo.events.count -%></span> activities
1616 </td>
1717 <td class="branch_count">
1818 <span class="bignum"><%= repo.git.heads.size -%></span> branches
toggle raw diff

app/views/repositories/show.html.erb

 
1010 <div class="commit_graph">
1111 <%= commit_graph_tag(@repository) %>
1212 </div>
13
14 <ul class="tab_menu">
15 <li class="selected">Recent commits</li>
16 <li><%= link_to "comments (#{@comment_count})",
17 project_repository_comments_path(@project, @repository) -%></li>
18 <li><%= link_to "merge requests(#{@merge_request_count})",
19 project_repository_merge_requests_path(@project, @repository) -%></li>
20 </ul>
2113
22 <h2>Recent commits</h2>
23 <% if @commits.blank? -%>
24 <ul><li><em>No commits yet…</em></li></ul>
25 <% else -%>
26 <%= render :partial => "logs/log" -%>
27 <% if @commits.page_count > 1 -%>
28 <p>
29 <%= link_to "#{@commits.page_count} more pages of commits &#x2192;",
30 project_repository_log_path(@project, @repository, @repository.head_candidate.name, :page => 2) -%>
31 </p>
32 <% end -%>
33 <% end -%>
14 <h2>Activities</h2>
15 <%= render :partial => "events/events", :locals => { :events => @events } -%>
3416<% end -%>
3517
3618<% content_for :submenu do -%>
37 <% if @repository.ready? -%>
38 <li><%= link_to "Clone repository", new_project_repository_path(@project, @repository) -%></li>
39 <% end -%>
40 <% if @repository.user == current_user -%>
41 <li><%= link_to "Request merge", new_project_repository_merge_request_path(@project, @repository) -%></li>
42 <li><%= link_to "Add committer",
43 { :controller => "committers", :action => "new", :project_id => @project,
44 :repository_id => @repository } -%></li>
45 <% end -%>
46 <% if @repository.can_be_deleted_by?(current_user) -%>
47 <li><%= link_to "Delete repository", confirm_delete_project_repository_path(@project, @repository) -%></li>
48 <% end -%>
19 <%= render :partial => "context_menu" -%>
4920<% end -%>
5021
5122<% content_for :sidebar do -%>
3030 <li><strong>Created:</strong> <%= @repository.created_at.to_s(:short) -%></li>
3131 </li>
3232
33 <ul class="links">
34 <% if @repository.ready? -%>
35 <li><%= link_to "Clone repository", new_project_repository_path(@project, @repository) -%></li>
36 <% end -%>
37 <% if @repository.user == current_user -%>
38 <li><%= link_to "Request merge", new_project_repository_merge_request_path(@project, @repository) -%></li>
39 <li><%= link_to "Add committer",
40 { :controller => "committers", :action => "new", :project_id => @project,
41 :repository_id => @repository } -%></li>
42 <% end -%>
43 <% if @repository.can_be_deleted_by?(current_user) -%>
44 <li><%= link_to "Delete repository", confirm_delete_project_repository_path(@project, @repository) -%></li>
45 <% end -%>
46 </ul>
47
3348 <h4>Committers</h4>
3449 <ul>
3550 <% @repository.committers.each do |user| -%>
toggle raw diff

app/views/trees/show.html.erb

 
33 Tree of <%= h(@repository.name) -%> repository in <%= h(@project.title) -%>
44</h1>
55
6<% content_for :submenu do -%>
7 <%= render :partial => "repositories/context_menu" -%>
8<% end -%>
9
610<%= breadcrumb_path(@repository.name) -%>
711
812<% cache(tree_path(@commit.id, params[:path])) do -%>
toggle raw diff

app/views/users/show.html.erb

 
11<% @page_title = h(@user.login) -%>
22
33<% unless @events.empty? -%>
4 <ul class="events">
5 <h2>Activities</h2>
6 <% @events.group_by{|e| e.created_at.strftime("%A %B %d") }.each do |day, events| -%>
7 <li>
8 <p class="date"><%= day -%></p>
9 <ul class="event_instances">
10 <%= render :partial => events -%>
11 </ul>
12 </li>
13 <% end -%>
14 </ul>
15 <%= will_paginate @events -%>
4 <h2>Activities</h2>
5 <%= render :partial => "events/events", :locals => { :events => @events } -%>
166<% end -%>
177
188<% content_for :sidebar do -%>
toggle raw diff

spec/controllers/repositories_controller_spec.rb

 
66 @project = projects(:johans)
77 end
88
9 it "redirects to the project overview page" do
9 it "gets all the projects repositories" do
1010 get :index, :project_id => @project.slug
11 response.should redirect_to(project_path(@project))
11 response.should be_success
12 assigns(:repositories).should == @project.repositories
1213 end
1314end
1415
toggle raw diff

spec/controllers/site_controller_spec.rb

 
1818 before(:each) do
1919 login_as :johan
2020 end
21
2122 it "GETs successfully" do
2223 get :dashboard
2324 response.should be_success
3737 end
3838
3939 it "get a list of the current_users repositories, that's not mainline" do
40 repositories(:johans2).update_attribute(:user_id, users(:johan).id)
4140 get :dashboard
42 assigns[:repositories].should == [*repositories(:johans2)]
41 assigns[:repositories].should == [repositories(:johans_moe_clone)]
4342 end
4443 end
4544
toggle raw diff

spec/fixtures/repositories.yml

 
2424 created_at: 2007-11-18 01:21:21
2525 updated_at: 2007-11-18 01:21:21
2626 mainline: true
27johans_moe_clone:
28 id: 4
29 name: johans-clone-of-moes
30 project_id: 2
31 user_id: 1
32 created_at: 2007-11-18 01:21:21
33 updated_at: 2007-11-18 01:21:21
34 mainline: false
35 parent_id: 3
toggle raw diff