Redmine 4.1.1
This commit is contained in:
parent
33e7b881a5
commit
3d976f1b3b
1593 changed files with 36180 additions and 19489 deletions
|
@ -1,7 +1,13 @@
|
|||
<div class="contextual">
|
||||
<%= link_to l(:button_edit), edit_issue_path(@issue), :onclick => 'showAndScrollTo("update", "issue_notes"); return false;', :class => 'icon icon-edit', :accesskey => accesskey(:edit) if @issue.editable? %>
|
||||
<%= 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) %>
|
||||
<%= link_to l(:button_edit), edit_issue_path(@issue),
|
||||
:onclick => 'showAndScrollTo("update", "issue_notes"); return false;',
|
||||
:class => 'icon icon-edit', :accesskey => accesskey(:edit) if @issue.editable? %>
|
||||
<%= 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) %>
|
||||
<%= watcher_link(@issue, User.current) %>
|
||||
<%= link_to l(:button_copy), project_copy_issue_path(@project, @issue), :class => 'icon icon-copy' if User.current.allowed_to?(:copy_issues, @project) && Issue.allowed_target_projects.any? %>
|
||||
<%= link_to l(:button_delete), issue_path(@issue), :data => {:confirm => issues_destroy_confirmation_message(@issue)}, :method => :delete, :class => 'icon icon-del' if @issue.deletable? %>
|
||||
<%= link_to l(:button_copy), project_copy_issue_path(@project, @issue),
|
||||
:class => 'icon icon-copy' if User.current.allowed_to?(:copy_issues, @project) && Issue.allowed_target_projects.any? %>
|
||||
<%= link_to l(:button_delete), issue_path(@issue),
|
||||
:data => {:confirm => issues_destroy_confirmation_message(@issue)},
|
||||
:method => :delete, :class => 'icon icon-del' if @issue.deletable? %>
|
||||
</div>
|
||||
|
|
10
app/views/issues/_action_menu_edit.html.erb
Normal file
10
app/views/issues/_action_menu_edit.html.erb
Normal file
|
@ -0,0 +1,10 @@
|
|||
<div style="clear: both;"></div>
|
||||
<%= render :partial => 'action_menu' %>
|
||||
|
||||
<div style="clear: both;"></div>
|
||||
<% if @issue.editable? %>
|
||||
<div id="update" style="display:none;">
|
||||
<h3><%= l(:button_edit) %></h3>
|
||||
<%= render :partial => 'edit' %>
|
||||
</div>
|
||||
<% end %>
|
|
@ -4,7 +4,7 @@
|
|||
<div class="splitcontentleft">
|
||||
<% if @issue.safe_attribute?('status_id') && @allowed_statuses.present? %>
|
||||
<p><%= f.select :status_id, (@allowed_statuses.collect {|p| [p.name, p.id]}), {:required => true},
|
||||
:onchange => "updateIssueFrom('#{escape_javascript update_issue_form_path(@project, @issue)}', this)" %></p>
|
||||
:onchange => "updateIssueFrom('#{escape_javascript(update_issue_form_path(@project, @issue))}', this)" %></p>
|
||||
<%= hidden_field_tag 'was_default_status', @issue.status_id, :id => nil if @issue.status == @issue.default_status %>
|
||||
<% else %>
|
||||
<p><label><%= l(:field_status) %></label> <%= @issue.status %></p>
|
||||
|
@ -15,11 +15,14 @@
|
|||
<% end %>
|
||||
|
||||
<% if @issue.safe_attribute? 'assigned_to_id' %>
|
||||
<p><%= f.select :assigned_to_id, principals_options_for_select(@issue.assignable_users, @issue.assigned_to), :include_blank => true, :required => @issue.required_attribute?('assigned_to_id') %></p>
|
||||
<p><%= f.select :assigned_to_id, principals_options_for_select(@issue.assignable_users, @issue.assigned_to),
|
||||
:include_blank => true, :required => @issue.required_attribute?('assigned_to_id') %></p>
|
||||
<% end %>
|
||||
|
||||
<% if @issue.safe_attribute?('category_id') && @issue.project.issue_categories.any? %>
|
||||
<p><%= f.select :category_id, (@issue.project.issue_categories.collect {|c| [c.name, c.id]}), :include_blank => true, :required => @issue.required_attribute?('category_id') %>
|
||||
<p><%= f.select :category_id, (@issue.project.issue_categories.collect {|c| [c.name, c.id]}),
|
||||
{:include_blank => true, :required => @issue.required_attribute?('category_id')},
|
||||
:onchange => ("updateIssueFrom('#{escape_javascript(update_issue_form_path(@project, @issue))}', this)" if @issue.new_record?) %>
|
||||
<%= link_to(l(:label_issue_category_new),
|
||||
new_project_issue_category_path(@issue.project),
|
||||
:remote => true,
|
||||
|
@ -31,7 +34,8 @@
|
|||
<% end %>
|
||||
|
||||
<% if @issue.safe_attribute?('fixed_version_id') && @issue.assignable_versions.any? %>
|
||||
<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') %>
|
||||
<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') %>
|
||||
<%= link_to(l(:label_version_new),
|
||||
new_project_version_path(@issue.project),
|
||||
:remote => true,
|
||||
|
@ -46,8 +50,9 @@
|
|||
|
||||
<div class="splitcontentright">
|
||||
<% if @issue.safe_attribute? 'parent_issue_id' %>
|
||||
<p id="parent_issue"><%= f.text_field :parent_issue_id, :size => 10, :required => @issue.required_attribute?('parent_issue_id') %></p>
|
||||
<%= javascript_tag "observeAutocompleteField('issue_parent_issue_id', '#{escape_javascript auto_complete_issues_path(:project_id => @issue.project, :scope => Setting.cross_project_subtasks, :status => @issue.closed? ? 'c' : 'o', :issue_id => @issue.id)}')" %>
|
||||
<p id="parent_issue"><%= f.text_field :parent_issue_id, :size => 10,
|
||||
:required => @issue.required_attribute?('parent_issue_id') %></p>
|
||||
<%= javascript_tag "observeAutocompleteField('issue_parent_issue_id', '#{escape_javascript(auto_complete_issues_path(:project_id => @issue.project, :scope => Setting.cross_project_subtasks, :status => @issue.closed? ? 'c' : 'o', :issue_id => @issue.id))}')" %>
|
||||
<% end %>
|
||||
|
||||
<% if @issue.safe_attribute? 'start_date' %>
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
<% changesets.each do |changeset| %>
|
||||
<div class="changeset">
|
||||
<p><%= link_to_revision(changeset, changeset.repository,
|
||||
:text => "#{l(:label_revision)} #{changeset.format_identifier}") %>
|
||||
<% if changeset.filechanges.any? && User.current.allowed_to?(:browse_repository, changeset.project) %>
|
||||
(<%= link_to(l(:label_diff),
|
||||
:controller => 'repositories',
|
||||
:action => 'diff',
|
||||
:id => changeset.project,
|
||||
:repository_id => changeset.repository.identifier_param,
|
||||
:path => "",
|
||||
:rev => changeset.identifier) %>)
|
||||
<% end %>
|
||||
<br />
|
||||
<span class="author"><%= authoring(changeset.committed_on, changeset.author) %></span></p>
|
||||
<div class="wiki changeset-comments"><%= format_changeset_comments changeset %></div>
|
||||
</div>
|
||||
<% end %>
|
|
@ -29,8 +29,13 @@
|
|||
<% end %>
|
||||
<% if @issue.notes_addable? %>
|
||||
<fieldset><legend><%= l(:field_notes) %></legend>
|
||||
<%= f.text_area :notes, :cols => 60, :rows => 10, :class => 'wiki-edit', :no_label => true %>
|
||||
<%= wikitoolbar_for 'issue_notes' %>
|
||||
<%= f.text_area :notes, :cols => 60, :rows => 10, :class => 'wiki-edit',
|
||||
:data => {
|
||||
:auto_complete => true,
|
||||
:issues_url => auto_complete_issues_path(:project_id => @issue.project, :q => '')
|
||||
},
|
||||
:no_label => true %>
|
||||
<%= wikitoolbar_for 'issue_notes', preview_issue_path(:project_id => @project, :issue_id => @issue) %>
|
||||
|
||||
<% if @issue.safe_attribute? 'private_notes' %>
|
||||
<%= f.check_box :private_notes, :no_label => true %> <label for="issue_private_notes"><%= l(:field_private_notes) %></label>
|
||||
|
@ -68,13 +73,10 @@
|
|||
<%= f.hidden_field :lock_version %>
|
||||
<%= hidden_field_tag 'last_journal_id', params[:last_journal_id] || @issue.last_journal_id %>
|
||||
<%= submit_tag l(:button_submit) %>
|
||||
<%= preview_link preview_edit_issue_path(:project_id => @project, :id => @issue), 'issue-form' %>
|
||||
| <%= link_to l(:button_cancel), issue_path(id: @issue.id), :onclick => params[:action] == 'show' ? "$('#update').hide(); return false;" : '' %>
|
||||
<%= link_to l(:button_cancel), issue_path(id: @issue.id), :onclick => params[:action] == 'show' ? "$('#update').hide(); return false;" : '' %>
|
||||
|
||||
<%= hidden_field_tag 'prev_issue_id', @prev_issue_id if @prev_issue_id %>
|
||||
<%= hidden_field_tag 'next_issue_id', @next_issue_id if @next_issue_id %>
|
||||
<%= hidden_field_tag 'issue_position', @issue_position if @issue_position %>
|
||||
<%= hidden_field_tag 'issue_count', @issue_count if @issue_count %>
|
||||
<% end %>
|
||||
|
||||
<div id="preview" class="wiki"></div>
|
||||
|
|
|
@ -9,14 +9,20 @@
|
|||
</p>
|
||||
<% end %>
|
||||
|
||||
<% if (@issue.safe_attribute?('project_id') || @issue.project_id_changed?) && (!@issue.new_record? || @project.nil? || @issue.copy?) %>
|
||||
<p><%= f.select :project_id, project_tree_options_for_select(@issue.allowed_target_projects, :selected => @issue.project), {:required => true},
|
||||
<% projects = @issue.allowed_target_projects(User.current, @project) %>
|
||||
<% if (@issue.safe_attribute?('project_id') || @issue.project_id_changed?) && (@project.nil? || projects.length > 1 || @issue.copy?) %>
|
||||
<p><%= f.select :project_id, project_tree_options_for_select(projects, :selected => @issue.project), {:required => true},
|
||||
:onchange => "updateIssueFrom('#{escape_javascript update_issue_form_path(@project, @issue)}', this)" %></p>
|
||||
<% end %>
|
||||
|
||||
<% if @issue.safe_attribute?('tracker_id') || (@issue.persisted? && @issue.tracker_id_changed?) %>
|
||||
<p><%= f.select :tracker_id, trackers_options_for_select(@issue), {:required => true},
|
||||
:onchange => "updateIssueFrom('#{escape_javascript update_issue_form_path(@project, @issue)}', this)" %></p>
|
||||
<p>
|
||||
<%= f.select :tracker_id, trackers_options_for_select(@issue), {:required => true},
|
||||
:onchange => "updateIssueFrom('#{escape_javascript update_issue_form_path(@project, @issue)}', this)",
|
||||
:title => @issue.tracker.description %>
|
||||
<%= content_tag 'a', l(:label_open_trackers_description), :class => 'icon-only icon-help', :title => l(:label_open_trackers_description), :onclick => "showModal('trackers_description', '500px'); return false;", :href => '#' if trackers_for_select(@issue).any? {|t| t.description.present? } %>
|
||||
</p>
|
||||
<%= render partial: 'issues/trackers_description', locals: {trackers: trackers_for_select(@issue)} %>
|
||||
<% end %>
|
||||
|
||||
<% if @issue.safe_attribute? 'subject' %>
|
||||
|
@ -28,15 +34,16 @@
|
|||
<%= f.label_for_field :description, :required => @issue.required_attribute?('description') %>
|
||||
<%= link_to_function content_tag(:span, l(:button_edit), :class => 'icon icon-edit'), '$(this).hide(); $("#issue_description_and_toolbar").show()' unless @issue.new_record? %>
|
||||
<%= content_tag 'span', :id => "issue_description_and_toolbar", :style => (@issue.new_record? ? nil : 'display:none') do %>
|
||||
<%= f.text_area :description,
|
||||
:cols => 60,
|
||||
<%= f.text_area :description, :cols => 60, :accesskey => accesskey(:edit), :class => 'wiki-edit',
|
||||
:rows => [[10, @issue.description.to_s.length / 50].max, 20].min,
|
||||
:accesskey => accesskey(:edit),
|
||||
:class => 'wiki-edit',
|
||||
:data => {
|
||||
:auto_complete => true,
|
||||
:issues_url => auto_complete_issues_path(:project_id => @issue.project, :q => '')
|
||||
},
|
||||
:no_label => true %>
|
||||
<% end %>
|
||||
</p>
|
||||
<%= wikitoolbar_for 'issue_description' %>
|
||||
<%= wikitoolbar_for 'issue_description', preview_issue_path(:project_id => @issue.project, :issue_id => @issue.id) %>
|
||||
<% end %>
|
||||
|
||||
<div id="attributes" class="attributes">
|
||||
|
|
|
@ -20,4 +20,5 @@
|
|||
|
||||
<% custom_field_values_full_width.each do |value| %>
|
||||
<p><%= custom_field_tag_with_label :issue, value, :required => @issue.required_attribute?(value.custom_field_id) %></p>
|
||||
<%= wikitoolbar_for "issue_custom_field_values_#{value.custom_field_id}", preview_issue_path(:project_id => @issue.project, :issue_id => @issue.id) if value.custom_field.full_text_formatting? %>
|
||||
<% end %>
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
<%= form_tag({}, :data => {:cm_url => issues_context_menu_path}) do -%>
|
||||
<%= hidden_field_tag 'back_url', url_for(:params => request.query_parameters), :id => nil %>
|
||||
<%= query_columns_hidden_tags(query) %>
|
||||
<div class="autoscroll">
|
||||
<table class="list issues odd-even <%= query.css_classes %>">
|
||||
<thead>
|
||||
|
@ -14,6 +15,7 @@
|
|||
<% query.inline_columns.each do |column| %>
|
||||
<%= column_header(query, column, query_options) %>
|
||||
<% end %>
|
||||
<th class="buttons"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
@ -21,9 +23,9 @@
|
|||
<% if group_name %>
|
||||
<% reset_cycle %>
|
||||
<tr class="group open">
|
||||
<td colspan="<%= query.inline_columns.size + 1 %>">
|
||||
<span class="expander" onclick="toggleRowGroup(this);"> </span>
|
||||
<span class="name"><%= group_name %></span> <span class="count"><%= group_count %></span> <span class="totals"><%= group_totals %></span>
|
||||
<td colspan="<%= query.inline_columns.size + 2 %>">
|
||||
<span class="expander icon icon-expended" onclick="toggleRowGroup(this);"> </span>
|
||||
<span class="name"><%= group_name %></span> <span class="badge badge-count count"><%= group_count %></span> <span class="totals"><%= group_totals %></span>
|
||||
<%= link_to_function("#{l(:button_collapse_all)}/#{l(:button_expand_all)}",
|
||||
"toggleAllRowGroups(this)", :class => 'toggle-all') %>
|
||||
</td>
|
||||
|
@ -34,11 +36,12 @@
|
|||
<% query.inline_columns.each do |column| %>
|
||||
<%= content_tag('td', column_content(column, issue), :class => column.css_classes) %>
|
||||
<% end %>
|
||||
<td class="buttons"><%= link_to_context_menu %></td>
|
||||
</tr>
|
||||
<% query.block_columns.each do |column|
|
||||
if (text = column_content(column, issue)) && text.present? -%>
|
||||
<tr class="<%= current_cycle %>">
|
||||
<td colspan="<%= query.inline_columns.size + 1 %>" class="<%= column.css_classes %>">
|
||||
<td colspan="<%= query.inline_columns.size + 2 %>" class="<%= column.css_classes %> block_column">
|
||||
<% if query.block_columns.count > 1 %>
|
||||
<span><%= column.caption %></span>
|
||||
<% end %>
|
||||
|
|
|
@ -1,16 +1,3 @@
|
|||
<h3><%= l(:label_issue_plural) %></h3>
|
||||
|
||||
<ul>
|
||||
<li><%= link_to l(:label_issue_view_all), _project_issues_path(@project, :set_filter => 1) %></li>
|
||||
<% if @project %>
|
||||
<li><%= link_to l(:field_summary), project_issues_report_path(@project) %></li>
|
||||
<% end %>
|
||||
|
||||
<% if User.current.allowed_to?(:import_issues, @project, :global => true) %>
|
||||
<li><%= link_to l(:button_import), new_issues_import_path %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
|
||||
<%= call_hook(:view_issues_sidebar_issues_bottom) %>
|
||||
<%= call_hook(:view_issues_sidebar_planning_bottom) %>
|
||||
|
||||
|
|
22
app/views/issues/_trackers_description.html.erb
Normal file
22
app/views/issues/_trackers_description.html.erb
Normal file
|
@ -0,0 +1,22 @@
|
|||
<% if trackers.any? {|t| t.description.present? } %>
|
||||
<div class="modal" id="trackers_description">
|
||||
<h3 class="title"><%= l(:label_trackers_description) %></h3>
|
||||
<dl>
|
||||
<% trackers.each do |tracker| %>
|
||||
<% if tracker.description.present? %>
|
||||
<dt><%= content_tag 'a', tracker.name, :onclick => "selectTracker('#{tracker.id}'); return false;", :href => '#', :title => l(:text_select_apply_tracker) %></dt>
|
||||
<dd><%= tracker.description %></dd>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</dl>
|
||||
</div>
|
||||
<% end %>
|
||||
<%= javascript_tag do %>
|
||||
function selectTracker(id) {
|
||||
var target = $('#issue_tracker_id');
|
||||
target.attr("selected", false);
|
||||
target.find('option[value="' + id + '"]').prop('selected', true);
|
||||
target.trigger('change');
|
||||
hideModal('#trackers_description h3');
|
||||
}
|
||||
<% end %>
|
|
@ -28,6 +28,7 @@
|
|||
<fieldset class="attributes">
|
||||
<legend><%= l(:label_change_properties) %></legend>
|
||||
|
||||
<div class="splitcontent">
|
||||
<div class="splitcontentleft">
|
||||
<% if @allowed_projects.present? %>
|
||||
<p>
|
||||
|
@ -188,18 +189,31 @@
|
|||
</p>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend><%= l(:field_notes) %></legend>
|
||||
<%= text_area_tag 'notes', @notes, :cols => 60, :rows => 10, :class => 'wiki-edit' %>
|
||||
<%= text_area_tag 'notes', @notes, :cols => 60, :rows => 10, :class => 'wiki-edit',
|
||||
:data => {
|
||||
:auto_complete => true,
|
||||
:issues_url => auto_complete_issues_path(:project_id => @project, :q => '')
|
||||
}
|
||||
%>
|
||||
<%= wikitoolbar_for 'notes' %>
|
||||
|
||||
<% if @safe_attributes.include?('private_notes') %>
|
||||
<label class="inline">
|
||||
<%= check_box_tag 'issue[private_notes]', 1, false %>
|
||||
<%= l(:field_private_notes) %>
|
||||
</label>
|
||||
<% end %>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<% if @values_by_custom_field.present? %>
|
||||
<div class="flash warning">
|
||||
<%= l(:warning_fields_cleared_on_bulk_edit) %>:<br />
|
||||
<%= l(:warning_fields_cleared_on_bulk_edit) %>:<br />
|
||||
<%= safe_join(@values_by_custom_field.map {|field, ids| content_tag "span", "#{field.name} (#{ids.size})"}, ', ') %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
@ -220,7 +234,7 @@
|
|||
<% end %>
|
||||
|
||||
<%= javascript_tag do %>
|
||||
$(window).load(function(){
|
||||
$(window).on('load', function(){
|
||||
$(document).on('change', 'input[data-disables]', function(){
|
||||
if ($(this).prop('checked')){
|
||||
$($(this).data('disables')).attr('disabled', true).val('');
|
||||
|
|
|
@ -2,6 +2,19 @@
|
|||
<% if User.current.allowed_to?(:add_issues, @project, :global => true) && (@project.nil? || Issue.allowed_target_trackers(@project).any?) %>
|
||||
<%= link_to l(:label_issue_new), _new_project_issue_path(@project), :class => 'icon icon-add new-issue' %>
|
||||
<% end %>
|
||||
<%= actions_dropdown do %>
|
||||
<% if @project %>
|
||||
<%= link_to l(:field_summary), project_issues_report_path(@project), :class => 'icon icon-stats' %>
|
||||
<% end %>
|
||||
|
||||
<% if User.current.allowed_to?(:import_issues, @project, :global => true) %>
|
||||
<%= link_to l(:button_import), new_issues_import_path(:project_id => @project), :class => 'icon icon-import' %>
|
||||
<% end %>
|
||||
|
||||
<%= link_to_if_authorized l(:label_settings),
|
||||
{:controller => 'projects', :action => 'settings', :id => @project, :tab => 'issues'},
|
||||
:class => 'icon icon-settings' if User.current.allowed_to?(:manage_categories, @project) %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<h2><%= @query.new_record? ? l(:label_issue_plural) : @query.name %></h2>
|
||||
|
@ -34,18 +47,25 @@
|
|||
<label><%= radio_button_tag 'c[]', '', true %> <%= l(:description_selected_columns) %></label><br />
|
||||
<label><%= radio_button_tag 'c[]', 'all_inline' %> <%= l(:description_all_columns) %></label>
|
||||
</p>
|
||||
<p>
|
||||
<label><%= check_box_tag 'c[]', 'description', @query.has_column?(:description) %> <%= l(:field_description) %></label>
|
||||
<label><%= check_box_tag 'c[]', 'last_notes', @query.has_column?(:last_notes) %> <%= l(:label_last_notes) %></label>
|
||||
</p>
|
||||
<% if @query.available_block_columns.any? %>
|
||||
<fieldset id="csv-export-block-columns">
|
||||
<legend>
|
||||
<%= toggle_checkboxes_link('#csv-export-block-columns input[type=checkbox]') %>
|
||||
</legend>
|
||||
<% @query.available_block_columns.each do |column| %>
|
||||
<label><%= check_box_tag 'c[]', column.name, @query.has_column?(column), :id => nil %> <%= column.caption %></label>
|
||||
<% end %>
|
||||
</fieldset>
|
||||
<% end %>
|
||||
<%= export_csv_encoding_select_tag %>
|
||||
<% if @issue_count > Setting.issues_export_limit.to_i %>
|
||||
<p class="icon icon-warning">
|
||||
<%= l(:setting_issues_export_limit) %>: <%= Setting.issues_export_limit.to_i %>
|
||||
</p>
|
||||
<% end %>
|
||||
<p class="buttons">
|
||||
<%= submit_tag l(:button_export), :name => nil, :onclick => "hideModal(this);" %>
|
||||
<%= submit_tag l(:button_cancel), :name => nil, :onclick => "hideModal(this);", :type => 'button' %>
|
||||
<%= submit_tag l(:button_export), :name => nil, :onclick => "hideModal(this);", :data => { :disable_with => false } %>
|
||||
<%= link_to_function l(:button_cancel), "hideModal(this);" %>
|
||||
</p>
|
||||
<% end %>
|
||||
</div>
|
||||
|
|
|
@ -39,11 +39,8 @@
|
|||
|
||||
<%= submit_tag l(:button_create) %>
|
||||
<%= submit_tag l(:button_create_and_continue), :name => 'continue' %>
|
||||
<%= preview_link preview_new_issue_path(:project_id => @issue.project), 'issue-form' %>
|
||||
<% end %>
|
||||
|
||||
<div id="preview" class="wiki"></div>
|
||||
|
||||
<% content_for :header_tags do %>
|
||||
<%= robot_exclusion_tag %>
|
||||
<% end %>
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
replaceIssueFormWith('<%= escape_javascript(render :partial => 'form') %>');
|
||||
<% if params[:form_update_triggered_by] == "issue_project_id" %>
|
||||
$("#watchers_form_container").html('<%= escape_javascript(render :partial => 'issues/watchers_form') %>');
|
||||
<% case params[:form_update_triggered_by] %>
|
||||
<% when "issue_project_id" %>
|
||||
$("#watchers_form_container").html('<%= escape_javascript(render :partial => 'issues/watchers_form') %>');
|
||||
<% when "issue_category_id" %>
|
||||
$('#issue_assigned_to_id').find('option').first().html('<%= escape_javascript(@issue.category.try(:assigned_to).try(:name)).presence || ' '.html_safe %>');
|
||||
<% end %>
|
||||
|
|
|
@ -26,8 +26,8 @@
|
|||
<% end %>
|
||||
|
||||
<div class="gravatar-with-child">
|
||||
<%= avatar(@issue.author, :size => "50", :title => l(:field_author)) %>
|
||||
<%= avatar(@issue.assigned_to, :size => "22", :class => "gravatar gravatar-child", :title => l(:field_assigned_to)) if @issue.assigned_to %>
|
||||
<%= author_avatar(@issue.author, :size => "50") %>
|
||||
<%= assignee_avatar(@issue.assigned_to, :size => "22", :class => "gravatar-child") if @issue.assigned_to %>
|
||||
</div>
|
||||
|
||||
<div class="subject">
|
||||
|
@ -59,7 +59,7 @@
|
|||
rows.right l(:field_start_date), format_date(@issue.start_date), :class => 'start-date'
|
||||
end
|
||||
unless @issue.disabled_core_fields.include?('due_date')
|
||||
rows.right l(:field_due_date), format_date(@issue.due_date), :class => 'due-date'
|
||||
rows.right l(:field_due_date), issue_due_date_details(@issue), :class => 'due-date'
|
||||
end
|
||||
unless @issue.disabled_core_fields.include?('done_ratio')
|
||||
rows.right l(:field_done_ratio), progress_bar(@issue.done_ratio, :legend => "#{@issue.done_ratio}%"), :class => 'progress'
|
||||
|
@ -75,9 +75,8 @@ end %>
|
|||
<%= call_hook(:view_issues_show_details_bottom, :issue => @issue) %>
|
||||
</div>
|
||||
|
||||
<% if @issue.description? || @issue.attachments.any? -%>
|
||||
<hr />
|
||||
<% if @issue.description? %>
|
||||
<hr />
|
||||
<div class="description">
|
||||
<div class="contextual">
|
||||
<%= link_to l(:button_quote), quoted_issue_path(@issue), :remote => true, :method => 'post', :class => 'icon icon-comment' if @issue.notes_addable? %>
|
||||
|
@ -89,8 +88,11 @@ end %>
|
|||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
<%= link_to_attachments @issue, :thumbnails => true %>
|
||||
<% end -%>
|
||||
<% if @issue.attachments.any? %>
|
||||
<hr />
|
||||
<p><strong><%=l(:label_attachment_plural)%></strong></p>
|
||||
<%= link_to_attachments @issue, :thumbnails => true %>
|
||||
<% end %>
|
||||
|
||||
<%= render_full_width_custom_fields_rows(@issue) %>
|
||||
|
||||
|
@ -118,31 +120,13 @@ end %>
|
|||
|
||||
</div>
|
||||
|
||||
<% if @changesets.present? %>
|
||||
<div id="issue-changesets">
|
||||
<h3><%=l(:label_associated_revisions)%></h3>
|
||||
<%= render :partial => 'changesets', :locals => { :changesets => @changesets} %>
|
||||
</div>
|
||||
<% end %>
|
||||
<%= render partial: 'action_menu_edit' if User.current.wants_comments_in_reverse_order? %>
|
||||
|
||||
<% if @journals.present? %>
|
||||
<div id="history">
|
||||
<h3><%=l(:label_history)%></h3>
|
||||
<%= render :partial => 'history', :locals => { :issue => @issue, :journals => @journals } %>
|
||||
<%= render_tabs issue_history_tabs, issue_history_default_tab %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
|
||||
<div style="clear: both;"></div>
|
||||
<%= render :partial => 'action_menu' %>
|
||||
|
||||
<div style="clear: both;"></div>
|
||||
<% if @issue.editable? %>
|
||||
<div id="update" style="display:none;">
|
||||
<h3><%= l(:button_edit) %></h3>
|
||||
<%= render :partial => 'edit' %>
|
||||
</div>
|
||||
<% end %>
|
||||
<%= render partial: 'action_menu_edit' unless User.current.wants_comments_in_reverse_order? %>
|
||||
|
||||
<% other_formats_links do |f| %>
|
||||
<%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
|
||||
|
|
24
app/views/issues/tabs/_changesets.html.erb
Normal file
24
app/views/issues/tabs/_changesets.html.erb
Normal file
|
@ -0,0 +1,24 @@
|
|||
<% @changesets.each do |changeset| %>
|
||||
<div id="changeset-<%= changeset.id %>" class="changeset journal">
|
||||
<h4>
|
||||
<%= avatar(changeset.user, :size => "24") %>
|
||||
<%= authoring changeset.committed_on, changeset.author, :label => :label_added_time_by %>
|
||||
</h4>
|
||||
<p><%= link_to_revision(changeset, changeset.repository,
|
||||
:text => "#{l(:label_revision)} #{changeset.format_identifier}") %>
|
||||
<% if changeset.filechanges.any? && User.current.allowed_to?(:browse_repository, changeset.project) %>
|
||||
(<%= link_to(l(:label_diff),
|
||||
:controller => 'repositories',
|
||||
:action => 'diff',
|
||||
:id => changeset.project,
|
||||
:repository_id => changeset.repository.identifier_param,
|
||||
:path => "",
|
||||
:rev => changeset.identifier) %>)
|
||||
<% end %></p>
|
||||
|
||||
<div class="wiki changeset-comments">
|
||||
<%= format_changeset_comments changeset %>
|
||||
</div>
|
||||
</div>
|
||||
<%= call_hook(:view_issues_history_changeset_bottom, { :changeset => changeset }) %>
|
||||
<% end %>
|
|
@ -1,11 +1,21 @@
|
|||
<%
|
||||
issue = tab[:locals][:issue]
|
||||
journals = tab[:locals][:journals]
|
||||
%>
|
||||
|
||||
<% reply_links = issue.notes_addable? -%>
|
||||
<% for journal in journals %>
|
||||
<div id="change-<%= journal.id %>" class="<%= journal.css_classes %>">
|
||||
<div id="note-<%= journal.indice %>">
|
||||
<h4><a href="#note-<%= journal.indice %>" class="journal-link">#<%= journal.indice %></a>
|
||||
<%= avatar(journal.user, :size => "24") %>
|
||||
<%= authoring journal.created_on, journal.user, :label => :label_updated_time_by %>
|
||||
<%= render_private_notes_indicator(journal) %></h4>
|
||||
<div class="contextual">
|
||||
<span class="journal-actions"><%= render_journal_actions(issue, journal, :reply_links => reply_links) %></span>
|
||||
<a href="#note-<%= journal.indice %>" class="journal-link">#<%= journal.indice %></a>
|
||||
</div>
|
||||
<h4 class='note-header'>
|
||||
<%= avatar(journal.user) %>
|
||||
<%= authoring journal.created_on, journal.user, :label => :label_updated_time_by %>
|
||||
<%= render_private_notes_indicator(journal) %>
|
||||
</h4>
|
||||
|
||||
<% if journal.details.any? %>
|
||||
<ul class="details">
|
28
app/views/issues/tabs/_time_entries.html.erb
Normal file
28
app/views/issues/tabs/_time_entries.html.erb
Normal file
|
@ -0,0 +1,28 @@
|
|||
<% for time_entry in time_entries%>
|
||||
<div id="time-entry-<%= time_entry.id %>" class="time_entry journal">
|
||||
<% if time_entry.editable_by?(User.current) -%>
|
||||
<div class="contextual">
|
||||
<%= link_to l(:button_edit), edit_time_entry_path(time_entry),
|
||||
:title => l(:button_edit),
|
||||
:class => 'icon-only icon-edit' %>
|
||||
<%= link_to l(:button_delete), time_entry_path(time_entry),
|
||||
:data => {:confirm => l(:text_are_you_sure)},
|
||||
:method => :delete,
|
||||
:title => l(:button_delete),
|
||||
:class => 'icon-only icon-del' %>
|
||||
</div>
|
||||
<% end -%>
|
||||
<h4>
|
||||
<%= avatar(time_entry.user, :size => "24") %>
|
||||
<%= authoring time_entry.created_on, time_entry.user, :label => :label_added_time_by %>
|
||||
</h4>
|
||||
<ul class="details">
|
||||
<li>
|
||||
<strong><%= l(:label_time_entry_plural) %></strong>:
|
||||
<%= l_hours_short time_entry.hours %>
|
||||
</li>
|
||||
</ul>
|
||||
<p><%= time_entry.comments %></p>
|
||||
</div>
|
||||
<%= call_hook(:view_issues_history_time_entry_bottom, { :time_entry => time_entry }) %>
|
||||
<% end %>
|
Loading…
Add table
Add a link
Reference in a new issue