refactor(frontend): Reorganize pages with tabbed Settings and focused System page

- Create new tabbed Settings component combining accounts and notifications
- Extract sync operations into dedicated System component
- Update routing: /notifications → /system with proper navigation labels
- Remove duplicate page headers (using existing SiteHeader)
- Add shadcn tabs component for better UX
- Fix mypy error in database_service.py (handle None lastrowid)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Elisiário Couto
2025-09-22 22:58:49 +01:00
committed by Elisiário Couto
parent 3f2ff21eac
commit 65404848aa
10 changed files with 953 additions and 9 deletions

View File

@@ -1553,6 +1553,9 @@ class DatabaseService:
)
operation_id = cursor.lastrowid
if operation_id is None:
raise ValueError("Failed to get operation ID after insert")
conn.commit()
conn.close()
@@ -1563,7 +1566,9 @@ class DatabaseService:
logger.error(f"Failed to persist sync operation: {e}")
raise
async def get_sync_operations(self, limit: int = 50, offset: int = 0) -> List[Dict[str, Any]]:
async def get_sync_operations(
self, limit: int = 50, offset: int = 0
) -> List[Dict[str, Any]]:
"""Get sync operations from database"""
if not self.sqlite_enabled:
logger.warning("SQLite database disabled, cannot get sync operations")
@@ -1611,4 +1616,4 @@ class DatabaseService:
except Exception as e:
logger.error(f"Failed to get sync operations: {e}")
return []
return []