Live-update the account page status block after sync
Mirrors the dashboard's row update: "Sync now" on the account page refreshes the status block in place and shows a toast, instead of navigating to a separate result page. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -7,7 +7,7 @@ from app.auth.csrf import ensure_csrf_token, validate_csrf
|
||||
from app.db.repositories import ActivityRepository, SyncRunRepository, UserRepository
|
||||
from app.security.credentials import CredentialCipher
|
||||
from app.sync.manager import SyncAlreadyRunning
|
||||
from app.web.operations import _normalize_outcome
|
||||
from app.web.operations import _outcome_toast, _toast_html
|
||||
from app.web.routes import templates
|
||||
|
||||
router = APIRouter()
|
||||
@@ -92,11 +92,19 @@ async def account_sync(request: Request, csrf_token: str = Form(...)):
|
||||
validate_csrf(request, csrf_token)
|
||||
try:
|
||||
outcome = await request.app.state.sync_manager.sync_user(user_id)
|
||||
with request.app.state.session_factory() as session:
|
||||
user = UserRepository(session).get(user_id)
|
||||
label = user.name if user is not None else "Account"
|
||||
message, level = _outcome_toast(outcome, label)
|
||||
except SyncAlreadyRunning:
|
||||
return HTMLResponse("Sync already running for this user", status_code=409)
|
||||
return templates.TemplateResponse(
|
||||
request, "fragments/sync_result.html", {"outcomes": [_normalize_outcome(outcome)]}
|
||||
with request.app.state.session_factory() as session:
|
||||
user = UserRepository(session).get(user_id)
|
||||
label = user.name if user is not None else "Account"
|
||||
message, level = f"{label}: sync already running", "info"
|
||||
status_html = (
|
||||
templates.get_template("fragments/account_status.html").render(user=user) if user is not None else ""
|
||||
)
|
||||
return HTMLResponse(status_html + _toast_html(message, level))
|
||||
|
||||
|
||||
@router.get("/account/edit", response_class=HTMLResponse)
|
||||
|
||||
Reference in New Issue
Block a user