@@ -313,6 +313,10 @@ const DashboardManager = {
313313 textSpan . className = 'note-text' ;
314314 textSpan . textContent = note . text ;
315315
316+ // Çift tıklama ile düzenleme
317+ textSpan . ondblclick = ( ) => this . editNote ( note . id ) ;
318+ div . ondblclick = ( ) => this . editNote ( note . id ) ;
319+
316320 const actions = document . createElement ( 'div' ) ;
317321 actions . className = 'note-actions' ;
318322
@@ -2119,6 +2123,9 @@ window.exportData = function() {
21192123 document . body . removeChild ( a ) ;
21202124 URL . revokeObjectURL ( url ) ;
21212125
2126+ // Son yedekleme tarihini kaydet
2127+ localStorage . setItem ( 'lastBackupDate' , Date . now ( ) . toString ( ) ) ;
2128+
21222129 showToast ( "Yedek indirildi!" , "success" ) ;
21232130} ;
21242131
@@ -2325,7 +2332,63 @@ window.cancelConfirm = function() {
23252332} ;
23262333
23272334// ==========================================
2328- // 20. GLOBAL KLAVYE KISAYOLLARI
2335+ // 21. YEDEKLEME UYARI SİSTEMİ
2336+ // ==========================================
2337+
2338+ function checkBackupReminder ( ) {
2339+ const lastBackup = localStorage . getItem ( 'lastBackupDate' ) ;
2340+ const now = Date . now ( ) ;
2341+ const sevenDays = 7 * 24 * 60 * 60 * 1000 ;
2342+
2343+ if ( ! lastBackup || ( now - parseInt ( lastBackup ) ) > sevenDays ) {
2344+ // Son yedek 7 günden eski veya hiç yedek alınmamış
2345+ const daysSince = lastBackup
2346+ ? Math . floor ( ( now - parseInt ( lastBackup ) ) / ( 24 * 60 * 60 * 1000 ) )
2347+ : '∞' ;
2348+
2349+ setTimeout ( ( ) => {
2350+ const reminder = document . createElement ( 'div' ) ;
2351+ reminder . className = 'backup-reminder' ;
2352+ reminder . innerHTML = `
2353+ <div class="backup-reminder-content">
2354+ <div class="backup-icon">💾</div>
2355+ <div class="backup-text">
2356+ <strong>Yedekleme Hatırlatması</strong>
2357+ <p>Son yedek: ${ daysSince === '∞' ? 'Hiç alınmadı' : daysSince + ' gün önce' } </p>
2358+ </div>
2359+ <div class="backup-actions">
2360+ <button onclick="dismissBackupReminder()" class="btn-dismiss">Daha Sonra</button>
2361+ <button onclick="openBackupNow()" class="btn-backup-now">Yedek Al</button>
2362+ </div>
2363+ </div>
2364+ ` ;
2365+ document . body . appendChild ( reminder ) ;
2366+
2367+ // 3 saniye sonra animasyonla göster
2368+ setTimeout ( ( ) => reminder . classList . add ( 'show' ) , 100 ) ;
2369+ } , 3000 ) ; // Sayfa yüklendikten 3 saniye sonra
2370+ }
2371+ }
2372+
2373+ window . dismissBackupReminder = function ( ) {
2374+ const reminder = document . querySelector ( '.backup-reminder' ) ;
2375+ if ( reminder ) {
2376+ reminder . classList . remove ( 'show' ) ;
2377+ setTimeout ( ( ) => reminder . remove ( ) , 300 ) ;
2378+ // 3 gün sonra tekrar hatırlat
2379+ localStorage . setItem ( 'backupReminderDismissed' , Date . now ( ) ) ;
2380+ }
2381+ } ;
2382+
2383+ window . openBackupNow = function ( ) {
2384+ dismissBackupReminder ( ) ;
2385+ openSettingsModal ( ) ;
2386+ // Yedekleme tarihini güncelle
2387+ localStorage . setItem ( 'lastBackupDate' , Date . now ( ) . toString ( ) ) ;
2388+ } ;
2389+
2390+ // ==========================================
2391+ // 22. CLEANUP VE EVENT LISTENERS
23292392// ==========================================
23302393
23312394document . addEventListener ( 'keydown' , function ( event ) {
@@ -2412,6 +2475,9 @@ document.addEventListener('DOMContentLoaded', () => {
24122475 PasswordsManager . render ( ) ;
24132476 CalendarManager . init ( ) ;
24142477
2478+ // Yedekleme hatırlatıcısını kontrol et
2479+ checkBackupReminder ( ) ;
2480+
24152481 console . log ( '✅ RootPanel v2.0 başarıyla yüklendi!' ) ;
24162482
24172483 } catch ( error ) {
0 commit comments