F4ilji
48ab0b384e
fix(ssr): add getElementById and other DOM methods to document polyfill
2026-07-06 18:05:35 +05:00
F4ilji
4c0152ae0f
fix(ssr): polyfill localStorage/sessionStorage, guard BasicListBadge filters prop, remove this. from template
2026-07-06 17:57:28 +05:00
F4ilji
eda69f4e37
fix(ssr): polyfill IntersectionObserver for Node.js SSR runtime
2026-07-06 17:53:46 +05:00
F4ilji
520533ef1f
fix(ssr): null-safe campaign access to prevent TypeError during SSR
2026-07-06 14:11:38 +05:00
F4ilji
65f4220932
fix(vikon): store version in file instead of cache to prevent revert after TTL expiry
2026-07-06 13:28:22 +05:00
F4ilji
b454c1ce97
fix(ssr): add null-check for breadcrumbs.page in Page.vue to prevent TypeError during SSR
2026-07-05 23:51:40 +05:00
F4ilji
e3eda2adbc
fix(vikon): revert to api_domain for authorize URL, use vikon_core redirect_uri
2026-07-05 22:39:21 +05:00
F4ilji
fd7de347d4
fix: null-safe role check, enable SQLite test DB, improve TinyMCE paste handling
2026-07-05 22:34:04 +05:00
F4ilji
bec37c0e22
fix(vikon): use auth_domain for OAuth authorize URL instead of api_domain
2026-07-05 22:31:51 +05:00
F4ilji
a372f725cd
fix(ssr): embed Ziggy routes as fallback for SSR context
...
ZiggyVue needs routes in its config, but page.props.ziggy from the
server may not carry them in the SSR worker. Importing the static
Ziggy config ensures routes are always available.
2026-07-05 21:56:51 +05:00
F4ilji
09771bf8ad
fix(ssr): remove conflicting RouteMixin that caused 'Cannot read properties of undefined (reading index)'
...
RouteMixin received the full Inertia page object instead of page.props,
producing a Ziggy config without routes. ZiggyVue already provides the
route() function with the correct config, so the duplicate mixin is
unnecessary.
2026-07-05 21:47:03 +05:00
F4ilji
a80a60bdbe
feat(vikon): redesign UI with update all button, specialized icons, and manual ZIP upload
2026-07-05 18:00:49 +05:00
F4ilji
a18765aafa
feat(vikon): merge update buttons into single flow with all parts selected by default
2026-07-05 13:10:49 +05:00
F4ilji
af86841ebc
feat(vikon): improve part update UI with per-part status indicators and Russian messages
2026-07-05 12:53:44 +05:00
F4ilji
08c04c5615
feat(vikon): show disabled modules with warning instead of hiding them
2026-07-05 12:34:44 +05:00
F4ilji
8cf195efb0
refactor(vikon): fetch parts from VIKON API instead of hardcoded config
2026-07-05 11:32:54 +05:00
F4ilji
9a9521c570
fix(vikon): initialize selectedParts arrays to prevent crash on checkbox click
2026-07-05 11:11:24 +05:00
F4ilji
d83364432e
feat(vikon): replace part select with checkboxes for multi-selection
2026-07-05 09:55:45 +05:00
F4ilji
1d423adc12
feat(vikon): add part selection UI to Vue dashboard
2026-07-05 02:52:50 +05:00
F4ilji
a4fef0bb3d
feat(dashboard): add DashboardError.vue with full error context display
2026-07-05 01:18:04 +05:00
F4ilji
204e31c06d
fix(vikon): show detailed error message with HTTP status code
2026-07-04 21:33:20 +05:00
F4ilji
87732720ef
feat(vikon): merge core update + FM sync into single Update button
2026-07-04 21:25:29 +05:00
F4ilji
8e5f26da8d
feat(vikon): add file sync from VIKON file manager (FM)
2026-07-04 20:41:49 +05:00
F4ilji
b94e0aad87
fix(vikon): replace router.reload with alert after update success
2026-07-04 19:37:49 +05:00
F4ilji
7b9cf25631
fix(vikon): skip authenticate call on OAuth callback, tokens already saved server-side
2026-07-04 18:22:51 +05:00
F4ilji
2ccfb24d1d
fix(vikon): use vikon_core redirect_uri for OAuth (registered on VIKON server)
...
- vikon_core/update/index.php now redirects OAuth callback to /dashboard/vikon-updates
- Vue frontend sends redirect_uri=https://www.ntspi.ru/vikon_core/update/index.php
- This URL is registered on db-nica.ru for client_id=542
2026-07-04 13:43:42 +05:00
F4ilji
94e17dfbbc
fix(vikon): use api_domain for OAuth authorize URL (not auth_domain)
...
Original vikon_core used db-nica.ru for /oauth2/authorize, not auth.db-nica.ru.
This was causing 'Client authentication failed' error.
2026-07-04 13:33:39 +05:00
F4ilji
f4f8bc8e77
feat(vikon): rewrite VikonIntegration from scratch — OAuth + core update
...
- HttpTask: Laravel Http facade with SSL enabled, retry, timeout
- ValidateTokenTask: token check via auth.db-nica.ru
- RefreshTokenTask: token refresh via db-nica.ru
- FilesystemTask: path traversal protection, blocked extensions (PHP/ASP/etc)
- AuthenticateAction: OAuth2 code→token exchange
- CheckAccessAction: token validation + filesystem writability check
- CheckVersionAction: version comparison against remote API
- UpdateCoreAction: ZIP download, Zip Slip protection, atomic sync with rollback
- VikonController: thin controller, 7 endpoints with Session-based token storage
- Routes: access-check, dashboard.auth, throttle:30,1 middleware
- Vue 3 Composition API frontend with progress bar
- Config: all secrets in .env via config/vikon.php
- vikon_core kept as fallback (not deleted)
2026-07-04 12:53:28 +05:00
F4ilji
47aac647ac
feat(vikon): remove broken VikonIntegration container - starting fresh
2026-07-04 12:40:41 +05:00
F4ilji
709c51ea49
remove: all deploy UI/backend code, keep _deploy folder only
...
- Delete DeployRunCommand, DeployController, deploy API routes
- Delete Dashboard/Deploy Vue pages and components
- Remove deploy route from web.php
- Remove deploy quick action from config
- Remove DeployRunCommand from ConsoleKernel
2026-07-02 17:36:42 +05:00
F4ilji
e0cb9642cd
fix: add better error logging for deploy API
2026-07-02 16:55:43 +05:00
F4ilji
2b5b4ee48f
error alert change
2026-07-02 16:49:55 +05:00
F4ilji
aa6c5bc6be
error alert change
2026-07-02 13:25:11 +05:00
F4ilji
92bb10faba
fix: add CSRF token and cookies to deploy API requests
2026-07-02 13:17:24 +05:00
F4ilji
6fb0079e7c
feat: add deploy route and sidebar navigation
2026-07-02 12:50:09 +05:00
F4ilji
13d7d36088
feat: add deploy dashboard page with components
2026-07-02 12:48:49 +05:00
F4ilji
8bc5c367d6
revert: remove deploy UI, controller, actions, tasks, and routes
...
- Remove Deploy/Index.vue, DeployController, DeploySiteAction, DeployTask
- Remove deploy routes from web.php
- Remove deploy menu item from menuConfig
- Remove deploy button and methods from Main.vue
- Remove deploy logging channel from logging.php
- Keep _deploy/ folder for future CI/CD setup
2026-07-02 12:00:48 +05:00
F4ilji
3da95da099
fix: use X-CSRF-TOKEN header to match Main.vue pattern
...
X-XSRF-TOKEN is for Laravel's cookie-based CSRF verification,
but this app uses meta tag CSRF. Main.vue uses X-CSRF-TOKEN
and works correctly.
2026-07-02 01:36:05 +05:00
F4ilji
de4fdc2c72
fix: add credentials same-origin to Deploy fetch calls
...
Without this, session cookie is not sent with fetch() requests,
causing server to redirect to login (returning HTML instead of JSON).
2026-07-02 01:29:05 +05:00
F4ilji
b42a733f53
error alert change
2026-07-02 01:24:58 +05:00
F4ilji
8364b220cc
feat: add Integration Credentials CRUD and Deploy UI
...
Integration Credentials:
- Add IntegrationCredential model with encrypted payload
- Add full CRUD: ManageIntegrationCredentialsAction, 4 Tasks, Controller, Requests
- Add migration for integration_credentials table
- Add Vue pages: Index, Create, Edit
- AI tasks now read API keys from DB instead of .env
- Add sidebar menu item
Deploy UI:
- Add DeployTask with full deploy lifecycle management
- Extend DeployController with index, log, history endpoints
- Add Deploy/Index.vue with live polling and deploy log viewer
- Add sidebar menu item and QuickAction for Sveden
UI:
- Add 'key' icon to SidebarNavItem
- Change deploy button color to amber in Main.vue
2026-07-02 01:03:13 +05:00
F4ilji
938578d217
fix: handle non-JSON server responses in Sveden upload
2026-07-01 13:58:46 +05:00
F4ilji
d83ecc3747
debug: show actual error message in Sveden upload
2026-07-01 13:33:49 +05:00
F4ilji
80b88405f1
fix: resolve Sveden upload permissions and CSRF cookie issue
...
- Add hostgroup (GID 1000) to Dockerfile so www-data inside container can write to sveden/
- Add credentials: 'same-origin' to fetch calls in Sveden.vue and QuickUpload.vue to send session cookies
2026-07-01 13:10:59 +05:00
F4ilji
c9fca0bf29
feat: add Sveden update feature
...
- SvedenController: upload zip and extract to public/sveden
- UpdateSvedenAction: orchestrates temp file handling and extraction
- ExtractSvedenArchiveTask: validates and extracts sveden/abitur folders with security checks
- Sveden.vue: upload UI with progress indicator
- Added routes: GET/POST /dashboard/sveden
- Added quick action: Обновить Sveden
2026-06-30 16:12:16 +05:00
F4ilji
20f615365b
changes
2026-04-17 12:38:39 +05:00
F4ilji
3669a0d982
changes
2026-04-14 23:10:00 +05:00
F4ilji
2e77978d5c
changes
2026-04-13 14:37:57 +05:00
F4ilji
5eb5a7bc06
changes
2026-04-10 10:51:42 +05:00
F4ilji
9e35cf848d
changes
2026-04-10 09:01:47 +05:00