{"id":3751,"date":"2025-09-21T21:49:26","date_gmt":"2025-09-21T21:49:26","guid":{"rendered":"https:\/\/edcitronnelliministries.com\/?page_id=3751"},"modified":"2025-10-29T16:23:20","modified_gmt":"2025-10-29T16:23:20","slug":"dashboard","status":"publish","type":"page","link":"https:\/\/edcitronnelliministries.com\/es\/dashboard\/","title":{"rendered":"Dashboard"},"content":{"rendered":"<section class=\"bde-section-3751-100 bde-section\">\n  \n  \n\t\n\n\n\n<div class=\"section-container\"><div class=\"bde-columns-3751-101 bde-columns\"><div class=\"bde-column-3751-102 bde-column\">\n  \n  \n\t\n\n\n\n<div class=\"bde-div-3751-108 bde-div\">\n  \n  \n\t\n\n\n\n<h2 class=\"bde-heading-3751-106 bde-heading\">\nStep 1. Scape Wix Events\n<\/h2><div class=\"bde-text-3751-107 bde-text\">\nThis is scape all the Wix events and add them to the google sheet\u00a0\n<\/div>\n<\/div><div class=\"bde-shortcode-3751-119 bde-shortcode\">    \r\n    <style>\r\n        .delete-sheet-button {\r\n            background: linear-gradient(135deg, #dc3545 0%, #c82333 100%);\r\n            color: #ffffff;\r\n            border: none;\r\n            padding: 12px 24px;\r\n            font-size: 16px;\r\n            font-weight: 600;\r\n            border-radius: 8px;\r\n            cursor: pointer;\r\n            transition: all 0.3s ease;\r\n            box-shadow: 0 4px 15px rgba(220, 53, 69, 0.3);\r\n            position: relative;\r\n            overflow: hidden;\r\n            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\r\n        }\r\n        \r\n        .delete-sheet-button:hover {\r\n            background: linear-gradient(135deg, #c82333 0%, #bd2130 100%);\r\n            transform: translateY(-2px);\r\n            box-shadow: 0 6px 20px rgba(220, 53, 69, 0.4);\r\n        }\r\n        \r\n        .delete-sheet-button:active {\r\n            transform: translateY(0);\r\n            box-shadow: 0 2px 10px rgba(220, 53, 69, 0.3);\r\n        }\r\n        \r\n        .delete-sheet-button:disabled {\r\n            background: #6c757d;\r\n            cursor: not-allowed;\r\n            transform: none;\r\n            box-shadow: none;\r\n        }\r\n        \r\n        .delete-sheet-button .loading-spinner {\r\n            display: none;\r\n            width: 16px;\r\n            height: 16px;\r\n            border: 2px solid #ffffff33;\r\n            border-top: 2px solid #ffffff;\r\n            border-radius: 50%;\r\n            animation: spin 1s linear infinite;\r\n            margin-right: 8px;\r\n        }\r\n        \r\n        .delete-sheet-button.loading .loading-spinner {\r\n            display: inline-block;\r\n        }\r\n        \r\n        .delete-sheet-button.loading .button-text {\r\n            opacity: 0.7;\r\n        }\r\n        \r\n        @keyframes spin {\r\n            0% { transform: rotate(0deg); }\r\n            100% { transform: rotate(360deg); }\r\n        }\r\n        \r\n        .delete-webhook-message-sc {\r\n            margin-top: 10px;\r\n            padding: 10px 15px;\r\n            border-radius: 6px;\r\n            font-size: 14px;\r\n            display: none;\r\n        }\r\n        \r\n        .delete-webhook-message-sc.success {\r\n            background: #d4edda;\r\n            color: #155724;\r\n            border: 1px solid #c3e6cb;\r\n        }\r\n        \r\n        .delete-webhook-message-sc.error {\r\n            background: #f8d7da;\r\n            color: #721c24;\r\n            border: 1px solid #f5c6cb;\r\n        }\r\n    <\/style>\r\n    \r\n    <div class=\"delete-sheet-wrapper\">\r\n        <button id=\"delete-sheet-btn-6ae6b5f479da7\" class=\"delete-sheet-button\" type=\"button\">\r\n            <span class=\"loading-spinner\"><\/span>\r\n            <span class=\"button-text\">\ud83d\uddd1\ufe0f Delete Google Sheet<\/span>\r\n        <\/button>\r\n        <div id=\"delete-sheet-btn-6ae6b5f479da7-message\" class=\"delete-webhook-message-sc\"><\/div>\r\n    <\/div>\r\n    \r\n    <script>\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n        const button = document.getElementById('delete-sheet-btn-6ae6b5f479da7');\r\n        const message = document.getElementById('delete-sheet-btn-6ae6b5f479da7-message');\r\n        \r\n        if (button) {\r\n            button.addEventListener('click', function() {\r\n                \/\/ Show confirmation dialog\r\n                if (!confirm('Are you sure you want to delete the Google Sheet? This action cannot be undone.')) {\r\n                    return;\r\n                }\r\n                \r\n                \/\/ Disable button and show loading state\r\n                button.disabled = true;\r\n                button.classList.add('loading');\r\n                message.style.display = 'none';\r\n                \r\n                \/\/ Make the webhook request with 'true' body\r\n                fetch('https:\/\/apps.taskmagic.com\/api\/v1\/webhooks\/j73SXKWi37Bbivaqi88bt', {\r\n                    method: 'POST',\r\n                    headers: {\r\n                        'Content-Type': 'application\/json',\r\n                    },\r\n                    body: JSON.stringify('true')\r\n                })\r\n                .then(response => {\r\n                    if (response.ok) {\r\n                        showDeleteMessage('success', '\u2705 Google Sheet deletion triggered successfully!');\r\n                    } else {\r\n                        throw new Error('HTTP ' + response.status);\r\n                    }\r\n                })\r\n                .catch(error => {\r\n                    console.error('Delete webhook error:', error);\r\n                    showDeleteMessage('error', '\u274c Failed to trigger deletion. Please try again.');\r\n                })\r\n                .finally(() => {\r\n                    \/\/ Re-enable button and hide loading state\r\n                    button.disabled = false;\r\n                    button.classList.remove('loading');\r\n                });\r\n            });\r\n        }\r\n        \r\n        function showDeleteMessage(type, text) {\r\n            message.className = 'delete-webhook-message-sc ' + type;\r\n            message.textContent = text;\r\n            message.style.display = 'block';\r\n            \r\n            \/\/ Hide message after 5 seconds\r\n            setTimeout(() => {\r\n                message.style.display = 'none';\r\n            }, 5000);\r\n        }\r\n    });\r\n    <\/script>\r\n    \r\n    <\/div><div class=\"bde-shortcode-3751-105 bde-shortcode\">    \r\n    <style>\r\n        .wix-scape-button {\r\n            background: linear-gradient(135deg, #1a1a1a 0%, #333 100%);\r\n            color: #ffffff;\r\n            border: none;\r\n            padding: 12px 24px;\r\n            font-size: 16px;\r\n            font-weight: 600;\r\n            border-radius: 8px;\r\n            cursor: pointer;\r\n            transition: all 0.3s ease;\r\n            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);\r\n            position: relative;\r\n            overflow: hidden;\r\n            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\r\n        }\r\n        \r\n        .wix-scape-button:hover {\r\n            background: linear-gradient(135deg, #333 0%, #555 100%);\r\n            transform: translateY(-2px);\r\n            box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);\r\n        }\r\n        \r\n        .wix-scape-button:active {\r\n            transform: translateY(0);\r\n            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);\r\n        }\r\n        \r\n        .wix-scape-button:disabled {\r\n            background: #666;\r\n            cursor: not-allowed;\r\n            transform: none;\r\n            box-shadow: none;\r\n        }\r\n        \r\n        .wix-scape-button .loading-spinner {\r\n            display: none;\r\n            width: 16px;\r\n            height: 16px;\r\n            border: 2px solid #ffffff33;\r\n            border-top: 2px solid #ffffff;\r\n            border-radius: 50%;\r\n            animation: spin 1s linear infinite;\r\n            margin-right: 8px;\r\n        }\r\n        \r\n        .wix-scape-button.loading .loading-spinner {\r\n            display: inline-block;\r\n        }\r\n        \r\n        .wix-scape-button.loading .button-text {\r\n            opacity: 0.7;\r\n        }\r\n        \r\n        @keyframes spin {\r\n            0% { transform: rotate(0deg); }\r\n            100% { transform: rotate(360deg); }\r\n        }\r\n        \r\n        .webhook-message {\r\n            margin-top: 10px;\r\n            padding: 10px 15px;\r\n            border-radius: 6px;\r\n            font-size: 14px;\r\n            display: none;\r\n        }\r\n        \r\n        .webhook-message.success {\r\n            background: #d4edda;\r\n            color: #155724;\r\n            border: 1px solid #c3e6cb;\r\n        }\r\n        \r\n        .webhook-message.error {\r\n            background: #f8d7da;\r\n            color: #721c24;\r\n            border: 1px solid #f5c6cb;\r\n        }\r\n    <\/style>\r\n    \r\n    <div class=\"wix-scape-wrapper\">\r\n        <button id=\"wix-scape-btn-6ae6b5f479eee\" class=\"wix-scape-button\" type=\"button\">\r\n            <span class=\"loading-spinner\"><\/span>\r\n            <span class=\"button-text\">WIX Scape to Google Sheet<\/span>\r\n        <\/button>\r\n        <div id=\"wix-scape-btn-6ae6b5f479eee-message\" class=\"webhook-message\"><\/div>\r\n    <\/div>\r\n    \r\n    <script>\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n        const button = document.getElementById('wix-scape-btn-6ae6b5f479eee');\r\n        const message = document.getElementById('wix-scape-btn-6ae6b5f479eee-message');\r\n        \r\n        if (button) {\r\n            button.addEventListener('click', function() {\r\n                \/\/ Disable button and show loading state\r\n                button.disabled = true;\r\n                button.classList.add('loading');\r\n                message.style.display = 'none';\r\n                \r\n                \/\/ Make the webhook request\r\n                fetch('https:\/\/webhooks.taskmagic.com\/hook\/vdt6xT36aoZHTDBUdkZ7', {\r\n                    method: 'POST',\r\n                    headers: {\r\n                        'Content-Type': 'application\/json',\r\n                    },\r\n                    body: JSON.stringify({\r\n                        trigger: 'manual',\r\n                        timestamp: new Date().toISOString(),\r\n                        source: 'wordpress-shortcode'\r\n                    })\r\n                })\r\n                .then(response => {\r\n                    if (response.ok) {\r\n                        showMessage('success', 'Webhook triggered successfully!');\r\n                    } else {\r\n                        throw new Error('HTTP ' + response.status);\r\n                    }\r\n                })\r\n                .catch(error => {\r\n                    console.error('Webhook error:', error);\r\n                    showMessage('error', 'Failed to trigger webhook. Please try again.');\r\n                })\r\n                .finally(() => {\r\n                    \/\/ Re-enable button and hide loading state\r\n                    button.disabled = false;\r\n                    button.classList.remove('loading');\r\n                });\r\n            });\r\n        }\r\n        \r\n        function showMessage(type, text) {\r\n            message.className = 'webhook-message ' + type;\r\n            message.textContent = text;\r\n            message.style.display = 'block';\r\n            \r\n            \/\/ Hide message after 5 seconds\r\n            setTimeout(() => {\r\n                message.style.display = 'none';\r\n            }, 5000);\r\n        }\r\n    });\r\n    <\/script>\r\n    \r\n    <\/div><div class=\"bde-button-3751-109 bde-button\">\n        \n    \n    \n    \n    \n            \n                    \n            \n            \n\n    \n    \n    \n    \n    \n    <a class=\"breakdance-link button-atom button-atom--custom bde-button__button\" href=\"https:\/\/docs.google.com\/spreadsheets\/d\/1G1jrTl-OUdVjM5b33Pv30M_xnF2xgvZXAyznheX3XsY\/edit#gid=0\" target=\"_self\" data-type=\"url\"  >\n\n    \n        <span class=\"button-atom__text\">View Google Sheet<\/span>\n\n        \n        \n                <\/a>\n\n    \n\n\n<\/div><div class=\"bde-button-3751-118 bde-button\">\n        \n    \n    \n    \n    \n            \n                    \n            \n            \n\n    \n    \n    \n    \n    \n    <a class=\"breakdance-link button-atom button-atom--custom bde-button__button\" href=\"https:\/\/events.edcitronnelliministries.com\/\" target=\"_self\" data-type=\"url\"  >\n\n    \n        <span class=\"button-atom__text\">WIX Events<\/span>\n\n        \n        \n                <\/a>\n\n    \n\n\n<\/div>\n<\/div><div class=\"bde-column-3751-103 bde-column\">\n  \n  \n\t\n\n\n\n<div class=\"bde-div-3751-113 bde-div\">\n  \n  \n\t\n\n\n\n<h2 class=\"bde-heading-3751-111 bde-heading\">\nStep 2. Sync Google Sheet with WordPress Website\n<\/h2><div class=\"bde-text-3751-112 bde-text\">\nThis button will scan google sheets, create wordpress post with ECM Events - This will delete all events and read them\n<\/div>\n<\/div><div class=\"bde-shortcode-3751-110 bde-shortcode\">         <div class=\"csv-sync-container\" data-config-id=\"3766\">\r\n            <button type=\"button\" class=\"csv-sync-button\" data-config-id=\"3766\">\r\n                Sync Data            <\/button>\r\n                            <div class=\"csv-sync-status\"><\/div>\r\n                    <\/div>\r\n         <\/div>\n<\/div><div class=\"bde-column-3751-104 bde-column\">\n  \n  \n\t\n\n\n\n<div class=\"bde-div-3751-117 bde-div\">\n  \n  \n\t\n\n\n\n<h2 class=\"bde-heading-3751-114 bde-heading\">\nStep 3. This is assign a delete date to the event using AI.\u00a0\n<\/h2><div class=\"bde-text-3751-116 bde-text\">\nexample:\u00a0LIMA event (Feb 28, 2025) \u2192 Deletes March 1, 2025\n<\/div>\n<\/div><div class=\"bde-shortcode-3751-115 bde-shortcode\">        <div class=\"ecm-auto-delete-container\">\r\n            <div class=\"ecm-button-container\">\r\n                <button type=\"button\" class=\"ecm-auto-delete-btn\" id=\"ecm-auto-delete-trigger\">\r\n                    Assign Auto Delete Date                <\/button>\r\n                \r\n                <button type=\"button\" class=\"ecm-status-btn\" id=\"ecm-view-status-trigger\">\r\n                    View Current Status\r\n                <\/button>\r\n            <\/div>\r\n            \r\n            <div id=\"ecm-processing-message\" class=\"ecm-processing-message\" style=\"display: none;\">\r\n                <div class=\"ecm-loading\"><\/div>\r\n                Processing events with OpenAI... This may take a few moments.\r\n            <\/div>\r\n            \r\n            <div id=\"ecm-status-message\" class=\"ecm-processing-message\" style=\"display: none; background: #e8f4f8; border-color: #bee5eb; color: #0c5460;\">\r\n                <div class=\"ecm-loading\"><\/div>\r\n                Loading current delete date status...\r\n            <\/div>\r\n            \r\n            <div id=\"ecm-results-container\"><\/div>\r\n        <\/div>\r\n        \r\n        <script>\r\n        jQuery(document).ready(function($) {\r\n            \/\/ Handle main processing button\r\n            $('#ecm-auto-delete-trigger').on('click', function() {\r\n                var $btn = $(this);\r\n                var $statusBtn = $('#ecm-view-status-trigger');\r\n                var $container = $('#ecm-results-container');\r\n                var $message = $('#ecm-processing-message');\r\n                var $statusMessage = $('#ecm-status-message');\r\n                \r\n                \/\/ Disable buttons and show processing\r\n                $btn.prop('disabled', true);\r\n                $statusBtn.prop('disabled', true);\r\n                $btn.html('Processing... <span class=\"ecm-loading\"><\/span>');\r\n                $message.show();\r\n                $statusMessage.hide();\r\n                $container.empty();\r\n                \r\n                $.post(ecm_ajax.ajax_url, {\r\n                    action: 'process_auto_delete_assignment',\r\n                    nonce: ecm_ajax.nonce\r\n                }, function(response) {\r\n                    $btn.prop('disabled', false);\r\n                    $statusBtn.prop('disabled', false);\r\n                    $btn.html('Assign Auto Delete Date');\r\n                    $message.hide();\r\n                    \r\n                    if (response.success) {\r\n                        $container.html(response.data.html);\r\n                    } else {\r\n                        $container.html('<div class=\"ecm-processing-message\" style=\"background: #f8d7da; border-color: #f5c6cb; color: #721c24;\">Error: ' + response.data.message + '<\/div>');\r\n                    }\r\n                }).fail(function() {\r\n                    $btn.prop('disabled', false);\r\n                    $statusBtn.prop('disabled', false);\r\n                    $btn.html('Assign Auto Delete Date');\r\n                    $message.hide();\r\n                    $container.html('<div class=\"ecm-processing-message\" style=\"background: #f8d7da; border-color: #f5c6cb; color: #721c24;\">Connection error. Please try again.<\/div>');\r\n                });\r\n            });\r\n            \r\n            \/\/ Handle view status button\r\n            $('#ecm-view-status-trigger').on('click', function() {\r\n                var $btn = $(this);\r\n                var $mainBtn = $('#ecm-auto-delete-trigger');\r\n                var $container = $('#ecm-results-container');\r\n                var $message = $('#ecm-processing-message');\r\n                var $statusMessage = $('#ecm-status-message');\r\n                \r\n                \/\/ Disable buttons and show loading\r\n                $btn.prop('disabled', true);\r\n                $mainBtn.prop('disabled', true);\r\n                $btn.html('Loading... <span class=\"ecm-loading\"><\/span>');\r\n                $statusMessage.show();\r\n                $message.hide();\r\n                $container.empty();\r\n                \r\n                $.post(ecm_ajax.ajax_url, {\r\n                    action: 'view_current_delete_status',\r\n                    nonce: ecm_ajax.status_nonce\r\n                }, function(response) {\r\n                    $btn.prop('disabled', false);\r\n                    $mainBtn.prop('disabled', false);\r\n                    $btn.html('View Current Status');\r\n                    $statusMessage.hide();\r\n                    \r\n                    if (response.success) {\r\n                        $container.html(response.data.html);\r\n                    } else {\r\n                        $container.html('<div class=\"ecm-processing-message\" style=\"background: #f8d7da; border-color: #f5c6cb; color: #721c24;\">Error: ' + response.data.message + '<\/div>');\r\n                    }\r\n                }).fail(function() {\r\n                    $btn.prop('disabled', false);\r\n                    $mainBtn.prop('disabled', false);\r\n                    $btn.html('View Current Status');\r\n                    $statusMessage.hide();\r\n                    $container.html('<div class=\"ecm-processing-message\" style=\"background: #f8d7da; border-color: #f5c6cb; color: #721c24;\">Connection error. Please try again.<\/div>');\r\n                });\r\n            });\r\n        });\r\n        <\/script>\r\n        <\/div>\n<\/div><\/div><div class=\"bde-shortcode-3751-120 bde-shortcode\"><p>Access denied.<\/p><\/div><\/div>\n<\/section><section class=\"bde-section-3751-121 bde-section\">\n  \n  \n\t\n\n\n\n<div class=\"section-container\"><h2 class=\"bde-heading-3751-123 bde-heading\">\nFollow Me - Sync Google sheet to website\n<\/h2><div class=\"bde-shortcode-3751-122 bde-shortcode\">        <div class=\"csv-sync-container\" data-config-id=\"3870\">\r\n            <button type=\"button\" class=\"csv-sync-button\" data-config-id=\"3870\">\r\n                Sync Data            <\/button>\r\n                            <div class=\"csv-sync-status\"><\/div>\r\n                    <\/div>\r\n        <\/div><\/div>\n<\/section>","protected":false},"excerpt":{"rendered":"<p>Step 1. Scape Wix Events This is scape all the Wix events and add them to the google sheet\u00a0 \ud83d\uddd1\ufe0f Delete Google Sheet WIX Scape to Google Sheet View Google Sheet WIX Events Step 2. Sync Google Sheet with WordPress Website This button will scan google sheets, create wordpress post with ECM Events &#8211; This [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"nf_dc_page":"","_breakdance_hide_in_design_set":false,"_breakdance_tags":"","nfd_onboarding_generated":"","footnotes":""},"class_list":["post-3751","page","type-page","status-publish","hentry"],"meta_box":[],"publishpress_future_workflow_manual_trigger":{"enabledWorkflows":[]},"_links":{"self":[{"href":"https:\/\/edcitronnelliministries.com\/es\/wp-json\/wp\/v2\/pages\/3751","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/edcitronnelliministries.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/edcitronnelliministries.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/edcitronnelliministries.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/edcitronnelliministries.com\/es\/wp-json\/wp\/v2\/comments?post=3751"}],"version-history":[{"count":11,"href":"https:\/\/edcitronnelliministries.com\/es\/wp-json\/wp\/v2\/pages\/3751\/revisions"}],"predecessor-version":[{"id":3871,"href":"https:\/\/edcitronnelliministries.com\/es\/wp-json\/wp\/v2\/pages\/3751\/revisions\/3871"}],"wp:attachment":[{"href":"https:\/\/edcitronnelliministries.com\/es\/wp-json\/wp\/v2\/media?parent=3751"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}