Project

General

Profile

Feature #30829 » 30829-linkto-current-issue-note.patch

Yuichi HARADA, 2019-03-04 07:52

View differences:

app/helpers/application_helper.rb
897 897
      repo_identifier = $~[:repo_identifier]
898 898
      sep = $~[:sep1] || $~[:sep2] || $~[:sep3] || $~[:sep4]
899 899
      identifier = $~[:identifier1] || $~[:identifier2] || $~[:identifier3]
900
      comment_suffix = $~[:comment_suffix]
901
      comment_id = $~[:comment_id]
900
      comment_suffix = $~[:comment_suffix1] || $~[:comment_suffix2]
901
      comment_id = $~[:comment_id1] || $~[:comment_id2]
902 902

  
903 903
      if tag_content
904 904
        $&
......
934 934
            oid = identifier.to_i
935 935
            case prefix
936 936
            when nil
937
              if oid.to_s == identifier &&
937
              issue = nil
938
              if oid.to_s == identifier
938 939
                issue = Issue.visible.find_by_id(oid)
940
              elsif identifier.blank?
941
                oid = nil
942
                issue =
943
                  case obj
944
                  when Issue
945
                    obj
946
                  when Journal
947
                    obj.issue
948
                  else
949
                    nil
950
                  end
951
              end
952
              if issue
939 953
                anchor = comment_id ? "note-#{comment_id}" : nil
940 954
                url = issue_url(issue, :only_path => only_path, :anchor => anchor)
941 955
                link = if sep == '##'
......
1066 1080
                )
1067 1081
              )
1068 1082
              (
1069
                (?<identifier1>\d+)
1070
                (?<comment_suffix>
1071
                  (\#note)?
1072
                  -(?<comment_id>\d+)
1073
                )?
1083
                (
1084
                  (?<identifier1>\d+)
1085
                  (?<comment_suffix1>
1086
                    (\#note)?
1087
                    -(?<comment_id1>\d+)
1088
                  )?
1089
                )|
1090
                (
1091
                  (?<comment_suffix2>
1092
                    note\-(?<comment_id2>\d+)
1093
                  )
1094
                )
1074 1095
              )|
1075 1096
              (
1076 1097
              (?<sep3>:)
test/helpers/application_helper_test.rb
28 28
           :members, :member_roles, :roles,
29 29
           :repositories, :changesets,
30 30
           :projects_trackers,
31
           :trackers, :issue_statuses, :issues, :versions, :documents,
31
           :trackers, :issue_statuses, :issues, :versions, :documents, :journals,
32 32
           :wikis, :wiki_pages, :wiki_contents,
33 33
           :boards, :messages, :news,
34 34
           :attachments, :enumerations,
......
423 423
    to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text), "#{text} failed" }
424 424
  end
425 425

  
426
  def test_issue_links_with_note_id_only
427
    issue = Issue.find(1)
428
    css_classes = issue.css_classes
429
    @project = issue.project
430

  
431
    to_test = {
432
      '#note-14'  =>
433
        link_to('#note-14', {:controller => 'issues', :action => 'show', :id => 1, :anchor => 'note-14'},
434
          :class => css_classes, :title => 'Bug: Cannot print recipes (New)'
435
        ),
436
    }
437
    to_test.each do |text, result|
438
      assert_equal "<p>#{result}</p>", textilizable(text, :object => issue), "#{text} failed"
439
    end
440

  
441
    journal = Journal.find(2) # #1#note-2
442
    to_test = {
443
      '#note-2'  =>
444
        link_to('#note-2', {:controller => 'issues', :action => 'show', :id => 1, :anchor => 'note-2'},
445
          :class => css_classes, :title => 'Bug: Cannot print recipes (New)'
446
        ),
447
    }
448
    to_test.each do |text, result|
449
      assert_equal "<p>#{result}</p>", textilizable(text, :object => journal), "#{text} failed"
450
    end
451
  end
452

  
426 453
  def test_user_links_with_email_as_login_name_should_not_be_parsed_textile
427 454
    with_settings :text_formatting => 'textile' do
428 455
      u = User.generate!(:login => 'jsmith@somenet.foo')
(1-1/2)