@@ -454,18 +454,18 module ApplicationHelper | |||||
454 | end |
|
454 | end | |
455 |
|
455 | |||
456 | def reorder_links(name, url, method = :post) |
|
456 | def reorder_links(name, url, method = :post) | |
457 | link_to(image_tag('2uparrow.png', :alt => l(:label_sort_highest)), |
|
457 | link_to('', | |
458 | url.merge({"#{name}[move_to]" => 'highest'}), |
|
458 | url.merge({"#{name}[move_to]" => 'highest'}), :method => method, | |
459 |
|
|
459 | :title => l(:label_sort_highest), :class => 'icon-only icon-move-top') + | |
460 | link_to(image_tag('1uparrow.png', :alt => l(:label_sort_higher)), |
|
460 | link_to('', | |
461 | url.merge({"#{name}[move_to]" => 'higher'}), |
|
461 | url.merge({"#{name}[move_to]" => 'higher'}), :method => method, | |
462 |
|
|
462 | :title => l(:label_sort_higher), :class => 'icon-only icon-move-up') + | |
463 | link_to(image_tag('1downarrow.png', :alt => l(:label_sort_lower)), |
|
463 | link_to('', | |
464 | url.merge({"#{name}[move_to]" => 'lower'}), |
|
464 | url.merge({"#{name}[move_to]" => 'lower'}), :method => method, | |
465 |
|
|
465 | :title => l(:label_sort_lower), :class => 'icon-only icon-move-down') + | |
466 | link_to(image_tag('2downarrow.png', :alt => l(:label_sort_lowest)), |
|
466 | link_to('', | |
467 | url.merge({"#{name}[move_to]" => 'lowest'}), |
|
467 | url.merge({"#{name}[move_to]" => 'lowest'}), :method => method, | |
468 |
|
|
468 | :title => l(:label_sort_lowest), :class => 'icon-only icon-move-bottom') | |
469 | end |
|
469 | end | |
470 |
|
470 | |||
471 | def breadcrumb(*args) |
|
471 | def breadcrumb(*args) | |
@@ -887,7 +887,8 module ApplicationHelper | |||||
887 | @current_section += 1 |
|
887 | @current_section += 1 | |
888 | if @current_section > 1 |
|
888 | if @current_section > 1 | |
889 | content_tag('div', |
|
889 | content_tag('div', | |
890 |
link_to( |
|
890 | link_to('', options[:edit_section_links].merge(:section => @current_section), | |
|
891 | :class => 'icon-only icon-edit'), | |||
891 | :class => 'contextual', |
|
892 | :class => 'contextual', | |
892 | :title => l(:button_edit_section), |
|
893 | :title => l(:button_edit_section), | |
893 | :id => "section-#{@current_section}") + heading.html_safe |
|
894 | :id => "section-#{@current_section}") + heading.html_safe | |
@@ -1098,9 +1099,10 module ApplicationHelper | |||||
1098 | end |
|
1099 | end | |
1099 |
|
1100 | |||
1100 | def toggle_checkboxes_link(selector) |
|
1101 | def toggle_checkboxes_link(selector) | |
1101 |
link_to_function |
|
1102 | link_to_function '', | |
1102 | "toggleCheckboxesBySelector('#{selector}')", |
|
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 | end |
|
1106 | end | |
1105 |
|
1107 | |||
1106 | def progress_bar(pcts, options={}) |
|
1108 | def progress_bar(pcts, options={}) | |
@@ -1122,7 +1124,7 module ApplicationHelper | |||||
1122 |
|
1124 | |||
1123 | def checked_image(checked=true) |
|
1125 | def checked_image(checked=true) | |
1124 | if checked |
|
1126 | if checked | |
1125 |
@checked_image_tag ||= |
|
1127 | @checked_image_tag ||= content_tag(:span, nil, :class => 'icon-only icon-checked') | |
1126 | end |
|
1128 | end | |
1127 | end |
|
1129 | end | |
1128 |
|
1130 |
@@ -22,17 +22,17 module EmailAddressesHelper | |||||
22 | # Returns a link to enable or disable notifications for the address |
|
22 | # Returns a link to enable or disable notifications for the address | |
23 | def toggle_email_address_notify_link(address) |
|
23 | def toggle_email_address_notify_link(address) | |
24 | if address.notify? |
|
24 | if address.notify? | |
25 |
link_to |
|
25 | link_to '', | |
26 | user_email_address_path(address.user, address, :notify => '0'), |
|
26 | user_email_address_path(address.user, address, :notify => '0'), | |
27 | :method => :put, |
|
27 | :method => :put, :remote => true, | |
28 | :title => l(:label_disable_notifications), |
|
28 | :title => l(:label_disable_notifications), | |
29 | :remote => true |
|
29 | :class => 'icon icon-email' | |
30 | else |
|
30 | else | |
31 | link_to image_tag('email_disabled.png'), |
|
31 | link_to '', | |
32 | user_email_address_path(address.user, address, :notify => '1'), |
|
32 | user_email_address_path(address.user, address, :notify => '1'), | |
33 | :method => :put, |
|
33 | :method => :put, :remote => true, | |
34 | :title => l(:label_enable_notifications), |
|
34 | :title => l(:label_enable_notifications), | |
35 | :remote => true |
|
35 | :class => 'icon icon-email-disabled' | |
36 | end |
|
36 | end | |
37 | end |
|
37 | end | |
38 | end |
|
38 | end |
@@ -442,11 +442,10 module IssuesHelper | |||||
442 | # Link to the attachment if it has not been removed |
|
442 | # Link to the attachment if it has not been removed | |
443 | value = link_to_attachment(atta, :download => true, :only_path => options[:only_path]) |
|
443 | value = link_to_attachment(atta, :download => true, :only_path => options[:only_path]) | |
444 | if options[:only_path] != false && atta.is_text? |
|
444 | if options[:only_path] != false && atta.is_text? | |
445 | value += link_to( |
|
445 | value += link_to('', | |
446 | image_tag('magnifier.png'), |
|
446 | { :controller => 'attachments', :action => 'show', | |
447 | :controller => 'attachments', :action => 'show', |
|
447 | :id => atta, :filename => atta.filename }, | |
448 | :id => atta, :filename => atta.filename |
|
448 | :class => 'icon icon-magnifier') | |
449 | ) |
|
|||
450 | end |
|
449 | end | |
451 | else |
|
450 | else | |
452 | value = content_tag("i", h(value)) if value |
|
451 | value = content_tag("i", h(value)) if value |
@@ -30,14 +30,18 module JournalsHelper | |||||
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))) |
|
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 | links = [] |
|
31 | links = [] | |
32 | if !journal.notes.blank? |
|
32 | if !journal.notes.blank? | |
33 |
links << link_to( |
|
33 | links << link_to('', | |
34 | {:controller => 'journals', :action => 'new', :id => issue, :journal_id => journal}, |
|
34 | {:controller => 'journals', :action => 'new', :id => issue, :journal_id => journal}, | |
35 | :remote => true, |
|
35 | :remote => true, | |
36 | :method => 'post', |
|
36 | :method => 'post', | |
37 |
:title => l(:button_quote) |
|
37 | :title => l(:button_quote), | |
38 | links << link_to_in_place_notes_editor(image_tag('edit.png'), "journal-#{journal.id}-notes", |
|
38 | :class => 'icon-only icon-comment' | |
|
39 | ) if options[:reply_links] | |||
|
40 | links << link_to_in_place_notes_editor('', "journal-#{journal.id}-notes", | |||
39 | { :controller => 'journals', :action => 'edit', :id => journal, :format => 'js' }, |
|
41 | { :controller => 'journals', :action => 'edit', :id => journal, :format => 'js' }, | |
40 |
|
|
42 | :title => l(:button_edit), | |
|
43 | :class => 'icon-only icon-edit' | |||
|
44 | ) if editable | |||
41 | end |
|
45 | end | |
42 | content << content_tag('div', links.join(' ').html_safe, :class => 'contextual') unless links.empty? |
|
46 | content << content_tag('div', links.join(' ').html_safe, :class => 'contextual') unless links.empty? | |
43 | content << textilizable(journal, :notes) |
|
47 | content << textilizable(journal, :notes) |
@@ -58,8 +58,10 module WatchersHelper | |||||
58 | :object_id => object.id, |
|
58 | :object_id => object.id, | |
59 | :user_id => user} |
|
59 | :user_id => user} | |
60 | s << ' ' |
|
60 | s << ' ' | |
61 |
s << link_to( |
|
61 | s << link_to('', url, | |
62 |
:remote => true, :method => 'delete', |
|
62 | :remote => true, :method => 'delete', | |
|
63 | :class => "delete icon-only icon-del", | |||
|
64 | :title => l(:button_delete)) | |||
63 | end |
|
65 | end | |
64 | content << content_tag('li', s, :class => "user-#{user.id}") |
|
66 | content << content_tag('li', s, :class => "user-#{user.id}") | |
65 | end |
|
67 | end |
@@ -6,8 +6,7 | |||||
6 | <% @checklist.each do |label, result| %> |
|
6 | <% @checklist.each do |label, result| %> | |
7 | <tr class="<%= cycle 'odd', 'even' %>"> |
|
7 | <tr class="<%= cycle 'odd', 'even' %>"> | |
8 | <td class="name"><%= label.is_a?(Symbol) ? l(label) : label %></td> |
|
8 | <td class="name"><%= label.is_a?(Symbol) ? l(label) : label %></td> | |
9 | <td class="tick"><%= image_tag((result ? 'true.png' : 'exclamation.png'), |
|
9 | <td class="tick"><span class="icon-only <%= (result ? 'icon-ok' : 'icon-error') %>"></span></td> | |
10 | :style => "vertical-align:bottom;") %></td> |
|
|||
11 | </tr> |
|
10 | </tr> | |
12 | <% end %> |
|
11 | <% end %> | |
13 | </table> |
|
12 | </table> |
@@ -36,7 +36,7 $(document).ready(function(){ | |||||
36 | $("table.plugins td.version span").addClass("unknown"); |
|
36 | $("table.plugins td.version span").addClass("unknown"); | |
37 | $.each(data, function(plugin_id, plugin_data){ |
|
37 | $.each(data, function(plugin_id, plugin_data){ | |
38 | var s = $("tr#plugin-"+plugin_id+" td.version span"); |
|
38 | var s = $("tr#plugin-"+plugin_id+" td.version span"); | |
39 |
s.removeClass("icon- |
|
39 | s.removeClass("icon-ok icon-warning unknown"); | |
40 | if (plugin_data.url) { |
|
40 | if (plugin_data.url) { | |
41 | if (s.parent("a").length>0) { |
|
41 | if (s.parent("a").length>0) { | |
42 | s.unwrap(); |
|
42 | s.unwrap(); | |
@@ -45,7 +45,7 $(document).ready(function(){ | |||||
45 | s.wrap($("<a></a>").attr("href", plugin_data.url).attr("target", "_blank")); |
|
45 | s.wrap($("<a></a>").attr("href", plugin_data.url).attr("target", "_blank")); | |
46 | } |
|
46 | } | |
47 | if (plugin_data.c == s.text()) { |
|
47 | if (plugin_data.c == s.text()) { | |
48 |
s.addClass("icon- |
|
48 | s.addClass("icon-ok"); | |
49 | } else if (plugin_data.c) { |
|
49 | } else if (plugin_data.c) { | |
50 | s.addClass("icon-warning"); |
|
50 | s.addClass("icon-warning"); | |
51 | s.attr("title", "<%= escape_javascript l(:label_latest_compatible_version) %>: "+plugin_data.c); |
|
51 | s.attr("title", "<%= escape_javascript l(:label_latest_compatible_version) %>: "+plugin_data.c); |
@@ -1,24 +1,28 | |||||
1 | <div class="attachments"> |
|
1 | <div class="attachments"> | |
2 | <div class="contextual"> |
|
2 | <div class="contextual"> | |
3 |
<%= link_to |
|
3 | <%= link_to('', | |
4 | container_attachments_edit_path(container), |
|
4 | container_attachments_edit_path(container), | |
5 |
:title => l(:label_edit_attachments) |
|
5 | :title => l(:label_edit_attachments), | |
|
6 | :class => 'icon-only icon-edit' | |||
|
7 | ) if options[:editable] %> | |||
6 | </div> |
|
8 | </div> | |
7 | <% for attachment in attachments %> |
|
9 | <% for attachment in attachments %> | |
8 | <p><%= link_to_attachment attachment, :class => 'icon icon-attachment', :download => true -%> |
|
10 | <p><%= link_to_attachment attachment, :class => 'icon icon-attachment', :download => true -%> | |
9 | <% if attachment.is_text? %> |
|
11 | <% if attachment.is_text? %> | |
10 |
<%= link_to |
|
12 | <%= link_to '', | |
11 | :controller => 'attachments', :action => 'show', |
|
13 | { :controller => 'attachments', :action => 'show', | |
12 |
:id => attachment, :filename => attachment.filename |
|
14 | :id => attachment, :filename => attachment.filename }, | |
|
15 | :class => 'icon icon-magnifier', | |||
|
16 | :title => l(:button_view) %> | |||
13 | <% end %> |
|
17 | <% end %> | |
14 | <%= " - #{attachment.description}" unless attachment.description.blank? %> |
|
18 | <%= " - #{attachment.description}" unless attachment.description.blank? %> | |
15 | <span class="size">(<%= number_to_human_size attachment.filesize %>)</span> |
|
19 | <span class="size">(<%= number_to_human_size attachment.filesize %>)</span> | |
16 | <% if options[:deletable] %> |
|
20 | <% if options[:deletable] %> | |
17 |
<%= link_to |
|
21 | <%= link_to '', attachment_path(attachment), | |
18 |
|
|
22 | :data => {:confirm => l(:text_are_you_sure)}, | |
19 |
|
|
23 | :method => :delete, | |
20 |
|
|
24 | :class => 'delete icon-only icon-del', | |
21 |
|
|
25 | :title => l(:button_delete) %> | |
22 | <% end %> |
|
26 | <% end %> | |
23 | <% if options[:author] %> |
|
27 | <% if options[:author] %> | |
24 | <span class="author"><%= attachment.author %>, <%= format_time(attachment.created_on) %></span> |
|
28 | <span class="author"><%= attachment.author %>, <%= format_time(attachment.created_on) %></span> |
@@ -20,22 +20,26 | |||||
20 |
|
20 | |||
21 | <% if @issue.safe_attribute?('category_id') && @issue.project.issue_categories.any? %> |
|
21 | <% if @issue.safe_attribute?('category_id') && @issue.project.issue_categories.any? %> | |
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') %> |
|
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 | new_project_issue_category_path(@issue.project), |
|
24 | new_project_issue_category_path(@issue.project), | |
25 | :remote => true, |
|
25 | :remote => true, | |
26 | :method => 'get', |
|
26 | :method => 'get', | |
27 | :title => l(:label_issue_category_new), |
|
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 | <% end %> |
|
31 | <% end %> | |
30 |
|
32 | |||
31 | <% if @issue.safe_attribute?('fixed_version_id') && @issue.assignable_versions.any? %> |
|
33 | <% if @issue.safe_attribute?('fixed_version_id') && @issue.assignable_versions.any? %> | |
32 | <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') %> |
|
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 | new_project_version_path(@issue.project), |
|
36 | new_project_version_path(@issue.project), | |
35 | :remote => true, |
|
37 | :remote => true, | |
36 | :method => 'get', |
|
38 | :method => 'get', | |
37 | :title => l(:label_version_new), |
|
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 | </p> |
|
43 | </p> | |
40 | <% end %> |
|
44 | <% end %> | |
41 | </div> |
|
45 | </div> |
@@ -19,12 +19,14 | |||||
19 | <td class="status"><%= other_issue.status.name %></td> |
|
19 | <td class="status"><%= other_issue.status.name %></td> | |
20 | <td class="start_date"><%= format_date(other_issue.start_date) %></td> |
|
20 | <td class="start_date"><%= format_date(other_issue.start_date) %></td> | |
21 | <td class="due_date"><%= format_date(other_issue.due_date) %></td> |
|
21 | <td class="due_date"><%= format_date(other_issue.due_date) %></td> | |
22 |
<td class="buttons"><%= link_to |
|
22 | <td class="buttons"><%= link_to('', | |
23 | relation_path(relation), |
|
23 | relation_path(relation), | |
24 | :remote => true, |
|
24 | :remote => true, | |
25 | :method => :delete, |
|
25 | :method => :delete, | |
26 | :data => {:confirm => l(:text_are_you_sure)}, |
|
26 | :data => {:confirm => l(:text_are_you_sure)}, | |
27 |
:title => l(:label_relation_delete) |
|
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 | </tr> |
|
30 | </tr> | |
29 | <% end %> |
|
31 | <% end %> | |
30 | </table> |
|
32 | </table> |
@@ -39,22 +39,26 | |||||
39 | <div class="message reply" id="<%= "message-#{message.id}" %>"> |
|
39 | <div class="message reply" id="<%= "message-#{message.id}" %>"> | |
40 | <div class="contextual"> |
|
40 | <div class="contextual"> | |
41 | <%= link_to( |
|
41 | <%= link_to( | |
42 | image_tag('comment.png'), |
|
42 | '', | |
43 | {:action => 'quote', :id => message}, |
|
43 | {:action => 'quote', :id => message}, | |
44 | :remote => true, |
|
44 | :remote => true, | |
45 | :method => 'get', |
|
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 | <%= link_to( |
|
49 | <%= link_to( | |
48 |
|
|
50 | '', | |
49 | {:action => 'edit', :id => message}, |
|
51 | {:action => 'edit', :id => message}, | |
50 | :title => l(:button_edit) |
|
52 | :title => l(:button_edit), | |
|
53 | :class => 'icon icon-edit' | |||
51 | ) if message.editable_by?(User.current) %> |
|
54 | ) if message.editable_by?(User.current) %> | |
52 | <%= link_to( |
|
55 | <%= link_to( | |
53 | image_tag('delete.png'), |
|
56 | '', | |
54 | {:action => 'destroy', :id => message}, |
|
57 | {:action => 'destroy', :id => message}, | |
55 | :method => :post, |
|
58 | :method => :post, | |
56 | :data => {:confirm => l(:text_are_you_sure)}, |
|
59 | :data => {:confirm => l(:text_are_you_sure)}, | |
57 | :title => l(:button_delete) |
|
60 | :title => l(:button_delete), | |
|
61 | :class => 'icon icon-del' | |||
58 | ) if message.destroyable_by?(User.current) %> |
|
62 | ) if message.destroyable_by?(User.current) %> | |
59 | </div> |
|
63 | </div> | |
60 | <h4> |
|
64 | <h4> |
@@ -42,12 +42,13 entries_by_day = entries.group_by(&:spent_on) | |||||
42 | <td class="hours"><%= html_hours("%.2f" % entry.hours) %></td> |
|
42 | <td class="hours"><%= html_hours("%.2f" % entry.hours) %></td> | |
43 | <td class="buttons"> |
|
43 | <td class="buttons"> | |
44 | <% if entry.editable_by?(@user) -%> |
|
44 | <% if entry.editable_by?(@user) -%> | |
45 |
<%= link_to |
|
45 | <%= link_to '', {:controller => 'timelog', :action => 'edit', :id => entry}, | |
46 |
|
|
46 | :title => l(:button_edit), | |
47 | <%= link_to image_tag('delete.png'), {:controller => 'timelog', :action => 'destroy', :id => entry}, |
|
47 | :class => 'icon-only icon-edit' %> | |
48 | :data => {:confirm => l(:text_are_you_sure)}, |
|
48 | <%= link_to '', {:controller => 'timelog', :action => 'destroy', :id => entry}, | |
49 | :method => :delete, |
|
49 | :data => {:confirm => l(:text_are_you_sure)}, :method => :delete, | |
50 |
|
|
50 | :title => l(:button_delete), | |
|
51 | :class => 'icon-only icon-del' %> | |||
51 | <% end -%> |
|
52 | <% end -%> | |
52 | </td> |
|
53 | </td> | |
53 | </tr> |
|
54 | </tr> |
@@ -36,8 +36,10 | |||||
36 | <% @comments.each do |comment| %> |
|
36 | <% @comments.each do |comment| %> | |
37 | <% next if comment.new_record? %> |
|
37 | <% next if comment.new_record? %> | |
38 | <div class="contextual"> |
|
38 | <div class="contextual"> | |
39 |
<%= link_to_if_authorized |
|
39 | <%= link_to_if_authorized '', {:controller => 'comments', :action => 'destroy', :id => @news, :comment_id => comment}, | |
40 |
|
|
40 | :data => {:confirm => l(:text_are_you_sure)}, :method => :delete, | |
|
41 | :title => l(:button_delete), | |||
|
42 | :class => 'icon-only icon-del' %> | |||
41 | </div> |
|
43 | </div> | |
42 | <h4><%= avatar(comment.author, :size => "24") %><%= authoring comment.created_on, comment.author %></h4> |
|
44 | <h4><%= avatar(comment.author, :size => "24") %><%= authoring comment.created_on, comment.author %></h4> | |
43 | <%= textilizable(comment.comments) %> |
|
45 | <%= textilizable(comment.comments) %> |
@@ -1,31 +1,52 | |||||
1 | <h2><%=l(:label_report_plural)%></h2> |
|
1 | <h2><%=l(:label_report_plural)%></h2> | |
2 |
|
2 | |||
3 | <div class="splitcontentleft"> |
|
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 | <%= render :partial => 'simple', :locals => { :data => @issues_by_tracker, :field_name => "tracker_id", :rows => @trackers } %> |
|
8 | <%= render :partial => 'simple', :locals => { :data => @issues_by_tracker, :field_name => "tracker_id", :rows => @trackers } %> | |
6 | <br /> |
|
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 | <%= render :partial => 'simple', :locals => { :data => @issues_by_priority, :field_name => "priority_id", :rows => @priorities } %> |
|
14 | <%= render :partial => 'simple', :locals => { :data => @issues_by_priority, :field_name => "priority_id", :rows => @priorities } %> | |
9 | <br /> |
|
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 | <%= render :partial => 'simple', :locals => { :data => @issues_by_assigned_to, :field_name => "assigned_to_id", :rows => @assignees } %> |
|
20 | <%= render :partial => 'simple', :locals => { :data => @issues_by_assigned_to, :field_name => "assigned_to_id", :rows => @assignees } %> | |
12 | <br /> |
|
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 | <%= render :partial => 'simple', :locals => { :data => @issues_by_author, :field_name => "author_id", :rows => @authors } %> |
|
26 | <%= render :partial => 'simple', :locals => { :data => @issues_by_author, :field_name => "author_id", :rows => @authors } %> | |
15 | <br /> |
|
27 | <br /> | |
16 | <%= call_hook(:view_reports_issue_report_split_content_left, :project => @project) %> |
|
28 | <%= call_hook(:view_reports_issue_report_split_content_left, :project => @project) %> | |
17 | </div> |
|
29 | </div> | |
18 |
|
30 | |||
19 | <div class="splitcontentright"> |
|
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 | <%= render :partial => 'simple', :locals => { :data => @issues_by_version, :field_name => "fixed_version_id", :rows => @versions } %> |
|
36 | <%= render :partial => 'simple', :locals => { :data => @issues_by_version, :field_name => "fixed_version_id", :rows => @versions } %> | |
22 | <br /> |
|
37 | <br /> | |
23 | <% if @project.children.any? %> |
|
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 | <%= render :partial => 'simple', :locals => { :data => @issues_by_subproject, :field_name => "project_id", :rows => @subprojects } %> |
|
43 | <%= render :partial => 'simple', :locals => { :data => @issues_by_subproject, :field_name => "project_id", :rows => @subprojects } %> | |
26 | <br /> |
|
44 | <br /> | |
27 | <% end %> |
|
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 | <%= render :partial => 'simple', :locals => { :data => @issues_by_category, :field_name => "category_id", :rows => @categories } %> |
|
50 | <%= render :partial => 'simple', :locals => { :data => @issues_by_category, :field_name => "category_id", :rows => @categories } %> | |
30 | <br /> |
|
51 | <br /> | |
31 | <%= call_hook(:view_reports_issue_report_split_content_right, :project => @project) %> |
|
52 | <%= call_hook(:view_reports_issue_report_split_content_right, :project => @project) %> |
@@ -11,14 +11,16 | |||||
11 | <ul> |
|
11 | <ul> | |
12 | <% @changeset.issues.visible.each do |issue| %> |
|
12 | <% @changeset.issues.visible.each do |issue| %> | |
13 | <li id="<%= "related-issue-#{issue.id}" %>"><%= link_to_issue issue %> |
|
13 | <li id="<%= "related-issue-#{issue.id}" %>"><%= link_to_issue issue %> | |
14 |
<%= link_to( |
|
14 | <%= link_to('', | |
15 | {:controller => 'repositories', :action => 'remove_related_issue', |
|
15 | {:controller => 'repositories', :action => 'remove_related_issue', | |
16 | :id => @project, :repository_id => @repository.identifier_param, |
|
16 | :id => @project, :repository_id => @repository.identifier_param, | |
17 | :rev => @changeset.identifier, :issue_id => issue}, |
|
17 | :rev => @changeset.identifier, :issue_id => issue}, | |
18 | :remote => true, |
|
18 | :remote => true, | |
19 | :method => :delete, |
|
19 | :method => :delete, | |
20 | :data => {:confirm => l(:text_are_you_sure)}, |
|
20 | :data => {:confirm => l(:text_are_you_sure)}, | |
21 |
:title => l(:label_relation_delete) |
|
21 | :title => l(:label_relation_delete), | |
|
22 | :class => 'icon-only icon-link-break' | |||
|
23 | ) if manage_allowed %> | |||
22 | </li> |
|
24 | </li> | |
23 | <% end %> |
|
25 | <% end %> | |
24 | </ul> |
|
26 | </ul> |
@@ -9,9 +9,11 | |||||
9 | <th><%=l(:label_permissions)%></th> |
|
9 | <th><%=l(:label_permissions)%></th> | |
10 | <% @roles.each do |role| %> |
|
10 | <% @roles.each do |role| %> | |
11 | <th> |
|
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 | <%= content_tag(role.builtin? ? 'em' : 'span', role.name) %> |
|
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 | </th> |
|
17 | </th> | |
16 | <% end %> |
|
18 | <% end %> | |
17 | </tr> |
|
19 | </tr> | |
@@ -33,8 +35,10 | |||||
33 | <% perms_by_module[mod].each do |permission| %> |
|
35 | <% perms_by_module[mod].each do |permission| %> | |
34 | <tr class="<%= cycle('odd', 'even') %> permission-<%= permission.name %>"> |
|
36 | <tr class="<%= cycle('odd', 'even') %> permission-<%= permission.name %>"> | |
35 | <td class="name"> |
|
37 | <td class="name"> | |
36 | <%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('.permission-#{permission.name} input')", |
|
38 | <%= link_to_function('', | |
37 | :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %> |
|
39 | "toggleCheckboxesBySelector('.permission-#{permission.name} input')", | |
|
40 | :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}", | |||
|
41 | :class => 'icon-only icon-checked') %> | |||
38 | <%= l_or_humanize(permission.name, :prefix => 'permission_') %> |
|
42 | <%= l_or_humanize(permission.name, :prefix => 'permission_') %> | |
39 | </td> |
|
43 | </td> | |
40 | <% @roles.each do |role| %> |
|
44 | <% @roles.each do |role| %> |
@@ -23,12 +23,7 | |||||
23 | </td> |
|
23 | </td> | |
24 | <td> |
|
24 | <td> | |
25 | <% if enabled %> |
|
25 | <% if enabled %> | |
26 | <%= |
|
26 | <span class="icon <%= (scm_class.scm_available ? 'icon-ok' : 'icon-error') %>"></span> | |
27 | image_tag( |
|
|||
28 | (scm_class.scm_available ? 'true.png' : 'exclamation.png'), |
|
|||
29 | :style => "vertical-align:bottom;" |
|
|||
30 | ) |
|
|||
31 | %> |
|
|||
32 | <%= scm_class.scm_command %> |
|
27 | <%= scm_class.scm_command %> | |
33 | <% end %> |
|
28 | <% end %> | |
34 | </td> |
|
29 | </td> | |
@@ -124,7 +119,8 | |||||
124 | ) %> |
|
119 | ) %> | |
125 | </td> |
|
120 | </td> | |
126 | <td class="buttons"> |
|
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 | </td> |
|
124 | </td> | |
129 | </tr> |
|
125 | </tr> | |
130 | <% end %> |
|
126 | <% end %> | |
@@ -133,7 +129,10 | |||||
133 | <td><em class="info"><%= l(:text_comma_separated) %></em></td> |
|
129 | <td><em class="info"><%= l(:text_comma_separated) %></em></td> | |
134 | <td></td> |
|
130 | <td></td> | |
135 | <td></td> |
|
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 | </tr> |
|
136 | </tr> | |
138 | </tbody> |
|
137 | </tbody> | |
139 | </table> |
|
138 | </table> |
@@ -21,12 +21,14 | |||||
21 | <%= raw @query.inline_columns.map {|column| "<td class=\"#{column.css_classes}\">#{column_content(column, entry)}</td>"}.join %> |
|
21 | <%= raw @query.inline_columns.map {|column| "<td class=\"#{column.css_classes}\">#{column_content(column, entry)}</td>"}.join %> | |
22 | <td class="buttons"> |
|
22 | <td class="buttons"> | |
23 | <% if entry.editable_by?(User.current) -%> |
|
23 | <% if entry.editable_by?(User.current) -%> | |
24 |
<%= link_to |
|
24 | <%= link_to '', edit_time_entry_path(entry), | |
25 |
|
|
25 | :title => l(:button_edit), | |
26 | <%= link_to image_tag('delete.png'), time_entry_path(entry), |
|
26 | :class => 'icon icon-edit' %> | |
27 | :data => {:confirm => l(:text_are_you_sure)}, |
|
27 | <%= link_to '', time_entry_path(entry), | |
28 | :method => :delete, |
|
28 | :data => {:confirm => l(:text_are_you_sure)}, | |
29 | :title => l(:button_delete) %> |
|
29 | :method => :delete, | |
|
30 | :title => l(:button_delete), | |||
|
31 | :class => 'icon-only icon-del' %> | |||
30 | <% end -%> |
|
32 | <% end -%> | |
31 | </td> |
|
33 | </td> | |
32 | </tr> |
|
34 | </tr> |
@@ -9,9 +9,10 | |||||
9 | <th></th> |
|
9 | <th></th> | |
10 | <% @trackers.each do |tracker| %> |
|
10 | <% @trackers.each do |tracker| %> | |
11 | <th> |
|
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 | <%= tracker.name %> |
|
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 | </th> |
|
16 | </th> | |
16 | <% end %> |
|
17 | <% end %> | |
17 | </tr> |
|
18 | </tr> | |
@@ -26,8 +27,9 | |||||
26 | <% Tracker::CORE_FIELDS.each do |field| %> |
|
27 | <% Tracker::CORE_FIELDS.each do |field| %> | |
27 | <tr class="<%= cycle("odd", "even") %>"> |
|
28 | <tr class="<%= cycle("odd", "even") %>"> | |
28 | <td class="name"> |
|
29 | <td class="name"> | |
29 |
<%= link_to_function( |
|
30 | <%= link_to_function('', "toggleCheckboxesBySelector('input.core-field-#{field}')", | |
30 |
|
|
31 | :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}", | |
|
32 | :class => 'icon-only icon-checked') %> | |||
31 | <%= l("field_#{field}".sub(/_id$/, '')) %> |
|
33 | <%= l("field_#{field}".sub(/_id$/, '')) %> | |
32 | </td> |
|
34 | </td> | |
33 | <% @trackers.each do |tracker| %> |
|
35 | <% @trackers.each do |tracker| %> | |
@@ -48,8 +50,9 | |||||
48 | <% @custom_fields.each do |field| %> |
|
50 | <% @custom_fields.each do |field| %> | |
49 | <tr class="<%= cycle("odd", "even") %>"> |
|
51 | <tr class="<%= cycle("odd", "even") %>"> | |
50 | <td class="name"> |
|
52 | <td class="name"> | |
51 |
<%= link_to_function( |
|
53 | <%= link_to_function('', "toggleCheckboxesBySelector('input.custom-field-#{field.id}')", | |
52 |
|
|
54 | :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}", | |
|
55 | :class => 'icon-only icon-checked') %> | |||
53 | <%= field.name %> |
|
56 | <%= field.name %> | |
54 | </td> |
|
57 | </td> | |
55 | <% @trackers.each do |tracker| %> |
|
58 | <% @trackers.each do |tracker| %> |
@@ -2,8 +2,9 | |||||
2 | <thead> |
|
2 | <thead> | |
3 | <tr> |
|
3 | <tr> | |
4 | <th> |
|
4 | <th> | |
5 |
<%= link_to_function( |
|
5 | <%= link_to_function('', "toggleCheckboxesBySelector('table.transitions-#{name} input')", | |
6 |
|
|
6 | :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}", | |
|
7 | :class => 'icon-only icon-checked') %> | |||
7 | <%=l(:label_current_status)%> |
|
8 | <%=l(:label_current_status)%> | |
8 | </th> |
|
9 | </th> | |
9 | <th colspan="<%= @statuses.length %>"><%=l(:label_new_statuses_allowed)%></th> |
|
10 | <th colspan="<%= @statuses.length %>"><%=l(:label_new_statuses_allowed)%></th> | |
@@ -12,8 +13,9 | |||||
12 | <td></td> |
|
13 | <td></td> | |
13 | <% for new_status in @statuses %> |
|
14 | <% for new_status in @statuses %> | |
14 | <td style="width:<%= 75 / @statuses.size %>%;"> |
|
15 | <td style="width:<%= 75 / @statuses.size %>%;"> | |
15 |
<%= link_to_function( |
|
16 | <%= link_to_function('', "toggleCheckboxesBySelector('table.transitions-#{name} input.new-status-#{new_status.id}')", | |
16 |
|
|
17 | :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}", | |
|
18 | :class => 'icon-only icon-checked') %> | |||
17 | <%= new_status.name %> |
|
19 | <%= new_status.name %> | |
18 | </td> |
|
20 | </td> | |
19 | <% end %> |
|
21 | <% end %> | |
@@ -24,8 +26,9 | |||||
24 | <% next if old_status.nil? && name != 'always' %> |
|
26 | <% next if old_status.nil? && name != 'always' %> | |
25 | <tr class="<%= cycle("odd", "even") %>"> |
|
27 | <tr class="<%= cycle("odd", "even") %>"> | |
26 | <td class="name"> |
|
28 | <td class="name"> | |
27 |
<%= link_to_function( |
|
29 | <%= link_to_function('', "toggleCheckboxesBySelector('table.transitions-#{name} input.old-status-#{old_status.try(:id) || 0}')", | |
28 |
|
|
30 | :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}", | |
|
31 | :class => 'icon-only icon-checked') %> | |||
29 |
|
32 | |||
30 | <%= old_status ? old_status.name : content_tag('em', l(:label_issue_new)) %> |
|
33 | <%= old_status ? old_status.name : content_tag('em', l(:label_issue_new)) %> | |
31 | </td> |
|
34 | </td> |
@@ -16,12 +16,12 | |||||
16 | <label><%=l(:label_role)%>: |
|
16 | <label><%=l(:label_role)%>: | |
17 | <%= options_for_workflow_select 'role_id[]', Role.sorted.select(&:consider_workflow?), @roles, :id => 'role_id', :class => 'expandable' %> |
|
17 | <%= options_for_workflow_select 'role_id[]', Role.sorted.select(&:consider_workflow?), @roles, :id => 'role_id', :class => 'expandable' %> | |
18 | </label> |
|
18 | </label> | |
19 |
<a href="#" data-expands="#role_id">< |
|
19 | <a href="#" data-expands="#role_id"><span class="toggle-multiselect"></span></a> | |
20 |
|
20 | |||
21 | <label><%=l(:label_tracker)%>: |
|
21 | <label><%=l(:label_tracker)%>: | |
22 | <%= options_for_workflow_select 'tracker_id[]', Tracker.sorted, @trackers, :id => 'tracker_id', :class => 'expandable' %> |
|
22 | <%= options_for_workflow_select 'tracker_id[]', Tracker.sorted, @trackers, :id => 'tracker_id', :class => 'expandable' %> | |
23 | </label> |
|
23 | </label> | |
24 |
<a href="#" data-expands="#tracker_id">< |
|
24 | <a href="#" data-expands="#tracker_id"><span class="toggle-multiselect"></span></a> | |
25 |
|
25 | |||
26 | <%= submit_tag l(:button_edit), :name => nil %> |
|
26 | <%= submit_tag l(:button_edit), :name => nil %> | |
27 |
|
27 |
@@ -22,7 +22,9 | |||||
22 | <% @roles.each do |role| -%> |
|
22 | <% @roles.each do |role| -%> | |
23 | <% count = @workflow_counts[[tracker.id, role.id]] || 0 %> |
|
23 | <% count = @workflow_counts[[tracker.id, role.id]] || 0 %> | |
24 | <td> |
|
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 | </td> |
|
28 | </td> | |
27 | <% end -%> |
|
29 | <% end -%> | |
28 | </tr> |
|
30 | </tr> |
@@ -16,12 +16,12 | |||||
16 | <label><%=l(:label_role)%>: |
|
16 | <label><%=l(:label_role)%>: | |
17 | <%= options_for_workflow_select 'role_id[]', Role.sorted.select(&:consider_workflow?), @roles, :id => 'role_id', :class => 'expandable' %> |
|
17 | <%= options_for_workflow_select 'role_id[]', Role.sorted.select(&:consider_workflow?), @roles, :id => 'role_id', :class => 'expandable' %> | |
18 | </label> |
|
18 | </label> | |
19 |
<a href="#" data-expands="#role_id">< |
|
19 | <a href="#" data-expands="#role_id"><span class="toggle-multiselect"></a> | |
20 |
|
20 | |||
21 | <label><%=l(:label_tracker)%>: |
|
21 | <label><%=l(:label_tracker)%>: | |
22 | <%= options_for_workflow_select 'tracker_id[]', Tracker.sorted, @trackers, :id => 'tracker_id', :class => 'expandable' %> |
|
22 | <%= options_for_workflow_select 'tracker_id[]', Tracker.sorted, @trackers, :id => 'tracker_id', :class => 'expandable' %> | |
23 | </label> |
|
23 | </label> | |
24 |
<a href="#" data-expands="#tracker_id">< |
|
24 | <a href="#" data-expands="#tracker_id"><span class="toggle-multiselect"></a> | |
25 |
|
25 | |||
26 | <%= submit_tag l(:button_edit), :name => nil %> |
|
26 | <%= submit_tag l(:button_edit), :name => nil %> | |
27 |
|
27 |
@@ -130,6 +130,9 a.collapsible {padding-left: 12px; background: url(../images/arrow_expanded.png) | |||||
130 | a.collapsible.collapsed {background: url(../images/arrow_collapsed.png) no-repeat -5px 40%;} |
|
130 | a.collapsible.collapsed {background: url(../images/arrow_collapsed.png) no-repeat -5px 40%;} | |
131 |
|
131 | |||
132 | a#toggle-completed-versions {color:#999;} |
|
132 | a#toggle-completed-versions {color:#999;} | |
|
133 | ||||
|
134 | a.toggle-checkboxes { margin-left: 5px; padding-left: 12px; background: url(../images/toggle_check.png) no-repeat 0% 50%; } | |||
|
135 | ||||
133 | /***** Tables *****/ |
|
136 | /***** Tables *****/ | |
134 | table.list { border: 1px solid #e4e4e4; border-collapse: collapse; width: 100%; margin-bottom: 4px; } |
|
137 | table.list { border: 1px solid #e4e4e4; border-collapse: collapse; width: 100%; margin-bottom: 4px; } | |
135 | table.list th { background-color:#EEEEEE; padding: 4px; white-space:nowrap; } |
|
138 | table.list th { background-color:#EEEEEE; padding: 4px; white-space:nowrap; } | |
@@ -297,7 +300,7 div.news h3 { background: url(../images/news.png) no-repeat 0% 50%; padding-left | |||||
297 | div.projects h3 { background: url(../images/projects.png) no-repeat 0% 50%; padding-left: 20px; } |
|
300 | div.projects h3 { background: url(../images/projects.png) no-repeat 0% 50%; padding-left: 20px; } | |
298 |
|
301 | |||
299 | #watchers select {width: 95%; display: block;} |
|
302 | #watchers select {width: 95%; display: block;} | |
300 |
#watchers a.delete {opacity: 0.4; |
|
303 | #watchers a.delete {opacity: 0.4; margin-left: 5px;} | |
301 | #watchers a.delete:hover {opacity: 1;} |
|
304 | #watchers a.delete:hover {opacity: 1;} | |
302 | #watchers img.gravatar {margin: 0 4px 2px 0;} |
|
305 | #watchers img.gravatar {margin: 0 4px 2px 0;} | |
303 |
|
306 | |||
@@ -391,7 +394,7 fieldset#filters td.values input {height:1em;} | |||||
391 | .add-filter {width:35%; float:right; text-align: right; vertical-align: top;} |
|
394 | .add-filter {width:35%; float:right; text-align: right; vertical-align: top;} | |
392 |
|
395 | |||
393 | #issue_is_private_wrap {float:right; margin-right:1em;} |
|
396 | #issue_is_private_wrap {float:right; margin-right:1em;} | |
394 |
.toggle-multiselect {background: url(../images/bullet_toggle_plus.png) no-repeat 0% 40%; padding-left: |
|
397 | .toggle-multiselect {background: url(../images/bullet_toggle_plus.png) no-repeat 0% 40%; padding-left:16px; margin-left:0; margin-right:5px; cursor:pointer;} | |
395 | .buttons { font-size: 0.9em; margin-bottom: 1.4em; margin-top: 1em; } |
|
398 | .buttons { font-size: 0.9em; margin-bottom: 1.4em; margin-top: 1em; } | |
396 |
|
399 | |||
397 | div#issue-changesets {float:right; width:45%; margin-left: 1em; margin-bottom: 1em; background: #fff; padding-left: 1em; font-size: 90%;} |
|
400 | div#issue-changesets {float:right; width:45%; margin-left: 1em; margin-bottom: 1em; background: #fff; padding-left: 1em; font-size: 90%;} | |
@@ -461,6 +464,7 div.wiki-page .contextual a {opacity: 0.4} | |||||
461 | div.wiki-page .contextual a:hover {opacity: 1} |
|
464 | div.wiki-page .contextual a:hover {opacity: 1} | |
462 |
|
465 | |||
463 | form .attributes select { width: 60%; } |
|
466 | form .attributes select { width: 60%; } | |
|
467 | form .attributes select + a.icon-only { vertical-align: middle; margin-left: 4px; } | |||
464 | input#issue_subject, input#document_title { width: 99%; } |
|
468 | input#issue_subject, input#document_title { width: 99%; } | |
465 | select#issue_done_ratio { width: 95px; } |
|
469 | select#issue_done_ratio { width: 95px; } | |
466 |
|
470 | |||
@@ -1089,6 +1093,11 a.close-icon:hover {background-image:url('../images/close_hl.png');} | |||||
1089 | padding-top: 2px; |
|
1093 | padding-top: 2px; | |
1090 | padding-bottom: 3px; |
|
1094 | padding-bottom: 3px; | |
1091 | } |
|
1095 | } | |
|
1096 | .icon-only { | |||
|
1097 | background-position: 0% 50%; | |||
|
1098 | background-repeat: no-repeat; | |||
|
1099 | padding-left: 16px; | |||
|
1100 | } | |||
1092 |
|
1101 | |||
1093 | .icon-add { background-image: url(../images/add.png); } |
|
1102 | .icon-add { background-image: url(../images/add.png); } | |
1094 | .icon-edit { background-image: url(../images/edit.png); } |
|
1103 | .icon-edit { background-image: url(../images/edit.png); } | |
@@ -1111,12 +1120,13 a.close-icon:hover {background-image:url('../images/close_hl.png');} | |||||
1111 | .icon-time-add { background-image: url(../images/time_add.png); } |
|
1120 | .icon-time-add { background-image: url(../images/time_add.png); } | |
1112 | .icon-stats { background-image: url(../images/stats.png); } |
|
1121 | .icon-stats { background-image: url(../images/stats.png); } | |
1113 | .icon-warning { background-image: url(../images/warning.png); } |
|
1122 | .icon-warning { background-image: url(../images/warning.png); } | |
|
1123 | .icon-error { background-image: url(../images/exclamation.png); } | |||
1114 | .icon-fav { background-image: url(../images/fav.png); } |
|
1124 | .icon-fav { background-image: url(../images/fav.png); } | |
1115 | .icon-fav-off { background-image: url(../images/fav_off.png); } |
|
1125 | .icon-fav-off { background-image: url(../images/fav_off.png); } | |
1116 | .icon-reload { background-image: url(../images/reload.png); } |
|
1126 | .icon-reload { background-image: url(../images/reload.png); } | |
1117 | .icon-lock { background-image: url(../images/locked.png); } |
|
1127 | .icon-lock { background-image: url(../images/locked.png); } | |
1118 | .icon-unlock { background-image: url(../images/unlock.png); } |
|
1128 | .icon-unlock { background-image: url(../images/unlock.png); } | |
1119 |
.icon-checked { background-image: url(../images/t |
|
1129 | .icon-checked { background-image: url(../images/toggle_check.png); } | |
1120 | .icon-details { background-image: url(../images/zoom_in.png); } |
|
1130 | .icon-details { background-image: url(../images/zoom_in.png); } | |
1121 | .icon-report { background-image: url(../images/report.png); } |
|
1131 | .icon-report { background-image: url(../images/report.png); } | |
1122 | .icon-comment { background-image: url(../images/comment.png); } |
|
1132 | .icon-comment { background-image: url(../images/comment.png); } | |
@@ -1125,9 +1135,19 a.close-icon:hover {background-image:url('../images/close_hl.png');} | |||||
1125 | .icon-issue { background-image: url(../images/ticket.png); } |
|
1135 | .icon-issue { background-image: url(../images/ticket.png); } | |
1126 | .icon-zoom-in { background-image: url(../images/zoom_in.png); } |
|
1136 | .icon-zoom-in { background-image: url(../images/zoom_in.png); } | |
1127 | .icon-zoom-out { background-image: url(../images/zoom_out.png); } |
|
1137 | .icon-zoom-out { background-image: url(../images/zoom_out.png); } | |
|
1138 | .icon-magnifier { background-image: url(../images/magnifier.png); } | |||
1128 | .icon-passwd { background-image: url(../images/textfield_key.png); } |
|
1139 | .icon-passwd { background-image: url(../images/textfield_key.png); } | |
1129 | .icon-test { background-image: url(../images/bullet_go.png); } |
|
1140 | .icon-test { background-image: url(../images/bullet_go.png); } | |
|
1141 | .icon-email { background-image: url(../images/email.png); } | |||
|
1142 | .icon-email-disabled { background-image: url(../images/email_disabled.png); } | |||
1130 | .icon-email-add { background-image: url(../images/email_add.png); } |
|
1143 | .icon-email-add { background-image: url(../images/email_add.png); } | |
|
1144 | .icon-move-up { background-image: url(../images/1uparrow.png); } | |||
|
1145 | .icon-move-top { background-image: url(../images/2uparrow.png); } | |||
|
1146 | .icon-move-down { background-image: url(../images/1downarrow.png); } | |||
|
1147 | .icon-move-bottom { background-image: url(../images/2downarrow.png); } | |||
|
1148 | .icon-ok { background-image: url(../images/true.png); } | |||
|
1149 | .icon-not-ok { background-image: url(../images/false.png); } | |||
|
1150 | .icon-link-break { background-image: url(../images/link_break.png); } | |||
1131 |
|
1151 | |||
1132 | .icon-file { background-image: url(../images/files/default.png); } |
|
1152 | .icon-file { background-image: url(../images/files/default.png); } | |
1133 | .icon-file.text-plain { background-image: url(../images/files/text.png); } |
|
1153 | .icon-file.text-plain { background-image: url(../images/files/text.png); } |
@@ -1424,7 +1424,7 class IssuesControllerTest < ActionController::TestCase | |||||
1424 | assert_select 'div#watchers ul' do |
|
1424 | assert_select 'div#watchers ul' do | |
1425 | assert_select 'li' do |
|
1425 | assert_select 'li' do | |
1426 | assert_select 'a[href="/users/2"]' |
|
1426 | assert_select 'a[href="/users/2"]' | |
1427 |
assert_select 'a |
|
1427 | assert_select 'a[class*=delete]' | |
1428 | end |
|
1428 | end | |
1429 | end |
|
1429 | end | |
1430 | end |
|
1430 | end | |
@@ -1441,7 +1441,7 class IssuesControllerTest < ActionController::TestCase | |||||
1441 | assert_select 'li' do |
|
1441 | assert_select 'li' do | |
1442 | assert_select 'img.gravatar' |
|
1442 | assert_select 'img.gravatar' | |
1443 | assert_select 'a[href="/users/2"]' |
|
1443 | assert_select 'a[href="/users/2"]' | |
1444 |
assert_select 'a |
|
1444 | assert_select 'a[class*=delete]' | |
1445 | end |
|
1445 | end | |
1446 | end |
|
1446 | end | |
1447 | end |
|
1447 | end |
@@ -1243,14 +1243,14 RAW | |||||
1243 |
|
1243 | |||
1244 | # heading that contains inline code |
|
1244 | # heading that contains inline code | |
1245 | assert_match Regexp.new('<div class="contextual" title="Edit this section" id="section-4">' + |
|
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" |
|
1246 | '<a class="icon-only icon-edit" href="/projects/1/wiki/Test/edit\?section=4"></a></div>' + | |
1247 | '<a name="Subtitle-with-inline-code"></a>' + |
|
1247 | '<a name="Subtitle-with-inline-code"></a>' + | |
1248 | '<h2 >Subtitle with <code>inline code</code><a href="#Subtitle-with-inline-code" class="wiki-anchor">¶</a></h2>'), |
|
1248 | '<h2 >Subtitle with <code>inline code</code><a href="#Subtitle-with-inline-code" class="wiki-anchor">¶</a></h2>'), | |
1249 | result |
|
1249 | result | |
1250 |
|
1250 | |||
1251 | # last heading |
|
1251 | # last heading | |
1252 | assert_match Regexp.new('<div class="contextual" title="Edit this section" id="section-5">' + |
|
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" |
|
1253 | '<a class="icon-only icon-edit" href="/projects/1/wiki/Test/edit\?section=5"></a></div>' + | |
1254 | '<a name="Subtitle-after-pre-tag"></a>' + |
|
1254 | '<a name="Subtitle-after-pre-tag"></a>' + | |
1255 | '<h2 >Subtitle after pre tag<a href="#Subtitle-after-pre-tag" class="wiki-anchor">¶</a></h2>'), |
|
1255 | '<h2 >Subtitle after pre tag<a href="#Subtitle-after-pre-tag" class="wiki-anchor">¶</a></h2>'), | |
1256 | result |
|
1256 | result |
General Comments 0
You need to be logged in to leave comments.
Login now