Patch #21256 » 0001-Replace-uses-of-image_tag-with-CSS.patch
| app/helpers/application_helper.rb | ||
|---|---|---|
| 454 | 454 | end | 
| 455 | 455 | |
| 456 | 456 | def reorder_links(name, url, method = :post) | 
| 457 |     link_to(image_tag('2uparrow.png', :alt => l(:label_sort_highest)), | |
| 458 |             url.merge({"#{name}[move_to]" => 'highest'}), | |
| 459 |             :method => method, :title => l(:label_sort_highest)) + | |
| 460 |     link_to(image_tag('1uparrow.png',   :alt => l(:label_sort_higher)), | |
| 461 |             url.merge({"#{name}[move_to]" => 'higher'}), | |
| 462 |            :method => method, :title => l(:label_sort_higher)) + | |
| 463 |     link_to(image_tag('1downarrow.png', :alt => l(:label_sort_lower)), | |
| 464 |             url.merge({"#{name}[move_to]" => 'lower'}), | |
| 465 |             :method => method, :title => l(:label_sort_lower)) + | |
| 466 |     link_to(image_tag('2downarrow.png', :alt => l(:label_sort_lowest)), | |
| 467 |             url.merge({"#{name}[move_to]" => 'lowest'}), | |
| 468 |            :method => method, :title => l(:label_sort_lowest)) | |
| 457 |     link_to('', | |
| 458 |             url.merge({"#{name}[move_to]" => 'highest'}), :method => method, | |
| 459 |             :title => l(:label_sort_highest), :class => 'icon-only icon-move-top') + | |
| 460 |     link_to('', | |
| 461 |             url.merge({"#{name}[move_to]" => 'higher'}), :method => method, | |
| 462 |             :title => l(:label_sort_higher), :class => 'icon-only icon-move-up') + | |
| 463 |     link_to('', | |
| 464 |             url.merge({"#{name}[move_to]" => 'lower'}), :method => method, | |
| 465 |             :title => l(:label_sort_lower), :class => 'icon-only icon-move-down') + | |
| 466 |     link_to('', | |
| 467 |             url.merge({"#{name}[move_to]" => 'lowest'}), :method => method, | |
| 468 |             :title => l(:label_sort_lowest), :class => 'icon-only icon-move-bottom') | |
| 469 | 469 | end | 
| 470 | 470 | |
| 471 | 471 | def breadcrumb(*args) | 
| ... | ... | |
| 887 | 887 | @current_section += 1 | 
| 888 | 888 | if @current_section > 1 | 
| 889 | 889 |         content_tag('div', | 
| 890 |           link_to(image_tag('edit.png'), options[:edit_section_links].merge(:section => @current_section)), | |
| 890 |           link_to('', options[:edit_section_links].merge(:section => @current_section), | |
| 891 | :class => 'icon-only icon-edit'), | |
| 891 | 892 | :class => 'contextual', | 
| 892 | 893 | :title => l(:button_edit_section), | 
| 893 | 894 |           :id => "section-#{@current_section}") + heading.html_safe | 
| ... | ... | |
| 1098 | 1099 | end | 
| 1099 | 1100 | |
| 1100 | 1101 | def toggle_checkboxes_link(selector) | 
| 1101 |     link_to_function image_tag('toggle_check.png'), | |
| 1102 |     link_to_function '', | |
| 1102 | 1103 |       "toggleCheckboxesBySelector('#{selector}')", | 
| 1103 |       :title => "#{l(:button_check_all)} / #{l(:button_uncheck_all)}" | |
| 1104 |       :title => "#{l(:button_check_all)} / #{l(:button_uncheck_all)}", | |
| 1105 | :class => 'toggle-checkboxes' | |
| 1104 | 1106 | end | 
| 1105 | 1107 | |
| 1106 | 1108 |   def progress_bar(pcts, options={}) | 
| ... | ... | |
| 1120 | 1122 | |
| 1121 | 1123 | def checked_image(checked=true) | 
| 1122 | 1124 | if checked | 
| 1123 |       @checked_image_tag ||= image_tag('toggle_check.png') | |
| 1125 |       @checked_image_tag ||= content_tag(:span, nil, :class => 'icon-only icon-checked') | |
| 1124 | 1126 | end | 
| 1125 | 1127 | end | 
| 1126 | 1128 | |
| app/helpers/email_addresses_helper.rb | ||
|---|---|---|
| 22 | 22 | # Returns a link to enable or disable notifications for the address | 
| 23 | 23 | def toggle_email_address_notify_link(address) | 
| 24 | 24 | if address.notify? | 
| 25 |       link_to image_tag('email.png'), | |
| 25 |       link_to '', | |
| 26 | 26 | user_email_address_path(address.user, address, :notify => '0'), | 
| 27 | :method => :put, | |
| 27 |         :method => :put, :remote => true, | |
| 28 | 28 | :title => l(:label_disable_notifications), | 
| 29 |         :remote => true | |
| 29 |         :class => 'icon icon-email' | |
| 30 | 30 | else | 
| 31 |       link_to image_tag('email_disabled.png'), | |
| 31 |       link_to '', | |
| 32 | 32 | user_email_address_path(address.user, address, :notify => '1'), | 
| 33 | :method => :put, | |
| 33 |         :method => :put, :remote => true, | |
| 34 | 34 | :title => l(:label_enable_notifications), | 
| 35 |         :remote => true | |
| 35 |         :class => 'icon icon-email-disabled' | |
| 36 | 36 | end | 
| 37 | 37 | end | 
| 38 | 38 | end | 
| app/helpers/issues_helper.rb | ||
|---|---|---|
| 442 | 442 | # Link to the attachment if it has not been removed | 
| 443 | 443 | value = link_to_attachment(atta, :download => true, :only_path => options[:only_path]) | 
| 444 | 444 | if options[:only_path] != false && atta.is_text? | 
| 445 | value += link_to( | |
| 446 |                        image_tag('magnifier.png'), | |
| 447 | :controller => 'attachments', :action => 'show', | |
| 448 | :id => atta, :filename => atta.filename | |
| 449 | ) | |
| 445 |           value += link_to('', | |
| 446 |                            { :controller => 'attachments', :action => 'show', | |
| 447 | :id => atta, :filename => atta.filename }, | |
| 448 | :class => 'icon icon-magnifier') | |
| 450 | 449 | end | 
| 451 | 450 | else | 
| 452 | 451 |         value = content_tag("i", h(value)) if value | 
| app/helpers/journals_helper.rb | ||
|---|---|---|
| 30 | 30 | editable = User.current.logged? && (User.current.allowed_to?(:edit_issue_notes, issue.project) || (journal.user == User.current && User.current.allowed_to?(:edit_own_issue_notes, issue.project))) | 
| 31 | 31 | links = [] | 
| 32 | 32 | if !journal.notes.blank? | 
| 33 |       links << link_to(image_tag('comment.png'), | |
| 33 |       links << link_to('', | |
| 34 | 34 |                        {:controller => 'journals', :action => 'new', :id => issue, :journal_id => journal}, | 
| 35 | 35 | :remote => true, | 
| 36 | 36 | :method => 'post', | 
| 37 | :title => l(:button_quote)) if options[:reply_links] | |
| 38 |       links << link_to_in_place_notes_editor(image_tag('edit.png'), "journal-#{journal.id}-notes", | |
| 37 | :title => l(:button_quote), | |
| 38 | :class => 'icon-only icon-comment' | |
| 39 | ) if options[:reply_links] | |
| 40 |       links << link_to_in_place_notes_editor('', "journal-#{journal.id}-notes", | |
| 39 | 41 |                                              { :controller => 'journals', :action => 'edit', :id => journal, :format => 'js' }, | 
| 40 | :title => l(:button_edit)) if editable | |
| 42 | :title => l(:button_edit), | |
| 43 | :class => 'icon-only icon-edit' | |
| 44 | ) if editable | |
| 41 | 45 | end | 
| 42 | 46 |     content << content_tag('div', links.join(' ').html_safe, :class => 'contextual') unless links.empty? | 
| 43 | 47 | content << textilizable(journal, :notes) | 
| app/helpers/watchers_helper.rb | ||
|---|---|---|
| 58 | 58 | :object_id => object.id, | 
| 59 | 59 | :user_id => user} | 
| 60 | 60 | s << ' ' | 
| 61 |         s << link_to(image_tag('delete.png'), url, | |
| 62 | :remote => true, :method => 'delete', :class => "delete") | |
| 61 |         s << link_to('', url, | |
| 62 | :remote => true, :method => 'delete', | |
| 63 | :class => "delete icon-only icon-del", | |
| 64 | :title => l(:button_delete)) | |
| 63 | 65 | end | 
| 64 | 66 |       content << content_tag('li', s, :class => "user-#{user.id}") | 
| 65 | 67 | end | 
| app/views/admin/info.html.erb | ||
|---|---|---|
| 6 | 6 | <% @checklist.each do |label, result| %> | 
| 7 | 7 | <tr class="<%= cycle 'odd', 'even' %>"> | 
| 8 | 8 | <td class="name"><%= label.is_a?(Symbol) ? l(label) : label %></td> | 
| 9 | <td class="tick"><%= image_tag((result ? 'true.png' : 'exclamation.png'), | |
| 10 | :style => "vertical-align:bottom;") %></td> | |
| 9 | <td class="tick"><span class="icon-only <%= (result ? 'icon-ok' : 'icon-error') %>"></span></td> | |
| 11 | 10 | </tr> | 
| 12 | 11 | <% end %> | 
| 13 | 12 | </table> | 
| app/views/admin/plugins.html.erb | ||
|---|---|---|
| 36 | 36 |         $("table.plugins td.version span").addClass("unknown"); | 
| 37 | 37 |         $.each(data, function(plugin_id, plugin_data){ | 
| 38 | 38 |           var s = $("tr#plugin-"+plugin_id+" td.version span"); | 
| 39 |           s.removeClass("icon-checked icon-warning unknown"); | |
| 39 |           s.removeClass("icon-ok icon-warning unknown"); | |
| 40 | 40 |           if (plugin_data.url) { | 
| 41 | 41 |             if (s.parent("a").length>0) { | 
| 42 | 42 | s.unwrap(); | 
| ... | ... | |
| 45 | 45 |             s.wrap($("<a></a>").attr("href", plugin_data.url).attr("target", "_blank")); | 
| 46 | 46 | } | 
| 47 | 47 |           if (plugin_data.c == s.text()) { | 
| 48 |             s.addClass("icon-checked"); | |
| 48 |             s.addClass("icon-ok"); | |
| 49 | 49 |           } else if (plugin_data.c) { | 
| 50 | 50 |             s.addClass("icon-warning"); | 
| 51 | 51 |             s.attr("title", "<%= escape_javascript l(:label_latest_compatible_version) %>: "+plugin_data.c); | 
| app/views/attachments/_links.html.erb | ||
|---|---|---|
| 1 | 1 | <div class="attachments"> | 
| 2 | 2 | <div class="contextual"> | 
| 3 |   <%= link_to image_tag('edit.png'), | |
| 4 | container_attachments_edit_path(container), | |
| 5 | :title => l(:label_edit_attachments) if options[:editable] %> | |
| 3 |   <%= link_to('', | |
| 4 | container_attachments_edit_path(container), | |
| 5 | :title => l(:label_edit_attachments), | |
| 6 | :class => 'icon-only icon-edit' | |
| 7 | ) if options[:editable] %> | |
| 6 | 8 | </div> | 
| 7 | 9 | <% for attachment in attachments %> | 
| 8 | 10 | <p><%= link_to_attachment attachment, :class => 'icon icon-attachment', :download => true -%> | 
| 9 | 11 | <% if attachment.is_text? %> | 
| 10 |     <%= link_to image_tag('magnifier.png'), | |
| 11 | :controller => 'attachments', :action => 'show', | |
| 12 | :id => attachment, :filename => attachment.filename %> | |
| 12 | <%= link_to '', | |
| 13 |                 { :controller => 'attachments', :action => 'show', | |
| 14 | :id => attachment, :filename => attachment.filename }, | |
| 15 | :class => 'icon icon-magnifier', | |
| 16 | :title => l(:button_view) %> | |
| 13 | 17 | <% end %> | 
| 14 | 18 |   <%= " - #{attachment.description}" unless attachment.description.blank? %> | 
| 15 | 19 | <span class="size">(<%= number_to_human_size attachment.filesize %>)</span> | 
| 16 | 20 | <% if options[:deletable] %> | 
| 17 |     <%= link_to image_tag('delete.png'), attachment_path(attachment), | |
| 18 |                                          :data => {:confirm => l(:text_are_you_sure)}, | |
| 19 |                                          :method => :delete, | |
| 20 |                                          :class => 'delete', | |
| 21 |                                          :title => l(:button_delete) %> | |
| 21 |     <%= link_to '', attachment_path(attachment), | |
| 22 |                 :data => {:confirm => l(:text_are_you_sure)}, | |
| 23 | :method => :delete, | |
| 24 |                 :class => 'delete icon-only icon-del', | |
| 25 | :title => l(:button_delete) %> | |
| 22 | 26 | <% end %> | 
| 23 | 27 | <% if options[:author] %> | 
| 24 | 28 | <span class="author"><%= attachment.author %>, <%= format_time(attachment.created_on) %></span> | 
| app/views/issues/_attributes.html.erb | ||
|---|---|---|
| 20 | 20 | |
| 21 | 21 | <% if @issue.safe_attribute?('category_id') && @issue.project.issue_categories.any? %> | 
| 22 | 22 | <p><%= f.select :category_id, (@issue.project.issue_categories.collect {|c| [c.name, c.id]}), :include_blank => true, :required => @issue.required_attribute?('category_id') %> | 
| 23 | <%= link_to(image_tag('add.png', :style => 'vertical-align: middle;'), | |
| 23 | <%= link_to('', | |
| 24 | 24 | new_project_issue_category_path(@issue.project), | 
| 25 | 25 | :remote => true, | 
| 26 | 26 | :method => 'get', | 
| 27 | 27 | :title => l(:label_issue_category_new), | 
| 28 | :tabindex => 200) if User.current.allowed_to?(:manage_categories, @issue.project) %></p> | |
| 28 | :tabindex => 200, | |
| 29 | :class => 'icon-only icon-add' | |
| 30 | ) if User.current.allowed_to?(:manage_categories, @issue.project) %></p> | |
| 29 | 31 | <% end %> | 
| 30 | 32 | |
| 31 | 33 | <% if @issue.safe_attribute?('fixed_version_id') && @issue.assignable_versions.any? %> | 
| 32 | 34 | <p><%= f.select :fixed_version_id, version_options_for_select(@issue.assignable_versions, @issue.fixed_version), :include_blank => true, :required => @issue.required_attribute?('fixed_version_id') %> | 
| 33 | <%= link_to(image_tag('add.png', :style => 'vertical-align: middle;'), | |
| 35 | <%= link_to('', | |
| 34 | 36 | new_project_version_path(@issue.project), | 
| 35 | 37 | :remote => true, | 
| 36 | 38 | :method => 'get', | 
| 37 | 39 | :title => l(:label_version_new), | 
| 38 | :tabindex => 200) if User.current.allowed_to?(:manage_versions, @issue.project) %> | |
| 40 | :tabindex => 200, | |
| 41 | :class => 'icon-only icon-add' | |
| 42 | ) if User.current.allowed_to?(:manage_versions, @issue.project) %> | |
| 39 | 43 | </p> | 
| 40 | 44 | <% end %> | 
| 41 | 45 | </div> | 
| app/views/issues/_relations.html.erb | ||
|---|---|---|
| 19 | 19 | <td class="status"><%= other_issue.status.name %></td> | 
| 20 | 20 | <td class="start_date"><%= format_date(other_issue.start_date) %></td> | 
| 21 | 21 | <td class="due_date"><%= format_date(other_issue.due_date) %></td> | 
| 22 |   <td class="buttons"><%= link_to image_tag('link_break.png'), | |
| 22 |   <td class="buttons"><%= link_to('', | |
| 23 | 23 | relation_path(relation), | 
| 24 | 24 | :remote => true, | 
| 25 | 25 | :method => :delete, | 
| 26 | 26 |                                   :data => {:confirm => l(:text_are_you_sure)}, | 
| 27 | :title => l(:label_relation_delete) if User.current.allowed_to?(:manage_issue_relations, @project) %></td> | |
| 27 | :title => l(:label_relation_delete), | |
| 28 | :class => 'icon-only icon-link-break' | |
| 29 | ) if User.current.allowed_to?(:manage_issue_relations, @project) %></td> | |
| 28 | 30 | </tr> | 
| 29 | 31 | <% end %> | 
| 30 | 32 | </table> | 
| app/views/messages/show.html.erb | ||
|---|---|---|
| 39 | 39 |   <div class="message reply" id="<%= "message-#{message.id}" %>"> | 
| 40 | 40 | <div class="contextual"> | 
| 41 | 41 | <%= link_to( | 
| 42 |             image_tag('comment.png'), | |
| 42 |             '', | |
| 43 | 43 |             {:action => 'quote', :id => message}, | 
| 44 | 44 | :remote => true, | 
| 45 | 45 | :method => 'get', | 
| 46 |             :title => l(:button_quote)) if !@topic.locked? && authorize_for('messages', 'reply') %> | |
| 46 | :title => l(:button_quote), | |
| 47 | :class => 'icon icon-comment' | |
| 48 |           ) if !@topic.locked? && authorize_for('messages', 'reply') %> | |
| 47 | 49 | <%= link_to( | 
| 48 |             image_tag('edit.png'), | |
| 50 |             '', | |
| 49 | 51 |             {:action => 'edit', :id => message}, | 
| 50 | :title => l(:button_edit) | |
| 52 | :title => l(:button_edit), | |
| 53 | :class => 'icon icon-edit' | |
| 51 | 54 | ) if message.editable_by?(User.current) %> | 
| 52 | 55 | <%= link_to( | 
| 53 |             image_tag('delete.png'), | |
| 56 |             '', | |
| 54 | 57 |             {:action => 'destroy', :id => message}, | 
| 55 | 58 | :method => :post, | 
| 56 | 59 |             :data => {:confirm => l(:text_are_you_sure)}, | 
| 57 | :title => l(:button_delete) | |
| 60 | :title => l(:button_delete), | |
| 61 | :class => 'icon icon-del' | |
| 58 | 62 | ) if message.destroyable_by?(User.current) %> | 
| 59 | 63 | </div> | 
| 60 | 64 | <h4> | 
| app/views/my/blocks/_timelog.html.erb | ||
|---|---|---|
| 42 | 42 |     <td class="hours"><%= html_hours("%.2f" % entry.hours) %></td> | 
| 43 | 43 | <td class="buttons"> | 
| 44 | 44 | <% if entry.editable_by?(@user) -%> | 
| 45 |         <%= link_to image_tag('edit.png'), {:controller => 'timelog', :action => 'edit', :id => entry}, | |
| 46 | :title => l(:button_edit) %> | |
| 47 |         <%= link_to image_tag('delete.png'), {:controller => 'timelog', :action => 'destroy', :id => entry}, | |
| 48 |                                              :data => {:confirm => l(:text_are_you_sure)}, | |
| 49 | :method => :delete, | |
| 50 | :title => l(:button_delete) %> | |
| 45 |         <%= link_to '', {:controller => 'timelog', :action => 'edit', :id => entry}, | |
| 46 | :title => l(:button_edit), | |
| 47 | :class => 'icon-only icon-edit' %> | |
| 48 |         <%= link_to '', {:controller => 'timelog', :action => 'destroy', :id => entry}, | |
| 49 |                     :data => {:confirm => l(:text_are_you_sure)}, :method => :delete, | |
| 50 | :title => l(:button_delete), | |
| 51 | :class => 'icon-only icon-del' %> | |
| 51 | 52 | <% end -%> | 
| 52 | 53 | </td> | 
| 53 | 54 | </tr> | 
| app/views/news/show.html.erb | ||
|---|---|---|
| 36 | 36 | <% @comments.each do |comment| %> | 
| 37 | 37 | <% next if comment.new_record? %> | 
| 38 | 38 | <div class="contextual"> | 
| 39 |     <%= link_to_if_authorized image_tag('delete.png'), {:controller => 'comments', :action => 'destroy', :id => @news, :comment_id => comment}, | |
| 40 |                                                        :data => {:confirm => l(:text_are_you_sure)}, :method => :delete, :title => l(:button_delete) %> | |
| 39 |     <%= link_to_if_authorized '', {:controller => 'comments', :action => 'destroy', :id => @news, :comment_id => comment}, | |
| 40 |                               :data => {:confirm => l(:text_are_you_sure)}, :method => :delete, | |
| 41 | :title => l(:button_delete), | |
| 42 | :class => 'icon-only icon-del' %> | |
| 41 | 43 | </div> | 
| 42 | 44 | <h4><%= avatar(comment.author, :size => "24") %><%= authoring comment.created_on, comment.author %></h4> | 
| 43 | 45 | <%= textilizable(comment.comments) %> | 
| app/views/reports/issue_report.html.erb | ||
|---|---|---|
| 1 | 1 | <h2><%=l(:label_report_plural)%></h2> | 
| 2 | 2 | |
| 3 | 3 | <div class="splitcontentleft"> | 
| 4 | <h3><%=l(:field_tracker)%>  <%= link_to image_tag('zoom_in.png'), project_issues_report_details_path(@project, :detail => 'tracker') %></h3> | |
| 4 | <h3> | |
| 5 | <%=l(:field_tracker)%>  | |
| 6 | <%= link_to '', project_issues_report_details_path(@project, :detail => 'tracker'), :class => 'icon-only icon-zoom-in' %> | |
| 7 | </h3> | |
| 5 | 8 | <%= render :partial => 'simple', :locals => { :data => @issues_by_tracker, :field_name => "tracker_id", :rows => @trackers } %> | 
| 6 | 9 | <br /> | 
| 7 | <h3><%=l(:field_priority)%>  <%= link_to image_tag('zoom_in.png'), project_issues_report_details_path(@project, :detail => 'priority') %></h3> | |
| 10 | <h3> | |
| 11 | <%=l(:field_priority)%>  | |
| 12 | <%= link_to '', project_issues_report_details_path(@project, :detail => 'priority'), :class => 'icon-only icon-zoom-in' %> | |
| 13 | </h3> | |
| 8 | 14 | <%= render :partial => 'simple', :locals => { :data => @issues_by_priority, :field_name => "priority_id", :rows => @priorities } %> | 
| 9 | 15 | <br /> | 
| 10 | <h3><%=l(:field_assigned_to)%>  <%= link_to image_tag('zoom_in.png'), project_issues_report_details_path(@project, :detail => 'assigned_to') %></h3> | |
| 16 | <h3> | |
| 17 | <%=l(:field_assigned_to)%>  | |
| 18 | <%= link_to '', project_issues_report_details_path(@project, :detail => 'assigned_to'), :class => 'icon-only icon-zoom-in' %> | |
| 19 | </h3> | |
| 11 | 20 | <%= render :partial => 'simple', :locals => { :data => @issues_by_assigned_to, :field_name => "assigned_to_id", :rows => @assignees } %> | 
| 12 | 21 | <br /> | 
| 13 | <h3><%=l(:field_author)%>  <%= link_to image_tag('zoom_in.png'), project_issues_report_details_path(@project, :detail => 'author') %></h3> | |
| 22 | <h3> | |
| 23 | <%=l(:field_author)%>  | |
| 24 | <%= link_to '', project_issues_report_details_path(@project, :detail => 'author'), :class => 'icon-only icon-zoom-in' %> | |
| 25 | </h3> | |
| 14 | 26 | <%= render :partial => 'simple', :locals => { :data => @issues_by_author, :field_name => "author_id", :rows => @authors } %> | 
| 15 | 27 | <br /> | 
| 16 | 28 | <%= call_hook(:view_reports_issue_report_split_content_left, :project => @project) %> | 
| 17 | 29 | </div> | 
| 18 | 30 | |
| 19 | 31 | <div class="splitcontentright"> | 
| 20 | <h3><%=l(:field_version)%>  <%= link_to image_tag('zoom_in.png'), project_issues_report_details_path(@project, :detail => 'version') %></h3> | |
| 32 | <h3> | |
| 33 | <%=l(:field_version)%>  | |
| 34 | <%= link_to '', project_issues_report_details_path(@project, :detail => 'version'), :class => 'icon-only icon-zoom-in' %> | |
| 35 | </h3> | |
| 21 | 36 | <%= render :partial => 'simple', :locals => { :data => @issues_by_version, :field_name => "fixed_version_id", :rows => @versions } %> | 
| 22 | 37 | <br /> | 
| 23 | 38 | <% if @project.children.any? %> | 
| 24 | <h3><%=l(:field_subproject)%>  <%= link_to image_tag('zoom_in.png'), project_issues_report_details_path(@project, :detail => 'subproject') %></h3> | |
| 39 | <h3> | |
| 40 | <%=l(:field_subproject)%>  | |
| 41 | <%= link_to '', project_issues_report_details_path(@project, :detail => 'subproject'), :class => 'icon-only icon-zoom-in' %> | |
| 42 | </h3> | |
| 25 | 43 | <%= render :partial => 'simple', :locals => { :data => @issues_by_subproject, :field_name => "project_id", :rows => @subprojects } %> | 
| 26 | 44 | <br /> | 
| 27 | 45 | <% end %> | 
| 28 | <h3><%=l(:field_category)%>  <%= link_to image_tag('zoom_in.png'), project_issues_report_details_path(@project, :detail => 'category') %></h3> | |
| 46 | <h3> | |
| 47 | <%=l(:field_category)%>  | |
| 48 | <%= link_to '', project_issues_report_details_path(@project, :detail => 'category'), :class => 'icon-only icon-zoom-in' %> | |
| 49 | </h3> | |
| 29 | 50 | <%= render :partial => 'simple', :locals => { :data => @issues_by_category, :field_name => "category_id", :rows => @categories } %> | 
| 30 | 51 | <br /> | 
| 31 | 52 | <%= call_hook(:view_reports_issue_report_split_content_right, :project => @project) %> | 
| app/views/repositories/_related_issues.html.erb | ||
|---|---|---|
| 11 | 11 | <ul> | 
| 12 | 12 | <% @changeset.issues.visible.each do |issue| %> | 
| 13 | 13 |   <li id="<%= "related-issue-#{issue.id}" %>"><%= link_to_issue issue %> | 
| 14 |     <%= link_to(image_tag('link_break.png'), | |
| 14 |     <%= link_to('', | |
| 15 | 15 |                 {:controller => 'repositories', :action => 'remove_related_issue', | 
| 16 | 16 | :id => @project, :repository_id => @repository.identifier_param, | 
| 17 | 17 | :rev => @changeset.identifier, :issue_id => issue}, | 
| 18 | 18 | :remote => true, | 
| 19 | 19 | :method => :delete, | 
| 20 | 20 |                 :data => {:confirm => l(:text_are_you_sure)}, | 
| 21 | :title => l(:label_relation_delete)) if manage_allowed %> | |
| 21 | :title => l(:label_relation_delete), | |
| 22 | :class => 'icon-only icon-link-break' | |
| 23 | ) if manage_allowed %> | |
| 22 | 24 | </li> | 
| 23 | 25 | <% end %> | 
| 24 | 26 | </ul> | 
| app/views/roles/permissions.html.erb | ||
|---|---|---|
| 9 | 9 | <th><%=l(:label_permissions)%></th> | 
| 10 | 10 | <% @roles.each do |role| %> | 
| 11 | 11 | <th> | 
| 12 |         <%= link_to_function('', | |
| 13 |                              "toggleCheckboxesBySelector('input.role-#{role.id}')", | |
| 14 |                              :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}", | |
| 15 | :class => 'icon-only icon-checked') %> | |
| 12 | 16 | <%= content_tag(role.builtin? ? 'em' : 'span', role.name) %> | 
| 13 |         <%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('input.role-#{role.id}')", | |
| 14 |                                                             :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %> | |
| 15 | 17 | </th> | 
| 16 | 18 | <% end %> | 
| 17 | 19 | </tr> | 
| ... | ... | |
| 33 | 35 | <% perms_by_module[mod].each do |permission| %> | 
| 34 | 36 |         <tr class="<%= cycle('odd', 'even') %> permission-<%= permission.name %>"> | 
| 35 | 37 | <td class="name"> | 
| 36 |             <%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('.permission-#{permission.name} input')", | |
| 37 |                                                                 :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %> | |
| 38 |             <%= link_to_function('', | |
| 39 |                                  "toggleCheckboxesBySelector('.permission-#{permission.name} input')", | |
| 40 |                                  :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}", | |
| 41 | :class => 'icon-only icon-checked') %> | |
| 38 | 42 | <%= l_or_humanize(permission.name, :prefix => 'permission_') %> | 
| 39 | 43 | </td> | 
| 40 | 44 | <% @roles.each do |role| %> | 
| app/views/settings/_repositories.html.erb | ||
|---|---|---|
| 23 | 23 | </td> | 
| 24 | 24 | <td> | 
| 25 | 25 | <% if enabled %> | 
| 26 | <%= | |
| 27 | image_tag( | |
| 28 | (scm_class.scm_available ? 'true.png' : 'exclamation.png'), | |
| 29 | :style => "vertical-align:bottom;" | |
| 30 | ) | |
| 31 | %> | |
| 26 | <span class="icon <%= (scm_class.scm_available ? 'icon-ok' : 'icon-error') %>"></span> | |
| 32 | 27 | <%= scm_class.scm_command %> | 
| 33 | 28 | <% end %> | 
| 34 | 29 | </td> | 
| ... | ... | |
| 124 | 119 | ) %> | 
| 125 | 120 | </td> | 
| 126 | 121 | <td class="buttons"> | 
| 127 |         <%= link_to(image_tag('delete.png'), '#', :class => 'delete-commit-keywords') %> | |
| 122 |         <%= link_to('', '#', | |
| 123 | :class => 'delete-commit-keywords icon-only icon-del') %> | |
| 128 | 124 | </td> | 
| 129 | 125 | </tr> | 
| 130 | 126 | <% end %> | 
| ... | ... | |
| 133 | 129 | <td><em class="info"><%= l(:text_comma_separated) %></em></td> | 
| 134 | 130 | <td></td> | 
| 135 | 131 | <td></td> | 
| 136 |       <td class="buttons"><%= link_to(image_tag('add.png'), '#', :class => 'add-commit-keywords') %></td> | |
| 132 | <td class="buttons"> | |
| 133 |         <%= link_to('', '#', | |
| 134 | :class => 'add-commit-keywords icon-only icon-add') %> | |
| 135 | </td> | |
| 137 | 136 | </tr> | 
| 138 | 137 | </tbody> | 
| 139 | 138 | </table> | 
| app/views/timelog/_list.html.erb | ||
|---|---|---|
| 21 | 21 |     <%= raw @query.inline_columns.map {|column| "<td class=\"#{column.css_classes}\">#{column_content(column, entry)}</td>"}.join %> | 
| 22 | 22 | <td class="buttons"> | 
| 23 | 23 | <% if entry.editable_by?(User.current) -%> | 
| 24 |         <%= link_to image_tag('edit.png'), edit_time_entry_path(entry), | |
| 25 | :title => l(:button_edit) %> | |
| 26 |         <%= link_to image_tag('delete.png'), time_entry_path(entry), | |
| 27 |                                              :data => {:confirm => l(:text_are_you_sure)}, | |
| 28 | :method => :delete, | |
| 29 | :title => l(:button_delete) %> | |
| 24 | <%= link_to '', edit_time_entry_path(entry), | |
| 25 | :title => l(:button_edit), | |
| 26 | :class => 'icon icon-edit' %> | |
| 27 | <%= link_to '', time_entry_path(entry), | |
| 28 |                     :data => {:confirm => l(:text_are_you_sure)}, | |
| 29 | :method => :delete, | |
| 30 | :title => l(:button_delete), | |
| 31 | :class => 'icon-only icon-del' %> | |
| 30 | 32 | <% end -%> | 
| 31 | 33 | </td> | 
| 32 | 34 | </tr> | 
| app/views/trackers/fields.html.erb | ||
|---|---|---|
| 9 | 9 | <th></th> | 
| 10 | 10 | <% @trackers.each do |tracker| %> | 
| 11 | 11 | <th> | 
| 12 |           <%= link_to_function('', "toggleCheckboxesBySelector('input.tracker-#{tracker.id}')", | |
| 13 |                                :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}", | |
| 14 | :class => 'icon-only icon-checked') %> | |
| 12 | 15 | <%= tracker.name %> | 
| 13 |           <%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('input.tracker-#{tracker.id}')", | |
| 14 |                                                               :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %> | |
| 15 | 16 | </th> | 
| 16 | 17 | <% end %> | 
| 17 | 18 | </tr> | 
| ... | ... | |
| 26 | 27 | <% Tracker::CORE_FIELDS.each do |field| %> | 
| 27 | 28 |       <tr class="<%= cycle("odd", "even") %>"> | 
| 28 | 29 | <td class="name"> | 
| 29 |           <%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('input.core-field-#{field}')", | |
| 30 |                                                               :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %> | |
| 30 |           <%= link_to_function('', "toggleCheckboxesBySelector('input.core-field-#{field}')", | |
| 31 |                                :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}", | |
| 32 | :class => 'icon-only icon-checked') %> | |
| 31 | 33 |           <%= l("field_#{field}".sub(/_id$/, '')) %> | 
| 32 | 34 | </td> | 
| 33 | 35 | <% @trackers.each do |tracker| %> | 
| ... | ... | |
| 48 | 50 | <% @custom_fields.each do |field| %> | 
| 49 | 51 |         <tr class="<%= cycle("odd", "even") %>"> | 
| 50 | 52 | <td class="name"> | 
| 51 |             <%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('input.custom-field-#{field.id}')", | |
| 52 |                                                                 :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %> | |
| 53 |             <%= link_to_function('', "toggleCheckboxesBySelector('input.custom-field-#{field.id}')", | |
| 54 |                                  :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}", | |
| 55 | :class => 'icon-only icon-checked') %> | |
| 53 | 56 | <%= field.name %> | 
| 54 | 57 | </td> | 
| 55 | 58 | <% @trackers.each do |tracker| %> | 
| app/views/workflows/_form.html.erb | ||
|---|---|---|
| 2 | 2 | <thead> | 
| 3 | 3 | <tr> | 
| 4 | 4 | <th> | 
| 5 |       <%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('table.transitions-#{name} input')", | |
| 6 |                                                           :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %> | |
| 5 |       <%= link_to_function('', "toggleCheckboxesBySelector('table.transitions-#{name} input')", | |
| 6 |                            :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}", | |
| 7 | :class => 'icon-only icon-checked') %> | |
| 7 | 8 | <%=l(:label_current_status)%> | 
| 8 | 9 | </th> | 
| 9 | 10 | <th colspan="<%= @statuses.length %>"><%=l(:label_new_statuses_allowed)%></th> | 
| ... | ... | |
| 12 | 13 | <td></td> | 
| 13 | 14 | <% for new_status in @statuses %> | 
| 14 | 15 | <td style="width:<%= 75 / @statuses.size %>%;"> | 
| 15 |       <%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('table.transitions-#{name} input.new-status-#{new_status.id}')", | |
| 16 |                                                       :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %> | |
| 16 |       <%= link_to_function('', "toggleCheckboxesBySelector('table.transitions-#{name} input.new-status-#{new_status.id}')", | |
| 17 |                            :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}", | |
| 18 | :class => 'icon-only icon-checked') %> | |
| 17 | 19 | <%= new_status.name %> | 
| 18 | 20 | </td> | 
| 19 | 21 | <% end %> | 
| ... | ... | |
| 24 | 26 | <% next if old_status.nil? && name != 'always' %> | 
| 25 | 27 |   <tr class="<%= cycle("odd", "even") %>"> | 
| 26 | 28 | <td class="name"> | 
| 27 |       <%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('table.transitions-#{name} input.old-status-#{old_status.try(:id) || 0}')", | |
| 28 |                                                           :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %> | |
| 29 |       <%= link_to_function('', "toggleCheckboxesBySelector('table.transitions-#{name} input.old-status-#{old_status.try(:id) || 0}')", | |
| 30 |                            :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}", | |
| 31 | :class => 'icon-only icon-checked') %> | |
| 29 | 32 | |
| 30 | 33 |       <%= old_status ? old_status.name : content_tag('em', l(:label_issue_new)) %> | 
| 31 | 34 | </td> | 
| app/views/workflows/edit.html.erb | ||
|---|---|---|
| 16 | 16 | <label><%=l(:label_role)%>: | 
| 17 | 17 | <%= options_for_workflow_select 'role_id[]', Role.sorted.select(&:consider_workflow?), @roles, :id => 'role_id', :class => 'expandable' %> | 
| 18 | 18 | </label> | 
| 19 |   <a href="#" data-expands="#role_id"><%= image_tag 'bullet_toggle_plus.png' %></a> | |
| 19 |   <a href="#" data-expands="#role_id"><span class="toggle-multiselect"></span></a> | |
| 20 | 20 | |
| 21 | 21 | <label><%=l(:label_tracker)%>: | 
| 22 | 22 | <%= options_for_workflow_select 'tracker_id[]', Tracker.sorted, @trackers, :id => 'tracker_id', :class => 'expandable' %> | 
| 23 | 23 | </label> | 
| 24 |   <a href="#" data-expands="#tracker_id"><%= image_tag 'bullet_toggle_plus.png' %></a> | |
| 24 |   <a href="#" data-expands="#tracker_id"><span class="toggle-multiselect"></span></a> | |
| 25 | 25 | |
| 26 | 26 | <%= submit_tag l(:button_edit), :name => nil %> | 
| 27 | 27 | |
| app/views/workflows/index.html.erb | ||
|---|---|---|
| 22 | 22 | <% @roles.each do |role| -%> | 
| 23 | 23 | <% count = @workflow_counts[[tracker.id, role.id]] || 0 %> | 
| 24 | 24 | <td> | 
| 25 |       <%= link_to((count > 0 ? count : image_tag('false.png')), {:action => 'edit', :role_id => role, :tracker_id => tracker}, :title => l(:button_edit)) %> | |
| 25 | <%= link_to((count > 0 ? count : content_tag(:span, nil, :class => 'icon-only icon-not-ok')), | |
| 26 |                   {:action => 'edit', :role_id => role, :tracker_id => tracker}, | |
| 27 | :title => l(:button_edit)) %> | |
| 26 | 28 | </td> | 
| 27 | 29 | <% end -%> | 
| 28 | 30 | </tr> | 
| app/views/workflows/permissions.html.erb | ||
|---|---|---|
| 16 | 16 | <label><%=l(:label_role)%>: | 
| 17 | 17 | <%= options_for_workflow_select 'role_id[]', Role.sorted.select(&:consider_workflow?), @roles, :id => 'role_id', :class => 'expandable' %> | 
| 18 | 18 | </label> | 
| 19 |   <a href="#" data-expands="#role_id"><%= image_tag 'bullet_toggle_plus.png' %></a> | |
| 19 |   <a href="#" data-expands="#role_id"><span class="toggle-multiselect"></a> | |
| 20 | 20 | |
| 21 | 21 | <label><%=l(:label_tracker)%>: | 
| 22 | 22 | <%= options_for_workflow_select 'tracker_id[]', Tracker.sorted, @trackers, :id => 'tracker_id', :class => 'expandable' %> | 
| 23 | 23 | </label> | 
| 24 |   <a href="#" data-expands="#tracker_id"><%= image_tag 'bullet_toggle_plus.png' %></a> | |
| 24 |   <a href="#" data-expands="#tracker_id"><span class="toggle-multiselect"></a> | |
| 25 | 25 | |
| 26 | 26 | <%= submit_tag l(:button_edit), :name => nil %> | 
| 27 | 27 | |
| public/stylesheets/application.css | ||
|---|---|---|
| 124 | 124 | a.collapsible.collapsed {background: url(../images/arrow_collapsed.png) no-repeat -5px 40%;} | 
| 125 | 125 | |
| 126 | 126 | a#toggle-completed-versions {color:#999;} | 
| 127 | ||
| 128 | a.toggle-checkboxes { margin-left: 5px; padding-left: 12px; background: url(../images/toggle_check.png) no-repeat 0% 50%; } | |
| 129 | ||
| 127 | 130 | /***** Tables *****/ | 
| 128 | 131 | table.list { border: 1px solid #e4e4e4;  border-collapse: collapse; width: 100%; margin-bottom: 4px; } | 
| 129 | 132 | table.list th {  background-color:#EEEEEE; padding: 4px; white-space:nowrap; } | 
| ... | ... | |
| 291 | 294 | div.projects h3 { background: url(../images/projects.png) no-repeat 0% 50%; padding-left: 20px; } | 
| 292 | 295 | |
| 293 | 296 | #watchers select {width: 95%; display: block;} | 
| 294 | #watchers a.delete {opacity: 0.4; vertical-align: middle;} | |
| 297 | #watchers a.delete {opacity: 0.4; margin-left: 5px;} | |
| 295 | 298 | #watchers a.delete:hover {opacity: 1;} | 
| 296 | 299 | #watchers img.gravatar {margin: 0 4px 2px 0;} | 
| 297 | 300 | |
| ... | ... | |
| 382 | 385 | .add-filter {width:35%; float:right; text-align: right; vertical-align: top;} | 
| 383 | 386 | |
| 384 | 387 | #issue_is_private_wrap {float:right; margin-right:1em;} | 
| 385 | .toggle-multiselect {background: url(../images/bullet_toggle_plus.png) no-repeat 0% 40%; padding-left:8px; margin-left:0; cursor:pointer;} | |
| 388 | .toggle-multiselect {background: url(../images/bullet_toggle_plus.png) no-repeat 0% 40%; padding-left:16px; margin-left:0; margin-right:5px; cursor:pointer;} | |
| 386 | 389 | .buttons { font-size: 0.9em; margin-bottom: 1.4em; margin-top: 1em; } | 
| 387 | 390 | |
| 388 | 391 | div#issue-changesets {float:right; width:45%; margin-left: 1em; margin-bottom: 1em; background: #fff; padding-left: 1em; font-size: 90%;} | 
| ... | ... | |
| 452 | 455 | div.wiki-page .contextual a:hover {opacity: 1} | 
| 453 | 456 | |
| 454 | 457 | form .attributes select { width: 60%; } | 
| 458 | form .attributes select + a.icon-only { vertical-align: middle; margin-left: 4px; } | |
| 455 | 459 | input#issue_subject, input#document_title { width: 99%; } | 
| 456 | 460 | select#issue_done_ratio { width: 95px; } | 
| 457 | 461 | |
| ... | ... | |
| 1038 | 1042 | padding-top: 2px; | 
| 1039 | 1043 | padding-bottom: 3px; | 
| 1040 | 1044 | } | 
| 1045 | .icon-only { | |
| 1046 | background-position: 0% 50%; | |
| 1047 | background-repeat: no-repeat; | |
| 1048 | padding-left: 16px; | |
| 1049 | } | |
| 1041 | 1050 | |
| 1042 | 1051 | .icon-add { background-image: url(../images/add.png); } | 
| 1043 | 1052 | .icon-edit { background-image: url(../images/edit.png); } | 
| ... | ... | |
| 1060 | 1069 | .icon-time-add  { background-image: url(../images/time_add.png); } | 
| 1061 | 1070 | .icon-stats  { background-image: url(../images/stats.png); } | 
| 1062 | 1071 | .icon-warning  { background-image: url(../images/warning.png); } | 
| 1072 | .icon-error { background-image: url(../images/exclamation.png); } | |
| 1063 | 1073 | .icon-fav  { background-image: url(../images/fav.png); } | 
| 1064 | 1074 | .icon-fav-off  { background-image: url(../images/fav_off.png); } | 
| 1065 | 1075 | .icon-reload  { background-image: url(../images/reload.png); } | 
| 1066 | 1076 | .icon-lock  { background-image: url(../images/locked.png); } | 
| 1067 | 1077 | .icon-unlock  { background-image: url(../images/unlock.png); } | 
| 1068 | .icon-checked  { background-image: url(../images/true.png); } | |
| 1078 | .icon-checked  { background-image: url(../images/toggle_check.png); } | |
| 1069 | 1079 | .icon-details  { background-image: url(../images/zoom_in.png); } | 
| 1070 | 1080 | .icon-report  { background-image: url(../images/report.png); } | 
| 1071 | 1081 | .icon-comment  { background-image: url(../images/comment.png); } | 
| ... | ... | |
| 1074 | 1084 | .icon-issue { background-image: url(../images/ticket.png); } | 
| 1075 | 1085 | .icon-zoom-in { background-image: url(../images/zoom_in.png); } | 
| 1076 | 1086 | .icon-zoom-out { background-image: url(../images/zoom_out.png); } | 
| 1087 | .icon-magnifier { background-image: url(../images/magnifier.png); } | |
| 1077 | 1088 | .icon-passwd { background-image: url(../images/textfield_key.png); } | 
| 1078 | 1089 | .icon-test { background-image: url(../images/bullet_go.png); } | 
| 1090 | .icon-email { background-image: url(../images/email.png); } | |
| 1091 | .icon-email-disabled { background-image: url(../images/email_disabled.png); } | |
| 1079 | 1092 | .icon-email-add { background-image: url(../images/email_add.png); } | 
| 1093 | .icon-move-up { background-image: url(../images/1uparrow.png); } | |
| 1094 | .icon-move-top { background-image: url(../images/2uparrow.png); } | |
| 1095 | .icon-move-down { background-image: url(../images/1downarrow.png); } | |
| 1096 | .icon-move-bottom { background-image: url(../images/2downarrow.png); } | |
| 1097 | .icon-ok { background-image: url(../images/true.png); } | |
| 1098 | .icon-not-ok { background-image: url(../images/false.png); } | |
| 1099 | .icon-link-break { background-image: url(../images/link_break.png); } | |
| 1080 | 1100 | |
| 1081 | 1101 | .icon-file { background-image: url(../images/files/default.png); } | 
| 1082 | 1102 | .icon-file.text-plain { background-image: url(../images/files/text.png); } | 
| test/functional/issues_controller_test.rb | ||
|---|---|---|
| 1424 | 1424 | assert_select 'div#watchers ul' do | 
| 1425 | 1425 | assert_select 'li' do | 
| 1426 | 1426 | assert_select 'a[href="/users/2"]' | 
| 1427 |         assert_select 'a img[alt=Delete]' | |
| 1427 |         assert_select 'a[class*=delete]' | |
| 1428 | 1428 | end | 
| 1429 | 1429 | end | 
| 1430 | 1430 | end | 
| ... | ... | |
| 1441 | 1441 | assert_select 'li' do | 
| 1442 | 1442 | assert_select 'img.gravatar' | 
| 1443 | 1443 | assert_select 'a[href="/users/2"]' | 
| 1444 |         assert_select 'a img[alt=Delete]' | |
| 1444 |         assert_select 'a[class*=delete]' | |
| 1445 | 1445 | end | 
| 1446 | 1446 | end | 
| 1447 | 1447 | end | 
| test/unit/helpers/application_helper_test.rb | ||
|---|---|---|
| 1243 | 1243 | |
| 1244 | 1244 | # heading that contains inline code | 
| 1245 | 1245 |     assert_match Regexp.new('<div class="contextual" title="Edit this section" id="section-4">' + | 
| 1246 |       '<a href="/projects/1/wiki/Test/edit\?section=4"><img src="/images/edit.png(\?\d+)?" alt="Edit" /></a></div>' + | |
| 1246 |       '<a class="icon-only icon-edit" href="/projects/1/wiki/Test/edit\?section=4"></a></div>' + | |
| 1247 | 1247 | '<a name="Subtitle-with-inline-code"></a>' + | 
| 1248 | 1248 | '<h2 >Subtitle with <code>inline code</code><a href="#Subtitle-with-inline-code" class="wiki-anchor">¶</a></h2>'), | 
| 1249 | 1249 | result | 
| 1250 | 1250 | |
| 1251 | 1251 | # last heading | 
| 1252 | 1252 |     assert_match Regexp.new('<div class="contextual" title="Edit this section" id="section-5">' + | 
| 1253 |       '<a href="/projects/1/wiki/Test/edit\?section=5"><img src="/images/edit.png(\?\d+)?" alt="Edit" /></a></div>' + | |
| 1253 |       '<a class="icon-only icon-edit" href="/projects/1/wiki/Test/edit\?section=5"></a></div>' + | |
| 1254 | 1254 | '<a name="Subtitle-after-pre-tag"></a>' + | 
| 1255 | 1255 | '<h2 >Subtitle after pre tag<a href="#Subtitle-after-pre-tag" class="wiki-anchor">¶</a></h2>'), | 
| 1256 | 1256 | result |