Skip to content

Commit

Permalink
Merge branch 'readme_tab' into 'master'
Browse files Browse the repository at this point in the history
Add Readme tab to project show page

Fixes #1533

See merge request !1140
  • Loading branch information
dzaporozhets committed Oct 1, 2014
2 parents 76aca72 + ae88a9b commit 88d3e97
Show file tree
Hide file tree
Showing 5 changed files with 93 additions and 55 deletions.
1 change: 1 addition & 0 deletions CHANGELOG
Expand Up @@ -6,6 +6,7 @@ v 7.4.0
- Default branch is protected by default
- Increase unicorn timeout to 60 seconds
- Sort search autocomplete projects by stars count so most popular go first
- Add README to tab on project show page
- Do not delete tmp/repositories itself during clean-up, only its contents
- Support for backup uploads to remote storage
- Prevent notes polling when there are not notes
Expand Down
9 changes: 9 additions & 0 deletions app/assets/javascripts/project.js.coffee
Expand Up @@ -51,3 +51,12 @@ $ ->
$(@).toggleClass('on').find('.count').html(data.star_count)
.on 'ajax:error', (e, xhr, status, error) ->
new Flash('Star toggle failed. Try again later.', 'alert')

$("a[data-toggle='tab']").on "shown.bs.tab", (e) ->
$.cookie "default_view", $(e.target).attr("href")

defaultView = $.cookie("default_view")
if defaultView
$("a[href=" + defaultView + "]").tab "show"
else
$("a[data-toggle='tab']:first").tab "show"
109 changes: 61 additions & 48 deletions app/views/projects/show.html.haml
@@ -1,67 +1,80 @@
= render "home_panel"

- readme = @repository.readme
%ul.nav.nav-tabs
%li.active
= link_to project_path(@project) do
= link_to '#tab-activity', 'data-toggle' => 'tab' do
Activity
- if readme
%li
= link_to '#tab-readme', 'data-toggle' => 'tab' do
Readme
.project-home-links
- unless @project.empty_repo?
= link_to pluralize(number_with_delimiter(@repository.commit_count), 'commit'), project_commits_path(@project, @ref || @repository.root_ref)
= link_to pluralize(number_with_delimiter(@repository.branch_names.count), 'branch'), project_branches_path(@project)
= link_to pluralize(number_with_delimiter(@repository.tag_names.count), 'tag'), project_tags_path(@project)
%span.light.prepend-left-20= repository_size

.row
%section.col-md-9
= render "events/event_last_push", event: @last_push
= render 'shared/event_filter'
.content_list
= spinner
%aside.col-md-3.project-side.hidden-sm.hidden-xs
.clearfix
- if @project.archived?
.alert.alert-warning
%h4
%i.icon-warning-sign
Archived project!
%p Repository is read-only
.tab-content
.tab-pane.active#tab-activity
.row
%section.col-md-9
= render "events/event_last_push", event: @last_push
= render 'shared/event_filter'
.content_list
= spinner
%aside.col-md-3.project-side.hidden-sm.hidden-xs
.clearfix
- if @project.archived?
.alert.alert-warning
%h4
%i.icon-warning-sign
Archived project!
%p Repository is read-only

- if @project.forked_from_project
.alert.alert-success
%i.icon-code-fork.project-fork-icon
Forked from:
%br
= link_to @project.forked_from_project.name_with_namespace, project_path(@project.forked_from_project)
- if @project.forked_from_project
.alert.alert-success
%i.icon-code-fork.project-fork-icon
Forked from:
%br
= link_to @project.forked_from_project.name_with_namespace, project_path(@project.forked_from_project)

- unless @project.empty_repo?
= link_to project_compare_index_path(@project, from: @repository.root_ref, to: @ref || @repository.root_ref), class: 'btn btn-block' do
Compare code
- unless @project.empty_repo?
= link_to project_compare_index_path(@project, from: @repository.root_ref, to: @ref || @repository.root_ref), class: 'btn btn-block' do
Compare code

- if @repository.readme
- readme = @repository.readme
= link_to project_blob_path(@project, tree_join(@repository.root_ref, readme.name)), class: 'btn btn-block' do
= readme.name
- if @repository.version
- version = @repository.version
= link_to project_blob_path(@project, tree_join(@repository.root_ref, version.name)), class: 'btn btn-block' do
Version:
%span.count
= @repository.blob_by_oid(version.id).data

.prepend-top-10
%p
%span.light Created on
#{@project.created_at.stamp('Aug 22, 2013')}
%p
%span.light Owned by
- if @project.group
#{link_to @project.group.name, @project.group} group
- else
#{link_to @project.owner_name, @project.owner}

- if @repository.version
- version = @repository.version
= link_to project_blob_path(@project, tree_join(@repository.root_ref, version.name)), class: 'btn btn-block' do
Version:
%span.count
= @repository.blob_by_oid(version.id).data

.prepend-top-10
%p
%span.light Created on
#{@project.created_at.stamp('Aug 22, 2013')}
%p
%span.light Owned by
- if @project.group
#{link_to @project.group.name, @project.group} group
- else
#{link_to @project.owner_name, @project.owner}
- if @project.gitlab_ci?
%hr
= link_to @project.gitlab_ci_service.builds_path do
= image_tag @project.gitlab_ci_service.status_img_path, alt: "build status"

- if readme
.tab-pane#tab-readme
%article.readme-holder#README
= link_to project_blob_path(@project, tree_join(@repository.root_ref, readme.name)) do
%h4.readme-file-title
%i.icon-file
= readme.name
.wiki
= render_readme(readme)

- if @project.gitlab_ci?
%hr
= link_to @project.gitlab_ci_service.builds_path do
= image_tag @project.gitlab_ci_service.status_img_path, alt: "build status"
9 changes: 8 additions & 1 deletion features/project/project.feature
Expand Up @@ -27,11 +27,18 @@ Feature: Project Feature

Scenario: I should see project readme and version
When I visit project "Shop" page
Then I should see project "Shop" README link
And I should see project "Shop" version

Scenario: I should change project default branch
When I visit edit project "Shop" page
And change project default branch
And I save project
Then I should see project default branch changed

@javascript
Scenario: I should have default tab per my preference
And I own project "Forum"
When I select project "Forum" README tab
Then I should see project "Forum" README
And I visit project "Shop" page
Then I should see project "Shop" README
20 changes: 14 additions & 6 deletions features/steps/project/project.rb
Expand Up @@ -25,12 +25,6 @@ class Spinach::Features::ProjectFeature < Spinach::FeatureSteps
project.path.should == "new-path"
end

step 'I should see project "Shop" README link' do
within '.project-side' do
page.should have_content "README.md"
end
end

step 'I should see project "Shop" version' do
within '.project-side' do
page.should have_content "Version: 6.7.0.pre"
Expand All @@ -45,4 +39,18 @@ class Spinach::Features::ProjectFeature < Spinach::FeatureSteps
step 'I should see project default branch changed' do
find(:css, 'select#project_default_branch').value.should == 'fix'
end

step 'I select project "Forum" README tab' do
click_link 'Readme'
end

step 'I should see project "Forum" README' do
page.should have_link "README.md"
page.should have_content "Sample repo for testing gitlab features"
end

step 'I should see project "Shop" README' do
page.should have_link "README.md"
page.should have_content "testme"
end
end

0 comments on commit 88d3e97

Please sign in to comment.