Add delete this Page based on .com.
Match short sha commit message of .com for edit and delete. Update tests.
This commit is contained in:
@@ -125,7 +125,9 @@ module Precious
|
|||||||
wiki = Gollum::Wiki.new(settings.gollum_path, wiki_options)
|
wiki = Gollum::Wiki.new(settings.gollum_path, wiki_options)
|
||||||
page = wiki.page(CGI.unescape(params[:page]))
|
page = wiki.page(CGI.unescape(params[:page]))
|
||||||
name = params[:rename] || page.name
|
name = params[:rename] || page.name
|
||||||
committer = Gollum::Committer.new(wiki, commit_message)
|
msg = commit_message
|
||||||
|
msg[:message]= msg[:message] + " [#{page.version_short}]"
|
||||||
|
committer = Gollum::Committer.new(wiki, msg)
|
||||||
commit = {:committer => committer}
|
commit = {:committer => committer}
|
||||||
|
|
||||||
update_wiki_page(wiki, page, params[:content], commit, name, params[:format])
|
update_wiki_page(wiki, page, params[:content], commit, name, params[:format])
|
||||||
@@ -139,6 +141,17 @@ module Precious
|
|||||||
redirect "/#{page.escaped_url_path}"
|
redirect "/#{page.escaped_url_path}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
get '/delete/*' do
|
||||||
|
@path = extract_path(params[:splat].first)
|
||||||
|
@name = extract_name(params[:splat].first).to_url
|
||||||
|
wiki_options = settings.wiki_options.merge({ :page_file_dir => @path })
|
||||||
|
wiki = Gollum::Wiki.new(settings.gollum_path, wiki_options)
|
||||||
|
@page = wiki.page(@name)
|
||||||
|
wiki.delete_page(@page, { :message => "Destroyed #{@name} (#{@page.format}) [#{@page.version_short}]" })
|
||||||
|
|
||||||
|
redirect '/'
|
||||||
|
end
|
||||||
|
|
||||||
get '/create/*' do
|
get '/create/*' do
|
||||||
@path = extract_path(params[:splat].first)
|
@path = extract_path(params[:splat].first)
|
||||||
@name = extract_name(params[:splat].first).to_url
|
@name = extract_name(params[:splat].first).to_url
|
||||||
@@ -331,13 +344,13 @@ module Precious
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def update_wiki_page(wiki, page, content, commit_message, name = nil, format = nil)
|
def update_wiki_page(wiki, page, content, commit, name = nil, format = nil)
|
||||||
return if !page ||
|
return if !page ||
|
||||||
((!content || page.raw_data == content) && page.format == format)
|
((!content || page.raw_data == content) && page.format == format)
|
||||||
name ||= page.name
|
name ||= page.name
|
||||||
format = (format || page.format).to_sym
|
format = (format || page.format).to_sym
|
||||||
content ||= page.raw_data
|
content ||= page.raw_data
|
||||||
wiki.update_page(page, name, format, content.to_s, commit_message)
|
wiki.update_page(page, name, format, content.to_s, commit)
|
||||||
end
|
end
|
||||||
|
|
||||||
def commit_message
|
def commit_message
|
||||||
|
|||||||
@@ -1,5 +1,21 @@
|
|||||||
// ua
|
// ua
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
$('#delete-link').click( function(e) {
|
||||||
|
var ok = confirm($(this).data('confirm'));
|
||||||
|
if ( ok ) {
|
||||||
|
var href = window.location.href;
|
||||||
|
var index = href.lastIndexOf('/');
|
||||||
|
// /home
|
||||||
|
var page = href.substr(index);
|
||||||
|
// http://localhost:4567/
|
||||||
|
var host = href.substr(0, index+1);
|
||||||
|
var loc = host + 'delete' + page;
|
||||||
|
window.location = loc;
|
||||||
|
}
|
||||||
|
// Don't navigate on cancel.
|
||||||
|
e.preventDefault();
|
||||||
|
} );
|
||||||
|
|
||||||
var nodeSelector = {
|
var nodeSelector = {
|
||||||
node1: null,
|
node1: null,
|
||||||
node2: null,
|
node2: null,
|
||||||
|
|||||||
@@ -57,5 +57,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<p id="last-edit">Last edited by <b>{{author}}</b>, {{date}}</p>
|
<p id="last-edit">Last edited by <b>{{author}}</b>, {{date}}</p>
|
||||||
|
<p>
|
||||||
|
<a id="delete-link" href="{{escaped_url_path}}" data-confirm="Are you sure you want to delete this page?"><span>Delete this Page</span></a>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -259,6 +259,13 @@ module Gollum
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Public: The first 7 characters of the current version.
|
||||||
|
#
|
||||||
|
# Returns the first 7 characters of the current version.
|
||||||
|
def version_short
|
||||||
|
version.to_s[0,7]
|
||||||
|
end
|
||||||
|
|
||||||
# Public: The header Page.
|
# Public: The header Page.
|
||||||
#
|
#
|
||||||
# Returns the header Page or nil if none exists.
|
# Returns the header Page or nil if none exists.
|
||||||
|
|||||||
+4
-4
@@ -46,7 +46,7 @@ context "Frontend" do
|
|||||||
@wiki.clear_cache
|
@wiki.clear_cache
|
||||||
page_2 = @wiki.page(page_1.name)
|
page_2 = @wiki.page(page_1.name)
|
||||||
assert_equal 'abc', page_2.raw_data
|
assert_equal 'abc', page_2.raw_data
|
||||||
assert_equal 'def', page_2.version.message
|
assert_equal 'def [ed6c9f6]', page_2.version.message
|
||||||
assert_not_equal page_1.version.sha, page_2.version.sha
|
assert_not_equal page_1.version.sha, page_2.version.sha
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -72,12 +72,12 @@ context "Frontend" do
|
|||||||
|
|
||||||
assert_equal 'header', header_2.raw_data
|
assert_equal 'header', header_2.raw_data
|
||||||
assert_equal 'footer', foot_2.raw_data
|
assert_equal 'footer', foot_2.raw_data
|
||||||
assert_equal 'def', foot_2.version.message
|
assert_equal 'def [ed6c9f6]', foot_2.version.message
|
||||||
assert_not_equal foot_1.version.sha, foot_2.version.sha
|
assert_not_equal foot_1.version.sha, foot_2.version.sha
|
||||||
assert_not_equal header_1.version.sha, header_2.version.sha
|
assert_not_equal header_1.version.sha, header_2.version.sha
|
||||||
|
|
||||||
assert_equal 'sidebar', side_2.raw_data
|
assert_equal 'sidebar', side_2.raw_data
|
||||||
assert_equal 'def', side_2.version.message
|
assert_equal 'def [ed6c9f6]', side_2.version.message
|
||||||
assert_not_equal side_1.version.sha, side_2.version.sha
|
assert_not_equal side_1.version.sha, side_2.version.sha
|
||||||
assert_equal commits+1, @wiki.repo.commits('master').size
|
assert_equal commits+1, @wiki.repo.commits('master').size
|
||||||
end
|
end
|
||||||
@@ -95,7 +95,7 @@ context "Frontend" do
|
|||||||
assert_nil @wiki.page("B")
|
assert_nil @wiki.page("B")
|
||||||
page_2 = @wiki.page('C')
|
page_2 = @wiki.page('C')
|
||||||
assert_equal 'abc', page_2.raw_data
|
assert_equal 'abc', page_2.raw_data
|
||||||
assert_equal 'def', page_2.version.message
|
assert_equal 'def [ed6c9f6]', page_2.version.message
|
||||||
assert_not_equal page_1.version.sha, page_2.version.sha
|
assert_not_equal page_1.version.sha, page_2.version.sha
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -61,8 +61,8 @@ context "Frontend Unicode support" do
|
|||||||
assert last_response.ok?
|
assert last_response.ok?
|
||||||
|
|
||||||
@wiki.update_page(@wiki.page('PG'), nil, nil, '다른 text', {})
|
@wiki.update_page(@wiki.page('PG'), nil, nil, '다른 text', {})
|
||||||
page = @wiki.page('PG')
|
page2 = @wiki.page('PG')
|
||||||
assert_equal '다른 text', utf8(page.raw_data)
|
assert_equal '다른 text', utf8(page2.raw_data)
|
||||||
|
|
||||||
post '/edit/PG', :page => 'PG', :content => '바뀐 text', :message => 'ghi'
|
post '/edit/PG', :page => 'PG', :content => '바뀐 text', :message => 'ghi'
|
||||||
follow_redirect!
|
follow_redirect!
|
||||||
@@ -71,7 +71,7 @@ context "Frontend Unicode support" do
|
|||||||
@wiki = Gollum::Wiki.new(@path)
|
@wiki = Gollum::Wiki.new(@path)
|
||||||
page = @wiki.page('PG')
|
page = @wiki.page('PG')
|
||||||
assert_equal '바뀐 text', utf8(page.raw_data)
|
assert_equal '바뀐 text', utf8(page.raw_data)
|
||||||
assert_equal 'ghi', page.version.message
|
assert_equal 'ghi [' + page2.version_short + ']', page.version.message
|
||||||
end
|
end
|
||||||
|
|
||||||
test "heavy use 2" do
|
test "heavy use 2" do
|
||||||
@@ -82,8 +82,8 @@ context "Frontend Unicode support" do
|
|||||||
|
|
||||||
@wiki.update_page(@wiki.page('k'), nil, nil, '다른 text', {})
|
@wiki.update_page(@wiki.page('k'), nil, nil, '다른 text', {})
|
||||||
@wiki = Gollum::Wiki.new(@path)
|
@wiki = Gollum::Wiki.new(@path)
|
||||||
page = @wiki.page('k')
|
page2 = @wiki.page('k')
|
||||||
assert_equal '다른 text', utf8(page.raw_data)
|
assert_equal '다른 text', utf8(page2.raw_data)
|
||||||
|
|
||||||
post '/edit/' + CGI.escape('한글'), :page => 'k', :content => '바뀐 text',
|
post '/edit/' + CGI.escape('한글'), :page => 'k', :content => '바뀐 text',
|
||||||
:format => 'markdown', :message => 'ghi'
|
:format => 'markdown', :message => 'ghi'
|
||||||
@@ -93,7 +93,7 @@ context "Frontend Unicode support" do
|
|||||||
@wiki = Gollum::Wiki.new(@path)
|
@wiki = Gollum::Wiki.new(@path)
|
||||||
page = @wiki.page('k')
|
page = @wiki.page('k')
|
||||||
assert_equal '바뀐 text', utf8(page.raw_data)
|
assert_equal '바뀐 text', utf8(page.raw_data)
|
||||||
assert_equal 'ghi', page.version.message
|
assert_equal 'ghi [' + page2.version_short + ']', page.version.message
|
||||||
end
|
end
|
||||||
|
|
||||||
test 'transliteration' do
|
test 'transliteration' do
|
||||||
|
|||||||
Reference in New Issue
Block a user