mirror of
https://github.com/UNITRONIX/BetterDesk.git
synced 2026-09-10 17:45:42 +00:00
d39110b2ae
Add unit tests and test helpers (5 suites, 41 tests) and test npm scripts; introduce deviceStatusPush service and WS real-time device status push integration. Fix chatRelay to acknowledge connections (send `welcome`), and apply multiple web remote/rdclient fixes (video ack/timing, keyframe refresh, SourceBuffer trimming, input focus handling) to improve FPS and control. Add new server route file (system.routes.js), new device-status service, update server.js and package.json, and modify various frontend CSS/JS/views. Update English and Polish locale files with many new widget/i18n keys and remove the Russian locale file (ru.json). Also include assorted UI/desktop-widget dashboard tweaks and documentation status updates in .github/copilot-instructions.md.
62 lines
2.9 KiB
HTML
62 lines
2.9 KiB
HTML
<%- include('layouts/main', {
|
|
title: _('nav.organizations') || 'Organizations',
|
|
pageStyles: ['organizations'],
|
|
pageScripts: ['organizations'],
|
|
currentPage: 'organizations',
|
|
breadcrumb: [{ label: _('nav.organizations') || 'Organizations' }],
|
|
body: `
|
|
<div class="org-page">
|
|
<!-- Header -->
|
|
<div class="org-header">
|
|
<div class="org-title">
|
|
<h1>${_('organizations.title') || 'Organizations'}</h1>
|
|
<span class="org-count" id="org-count">0</span>
|
|
</div>
|
|
<div class="org-actions">
|
|
<button class="btn btn-primary btn-sm" id="create-org-btn">
|
|
<span class="material-icons">add</span>
|
|
<span class="btn-label">${_('organizations.create') || 'Create Organization'}</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Organization list -->
|
|
<div class="org-list" id="org-list">
|
|
<div class="loading-spinner" id="org-loading">
|
|
<div class="spinner"></div>
|
|
<p>${_('common.loading') || 'Loading...'}</p>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Create/Edit modal -->
|
|
<div class="modal-overlay" id="org-modal" style="display:none;">
|
|
<div class="modal">
|
|
<div class="modal-header">
|
|
<h3 id="org-modal-title">${_('organizations.create') || 'Create Organization'}</h3>
|
|
<button class="modal-close" id="org-modal-close">×</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<input type="hidden" id="org-edit-id" />
|
|
<div class="form-group">
|
|
<label>${_('organizations.name') || 'Name'}</label>
|
|
<input type="text" id="org-name" class="form-input" placeholder="ACME Corp" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label>${_('organizations.slug') || 'Slug (URL-safe)'}</label>
|
|
<input type="text" id="org-slug" class="form-input" placeholder="acme-corp" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label>${_('organizations.logo_url') || 'Logo URL'}</label>
|
|
<input type="text" id="org-logo-url" class="form-input" placeholder="https://..." />
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button class="btn btn-secondary" id="org-modal-cancel">${_('common.cancel') || 'Cancel'}</button>
|
|
<button class="btn btn-primary" id="org-modal-save">${_('common.save') || 'Save'}</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
`
|
|
}) %>
|