Improve #create action
This commit is contained in:
parent
1b634dea2b
commit
37e3b98788
@ -28,8 +28,15 @@ class TargetsController < ApplicationController
|
|||||||
params[:goal][:targets_attributes].each { |ta| ta[:effective_from] = @effective_from }
|
params[:goal][:targets_attributes].each { |ta| ta[:effective_from] = @effective_from }
|
||||||
|
|
||||||
if @goal.update(targets_params)
|
if @goal.update(targets_params)
|
||||||
flash.now[:notice] = 'Created new target(s)'
|
count = @goal.targets.target.length
|
||||||
prepare_targets
|
if count > 0
|
||||||
|
flash.now[:notice] = t('.success', count: count)
|
||||||
|
prepare_targets
|
||||||
|
else
|
||||||
|
flash.now[:warning] = t('.success', count: 0)
|
||||||
|
@targets = [@goal.targets.new]
|
||||||
|
render :new
|
||||||
|
end
|
||||||
else
|
else
|
||||||
@targets = @goal.targets.select(&:changed_for_autosave?)
|
@targets = @goal.targets.select(&:changed_for_autosave?)
|
||||||
@targets.each { |t| t.thresholds.new unless t.thresholds.present? }
|
@targets.each { |t| t.thresholds.new unless t.thresholds.present? }
|
||||||
|
@ -6,7 +6,11 @@ class Goal < ActiveRecord::Base
|
|||||||
class_name: 'Exposure', extend: BodyTracking::TogglableExposures
|
class_name: 'Exposure', extend: BodyTracking::TogglableExposures
|
||||||
has_many :quantities, -> { order "lft" }, through: :exposures
|
has_many :quantities, -> { order "lft" }, through: :exposures
|
||||||
|
|
||||||
accepts_nested_attributes_for :targets, allow_destroy: true
|
accepts_nested_attributes_for :targets, allow_destroy: true,
|
||||||
|
reject_if: proc { |attrs|
|
||||||
|
attrs[:quantity_id].blank? &&
|
||||||
|
attrs[:thresholds_attributes].all? { |t| t[:value].blank? }
|
||||||
|
}
|
||||||
include Validations::NestedUniqueness
|
include Validations::NestedUniqueness
|
||||||
validates_nested_uniqueness_for :targets,
|
validates_nested_uniqueness_for :targets,
|
||||||
:effective_from, :quantity_id, :item_type, :item_id, :scope,
|
:effective_from, :quantity_id, :item_type, :item_id, :scope,
|
||||||
|
@ -42,8 +42,7 @@
|
|||||||
var row = form.find('p.target:visible:last');
|
var row = form.find('p.target:visible:last');
|
||||||
var new_row = row.clone().insertAfter(row);
|
var new_row = row.clone().insertAfter(row);
|
||||||
new_row.find('em').text('<%= t ".choose_quantity" %>');
|
new_row.find('em').text('<%= t ".choose_quantity" %>');
|
||||||
new_row.find('input, select').val('');
|
new_row.find('input, select:first').val('');
|
||||||
new_row.find('select[id$=__unit_id]').val(row.find('select[id$=__unit_id]').val());
|
|
||||||
new_row.find('label:first').hide();
|
new_row.find('label:first').hide();
|
||||||
form.find('p.target:visible a.icon-del').show();
|
form.find('p.target:visible a.icon-del').show();
|
||||||
}
|
}
|
||||||
|
@ -117,6 +117,11 @@ en:
|
|||||||
heading: 'Targets'
|
heading: 'Targets'
|
||||||
show:
|
show:
|
||||||
label_target: 'Target'
|
label_target: 'Target'
|
||||||
|
create:
|
||||||
|
success:
|
||||||
|
zero: "No targets specified"
|
||||||
|
one: "Created 1 target"
|
||||||
|
other: "Created %{count} targets"
|
||||||
meals:
|
meals:
|
||||||
contextual:
|
contextual:
|
||||||
link_new_meal: 'New meal'
|
link_new_meal: 'New meal'
|
||||||
|
Reference in New Issue
Block a user