Revision 1298:4f746d8966dd app/views

View differences:

app/views/account/logout.html.erb
1
<%= form_tag(signout_path) do %>
2
  <p><%= submit_tag l(:label_logout) %></p>
3
<% end %>
app/views/activities/index.html.erb
15 15
<% @events_by_day.keys.sort.reverse.each do |day| %>
16 16
<h3><%= format_activity_day(day) %></h3>
17 17
<dl>
18
<% @events_by_day[day].sort {|x,y| y.event_datetime <=> x.event_datetime }.each do |e| -%>
19
  <dt class="<%= e.event_type %>  <%= User.current.logged? && e.respond_to?(:event_author) && User.current == e.event_author ? 'me' : nil %>">
18
<% sort_activity_events(@events_by_day[day]).each do |e, in_group| -%>
19
  <dt class="<%= e.event_type %> <%= "grouped" if in_group %> <%= User.current.logged? && e.respond_to?(:event_author) && User.current == e.event_author ? 'me' : nil %>">
20 20
  <%= avatar(e.event_author, :size => "24") if e.respond_to?(:event_author) %>
21 21
  <span class="time"><%= format_time(e.event_datetime, false) %></span>
22 22
  <%= content_tag('span', h(e.project), :class => 'project') if @project.nil? || @project != e.project %>
23
  <%= link_to format_activity_title(e.event_title), e.event_url %></dt>
24
  <dd><span class="description"><%= format_activity_description(e.event_description) %></span>
23
  <%= link_to format_activity_title(e.event_title), e.event_url %>
24
  </dt>
25
  <dd class="<%= "grouped" if in_group %>"><span class="description"><%= format_activity_description(e.event_description) %></span>
25 26
  <span class="author"><%= link_to_user(e.event_author) if e.respond_to?(:event_author) %></span></dd>
26 27
<% end -%>
27 28
</dl>
......
54 55
<h3><%= l(:label_activity) %></h3>
55 56
<p><% @activity.event_types.each do |t| %>
56 57
<%= check_box_tag "show_#{t}", 1, @activity.scope.include?(t) %>
57
<label for="show_<%=t%>"><%= link_to(l("label_#{t.singularize}_plural"), {"show_#{t}" => 1, :user_id => params[:user_id]})%></label>
58
<label for="show_<%=t%>"><%= link_to(l("label_#{t.singularize}_plural"), {"show_#{t}" => 1, :user_id => params[:user_id], :from => params[:from]})%></label>
58 59
<br />
59 60
<% end %></p>
60 61
<% if @project && @project.descendants.active.any? %>
app/views/admin/plugins.html.erb
3 3
<% if @plugins.any? %>
4 4
<table class="list plugins">
5 5
    <% @plugins.each do |plugin| %>
6
        <tr class="<%= cycle('odd', 'even') %>">
6
        <tr id="plugin-<%= plugin.id %>" class="<%= cycle('odd', 'even') %>">
7 7
        <td><span class="name"><%=h plugin.name %></span>
8 8
            <%= content_tag('span', h(plugin.description), :class => 'description') unless plugin.description.blank? %>
9 9
            <%= content_tag('span', link_to(h(plugin.url), plugin.url), :class => 'url') unless plugin.url.blank? %>
10 10
        </td>
11 11
        <td class="author"><%= plugin.author_url.blank? ? h(plugin.author) : link_to(h(plugin.author), plugin.author_url) %></td>
12 12
        <td class="version"><%=h plugin.version %></td>
13
        <td class="configure"><%= link_to(l(:button_configure), :controller => 'settings', :action => 'plugin', :id => plugin.id) if plugin.configurable? %></td>
13
        <td class="configure"><%= link_to(l(:button_configure), plugin_settings_path(plugin)) if plugin.configurable? %></td>
14 14
        </tr>
15 15
    <% end %>
16 16
</table>
app/views/admin/projects.html.erb
27 27
  <tbody>
28 28
<% project_tree(@projects) do |project, level| %>
29 29
  <tr class="<%= cycle("odd", "even") %> <%= project.css_classes %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>">
30
  <td class="name"><span><%= link_to_project(project, {:action => (project.active? ? 'settings' : 'show')}, :title => project.short_description) %></span></td>
30
  <td class="name"><span><%= link_to_project_settings(project, {}, :title => project.short_description) %></span></td>
31 31
  <td align="center"><%= checked_image project.is_public? %></td>
32 32
  <td align="center"><%= format_date(project.created_on) %></td>
33 33
  <td class="buttons">
app/views/attachments/_form.html.erb
1
<span id="attachments_fields">
1 2
<% if defined?(container) && container && container.saved_attachments %>
2 3
  <% container.saved_attachments.each_with_index do |attachment, i| %>
3
    <span class="icon icon-attachment" style="display:block; line-height:1.5em;">
4
      <%= h(attachment.filename) %> (<%= number_to_human_size(attachment.filesize) %>)
5
      <%= hidden_field_tag "attachments[p#{i}][token]", "#{attachment.id}.#{attachment.digest}" %>
4
    <span id="attachments_p<%= i %>">
5
      <%= text_field_tag("attachments[p#{i}][filename]", attachment.filename, :class => 'filename') +
6
          text_field_tag("attachments[p#{i}][description]", attachment.description, :maxlength => 255, :placeholder => l(:label_optional_description), :class => 'description') +
7
          link_to('&nbsp;'.html_safe, attachment_path(attachment, :attachment_id => "p#{i}", :format => 'js'), :method => 'delete', :remote => true, :class => 'remove-upload') %>
8
      <%= hidden_field_tag "attachments[p#{i}][token]", "#{attachment.token}" %>
6 9
    </span>
7 10
  <% end %>
8 11
<% end %>
9
<span id="attachments_fields">
10
  <span>
11
    <%= file_field_tag 'attachments[1][file]', :id => nil, :class => 'file',
12
          :onchange => "checkFileSize(this, #{Setting.attachment_max_size.to_i.kilobytes}, '#{escape_javascript(l(:error_attachment_too_big, :max_size => number_to_human_size(Setting.attachment_max_size.to_i.kilobytes)))}');"  -%>
13
    <nobr><%= text_field_tag 'attachments[1][description]', '', :id => nil, :class => 'description', :maxlength => 255, :placeholder => l(:label_optional_description) %>
14
    <%= link_to_function(image_tag('delete.png'), 'removeFileField(this)', :title => (l(:button_delete))) %></nobr>
15
  </span>
12
</span>
13
<span class="add_attachment">
14
<%= file_field_tag 'attachments[dummy][file]',
15
      :id => nil,
16
      :class => 'file_selector',
17
      :multiple => true,
18
      :onchange => 'addInputFiles(this);',
19
      :data => {
20
        :max_file_size => Setting.attachment_max_size.to_i.kilobytes,
21
        :max_file_size_message => l(:error_attachment_too_big, :max_size => number_to_human_size(Setting.attachment_max_size.to_i.kilobytes)),
22
        :max_concurrent_uploads => Redmine::Configuration['max_concurrent_ajax_uploads'].to_i,
23
        :upload_path => uploads_path(:format => 'js'),
24
        :description_placeholder => l(:label_optional_description)
25
      } %>
26
(<%= l(:label_max_size) %>: <%= number_to_human_size(Setting.attachment_max_size.to_i.kilobytes) %>)
16 27
</span>
17 28

  
18
<span class="add_attachment"><%= link_to l(:label_add_another_file), '#', :onclick => 'addFileField(); return false;', :class => 'add_attachment' %>
19
(<%= l(:label_max_size) %>: <%= number_to_human_size(Setting.attachment_max_size.to_i.kilobytes) %>)</span>
29
<% content_for :header_tags do %>
30
  <%= javascript_include_tag 'attachments' %>
31
<% end %>
app/views/attachments/destroy.js.erb
1
$('#attachments_<%= j params[:attachment_id] %>').remove();
app/views/attachments/upload.js.erb
1
var fileSpan = $('#attachments_<%= j params[:attachment_id] %>');
2
$('<input>', { type: 'hidden', name: 'attachments[<%= j params[:attachment_id] %>][token]' } ).val('<%= j @attachment.token %>').appendTo(fileSpan);
3
fileSpan.find('a.remove-upload')
4
  .attr({
5
    "data-remote": true,
6
    "data-method": 'delete',
7
    href: '<%= j attachment_path(@attachment, :attachment_id => params[:attachment_id], :format => 'js') %>'
8
  })
9
  .off('click');
app/views/auth_sources/_form.html.erb
1 1
<%= error_messages_for 'auth_source' %>
2 2

  
3
<div class="box">
4
<!--[form:auth_source]-->
5
<p><label for="auth_source_name"><%=l(:field_name)%> <span class="required">*</span></label>
6
<%= text_field 'auth_source', 'name'  %></p>
7

  
8
<p><label for="auth_source_onthefly_register"><%=l(:field_onthefly)%></label>
9
<%= check_box 'auth_source', 'onthefly_register' %></p>
3
<div class="box tabular">
4
  <p><%= f.text_field :name, :required => true %></p>
5
  <p><%= f.check_box :onthefly_register, :label => :field_onthefly %></p>
10 6
</div>
11

  
12
<!--[eoform:auth_source]-->
13

  
app/views/auth_sources/_form_auth_source_ldap.html.erb
1 1
<%= error_messages_for 'auth_source' %>
2 2

  
3
<div class="box">
4
<!--[form:auth_source]-->
5
<p><label for="auth_source_name"><%=l(:field_name)%> <span class="required">*</span></label>
6
<%= text_field 'auth_source', 'name'  %></p>
7

  
8
<p><label for="auth_source_host"><%=l(:field_host)%> <span class="required">*</span></label>
9
<%= text_field 'auth_source', 'host'  %></p>
10

  
11
<p><label for="auth_source_port"><%=l(:field_port)%> <span class="required">*</span></label>
12
<%= text_field 'auth_source', 'port', :size => 6 %> <%= check_box 'auth_source', 'tls'  %> LDAPS</p>
13

  
14
<p><label for="auth_source_account"><%=l(:field_account)%></label>
15
<%= text_field 'auth_source', 'account'  %></p>
16

  
17
<p><label for="auth_source_account_password"><%=l(:field_password)%></label>
18
<%= password_field 'auth_source', 'account_password', :name => 'ignore',
19
                                           :value => ((@auth_source.new_record? || @auth_source.account_password.blank?) ? '' : ('x'*15)),
