diff --git a/src/main/java/com/imgfloat/app/config/SchemaMigration.java b/src/main/java/com/imgfloat/app/config/SchemaMigration.java index a682a6f..bd3f1b9 100644 --- a/src/main/java/com/imgfloat/app/config/SchemaMigration.java +++ b/src/main/java/com/imgfloat/app/config/SchemaMigration.java @@ -23,10 +23,21 @@ public class SchemaMigration implements ApplicationRunner { @Override public void run(ApplicationArguments args) { + cleanupSpringSessionTables(); ensureChannelCanvasColumns(); ensureAssetMediaColumns(); } + private void cleanupSpringSessionTables() { + try { + jdbcTemplate.execute("DELETE FROM SPRING_SESSION_ATTRIBUTES"); + jdbcTemplate.execute("DELETE FROM SPRING_SESSION"); + logger.info("Cleared persisted Spring Session tables on startup to avoid stale session conflicts"); + } catch (DataAccessException ex) { + logger.debug("Spring Session tables not available for cleanup", ex); + } + } + private void ensureChannelCanvasColumns() { List columns; try { diff --git a/src/main/resources/static/css/styles.css b/src/main/resources/static/css/styles.css index d29df6d..b0d5280 100644 --- a/src/main/resources/static/css/styles.css +++ b/src/main/resources/static/css/styles.css @@ -348,8 +348,9 @@ body { .panel-actions { display: flex; - flex-direction: column; - gap: 10px; + flex-direction: row; + gap: 20px; + padding: 20px; } .preview-grid { @@ -461,6 +462,35 @@ body { gap: 20px; } +.dashboard-topbar { + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; + padding: 14px 18px; + background: rgba(15, 23, 42, 0.85); + border: 1px solid #1f2937; + border-radius: 14px; + box-shadow: 0 12px 35px rgba(0, 0, 0, 0.35); +} + +.user-pill { + display: flex; + flex-direction: column; + align-items: flex-end; + gap: 4px; + padding: 10px 12px; + border-radius: 12px; + background: rgba(124, 58, 237, 0.1); + border: 1px solid rgba(124, 58, 237, 0.2); +} + +.user-display { + font-weight: 700; + color: #e2e8f0; + font-size: 16px; +} + .dashboard-header { display: flex; align-items: flex-start; @@ -1278,6 +1308,12 @@ body { gap: 10px; } +#admin-suggestions { + max-height: 240px; + overflow-y: auto; + padding-right: 6px; +} + .stacked-list-item { display: flex; justify-content: space-between; diff --git a/src/main/resources/templates/dashboard.html b/src/main/resources/templates/dashboard.html index 9096690..f94d1d4 100644 --- a/src/main/resources/templates/dashboard.html +++ b/src/main/resources/templates/dashboard.html @@ -7,63 +7,54 @@
-
-
-

Dashboard

-

Hello, user

-

Manage overlay assets, keep your canvas sized correctly, and hand off control to trusted mods.

-
    -
  • Channel: channel
  • -
  • Secure dashboard
  • -
+
+
+
IF
+
+
Imgfloat
+
Twitch overlay manager
+
-
-
-
-

Quick actions

-

Jump into your overlay

-
- Live -
-
-

Open your broadcast view or delegate control without leaving this page.

-
- +
+ Signed in as + user
-
-
-
-
-

Canvas

-

Overlay size

-

Match your OBS output so overlays land where you expect.

-
-
Visible to admins
-
-
- - -
-
- - -
+
+

Navigation

+

Shortcuts

+

Jump into your overlay

+ +
+
+

Settings

+

Overlay dimensions

+

Match these with your OBS resolution.

+
+ + +
+
+ + +
+
+ +
@@ -78,14 +69,13 @@
-

Current

Admins

+

Users who can currently modify your overlay.

    -

    Suggested

    Your Twitch moderators

    Add moderators who already help run your channel.

    diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index e8aa3b1..3b66e19 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -29,14 +29,6 @@
    - -