107 lines
4.1 KiB
JavaScript

/**
* 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');
})();