20
                                           :onfocus => "this.value=''; this.name='auth_source[account_password]';",
21
                                           :onchange => "this.name='auth_source[account_password]';" %></p>
22

  
23
<p><label for="auth_source_base_dn"><%=l(:field_base_dn)%> <span class="required">*</span></label>
24
<%= text_field 'auth_source', 'base_dn', :size => 60 %></p>
25

  
26
<p><label for="auth_source_custom_filter"><%=l(:field_auth_source_ldap_filter)%></label>
27
<%= text_field 'auth_source', 'filter', :size => 60 %></p>
28

  
29
<p><label for="auth_source_timeout"><%=l(:field_timeout)%></label>
30
<%= text_field 'auth_source', 'timeout', :size => 4 %></p>
31

  
32
<p><label for="auth_source_onthefly_register"><%=l(:field_onthefly)%></label>
33
<%= check_box 'auth_source', 'onthefly_register' %></p>
3
<div class="box tabular">
4
  <p><%= f.text_field :name, :required => true %></p>
5
  <p><%= f.text_field :host, :required => true %></p>
6
  <p><%= f.text_field :port, :required => true, :size => 6 %> <%= f.check_box :tls, :no_label => true %> LDAPS</p>
7
  <p><%= f.text_field :account %></p>
8
  <p><%= f.password_field :account_password, :label => :field_password,
9
           :name => 'dummy_password',
10
           :value => ((@auth_source.new_record? || @auth_source.account_password.blank?) ? '' : ('x'*15)),
11
           :onfocus => "this.value=''; this.name='auth_source[account_password]';",
12
           :onchange => "this.name='auth_source[account_password]';" %></p>
13
  <p><%= f.text_field :base_dn, :required => true, :size => 60 %></p>
14
  <p><%= f.text_field :filter, :size => 60, :label => :field_auth_source_ldap_filter %></p>
15
  <p><%= f.text_field :timeout, :size => 4 %></p>
16
  <p><%= f.check_box :onthefly_register, :label => :field_onthefly %></p>
34 17
</div>
35 18

  
36
<fieldset class="box"><legend><%=l(:label_attribute_plural)%></legend>
37
<p><label for="auth_source_attr_login"><%=l(:field_login)%> <span class="required">*</span></label>
38
<%= text_field 'auth_source', 'attr_login', :size => 20  %></p>
39

  
40
<p><label for="auth_source_attr_firstname"><%=l(:field_firstname)%></label>
41
<%= text_field 'auth_source', 'attr_firstname', :size => 20  %></p>
42

  
43
<p><label for="auth_source_attr_lastname"><%=l(:field_lastname)%></label>
44
<%= text_field 'auth_source', 'attr_lastname', :size => 20  %></p>
45

  
46
<p><label for="auth_source_attr_mail"><%=l(:field_mail)%></label>
47
<%= text_field 'auth_source', 'attr_mail', :size => 20  %></p>
19
<fieldset class="box tabular"><legend><%=l(:label_attribute_plural)%></legend>
20
  <p><%= f.text_field :attr_login, :required => true, :size => 20 %></p>
21
  <p><%= f.text_field :attr_firstname, :size => 20 %></p>
22
  <p><%= f.text_field :attr_lastname, :size => 20 %></p>
23
  <p><%= f.text_field :attr_mail, :size => 20 %></p>
48 24
</fieldset>
49
<!--[eoform:auth_source]-->
50

  
app/views/auth_sources/edit.html.erb
1 1
<h2><%=l(:label_auth_source)%> (<%= h(@auth_source.auth_method_name) %>)</h2>
2 2

  
3
<%= form_tag({:action => 'update', :id => @auth_source}, :method => :put, :class => "tabular") do %>
4
  <%= render :partial => auth_source_partial_name(@auth_source) %>
3
<%= labelled_form_for @auth_source, :as => :auth_source, :url => auth_source_path(@auth_source), :html => {:id => 'auth_source_form'} do |f| %>
4
  <%= render :partial => auth_source_partial_name(@auth_source), :locals => { :f => f } %>
5 5
  <%= submit_tag l(:button_save) %>
6 6
<% end %>
app/views/auth_sources/index.html.erb
20 20
    <td align="center"><%= h source.host %></td>
21 21
    <td align="center"><%= h source.users.count %></td>
22 22
    <td class="buttons">
23
      <%= link_to l(:button_test), {:action => 'test_connection', :id => source}, :class => 'icon icon-test' %>
23
      <%= link_to l(:button_test), try_connection_auth_source_path(source), :class => 'icon icon-test' %>
24 24
      <%= delete_link auth_source_path(source) %>
25 25
    </td>
26 26
  </tr>
app/views/auth_sources/new.html.erb
1 1
<h2><%=l(:label_auth_source_new)%> (<%= h(@auth_source.auth_method_name) %>)</h2>
2 2

  
3
<%= form_tag({:action => 'create'}, :class => "tabular") do %>
3
<%= labelled_form_for @auth_source, :as => :auth_source, :url => auth_sources_path, :html => {:id => 'auth_source_form'} do |f| %>
4 4
  <%= hidden_field_tag 'type', @auth_source.type %>
5
  <%= render :partial => auth_source_partial_name(@auth_source) %>
5
  <%= render :partial => auth_source_partial_name(@auth_source), :locals => { :f => f } %>
6 6
  <%= submit_tag l(:button_create) %>
7 7
<% end %>
app/views/boards/index.html.erb
11 11
<% Board.board_tree(@boards) do |board, level| %>
12 12
  <tr class="<%= cycle 'odd', 'even' %>">
13 13
    <td style="padding-left: <%= level * 18 %>px;">
14
      <%= link_to h(board.name), {:action => 'show', :id => board}, :class => "board"  %><br />
14
      <%= link_to h(board.name), project_board_path(board.project, board), :class => "board" %><br />
15 15
      <%=h board.description %>
16 16
    </td>
17 17
    <td class="topic-count"><%= board.topics_count %></td>
app/views/boards/show.html.erb
1 1
<%= board_breadcrumb(@board) %>
2 2

  
3 3
<div class="contextual">
4
<%= link_to_if_authorized l(:label_message_new),
5
                          {:controller => 'messages', :action => 'new', :board_id => @board},
6
                          :class => 'icon icon-add',
7
                          :onclick => 'showAndScrollTo("add-message", "message_subject"); return false;' %>
8
<%= watcher_tag(@board, User.current) %>
4
<%= link_to l(:label_message_new),
5
            new_board_message_path(@board),
6
            :class => 'icon icon-add',
7
            :onclick => 'showAndScrollTo("add-message", "message_subject"); return false;' if User.current.allowed_to?(:add_messages, @board.project) %>
8
<%= watcher_link(@board, User.current) %>
9 9
</div>
10 10

  
11 11
<div id="add-message" style="display:none;">
12
<% if authorize_for('messages', 'new') %>
13
<h2><%= link_to h(@board.name), :controller => 'boards', :action => 'show', :project_id => @project, :id => @board %> &#187; <%= l(:label_message_new) %></h2>
14
<%= form_for @message, :url => {:controller => 'messages', :action => 'new', :board_id => @board}, :html => {:multipart => true, :id => 'message-form'} do |f| %>
12
<% if User.current.allowed_to?(:add_messages, @board.project) %>
13
<h2><%= link_to h(@board.name), project_board_path(@project, @board) %> &#187; <%= l(:label_message_new) %></h2>
14
<%= form_for @message, :url => new_board_message_path(@board), :html => {:multipart => true, :id => 'message-form'} do |f| %>
15 15
  <%= render :partial => 'messages/form', :locals => {:f => f} %>
16 16
  <p><%= submit_tag l(:button_create) %>
17
  <%= preview_link({:controller => 'messages', :action => 'preview', :board_id => @board}, 'message-form') %> |
17
  <%= preview_link(preview_board_message_path(@board), 'message-form') %> |
18 18
  <%= link_to l(:button_cancel), "#", :onclick => '$("#add-message").hide(); return false;' %></p>
19 19
<% end %>
20 20
<div id="preview" class="wiki"></div>
......
36 36
  <tbody>
37 37
  <% @topics.each do |topic| %>
38 38
    <tr class="message <%= cycle 'odd', 'even' %> <%= topic.sticky? ? 'sticky' : '' %> <%= topic.locked? ? 'locked' : '' %>">
39
      <td class="subject"><%= link_to h(topic.subject), { :controller => 'messages', :action => 'show', :board_id => @board, :id => topic } %></td>
39
      <td class="subject"><%= link_to h(topic.subject), board_message_path(@board, topic) %></td>
40 40
      <td class="author"><%= link_to_user(topic.author) %></td>
41 41
      <td class="created_on"><%= format_time(topic.created_on) %></td>
42 42
      <td class="reply-count"><%= topic.replies_count %></td>
app/views/common/_diff.html.erb
10 10
<thead>
11 11
<tr>
12 12
  <th colspan="4" class="filename">
13
    <%= h(Redmine::CodesetUtil.to_utf8_by_setting(table_file.file_name)) %>
13
    <%= table_file.file_name %>
14 14
  </th>
15 15
</tr>
16 16
</thead>
......
24 24
<tr>
25 25
  <th class="line-num"><%= line.nb_line_left %></th>
26 26
  <td class="line-code <%= line.type_diff_left %>">
