fix: Hide control panel from regular visitors

- Move control panel initialization from start() to startEditor()
- Ensure UI only appears after successful gate activation
- Regular visitors now see zero indication of insertr presence
- Maintains 'invisible CMS' principle for end users

User Experience:
- Before gate: Website appears completely normal
- After gate: Control panel slides in for authenticated editors
- Gates remain the only trigger mechanism for editors
This commit is contained in:
2025-09-17 17:08:35 +02:00
parent 39b9c533fd
commit 988f99f58b

View File

@@ -78,21 +78,24 @@ window.Insertr = {
document.head.appendChild(link); document.head.appendChild(link);
}, },
// Start the system - initializes auth gates and UI // Start the system - only creates invisible editor gates
start() { start() {
if (this.auth) { if (this.auth) {
this.auth.init(); // Sets up editor gates this.auth.init(); // Sets up invisible editor gates only
} }
if (this.controlPanel) { // Note: Control panel is NOT created here - only after gate activation
// Note: Editor is NOT started here - only when authentication succeeds
},
// Start the full editor system (called when gate is activated)
startEditor() {
// Initialize control panel UI (first time only)
if (this.controlPanel && !this.controlPanel.isInitialized) {
this.controlPanel.init(); // Creates unified control panel UI this.controlPanel.init(); // Creates unified control panel UI
} }
// Note: Editor is NOT started here, only when authentication succeeds // Start editor functionality
},
// Start the full editor system (called when trigger is activated)
startEditor() {
if (this.editor && !this.editor.isActive) { if (this.editor && !this.editor.isActive) {
this.editor.start(); this.editor.start();
} }
@@ -139,7 +142,8 @@ function autoInitialize() {
if (insertrScript) { if (insertrScript) {
config.siteId = insertrScript.getAttribute('data-site-id'); // No fallback - let ApiClient handle missing values config.siteId = insertrScript.getAttribute('data-site-id'); // No fallback - let ApiClient handle missing values
config.apiEndpoint = insertrScript.getAttribute('data-api-endpoint') || '/api/content'; config.apiEndpoint = insertrScript.getAttribute('data-api-endpoint') || '/api/content';
config.mockAuth = insertrScript.getAttribute('data-mock-auth') === 'true'; config.authProvider = insertrScript.getAttribute('data-auth-provider') || 'mock';
config.mockAuth = config.authProvider === 'mock'; // Set mockAuth based on provider
config.debug = insertrScript.getAttribute('data-debug') === 'true'; config.debug = insertrScript.getAttribute('data-debug') === 'true';
} }