diff --git a/CHANGELOG b/CHANGELOG index 5c57b14ad15..544e66a1a1c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -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 diff --git a/app/assets/javascripts/project.js.coffee b/app/assets/javascripts/project.js.coffee index d81cc087df9..f4a8a178e76 100644 --- a/app/assets/javascripts/project.js.coffee +++ b/app/assets/javascripts/project.js.coffee @@ -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" diff --git a/app/views/projects/show.html.haml b/app/views/projects/show.html.haml index 7902f51f72f..19bef02b51f 100644 --- a/app/views/projects/show.html.haml +++ b/app/views/projects/show.html.haml @@ -1,9 +1,14 @@ = 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) @@ -11,57 +16,65 @@ = 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 + - 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 @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" diff --git a/features/project/project.feature b/features/project/project.feature index c1f192f123e..47e9600c051 100644 --- a/features/project/project.feature +++ b/features/project/project.feature @@ -27,7 +27,6 @@ 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 @@ -35,3 +34,11 @@ Feature: Project Feature 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 diff --git a/features/steps/project/project.rb b/features/steps/project/project.rb index 3e7061a421f..f543e47b4c2 100644 --- a/features/steps/project/project.rb +++ b/features/steps/project/project.rb @@ -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" @@ -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