27
    <pre><%= Redmine::CodesetUtil.to_utf8_by_setting(line.html_line_left).html_safe %></pre>
27
    <pre><%= line.html_line_left.html_safe %></pre>
28 28
  </td>
29 29
  <th class="line-num"><%= line.nb_line_right %></th>
30 30
  <td class="line-code <%= line.type_diff_right %>">
31
    <pre><%= Redmine::CodesetUtil.to_utf8_by_setting(line.html_line_right).html_safe %></pre>
31
    <pre><%= line.html_line_right.html_safe %></pre>
32 32
  </td>
33 33
</tr>
34 34
<% end -%>
......
40 40
<thead>
41 41
  <tr>
42 42
    <th colspan="3" class="filename">
43
      <%= h(Redmine::CodesetUtil.to_utf8_by_setting(table_file.file_name)) %>
43
      <%= table_file.file_name %>
44 44
    </th>
45 45
  </tr>
46 46
</thead>
......
55 55
  <th class="line-num"><%= line.nb_line_left %></th>
56 56
  <th class="line-num"><%= line.nb_line_right %></th>
57 57
  <td class="line-code <%= line.type_diff %>">
58
    <pre><%= Redmine::CodesetUtil.to_utf8_by_setting(line.html_line).html_safe %></pre>
58
    <pre><%= line.html_line.html_safe %></pre>
59 59
  </td>
60 60
</tr>
61 61
<% end -%>
app/views/common/_preview.html.erb
1 1
<fieldset class="preview"><legend><%= l(:label_preview) %></legend>
2
<%= textilizable @text, :attachments => @attachements, :object => @previewed %>
2
<%= textilizable @text, :attachments => @attachments, :object => @previewed %>
3 3
</fieldset>
app/views/context_menus/issues.html.erb
1 1
<ul>
2 2
  <%= call_hook(:view_issues_context_menu_start, {:issues => @issues, :can => @can, :back => @back }) %>
3 3

  
4
<% if !@issue.nil? -%>
5
  <li><%= context_menu_link l(:button_edit), {:controller => 'issues', :action => 'edit', :id => @issue},
6
          :class => 'icon-edit', :disabled => !@can[:edit] %></li>
7
<% else %>
8
  <li><%= context_menu_link l(:button_edit), {:controller => 'issues', :action => 'bulk_edit', :ids => @issue_ids},
9
          :class => 'icon-edit', :disabled => !@can[:edit] %></li>
10
<% end %>
4
  <% if @issue -%>
5
    <li><%= context_menu_link l(:button_edit), edit_issue_path(@issue),
6
            :class => 'icon-edit', :disabled => !@can[:edit] %></li>
7
  <% else %>
8
    <li><%= context_menu_link l(:button_edit), bulk_edit_issues_path(:ids => @issue_ids),
9
            :class => 'icon-edit', :disabled => !@can[:edit] %></li>
10
  <% end %>
11 11

  
12 12
  <% if @allowed_statuses.present? %>
13 13
  <li class="folder">
14 14
    <a href="#" class="submenu"><%= l(:field_status) %></a>
15 15
    <ul>
16 16
    <% @allowed_statuses.each do |s| -%>
17
        <li><%= context_menu_link h(s.name), {:controller => 'issues', :action => 'bulk_update', :ids => @issue_ids, :issue => {:status_id => s}, :back_url => @back}, :method => :post,
17
        <li><%= context_menu_link h(s.name), bulk_update_issues_path(:ids => @issue_ids, :issue => {:status_id => s}, :back_url => @back), :method => :post,
18 18
                                  :selected => (@issue && s == @issue.status), :disabled => !@can[:update] %></li>
19 19
    <% end -%>
20 20
    </ul>
21 21
  </li>
22 22
  <% end %>
23 23

  
24
  <% unless @trackers.nil? %>
24
  <% if @trackers.present? %>
25 25
  <li class="folder">
26 26
    <a href="#" class="submenu"><%= l(:field_tracker) %></a>
27 27
    <ul>
28 28
    <% @trackers.each do |t| -%>
29
        <li><%= context_menu_link h(t.name), {:controller => 'issues', :action => 'bulk_update', :ids => @issue_ids, :issue => {'tracker_id' => t}, :back_url => @back}, :method => :post,
29
        <li><%= context_menu_link h(t.name), bulk_update_issues_path(:ids => @issue_ids, :issue => {'tracker_id' => t}, :back_url => @back), :method => :post,
30 30
                                  :selected => (@issue && t == @issue.tracker), :disabled => !@can[:edit] %></li>
31 31
    <% end -%>
32 32
    </ul>
33 33
  </li>
34 34
  <% end %>
35 35

  
36
  <% if @safe_attributes.include?('priority_id') -%>
36
  <% if @safe_attributes.include?('priority_id') && @priorities.present? -%>
37 37
  <li class="folder">
38 38
    <a href="#" class="submenu"><%= l(:field_priority) %></a>
39 39
    <ul>
40 40
    <% @priorities.each do |p| -%>
41
        <li><%= context_menu_link h(p.name), {:controller => 'issues', :action => 'bulk_update', :ids => @issue_ids, :issue => {'priority_id' => p}, :back_url => @back}, :method => :post,
41
        <li><%= context_menu_link h(p.name), bulk_update_issues_path(:ids => @issue_ids, :issue => {'priority_id' => p}, :back_url => @back), :method => :post,
42 42
                                  :selected => (@issue && p == @issue.priority), :disabled => (!@can[:edit] || @issues.detect {|i| !i.leaf?}) %></li>
43 43
    <% end -%>
44 44
    </ul>
45 45
  </li>
46 46
  <% end %>
47 47

  
48
  <% if @safe_attributes.include?('fixed_version_id') && @versions.any? -%>
48
  <% if @safe_attributes.include?('fixed_version_id') && @versions.present? -%>
49 49
  <li class="folder">
50 50
    <a href="#" class="submenu"><%= l(:field_fixed_version) %></a>
51 51
    <ul>
52 52
    <% @versions.sort.each do |v| -%>
53
        <li><%= context_menu_link format_version_name(v), {:controller => 'issues', :action => 'bulk_update', :ids => @issue_ids, :issue => {'fixed_version_id' => v}, :back_url => @back}, :method => :post,
53
        <li><%= context_menu_link format_version_name(v), bulk_update_issues_path(:ids => @issue_ids, :issue => {'fixed_version_id' => v}, :back_url => @back), :method => :post,
54 54
                                  :selected => (@issue && v == @issue.fixed_version), :disabled => !@can[:update] %></li>
55 55
    <% end -%>
56
        <li><%= context_menu_link l(:label_none), {:controller => 'issues', :action => 'bulk_update', :ids => @issue_ids, :issue => {'fixed_version_id' => 'none'}, :back_url => @back}, :method => :post,
56
        <li><%= context_menu_link l(:label_none), bulk_update_issues_path(:ids => @issue_ids, :issue => {'fixed_version_id' => 'none'}, :back_url => @back), :method => :post,
57 57
                                  :selected => (@issue && @issue.fixed_version.nil?), :disabled => !@can[:update] %></li>
58 58
    </ul>
59 59
  </li>
......
64 64
    <a href="#" class="submenu"><%= l(:field_assigned_to) %></a>
65 65
    <ul>
66 66
    <% if @assignables.include?(User.current) %>
67
        <li><%= context_menu_link "<< #{l(:label_me)} >>", {:controller => 'issues', :action => 'bulk_update', :ids => @issue_ids, :issue => {'assigned_to_id' => User.current}, :back_url => @back}, :method => :post,
67
        <li><%= context_menu_link "<< #{l(:label_me)} >>", bulk_update_issues_path(:ids => @issue_ids, :issue => {'assigned_to_id' => User.current}, :back_url => @back), :method => :post,
68 68
                                  :disabled => !@can[:update] %></li>
69 69
    <% end %>
70 70
    <% @assignables.each do |u| -%>
71
        <li><%= context_menu_link h(u.name), {:controller => 'issues', :action => 'bulk_update', :ids => @issue_ids, :issue => {'assigned_to_id' => u}, :back_url => @back}, :method => :post,
71
        <li><%= context_menu_link h(u.name), bulk_update_issues_path(:ids => @issue_ids, :issue => {'assigned_to_id' => u}, :back_url => @back), :method => :post,
72 72
                                  :selected => (@issue && u == @issue.assigned_to), :disabled => !@can[:update] %></li>
73 73
    <% end -%>
74
        <li><%= context_menu_link l(:label_nobody), {:controller => 'issues', :action => 'bulk_update', :ids => @issue_ids, :issue => {'assigned_to_id' => 'none'}, :back_url => @back}, :method => :post,
74
        <li><%= context_menu_link l(:label_nobody), bulk_update_issues_path(:ids => @issue_ids, :issue => {'assigned_to_id' => 'none'}, :back_url => @back), :method => :post,
75 75
                                  :selected => (@issue && @issue.assigned_to.nil?), :disabled => !@can[:update] %></li>
76 76
    </ul>
77 77
  </li>
......
82 82
    <a href="#" class="submenu"><%= l(:field_category) %></a>
83 83
    <ul>
84 84
    <% @project.issue_categories.each do |u| -%>
85
        <li><%= context_menu_link h(u.name), {:controller => 'issues', :action => 'bulk_update', :ids => @issue_ids, :issue => {'category_id' => u}, :back_url => @back}, :method => :post,
85
        <li><%= context_menu_link h(u.name), bulk_update_issues_path(:ids => @issue_ids, :issue => {'category_id' => u}, :back_url => @back), :method => :post,
86 86
                                  :selected => (@issue && u == @issue.category), :disabled => !@can[:update] %></li>
87 87
    <% end -%>
88
        <li><%= context_menu_link l(:label_none), {:controller => 'issues', :action => 'bulk_update', :ids => @issue_ids, :issue => {'category_id' => 'none'}, :back_url => @back}, :method => :post,
