// JavaScript code (lcp-svg-repeater.js) to handle adding/removing rows dynamically document.addEventListener('DOMContentLoaded', function () { // Add row document.getElementById('add-svg-row').addEventListener('click', function () { const container = document.getElementById('svg-repeater-container'); const newRow = document.createElement('div'); newRow.classList.add('repeater-row'); newRow.innerHTML = ` `; container.appendChild(newRow); }); // Remove row document.getElementById('svg-repeater-container').addEventListener('click', function (event) { if (event.target.classList.contains('remove-row')) { event.target.closest('.repeater-row').remove(); } }); }); // REPEATERS document.addEventListener('DOMContentLoaded', function() { // Function to add a new row to the repeater function addRepeaterRow(repeaterElement) { const newRow = repeaterElement.querySelector('.lcp-repeater-row').cloneNode(true); // Clone the first row repeaterElement.appendChild(newRow); // Add remove functionality to the new row's remove button const removeButton = newRow.querySelector('.remove-row'); removeButton.addEventListener('click', function() { newRow.remove(); // Remove the row when the button is clicked }); } // Find all .lcp-repeater elements in the DOM const repeaters = document.querySelectorAll('.lcp-repeater'); repeaters.forEach(function(repeaterElement) { // Add event listener for the "Add Row" button const addButton = repeaterElement.querySelector('.add-row'); addButton.addEventListener('click', function() { addRepeaterRow(repeaterElement); // Add a new row when clicked }); // Initially, make sure each row has a remove button functionality const rows = repeaterElement.querySelectorAll('.lcp-repeater-row'); rows.forEach(function(row) { const removeButton = row.querySelector('.remove-row'); removeButton.addEventListener('click', function() { row.remove(); // Remove the row when the remove button is clicked }); }); }); }); // REPEATERS // Example html: //
//
// // // // //
// //
document.addEventListener('DOMContentLoaded', function () { // Get all repeater containers const repeaterContainers = document.querySelectorAll('.my-repeater-container'); // Loop through each repeater container and initialize the functionality repeaterContainers.forEach(function (container) { const newRowButton = container.querySelector('.new-repeater-row'); const rowTemplate = container.querySelector('.my-repeater-row'); // Hide the row template (we will clone it) rowTemplate.style.display = 'none'; // Add event listener for the 'Add New Row' button newRowButton.addEventListener('click', function () { // Clone the row template const newRow = rowTemplate.cloneNode(true); // Make sure the new row is visible newRow.style.display = 'flex'; // or 'block' based on your layout // Reset input values in the new row const inputs = newRow.querySelectorAll('input'); inputs.forEach(input => input.value = ''); // Add the new row to the repeater container container.insertBefore(newRow, newRowButton); }); // Handle deleting rows container.addEventListener('click', function (e) { if (e.target && e.target.classList.contains('delete-repeater-row')) { const rowToDelete = e.target.closest('.my-repeater-row'); if (rowToDelete) { rowToDelete.remove(); } } }); }); });