diff --git a/app/routes/admin.py b/app/routes/admin.py index 561a6a9..409dc12 100644 --- a/app/routes/admin.py +++ b/app/routes/admin.py @@ -498,3 +498,32 @@ def update_display_name(display_id: int): db.session.commit() flash("Display name updated", "success") return redirect(url_for("admin.company_detail", company_id=display.company_id)) + + +@bp.post("/displays//delete") +@login_required +def delete_display(display_id: int): + """Admin: delete a display.""" + + admin_required() + + display = db.session.get(Display, display_id) + if not display: + abort(404) + + company_id = display.company_id + display_name = display.name + + # If FK constraints are enabled, delete in a safe order. + # 1) Unassign playlist + display.assigned_playlist_id = None + + # 2) Delete active sessions for this display + DisplaySession.query.filter_by(display_id=display.id).delete(synchronize_session=False) + + # 3) Delete display + db.session.delete(display) + db.session.commit() + + flash(f"Display '{display_name}' deleted.", "success") + return redirect(url_for("admin.company_detail", company_id=company_id)) diff --git a/app/static/favicon.png b/app/static/favicon.png new file mode 100644 index 0000000..91fee84 Binary files /dev/null and b/app/static/favicon.png differ diff --git a/app/static/logo.svg b/app/static/logo.svg new file mode 100644 index 0000000..8769ab6 --- /dev/null +++ b/app/static/logo.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + OpenSlide + + diff --git a/app/static/styles.css b/app/static/styles.css index 8514db1..7318433 100644 --- a/app/static/styles.css +++ b/app/static/styles.css @@ -56,6 +56,12 @@ body { letter-spacing: -0.02em; } +.brand-logo { + width: 160px; + height: 45px; + display: block; +} + .navbar-brand { font-weight: 700; } diff --git a/app/templates/admin/company_detail.html b/app/templates/admin/company_detail.html index 4433fe8..17addb3 100644 --- a/app/templates/admin/company_detail.html +++ b/app/templates/admin/company_detail.html @@ -45,7 +45,17 @@ {{ d.token }} {{ d.assigned_playlist.name if d.assigned_playlist else "(none)" }} - Open +
+ Open +
+ +
+
{% else %} diff --git a/app/templates/base.html b/app/templates/base.html index da8cacd..4505579 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -4,6 +4,8 @@ {{ title or "Signage" }} + + @@ -11,8 +13,14 @@