Club System
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
data-logged-in="{{ $xf.visitor.user_id ? 'true' : 'false' }}"
|
||||
data-cookie-prefix="{$xf.cookie.prefix}"
|
||||
data-csrf="{{ csrf_token()|escape('js') }}"
|
||||
class="has-no-js {{ $template ? 'template-' . $template : '' }}"
|
||||
class="has-no-js {{ $template ? 'template-' . $template : '' }} {{ $xf.visitor.style_variation === 'alternate' ? '$light-mode' : '' }}"
|
||||
{{ $xf.runJobs ? ' data-run-jobs=""' : '' }}>
|
||||
<head>
|
||||
<xf:set var="$siteName" value="{$xf.options.boardTitle}" />
|
||||
@@ -82,7 +82,7 @@
|
||||
</head>
|
||||
<body data-template="{$template}">
|
||||
|
||||
<div id="app">
|
||||
<main id="app">
|
||||
<nav id="menu">
|
||||
<div class="$menu-header">
|
||||
<div class="$menu-logo">
|
||||
@@ -310,7 +310,15 @@
|
||||
arg-variant="bottom" />
|
||||
<xf:ad position="container_breadcrumb_bottom_below" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="u-bottomFixer js-bottomFixTarget">
|
||||
<xf:if is="$notices.floating">
|
||||
<xf:macro id="notice_macros::notice_list" arg-type="floating" arg-notices="{$notices.floating}" />
|
||||
</xf:if>
|
||||
<xf:if is="$notices.bottom_fixer">
|
||||
<xf:macro id="notice_macros::notice_list" arg-type="bottom_fixer" arg-notices="{$notices.bottom_fixer}" />
|
||||
</xf:if>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<xf:comment>
|
||||
<footer class="p-footer" id="footer">
|
||||
@@ -417,16 +425,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
</xf:comment>
|
||||
</div> <!-- closing p-pageWrapper -->
|
||||
|
||||
<div class="u-bottomFixer js-bottomFixTarget">
|
||||
<xf:if is="$notices.floating">
|
||||
<xf:macro id="notice_macros::notice_list" arg-type="floating" arg-notices="{$notices.floating}" />
|
||||
</xf:if>
|
||||
<xf:if is="$notices.bottom_fixer">
|
||||
<xf:macro id="notice_macros::notice_list" arg-type="bottom_fixer" arg-notices="{$notices.bottom_fixer}" />
|
||||
</xf:if>
|
||||
</div>
|
||||
</main> <!-- closing p-pageWrapper -->
|
||||
|
||||
<div class="u-navButtons js-navButtons">
|
||||
<xf:button href="javascript:" class="button--scroll"><xf:fa icon="{{ $xf.isRtl ? 'fa-arrow-right' : 'fa-arrow-left' }}" /><span class="u-srOnly">{{ phrase('back') }}</span></xf:button>
|
||||
|
||||
@@ -71,6 +71,32 @@ ul {
|
||||
--menu-user-avatar-bg: #555;
|
||||
}
|
||||
|
||||
.\$light-mode {
|
||||
|
||||
/* RHPZ color */
|
||||
--rhpz-orange: #ff7300;
|
||||
--rhpz-orange-hover: #e56700;
|
||||
|
||||
/* Background colors */
|
||||
--bg: #f0f0f0;
|
||||
--bg2: #ffffff;
|
||||
--bg3: #e8e8e8;
|
||||
--bg4: #dcdcdc;
|
||||
|
||||
/* Text */
|
||||
--text: #454545;
|
||||
--text2: #737373;
|
||||
--text3: #111111;
|
||||
|
||||
/* Elements */
|
||||
--border: #d0d0d0;
|
||||
--error: #e57373;
|
||||
--info: #1976d2;
|
||||
--success: #81c784;
|
||||
--success2: #388e3c;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* File: resources/css/components/cards.css */
|
||||
/* STAT CARDS */
|
||||
@@ -1695,6 +1721,165 @@ ul {
|
||||
}
|
||||
|
||||
|
||||
/* File: resources/css/components/settings.css */
|
||||
.\$settings-dropdown {
|
||||
position: absolute;
|
||||
top: calc(100% + 8px);
|
||||
right: 0;
|
||||
width: 240px;
|
||||
background-color: var(--bg2);
|
||||
border: 1px solid var(--border);
|
||||
box-shadow: 0 8px 24px rgba(0,0,0,0.5);
|
||||
z-index: 2000;
|
||||
}
|
||||
|
||||
.\$settings-header {
|
||||
padding: 12px 16px;
|
||||
border-bottom: 1px solid var(--border);
|
||||
background-color: var(--bg3);
|
||||
font-weight: 600;
|
||||
font-size: 0.9rem;
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
.\$settings-section {
|
||||
padding: 12px 16px;
|
||||
}
|
||||
|
||||
.\$settings-section-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 7px;
|
||||
font-size: 0.78rem;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.7px;
|
||||
color: var(--text2);
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.\$settings-separator {
|
||||
border-top: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.\$settings-themes {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.\$settings-theme-btn {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
border-radius: 50%;
|
||||
border: 2px solid transparent;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: var(--text);
|
||||
transition: transform 0.15s, border-color 0.15s;
|
||||
padding: 0;
|
||||
|
||||
&:hover {
|
||||
transform: scale(1.15);
|
||||
}
|
||||
|
||||
.\$active {
|
||||
border-color: var(--text);
|
||||
transform: scale(1.1);
|
||||
}
|
||||
}
|
||||
|
||||
.\$settings-theme-toggle {
|
||||
width: 100%;
|
||||
background-color: var(--bg3);
|
||||
border: 1px solid var(--border);
|
||||
color: var(--text);
|
||||
padding: 8px 12px;
|
||||
cursor: pointer;
|
||||
font-family: var(--typography);
|
||||
font-size: 0.88rem;
|
||||
transition: background-color 0.1s;
|
||||
text-align: left;
|
||||
|
||||
&:hover {
|
||||
background-color: var(--bg4);
|
||||
}
|
||||
}
|
||||
|
||||
.\$settings-theme-toggle-inner {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.\$settings-theme-toggle-badge {
|
||||
margin-left: auto;
|
||||
background-color: var(--rhpz-orange);
|
||||
color: #111;
|
||||
font-size: 0.65rem;
|
||||
font-weight: 700;
|
||||
padding: 2px 6px;
|
||||
}
|
||||
|
||||
.\$settings-perpage {
|
||||
display: flex;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.\$settings-perpage-btn {
|
||||
flex: 1;
|
||||
padding: 6px 4px;
|
||||
background-color: var(--bg3);
|
||||
border: 1px solid var(--border);
|
||||
color: var(--text2);
|
||||
font-size: 0.85rem;
|
||||
cursor: pointer;
|
||||
font-family: var(--typography);
|
||||
transition: all 0.1s;
|
||||
|
||||
&:hover {
|
||||
background-color: var(--bg4);
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
.\$active {
|
||||
background-color: var(--rhpz-orange);
|
||||
border-color: var(--rhpz-orange);
|
||||
color: var(--text3);
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
||||
.\$settings-link {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 9px;
|
||||
padding: 8px 10px;
|
||||
color: var(--text);
|
||||
text-decoration: none;
|
||||
font-size: 0.88rem;
|
||||
transition: background-color 0.1s;
|
||||
border: 1px solid transparent;
|
||||
|
||||
&:hover {
|
||||
background-color: var(--bg3);
|
||||
border-color: var(--border);
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
.\$settings-link--danger {
|
||||
color: var(--error);
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(229, 115, 115, 0.08);
|
||||
border-color: rgba(229, 115, 115, 0.3);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* File: resources/css/layout/content.css */
|
||||
#main-wrapper {
|
||||
flex-grow: 1;
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<style>
|
||||
svg { fill: none !important; }
|
||||
.lucide { fill: none !important; }
|
||||
</style>
|
||||
@@ -22,7 +22,7 @@
|
||||
<a href="{{ link('approval-queue') }}" class="$btn">
|
||||
<i data-lucide="message-circle-check" size="18"></i>
|
||||
</a>
|
||||
<a href="{{ link('reports') }}" class="$btn">
|
||||
<a href="{{ link('reports') }}" class="$btn badgeContainer badgeContainer--visible {{ ($xf.session.reportCounts.total && ($xf.session.reportCounts.lastBuilt > $xf.session.reportLastRead) OR $xf.session.reportCounts.assigned) ? ' badgeContainer--highlighted' : '' }}" data-badge="{{ $xf.session.reportCounts.assigned ? $xf.session.reportCounts.assigned|number . ' / ' . $xf.session.reportCounts.total|number : $xf.session.reportCounts.total|number }}">
|
||||
<i data-lucide="triangle-alert" size="18"></i>
|
||||
</a>
|
||||
</xf:if>
|
||||
|
||||
Reference in New Issue
Block a user