feat(setup): add done button and integrate NFO scan into initialization
- Add /api/setup/unresolved/done endpoint to mark phase complete - NFO scan now runs after series sync during initialization - Middleware redirects to /login after setup complete (was /loading) - Done button allows skipping folder resolution with redirect to NFO scan phase
This commit is contained in:
@@ -105,6 +105,20 @@ class SetupRedirectMiddleware(BaseHTTPMiddleware):
|
||||
|
||||
return False
|
||||
|
||||
def _is_unresolved_completed(self) -> bool:
|
||||
"""Check if the unresolved phase has been completed.
|
||||
|
||||
Returns:
|
||||
True if unresolved phase is complete, False otherwise
|
||||
"""
|
||||
try:
|
||||
config_service = get_config_service()
|
||||
config = config_service.load_config()
|
||||
other = config.other or {}
|
||||
return bool(other.get('unresolved_completed', False))
|
||||
except Exception:
|
||||
return False
|
||||
|
||||
async def dispatch(
|
||||
self, request: Request, call_next: Callable
|
||||
) -> Response:
|
||||
@@ -120,13 +134,17 @@ class SetupRedirectMiddleware(BaseHTTPMiddleware):
|
||||
path = request.url.path
|
||||
|
||||
# Check if trying to access setup or loading page after completion
|
||||
if path in ("/setup", "/loading"):
|
||||
if path in ("/setup", "/loading", "/setup/unresolved"):
|
||||
if not self._needs_setup():
|
||||
# Setup is complete, check loading status
|
||||
if path == "/setup":
|
||||
# Redirect to loading if initialization is in progress
|
||||
# Otherwise redirect to login
|
||||
return RedirectResponse(url="/login", status_code=302)
|
||||
elif path == "/setup/unresolved":
|
||||
# Check if unresolved phase is already completed
|
||||
if self._is_unresolved_completed():
|
||||
# Redirect to loading - unresolved phase already done
|
||||
return RedirectResponse(url="/loading", status_code=302)
|
||||
elif path == "/loading":
|
||||
# Always allow access to loading page - it handles its own
|
||||
# redirect flow via WebSocket events (initialization_complete
|
||||
|
||||
Reference in New Issue
Block a user