From 72df2cb79cfb737142ace0e73da0ef78f8f2f159 Mon Sep 17 00:00:00 2001 From: chfhtw Date: Wed, 23 Jul 2025 08:56:23 +0200 Subject: [PATCH] Implementation CIS => LvPlanWidget --- application/controllers/Cis4.php | 12 +- public/css/Cis4/CoreCalendarEvents.css | 50 ++- public/css/components/calendar/events.css | 6 +- public/js/components/Calendar/Base.js | 1 + .../Calendar/Base/Grid/Line/Event.js | 2 +- public/js/components/Calendar/Base/Header.js | 5 + .../Calendar/Base/Header/Datepicker.js | 13 +- public/js/components/Calendar/Mode/List.js | 22 +- .../js/components/Calendar/Mode/List/View.js | 31 +- public/js/components/Dashboard/Dashboard.js | 4 +- .../js/components/DashboardWidget/LvPlan.js | 321 +++++------------- 11 files changed, 190 insertions(+), 277 deletions(-) diff --git a/application/controllers/Cis4.php b/application/controllers/Cis4.php index c0ca8d503..b7ba2029d 100644 --- a/application/controllers/Cis4.php +++ b/application/controllers/Cis4.php @@ -17,6 +17,9 @@ class Cis4 extends Auth_Controller 'index' => 'basis/cis:r' ) ); + + // Load Config + $this->load->config('calendar'); } // ----------------------------------------------------------------------------------------------------------------- @@ -27,15 +30,16 @@ class Cis4 extends Auth_Controller */ public function index() { - $this->load->model('person/Person_model','PersonModel'); + $this->load->model('person/Person_model', 'PersonModel'); $personData = getData($this->PersonModel->getByUid(getAuthUID()))[0]; $viewData = array( 'uid' => getAuthUID(), 'name' => $personData->vorname, - 'person_id' => $personData->person_id + 'person_id' => $personData->person_id, + 'timezone' => $this->config->item('timezone') ); - $this->load->view('CisRouterView/CisRouterView.php',['viewData' => $viewData, 'route' => 'FhcDashboard']); + $this->load->view('CisRouterView/CisRouterView.php', ['viewData' => $viewData, 'route' => 'FhcDashboard']); } -} \ No newline at end of file +} diff --git a/public/css/Cis4/CoreCalendarEvents.css b/public/css/Cis4/CoreCalendarEvents.css index f248f4a61..9075d89e9 100644 --- a/public/css/Cis4/CoreCalendarEvents.css +++ b/public/css/Cis4/CoreCalendarEvents.css @@ -124,27 +124,27 @@ .dayPageContainer .feiertagEventContent #ferienEventTitle {} -/* Minimized Container Styles */ +/* List Page Container Styles */ -/* Ferientage Events for Minimized */ +/* Ferientage Events for List Page */ -.minimizedContainer .feiertagEventContent{ +.listPageContainer .feiertagEventContent{ display: flex; justify-content: center; align-items: center; color: var(--fhc-light); } -.minimizedContainer .feiertagEventContent #ferienEventIcon{ +.listPageContainer .feiertagEventContent #ferienEventIcon{ margin: 0.5rem; } -.minimizedContainer .feiertagEventContent #ferienEventTitle{ +.listPageContainer .feiertagEventContent #ferienEventTitle{ flex-grow: 1; } -/* Lehreinheits Events in Minimized */ -.dayPageContainer .lehreinheitEventContent { +/* Lehreinheits Events in List Page */ +.listPageContainer .lehreinheitEventContent { display: flex; padding-left: 4rem; justify-content: space-evenly; @@ -152,15 +152,43 @@ } -.dayPageContainer .lehreinheitEventContent #lehreinheitEventHeader { +.listPageContainer .lehreinheitEventContent #lehreinheitEventHeader { display: grid; align-content: center; } -.dayPageContainer .lehreinheitEventContent #lehreinheitEventText { +.listPageContainer .lehreinheitEventContent #lehreinheitEventText { display: contents; } -.dayPageContainer .lehreinheitEventContent #lehreinheitEventText * { +.listPageContainer .lehreinheitEventContent #lehreinheitEventText * { font-weight: 500; -} \ No newline at end of file +} + + +/* Widget Styles */ +.dashboard-widget-lvplan .fhc-calendar-base .card { + --bs-card-cap-padding-x: 0; + --bs-card-cap-padding-y: 0; + --bs-card-border-radius: 0; + --bs-card-border-width: 0; + --dp-input-padding: .375rem .75rem; + --dp-input-icon-padding: calc(1rem + 24px); +} +.dashboard-widget-lvplan .fhc-calendar-base .card-header { + border-bottom-width: var(--bs-border-width); +} +.dashboard-widget-lvplan .fhc-calendar-base .card-header > .row > .col-auto, +.dashboard-widget-lvplan .fhc-calendar-base .card-header .btn-group { + width: 100%; +} +.dashboard-widget-lvplan .fhc-calendar-base .card-header input { + --dp-font-size: .7em; +} +.dashboard-widget-lvplan .fhc-calendar-base .card-header .btn { + --bs-btn-font-size: .7em; +} +.dashboard-widget-lvplan .fhc-calendar-base-label-day { + cursor: initial; +} + diff --git a/public/css/components/calendar/events.css b/public/css/components/calendar/events.css index 5feb7b707..b29883d54 100644 --- a/public/css/components/calendar/events.css +++ b/public/css/components/calendar/events.css @@ -1,4 +1,4 @@ -.fhc-calendar-base-grid-line-event { +.event { cursor: pointer; } .fhc-calendar-mode-week .all-day-events .fhc-calendar-base-grid-line-event .weekPageContainer { @@ -59,9 +59,9 @@ .fhc-calendar-base-grid-line-event .event-type-reservierung { --event-default-bg: var(--fhc-calendar-bg-reservierung, #fff); } -.fhc-calendar-base-grid-line-event > * { +.fhc-calendar-base .event > * { background-color: var(--event-bg, var(--event-default-bg)); } -.fhc-calendar-base-grid-line-event > *:hover { +.fhc-calendar-base .event > *:hover { filter: brightness(120%); } diff --git a/public/js/components/Calendar/Base.js b/public/js/components/Calendar/Base.js index a8d668cab..520948ecb 100644 --- a/public/js/components/Calendar/Base.js +++ b/public/js/components/Calendar/Base.js @@ -264,6 +264,7 @@ export default { :btn-week="!!modes['week'] && (btnWeek || (showBtns && btnWeek !== false))" :btn-month="!!modes['month'] && (btnMonth || (showBtns && btnMonth !== false))" :btn-list="!!modes['list'] && (btnList || (showBtns && btnList !== false))" + :mode-options="modeOptions ? modeOptions[cMode] : undefined" > diff --git a/public/js/components/Calendar/Base/Grid/Line/Event.js b/public/js/components/Calendar/Base/Grid/Line/Event.js index 5cf098eb5..6512d1fa1 100644 --- a/public/js/components/Calendar/Base/Grid/Line/Event.js +++ b/public/js/components/Calendar/Base/Grid/Line/Event.js @@ -42,7 +42,7 @@ export default { }, template: /* html */`