Files
UNITRONIX 6442b59902 feat(ci): add frontend JavaScript syntax check to CI workflow
- Introduced a new step in the CI workflow to check browser JavaScript syntax using the `npm run check:frontend` command.
- Updated package version to 3.5.14 and bumped dependencies: nodemailer to 9.0.4 and ws to 8.21.2.
- Enhanced logging configuration to use NODE_ENV for determining log level.
- Improved accessibility styles for UX 3.5 and added focus outlines for help panel elements.
2026-08-05 23:12:34 +02:00

59 lines
2.8 KiB
HTML

<!-- Mobile bottom navigation (phone + tablet portrait) -->
<nav class="mobile-bottom-nav" id="mobile-bottom-nav" aria-label="<%= _('mobile_nav.label') || 'Main navigation' %>">
<a href="/"
class="mobile-bottom-nav-item <%= currentPage === 'dashboard' ? 'active' : '' %>"
data-nav="home"
<%= currentPage === 'dashboard' ? 'aria-current="page"' : '' %>>
<span class="material-icons" aria-hidden="true">home</span>
<span><%= _('mobile_nav.home') %></span>
</a>
<% if (hasPermission('device.view')) { %>
<a href="/devices"
class="mobile-bottom-nav-item <%= currentPage === 'devices' ? 'active' : '' %>"
data-nav="devices"
<%= currentPage === 'devices' ? 'aria-current="page"' : '' %>>
<span class="material-icons" aria-hidden="true">devices</span>
<span><%= _('mobile_nav.devices') %></span>
</a>
<% } %>
<a href="/remote-dashboard"
class="mobile-bottom-nav-item <%= ['remote', 'remote-dashboard'].includes(currentPage) ? 'active' : '' %>"
data-nav="remote"
<%= ['remote', 'remote-dashboard'].includes(currentPage) ? 'aria-current="page"' : '' %>>
<span class="material-icons" aria-hidden="true">desktop_windows</span>
<span><%= _('mobile_nav.remote') %></span>
</a>
<a href="/chat"
class="mobile-bottom-nav-item <%= currentPage === 'chat' ? 'active' : '' %>"
data-nav="chat"
<%= currentPage === 'chat' ? 'aria-current="page"' : '' %>>
<span class="material-icons" aria-hidden="true">chat</span>
<span><%= _('mobile_nav.chat') %></span>
</a>
<button type="button"
class="mobile-bottom-nav-item"
id="mobile-more-btn"
data-nav="more"
aria-expanded="false"
aria-controls="mobile-more-drawer">
<span class="material-icons" aria-hidden="true">menu</span>
<span><%= _('mobile_nav.more') %></span>
</button>
</nav>
<!-- Full-screen More drawer -->
<div class="mobile-more-drawer" id="mobile-more-drawer" aria-hidden="true">
<div class="mobile-more-drawer-backdrop" id="mobile-more-drawer-backdrop"></div>
<div class="mobile-more-drawer-panel" role="dialog" aria-modal="true" aria-labelledby="mobile-more-drawer-title">
<div class="mobile-more-drawer-header">
<span class="mobile-more-drawer-title" id="mobile-more-drawer-title"><%= _('mobile_nav.more') %></span>
<button type="button" class="mobile-more-drawer-close" id="mobile-more-drawer-close" aria-label="<%= _('actions.close') || 'Close' %>">
<span class="material-icons">close</span>
</button>
</div>
<div class="mobile-more-drawer-body" id="mobile-more-drawer-body">
<!-- Populated by mobile-nav.js from sidebar flyout panels -->
</div>
</div>
</div>