ruslan
|
5c06440e4d
|
Add Yandex Webmaster verification file
|
2026-05-15 13:02:42 +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
|
4b2618191d
|
Add Telegram config vars to config.py
|
2026-05-14 08:19:56 +00:00 |
|
ruslan
|
a4b69b0018
|
Fix real IP: trust upstream forwardedHeaders in Traefik, use X-Forwarded-For[0]
|
2026-05-14 07:41:51 +00:00 |
|
ruslan
|
73c7d006c7
|
Fix _get_real_ip: use X-Real-IP from NPM instead of X-Forwarded-For
|
2026-05-14 07:33:49 +00:00 |
|
ruslan
|
1aa9db8e2a
|
Add real IP + geo location to Telegram notifications
|
2026-05-14 07:27:23 +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
|
beb2781123
|
Fix request-access: add Telegram env to compose, fix log_event calls
|
2026-05-14 06:28:58 +00:00 |
|
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 |
|