Files
BetterDesk/web-nodejs/views/languages.ejs
UNITRONIX 235c9c0706 security: implement Phase 0-3 remediation (deps, SQL ident, JWT, CSP, suite)
Bump axios/multer and npm overrides; add safeSqlIdent and multer cleanup;
harden JWT aud/iss/nbf; CSP without unsafe-eval via static protobuf build
and data-bd-call delegation; ship Security Test Suite v1.2.0 and docs.
Ignore generated RdClient protobuf artifacts (~40k lines) — rebuild locally
with npm run protocols:rdclient.

Thanks: INSOLVE (Honorary); Marco Jakobs (@jacotec); MyNameisStitch (@MyNameisStitch); Redspin (@playerumpknow); muopc (@muopc)
2026-10-17 15:33:48 +02:00

37 lines
1.6 KiB
HTML

<%- include('layouts/main', {
title: typeof title !== 'undefined' ? title : 'Languages',
pageStyles: typeof pageStyles !== 'undefined' ? pageStyles : ['languages'],
pageScripts: typeof pageScripts !== 'undefined' ? pageScripts : ['languages'],
currentPage: typeof currentPage !== 'undefined' ? currentPage : 'languages',
breadcrumb: typeof breadcrumb !== 'undefined' ? breadcrumb : [{ label: 'Languages' }],
body: `
<div class="page-content" style="max-width: 1400px; margin: 0 auto;">
<div class="lang-header">
<h2>${_('languages.title')}</h2>
</div>
<div class="lang-stats-row" id="lang-stats"></div>
<div class="lang-grid" id="lang-grid">
<div style="grid-column:1/-1; text-align:center; padding:40px; color:var(--text-secondary);">
<span class="material-icons-round" style="font-size:32px; opacity:0.4;">hourglass_empty</span>
<p>${_('common.loading')}</p>
</div>
</div>
<!-- Detail overlay -->
<div class="lang-detail-overlay" id="lang-detail-overlay" data-bd-call="Languages.closeDetail" data-bd-self-only="1">
<div class="lang-detail-panel">
<div class="lang-detail-header">
<span></span>
<button class="lang-detail-close" data-bd-call="Languages.closeDetail">
<span class="material-icons-round">close</span>
</button>
</div>
<div id="lang-detail-content"></div>
</div>
</div>
</div>
`
}) %>