88
        <li><%= context_menu_link l(:label_none), bulk_update_issues_path(:ids => @issue_ids, :issue => {'category_id' => 'none'}, :back_url => @back), :method => :post,
89 89
                                  :selected => (@issue && @issue.category.nil?), :disabled => !@can[:update] %></li>
90 90
    </ul>
91 91
  </li>
......
96 96
    <a href="#" class="submenu"><%= l(:field_done_ratio) %></a>
97 97
    <ul>
98 98
    <% (0..10).map{|x|x*10}.each do |p| -%>
99
        <li><%= context_menu_link "#{p}%", {:controller => 'issues', :action => 'bulk_update', :ids => @issue_ids, :issue => {'done_ratio' => p}, :back_url => @back}, :method => :post,
99
        <li><%= context_menu_link "#{p}%", bulk_update_issues_path(:ids => @issue_ids, :issue => {'done_ratio' => p}, :back_url => @back), :method => :post,
100 100
                                      :selected => (@issue && p == @issue.done_ratio), :disabled => (!@can[:edit] || @issues.detect {|i| !i.leaf?}) %></li>
101 101
    <% end -%>
102 102
    </ul>
......
104 104
  <% end %>
105 105

  
106 106
  <% @options_by_custom_field.each do |field, options| %>
107
    <li class="folder">
107
    <li class="folder cf_<%= field.id %>">
108 108
      <a href="#" class="submenu"><%= h(field.name) %></a>
109 109
      <ul>
110 110
      <% options.each do |text, value| %>
......
117 117
    </li>
118 118
  <% end %>
119 119

  
120
<% if !@issue.nil? %>
121
  <% if @can[:log_time] -%>
122
  <li><%= context_menu_link l(:button_log_time), {:controller => 'timelog', :action => 'new', :issue_id => @issue},
123
          :class => 'icon-time-add' %></li>
124
  <% end %>
125
  <% if User.current.logged? %>
126
  <li><%= watcher_link(@issue, User.current) %></li>
127
  <% end %>
120
<% if User.current.logged? %>
121
  <li><%= watcher_link(@issues, User.current) %></li>
128 122
<% end %>
129 123

  
130 124
<% if @issue.present? %>
131
  <li><%= context_menu_link l(:button_copy), {:controller => 'issues', :action => 'new', :project_id => @project, :copy_from => @issue},
125
  <% if @can[:log_time] -%>
126
  <li><%= context_menu_link l(:button_log_time), new_issue_time_entry_path(@issue),
127
          :class => 'icon-time-add' %></li>
128
  <% end %>
129
  <li><%= context_menu_link l(:button_copy), project_copy_issue_path(@project, @issue),
132 130
          :class => 'icon-copy', :disabled => !@can[:copy] %></li>
133 131
<% else %>
134
  <li><%= context_menu_link l(:button_copy), {:controller => 'issues', :action => 'bulk_edit', :ids => @issue_ids, :copy => '1'},
132
  <li><%= context_menu_link l(:button_copy), bulk_edit_issues_path(:ids => @issue_ids, :copy => '1'),
135 133
                          :class => 'icon-copy', :disabled => !@can[:move] %></li>
136 134
<% end %>													
137 135
  <li><%= context_menu_link l(:button_delete), issues_path(:ids => @issue_ids, :back_url => @back),
app/views/custom_fields/_form.html.erb
5 5
<p><%= f.select :field_format, custom_field_formats_for_select(@custom_field), {}, :disabled => !@custom_field.new_record? %></p>
6 6

  
7 7
<% if @custom_field.format_in? 'list', 'user', 'version' %>
8
<p><%= f.check_box :multiple, :disabled => @custom_field.multiple && !@custom_field.new_record? %></p>
8
<p>
9
  <%= f.check_box :multiple %>
10
  <% if !@custom_field.new_record? && @custom_field.multiple %>
11
  <em class="info"><%= l(:text_turning_multiple_off) %></em>
12
  <% end %>
13
</p>
9 14
<% end %>
10 15

  
11 16
<% unless @custom_field.format_in? 'list', 'bool', 'date', 'user', 'version' %>
......
22 27
</p>
23 28
<% end %>
24 29

  
25
<% unless @custom_field.format_in? 'user', 'version' %>
26
<p><%= @custom_field.field_format == 'bool' ? f.check_box(:default_value) : f.text_field(:default_value) %></p>
30
<% case @custom_field.field_format %>
31
<% when 'bool' %>
32
  <p><%= f.check_box(:default_value) %></p>
33
<% when 'text' %>
34
  <p><%= f.text_area(:default_value, :rows => 8) %></p>
35
<% when 'date' %>
36
  <p><%= f.text_field(:default_value, :size => 10) %></p>
37
  <%= calendar_for('custom_field_default_value') %>
38
<% when 'user', 'version' %>
39
<% else %>
40
  <p><%= f.text_field(:default_value) %></p>
27 41
<% end %>
28 42

  
29 43
<%= call_hook(:view_custom_fields_form_upper_box, :custom_field => @custom_field, :form => f) %>
......
73 87

  
74 88
<% when "TimeEntryCustomField" %>
75 89
    <p><%= f.check_box :is_required %></p>
90
    <p><%= f.check_box :is_filter %></p>
76 91

  
77 92
<% else %>
78 93
    <p><%= f.check_box :is_required %></p>
......
80 95
<% end %>
81 96
<%= call_hook(:"view_custom_fields_form_#{@custom_field.type.to_s.underscore}", :custom_field => @custom_field, :form => f) %>
82 97
</div>
98

  
99
<% include_calendar_headers_tags %>
app/views/documents/index.html.erb
1 1
<div class="contextual">
2 2
<%= link_to l(:label_document_new), new_project_document_path(@project), :class => 'icon icon-add',
3
      :onclick => 'showAndScrollTo("add-document", "document_title"); return false;' if User.current.allowed_to?(:manage_documents, @project) %>
3
      :onclick => 'showAndScrollTo("add-document", "document_title"); return false;' if User.current.allowed_to?(:add_documents, @project) %>
4 4
</div>
5 5

  
6 6
<div id="add-document" style="display:none;">
app/views/documents/show.html.erb
1 1
<div class="contextual">
2
<% if User.current.allowed_to?(:manage_documents, @project) %>
2
<% if User.current.allowed_to?(:edit_documents, @project) %>
3 3
<%= link_to l(:button_edit), edit_document_path(@document), :class => 'icon icon-edit', :accesskey => accesskey(:edit) %>
4
<% end %>
5
<% if User.current.allowed_to?(:delete_documents, @project) %>
4 6
<%= delete_link document_path(@document) %>
5 7
<% end %>
6 8
</div>
......
10 12
<p><em><%=h @document.category.name %><br />
11 13
<%= format_date @document.created_on %></em></p>
12 14
<div class="wiki">
13
<%= textilizable @document.description, :attachments => @document.attachments %>
15
<%= textilizable @document, :description, :attachments => @document.attachments %>
14 16
</div>
15 17

  
16 18
<h3><%= l(:label_attachment_plural) %></h3>
app/views/gantts/show.html.erb
12 12
    <%= render :partial => 'queries/filters', :locals => {:query => @query} %>
13 13
  </div>
14 14
</fieldset>
15
<fieldset class="collapsible collapsed">
16
  <legend onclick="toggleFieldset(this);"><%= l(:label_options) %></legend>
17
  <div style="display: none;">
18
    <table>
19
      <tr>
20
        <td>
21
          <fieldset>
22
            <legend><%= l(:label_related_issues) %></legend>
23
            <label>
24
              <%= check_box_tag "draw_rels", params["draw_rels"], params[:set_filter].blank? || params[:draw_rels] %>
25
              <% rels = [IssueRelation::TYPE_BLOCKS, IssueRelation::TYPE_PRECEDES] %>
26
              <% rels.each do |rel| %>
27
                <% color = Redmine::Helpers::Gantt::DRAW_TYPES[rel][:color] %>
28
                <%= content_tag(:span, '&nbsp;&nbsp;&nbsp;'.html_safe,
29
                                :style => "background-color: #{color}") %>
30
                <%= l(IssueRelation::TYPES[rel][:name]) %>
31
              <% end %>
32
            </label>
33
          </fieldset>
34
        </td>
35
        <td>
36
          <fieldset>
37
            <legend><%= l(:label_gantt_progress_line) %></legend>
38
            <label>
39
              <%= check_box_tag "draw_progress_line", params[:draw_progress_line], params[:draw_progress_line] %>
40
              <%= l(:label_display) %>
41
            </label>
42
          </fieldset>
43
        </td>
44
      </tr>
45
    </table>
46
  </div>
47
</fieldset>
15 48

  
16 49
<p class="contextual">
17 50
  <%= gantt_zoom_link(@gantt, :in) %>
......
39 72
  @gantt.zoom.times { zoom = zoom * 2 }
40 73

  
41 74
  subject_width = 330
42
  header_heigth = 18
75
  header_height = 18
43 76

  
44
  headers_height = header_heigth
77
  headers_height = header_height
45 78
  show_weeks = false
46 79
  show_days  = false
47 80

  
48 81
  if @gantt.zoom > 1
49 82
    show_weeks = true
50
    headers_height = 2 * header_heigth
83
    headers_height = 2 * header_height
51 84
    if @gantt.zoom > 2
52 85
        show_days = true
53
        headers_height = 3 * header_heigth
86
        headers_height = 3 * header_height
54 87
    end
55 88
  end
56 89

  
......
102 135
</td>
103 136

  
104 137
<td>
105
<div style="position:relative;height:<%= t_height + 24 %>px;overflow:auto;">
138
<div style="position:relative;height:<%= t_height + 24 %>px;overflow:auto;" id="gantt_area">
106 139
<%
107 140
  style  = ""
108 141
  style += "width: #{g_width - 1}px;"
