Files
OTSSignsTheme/custom/otssignange/views/authed.twig

84 lines
3.4 KiB
Twig
Raw Normal View History

2026-02-04 06:23:04 -05:00
{#
OTS Signage Modern Theme - Authenticated Shell Override
Replaces the header and shell structure with a modern topbar + sidebar layout
#}
{% extends "base.twig" %}
{% block head %}
{{ parent() }}
<link rel="stylesheet" href="{{ baseUrl }}/theme/custom/otssignange/css/override.css" />
<link rel="stylesheet" href="{{ baseUrl }}/theme/custom/otssignange/css/client.css" />
{% endblock %}
{% block htmlTag %}
<html lang="en" data-ots-theme="v1" data-mode="dark">
2026-02-04 06:23:04 -05:00
{% endblock %}
{% block body %}
<body class="ots-theme ots-dark-mode">
2026-02-04 06:23:04 -05:00
<div class="ots-shell">
{% include "authed-sidebar.twig" %}
<div class="ots-main">
{% block header %}
<header class="ots-topbar">
<div class="topbar-left">
<button class="btn-ghost topbar-toggle" data-action="toggle-sidebar" aria-label="Toggle sidebar" title="Toggle sidebar">
<svg class="icon" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/>
</svg>
2026-02-04 06:23:04 -05:00
</button>
<div class="topbar-title">
<h1 class="page-title">{{ pageTitle|default('Dashboard') }}</h1>
{% if pageSubtitle is defined %}<p class="page-subtitle">{{ pageSubtitle }}</p>{% endif %}
</div>
</div>
<div class="topbar-right">
<form action="{{ baseUrl }}/search" class="topbar-search" method="get" role="search">
<svg class="search-icon" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/>
</svg>
2026-02-04 06:23:04 -05:00
<input type="text" name="q" placeholder="Search…" aria-label="Search" class="search-input" />
</form>
<div class="topbar-actions">
<button class="topbar-btn" aria-label="Notifications" title="Notifications">
<svg class="icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.73 21a2 2 0 0 1-3.46 0"/>
</svg>
</button>
2026-02-04 06:23:04 -05:00
<div class="dropdown user-menu">
<button class="topbar-btn user-btn" aria-label="User menu" aria-expanded="false">
<span class="avatar avatar-sm">{{ user.username|first|upper }}</span>
2026-02-04 06:23:04 -05:00
</button>
<ul class="dropdown-menu dropdown-right" role="menu">
2026-02-04 06:23:04 -05:00
<li><a href="{{ baseUrl }}/profile" role="menuitem">Profile</a></li>
<li><a href="{{ baseUrl }}/logout" role="menuitem">Sign out</a></li>
</ul>
</div>
</div>
</div>
</header>
{% endblock %}
<main class="ots-content">
{% block content %}
<!-- Content inserted here by page templates -->
{% endblock %}
</main>
{% block footer %}
<footer class="ots-footer">
<p class="text-muted text-xs">&copy; {{ currentDate|date('Y') }} {{ app_name }}. Powered by <a href="https://xibosignage.com">Xibo</a>.</p>
2026-02-04 06:23:04 -05:00
</footer>
{% endblock %}
</div>
</div>
{% block scripts %}
{{ parent() }}
<script src="{{ baseUrl }}/theme/custom/otssignange/js/theme.js"></script>
{% endblock %}
</body>
{% endblock %}