jQuery(document).ready(function($) { // Dialog opener for information on mapping attributes jQuery( "#dialog" ).dialog({ autoOpen: false, show: { effect: "blind", duration: 1000 }, hide: { effect: "explode", duration: 1000 } }); // Add a mapping row to the table for field mappings jQuery(".add-field-mapping").on('click', function(){ var nonce = $('#_wpnonce').val(); var channel_hash = $('#channel_hash').val(); var prevRow = $("tr.rowCount:last input[type=hidden]").val(); var addrow_value = $('#addrow').val(); // When user deletes all default fields if (prevRow === undefined){ prevRow = 0; } var rowCount = Number(prevRow) + Number(addrow_value); var newrow_value = Number(addrow_value) + Number(1); $('#addrow').val(newrow_value); jQuery.ajax({ method: "POST", url: ajaxurl, data: { 'action': 'woosea_fieldmapping_dropdown', 'rowCount': rowCount, 'security': nonce, 'channel_hash': channel_hash } }) .done(function( data ) { data = JSON.parse( data ); $( '#woosea-fieldmapping-table' ).append(''); $('.select-field').on('change', function(){ if ($(this).val() == "static_value") { var rownr = $(this).closest("tr").prevAll("tr").length; $(this).replaceWith(''); } }); }) .fail(function( data ) { console.log('Failed AJAX Call :( /// Return Data: ' + data); }); }); // Add a mapping row to the table for own mappings jQuery(".add-own-mapping").on('click', function(){ var nonce = $('#_wpnonce').val(); var channel_hash = $('#channel_hash').val(); var prevRow = $("tr.rowCount:last input[type=hidden]").val(); var addrow_value = $('#addrow').val(); // When user deletes all default fields if (prevRow === undefined){ prevRow = 0; } var rowCount = Number(prevRow) + Number(addrow_value); var newrow_value = Number(addrow_value) + Number(1); $('#addrow').val(newrow_value); jQuery.ajax({ method: "POST", url: ajaxurl, data: { 'action': 'woosea_fieldmapping_dropdown', 'security': nonce, 'rowCount': rowCount, 'channel_hash': channel_hash } }) .done(function( data ) { data = JSON.parse( data ); $( '#woosea-fieldmapping-table' ).append(''); $('.select-field').on('change', function(){ if ($(this).val() == "static_value") { var rownr = $(this).closest("tr").prevAll("tr").length; $(this).replaceWith(''); } }); }) .fail(function( data ) { console.log('Failed AJAX Call :( /// Return Data: ' + data); }); }); jQuery("#savebutton").on('click', function(){ $("#own-input-field").each(function() { var input=$(this).val(); var re = /^[a-zA-Zа-яА-Я_-]*$/; if (input.indexOf("PARAM_") >= 0){ // For Yandex, Zbozi and Heureka also accept Cyrillic characters var re = /.*/; } var minLength = 2; var maxLength = 50; var is_input=re.test(input); // Check for allowed characters if (!is_input){ $('form').submit(function(){ return false; }); $('.notice').replaceWith("

Sorry, when creating new custom fields only letters are allowed (so no white spaces, numbers or any other character are allowed).

"); } else { // Check for length of fieldname if (input.length < minLength){ $('form').submit(function(){ return false; }); $('.notice').replaceWith("

Sorry, your custom field name needs to be at least 2 letters long.

"); } else if (input.length > maxLength){ $('form').submit(function(){ return false; }); $('.notice').replaceWith("

Sorry, your custom field name cannot be over 20 letters long.

"); } else { $("#fieldmapping")[0].submit(); } } }); }); jQuery('.select-field').on('change', function(){ if ($(this).val() == "static_value") { // var rownr = $(this).closest("tr").prevAll("tr").length; var rownr = $(this).closest('tr').attr("class").split(' ')[1]; $(this).replaceWith(''); } }); // Find and remove selected table rows jQuery(".delete-field-mapping").on('click', function(){ $("table tbody").find('input[name="record"]').each(function(){ if($(this).is(":checked")){ $(this).parents("tr").remove(); } }); }); });