Commit c4b1a5f5 authored by Marin Jankovski's avatar Marin Jankovski

Allow nested files in wiki.

parent 0050c07f
...@@ -64,7 +64,8 @@ class ProjectWiki ...@@ -64,7 +64,8 @@ class ProjectWiki
# #
# Returns an initialized WikiPage instance or nil # Returns an initialized WikiPage instance or nil
def find_page(title, version = nil) def find_page(title, version = nil)
if page = wiki.page(title, version) page_title, page_dir = page_title_and_dir(title)
if page = wiki.page(page_title, version, page_dir)
WikiPage.new(self, page, true) WikiPage.new(self, page, true)
else else
nil nil
...@@ -90,6 +91,12 @@ class ProjectWiki ...@@ -90,6 +91,12 @@ class ProjectWiki
wiki.delete_page(page, commit_details(:deleted, message, page.title)) wiki.delete_page(page, commit_details(:deleted, message, page.title))
end end
def page_title_and_dir(title)
title_array = title.split("/")
title = title_array.pop
[title.gsub(/\.[^.]*$/, ""), title_array.join("/")]
end
private private
def create_repo! def create_repo!
......
...@@ -175,8 +175,17 @@ class WikiPage ...@@ -175,8 +175,17 @@ class WikiPage
end end
def save(method, *args) def save(method, *args)
if valid? && wiki.send(method, *args) if valid? && wiki.send(method, *args)
@page = wiki.wiki.paged(title)
page_details = if method == :update_page
@page.path
else
title
end
page_title, page_dir = wiki.page_title_and_dir(page_details)
@page = wiki.wiki.paged(page_title, page_dir)
set_attributes set_attributes
......
...@@ -9,6 +9,6 @@ ...@@ -9,6 +9,6 @@
%span Page slug %span Page slug
= text_field_tag :new_wiki_path, nil, placeholder: 'how-to-setup', class: 'form-control', required: true, :'data-wikis-path' => project_wikis_path(@project) = text_field_tag :new_wiki_path, nil, placeholder: 'how-to-setup', class: 'form-control', required: true, :'data-wikis-path' => project_wikis_path(@project)
%p.hint %p.hint
Please don't use spaces and slashes Please don't use spaces.
.modal-footer .modal-footer
= link_to 'Build', '#', class: 'build-new-wiki btn btn-create' = link_to 'Build', '#', class: 'build-new-wiki btn btn-create'
...@@ -204,7 +204,7 @@ Gitlab::Application.routes.draw do ...@@ -204,7 +204,7 @@ Gitlab::Application.routes.draw do
end end
end end
resources :wikis, only: [:show, :edit, :destroy, :create], constraints: {id: /[a-zA-Z.0-9_\-]+/} do resources :wikis, only: [:show, :edit, :destroy, :create], constraints: {id: /[a-zA-Z.0-9_\-\/]+/} do
collection do collection do
get :pages get :pages
put ':id' => 'wikis#update' put ':id' => 'wikis#update'
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment