// Store Settings Page JavaScript // Back button functionality function goBack() { if (window.history.length > 1) { window.history.back(); } else { window.location.href = "index.html"; } } // Search functionality document.addEventListener("DOMContentLoaded", function () { const searchInput = document.getElementById("searchInput"); if (searchInput) { searchInput.addEventListener("input", function (e) { const searchQuery = e.target.value.toLowerCase().trim(); // Get all settings cards const settingsCards = document.querySelectorAll(".settings-grid .col-12"); // Get all integration cards const integrationCards = document.querySelectorAll( ".integrations-grid .col-12" ); // Filter settings cards settingsCards.forEach((cardCol) => { const card = cardCol.querySelector(".settings-card"); const title = card .querySelector(".card-title") .textContent.toLowerCase(); const description = card .querySelector(".card-description") .textContent.toLowerCase(); if ( title.includes(searchQuery) || description.includes(searchQuery) || searchQuery === "" ) { cardCol.style.display = ""; } else { cardCol.style.display = "none"; } }); // Filter integration cards integrationCards.forEach((cardCol) => { const card = cardCol.querySelector(".integration-card"); const title = card .querySelector(".integration-name") .textContent.toLowerCase(); const description = card .querySelector(".integration-description") .textContent.toLowerCase(); if ( title.includes(searchQuery) || description.includes(searchQuery) || searchQuery === "" ) { cardCol.style.display = ""; } else { cardCol.style.display = "none"; } }); }); } // Integration connect/disconnect functionality const integrationCards = document.querySelectorAll(".integration-card"); integrationCards.forEach((card) => { const connectBtn = card.querySelector(".connect-btn"); const disconnectBtn = card.querySelector(".disconnect-btn"); // Handle Connect button click if (connectBtn) { connectBtn.addEventListener("click", function () { // Create connected status elements const connectedStatus = document.createElement("div"); connectedStatus.className = "connected-status"; const badge = document.createElement("span"); badge.className = "badge connected-badge mb-2"; badge.innerHTML = ' Connected'; const newDisconnectBtn = document.createElement("button"); newDisconnectBtn.className = "btn disconnect-btn"; newDisconnectBtn.textContent = "Disconnect"; connectedStatus.appendChild(badge); connectedStatus.appendChild(newDisconnectBtn); // Replace connect button with connected status connectBtn.replaceWith(connectedStatus); // Add event listener to new disconnect button newDisconnectBtn.addEventListener("click", function () { // Show confirmation dialog const integrationName = card.querySelector(".integration-name").textContent; if ( confirm(`Are you sure you want to disconnect ${integrationName}?`) ) { // Create new connect button const newConnectBtn = document.createElement("button"); newConnectBtn.className = "btn connect-btn"; newConnectBtn.innerHTML = 'Connect '; // Replace connected status with connect button connectedStatus.replaceWith(newConnectBtn); // Add event listener to new connect button newConnectBtn.addEventListener("click", function () { // Recursively handle connect (reuse the same logic) newConnectBtn.click(); }); // Re-attach the connect handler attachConnectHandler(newConnectBtn, card); } }); }); } // Handle Disconnect button click if (disconnectBtn) { disconnectBtn.addEventListener("click", function () { const integrationName = card.querySelector(".integration-name").textContent; if ( confirm(`Are you sure you want to disconnect ${integrationName}?`) ) { const connectedStatus = card.querySelector(".connected-status"); // Create new connect button const newConnectBtn = document.createElement("button"); newConnectBtn.className = "btn connect-btn"; newConnectBtn.innerHTML = 'Connect '; // Replace connected status with connect button connectedStatus.replaceWith(newConnectBtn); // Add event listener to new connect button attachConnectHandler(newConnectBtn, card); } }); } }); // Helper function to attach connect handler function attachConnectHandler(button, card) { button.addEventListener("click", function () { // Create connected status elements const connectedStatus = document.createElement("div"); connectedStatus.className = "connected-status"; const badge = document.createElement("span"); badge.className = "badge connected-badge mb-2"; badge.innerHTML = ' Connected'; const newDisconnectBtn = document.createElement("button"); newDisconnectBtn.className = "btn disconnect-btn"; newDisconnectBtn.textContent = "Disconnect"; connectedStatus.appendChild(badge); connectedStatus.appendChild(newDisconnectBtn); // Replace connect button with connected status button.replaceWith(connectedStatus); // Add event listener to new disconnect button newDisconnectBtn.addEventListener("click", function () { const integrationName = card.querySelector(".integration-name").textContent; if ( confirm(`Are you sure you want to disconnect ${integrationName}?`) ) { // Create new connect button const newConnectBtn = document.createElement("button"); newConnectBtn.className = "btn connect-btn"; newConnectBtn.innerHTML = 'Connect '; // Replace connected status with connect button connectedStatus.replaceWith(newConnectBtn); // Re-attach the connect handler attachConnectHandler(newConnectBtn, card); } }); }); } // Settings card click navigation const settingsCards = document.querySelectorAll(".settings-card"); settingsCards.forEach((card) => { card.style.cursor = "pointer"; card.addEventListener("click", function () { const title = card.querySelector(".card-title").textContent; // Map settings to placeholder pages (can be updated later) const settingsMap = { General: "#general-settings", "Billing Plan": "#billing-settings", Team: "#team-settings", "SMS Settings": "#sms-settings", "Web Tracking Installation": "#tracking-settings", }; const targetPage = settingsMap[title]; if (targetPage) { // For now, just show an alert (can be replaced with actual navigation) console.log(`Navigating to ${title} settings...`); // Uncomment the line below when actual pages are created // window.location.href = targetPage; } }); }); });