From 9f8f1238aad2403e4d63a5427745df17f5a4410e Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Wed, 8 Sep 2010 10:57:09 -0700 Subject: [PATCH] [#4420] Add a Javascript prompt when extending or shrinking a Deliverable's period. --- app/views/deliverables/_form.html.erb | 8 ++++++++ assets/javascripts/contracts.js | 10 ++++++++++ config/locales/en.yml | 1 + 3 files changed, 19 insertions(+) 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"