......
115 148
<%
116 149
  month_f = @gantt.date_from
117 150
  left = 0
118
  height = (show_weeks ? header_heigth : header_heigth + g_height)
151
  height = (show_weeks ? header_height : header_height + g_height)
119 152
%>
120 153
<% @gantt.months.times do %>
121 154
  <%
......
140 173
<% if show_weeks %>
141 174
  <%
142 175
    left = 0
143
    height = (show_days ? header_heigth - 1 : header_heigth - 1 + g_height)
176
    height = (show_days ? header_height - 1 : header_height - 1 + g_height)
144 177
  %>
145 178
  <% if @gantt.date_from.cwday == 1 %>
146 179
    <%
......
189 222
<% if show_days %>
190 223
  <%
191 224
    left = 0
192
    height = g_height + header_heigth - 1
225
    height = g_height + header_height - 1
193 226
    wday = @gantt.date_from.cwday
194 227
  %>
195 228
  <% (@gantt.date_to - @gantt.date_from + 1).to_i.times do %>
......
229 262
    style += "width:10px;"
230 263
    style += "border-left: 1px dashed red;"
231 264
  %>
232
  <%= content_tag(:div, '&nbsp;'.html_safe, :style => style) %>
265
  <%= content_tag(:div, '&nbsp;'.html_safe, :style => style, :id => 'today_line') %>
233 266
<% end %>
234

  
267
<%
268
  style  = ""
269
  style += "position: absolute;"
270
  style += "height: #{g_height}px;"
271
  style += "top: #{headers_height + 1}px;"
272
  style += "left: 0px;"
273
  style += "width: #{g_width - 1}px;"
274
%>
275
<%= content_tag(:div, '', :style => style, :id => "gantt_draw_area") %>
235 276
</div>
236 277
</td>
237 278
</tr>
......
261 302
<% end %>
262 303

  
263 304
<% html_title(l(:label_gantt)) -%>
305

  
306
<% content_for :header_tags do %>
307
  <%= javascript_include_tag 'raphael' %>
308
  <%= javascript_include_tag 'gantt' %>
309
<% end %>
310

  
311
<%= javascript_tag do %>
312
  var issue_relation_type = <%= raw Redmine::Helpers::Gantt::DRAW_TYPES.to_json %>;
313
  $(document).ready(drawGanttHandler);
314
  $(window).resize(drawGanttHandler);
315
  $(function() {
316
    $("#draw_rels").change(drawGanttHandler);
317
    $("#draw_progress_line").change(drawGanttHandler);
318
  });
319
<% end %>
app/views/groups/_form.html.erb
1 1
<%= error_messages_for @group %>
2 2

  
3 3
<div class="box tabular">
4
  <p><%= f.text_field :name %></p>
4
  <p><%= f.text_field :name, :required => true, :size => 60 %></p>
5 5
  <% @group.custom_field_values.each do |value| %>
6 6
    <p><%= custom_field_tag_with_label :group, value %></p>
7 7
  <% end %>
app/views/groups/_memberships.html.erb
1 1
<% roles = Role.find_all_givable %>
2
<% projects = Project.active.find(:all, :order => 'lft') %>
2
<% projects = Project.active.all %>
3 3

  
4 4
<div class="splitcontentleft">
5 5
<% if @group.memberships.any? %>
......
13 13
  <% @group.memberships.each do |membership| %>
14 14
  <% next if membership.new_record? %>
15 15
  <tr id="member-<%= membership.id %>" class="<%= cycle 'odd', 'even' %> class">
16
  <td class="project"><%=h membership.project %></td>
16
  <td class="project"><%= link_to_project membership.project %></td>
17 17
  <td class="roles">
18 18
    <span id="member-<%= membership.id %>-roles"><%=h membership.roles.sort.collect(&:to_s).join(', ') %></span>
19 19
    <%= form_for(:membership, :remote => true,
app/views/groups/_users.html.erb
22 22
</div>
23 23

  
24 24
<div class="splitcontentright">
25
<% users = User.active.not_in_group(@group).all(:limit => 100) %>
26
<% if users.any? %>
27 25
  <%= form_for(@group, :remote => true, :url => group_users_path(@group),
28 26
               :html => {:method => :post}) do |f| %>
29 27
    <fieldset><legend><%=l(:label_user_new)%></legend>
30 28

  
31 29
    <p><%= label_tag "user_search", l(:label_user_search) %><%= text_field_tag 'user_search', nil %></p>
32
    <%= javascript_tag "observeSearchfield('user_search', 'users', '#{ escape_javascript autocomplete_for_user_group_path(@group) }')" %>
30
    <%= javascript_tag "observeSearchfield('user_search', null, '#{ escape_javascript autocomplete_for_user_group_path(@group) }')" %>
33 31

  
34 32
    <div id="users">
35
      <%= principals_check_box_tags 'user_ids[]', users %>
33
      <%= render_principals_for_new_group_users(@group) %>
36 34
    </div>
37 35

  
38 36
    <p><%= submit_tag l(:button_add) %></p>
39 37
    </fieldset>
40 38
  <% end %>
41
<% end %>
42

  
43 39
</div>
app/views/groups/autocomplete_for_user.html.erb
1
<%= principals_check_box_tags 'user_ids[]', @users %>
app/views/groups/autocomplete_for_user.js.erb
1
$('#users').html('<%= escape_javascript(render_principals_for_new_group_users(@group)) %>');
app/views/groups/index.html.erb
19 19
    <td class="buttons"><%= delete_link group %></td>
20 20
  </tr>
21 21
<% end %>
22
  </tbody>
22 23
</table>
23 24
<% else %>
24 25
<p class="nodata"><%= l(:label_no_data) %></p>
app/views/issues/_action_menu.html.erb
1 1
<div class="contextual">
2
<%= link_to_if_authorized(l(:button_update), {:controller => 'issues', :action => 'edit', :id => @issue }, :onclick => 'showAndScrollTo("update", "issue_notes"); return false;', :class => 'icon icon-edit', :accesskey => accesskey(:edit)) %>
2
<%= link_to l(:button_update), edit_issue_path(@issue), :onclick => 'showAndScrollTo("update", "issue_notes"); return false;', :class => 'icon icon-edit', :accesskey => accesskey(:edit) if @issue.editable? %>
3 3
<%= link_to l(:button_log_time), new_issue_time_entry_path(@issue), :class => 'icon icon-time-add' if User.current.allowed_to?(:log_time, @project) %>
4
<%= watcher_tag(@issue, User.current) %>
5
<%= link_to_if_authorized l(:button_copy), {:controller => 'issues', :action => 'new', :project_id => @project, :copy_from => @issue}, :class => 'icon icon-copy' %>
4
<%= watcher_link(@issue, User.current) %>
5
<%= link_to l(:button_copy), project_copy_issue_path(@project, @issue), :class => 'icon icon-copy' if User.current.allowed_to?(:add_issues, @project) %>
6 6
<%= link_to l(:button_delete), issue_path(@issue), :data => {:confirm => issues_destroy_confirmation_message(@issue)}, :method => :delete, :class => 'icon icon-del' if User.current.allowed_to?(:delete_issues, @project) %>
7 7
</div>
app/views/issues/_list.html.erb
9 9
                              :onclick => 'toggleIssuesSelection(this); return false;',
10 10
                              :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}" %>
11 11
      </th>
12
      <%= sort_header_tag('id', :caption => '#', :default_order => 'desc') %>
13 12
      <% query.inline_columns.each do |column| %>
14 13
        <%= column_header(column) %>
15 14
      <% end %>
......
32 31
  <% end %>
33 32
  <tr id="issue-<%= issue.id %>" class="hascontextmenu <%= cycle('odd', 'even') %> <%= issue.css_classes %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>">
34 33
    <td class="checkbox hide-when-print"><%= check_box_tag("ids[]", issue.id, false, :id => nil) %></td>
35
    <td class="id"><%= link_to issue.id, issue_path(issue) %></td>
36 34
    <%= raw query.inline_columns.map {|column| "<td class=\"#{column.css_classes}\">#{column_content(column, issue)}</td>"}.join %>
37 35
  </tr>
38 36
  <% @query.block_columns.each do |column|
39 37
       if (text = column_content(column, issue)) && text.present? -%>
40 38
  <tr class="<%= current_cycle %>">
41
    <td colspan="<%= @query.inline_columns.size + 2 %>" class="<%= column.css_classes %>"><%= text %></td>
39
    <td colspan="<%= @query.inline_columns.size + 1 %>" class="<%= column.css_classes %>"><%= text %></td>
42 40
  </tr>
43 41
  <% end -%>
44 42
  <% end -%>
app/views/issues/_list_simple.html.erb
12 12
    <tr id="issue-<%= h(issue.id) %>" class="hascontextmenu <%= cycle('odd', 'even') %> <%= issue.css_classes %>">
13 13
      <td class="id">
14 14
        <%= check_box_tag("ids[]", issue.id, false, :style => 'display:none;', :id => nil) %>
15
        <%= link_to(h(issue.id), :controller => 'issues', :action => 'show', :id => issue) %>
15
        <%= link_to issue.id, issue_path(issue) %>
16 16
      </td>
17 17
      <td class="project"><%= link_to_project(issue.project) %></td>
18 18
      <td class="tracker"><%=h issue.tracker %></td>
19 19
      <td class="subject">
20
        <%= link_to h(truncate(issue.subject, :length => 60)), :controller => 'issues', :action => 'show', :id => issue %> (<%=h issue.status %>)
20
        <%= link_to truncate(issue.subject, :length => 60), issue_path(issue) %> (<%=h issue.status %>)
21 21
      </td>
22 22
    </tr>
23 23
    <% end %>
