# Views and Routing

Το Chamilo διαθέτει ένα μεγάλο σύνολο Vue views (συστατικών επιπέδου σελίδας) συνδεδεμένων μέσω Vue Router. Τα πραγματικά αρχεία βρίσκονται στο `assets/vue/views/`.

## Αρχιτεκτονική Router

Το router ορίζεται στο `assets/vue/router/index.js` χρησιμοποιώντας το `createWebHistory` για καθαρές URLs.

Οι διαδρομές είναι modular — οργανωμένες σε αρχεία διαδρομών ανά χαρακτηριστικό που εισάγονται στο κύριο router:

| Route module        | Σελίδες                                              |
| ------------------- | ---------------------------------------------------- |
| `admin`             | Σελίδες πίνακα διαχείρισης                           |
| `sessionAdmin`      | Σελίδες διαχείρισης συνεδρίας                        |
| `course`            | Λίστα μαθημάτων, δημιουργία, αρχική, κατάλογος       |
| `account`           | Προφίλ χρήστη και ρυθμίσεις                          |
| `personalfile`      | Χώρος προσωπικού αρχείου                             |
| `message`           | Μηνύματα / εισερχόμενα                               |
| `user`              | Σελίδες διαχείρισης χρηστών                          |
| `usergroup`         | Σελίδες ομάδας χρηστών (τάξη)                        |
| `userreluser`       | Σελίδες σχέσεων χρηστών (φίλοι/παρακολούθηση)        |
| `ccalendarevent`    | Ημερολόγιο και ατζέντα μαθήματος                     |
| `ctoolintro`        | Σελίδες εισαγωγής εργαλείων μαθήματος                |
| `page`              | Στατικές CMS σελίδες                                 |
| `pageLayout`        | Περιτυλίξεις διάταξης σελίδας                        |
| `publicPage`        | Δημόσια προσβάσιμες σελίδες                          |
| `social`            | Σελίδες κοινωνικού δικτύου                           |
| `filemanager`       | Διαχειριστής αρχείων (περιηγητής εγγράφων μαθήματος) |
| `skill`             | Σελίδες δεξιοτήτων και ικανοτήτων                    |
| `accessurl`         | Σελίδες διαχείρισης πολλαπλών URL (portal)           |
| `branch`            | Σελίδες υποκαταστήματος / δικτύου campus             |
| `room`              | Σελίδες εικονικού δωματίου                           |
| `buycourses`        | Σελίδες αγοράς μαθημάτων                             |
| `documents`         | Διαχείριση εγγράφων                                  |
| `assignments`       | Ροή εργασιών αναθέσεων                               |
| `links`             | Διαχείριση εξωτερικών συνδέσμων                      |
| `glossary`          | Διαχείριση γλωσσαρίου                                |
| `attendance`        | Παρακολούθηση προσέλευσης                            |
| `lp`                | Player και επεξεργαστής μονοπατιού μάθησης           |
| `dropbox`           | Dropbox / ανταλλαγή αρχείων                          |
| `blog`              | Σελίδες blog                                         |
| `blogAdmin`         | Διαχείριση blog                                      |
| `coursemaintenance` | Αντίγραφο ασφαλείας και αποκατάσταση μαθήματος       |
| `catalogue`         | Κατάλογοι μαθημάτων και συνεδριών                    |

## Κύριες Διαδρομές

| Διαδρομή             | View                                       | Περιγραφή                    |
| -------------------- | ------------------------------------------ | ---------------------------- |
| `/`                  | `AppIndex.vue` (ή προσαρμοσμένο)           | Σημείο εισόδου εφαρμογής     |
| `/home`              | `pages/Home.vue`                           | Αρχική σελίδα πλατφόρμας     |
| `/login`             | `pages/Login.vue`                          | Σελίδα σύνδεσης              |
| `/courses`           | `views/user/courses/List.vue`              | Εγγεγραμμένα μαθήματα χρήστη |
| `/sessions`          | `views/user/sessions/SessionsCurrent.vue`  | Τρέχουσες συνεδρίες          |
| `/sessions/past`     | `views/user/sessions/SessionsPast.vue`     | Προηγούμενες συνεδρίες       |
| `/sessions/upcoming` | `views/user/sessions/SessionsUpcoming.vue` | Επερχόμενες συνεδρίες        |
| `/course/:id/home`   | `views/course/CourseHome.vue`              | Αρχική σελίδα μαθήματος      |
| `/account/home`      | `views/account/Home.vue`                   | Προφίλ χρήστη                |
| `/admin`             | Admin views                                | Πίνακας διαχείρισης          |
| `/faq`               | `pages/Faq.vue`                            | Σελίδα ΣΣΣ                   |

## Φύλακες Διαδρομών

Το router χρησιμοποιεί φύλακες πλοήγησης (δηλωμένους με `beforeEach` και `afterEach`) για να:

* Ελέγχει την κατάσταση πιστοποίησης μέσω `useSecurityStore` και να ανακατευθύνει μη πιστοποιημένους χρήστες στο `/login`
* Επαληθεύει το πλαίσιο μαθήματος μέσω `useCidReqStore`
* Εφαρμόζει CSS κλάσεις τύπου σελίδας κατά την πλοήγηση SPA (αντικαθιστώντας αυτό που θα έκανε το Twig's `PageHelper` σε πλήρη φόρτωση σελίδας)
* Υποστηρίζει προσαρμοσμένες παρακάμψεις προτύπων Vue — το συστατικό εισόδου στο `/` αντικαθίσταται με προσαρμοσμένο `AppIndex.vue` όταν ενεργοποιείται προσαρμοσμένο Vue πρότυπο (`var/vue_templates/pages/AppIndex.vue`)

## Οργάνωση Views

Τα views βρίσκονται στο `assets/vue/views/`, οργανωμένα ανά χαρακτηριστικό:

```
views/
├── account/          # User profile and settings
├── admin/            # Admin pages
├── assignments/      # Assignment submission and grading
├── attendance/       # Attendance sheets
├── blog/             # Blog posts and comments
├── branch/           # Network campus management
├── buycourses/       # Course purchase flow
├── ccalendarevent/   # Course calendar
├── course/           # Course list, home, creation, catalog
├── coursecategory/   # Course category management
├── coursemaintenance/# Course backup/restore
├── ctoolintro/       # Tool introduction pages
├── documents/        # Document list, creation, media generation
├── dropbox/          # Dropbox / file exchange
├── filemanager/      # File browser
├── glossary/         # Glossary list and term management
├── links/            # External links
├── lp/               # Learning path player and editor
├── message/          # Inbox and messaging
├── page/             # CMS static pages
├── pageLayout/       # Page layout wrappers
├── personalfile/     # Personal file space
├── room/             # Virtual rooms
├── sessionadmin/     # Session administration
├── skill/            # Skills and competencies
├── social/           # Social network
├── terms/            # Terms of service
├── user/             # User management and course/session lists
├── usergroup/        # User groups (classes)
└── userreluser/      # User relationships (friends/follows)
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.chamilo.org/2.x-el/odigos-programmatisti/developer-guide/frontend/views-and-routing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
