(null);
const enableTilt = ref(window.innerWidth > 700);
watchEffect(() => {
if (enableTilt.value && tilt.value) {
VanillaTilt.init(tilt.value, {
- max: 20,
- speed: 10,
- scale: 1.25,
+ max: 15,
+ speed: 400,
+ scale: 1.05,
glare: false,
reverse: false,
transition: true,
@@ -43,21 +52,21 @@ watchEffect(() => {
}
});
-window.addEventListener('resize', () => {
+const resizeHandler = () => {
enableTilt.value = window.innerWidth > 700;
-});
+};
+
+window.addEventListener('resize', resizeHandler);
onUnmounted(() => {
if (tilt.value?.vanillaTilt) {
tilt.value.vanillaTilt.destroy();
}
- window.removeEventListener('resize', () => {
- enableTilt.value = window.innerWidth > 700;
- });
+ window.removeEventListener('resize', resizeHandler);
});
-
diff --git a/web/optivum-better-schedule-frontend/src/components/RoomButton.vue b/web/optivum-better-schedule-frontend/src/components/RoomButton.vue
new file mode 100644
index 0000000..513cdd5
--- /dev/null
+++ b/web/optivum-better-schedule-frontend/src/components/RoomButton.vue
@@ -0,0 +1,139 @@
+
+
+
+
+ {{ props.text }}
+
+
+
+
+
+
+
+
diff --git a/web/optivum-better-schedule-frontend/src/components/ScheduleTable.vue b/web/optivum-better-schedule-frontend/src/components/ScheduleTable.vue
index 4a6c664..5a87a78 100644
--- a/web/optivum-better-schedule-frontend/src/components/ScheduleTable.vue
+++ b/web/optivum-better-schedule-frontend/src/components/ScheduleTable.vue
@@ -20,14 +20,15 @@
-
-
-
+
+
+
- {{ groupIndex + 1
- }}. |
+
+ {{ groupIndex + 1 }}.
+ |
{{
@@ -36,39 +37,40 @@
formatTime(lessonGroup.lessons[0]?.time_range.end) }}
|
-
- {{ lesson.full_name }}
-
+ {{ lesson.full_name }}
+
- {{ lesson.teacher_designator }}
+ {{ lesson.teacher_designator }}
-
+
- {{ lesson.room_designator }}
+ {{ lesson.room_designator }}
-
+
- {{ lesson.division_designator }}
+ {{ lesson.division_designator }}
|
-
-
+
+
+
@@ -96,7 +98,7 @@
+ v-if="day.lesson_groups && day.lesson_groups.some((lg: LessonGroup) => formatTime(lg.lessons[0]?.time_range.start) + ' - ' + formatTime(lg.lessons[0]?.time_range.end) === timeRange)">
{{ lesson.full_name }}
@@ -126,12 +128,15 @@
+
+
diff --git a/web/optivum-better-schedule-frontend/src/components/pages/Division.vue b/web/optivum-better-schedule-frontend/src/components/pages/Division.vue
index 07d1a16..180ff34 100644
--- a/web/optivum-better-schedule-frontend/src/components/pages/Division.vue
+++ b/web/optivum-better-schedule-frontend/src/components/pages/Division.vue
@@ -9,19 +9,16 @@
-->
-
+
-
+ -->
diff --git a/web/optivum-better-schedule-frontend/src/components/pages/Divisions.vue b/web/optivum-better-schedule-frontend/src/components/pages/Divisions.vue
index 4d25456..cbacc97 100644
--- a/web/optivum-better-schedule-frontend/src/components/pages/Divisions.vue
+++ b/web/optivum-better-schedule-frontend/src/components/pages/Divisions.vue
@@ -1,33 +1,49 @@
+
+ variant="solo" rounded="pill" hide-details="auto" @input="debouncedSearch" />
+
-
-
+
+
+
+
+
+
+
+
+
+ {{ error }}
+
\ No newline at end of file
+
diff --git a/web/optivum-better-schedule-frontend/src/components/pages/Room.vue b/web/optivum-better-schedule-frontend/src/components/pages/Room.vue
new file mode 100644
index 0000000..fe65a99
--- /dev/null
+++ b/web/optivum-better-schedule-frontend/src/components/pages/Room.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/web/optivum-better-schedule-frontend/src/components/pages/Rooms.vue b/web/optivum-better-schedule-frontend/src/components/pages/Rooms.vue
new file mode 100644
index 0000000..c3eaf80
--- /dev/null
+++ b/web/optivum-better-schedule-frontend/src/components/pages/Rooms.vue
@@ -0,0 +1,228 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ error }}
+
+
+
+
+
+
diff --git a/web/optivum-better-schedule-frontend/src/components/pages/Teacher.vue b/web/optivum-better-schedule-frontend/src/components/pages/Teacher.vue
new file mode 100644
index 0000000..11f35f7
--- /dev/null
+++ b/web/optivum-better-schedule-frontend/src/components/pages/Teacher.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/web/optivum-better-schedule-frontend/src/components/pages/Teachers.vue b/web/optivum-better-schedule-frontend/src/components/pages/Teachers.vue
new file mode 100644
index 0000000..d97043e
--- /dev/null
+++ b/web/optivum-better-schedule-frontend/src/components/pages/Teachers.vue
@@ -0,0 +1,232 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ error }}
+
+
+
+
+
+
diff --git a/web/optivum-better-schedule-frontend/src/locales/en.js b/web/optivum-better-schedule-frontend/src/locales/en.js
index f7079df..5f02a85 100644
--- a/web/optivum-better-schedule-frontend/src/locales/en.js
+++ b/web/optivum-better-schedule-frontend/src/locales/en.js
@@ -101,7 +101,11 @@ export default {
},
page: {
title: 'Optivum - Better Schedule',
- not_found: 'Page Not Found',
+ not_found: 'Page not found',
+ no_schedule: 'No schedule for this day',
+ no_divisions: 'No divisions found',
+ no_teachers: 'No teachers found',
+ no_rooms: 'No classrooms found',
home: 'Home',
divisions: 'Divisions',
division: 'Division - {id}',
diff --git a/web/optivum-better-schedule-frontend/src/locales/pl.js b/web/optivum-better-schedule-frontend/src/locales/pl.js
index 3508360..ae1d583 100644
--- a/web/optivum-better-schedule-frontend/src/locales/pl.js
+++ b/web/optivum-better-schedule-frontend/src/locales/pl.js
@@ -102,6 +102,10 @@ export default {
page: {
title: 'Optivum - Lepszy Plan Lekcji',
not_found: 'Nie znaleziono strony',
+ no_schedule: 'Brak planu na ten dzień',
+ no_divisions: 'Nie znaleziono klas',
+ no_teachers: 'Nie znaleziono nauczycieli',
+ no_rooms: 'Nie znaleziono sali',
home: 'Strona główna',
divisions: 'Klasy',
division: 'Klasa - {id}',
diff --git a/web/optivum-better-schedule-frontend/src/router.ts b/web/optivum-better-schedule-frontend/src/router.ts
index d8d20ac..3d21b2e 100644
--- a/web/optivum-better-schedule-frontend/src/router.ts
+++ b/web/optivum-better-schedule-frontend/src/router.ts
@@ -1,19 +1,25 @@
import { createRouter, createWebHistory } from 'vue-router'
import MainPage from './components/pages/Home.vue'
import DivisionsPage from './components/pages/Divisions.vue'
+import TeachersPage from './components/pages/Teachers.vue'
+import RoomsPage from './components/pages/Rooms.vue'
import SettingsPage from './components/pages/Settings.vue'
import DivisionPage from './components/pages/Division.vue'
+import TeacherPage from './components/pages/Teacher.vue'
+import RoomPage from './components/pages/Room.vue'
const routes = [
{ path: '/', component: MainPage, meta: { titleKey: 'page.home' } },
{ path: '/home', component: MainPage, meta: { titleKey: 'page.home' } },
{ path: '/divisions', component: DivisionsPage, meta: { titleKey: 'page.divisions' } },
- { path: '/teachers', component: MainPage, meta: { titleKey: 'page.teachers' } },
- { path: '/rooms', component: MainPage, meta: { titleKey: 'page.rooms' } },
+ { path: '/teachers', component: TeachersPage, meta: { titleKey: 'page.teachers' } },
+ { path: '/rooms', component: RoomsPage, meta: { titleKey: 'page.rooms' } },
{ path: '/settings', component: SettingsPage, meta: { titleKey: 'page.settings' } },
{ path: '/division/:id', component: DivisionPage, props: true, meta: { titleKey: 'page.division' } },
+ { path: '/teacher/:id', component: TeacherPage, props: true, meta: { titleKey: 'page.teacher' } },
+ { path: '/room/:id', component: RoomPage, props: true, meta: { titleKey: 'page.room' } },
]
const router = createRouter({
|