ruslan
e88e33e7e8
Add privacy policy page and consent checkbox to both modals (152-FZ compliance)
2026-05-28 09:44:17 +00:00
ruslan
8ab7df12a1
Replace logo.png with new version, rename МОНТ→MONT everywhere
2026-05-27 17:39:16 +00:00
ruslan
dd7288beaf
Add SVG favicon 120x120 with MONT branding, add SVG link to all templates
2026-05-18 07:19:50 +00:00
ruslan
3d531238d7
SEO: meta tags, OG, JSON-LD, robots.txt, sitemap, keywords in content
2026-05-15 12:50:55 +00:00
ruslan
4b5b9906a8
Remove access modal subtitle
2026-05-14 07:00:42 +00:00
ruslan
d65b7a0d35
Fix submit forms: use getElementById instead of stale closures, fix texts
2026-05-14 06:52:20 +00:00
ruslan
a60279ae3e
Fix JS syntax errors in modal success buttons (broken single quotes)
2026-05-14 06:45:16 +00:00
ruslan
b36b3f6325
Add contact modal, success messages, form reset on open
2026-05-14 06:42:09 +00:00
ruslan
ba8f3cf753
Validate all modal fields at once with per-field highlighting
2026-05-14 06:34:29 +00:00
ruslan
eb05bcac53
Add email and phone validation to request-access modal
2026-05-14 06:29:37 +00:00
ruslan
a0b1754ddb
Rename modal title to Запрос на доступ
2026-05-14 06:25:04 +00:00
ruslan
f740420a77
Add request access modal on login page with Telegram notification
...
- Modal form: name, company, email, phone (required), manager (optional), product checkboxes
- Products loaded from DB via GET /api/public/services-by-category (public route)
- POST /api/request-access sends styled Telegram message with divider and emojis
- Dark-themed modal matching login page design
- CSS: overlay, card, fields, checkbox list, error, footer buttons
2026-05-14 06:22:39 +00:00
ruslan
6aa40eb5c2
feat: add first_name/last_name to users, avatar in header, neutral dashboard bg
2026-05-12 12:51:47 +00:00
ruslan
dedf4aea77
dashboard: replace informal welcome text with product name
2026-05-12 12:44:44 +00:00
ruslan
fff7ecdce2
login: left panel 1/4, distrib button, text tweaks, dashboard light theme polish
2026-05-12 12:42:12 +00:00
ruslan
666093f1c6
login: logo only in top-left corner, left panel 1/3 right panel 2/3
2026-05-11 08:54:25 +00:00
ruslan
020793a3e2
redesign: stylish two-column login page (dark navy split layout)
2026-05-11 08:50:02 +00:00
ruslan
55da535f44
feat: project description block on login page
2026-05-11 08:43:50 +00:00
ruslan
116ffba42d
feat: add Yandex Metrika counter (id=109119977) to all pages
2026-05-08 13:03:46 +00:00
ruslan
b9f1e375d3
feat: request access button on login page (mailto rgalyaviev)
2026-05-08 12:59:15 +00:00
ruslan
983065ac9f
fix: use favicon.png instead of svg
2026-05-07 07:23:56 +00:00
ruslan
7e94ddaf8d
fix: rdp target field readonly, host/port/domain/sec oninput rebuilds target
2026-05-06 11:43:26 +00:00
ruslan
a137729704
design: username left in header, white elegant font
2026-05-04 13:35:32 +00:00
ruslan
16c06ac166
design: move logo below header strip, scrolls with page
2026-05-04 13:32:43 +00:00
ruslan
045b21c514
design: dark minimal header
2026-05-04 13:06:29 +00:00
ruslan
3f20fe5991
Fix: category delete button broken by double-quote conflict in onclick attr
2026-04-28 21:07:14 +00:00
ruslan
beb6828520
Add credentials panel on view page; remove copy buttons from dashboard cards
2026-04-28 13:47:46 +00:00
ruslan
1ab5af28b5
fix: link overlay pattern — credentials never trigger navigation
2026-04-28 13:17:32 +00:00
ruslan
7a7c6e30e3
fix: tile-info-area shares space between credentials+comment, scroll restored
2026-04-28 12:48:59 +00:00
ruslan
a64d49a8c1
feat: reorder card layout + svc_cred_hint field for credentials note
2026-04-28 12:20:37 +00:00
ruslan
b06620a793
fix: move credentials and comment inside card, right below icon
2026-04-28 12:16:02 +00:00
ruslan
b9d13733c9
feat: service credentials (login/password) on dashboard cards with copy button
2026-04-28 12:10:40 +00:00
ruslan
6847cbc078
feat: RDP slot pool — multi-user RDP with per-account containers
...
- New RdpSlot model (rdp_slots table): service_id, rdp_username,
rdp_password, container_name
- Each slot gets a dedicated portal-rdpslot-<slug>-<id> container with
Traefik route /rdp/<slot_id>/ and restart_policy=unless-stopped
- go_service: RDP services with slots use pool allocation — finds first
free slot (not occupied by active session), returns 503 if all busy
- session_status + session_view: handle RDPSLOT: container_id prefix
- terminate_session_record: restarts slot container in background on close
- session_redirect_url: RDPSLOT sessions redirect to /s/<id>/view
- startup_event: starts containers for all configured slots on boot
- Admin: POST /api/admin/services/{id}/rdp-slots, DELETE /api/admin/rdp-slots/{id}
- admin.html: slot management UI (list, add, delete); removed ACL exclusivity
- set_acl: removed RDP 1-user exclusivity — RDP services now assignable to many
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-28 06:32:02 +00:00
ruslan
67d361c5c9
feat: login page polish — remove welcome text, add spacer, resize corner brand
...
- login.html: removed 'Добро пожаловать' heading, added 3.5rem spacer below logo
- style.css: .login-corner-brand font-size set to 1.5rem
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-27 19:31:24 +00:00
ruslan
56cf2d6830
feat: responsive mobile wall with logo and footer
...
- #mobile-wall uses width:100vw/height:100vh/overflow:hidden to prevent
text overflow on narrow screens
- All font sizes via clamp(), word-break:break-word on text elements
- MONT logo pinned to top (position:absolute), height clamp(4rem,16vw,6rem)
- Made by Galyaviev footer pinned to bottom
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-27 19:20:35 +00:00
ruslan
6f17193312
feat: loading overlay on dashboard, RDP pooled session routing fix
...
- dashboard.html: overlay div moved before <script> so getElementById works;
double rAF ensures browser paints spinner before navigation
- main.py: pooled_rdp route fix — session_status now returns /svc/<slug>/
route and redirect_url for POOL: RDP sessions (was always ready instantly)
- docker-compose.yml: parametrise env vars via .env for easier tuning
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-27 19:07:55 +00:00
ruslan
419b495020
feat: RDP ACL exclusivity, mobile wall, nav buttons, resolution xrandr
...
- RDP сервис может быть назначен только одному пользователю в ACL
- Мобильная заглушка на dashboard при ширине < 1024px
- rdp-proxy: кнопки навигации, спиннер Ожидайте, реконнект
- session_wait_page: тёмная тема, CSS спиннер
- kiosk/universal-runtime manager.py: xrandr + cvt --newmode для resolution
- Dockerfiles: x11-xserver-utils, x11-utils
2026-04-27 18:49:06 +00:00
ruslan
6871ea6b67
fix: improve web runtime resolution and restore x11vnc ncache
2026-04-25 17:28:04 +00:00
ruslan
8863943d79
feat: propagate client screen size to web runtime
2026-04-24 18:26:11 +00:00
ruslan
7000c17d2b
chore: commit all pending changes and ignore project context
2026-04-24 12:41:37 +00:00
ruslan
6f9bc32440
UI/runtime polish, session rotation limit, login errors, docs update
2026-04-21 16:05:15 +00:00
ruslan
c97cf5308d
Tune idle timeout, heartbeat redirect, and update project context
2026-04-21 13:31:47 +00:00
ruslan
9c9b97374c
Disable UI effects and refresh PROJECT_CONTEXT
2026-04-21 12:39:26 +00:00
ruslan
52d1991092
feat: categories, runtime nav, and UX updates
2026-04-21 11:43:43 +00:00
ruslan
605b269f74
feat: switch WEB to shared hot pool with autoscale
2026-04-14 13:37:45 +00:00
ruslan
fc46d90194
feat: redesign portal UX and stabilize web session runtime
2026-04-13 08:35:07 +00:00