diff --git a/app/views/deliverables/_form.html.erb b/app/views/deliverables/_form.html.erb index 32c3bc7..5d1cccc 100644 --- a/app/views/deliverables/_form.html.erb +++ b/app/views/deliverables/_form.html.erb @@ -1,3 +1,6 @@ +<%= javascript_tag("var i18nStartDateEmpty = '#{l(:text_start_date_empty)}'") %> +<%= javascript_tag("var i18nEndDateEmpty = '#{l(:text_end_date_empty)}'") %> +
<% form.inputs :name => l(:text_deliverable_details_legend) do %> <%= form.input :title, :required => true %> @@ -12,8 +15,8 @@ <%= 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}, :hint => calendar_for('deliverable_start_date') %> - <%= form.input :end_date, :as => :string, :input_html => {:size => 10}, :hint => calendar_for('deliverable_end_date') %> + <%= form.input :start_date, :as => :string, :input_html => {:size => 10, :class => 'start-date'}, :hint => calendar_for('deliverable_start_date') %> + <%= form.input :end_date, :as => :string, :input_html => {:size => 10, :class => 'end-date'}, :hint => calendar_for('deliverable_end_date') %> <%= form.input :notes, :input_html => {:class => 'wiki-edit', :rows => '5'} %> <% unless resource.new_record? %> @@ -28,7 +31,7 @@ <% end %> <% end %> -<% if resource.retainer? %> +<% if resource.retainer? && resource.respond_to?(:months) %> <% resource.months.each do |month| %> <%= render :partial => 'finance_form', :locals => {:form => form, :labor_budgets => resource.labor_budgets_for_date(month), :overhead_budgets => resource.overhead_budgets_for_date(month), :label => l(:text_deliverable_finances_date, :date => month.strftime("%B, %Y")), :fieldset_class => 'date-' + month.strftime('%Y-%m') } %> <% end %> diff --git a/assets/javascripts/contracts.js b/assets/javascripts/contracts.js index 8c2680c..4edfd38 100644 --- a/assets/javascripts/contracts.js +++ b/assets/javascripts/contracts.js @@ -60,6 +60,19 @@ jQuery(function($) { $('select#deliverable_type').change(function() { toggleSpecificDeliverableFields($('form.deliverable')); }); + + $('form.deliverable').submit(function() { + var deliverableType = $('form.deliverable').find('.type').val(); + + if (deliverableType == 'RetainerDeliverable') { + if ($('form.deliverable .start-date[value!=""]').length == 0) { + return confirm(i18nStartDateEmpty); + } + if ($('form.deliverable .end-date[value!=""]').length == 0) { + return confirm(i18nEndDateEmpty); + } + } + }); }); /* Jquery Table Expander Plugin */ diff --git a/config/locales/en.yml b/config/locales/en.yml index 3adbf14..a781236 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -64,3 +64,5 @@ en: field_frequency: "Frequency" text_monthly: "Monthly" text_quarterly: "Quarterly" + 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."