add ability to change footer and sidebar of page
This commit is contained in:
@@ -58,8 +58,11 @@ module Precious
|
|||||||
wiki = Gollum::Wiki.new(settings.gollum_path)
|
wiki = Gollum::Wiki.new(settings.gollum_path)
|
||||||
page = wiki.page(params[:splat].first)
|
page = wiki.page(params[:splat].first)
|
||||||
name = params[:rename] || page.name
|
name = params[:rename] || page.name
|
||||||
update_wiki_page(wiki, page, params[:content], commit_message,
|
msg = commit_message
|
||||||
name, params[:format])
|
update_wiki_page(wiki, page, params[:content], msg, name,
|
||||||
|
params[:format])
|
||||||
|
update_wiki_page(wiki, page.footer, params[:footer], msg) if params[:footer]
|
||||||
|
update_wiki_page(wiki, page.sidebar, params[:sidebar], msg) if params[:sidebar]
|
||||||
|
|
||||||
redirect "/#{CGI.escape(Gollum::Page.cname(name))}"
|
redirect "/#{CGI.escape(Gollum::Page.cname(name))}"
|
||||||
end
|
end
|
||||||
@@ -160,8 +163,7 @@ module Precious
|
|||||||
end
|
end
|
||||||
|
|
||||||
def update_wiki_page(wiki, page, content, commit_message, name = nil, format = nil)
|
def update_wiki_page(wiki, page, content, commit_message, name = nil, format = nil)
|
||||||
return if !page
|
return if !page || !content || page.raw_data == content
|
||||||
return if page.raw_data == content
|
|
||||||
name ||= page.name
|
name ||= page.name
|
||||||
format = (format || page.format).to_sym
|
format = (format || page.format).to_sym
|
||||||
wiki.update_page(page, name, format, content, commit_message)
|
wiki.update_page(page, name, format, content, commit_message)
|
||||||
|
|||||||
+5
-4
@@ -538,18 +538,19 @@ module Gollum
|
|||||||
|
|
||||||
def commit_index(options = {})
|
def commit_index(options = {})
|
||||||
normalize_commit(options)
|
normalize_commit(options)
|
||||||
options[:parent] ||= [@repo.commit('master')]
|
parents = [options[:parent] || @repo.commit('master')]
|
||||||
options[:parent].compact!
|
parents.flatten!
|
||||||
|
parents.compact!
|
||||||
index = self.repo.index
|
index = self.repo.index
|
||||||
if tree = options[:tree]
|
if tree = options[:tree]
|
||||||
index.read_tree(tree)
|
index.read_tree(tree)
|
||||||
elsif parent = options[:parent][0]
|
elsif parent = parents[0]
|
||||||
index.read_tree(parent.tree.id)
|
index.read_tree(parent.tree.id)
|
||||||
end
|
end
|
||||||
yield index if block_given?
|
yield index if block_given?
|
||||||
|
|
||||||
actor = Grit::Actor.new(options[:name], options[:email])
|
actor = Grit::Actor.new(options[:name], options[:email])
|
||||||
index.commit(options[:message], options[:parent], actor)
|
index.commit(options[:message], parents, actor)
|
||||||
end
|
end
|
||||||
|
|
||||||
def full_reverse_diff_for(page, sha1, sha2 = nil)
|
def full_reverse_diff_for(page, sha1, sha2 = nil)
|
||||||
|
|||||||
@@ -28,6 +28,32 @@ context "Frontend" do
|
|||||||
assert_not_equal page_1.version.sha, page_2.version.sha
|
assert_not_equal page_1.version.sha, page_2.version.sha
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "edits page footer and sidebar" do
|
||||||
|
page_1 = @wiki.page('Bilbo Baggins')
|
||||||
|
foot_1 = page_1.footer
|
||||||
|
side_1 = page_1.sidebar
|
||||||
|
|
||||||
|
post "/edit/#{Gollum::Page.cname page_1.name}",
|
||||||
|
:footer => 'footer', :sidebar => 'sidebar',
|
||||||
|
:format => page_1.format, :message => 'def'
|
||||||
|
follow_redirect!
|
||||||
|
assert last_response.ok?
|
||||||
|
|
||||||
|
@wiki.clear_cache
|
||||||
|
page_2 = @wiki.page(page_1.name)
|
||||||
|
foot_2 = page_2.footer
|
||||||
|
side_2 = page_2.sidebar
|
||||||
|
assert_equal page_1.raw_data, page_2.raw_data
|
||||||
|
|
||||||
|
assert_equal 'footer', foot_2.raw_data
|
||||||
|
assert_equal 'def', foot_2.version.message
|
||||||
|
assert_not_equal foot_1.version.sha, foot_2.version.sha
|
||||||
|
|
||||||
|
assert_equal 'sidebar', side_2.raw_data
|
||||||
|
assert_equal 'def', side_2.version.message
|
||||||
|
assert_not_equal side_1.version.sha, side_2.version.sha
|
||||||
|
end
|
||||||
|
|
||||||
test "renames page" do
|
test "renames page" do
|
||||||
page_1 = @wiki.page('Bilbo Baggins')
|
page_1 = @wiki.page('Bilbo Baggins')
|
||||||
post "/edit/#{Gollum::Page.cname page_1.name}", :content => 'abc',
|
post "/edit/#{Gollum::Page.cname page_1.name}", :content => 'abc',
|
||||||
|
|||||||
Reference in New Issue
Block a user