diff --git a/application/views/CisRouterView/CisRouterView.php b/application/views/CisRouterView/CisRouterView.php index 4590b210e..1c81f3570 100644 --- a/application/views/CisRouterView/CisRouterView.php +++ b/application/views/CisRouterView/CisRouterView.php @@ -8,6 +8,7 @@ $includesArray = array( 'tabulator5' => true, 'vue3' => true, 'primevue3' => true, + 'vuedatepicker11' => true, 'customCSSs' => array( 'public/css/components/verticalsplit.css', 'public/css/components/searchbar/searchbar.css', diff --git a/application/views/templates/FHC-Common.php b/application/views/templates/FHC-Common.php index 245432f46..024bcb40d 100644 --- a/application/views/templates/FHC-Common.php +++ b/application/views/templates/FHC-Common.php @@ -28,6 +28,7 @@ $tinymce5 = isset($tinymce5) ? $tinymce5 : false; $vue3 = isset($vue3) ? $vue3 : false; $primevue3 = isset($primevue3) ? $primevue3 : false; + $vuedatepicker11 = isset($vuedatepicker11) ? $vuedatepicker11 : false; // Hooks $addons = isset($addons) ? $addons : false; diff --git a/application/views/templates/FHC-Footer.php b/application/views/templates/FHC-Footer.php index d78e0e9c3..76d581c4c 100644 --- a/application/views/templates/FHC-Footer.php +++ b/application/views/templates/FHC-Footer.php @@ -152,6 +152,8 @@ generateJSsInclude('vendor/npm-asset/primevue/confirmationservice/confirmationservice.min.js'); } + if($vuedatepicker11) generateJSsInclude('vendor/vuejs/vuedatepicker_js11/vue-datepicker.iife.js'); + // -------------------------------------------------------------------------------------------------------- // From public folder @@ -181,11 +183,13 @@ // User Defined Fields if ($udfs === true) generateJSsInclude('public/js/UDFWidget.js'); - + // Load addon hooks JS // NOTE: keep it as the last but one if ($addons === true) generateAddonsJSsInclude($calledPath.'/'.$calledMethod); + + // Eventually required JS // NOTE: keep it as the latest generateJSsInclude($customJSs); diff --git a/application/views/templates/FHC-Header.php b/application/views/templates/FHC-Header.php index bca75512f..8e813916e 100644 --- a/application/views/templates/FHC-Header.php +++ b/application/views/templates/FHC-Header.php @@ -92,7 +92,12 @@ generateCSSsInclude('vendor/npm-asset/primeicons/primeicons.css'); } - // -------------------------------------------------------------------------------------------------------- + if ($vuedatepicker11 === true) + { + generateCSSsInclude('vendor/vuejs/vuedatepicker_css11/main.css'); + } + + // -------------------------------------------------------------------------------------------------------- // From public folder // AjaxLib CSS diff --git a/composer.json b/composer.json index 15d61f3d1..6aa94c0f7 100644 --- a/composer.json +++ b/composer.json @@ -370,6 +370,28 @@ } } }, + { + "type": "package", + "package": { + "name": "vuejs/vuedatepicker_js11", + "version": "11.0.1", + "dist": { + "url": "https://unpkg.com/@vuepic/vue-datepicker@11.0.1/dist/vue-datepicker.iife.js", + "type": "file" + } + } + }, + { + "type": "package", + "package": { + "name": "vuejs/vuedatepicker_css11", + "version": "11.0.1", + "dist": { + "url": "https://unpkg.com/@vuepic/vue-datepicker@11.0.1/dist/main.css", + "type": "file" + } + } + }, { "type": "package", "package": { @@ -456,7 +478,9 @@ "vuejs/vuejs3": "3.3.8", "vuejs/vuerouter4": "4.1.3", "vuejs/vuedatepicker_js": "7.2.0", - "vuejs/vuedatepicker_css": "7.2.0" + "vuejs/vuedatepicker_css": "7.2.0", + "vuejs/vuedatepicker_js11": "11.0.1", + "vuejs/vuedatepicker_css11": "11.0.1" }, "config": { diff --git a/public/js/components/Calendar/Month.js b/public/js/components/Calendar/Month.js index d427304b8..9d35707a0 100644 --- a/public/js/components/Calendar/Month.js +++ b/public/js/components/Calendar/Month.js @@ -1,14 +1,17 @@ import CalendarAbstract from './Abstract.js'; import CalendarPane from './Pane.js'; import CalendarMonthPage from './Month/Page.js'; - +import BsModal from "../Bootstrap/Modal.js"; +import Months from "./Months"; export default { mixins: [ CalendarAbstract ], components: { CalendarMonthPage, - CalendarPane + CalendarPane, + BsModal, + Months }, data() { return { @@ -21,6 +24,16 @@ export default { } }, methods: { + handleMonthChanged(month) { + this.$emit('change:offset', { y: 0, m: month - this.focusDate.m, d: 0 }); + this.$refs.modalDatepickerContainer.hide() + }, + hideMonthsModal() { + this.$refs.modalDatepickerContainer.hide() + }, + handleHeaderClickMonth() { + this.$refs.modalDatepickerContainer.show() + }, paneChanged(dir) { if (this.syncOnNextChange) { this.syncOnNextChange = false; @@ -65,7 +78,7 @@ export default { }, template: `
- + @@ -77,5 +90,12 @@ export default { -
` + + + + + +` } diff --git a/public/js/components/Calendar/Months.js b/public/js/components/Calendar/Months.js index 6ef9b1bb1..1647f6f6a 100644 --- a/public/js/components/Calendar/Months.js +++ b/public/js/components/Calendar/Months.js @@ -4,6 +4,9 @@ export default { mixins: [ CalendarAbstract ], + emits: [ + 'change' + ], inject: [ 'size' ], @@ -22,10 +25,9 @@ export default { }, template: `
-
-
diff --git a/public/js/components/Cis/Stundenplan/Stundenplan.js b/public/js/components/Cis/Stundenplan/Stundenplan.js index e11845e8b..2ee684c32 100644 --- a/public/js/components/Cis/Stundenplan/Stundenplan.js +++ b/public/js/components/Cis/Stundenplan/Stundenplan.js @@ -355,12 +355,12 @@ const Stundenplan = { {{event.topic}}
-
+
{{event.topic}}