$(() => {
$('#research-outputs').sortable({
handle: '.research-output-actions .handle',
stop: () => {
$('#research-outputs .research-output-element').each(function callback(index) {
$(this).find('.research-output-order').val(index + 1);
});
},
});
$('#add-research-output').click(() => {
const lastResearchOutput = $('#research-outputs .research-output-element').last();
const lastResearchOutputOrder = parseInt(lastResearchOutput.find('.research-output-order').val(), 10);
const duplicated = lastResearchOutput.clone(false, false);
const duplicatedId = `plan_research_outputs_attributes_${new Date().getTime()}`;
const duplicatedName = `plan[research_outputs_attributes][${new Date().getTime()}]`;
// Research Output abbreviation
duplicated.find('.research-output-abbreviation input').attr('id', `${duplicatedId}_abbreviation`);
duplicated.find('.research-output-abbreviation input').attr('name', `${duplicatedName}[abbreviation]`);
duplicated.find('.research-output-abbreviation label').attr('for', `${duplicatedId}_abbreviation`);
duplicated.find('.research-output-abbreviation input').val(null);
// Research Output fullname
duplicated.find('.research-output-fullname input').attr('id', `${duplicatedId}_fullname`);
duplicated.find('.research-output-fullname input').attr('name', `${duplicatedName}[fullname]`);
duplicated.find('.research-output-fullname label').attr('for', `${duplicatedId}_fullname`);
duplicated.find('.research-output-fullname input').val(null);
// Research Output pid
duplicated.find('.research-output-pid input').attr('id', `${duplicatedId}_pid`);
duplicated.find('.research-output-pid input').attr('name', `${duplicatedName}[pid]`);
duplicated.find('.research-output-pid label').attr('for', `${duplicatedId}_pid`);
duplicated.find('.research-output-pid input').val(null);
// Research Output type
duplicated.find('.research-output-type select').attr('id', `${duplicatedId}_research_output_type_id`);
duplicated.find('.research-output-type select').attr('name', `${duplicatedName}[research_output_type_id]`);
duplicated.find('.research-output-type label').attr('for', `${duplicatedId}_research_output_type_id`);
duplicated.find('.research-output-type select').val(null);
// Research Output order
duplicated.find('.research-output-order').attr('id', `${duplicatedId}_order`);
duplicated.find('.research-output-order').attr('name', `${duplicatedName}[order]`);
duplicated.find('.research-output-order').val(lastResearchOutputOrder + 1);
duplicated.appendTo('#research-outputs');
});
$('.research-output-type-select').change((e) => {
const selectElement = $(e.target);
const parentElement = selectElement.closest('.research-output-element');
const otherTypeElement = parentElement.find('.research-output-other-type');
if (selectElement.find('option:selected').data('other')) {
otherTypeElement.show();
} else {
otherTypeElement.hide();
}
});
});