Fixes section edit links when text includes pre/code tag (#2222).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@7835 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
6be2e99bb6
commit
b3b2eb3e50
@ -489,6 +489,7 @@ module ApplicationHelper
|
|||||||
text = Redmine::WikiFormatting.to_html(Setting.text_formatting, text, :object => obj, :attribute => attr)
|
text = Redmine::WikiFormatting.to_html(Setting.text_formatting, text, :object => obj, :attribute => attr)
|
||||||
|
|
||||||
@parsed_headings = []
|
@parsed_headings = []
|
||||||
|
@current_section = 0 if options[:edit_section_links]
|
||||||
text = parse_non_pre_blocks(text) do |text|
|
text = parse_non_pre_blocks(text) do |text|
|
||||||
[:parse_sections, :parse_inline_attachments, :parse_wiki_links, :parse_redmine_links, :parse_macros, :parse_headings].each do |method_name|
|
[:parse_sections, :parse_inline_attachments, :parse_wiki_links, :parse_redmine_links, :parse_macros, :parse_headings].each do |method_name|
|
||||||
send method_name, text, project, obj, attr, only_path, options
|
send method_name, text, project, obj, attr, only_path, options
|
||||||
@ -732,12 +733,11 @@ module ApplicationHelper
|
|||||||
|
|
||||||
def parse_sections(text, project, obj, attr, only_path, options)
|
def parse_sections(text, project, obj, attr, only_path, options)
|
||||||
return unless options[:edit_section_links]
|
return unless options[:edit_section_links]
|
||||||
section = 0
|
|
||||||
text.gsub!(HEADING_RE) do
|
text.gsub!(HEADING_RE) do
|
||||||
section += 1
|
@current_section += 1
|
||||||
if section > 1
|
if @current_section > 1
|
||||||
content_tag('div',
|
content_tag('div',
|
||||||
link_to(image_tag('edit.png'), options[:edit_section_links].merge(:section => section)),
|
link_to(image_tag('edit.png'), options[:edit_section_links].merge(:section => @current_section)),
|
||||||
:class => 'contextual',
|
:class => 'contextual',
|
||||||
:title => l(:button_edit_section)) + $1
|
:title => l(:button_edit_section)) + $1
|
||||||
else
|
else
|
||||||
|
2
test/fixtures/wiki_contents.yml
vendored
2
test/fixtures/wiki_contents.yml
vendored
@ -111,6 +111,8 @@ wiki_contents_011:
|
|||||||
|
|
||||||
h2. Heading 1
|
h2. Heading 1
|
||||||
|
|
||||||
|
@WHATEVER@
|
||||||
|
|
||||||
Maecenas sed elit sit amet mi accumsan vestibulum non nec velit. Proin porta tincidunt lorem, consequat rhoncus dolor fermentum in.
|
Maecenas sed elit sit amet mi accumsan vestibulum non nec velit. Proin porta tincidunt lorem, consequat rhoncus dolor fermentum in.
|
||||||
|
|
||||||
Cras ipsum felis, ultrices at porttitor vel, faucibus eu nunc.
|
Cras ipsum felis, ultrices at porttitor vel, faucibus eu nunc.
|
||||||
|
@ -79,6 +79,20 @@ class WikiControllerTest < ActionController::TestCase
|
|||||||
get :show, :project_id => 1, :id => 'Unexistent page'
|
get :show, :project_id => 1, :id => 'Unexistent page'
|
||||||
assert_response 404
|
assert_response 404
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_show_should_display_section_edit_links
|
||||||
|
@request.session[:user_id] = 2
|
||||||
|
get :show, :project_id => 1, :id => 'Page with sections'
|
||||||
|
assert_no_tag 'a', :attributes => {
|
||||||
|
:href => '/projects/ecookbook/wiki/Page_with_sections/edit?section=1'
|
||||||
|
}
|
||||||
|
assert_tag 'a', :attributes => {
|
||||||
|
:href => '/projects/ecookbook/wiki/Page_with_sections/edit?section=2'
|
||||||
|
}
|
||||||
|
assert_tag 'a', :attributes => {
|
||||||
|
:href => '/projects/ecookbook/wiki/Page_with_sections/edit?section=3'
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
def test_show_unexistent_page_with_edit_right
|
def test_show_unexistent_page_with_edit_right
|
||||||
@request.session[:user_id] = 2
|
@request.session[:user_id] = 2
|
||||||
|
Loading…
x
Reference in New Issue
Block a user