listmonk sync

This commit is contained in:
2025-08-15 11:14:38 -06:00
parent b885d89ae4
commit c973fe55cd
20 changed files with 3416 additions and 6 deletions

View File

@@ -51,6 +51,10 @@
<span class="nav-icon">🗄️</span>
<span class="nav-text">NocoDB Links</span>
</a>
<a href="#listmonk-links">
<span class="nav-icon">📧</span>
<span class="nav-text">Listmonk Links</span>
</a>
<a href="#start-location" class="active">
<span class="nav-icon">📍</span>
<span class="nav-text">Start Location</span>
@@ -75,6 +79,10 @@
<span class="nav-icon">📊</span>
<span class="nav-text">Convert Data</span>
</a>
<a href="#listmonk">
<span class="nav-icon">📧</span>
<span class="nav-text">Email Lists</span>
</a>
</nav>
<div class="sidebar-footer">
<div id="mobile-admin-info" class="mobile-admin-info mobile-only"></div>
@@ -207,6 +215,86 @@
</div>
</section>
<!-- Listmonk Links Section -->
<section id="listmonk-links" class="admin-section" style="display: none;">
<h2>Listmonk Email Management Links</h2>
<p>Quick access to all Listmonk email management interfaces for campaign communications.</p>
<div class="nocodb-info">
<div class="info-box">
<h4>📧 About Listmonk</h4>
<p>
Listmonk is the email marketing platform that powers campaign communications. Use these links to directly access and manage your email lists, campaigns, and subscribers through the Listmonk interface.
</p>
<p>
The Map application automatically syncs data to Listmonk email lists based on support levels and sign requests.<br>
<a href="https://listmonk.app/docs/" target="_blank" rel="noopener" class="btn btn-link">Listmonk Documentation</a>
<a href="https://github.com/knadh/listmonk" target="_blank" rel="noopener" class="btn btn-link">GitHub Repository</a>
</p>
</div>
</div>
<div class="nocodb-links-container">
<div class="nocodb-cards">
<div class="nocodb-card">
<div class="nocodb-card-header">
<h3>🏠 Dashboard</h3>
<span class="nocodb-card-badge">Main</span>
</div>
<p>Main Listmonk dashboard with overview and analytics</p>
<a href="#" id="admin-listmonk-admin-link" class="btn btn-primary" target="_blank">
Open Dashboard
</a>
</div>
<div class="nocodb-card">
<div class="nocodb-card-header">
<h3>📋 Email Lists</h3>
<span class="nocodb-card-badge">Lists</span>
</div>
<p>Manage email lists and subscriber segments</p>
<a href="#" id="admin-listmonk-lists-link" class="btn btn-secondary" target="_blank">
Open Lists
</a>
</div>
<div class="nocodb-card">
<div class="nocodb-card-header">
<h3>📧 Campaigns</h3>
<span class="nocodb-card-badge">Email</span>
</div>
<p>Create and manage email campaigns</p>
<a href="#" id="admin-listmonk-campaigns-link" class="btn btn-secondary" target="_blank">
Open Campaigns
</a>
</div>
<div class="nocodb-card">
<div class="nocodb-card-header">
<h3>👤 Subscribers</h3>
<span class="nocodb-card-badge">People</span>
</div>
<p>View and manage email subscribers</p>
<a href="#" id="admin-listmonk-subscribers-link" class="btn btn-secondary" target="_blank">
Open Subscribers
</a>
</div>
<div class="nocodb-card">
<div class="nocodb-card-header">
<h3>⚙️ Settings</h3>
<span class="nocodb-card-badge">Config</span>
</div>
<p>Configure Listmonk settings and SMTP</p>
<a href="#" id="admin-listmonk-settings-link" class="btn btn-secondary" target="_blank">
Open Settings
</a>
</div>
</div>
</div>
</section>
<!-- Start Location Section -->
<section id="start-location" class="admin-section">
<h2>Map Start Location</h2>
@@ -976,6 +1064,113 @@
</div>
</div>
</section>
<!-- Email Lists (Listmonk) Section -->
<section id="listmonk" class="admin-section" style="display: none;">
<h2>Email List Management (Listmonk)</h2>
<p>Manage email list synchronization with Listmonk for campaign communications.</p>
<div class="listmonk-container">
<div class="listmonk-stats">
<h3>Sync Status</h3>
<div id="sync-status-display">
<div class="status-row">
<span>Connection:</span>
<span id="connection-status">Checking...</span>
</div>
<div class="status-row">
<span>Auto-sync:</span>
<span id="autosync-status">Checking...</span>
</div>
<div class="status-row">
<span>Last Error:</span>
<span id="last-error">None</span>
</div>
</div>
</div>
<div class="listmonk-actions">
<h3>Sync Actions</h3>
<p>Force synchronization of all data to Listmonk email lists:</p>
<div class="sync-buttons">
<button id="sync-locations-btn" class="btn btn-primary">
<span>📍</span> Sync All Locations
</button>
<button id="sync-users-btn" class="btn btn-primary">
<span>👤</span> Sync All Users
</button>
<button id="sync-all-btn" class="btn btn-success">
<span>🔄</span> Sync Everything
</button>
<button id="refresh-status-btn" class="btn btn-secondary">
<span>🔍</span> Refresh Status
</button>
<button id="test-connection-btn" class="btn btn-warning">
<span>🔗</span> Test Connection
</button>
<button id="reinitialize-lists-btn" class="btn btn-info">
<span>🛠️</span> Reinitialize Lists
</button>
</div>
</div>
</div>
<div id="sync-progress" class="sync-progress" style="display: none;">
<h3>Sync Progress</h3>
<div class="progress-bar-container">
<div class="progress-bar">
<div class="progress-bar-fill" id="sync-progress-bar"></div>
</div>
</div>
<div id="sync-results"></div>
</div>
<div class="listmonk-info">
<h3>About Email List Sync</h3>
<div class="info-grid">
<div class="info-section">
<h4>Automatic Lists Created:</h4>
<ul>
<li><strong>Map Locations - All:</strong> All contacts with email addresses</li>
<li><strong>Map Users - All:</strong> All system users</li>
<li><strong>Support Level 1-4:</strong> Segmented by support level</li>
<li><strong>Has Campaign Sign:</strong> Contacts with signs</li>
<li><strong>Wants Campaign Sign:</strong> Contacts wanting signs (from notes)</li>
</ul>
</div>
<div class="info-section">
<h4>Real-time Sync:</h4>
<ul>
<li>New locations automatically sync to appropriate lists</li>
<li>Updates are reflected immediately in email lists</li>
<li>Deletions remove contacts from all lists</li>
<li>Sync failures are logged and shown in status</li>
</ul>
</div>
<div class="info-section">
<h4>Contact Data Synced:</h4>
<ul>
<li>Email, name, phone, address</li>
<li>Support level, sign status, notes</li>
<li>Geographic coordinates</li>
<li>Source tracking (map_location/map_user)</li>
</ul>
</div>
<div class="info-section">
<h4>Troubleshooting:</h4>
<ul>
<li>Check Listmonk service is running</li>
<li>Verify credentials in environment variables</li>
<li>Use "Test Connection" to verify setup</li>
<li>Check logs for detailed error information</li>
</ul>
</div>
</div>
</div>
</section>
</div>
</div>
@@ -1053,6 +1248,10 @@
<!-- Admin Cuts JavaScript -->
<script src="js/admin-cuts.js"></script>
<!-- Listmonk Status and Admin -->
<script src="js/listmonk-status.js"></script>
<script src="js/listmonk-admin.js"></script>
<!-- Data Convert JavaScript -->
<!-- Admin JavaScript -->
<script src="js/admin.js"></script>