Project

General

Profile

Feature #31322 » issue-31322-ver.3.diff

Toshi MARUYAMA, 2019-10-09 10:01

View differences:

app/helpers/issues_helper.rb
315 315
    ids.size
316 316
  end
317 317

  
318
  def add_confirm_dialog_to_issue_submit_button_js_string
319
    # TODO: use i18n
320
    confirm_message = "POC"
321
    closed_issue_status_ids = @allowed_statuses.select{|i| i.is_closed?}.pluck(:id).map(&:to_s)
322
    "add_confirm_dialog_to_issue_submit_button(#{closed_issue_status_ids.to_json}, '#{confirm_message}')".html_safe
323
  end
324

  
318 325
  def issues_destroy_confirmation_message(issues)
319 326
    issues = [issues] unless issues.is_a?(Array)
320 327
    message = l(:text_issues_destroy_confirmation)
app/views/issues/_action_menu.html.erb
1 1
<div class="contextual">
2
<% onclick_functions = 'showAndScrollTo("update", "issue_notes");'
3
   onclick_functions << "#{add_confirm_dialog_to_issue_submit_button_js_string};"
4
   onclick_functions << "return false;" %>
2 5
<%= link_to l(:button_edit), edit_issue_path(@issue),
3
            :onclick => 'showAndScrollTo("update", "issue_notes"); return false;',
6
            :onclick => onclick_functions,
4 7
            :class => 'icon icon-edit', :accesskey => accesskey(:edit) if @issue.editable? %>
5 8
<%= link_to l(:button_log_time), new_issue_time_entry_path(@issue),
6 9
            :class => 'icon icon-time-add' if User.current.allowed_to?(:log_time, @project) %>
app/views/issues/_attributes.html.erb
3 3
<div class="splitcontent">
4 4
<div class="splitcontentleft">
5 5
<% if @issue.safe_attribute?('status_id') && @allowed_statuses.present? %>
6
<% onchange_functions = "updateIssueFrom('#{escape_javascript(update_issue_form_path(@project, @issue))}', this);"
7
   onchange_functions << "#{add_confirm_dialog_to_issue_submit_button_js_string};" %>
6 8
<p><%= f.select :status_id, (@allowed_statuses.collect {|p| [p.name, p.id]}), {:required => true},
7
                :onchange => "updateIssueFrom('#{escape_javascript(update_issue_form_path(@project, @issue))}', this)" %></p>
9
                :onchange => onchange_functions %></p>
8 10
<%= hidden_field_tag 'was_default_status', @issue.status_id, :id => nil if @issue.status == @issue.default_status %>
9 11
<% else %>
10 12
<p><label><%= l(:field_status) %></label> <%= @issue.status %></p>
app/views/issues/_edit.html.erb
72 72

  
73 73
    <%= f.hidden_field :lock_version %>
74 74
    <%= hidden_field_tag 'last_journal_id', params[:last_journal_id] || @issue.last_journal_id %>
75
    <%= submit_tag l(:button_submit) %>
75
    <%= submit_tag l(:button_submit), :id => "issue_submit_button" %>
76 76
    <%= link_to l(:button_cancel), issue_path(id: @issue.id), :onclick => params[:action] == 'show' ? "$('#update').hide(); return false;" : '' %>
77 77

  
78 78
    <%= hidden_field_tag 'prev_issue_id', @prev_issue_id if @prev_issue_id %>
public/javascripts/application.js
570 570
  return key;
571 571
}
572 572

  
573
function add_confirm_dialog_to_issue_submit_button(closed_issue_status_ids, confirm_message) {
574
  var children = $("#issue_tree").find("tr.issue.child");
575
  if (($.inArray($("#issue_status_id").val(), closed_issue_status_ids) > -1) &&
576
      (children.length > 0) &&
577
      ((children.length - $("#issue_tree").find("tr.issue.child.closed").length) > 0)) {
578
    $("#issue_submit_button").attr({
579
        "data-confirm": confirm_message
580
    });
581
  } else {
582
    $("#issue_submit_button").removeAttr("data-confirm");
583
  }
584
  return true;
585
}
586

  
573 587
function updateIssueFrom(url, el) {
574 588
  $('#all_attributes input, #all_attributes textarea, #all_attributes select').each(function(){
575 589
    $(this).data('valuebeforeupdate', $(this).val());
(4-4/15)