Index: .
===================================================================
--- . (revision 23)
+++ . (working copy)
Property changes on: .
___________________________________________________________________
Added: svn:mergeinfo
## -0,0 +0,1 ##
Merged /branches/close_action:r21-23
Index: app/controllers/sprints_controller.rb
===================================================================
--- app/controllers/sprints_controller.rb (revision 23)
+++ app/controllers/sprints_controller.rb (working copy)
@@ -18,7 +18,7 @@
:stats, :sort]
before_filter :find_project_by_project_id,
:only => [:index, :new, :create, :change_task_status, :burndown_index,
- :stats_index]
+ :stats_index, :update_pbi_status]
before_filter :find_pbis, :only => [:sort]
before_filter :authorize
@@ -111,11 +111,28 @@
@issue.due_date = Date.today
end
@issue.save!
+
+ if @issue.is_pbi_task_closed? and
+ !(Scrum::Setting.action_when_all_task_closed.nil?) and
+ Scrum::Setting.action_when_all_task_closed.to_i == ActionCloseTask.actions[:ask_user]
+ @askuser = true
+ end
+
respond_to do |format|
format.js { render 'scrum/update_task' }
end
end
+ def update_pbi_status
+ @pbi = Issue.find(params[:pbi].match(/^pbi_(\d+)$/)[1].to_i)
+ @pbi.status = IssueStatus.find(params[:status].to_i)
+ raise 'New status is not allowed' unless @pbi.new_statuses_allowed_to.include?(@pbi.status)
+ @pbi.save!
+ respond_to do |format|
+ format.js { render 'scrum/update_pbi' }
+ end
+ end
+
def edit_effort
end
Index: app/models/action_close_task.rb
===================================================================
--- app/models/action_close_task.rb (nonexistent)
+++ app/models/action_close_task.rb (working copy)
@@ -0,0 +1,5 @@
+class ActionCloseTask < ActiveRecord::Base
+
+ enum action: [ :ask_user, :close_pbi ]
+
+end
\ No newline at end of file
Index: app/views/scrum/_ask_user_modal.html.erb
===================================================================
--- app/views/scrum/_ask_user_modal.html.erb (nonexistent)
+++ app/views/scrum/_ask_user_modal.html.erb (working copy)
@@ -0,0 +1,11 @@
+
<%= l(:label_ask_user_modal_title) %>
+
+
+
+All the task are closed.
+Do you want to close the parent pbi ?
+
+
+ <%= submit_tag l(:label_button_yes), :name => "Yes", :onclick => "UpdatePbiAndClose(this);", :type => "button" %>
+ <%= submit_tag l(:label_button_no), :name => nil, :onclick => "hideModal(this);", :type => "button" %>
+
\ No newline at end of file
Index: app/views/scrum/update_task.js.erb
===================================================================
--- app/views/scrum/update_task.js.erb (revision 23)
+++ app/views/scrum/update_task.js.erb (working copy)
@@ -22,4 +22,29 @@
task.detach();
task.appendTo($("#<%= "pbi_#{@issue.parent_id}_status_#{@issue.status.id}" %>"));
<%- end -%>
+<%- end -%>
+<%- if defined?(@askuser) -%>
+ $("#ajax-modal").html("<%= escape_javascript(render :partial => "scrum/ask_user_modal") %>");
+ function UpdatePbiAndClose(modal){
+ hideModal(modal);
+ if ($.isFunction($.fn.setupAjaxIndicator)) {
+ setupAjaxIndicator();
+ }
+ $.ajax({
+ url: "<%= project_sprints_update_pbi_status_path(@project) %>",
+ type: "POST",
+ data: {pbi: encodeURIComponent("pbi_<%= @issue.parent_id %>"),
+ status: encodeURIComponent("<%= @issue.status.id %>")},
+ error: function() {
+ alert("<%= l(:error_changing_pbi_status) %>");
+ location.reload(true);
+ },
+ complete: function() {
+ if ($.isFunction($.fn.hideOnLoad)) {
+ hideOnLoad();
+ }
+ }
+ });
+ }
+ showModal("ajax-modal", "300px");
<%- end -%>
\ No newline at end of file
Index: app/views/settings/_scrum_settings.html.erb
===================================================================
--- app/views/settings/_scrum_settings.html.erb (revision 23)
+++ app/views/settings/_scrum_settings.html.erb (working copy)
@@ -67,6 +67,12 @@
<%- options = options_for_select(statuses, Scrum::Setting.status_id_set_enddate) -%>
<%= select_tag 'settings[status_id_set_enddate]', options, :include_blank => true %>
+
+
+ <%- actions = ActionCloseTask.actions.map{|s| [l('label_setting_actions_' + s[0]), s[1]]} -%>
+ <%- options = options_for_select(actions, Scrum::Setting.action_when_all_task_closed) -%>
+ <%= select_tag 'settings[action_when_all_task_closed]', options, :include_blank => true %>
+