diff --git a/app/models/deliverable.rb b/app/models/deliverable.rb index b1d403b..c7084ae 100644 --- a/app/models/deliverable.rb +++ b/app/models/deliverable.rb @@ -11,7 +11,7 @@ class Deliverable < ActiveRecord::Base has_many :fixed_budgets has_many :issues, :dependent => :nullify - accepts_nested_attributes_for :labor_budgets + accepts_nested_attributes_for :labor_budgets, :allow_destroy => true accepts_nested_attributes_for :overhead_budgets accepts_nested_attributes_for :fixed_budgets diff --git a/app/views/deliverables/_labor_budget_form.html.erb b/app/views/deliverables/_labor_budget_form.html.erb index efa581a..9fe6352 100644 --- a/app/views/deliverables/_labor_budget_form.html.erb +++ b/app/views/deliverables/_labor_budget_form.html.erb @@ -1,5 +1,6 @@ - + + <%= labor_budget.hidden_field(:id) unless labor_budget.object.new_record? %> <%= labor_budget.hidden_field(:year) %> <%= labor_budget.hidden_field(:month) %> @@ -15,6 +16,8 @@ <%= labor_budget.text_field(:budget, :value => format_deliverable_value_fields(labor_budget.object.budget), :class => 'financial') %> + <%= labor_budget.hidden_field "_destroy", :class=> "delete-flag" %> + <%= link_to_function("Remove", 'deleteDeliverableFinance(this)', :class => 'delete icon icon-del') %> <%= link_to_function("Add", 'addNewDeliverableFinance("labor")', :class => 'add icon icon-add', :style => 'display:none;') %> diff --git a/assets/javascripts/contracts.js b/assets/javascripts/contracts.js index b8e02f6..44200f2 100644 --- a/assets/javascripts/contracts.js +++ b/assets/javascripts/contracts.js @@ -69,16 +69,28 @@ jQuery(function($) { }, showDeliverableAddButton = function() { - $('.add-labor a.add').hide().last().show(); + $('table .add-labor a.add').hide().last().show(); }, addNewDeliverableFinance = function(financeType) { var t = $('#labor-budget-template').tmpl({}); - var countOfExisting = $("#deliverable-labor tbody tr").size(); + var countOfExisting = $("tr.labor-budget-form").size(); var recordLocation = countOfExisting + 1; // increments the Rails [n] placeholder var newContent = t.html().replace(/\[0\]/g, "[" + recordLocation + "]"); - $("" + newContent + '').appendTo('#deliverable-labor tbody'); + $("" + newContent + '').appendTo('#deliverable-labor tbody'); + showDeliverableAddButton(); + }, + + deleteDeliverableFinance = function(deleteLink) { + // Set the deleted flag for Rails and move it out of the row + $(deleteLink).parent().find('.delete-flag').val('1') + $(deleteLink).closest("form"). + append( + $(deleteLink). // + parent(). // + parent().hide() + ) // showDeliverableAddButton(); },