26 lines
1.1 KiB
Ruby
26 lines
1.1 KiB
Ruby
module ExternalAuthorsHelper
|
|
|
|
def add_name_link(form_builder)
|
|
link_to_function 'add name' do |page|
|
|
form_builder.fields_for :external_author_names, ExternalAuthorName.new, child_index: 'NEW_RECORD' do |f|
|
|
html = render(partial: 'external_author_name', locals: { form: f })
|
|
page << "$('external_author_names').insert({ bottom: '#{escape_javascript(html)}'.replace(/NEW_RECORD/g, new Date().getTime()) });"
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
def remove_name_link(form_builder)
|
|
if form_builder.object.new_record?
|
|
# If the task is a new record, we can just remove the div from the dom
|
|
link_to_function("remove", "$(this).up('.external_author_name').remove();");
|
|
else
|
|
# However if it's a "real" record it has to be deleted from the database,
|
|
# for this reason the new fields_for, accept_nested_attributes helpers give us _delete,
|
|
# a virtual attribute that tells rails to delete the child record.
|
|
form_builder.hidden_field("_destroy") +
|
|
link_to_function("remove", "$(this).up('.external_author_name').hide(); $(this).previous().value = '1'")
|
|
end
|
|
end
|
|
|
|
end
|