Drag fields into this section or click to configure.
' + '/** * PC Form Builder Admin Scripts * * JavaScript functionality for the form builder admin interface. * * @package PCFormBuilder */ (function($) { 'use strict'; var PCFB_Admin = { fieldIndex: 0, deletedFields: [], init: function() { this.initFieldTypeButtons(); this.initFieldToggle(); this.initFieldDelete(); this.initDeleteModal(); this.initFormBuilder(); }, initFieldTypeButtons: function() { var self = this; $('.pcfb-add-field-btn').on('click', function(e) { e.preventDefault(); var fieldType = $(this).data('field-type'); self.addField(fieldType); }); }, addField: function(fieldType) { var self = this; var container = $('#pcfb-fields-container'); if (container.find('.pcfb-empty-fields').length > 0) { container.find('.pcfb-empty-fields').remove(); } var fieldIndex = this.getNextFieldIndex(); var nonce = pcfbAdminVars.nonce; $.ajax({ url: pcfbAdminVars.ajaxurl, type: 'POST', data: { action: 'pcfb_add_field', field_type: fieldType, field_index: fieldIndex, nonce: nonce }, success: function(response) { if (response.success) { container.append(response.data.html); self.reindexFields(); self.initFieldToggle(); self.initFieldDelete(); self.updateLabelOnChange(); } }, error: function() { alert(pcfbAdminVars.i18n.confirmDeleteField); } }); }, getNextFieldIndex: function() { var maxIndex = 0; $('#pcfb-fields-container [name^="fields["]').each(function() { var match = $(this).attr('name').match(/fields\[(\d+)\]/); if (match && parseInt(match[1]) > maxIndex) { maxIndex = parseInt(match[1]); } }); return maxIndex + 1; }, reindexFields: function() { var fields = $('#pcfb-fields-container .pcfb-field-item'); fields.each(function(index) { var field = $(this); field.find('[name^="fields["]').each(function() { var name = $(this).attr('name'); var newName = name.replace(/fields\[\d+\]/, 'fields[' + index + ']'); $(this).attr('name', newName); }); }); }, initFieldToggle: function() { $('.pcfb-toggle-field').off('click').on('click', function(e) { e.preventDefault(); $(this).closest('.pcfb-field-item').toggleClass('collapsed'); }); }, initFieldDelete: function() { var self = this; $('.pcfb-delete-field').off('click').on('click', function(e) { e.preventDefault(); var fieldItem = $(this).closest('.pcfb-field-item'); var fieldId = fieldItem.data('field-id'); if (confirm(pcfbAdminVars.i18n.confirmDeleteField)) { if (fieldId && fieldId !== 'new') { self.deletedFields.push(fieldId); $('').appendTo('#pcfb-form-builder'); } fieldItem.fadeOut(300, function() { $(this).remove(); self.reindexFields(); self.checkEmptyFields(); }); } }); }, checkEmptyFields: function() { var container = $('#pcfb-fields-container'); if (container.find('.pcfb-field-item').length === 0) { container.html('
' + pcfbAdminVars.i18n.fieldLabel + '
Drag fields into this section or click to configure.
' + '