FIXED Can't add/remove linked fields or items table since 12.4 update

DAF ID3000

Member
Hello Eugenio,
I made several cross tests before posted this (different browsers on different computers), but it seems javascript code isn't called anymore from 'add/remove linked field' links in Forms Configurator.
I'm not sure it's related, but I noticed that HTTP target at the bottom of the browser window shows only 'Javascript:{}' without any function name (see attached snapshot).
Please let me know if you think it's a problem on my side, but I would like to have confirmation from you before starting a deep dive in debugging my Dadabik installation :-(
Thanks in advance for your help.
KR
 

Attachments

  • sidzmqKhOo.png
    sidzmqKhOo.png
    55.9 KB · Views: 5

eugenio

Administrator
Staff member
Hello,
I confirm this is a bug (and impacts on adding removing items tables as well), thanks for submitting it (but please always submit potential bugs in the support forum as requested).

A quick fix: in /include/header.php, before

Code:
$("#craete_new_view_link").click(function(e) {

Add this code

Code:
<?php if ($page_name === 'interface_configurator'){ ?>

$("#add_linked_field_link").click(function(e) {

// increment the hidden number_linked_fields and add a new listbox
var current_number_linked_fields = Number($("#number_linked_fields").val());

var field_position = $("#field_position").val(); // from hidden field that stores the value of the field_position in the table (0, 1, 2, ...)

// get the value of the last linked fields listbox (we need it to copy and paste it)
var last_linked_fields_select_content = $("#linked_fields_field_"+ (current_number_linked_fields-1)).html();

// increment the hidden number_linked_fields
$("#number_linked_fields").val( current_number_linked_fields+1  );

// paste the copied listbox
$("#linked_fields_field_container").append(' <select id="linked_fields_field_'+current_number_linked_fields+'" name="linked_fields_field_'+field_position+'_'+current_number_linked_fields+'" >'+last_linked_fields_select_content+'</select>');

e.preventDefault();
});

$("#remove_linked_field_link").click(function(e) {

// decrement the hidden number_linked_fields and remove the last linked fields listbox
var current_number_linked_fields = Number($("#number_linked_fields").val());

if (current_number_linked_fields !== 1){

var field_position = $("#field_position").val(); // from hidden field that stores the value of the field_position in the table (0, 1, 2, ...)

// remove the last linked fields listbox
$("#linked_fields_field_"+ (current_number_linked_fields-1)).remove();

// decrement the hidden number_linked_fields
$("#number_linked_fields").val( current_number_linked_fields-1  );

}

e.preventDefault();
});

$("#add_master_details").click(function(e) {

// increment the hidden number_master_details and add a new listbox
var current_number_master_details = Number($("#number_master_details").val());

var field_position = $("#field_position").val(); // from hidden field that stores the value of the field_position in the table (0, 1, 2, ...)

// get the value of the last listboxes (we need it to copy and paste it)
var last_items_table_fk_field_names_select_content = $("#items_table_fk_field_names_field_"+ (current_number_master_details-1)).html();
var last_items_table_names_field_select_content = $("#items_table_names_field_"+ (current_number_master_details-1)).html();

// increment the hidden number_master_details
$("#number_master_details").val( current_number_master_details+1  );

// paste the copied listbox
$("#items_table_fk_field_names_field_container").append(' <select id="items_table_fk_field_names_field_'+current_number_master_details+'" name="items_table_fk_field_names_field_'+field_position+'_'+current_number_master_details+'" >'+last_items_table_fk_field_names_select_content+'</select>');

$("#items_table_names_field_container").append(' <select id="items_table_names_field_'+current_number_master_details+'" name="items_table_names_field_'+field_position+'_'+current_number_master_details+'"  onchange="refresh_items_table_fk_field_names(this.value, '+current_number_master_details+')">'+last_items_table_names_field_select_content+'</select>');

var items_table_names_field_width = ($('#items_table_names_field_'+current_number_master_details).css("width"));

$('#items_table_fk_field_names_field_'+current_number_master_details).css("width", items_table_names_field_width);

e.preventDefault();
});

$("#remove_master_details").click(function(e) {

// decrement the hidden number_master_details and remove the last linked fields listbox
var current_number_master_details = Number($("#number_master_details").val());

if (current_number_master_details !== 1){

var field_position = $("#field_position").val(); // from hidden field that stores the value of the field_position in the table (0, 1, 2, ...)

// remove the last listbox
$("#items_table_fk_field_names_field_"+ (current_number_master_details-1)).remove();
$("#items_table_names_field_"+ (current_number_master_details-1)).remove();

// decrement the hidden number_master_details
$("#number_master_details").val( current_number_master_details-1  );

}

e.preventDefault();
});

<?php } ?>

Let me know if it works.

I will release a silent upgrade to fix header.php in the current released version, then the official fix will be available in V 12.5

Best,
 

DAF ID3000

Member
Dear Eugenio, your quick fix works as a charm, thank you for your reactivity (as always).

I'm really sorry not to have posted in the right forum, I never took the time to read the welcome msg of this Bugs forum, please don't blame me ;-)

Regards,
 
Top