Add dir support to write_page
This commit is contained in:
@@ -196,12 +196,10 @@ module Precious
|
|||||||
page_dir = settings.wiki_options[:page_file_dir].to_s
|
page_dir = settings.wiki_options[:page_file_dir].to_s
|
||||||
path = clean_url(::File.join(page_dir, path)) unless path.start_with?(page_dir)
|
path = clean_url(::File.join(page_dir, path)) unless path.start_with?(page_dir)
|
||||||
|
|
||||||
# write_page is not directory aware so use wiki_options to emulate dir support.
|
wiki = wiki_new
|
||||||
wiki_options = settings.wiki_options.merge({ :page_file_dir => path })
|
|
||||||
wiki = Gollum::Wiki.new(settings.gollum_path, wiki_options)
|
|
||||||
|
|
||||||
begin
|
begin
|
||||||
wiki.write_page(name, format, params[:content], commit_message)
|
wiki.write_page(name, format, params[:content], commit_message, path)
|
||||||
redirect to("/#{clean_url(::File.join(path,name))}")
|
redirect to("/#{clean_url(::File.join(path,name))}")
|
||||||
rescue Gollum::DuplicatePageError => e
|
rescue Gollum::DuplicatePageError => e
|
||||||
@message = "Duplicate page: #{e.message}"
|
@message = "Duplicate page: #{e.message}"
|
||||||
|
|||||||
+4
-3
@@ -282,10 +282,11 @@ module Gollum
|
|||||||
# :committer - Optional Gollum::Committer instance. If provided,
|
# :committer - Optional Gollum::Committer instance. If provided,
|
||||||
# assume that this operation is part of batch of
|
# assume that this operation is part of batch of
|
||||||
# updates and the commit happens later.
|
# updates and the commit happens later.
|
||||||
#
|
# dir - The String subdirectory of the Gollum::Page without any
|
||||||
|
# prefix or suffix slashes (e.g. "foo/bar").
|
||||||
# Returns the String SHA1 of the newly written version, or the
|
# Returns the String SHA1 of the newly written version, or the
|
||||||
# Gollum::Committer instance if this is part of a batch update.
|
# Gollum::Committer instance if this is part of a batch update.
|
||||||
def write_page(name, format, data, commit = {})
|
def write_page(name, format, data, commit = {}, dir = '')
|
||||||
multi_commit = false
|
multi_commit = false
|
||||||
|
|
||||||
committer = if obj = commit[:committer]
|
committer = if obj = commit[:committer]
|
||||||
@@ -297,7 +298,7 @@ module Gollum
|
|||||||
|
|
||||||
filename = Gollum::Page.cname(name)
|
filename = Gollum::Page.cname(name)
|
||||||
|
|
||||||
committer.add_to_index('', filename, format, data)
|
committer.add_to_index(dir, filename, format, data)
|
||||||
|
|
||||||
committer.after_commit do |index, sha|
|
committer.after_commit do |index, sha|
|
||||||
@access.refresh
|
@access.refresh
|
||||||
|
|||||||
Reference in New Issue
Block a user