app/views/issues/_relations.html.erb
10 10
<form>
11 11
<table class="list issues">
12 12
<% @relations.each do |relation| %>
13
<tr class="issue hascontextmenu" id="relation-<%= relation.id %>">
14
<td class="checkbox"><%= check_box_tag("ids[]", relation.other_issue(@issue).id, false, :id => nil) %></td>
15
<td class="subject"><%= l(relation.label_for(@issue)) %> <%= "(#{l('datetime.distance_in_words.x_days', :count => relation.delay)})" if relation.delay && relation.delay != 0 %>
16
    <%= h(relation.other_issue(@issue).project) + ' - ' if Setting.cross_project_issue_relations? %>
17
    <%= link_to_issue(relation.other_issue(@issue), :truncate => 60) %>
18
</td>
19
<td class="status"><%=h relation.other_issue(@issue).status.name %></td>
20
<td class="start_date"><%= format_date(relation.other_issue(@issue).start_date) %></td>
21
<td class="due_date"><%= format_date(relation.other_issue(@issue).due_date) %></td>
22
<td class="buttons"><%= link_to image_tag('link_break.png'),
23
                                {:controller => 'issue_relations', :action => 'destroy', :id => relation},
24
                                :remote => true,
25
                                :method => :delete,
26
                                :data => {:confirm => l(:text_are_you_sure)},
27
                                :title => l(:label_relation_delete) if User.current.allowed_to?(:manage_issue_relations, @project) %></td>
28
</tr>
13
  <% other_issue = relation.other_issue(@issue) -%>
14
  <tr class="issue hascontextmenu" id="relation-<%= relation.id %>">
15
  <td class="checkbox"><%= check_box_tag("ids[]", other_issue.id, false, :id => nil) %></td>
16
  <td class="subject">
17
    <%= l(relation.label_for(@issue)) %>
18
    <%= "(#{l('datetime.distance_in_words.x_days', :count => relation.delay)})" if relation.delay && relation.delay != 0 %>
19
    <%= h(other_issue.project) + ' - ' if Setting.cross_project_issue_relations? %>
20
    <%= link_to_issue(other_issue, :truncate => 60) %>
21
  </td>
22
  <td class="status"><%=h other_issue.status.name %></td>
23
  <td class="start_date"><%= format_date(other_issue.start_date) %></td>
24
  <td class="due_date"><%= format_date(other_issue.due_date) %></td>
25
  <td class="buttons"><%= link_to image_tag('link_break.png'),
26
                                  relation_path(relation),
27
                                  :remote => true,
28
                                  :method => :delete,
29
                                  :data => {:confirm => l(:text_are_you_sure)},
30
                                  :title => l(:label_relation_delete) if User.current.allowed_to?(:manage_issue_relations, @project) %></td>
31
  </tr>
29 32
<% end %>
30 33
</table>
31 34
</form>
......
33 36

  
34 37
<%= form_for @relation, {
35 38
                 :as => :relation, :remote => true,
36
                 :url => {:controller => 'issue_relations', :action => 'create', :issue_id => @issue},
39
                 :url => issue_relations_path(@issue),
37 40
                 :method => :post,
38 41
                 :html => {:id => 'new-relation-form', :style => (@relation ? '' : 'display: none;')}
39 42
               } do |f| %>
app/views/issues/_sidebar.html.erb
1 1
<h3><%= l(:label_issue_plural) %></h3>
2
<%= link_to l(:label_issue_view_all), { :controller => 'issues', :action => 'index', :project_id => @project, :set_filter => 1 } %><br />
2
<%= link_to l(:label_issue_view_all), _project_issues_path(@project, :set_filter => 1) %><br />
3 3
<% if @project %>
4
<%= link_to l(:field_summary), :controller => 'reports', :action => 'issue_report', :id => @project %><br />
4
<%= link_to l(:field_summary), project_issues_report_path(@project) %><br />
5 5
<% end %>
6 6
<%= call_hook(:view_issues_sidebar_issues_bottom) %>
7 7

  
8 8
<% if User.current.allowed_to?(:view_calendar, @project, :global => true) %>
9
  <%= link_to(l(:label_calendar), :controller => 'calendars', :action => 'show', :project_id => @project) %><br />
9
  <%= link_to l(:label_calendar), _project_calendar_path(@project) %><br />
10 10
<% end %>
11 11
<% if User.current.allowed_to?(:view_gantt, @project, :global => true) %>
12
  <%= link_to(l(:label_gantt), :controller => 'gantts', :action => 'show', :project_id => @project) %><br />
12
  <%= link_to l(:label_gantt), _project_gantt_path(@project) %><br />
13 13
<% end %>
14 14
<%= call_hook(:view_issues_sidebar_planning_bottom) %>
15 15

  
app/views/issues/_update_form.js.erb
1
$('#all_attributes').html('<%= escape_javascript(render :partial => 'form') %>');
2

  
3
<% if User.current.allowed_to?(:log_time, @issue.project) %>
4
  $('#log_time').show();
5
<% else %>
6
  $('#log_time').hide();
7
<% end %>
app/views/issues/bulk_edit.html.erb
1 1
<h2><%= @copy ? l(:button_copy) : l(:label_bulk_edit_selected_issues) %></h2>
2 2

  
3
<ul><%= @issues.collect {|i|
4
            content_tag('li',
5
                        link_to(h("#{i.tracker} ##{i.id}"),
6
                                { :action => 'show', :id => i }
7
                            ) + h(": #{i.subject}"))
8
         }.join("\n").html_safe %></ul>
3
<ul id="bulk-selection">
4
<% @issues.each do |issue| %>
5
  <%= content_tag 'li', link_to_issue(issue) %>
6
<% end %>
7
</ul>
9 8

  
10
<%= form_tag({:action => 'bulk_update'}, :id => 'bulk_edit_form') do %>
9
<%= form_tag(bulk_update_issues_path, :id => 'bulk_edit_form') do %>
11 10
<%= @issues.collect {|i| hidden_field_tag('ids[]', i.id)}.join("\n").html_safe %>
12 11
<div class="box tabular">
13 12
<fieldset class="attributes">
app/views/issues/index.api.rsb
23 23

  
24 24
      api.created_on issue.created_on
25 25
      api.updated_on issue.updated_on
26
      api.closed_on  issue.closed_on
26 27

  
27 28
      api.array :relations do
28 29
        issue.relations.each do |relation|
app/views/issues/index.html.erb
24 24
        <table>
25 25
          <tr>
26 26
            <td><%= l(:field_column_names) %></td>
27
            <td><%= render :partial => 'queries/columns', :locals => {:query => @query} %></td>
27
            <td><%= render_query_columns_selection(@query) %></td>
28 28
          </tr>
29 29
          <tr>
30 30
            <td><label for='group_by'><%= l(:field_group_by) %></label></td>
app/views/issues/show.api.rsb
22 22

  
23 23
  api.created_on @issue.created_on
24 24
  api.updated_on @issue.updated_on
25
  api.closed_on @issue.closed_on
25 26

  
26 27
  render_api_issue_children(@issue, api) if include_in_api_response?('children')
27 28

  
......
64 65
      end
65 66
    end
66 67
  end if include_in_api_response?('journals')
68

  
69
  api.array :watchers do
70
    @issue.watcher_users.each do |user|
71
      api.user :id => user.id, :name => user.name
72
    end
73
  end if include_in_api_response?('watchers') && User.current.allowed_to?(:view_issue_watchers, @issue.project)
67 74
end
app/views/issues/show.html.erb
61 61
    end
62 62
  end
63 63
  if User.current.allowed_to?(:view_time_entries, @project)
64
    rows.right l(:label_spent_time), (@issue.total_spent_hours > 0 ? (link_to l_hours(@issue.total_spent_hours), {:controller => 'timelog', :action => 'index', :project_id => @project, :issue_id => @issue}) : "-"), :class => 'spent-time'
64
    rows.right l(:label_spent_time), (@issue.total_spent_hours > 0 ? link_to(l_hours(@issue.total_spent_hours), project_issue_time_entries_path(@project, @issue)) : "-"), :class => 'spent-time'
65 65
  end
66 66
end %>
67 67
<%= render_custom_fields_rows(@issue) %>
......
73 73
<% if @issue.description? %>
74 74
<div class="description">
75 75
  <div class="contextual">
76
  <%= link_to l(:button_quote),
77
              {:controller => 'journals', :action => 'new', :id => @issue},
78
              :remote => true,
79
              :method => 'post',
80
              :class => 'icon icon-comment' if authorize_for('issues', 'edit') %>
76
  <%= link_to l(:button_quote), quoted_issue_path(@issue), :remote => true, :method => 'post', :class => 'icon icon-comment' if authorize_for('issues', 'edit') %>
81 77
  </div>
82 78

  
83 79
  <p><strong><%=l(:field_description)%></strong></p>
......
130 126
<%= render :partial => 'action_menu' %>
131 127

  
132 128
<div style="clear: both;"></div>
133
<% if authorize_for('issues', 'edit') %>
129
<% if @issue.editable? %>
134 130
  <div id="update" style="display:none;">
135 131
  <h3><%= l(:button_update) %></h3>
136 132
  <%= render :partial => 'edit' %>
app/views/issues/update_form.js.erb
1
$('#all_attributes').html('<%= escape_javascript(render :partial => 'form') %>');
2

  
3
<% if User.current.allowed_to?(:log_time, @issue.project) %>
4
  $('#log_time').show();
5
<% else %>
6
  $('#log_time').hide();
7
<% end %>
app/views/layouts/base.html.erb
7 7
<meta name="keywords" content="audio,music,software,research,UK,sound,repository,code,redmine" />
8 8
<%= csrf_meta_tag %>
9 9
<%= favicon %>
10
<%= stylesheet_link_tag 'jquery/jquery-ui-1.8.21', 'application', :media => 'all' %>
10
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'application', :media => 'all' %>
11 11
<%= stylesheet_platform_font_tag %>
12 12
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
13 13
<%= javascript_heads %>
app/views/members/autocomplete.html.erb
1
<%= principals_check_box_tags 'membership[user_ids][]', @principals %>
app/views/members/autocomplete.js.erb
1
$('#principals_for_new_member').html('<%= escape_javascript(render_principals_for_new_members(@project)) %>');
app/views/messages/show.html.erb
1 1
<%= board_breadcrumb(@message) %>
2 2

  
3 3
<div class="contextual">
4
    <%= watcher_tag(@topic, User.current) %>
