From a5625c749b31760daf104241475a9b3527eb223c Mon Sep 17 00:00:00 2001 From: Alex Braha Stoll <alexbrahastoll@gmail.com> Date: Mon, 26 Dec 2016 23:54:36 -0200 Subject: [PATCH] Render wiki entries using a collection of WikiPage and WikiDirectory objects --- app/controllers/projects/wikis_controller.rb | 4 ++-- app/views/projects/wikis/_sidebar.html.haml | 10 +--------- app/views/projects/wikis/_sidebar_wiki_pages.html.haml | 4 ---- app/views/projects/wikis/_wiki_directory.html.haml | 4 ++++ .../{_wiki_pages.html.haml => _wiki_page.html.haml} | 6 +++++- app/views/projects/wikis/pages.html.haml | 9 +-------- 6 files changed, 13 insertions(+), 24 deletions(-) delete mode 100644 app/views/projects/wikis/_sidebar_wiki_pages.html.haml create mode 100644 app/views/projects/wikis/_wiki_directory.html.haml rename app/views/projects/wikis/{_wiki_pages.html.haml => _wiki_page.html.haml} (52%) diff --git a/app/controllers/projects/wikis_controller.rb b/app/controllers/projects/wikis_controller.rb index 45a42400b2a..116c854b1ae 100644 --- a/app/controllers/projects/wikis_controller.rb +++ b/app/controllers/projects/wikis_controller.rb @@ -8,7 +8,7 @@ class Projects::WikisController < Projects::ApplicationController def pages @wiki_pages = Kaminari.paginate_array(@project_wiki.pages).page(params[:page]) - @wiki_directories = WikiPage.group_by_directory(@wiki_pages) + @wiki_entries = WikiPage.group_by_directory(@wiki_pages) end def show @@ -117,7 +117,7 @@ class Projects::WikisController < Projects::ApplicationController # Call #wiki to make sure the Wiki Repo is initialized @project_wiki.wiki - @sidebar_wiki_directories = WikiPage.group_by_directory(@project_wiki.pages.first(15)) + @sidebar_wiki_entries = WikiPage.group_by_directory(@project_wiki.pages.first(15)) rescue ProjectWiki::CouldNotCreateWikiError flash[:notice] = "Could not create Wiki Repository at this time. Please try again later." redirect_to project_path(@project) diff --git a/app/views/projects/wikis/_sidebar.html.haml b/app/views/projects/wikis/_sidebar.html.haml index b7464180a0c..e3fddfba689 100644 --- a/app/views/projects/wikis/_sidebar.html.haml +++ b/app/views/projects/wikis/_sidebar.html.haml @@ -12,15 +12,7 @@ .blocks-container .block.block-first %ul.wiki-pages - - @sidebar_wiki_directories.each do |wiki_directory, wiki_pages| - - if wiki_directory == '/' - = render 'sidebar_wiki_pages', wiki_pages: wiki_pages - - else - %li - = wiki_directory - %ul - = render 'sidebar_wiki_pages', wiki_pages: wiki_pages - + = render @sidebar_wiki_entries, context: 'sidebar' .block = link_to namespace_project_wikis_pages_path(@project.namespace, @project), class: 'btn btn-block' do diff --git a/app/views/projects/wikis/_sidebar_wiki_pages.html.haml b/app/views/projects/wikis/_sidebar_wiki_pages.html.haml deleted file mode 100644 index 65453a384d2..00000000000 --- a/app/views/projects/wikis/_sidebar_wiki_pages.html.haml +++ /dev/null @@ -1,4 +0,0 @@ -- wiki_pages.each do |wiki_page| - %li{ class: params[:id] == wiki_page.slug ? 'active' : '' } - = link_to namespace_project_wiki_path(@project.namespace, @project, wiki_page) do - = wiki_page.title.capitalize diff --git a/app/views/projects/wikis/_wiki_directory.html.haml b/app/views/projects/wikis/_wiki_directory.html.haml new file mode 100644 index 00000000000..0e5f32ed859 --- /dev/null +++ b/app/views/projects/wikis/_wiki_directory.html.haml @@ -0,0 +1,4 @@ +%li + = wiki_directory.slug + %ul + = render wiki_directory.pages, context: context diff --git a/app/views/projects/wikis/_wiki_pages.html.haml b/app/views/projects/wikis/_wiki_page.html.haml similarity index 52% rename from app/views/projects/wikis/_wiki_pages.html.haml rename to app/views/projects/wikis/_wiki_page.html.haml index ac98599d96b..cea27388a0d 100644 --- a/app/views/projects/wikis/_wiki_pages.html.haml +++ b/app/views/projects/wikis/_wiki_page.html.haml @@ -1,4 +1,8 @@ -- wiki_pages.each do |wiki_page| +- if context == 'sidebar' + %li{ class: params[:id] == wiki_page.slug ? 'active' : '' } + = link_to namespace_project_wiki_path(@project.namespace, @project, wiki_page) do + = wiki_page.title.capitalize +- else %li = link_to wiki_page.title, namespace_project_wiki_path(@project.namespace, @project, wiki_page) %small (#{wiki_page.format}) diff --git a/app/views/projects/wikis/pages.html.haml b/app/views/projects/wikis/pages.html.haml index 28dd81e5c3f..5fba2b1a5ae 100644 --- a/app/views/projects/wikis/pages.html.haml +++ b/app/views/projects/wikis/pages.html.haml @@ -14,13 +14,6 @@ Clone repository %ul.wiki-pages-list.content-list - - @wiki_directories.each do |wiki_directory, wiki_pages| - - if wiki_directory == '/' - = render 'wiki_pages', wiki_pages: wiki_pages - - else - %li - = wiki_directory - %ul - = render 'wiki_pages', wiki_pages: wiki_pages + = render @wiki_entries, context: 'pages' = paginate @wiki_pages, theme: 'gitlab' -- GitLab