ruslan
a0b1754ddb
Rename modal title to Запрос на доступ
2026-05-14 06:25:04 +00:00
ruslan
ce39573618
Fix login-request-btn width after a→button change
2026-05-14 06:24:11 +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
9530f3e957
fix: autofill dispatches focus/blur/keyup/InputEvent for SPA frameworks
2026-05-13 12:14:44 +00:00
ruslan
3e640fbe15
revert: restore CSS to working state before logo column experiments
2026-05-12 13:29:08 +00:00
ruslan
eda342cf43
fix: logo in own grid column, content never overlaps
2026-05-12 13:27:09 +00:00
ruslan
e8d1515f89
fix: reserve space for fixed page-logo, prevent content overlap
2026-05-12 13:24:05 +00:00
ruslan
4f52ae8566
style: add gap between avatar and username in header
2026-05-12 13:20:47 +00:00
ruslan
30ce37b906
fix: remove first_name/last_name from all models except User
2026-05-12 13:01:29 +00:00
ruslan
4268b19a37
fix: remove first_name/last_name from Service model (was added by mistake)
2026-05-12 12:59:38 +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
d7716fa569
design: stylish request-access button on login page
2026-05-08 13:05:02 +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
e516cc4aeb
feat: Russian locale (ru_RU.UTF-8) in universal-runtime for Chromium UI language
2026-05-08 12:54:16 +00:00
ruslan
52cb1fd3d6
feat: fullscreen button in nav panel for web and rdp services
2026-05-08 12:00:39 +00:00
ruslan
1dc5a0eb34
fix: replace favicon with correct local file
2026-05-07 07:26: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
2edb804660
fix: autofill login first then password, continuous re-fill for SPA re-renders
2026-05-05 11:05:09 +00:00
ruslan
f994674327
merge: refactor/split-main-py into main
2026-05-04 14:46:05 +00:00
ruslan
a44422f43b
feat: draggable nav panel in web runtime (universal-runtime)
2026-05-04 14:46:00 +00:00
ruslan
a137729704
design: username left in header, white elegant font
2026-05-04 13:35:32 +00:00
ruslan
bbe1e27582
design: logo fixed left below header
2026-05-04 13:33:55 +00:00
ruslan
16c06ac166
design: move logo below header strip, scrolls with page
2026-05-04 13:32:43 +00:00
ruslan
0b37d5245c
feat: draggable nav panel with position saved to localStorage
2026-05-04 13:28:10 +00:00
ruslan
535d71709e
fix: dark header background, original logo color
2026-05-04 13:08:24 +00:00
ruslan
045b21c514
design: dark minimal header
2026-05-04 13:06:29 +00:00
ruslan
d8f9f4c87f
fix: anti-idle click+shift every 60s
2026-05-04 12:50:16 +00:00
ruslan
d7c3b35502
fix: anti-idle click at y=80 (2cm from top)
2026-05-04 10:34:08 +00:00
ruslan
4dec5a09ce
fix: anti-idle uses mouse click instead of shift key, interval 60s
2026-05-04 08:41:40 +00:00
ruslan
204bb02011
fix: revert anti-idle interval to 30s (3min caused Red OS to lock)
2026-05-04 08:09:47 +00:00
ruslan
dddeb26946
fix: persist should_be_connected state to disk, restore on manager restart
2026-05-04 07:15:31 +00:00
ruslan
bff5ffac1c
perf: compress logo and favicon (1.7MB -> 7KB / 610B)
2026-05-04 06:32:16 +00:00
ruslan
b838c814ba
fix: change anti-idle interval from 30s to 3min
2026-05-04 06:20:55 +00:00
ruslan
359a0c7636
fix: add shift key press in anti-idle loop for OS that ignore mouse movement
2026-05-03 12:10:59 +00:00
ruslan
3d8ccd30b6
fix: add hash_password to auth imports in main.py
2026-05-01 16:47:48 +00:00
ruslan
dc90569631
fix: call connect_rdp_slot on session reuse
...
Previously connect_rdp_slot was only called when creating a new session.
If the API container restarted, existing sessions had should_be_connected=false
and xfreerdp never started. Now connect is triggered on every /go/<slug> visit
when an RDP session already exists.
2026-05-01 16:11:30 +00:00
ruslan
fc3a4c6efb
fix: increase mouse jiggle to 10px for reliable screensaver prevention
2026-05-01 16:06:13 +00:00
ruslan
ccf7401f71
fix: anti-idle uses mouse jiggle instead of Shift key
...
Mouse movement works universally on any remote OS (Windows, Ubuntu,
RED OS, Astra). Alternates between (960,540) and (961,541) every 30s
inside xfreerdp window via xdotool mousemove --window.
2026-05-01 16:05:04 +00:00
ruslan
34972af7c0
fix: add tini as PID 1 to prevent zombie processes in containers
2026-05-01 14:58:51 +00:00
ruslan
96b7dff7cd
fix: anti-idle uses xdotool --window; remove creds from URL
...
rdp-proxy/manager.py: anti_idle_loop gets window ID first, then sends
key --window ID --clearmodifiers shift (was broken chain syntax).
universal-runtime/manager.py: removed credentials from URL - they break
SPA fetch() calls causing white screen (e.g. CGP).
2026-05-01 14:44:08 +00:00
ruslan
38dc206f5a
fix: add missing user_is_valid import from auth in main.py
2026-05-01 12:56:19 +00:00
ruslan
fb4af8cfe6
fix: add missing import secrets in main.py
2026-05-01 12:55:02 +00:00
ruslan
4ab49cd10f
fix: restore anti-idle in manager.py, fix ENTRYPOINT quoting in Dockerfile
...
- manager.py: anti_idle_loop sends xdotool Shift to xfreerdp window every 30s
while session is active; mousemove fallback if window not found
- Dockerfile: restore xdotool package; fix ENTRYPOINT JSON quoting lost in heredoc
2026-05-01 11:16:53 +00:00