4
    <%= watcher_link(@topic, User.current) %>
5 5
    <%= link_to(
6 6
          l(:button_quote),
7 7
          {:action => 'quote', :id => @topic},
app/views/my/blocks/_calendar.html.erb
1 1
<h3><%= l(:label_calendar) %></h3>
2 2

  
3 3
<% calendar = Redmine::Helpers::Calendar.new(Date.today, current_language, :week)
4
   calendar.events = Issue.visible.find :all,
5
                     :conditions => ["#{Issue.table_name}.project_id in (#{@user.projects.collect{|m| m.id}.join(',')}) AND ((start_date>=? and start_date<=?) or (due_date>=? and due_date<=?))", calendar.startdt, calendar.enddt, calendar.startdt, calendar.enddt],
6
                     :include => [:project, :tracker, :priority, :assigned_to] unless @user.projects.empty? %>
4
   calendar.events = calendar_items(calendar.startdt, calendar.enddt) %>
7 5

  
8 6
<%= render :partial => 'common/calendar', :locals => {:calendar => calendar } %>
app/views/my/blocks/_documents.html.erb
1 1
<h3><%=l(:label_document_plural)%></h3>
2 2

  
3
<% project_ids = @user.projects.select {|p| @user.allowed_to?(:view_documents, p)}.collect(&:id) %>
4
<%= render(:partial => 'documents/document',
5
           :collection => Document.find(:all,
6
                         :limit => 10,
7
                         :order => "#{Document.table_name}.created_on DESC",
8
                         :conditions => "#{Document.table_name}.project_id in (#{project_ids.join(',')})",
9
                         :include => [:project])) unless project_ids.empty? %>
3
<%= render :partial => 'documents/document', :collection => documents_items %>
app/views/my/blocks/_issuesassignedtome.html.erb
1 1
<h3><%=l(:label_assigned_to_me_issues)%> (<%= Issue.visible.open.count(:conditions => {:assigned_to_id => ([User.current.id] + User.current.group_ids)})%>)</h3>
2 2

  
3
<% assigned_issues = Issue.visible.open.find(:all,
4
                                :conditions => {:assigned_to_id => ([User.current.id] + User.current.group_ids)},
5
                                :limit => 10,
6
                                :include => [ :status, :project, :tracker, :priority ],
7
                                :order => "#{IssuePriority.table_name}.position DESC, #{Issue.table_name}.updated_on DESC") %>
3
<% assigned_issues = issuesassignedtome_items %>
8 4
<%= render :partial => 'issues/list_simple', :locals => { :issues => assigned_issues } %>
9 5
<% if assigned_issues.length > 0 %>
10 6
<p class="small"><%= link_to l(:label_issue_view_all), :controller => 'issues',
app/views/my/blocks/_issuesreportedbyme.html.erb
1 1
<h3><%=l(:label_reported_issues)%> (<%= Issue.visible.count(:conditions => { :author_id => User.current.id }) %>)</h3>
2 2

  
3
<% reported_issues = Issue.visible.find(:all,
4
                                :conditions => { :author_id => User.current.id },
5
                                :limit => 10,
6
                                :include => [ :status, :project, :tracker ],
7
                                :order => "#{Issue.table_name}.updated_on DESC") %>
3
<% reported_issues = issuesreportedbyme_items %>
8 4
<%= render :partial => 'issues/list_simple', :locals => { :issues => reported_issues } %>
9 5
<% if reported_issues.length > 0 %>
10 6
<p class="small"><%= link_to l(:label_issue_view_all), :controller => 'issues',
app/views/my/blocks/_issueswatched.html.erb
1 1
<h3><%=l(:label_watched_issues)%> (<%= Issue.visible.watched_by(user.id).count %>)</h3>
2
<% watched_issues = Issue.visible.on_active_project.watched_by(user.id).recently_updated.limit(10) %>
2
<% watched_issues = issueswatched_items %>
3 3

  
4 4
<%= render :partial => 'issues/list_simple', :locals => { :issues => watched_issues } %>
5 5
<% if watched_issues.length > 0 %>
app/views/my/blocks/_news.html.erb
1 1
<h3><%=l(:label_news_latest)%></h3>
2 2

  
3
<%= render(:partial => 'news/news',
4
            :collection => News.find(:all,
5
                                     :limit => 10,
6
                                     :order => "#{News.table_name}.created_on DESC",
7
                                     :conditions => "#{News.table_name}.project_id in (#{@user.projects.collect{|m| m.id}.join(',')})",
8
                                     :include => [:project, :author])) unless @user.projects.empty? %>
3
<%= render :partial => 'news/news', :collection => news_items %>
app/views/my/blocks/_timelog.html.erb
1 1
<h3><%=l(:label_spent_time)%> (<%= l(:label_last_n_days, 7) %>)</h3>
2 2
<%
3
entries = TimeEntry.find(:all,
4
        :conditions => ["#{TimeEntry.table_name}.user_id = ? AND #{TimeEntry.table_name}.spent_on BETWEEN ? AND ?", @user.id, Date.today - 6, Date.today],
5
        :include => [:activity, :project, {:issue => [:tracker, :status]}],
6
        :order => "#{TimeEntry.table_name}.spent_on DESC, #{Project.table_name}.name ASC, #{Tracker.table_name}.position ASC, #{Issue.table_name}.id ASC")
3
entries = timelog_items
7 4
entries_by_day = entries.group_by(&:spent_on)
8 5
%>
9 6

  
10 7
<div class="total-hours">
11
<p><%= l(:label_total) %>: <%= html_hours("%.2f" % entries.sum(&:hours).to_f) %></p>
8
<p><%= l(:label_total_time) %>: <%= html_hours("%.2f" % entries.sum(&:hours).to_f) %></p>
12 9
</div>
13 10

  
14 11
<% if entries.any? %>
app/views/news/show.html.erb
1 1
<div class="contextual">
2
<%= watcher_tag(@news, User.current) %>
2
<%= watcher_link(@news, User.current) %>
3 3
<%= link_to(l(:button_edit),
4 4
      edit_news_path(@news),
5 5
      :class => 'icon icon-edit',
app/views/previews/issue.html.erb
1 1
<% if @notes %>
2 2
  <fieldset class="preview"><legend><%= l(:field_notes) %></legend>
3
    <%= textilizable @notes, :attachments => @attachements, :object => @issue %>
3
    <%= textilizable @notes, :attachments => @attachments, :object => @issue %>
4 4
  </fieldset>
5 5
<% end %>
6 6

  
7 7
<% if @description %>
8 8
  <fieldset class="preview"><legend><%= l(:field_description) %></legend>
9
    <%= textilizable @description, :attachments => @attachements, :object => @issue %>
9
    <%= textilizable @description, :attachments => @attachments, :object => @issue %>
10 10
  </fieldset>
11 11
<% end %>
app/views/projects/_form.html.erb
7 7
  <em class="info"> <%= l(:text_project_name_info).html_safe %></em>
8 8
</p>
9 9

  
10
<% unless @project.allowed_parents.compact.empty? %>
11
    <p><%= label(:project, :parent_id, l(:field_parent)) %><%= parent_project_select_tag(@project) %></p>
12
<% end %>
13

  
14
<p><%= f.text_area :description, :rows => 5, :class => 'wiki-edit' %></p>
15
<p><%= f.text_field :identifier, :required => true, :size => 60, :disabled => @project.identifier_frozen? %>
10
<p><%= f.text_area :description, :rows => 8, :class => 'wiki-edit' %></p>
11
<p><%= f.text_field :identifier, :required => true, :size => 60, :disabled => @project.identifier_frozen?, :maxlength => Project::IDENTIFIER_MAX_LENGTH %>
16 12
<% unless @project.identifier_frozen? %>
17 13
  <br />
18 14
  <em class="info"><%= l(:text_length_between, :min => 1, :max => Project::IDENTIFIER_MAX_LENGTH) %> <%= l(:text_project_identifier_info).html_safe %></em>
......
36 32
<br>
37 33
  <em class="info"><%= l(:text_project_visibility_info) %></em>
38 34
</p>
35

  
36
<% unless @project.allowed_parents.compact.empty? %>
37
    <p><%= label(:project, :parent_id, l(:field_parent)) %><%= parent_project_select_tag(@project) %></p>
38
<% end %>
39

  
40
<% if @project.safe_attribute? 'inherit_members' %>
41
<p><%= f.check_box :inherit_members %></p>
42
<% end %>
43

  
39 44
<%= wikitoolbar_for 'project_description' %>
40 45

  
41 46
<% @project.custom_field_values.each do |value| %>
......
88 93
<% end %>
89 94
<% end %>
90 95
<!--[eoform:project]-->
96

  
97
<% unless @project.identifier_frozen? %>
98
  <% content_for :header_tags do %>
99
    <%= javascript_include_tag 'project_identifier' %>
100
  <% end %>
101
<% end %>
102

  
103
<% if !User.current.admin? && @project.inherit_members? && @project.parent && User.current.member_of?(@project.parent) %>
104
  <%= javascript_tag do %>
105
    $(document).ready(function() {
106
      $("#project_inherit_members").change(function(){
107
        if (!$(this).is(':checked')) {
108
          if (!confirm("<%= escape_javascript(l(:text_own_membership_delete_confirmation)) %>")) {
109
            $("#project_inherit_members").attr("checked", true);
110
          }
111
        }
112
      });
113
    });
114
  <% end %>
115
<% end %>
app/views/projects/settings/_members.html.erb
1 1
<%= error_messages_for 'member' %>
2 2
<% roles = Role.find_all_givable
3
   members = @project.member_principals.find(:all, :include => [:roles, :principal]).sort %>
3
   members = @project.member_principals.includes(:roles, :principal).all.sort %>
4 4

  
5 5
<div class="splitcontentleft">
6 6
<% if members.any? %>
......
51 51
<% end %>
52 52
</div>
53 53

  
54
<% principals = Principal.active.not_member_of(@project).all(:limit => 100, :order => 'type, login, lastname ASC') %>
55

  
56 54
<div class="splitcontentright">
57
<% if roles.any? && principals.any? %>
55
<% if roles.any? %>
58 56
  <%= form_for(@member, {:as => :membership, :url => project_memberships_path(@project), :remote => true, :method => :post}) do |f| %>
59 57
    <fieldset><legend><%=l(:label_member_new)%></legend>
60 58

  
61 59
    <p><%= label_tag "principal_search", l(:label_principal_search) %><%= text_field_tag 'principal_search', nil %></p>
62
    <%= javascript_tag "observeSearchfield('principal_search', 'principals', '#{ escape_javascript autocomplete_project_memberships_path(@project) }')" %>
60
    <%= javascript_tag "observeSearchfield('principal_search', null, '#{ escape_javascript autocomplete_project_memberships_path(@project, :format => 'js') }')" %>
63 61

  
64
    <div id="principals">
65
      <%= principals_check_box_tags 'membership[user_ids][]', principals %>
62
    <div id="principals_for_new_member">
63
      <%= render_principals_for_new_members(@project) %>
66 64
    </div>
67 65

  
68 66
    <p><%= l(:label_role_plural) %>:
app/views/projects/settings/_modules.html.erb
3 3
            :html => {:id => 'modules-form',
4 4
                      :method => :post} do |f| %>
5 5

  
6
<div class="box">
7
<fieldset>
6
<fieldset class="box">
8 7
<legend><%= l(:text_select_project_modules) %></legend>
9 8

  
10 9
<% Redmine::AccessControl.available_project_modules.each do |m| %>
......
12 11
 <%= l_or_humanize(m, :prefix => "project_module_") %></label></p>
13 12
<% end %>
14 13
</fieldset>
15
</div>
14
<p><%= check_all_links 'modules-form' %></p>
16 15

  
17
<p><%= check_all_links 'modules-form' %></p>
18 16
<p><%= submit_tag l(:button_save) %></p>
19 17

  
20 18
<% end %>
app/views/projects/show.html.erb
1 1
<div class="contextual">
2 2
  <% if User.current.allowed_to?(:add_subprojects, @project) %>
3
    <%= link_to l(:label_subproject_new), {:controller => 'projects', :action => 'new', :parent_id => @project}, :class => 'icon icon-add' %>
3
    <%= link_to l(:label_subproject_new), new_project_path(:parent_id => @project), :class => 'icon icon-add' %>
4 4
  <% end %>
5 5
  <% if User.current.allowed_to?(:close_project, @project) %>
6 6
    <% if @project.active? %>
......
57 57
  <% end %>
58 58
  <% if @subprojects.any? %>
59 59
    <li><%=l(:label_subproject_plural)%>:
60
      <%= @subprojects.collect{|p| link_to(h(p), :action => 'show', :id => p)}.join(", ").html_safe %></li>
60
      <%= @subprojects.collect{|p| link_to p, project_path(p)}.join(", ").html_safe %></li>
61 61
  <% end %>
62 62
  <% @project.visible_custom_field_values.each do |custom_value| %>
63 63
  <% if !custom_value.value.blank? %>
......
72 72
    <h3><%=l(:label_issue_tracking)%></h3>
73 73
    <ul>
74 74
    <% for tracker in @trackers %>
75
      <li><%= link_to h(tracker.name), :controller => 'issues', :action => 'index', :project_id => @project,
76
                                                :set_filter => 1,
77
                                                "tracker_id" => tracker.id %>:
75
      <li><%= link_to h(tracker.name), project_issues_path(@project, :set_filter => 1, :tracker_id => tracker.id) %>:
78 76
          <%= l(:label_x_open_issues_abbr_on_total, :count => @open_issues_by_tracker[tracker].to_i,
79 77
                                                    :total => @total_issues_by_tracker[tracker].to_i) %>
80 78
      </li>
81 79
    <% end %>
82 80
    </ul>
83 81
    <p>
84
      <%= link_to l(:label_issue_view_all), :controller => 'issues', :action => 'index', :project_id => @project, :set_filter => 1 %>
82
      <%= link_to l(:label_issue_view_all), project_issues_path(@project, :set_filter => 1) %>
85 83
      <% if User.current.allowed_to?(:view_calendar, @project, :global => true) %>
86
        | <%= link_to(l(:label_calendar), :controller => 'calendars', :action => 'show', :project_id => @project) %>
84
        | <%= link_to l(:label_calendar), project_calendar_path(@project) %>
87 85
      <% end %>
88 86
      <% if User.current.allowed_to?(:view_gantt, @project, :global => true) %>
89
        | <%= link_to(l(:label_gantt), :controller => 'gantts', :action => 'show', :project_id => @project) %>
87
        | <%= link_to l(:label_gantt), project_gantt_path(@project) %>
90 88
      <% end %>
91 89
    </p>
92 90
  </div>
......
103 101
  <div class="news box">
104 102
    <h3><%=l(:label_news_latest)%></h3>
105 103
    <%= render :partial => 'news/news', :collection => @news %>
106
    <p><%= link_to l(:label_news_view_all), :controller => 'news', :action => 'index', :project_id => @project %></p>
104
    <p><%= link_to l(:label_news_view_all), project_news_index_path(@project) %></p>
107 105
  </div>
108 106
  <% end %>
109 107

  
app/views/queries/_columns.html.erb
4 4
      <%= label_tag "available_columns", l(:description_available_columns) %>
5 5
      <br />
6 6
      <%= select_tag 'available_columns',
7
              options_for_select((query.available_inline_columns - query.columns).collect {|column| [column.caption, column.name]}),
7
              options_for_select(query_available_inline_columns_options(query)),
8 8
              :multiple => true, :size => 10, :style => "width:150px",
9 9
              :ondblclick => "moveOptions(this.form.available_columns, this.form.selected_columns);" %>
10 10
    </td>
......
17 17
    <td>
18 18
      <%= label_tag "selected_columns", l(:description_selected_columns) %>
19 19
      <br />
20
      <%= select_tag((defined?(tag_name) ? tag_name : 'c[]'),
21
              options_for_select(query.inline_columns.collect {|column| [column.caption, column.name]}),
20
      <%= select_tag tag_name,
21
              options_for_select(query_selected_inline_columns_options(query)),
22 22
              :id => 'selected_columns', :multiple => true, :size => 10, :style => "width:150px",
23
              :ondblclick => "moveOptions(this.form.selected_columns, this.form.available_columns);") %>
23
              :ondblclick => "moveOptions(this.form.selected_columns, this.form.available_columns);" %>
24 24
    </td>
25 25
    <td class="buttons">
26 26
      <input type="button" value="&#8593;" onclick="moveOptionUp(this.form.selected_columns);" /><br />
app/views/queries/_form.html.erb
49 49

  
50 50
<%= content_tag 'fieldset', :id => 'columns', :style => (query.has_default_columns? ? 'display:none;' : nil) do %>
51 51
<legend><%= l(:field_column_names) %></legend>
52
<%= render :partial => 'queries/columns', :locals => {:query => query}%>
52
<%= render_query_columns_selection(query) %>
53 53
<% end %>
54 54

  
55 55
</div>
app/views/reports/_details.html.erb
15 15
<tbody>
16 16
<% for row in rows %>
17 17
<tr class="<%= cycle("odd", "even") %>">
18
  <td><%= link_to h(row.name), :controller => 'issues', :action => 'index', :project_id => ((row.is_a?(Project) ? row : @project)),
19
                                                :set_filter => 1,
20
                                                :subproject_id => '!*',
21
                                                "#{field_name}" => row.id %></td>
18
  <td><%= link_to h(row.name), aggregate_path(@project, field_name, row) %></td>
22 19
  <% for status in @statuses %>
23
    <td align="center"><%= aggregate_link data, { field_name => row.id, "status_id" => status.id },
24
                                                :controller => 'issues', :action => 'index', :project_id => ((row.is_a?(Project) ? row : @project)),
25
                                                :set_filter => 1,
26
                                                :subproject_id => '!*',
27
                                                "status_id" => status.id,
28
                                                "#{field_name}" => row.id %></td>
20
    <td align="center"><%= aggregate_link data, { field_name => row.id, "status_id" => status.id }, aggregate_path(@project, field_name, row, :status_id => status.id) %></td>
29 21
  <% end %>
30
  <td align="center"><%= aggregate_link data, { field_name => row.id, "closed" => 0 },
31
                                                :controller => 'issues', :action => 'index', :project_id => ((row.is_a?(Project) ? row : @project)),
32
                                                :set_filter => 1,
33
                                                :subproject_id => '!*',
34
                                                "#{field_name}" => row.id,
35
                                                "status_id" => "o" %></td>
36
  <td align="center"><%= aggregate_link data, { field_name => row.id, "closed" => 1 },
37
                                                :controller => 'issues', :action => 'index', :project_id => ((row.is_a?(Project) ? row : @project)),
38
                                                :set_filter => 1,
39
                                                :subproject_id => '!*',
40
                                                "#{field_name}" => row.id,
41
                                                "status_id" => "c" %></td>
42
  <td align="center"><%= aggregate_link data, { field_name => row.id },
43
                                                :controller => 'issues', :action => 'index', :project_id => ((row.is_a?(Project) ? row : @project)),
44
                                                :set_filter => 1,
45
                                                :subproject_id => '!*',
46
                                                "#{field_name}" => row.id,
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff