Quasar 2 + Vite frontend for the IZRK intranet. The app uses Vue 3, Pinia, Vue Router 4, and a shared dual-theme visual system tuned for the IZRK intranet workflows.
- Login-first flow with protected routes
- JWT login flow backed by the PHP API
- Stateless axios client that always sends
Authorization: Bearer <token> - Slovenian primary UI with English secondary UI via i18n
- Language switching persisted in local storage and in the backend for logged-in users
- Light and dark theme switching with explicit theme tokens for both modes
- Theme preference persisted in local storage and in the backend for logged-in users
- Password reset flow with dedicated screens and reset-mail routing
- Editable
Aktualnobulletin-board homepage with:- rich HTML editing via
q-editor - theme-aware rendering for bulletin content, including readable hyperlinks in both light and dark mode
- persisted revision history
- revision summaries and expandable full diffs
- rich HTML editing via
Obveščanjeworkspace for:- browsing recipient groups with visible member names
- creating, editing, and deleting groups
- composing SMS or HTML e-mail messages
- previewing recipients and copying the recipient list
- notification history with expandable bodies
- one-click "send again" prefilling from history
- sending through the PHP messaging endpoints
Rezervacijeworkspace for:- full-screen month calendar powered by
@quasar/quasar-ui-qcalendar - theme-aware light/dark styling aligned with the rest of the intranet UI
- grouped calendars in the sidebar, including expandable parent groups
- toggling whole groups or individual calendars on and off
- creating and editing calendar groups
- creating calendars and reassigning them between groups
- quick reservation creation with Quasar
q-dateandq-timepickers - group-level, calendar-level, and global subscription feed URLs for external calendar clients
- reservation event chips that show the reserver name directly on the calendar
- full-screen month calendar powered by
- Branded seal-based app icons, favicon set, header logo, and login logo
npm installnpm run devThe axios boot file always targets:
https://web.izrk.zrc-sazu.si
The frontend calls the API through the server base URL, without hardcoding index.php.
npm run lint
npm run build- src/boot/axios.js
- src/boot/i18n.js
- src/stores/auth-store.js
- src/stores/bulletin-store.js
- src/stores/language-store.js
- src/stores/messaging-store.js
- src/stores/reservations-store.js
- src/stores/theme-store.js
- src/layouts/MainLayout.vue
- src/pages/HomePage.vue
- src/pages/LoginPage.vue
- src/pages/ObvescanjePage.vue
- src/pages/RezervacijePage.vue
- src/css/app.scss
- public/izrk.webp