77 lines
2.7 KiB
Twig
77 lines
2.7 KiB
Twig
|
|
{#
|
||
|
|
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">
|
||
|
|
{% endblock %}
|
||
|
|
|
||
|
|
{% block body %}
|
||
|
|
<body class="ots-theme">
|
||
|
|
<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">
|
||
|
|
<span class="icon">☰</span>
|
||
|
|
</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">
|
||
|
|
<input type="text" name="q" placeholder="Search…" aria-label="Search" class="search-input" />
|
||
|
|
</form>
|
||
|
|
<div class="topbar-actions">
|
||
|
|
<a href="{{ baseUrl }}/notification" class="topbar-btn" aria-label="Notifications" title="Notifications">
|
||
|
|
<span class="icon">🔔</span>
|
||
|
|
</a>
|
||
|
|
<div class="dropdown user-menu">
|
||
|
|
<button class="topbar-btn user-btn" aria-label="User menu" aria-expanded="false">
|
||
|
|
<span class="avatar">{{ user.username|first|upper }}</span>
|
||
|
|
</button>
|
||
|
|
<ul class="dropdown-menu" role="menu">
|
||
|
|
<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">© {{ currentDate|date('Y') }} {{ app_name }}. Powered by <a href="https://xibosignage.com">Xibo</a>.</p>
|
||
|
|
</footer>
|
||
|
|
{% endblock %}
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
{% block scripts %}
|
||
|
|
{{ parent() }}
|
||
|
|
<script src="{{ baseUrl }}/theme/custom/otssignange/js/theme.js"></script>
|
||
|
|
{% endblock %}
|
||
|
|
</body>
|
||
|
|
{% endblock %}
|