diff --git a/app/views/deliverables/_form.html.erb b/app/views/deliverables/_form.html.erb
index b5f2f28..8d0f7ef 100644
--- a/app/views/deliverables/_form.html.erb
+++ b/app/views/deliverables/_form.html.erb
@@ -1,8 +1,11 @@
<%= javascript_tag("var i18nStartDateEmpty = '#{l(:text_start_date_empty)}'") %>
<%= javascript_tag("var i18nEndDateEmpty = '#{l(:text_end_date_empty)}'") %>
+<%= javascript_tag("var i18nChangedPeriodMessage = '#{l(:text_changed_period_message)}'") %>
<% form.inputs :name => l(:text_deliverable_details_legend) do %>
+ <%# Used by jquery to check if this is a new or existing record %>
+ <%= hidden_field_tag('deliverable_id', h(resource.id), :id => 'deliverable_stored_id') %>
<%= form.input :title, :required => true %>
<% if resource.new_record? %>
@@ -13,8 +16,13 @@
<%= form.input :type, :as => :hidden, :class => 'type' %>
<% end %>
<%= form.input :manager, :required => true, :collection => @project.users.sort %>
+
<%= form.input :start_date, :as => :string, :input_html => {:size => 10, :class => 'start-date'}, :hint => calendar_for('deliverable_start_date') %>
+ <%= hidden_field_tag('deliverable_stored_start_date', h(resource.start_date), :id => 'deliverable_stored_start_date') %>
+
<%= form.input :end_date, :as => :string, :input_html => {:size => 10, :class => 'end-date'}, :hint => calendar_for('deliverable_end_date') %>
+ <%= hidden_field_tag('deliverable_stored_end_date', h(resource.end_date), :id => 'deliverable_stored_end_date') %>
+
<%= form.input :notes, :input_html => {:class => 'wiki-edit', :rows => '5'} %>
<% unless resource.new_record? %>
diff --git a/assets/javascripts/contracts.js b/assets/javascripts/contracts.js
index 4edfd38..4aa5eda 100644
--- a/assets/javascripts/contracts.js
+++ b/assets/javascripts/contracts.js
@@ -71,6 +71,16 @@ jQuery(function($) {
if ($('form.deliverable .end-date[value!=""]').length == 0) {
return confirm(i18nEndDateEmpty);
}
+
+ if ($('form.deliverable #deliverable_stored_id').val() != '') {
+ if ($('form.deliverable .start-date').val() != $('#deliverable_stored_start_date').val()) {
+ return confirm(i18nChangedPeriodMessage);
+ }
+ if ($('form.deliverable .end-date').val() != $('#deliverable_stored_end_date').val()) {
+ return confirm(i18nChangedPeriodMessage);
+ }
+ }
+
}
});
});
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 1b5c2ae..f96dd41 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -64,4 +64,5 @@ en:
text_start_date_empty: "The start date is empty. If this form is submitted, no budget items will be created."
text_end_date_empty: "The end date is empty. If this form is submitted, no budget items will be created."
text_missing_period: "This deliverable is missing a date range so it cannot have budget items. Please save start and end dates before adding any budget items."
+ text_changed_period_message: "The period for this deliverable has been changed. Would you like to expand/shrink the Deliverable Finances?"
field_current_period: "Current period"