You are here: Home > Latest news from Darcs > Displays wiki source on parsing error

Revision 20080327224711-9043f-7cb778...

Displays wiki source on parsing error

app/helpers/application_helper.rb
app/models/page.rb
db/translation/pt-BR.rb
test/functional/wiki_controller_test.rb
test/unit/page_test.rb

Changes to application_helper.rb

69
  end
  end
69
70
  
  
70
71
  def render_wiki(text)
  def render_wiki(text)
71
72
    @renderer.render_wiki_text(text)
    begin
72
 
      @renderer.render_wiki_text(text)
73
 
    rescue
74
 
      content_tag(:div, ('The following wiki code contains an error that ' +
75
 
                         'prevents it from being correctly formatted.').t,
76
 
                  :class => 'wikierror') +
77
 
      content_tag(:pre, h(text), :class => 'wikisource')
78
 
    end
79
73
  end
  end
80
74
  
  
81
75
  def render_diff_table(chunks)
  def render_diff_table(chunks)
82

Changes to page.rb

139
  
  
139
140
  def update_references(input)
  def update_references(input)
140
141
    self.references.clear
    self.references.clear
141
142
    MediaCloth::wiki_to_html(input, :link_handler => reference_collector)
    MediaCloth::wiki_to_html(input, :link_handler => reference_collector) rescue RuntimeError
142
143
    self.refered_pages.reset
    self.refered_pages.reset
143
144
  end
  end
144
145
145

Changes to pt-BR.rb

37
'Events' => 'Eventos',
'Events' => 'Eventos',
37
38
'(Raw wiki text)' => '(Texto original)',
'(Raw wiki text)' => '(Texto original)',
38
39
'(Raw wiki text from revision %s)' => '(Texto original da revisão %s)',
'(Raw wiki text from revision %s)' => '(Texto original da revisão %s)',
39
 
'The following wiki code contains an error that prevents it from being correctly formatted.' => 'Há um erro no código wiki abaixo impedindo que ele seja formatado corretamente.',
40
40
41
41
# Source revision details page
# Source revision details page
42
42
'Revision details' => 'Detalhes de revisão', 
'Revision details' => 'Detalhes de revisão', 
43

Changes to wiki_controller_test.rb

523
    assert_xml_element %{//div[@class="toolbar bottombar")]/a[text() = "View wiki output" and @href="#{@controller.url_for(:only_path => true, :action => 'show', :page_name => page_name)}"]}
    assert_xml_element %{//div[@class="toolbar bottombar")]/a[text() = "View wiki output" and @href="#{@controller.url_for(:only_path => true, :action => 'show', :page_name => page_name)}"]}
523
524
  end
  end
524
525
525
 
  def test_shows_wiki_source_for_pages_with_parsing_errors
526
 
    name = 'ParsingError'
527
 
    log_as :bob
528
 
    post :save, :page_name => name, :btnSave => true, 
529
 
                :page => { :title => 'Parsing error',
530
 
                           :text => '',
531
 
                           :done => '0',
532
 
                           :kind => 'common', :editors => '' }
533
 
    follow_redirect
534
 
    assert_tag :div, :attributes => { :class => "wikierror" }
535
 
    assert_tag :pre, :content => ''
536
 
  end
537
 
538
526
private
private
539
527
540
528
  def log_as(user_name)
  def log_as(user_name)
541

Changes to page_test.rb

373
    assert_equal test_page, page.refered_pages.first
    assert_equal test_page, page.refered_pages.first
373
374
  end
  end
374
375
375
 
  def test_parsing_error_removes_all_outbound_references
376
 
    page = pages('refering_page')
377
 
    assert 0 < page.references.size
378
 
    page.revise(users('bob'), Time.local(2008, 3, 27, 18, 28, 17),
379
 
                :title => page.title,
380
 
                :kind => 'common',
381
 
                :text => "")
382
 
    assert_equal 0, page.references.size
383
 
  end
384
 
385
376
  def test_referencing_an_empty_page_creates_it
  def test_referencing_an_empty_page_creates_it
386
377
    page = revise_brand_new_page(:title => 'Referencing page',
    page = revise_brand_new_page(:title => 'Referencing page',
387
378
                                 :kind => 'common',
                                 :kind => 'common',
388