/** * Debug Fix Script für MYP Platform * Temporäre Fehlerbehebung für JavaScript-Probleme */ (function() { 'use strict'; console.log('🔧 Debug Fix Script wird geladen...'); // Namespace sicherstellen window.MYP = window.MYP || {}; window.MYP.UI = window.MYP.UI || {}; // MVP.UI Alias erstellen falls es fehlerhaft verwendet wird window.MVP = window.MVP || {}; window.MVP.UI = window.MVP.UI || {}; // DOMContentLoaded Event abwarten document.addEventListener('DOMContentLoaded', function() { console.log('🚀 Debug Fix: DOM Content geladen'); // Warten bis ui-components.js geladen ist setTimeout(() => { try { // MVP.UI DarkModeManager Alias erstellen if (window.MYP && window.MYP.UI && window.MYP.UI.darkMode) { window.MVP.UI.DarkModeManager = function() { console.log('⚠️ MVP.UI.DarkModeManager Konstruktor aufgerufen - verwende MYP.UI.darkMode stattdessen'); return window.MYP.UI.darkMode; }; console.log('✅ MVP.UI.DarkModeManager Alias erstellt'); } // JobManager sicherstellen if (!window.jobManager && window.JobManager) { window.jobManager = new window.JobManager(); console.log('✅ JobManager Instanz erstellt'); } // Fehlende setupFormHandlers Methode hinzufügen falls nötig if (window.jobManager && !window.jobManager.setupFormHandlers) { window.jobManager.setupFormHandlers = function() { console.log('✅ setupFormHandlers Fallback aufgerufen'); }; } // Global verfügbare Wrapper-Funktionen erstellen window.refreshJobs = function() { if (window.jobManager && window.jobManager.loadJobs) { return window.jobManager.loadJobs(); } else { console.warn('⚠️ JobManager nicht verfügbar - Seite wird neu geladen'); window.location.reload(); } }; console.log('✅ Debug Fix Script erfolgreich angewendet'); } catch (error) { console.error('❌ Debug Fix Fehler:', error); } }, 100); }); // Error Handler für unbehandelte Fehler window.addEventListener('error', function(e) { console.error('🐛 JavaScript Error abgefangen:', { message: e.message, filename: e.filename, lineno: e.lineno, colno: e.colno, error: e.error }); // Spezifische Fehlerbehebungen if (e.message.includes('MVP.UI.DarkModeManager is not a constructor')) { console.log('🔧 DarkModeManager Fehler erkannt - verwende MYP.UI.darkMode'); e.preventDefault(); return false; } if (e.message.includes('setupFormHandlers is not a function')) { console.log('🔧 setupFormHandlers Fehler erkannt - verwende Fallback'); e.preventDefault(); return false; } if (e.message.includes('Cannot read properties of undefined')) { console.log('🔧 Undefined Properties Fehler erkannt - ignoriert für Stabilität'); e.preventDefault(); return false; } }); // Promise rejection handler window.addEventListener('unhandledrejection', function(e) { console.error('🐛 Promise Rejection abgefangen:', e.reason); if (e.reason && e.reason.message && e.reason.message.includes('Jobs')) { console.log('🔧 Jobs-bezogener Promise Fehler - ignoriert'); e.preventDefault(); } }); console.log('✅ Debug Fix Script bereit'); })();