@@ -22,6 +22,9 @@ import { AnalyticsManager } from './modules/analytics.js';
2222import { CashManagementManager } from './modules/cash-management.js' ;
2323import { DayManager } from './modules/day.js' ;
2424import { AuditService } from './services/audit.js' ;
25+ import { TelemetryService } from './services/telemetry.js' ;
26+ import { DiagnosticsManager } from './modules/diagnostics.js' ;
27+ import { AdminManager } from './modules/admin.js' ;
2528
2629// Import template loader utility
2730import { TemplateLoader } from './utils/template-loader.js' ;
@@ -37,11 +40,28 @@ window.addEventListener('error', function(event) {
3740 const errorMsg = event . error ?. message || event . message || 'Unknown error' ;
3841 console . error ( 'Global error:' , event . error ) ;
3942 UIManager . showToast ( 'An error occurred: ' + errorMsg ) ;
43+
44+ // Log to telemetry
45+ TelemetryService . captureError ( {
46+ type : 'uncaught' ,
47+ message : errorMsg ,
48+ stack : event . error ?. stack ,
49+ source : event . filename ,
50+ line : event . lineno ,
51+ column : event . colno
52+ } ) ;
4053} ) ;
4154
4255window . addEventListener ( 'unhandledrejection' , function ( event ) {
4356 const errorMsg = event . reason ?. message || event . reason || 'Unknown rejection' ;
4457 console . error ( 'Unhandled promise rejection:' , event . reason ) ;
58+
59+ // Log to telemetry
60+ TelemetryService . captureError ( {
61+ type : 'unhandledrejection' ,
62+ message : errorMsg ,
63+ stack : event . reason ?. stack
64+ } ) ;
4565} ) ;
4666
4767// Setup event listeners
@@ -629,6 +649,30 @@ window.app = {
629649 showChangeRoleDialog : ( userId , userName , currentRole ) => UsersManager . showChangeRoleDialog ( userId , userName , currentRole )
630650 } ,
631651
652+ // Diagnostics (owner only)
653+ diagnostics : {
654+ init : ( ) => DiagnosticsManager . init ( ) ,
655+ showTab : ( tab ) => DiagnosticsManager . showTab ( tab ) ,
656+ loadData : ( ) => DiagnosticsManager . loadData ( ) ,
657+ loadAuditLogs : ( ) => DiagnosticsManager . loadAuditLogs ( ) ,
658+ filterByType : ( type ) => DiagnosticsManager . filterByType ( type ) ,
659+ filterAuditLogs : ( action ) => DiagnosticsManager . filterAuditLogs ( action ) ,
660+ deleteError : ( errorId ) => DiagnosticsManager . deleteError ( errorId ) ,
661+ clearAll : ( ) => DiagnosticsManager . clearAll ( )
662+ } ,
663+
664+ // Admin (owner only)
665+ admin : {
666+ init : ( ) => AdminManager . init ( ) ,
667+ showTab : ( tab ) => AdminManager . showTab ( tab ) ,
668+ saveConfigure : ( ) => AdminManager . saveConfigure ( ) ,
669+ approveUser : ( userId ) => AdminManager . approveUser ( userId ) ,
670+ rejectUser : ( userId ) => AdminManager . rejectUser ( userId ) ,
671+ showChangeRole : ( userId , userName , currentRole ) => AdminManager . showChangeRole ( userId , userName , currentRole ) ,
672+ loadStorageStats : ( ) => AdminManager . loadStorageStats ( ) ,
673+ clearAllData : ( ) => AdminManager . clearAllData ( )
674+ } ,
675+
632676 // UI
633677 ui : {
634678 showLoading : ( ) => UIManager . showLoading ( ) ,
0 commit comments