diff --git a/src/main/java/cz/kamma/fabka/web/Pages.java b/src/main/java/cz/kamma/fabka/web/Pages.java index 05695c0..116c0cd 100644 --- a/src/main/java/cz/kamma/fabka/web/Pages.java +++ b/src/main/java/cz/kamma/fabka/web/Pages.java @@ -197,6 +197,7 @@ public final class Pages { String forumName = forum == null ? "" : forum.getName(); String forumDesc = forum == null ? "" : forum.getDescription(); + String forumHeaderSection = forumDesc.isBlank() ? forumName : forumName + " - " + forumDesc; String forumCountdown = forum == null ? "" : valueOrDefault(forum.getCountdown(), ""); long loadPageTime = System.currentTimeMillis(); long forumId = forum == null ? 0 : forum.getId(); @@ -231,10 +232,9 @@ public final class Pages { } return FORUM_DISPLAY_TEMPLATE - .replace("{{COMMON_HEADER}}", renderCommonHeader(username, forumName, true, pmStats)) + .replace("{{COMMON_HEADER}}", renderCommonHeader(username, forumHeaderSection, true, pmStats)) .replace("{{COMMON_FOOTER}}", renderCommonFooter(Math.max(0, loggedUsersCount), loggedUsers)) .replace("{{FORUM_NAME}}", escapeHtml(forumName)) - .replace("{{FORUM_DESCRIPTION}}", escapeHtml(forumDesc)) .replace("{{COUNTDOWN_BLOCK}}", buildCountdownBlock(forumCountdown, loadPageTime)) .replace("{{MESSAGE_ROWS}}", messageRows.toString()) .replace("{{FORUM_ID}}", String.valueOf(forumId)) @@ -744,41 +744,7 @@ public final class Pages { + "
| "
+ " "
+ " "
diff --git a/src/main/resources/webapp/client.js b/src/main/resources/webapp/client.js
index a8b0ada..8dce852 100644
--- a/src/main/resources/webapp/client.js
+++ b/src/main/resources/webapp/client.js
@@ -229,13 +229,13 @@ function AX_asynchUpdateResponse()
for (var i=0; i <= (chatIds.length-1); i++)
{
var divIdName = 'chatId_'+chatIds[i].firstChild.data;
- var color = 'color:#FF0000';
+ var color = 'color:var(--fc-chat-new,#cf1e1e)';
if (newMess[i].firstChild.data=='1')
- color = 'color:#FF0000';
+ color = 'color:var(--fc-chat-new,#cf1e1e)';
else if (newMess[i].firstChild.data=='2')
- color = 'color:#0000FF';
+ color = 'color:var(--fc-chat-info,#0e3fba)';
else
- color = 'color:#000000';
+ color = 'color:var(--fc-chat-default,#24110b)';
/*
var yesVotes = 0;
var noVotes = 0;
@@ -307,4 +307,4 @@ function AX_asynchUpdateResponse()
}
/*
* END of response functions
- */
\ No newline at end of file
+ */
diff --git a/src/main/resources/webapp/css/all.css b/src/main/resources/webapp/css/all.css
index ccbac1c..49f7f7e 100644
--- a/src/main/resources/webapp/css/all.css
+++ b/src/main/resources/webapp/css/all.css
@@ -510,6 +510,9 @@ ul.menu .topline {border-top:1px solid #aaa}
--fc-nav-logout-bg: #f1d6c0;
--fc-nav-logout-border: #a76435;
--fc-nav-logout-fg: #5f1c00;
+ --fc-chat-new: #cf1e1e;
+ --fc-chat-info: #0e3fba;
+ --fc-chat-default: #24110b;
}
:root[data-theme='dark']
@@ -568,6 +571,9 @@ ul.menu .topline {border-top:1px solid #aaa}
--fc-nav-logout-bg: #4a2f24;
--fc-nav-logout-border: #8f5135;
--fc-nav-logout-fg: #ffd8c4;
+ --fc-chat-new: #ff8b8b;
+ --fc-chat-info: #9dc0ff;
+ --fc-chat-default: #eae4d8;
}
@media (prefers-color-scheme: dark)
@@ -628,6 +634,9 @@ ul.menu .topline {border-top:1px solid #aaa}
--fc-nav-logout-bg: #4a2f24;
--fc-nav-logout-border: #8f5135;
--fc-nav-logout-fg: #ffd8c4;
+ --fc-chat-new: #ff8b8b;
+ --fc-chat-info: #9dc0ff;
+ --fc-chat-default: #eae4d8;
}
}
@@ -693,11 +702,13 @@ a:hover, a:active, .page a:hover, .page a:active
.alt1, .alt1Active
{
background: var(--fc-alt1);
+ color: var(--fc-fg-main);
}
.alt2, .alt2Active
{
background: var(--fc-alt2);
+ color: var(--fc-fg-main);
}
.panelsurround
@@ -749,6 +760,212 @@ textarea, .bginput, select
border-radius: 8px;
}
+.fc-header-shell
+{
+ border-radius: 10px;
+ overflow: hidden;
+ box-shadow: 0 2px 10px var(--fc-shadow-soft, rgba(0, 0, 0, .10));
+}
+
+.fc-header-wrap
+{
+ background: linear-gradient(180deg, var(--fc-header-top, #fffce1) 0%, var(--fc-header-bottom, #fff5b5) 100%);
+ padding: 10px 12px;
+}
+
+.fc-header-top
+{
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ gap: 8px;
+ flex-wrap: wrap;
+ margin-bottom: 10px;
+}
+
+.fc-brand
+{
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ gap: 6px;
+ color: var(--fc-header-title, #311313);
+ font-weight: bold;
+ font-size: 16px;
+ line-height: 1.3;
+}
+
+.fc-brand a
+{
+ color: var(--fc-header-title, #311313);
+ text-decoration: none;
+}
+
+.fc-brand a:hover
+{
+ text-decoration: underline;
+}
+
+.fc-header-sep
+{
+ color: var(--fc-header-sep, #7d5a30);
+ font-weight: bold;
+}
+
+.fc-header-section-link, .fc-header-section-label
+{
+ font-size: 13px;
+ color: var(--fc-header-section, #5a2b2b);
+}
+
+.fc-pm-pill
+{
+ display: inline-flex;
+ align-items: center;
+ gap: 6px;
+ padding: 4px 10px;
+ border-radius: 999px;
+ background: var(--fc-pill-bg, #fff8dc);
+ border: 1px solid var(--fc-pill-border, #d7c57a);
+ color: var(--fc-pill-fg, #6c5b24);
+ font-size: 11px;
+}
+
+.fc-pm-pill-alert
+{
+ background: var(--fc-pill-alert-bg, #fff1e0);
+ border-color: var(--fc-pill-alert-border, #cd7f32);
+ color: var(--fc-pill-alert-fg, #7f2f00);
+}
+
+.fc-pm-pill img
+{
+ display: block;
+}
+
+.fc-header-right
+{
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ flex-wrap: wrap;
+ justify-content: flex-end;
+}
+
+.fc-theme-toggle
+{
+ padding: 4px 10px;
+ border-radius: 999px;
+ border: 1px solid var(--fc-nav-border, #7d5a30);
+ background: var(--fc-nav-bg, #f6edd0);
+ color: var(--fc-nav-fg, #4d2a2a);
+ font-size: 11px;
+ font-weight: bold;
+ cursor: pointer;
+}
+
+.fc-theme-toggle:hover
+{
+ background: var(--fc-nav-hover-bg, #fff8dc);
+}
+
+.fc-header-main
+{
+ display: flex;
+ justify-content: space-between;
+ align-items: flex-start;
+ gap: 12px;
+ flex-wrap: wrap;
+}
+
+.fc-account
+{
+ display: flex;
+ align-items: flex-start;
+ gap: 10px;
+ min-width: 260px;
+ background: var(--fc-account-bg, #ffffef);
+ border: 1px solid var(--fc-account-border, #d9cc93);
+ border-radius: 8px;
+ padding: 8px 10px;
+}
+
+.fc-account-guest
+{
+ min-width: 220px;
+}
+
+.fc-avatar
+{
+ width: 56px;
+ height: 56px;
+ border: 1px solid var(--fc-avatar-border, #b9a96f);
+ border-radius: 8px;
+ object-fit: cover;
+}
+
+.fc-account-meta
+{
+ display: flex;
+ flex-direction: column;
+ gap: 2px;
+}
+
+.fc-clock-wrap
+{
+ margin-bottom: 2px;
+}
+
+.fc-clock
+{
+ color: var(--fc-clock, #1b7c2c);
+ font-weight: bold;
+ font-size: 12px;
+}
+
+.fc-nav
+{
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: flex-end;
+ gap: 6px;
+ max-width: 700px;
+}
+
+.fc-nav-link
+{
+ display: inline-block;
+ padding: 5px 10px;
+ border-radius: 6px;
+ border: 1px solid var(--fc-nav-border, #7d5a30);
+ background: var(--fc-nav-bg, #f6edd0);
+ color: var(--fc-nav-fg, #4d2a2a) !important;
+ font-size: 11px;
+ font-weight: bold;
+ text-decoration: none;
+}
+
+.fc-nav-link:hover
+{
+ background: var(--fc-nav-hover-bg, #fff8dc);
+ text-decoration: none;
+}
+
+.fc-nav-link-active
+{
+ background: var(--fc-nav-active-bg, #663333);
+ color: var(--fc-nav-active-fg, #fff8e1) !important;
+ border-color: var(--fc-nav-active-border, #4d2525);
+}
+
+.fc-nav-link-logout
+{
+ background: var(--fc-nav-logout-bg, #f1d6c0);
+ border-color: var(--fc-nav-logout-border, #a76435);
+ color: var(--fc-nav-logout-fg, #5f1c00) !important;
+}
+
img
{
max-width: 100%;
@@ -792,6 +1009,28 @@ input[type='text'], input[type='password'], input[type='file'], textarea, select
{
min-width: 140px;
}
+
+ .fc-header-wrap
+ {
+ padding: 9px;
+ }
+
+ .fc-header-main
+ {
+ flex-direction: column;
+ align-items: stretch;
+ }
+
+ .fc-nav
+ {
+ justify-content: flex-start;
+ }
+
+ .fc-account
+ {
+ min-width: 0;
+ width: 100%;
+ }
}
/* Contrast fixes for both themes */
@@ -827,9 +1066,64 @@ td, th, p, li
color: var(--fc-thead-fg);
}
+.tfoot
+{
+ background: linear-gradient(180deg, var(--fc-vbmenu-top) 0%, var(--fc-vbmenu-bottom) 100%);
+ color: var(--fc-vbmenu-fg);
+}
+
.tfoot a:link, .tfoot_alink,
.tfoot a:visited, .tfoot_avisited,
.tfoot a:hover, .tfoot a:active, .tfoot_ahover
{
color: var(--fc-thead-fg);
}
+
+.vbmenu_popup,
+.vbmenu_option,
+.vbmenu_hilite,
+.vbmenu_option a:link,
+.vbmenu_option a:visited,
+.vbmenu_option a:hover,
+.vbmenu_hilite a:link,
+.vbmenu_hilite a:visited,
+.vbmenu_hilite a:hover,
+#results ul li a,
+#results ul li a strong,
+#results ul li a:hover,
+#results ul li a.hover,
+#results ul li a:hover strong,
+#results ul li a.hover strong,
+ul.menu a,
+input#s
+{
+ color: var(--fc-fg-main);
+}
+
+.vbmenu_popup
+{
+ background: var(--fc-panel-bg);
+ border-color: var(--fc-border);
+}
+
+.vbmenu_option,
+.vbmenu_hilite,
+#results ul li a,
+ul.menu ul li a
+{
+ background: var(--fc-surface);
+}
+
+#results ul li a:hover,
+#results ul li a.hover,
+ul.menu ul li a:hover
+{
+ background: var(--fc-nav-hover-bg);
+ color: var(--fc-fg-main);
+}
+
+input#s
+{
+ background: var(--fc-input-bg);
+ border: 1px solid var(--fc-input-border);
+}
diff --git a/src/main/resources/webapp/forumdisplay.html b/src/main/resources/webapp/forumdisplay.html
index 3410725..b7dd6f3 100644
--- a/src/main/resources/webapp/forumdisplay.html
+++ b/src/main/resources/webapp/forumdisplay.html
@@ -14,14 +14,6 @@
{{COMMON_HEADER}}
-
- |