diff --git a/application/controllers/api/frontend/v1/LvMenu.php b/application/controllers/api/frontend/v1/LvMenu.php index 6f4f5ad97..ece08e2a9 100644 --- a/application/controllers/api/frontend/v1/LvMenu.php +++ b/application/controllers/api/frontend/v1/LvMenu.php @@ -52,7 +52,7 @@ class LvMenu extends FHCAPI_Controller $this->load->library("PermissionLib", null, 'PermissionLib'); $this->load->library("PhrasesLib"); - $this->loadPhrases(array('global')); + $this->loadPhrases(array('global', 'lehre')); } //------------------------------------------------------------------------------------------------------------------ @@ -68,18 +68,12 @@ class LvMenu extends FHCAPI_Controller if(!isset($lvid) || !isset($studiensemester_kurzbz)) $this->terminateWithError('Missing parameters', self::ERROR_TYPE_GENERAL); - // FH-Core Variables - // ########################################################################################## - require_once(FHCPATH.'include/phrasen.class.php'); - // get the sprache $sprache = getUserLanguage(); - $p = new phrasen($sprache); - //$p = $this->$p; // get the user if (!$user=getAuthUID()) - $this->terminateWithError($p->t('global/nichtAngemeldet')); + $this->terminateWithError($this->p->t('global', 'nichtAngemeldet')); // check if is_lector $is_lector = false; @@ -209,39 +203,29 @@ class LvMenu extends FHCAPI_Controller $menu = array(); - //todo: digitale anwesenheiten sollte ein Events.php im config/ folder beinhalten - //$this->fhc_menu_digitale_anwesenheiten($menu, $angemeldet, $studiengang_kz, $semester, $lvid, $angezeigtes_stsem, $p); - - $this->fhc_menu_lvinfo($menu, $lvid, $studiengang_kz, $lektor_der_lv, $is_lector, $lehrfach_oe_kurzbz_arr, $p); + $this->fhc_menu_lvinfo($menu, $lvid, $studiengang_kz, $lektor_der_lv, $is_lector, $lehrfach_oe_kurzbz_arr); - $this->fhc_menu_feedback($menu, $angemeldet, $lvid, $p); + $this->fhc_menu_feedback($menu, $angemeldet, $lvid); - $this->fhc_menu_gesamtnote($menu, $angemeldet, $lvid, $lv, $is_lector, $angezeigtes_stsem, $p); + $this->fhc_menu_gesamtnote($menu, $angemeldet, $lvid, $lv, $is_lector, $angezeigtes_stsem); - $this->fhc_menu_emailStudierende($menu, $user, $angemeldet, $lvid, $angezeigtes_stsem, $p); + $this->fhc_menu_emailStudierende($menu, $user, $angemeldet, $lvid, $angezeigtes_stsem); - $this->fhc_menu_abmeldung($menu, $user, $is_lector, $lvid, $angezeigtes_stsem, $p); + $this->fhc_menu_abmeldung($menu, $user, $is_lector, $lvid, $angezeigtes_stsem); $this->fhc_menu_lehretools($menu, $lvid, $angezeigtes_stsem, $sprache); - $this->fhc_menu_anrechnungStudent($menu, $lvid, $angezeigtes_stsem, $p); + $this->fhc_menu_anrechnungStudent($menu, $lvid, $angezeigtes_stsem); - $this->fhc_menu_anrechnungLector($menu, $angezeigtes_stsem, $p); + $this->fhc_menu_anrechnungLector($menu, $angezeigtes_stsem); - // LEGACY FH-CORE MENU POINTS - //$this->fhc_menu_notenliste($menu, $angemeldet, $is_lector, $lvid, $studiengang_kz, $angezeigtes_stsem, $kurzbz, $semester, $short_short_name, $p); - //$this->fhc_menu_download($menu, $angemeldet, $user_is_allowed_to_upload, $rechte, $semester, $kurzbz, $studiengang_kz, $short_short_name, $short, $p); - //$this->fhc_menu_semesterplan($menu, $angemeldet, $user_is_allowed_to_upload, $rechte, $lvid, $studiengang_kz, $kurzbz, $semester, $short_short_name, $p); - //$this->fhc_menu_stundenupload($menu, $angemeldet, $lvid, $is_lector, $studiengang_kz, $kurzbz, $semester, $short, $short_short_name, $p); - //$this->fhc_menu_pinboard($menu, $angemeldet, $is_lector, $studiengang_kz, $semester, $p); - // Addons Menu Logic // ########################################################################################## $params = [ 'sprache'=>$sprache, - 'p'=>$p, + //'p'=>$p, 'ci_p'=> $this->p, //'db'=>$db, 'user'=>$user, @@ -301,7 +285,7 @@ class LvMenu extends FHCAPI_Controller } - private function fhc_menu_digitale_anwesenheiten(&$menu, $angemeldet, $studiengang_kz, $semester, $lvid, $angezeigtes_stsem, $p){ + private function fhc_menu_digitale_anwesenheiten(&$menu, $angemeldet, $studiengang_kz, $semester, $lvid, $angezeigtes_stsem){ // DIGITALE ANWESENHEITEN if (CIS_LEHRVERANSTALTUNG_ANWESENHEIT_ANZEIGEN && $angemeldet) { @@ -310,7 +294,7 @@ class LvMenu extends FHCAPI_Controller ( 'id' => 'core_menu_digitale_anwesenheitslisten', 'position' => '50', - 'name' => $p->t('lehre/digiAnw'), + 'name' => $this->p->t('lehre', 'digiAnw'), 'c4_icon' => base_url('skin/images/button_kreuzerltool.png'), 'c4_link' => base_url("index.ci.php/extensions/FHC-Core-Anwesenheiten/?stg_kz=$studiengang_kz&sem=$semester&lvid=$lvid&sem_kurzbz=$angezeigtes_stsem&nav=false"), 'c4_linkList' => [] @@ -318,7 +302,7 @@ class LvMenu extends FHCAPI_Controller } } - private function fhc_menu_lvinfo(&$menu, $lvid, $studiengang_kz, $lektor_der_lv, $is_lector, $lehrfach_oe_kurzbz_arr, $p){ + private function fhc_menu_lvinfo(&$menu, $lvid, $studiengang_kz, $lektor_der_lv, $is_lector, $lehrfach_oe_kurzbz_arr){ // LVINFO if(!defined('CIS_LEHRVERANSTALTUNG_LVINFO_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_LVINFO_ANZEIGEN) @@ -333,7 +317,7 @@ class LvMenu extends FHCAPI_Controller || $this->PermissionLib->isBerechtigtMultipleOe('lehre/lvinfo', $lehrfach_oe_kurzbz_arr) ) { - $c4_linkList[]= [$p->t('lehre/lvInfoBearbeiten'), 'ects/index.php?lvid='.$lvid]; + $c4_linkList[]= [$this->p->t('lehre', 'lvInfoBearbeiten'), 'ects/index.php?lvid='.$lvid]; } elseif ($is_lector) { @@ -344,7 +328,7 @@ class LvMenu extends FHCAPI_Controller ( 'id'=>'core_menu_lvinfo', 'position'=>'10', - 'name'=>$p->t('lehre/lehrveranstaltungsinformation'), + 'name'=>$this->p->t('lehre', 'lehrveranstaltungsinformation'), 'icon'=>'../../../skin/images/button_lvinfo.png', 'link'=>'', 'c4_icon'=> base_url('skin/images/button_lvinfo.png'), @@ -354,7 +338,7 @@ class LvMenu extends FHCAPI_Controller } } - private function fhc_menu_feedback(&$menu, $angemeldet, $lvid, $p){ + private function fhc_menu_feedback(&$menu, $angemeldet, $lvid){ //FEEDBACK if((!defined('CIS_LEHRVERANSTALTUNG_FEEDBACK_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_FEEDBACK_ANZEIGEN) && $angemeldet) { @@ -362,14 +346,14 @@ class LvMenu extends FHCAPI_Controller ( 'id'=>'core_menu_feedback', 'position'=>'60', - 'name'=>$p->t('lehre/feedback'), + 'name'=>$this->p->t('lehre', 'feedback'), 'c4_icon'=> base_url('skin/images/button_feedback.png'), 'c4_link'=> base_url('feedback.php?lvid='.$lvid), ); } } - private function fhc_menu_gesamtnote(&$menu, $angemeldet, $lvid, $lv_obj, $is_lector, $angezeigtes_stsem, $p){ + private function fhc_menu_gesamtnote(&$menu, $angemeldet, $lvid, $lv_obj, $is_lector, $angezeigtes_stsem){ //Gesamtnote if($is_lector && ((!defined('CIS_LEHRVERANSTALTUNG_GESAMTNOTE_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_GESAMTNOTE_ANZEIGEN) && $angemeldet)) { @@ -379,7 +363,7 @@ class LvMenu extends FHCAPI_Controller ( 'id'=>'core_menu_gesamtnote', 'position'=>'80', - 'name'=>$p->t('lehre/gesamtnote'), + 'name'=>$this->p->t('lehre', 'gesamtnote'), 'c4_icon'=> base_url('skin/images/button_endnote.png'), 'c4_link'=> base_url('cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php?lvid='.urlencode($lvid).'&stsem='.urlencode($angezeigtes_stsem)) //'c4_link'=> base_url('benotungstool/lvgesamtnoteverwalten.php?lvid='.urlencode($lvid).'&stsem='.urlencode($angezeigtes_stsem)) @@ -391,10 +375,10 @@ class LvMenu extends FHCAPI_Controller ( 'id'=>'core_menu_gesamtnote', 'position'=>'80', - 'name'=>$p->t('lehre/gesamtnote'), + 'name'=>$this->p->t('lehre', 'gesamtnote'), 'c4_icon'=>base_url('skin/images/button_endnote.png'), 'c4_link'=>'#', - 'c4_linkList'=>[[$p->t('lehre/noteneingabedeaktiviert'),'#']], + 'c4_linkList'=>[[$this->p->t('lehre', 'noteneingabedeaktiviert'),'#']], ); } } @@ -402,7 +386,7 @@ class LvMenu extends FHCAPI_Controller - private function fhc_menu_emailStudierende(&$menu, $user, $angemeldet, $lvid, $angezeigtes_stsem, $p){ + private function fhc_menu_emailStudierende(&$menu, $user, $angemeldet, $lvid, $angezeigtes_stsem){ // Email an Studierende if((!defined('CIS_LEHRVERANSTALTUNG_MAILSTUDIERENDE_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_MAILSTUDIERENDE_ANZEIGEN) && $angemeldet) { @@ -448,10 +432,10 @@ class LvMenu extends FHCAPI_Controller if($nomail != '') { $c4_linkList[] = array( - $p->t('lehre/keinMailverteiler', array($nomail)), + $this->p->t('lehre', 'keinMailverteiler', array('nomail' => $nomail)), '#' ); - $link_onclick = 'alert(\''.$p->t('lehre/keinMailverteiler', array($nomail)) . '\');'; + $link_onclick = 'alert(\''.$this->p->t('lehre', 'keinMailverteiler', array('nomail' => $nomail)) . '\');'; } else { @@ -463,7 +447,7 @@ class LvMenu extends FHCAPI_Controller ( 'id'=>'core_menu_mailanstudierende', 'position'=>'100', - 'name'=>$p->t('lehre/mail'), + 'name'=>$this->p->t('lehre', 'mail'), 'c4_icon'=>base_url('skin/images/button_feedback.png'), 'c4_icon2' => 'fa-regular fa-envelope', 'c4_link'=>$mailto, @@ -475,7 +459,7 @@ class LvMenu extends FHCAPI_Controller - private function fhc_menu_abmeldung(&$menu, $user, $is_lector, $lvid, $angezeigtes_stsem, $p){ + private function fhc_menu_abmeldung(&$menu, $user, $is_lector, $lvid, $angezeigtes_stsem){ if(!defined('CIS_LEHRVERANSTALTUNG_ABMELDUNG_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_ABMELDUNG_ANZEIGEN) { if(!$is_lector) @@ -487,7 +471,7 @@ class LvMenu extends FHCAPI_Controller ( 'id'=>'core_menu_abmeldung', 'position'=>'120', - 'name'=>$p->t('lehre/abmelden'), + 'name'=>$this->p->t('lehre', 'abmelden'), 'c4_icon'=>base_url('skin/images/button_studiupload.png'), 'c4_link'=>base_url('abmeldung.php?lvid='.urlencode($lvid).'&stsem='.urlencode($angezeigtes_stsem)), ); @@ -512,7 +496,7 @@ class LvMenu extends FHCAPI_Controller } } - private function fhc_menu_anrechnungStudent(&$menu, $lvid, $angezeigtes_stsem, $p){ + private function fhc_menu_anrechnungStudent(&$menu, $lvid, $angezeigtes_stsem){ // Anerkennung nachgewiesener Kenntnisse (Anrechnung) - Anzeige fuer Studenten if((!defined('CIS_LEHRVERANSTALTUNG_ANRECHNUNG_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_ANRECHNUNG_ANZEIGEN) && $this->PermissionLib->isBerechtigt('student/anrechnung_beantragen')) @@ -521,7 +505,7 @@ class LvMenu extends FHCAPI_Controller ( 'id' => 'core_menu_anerkennungNachgewiesenerKenntnisse', 'position' => '128', - 'name' => $p->t('lehre/anrechnung'), + 'name' => $this->p->t('lehre', 'anrechnung'), 'c4_icon' => base_url('skin/images/button_listen.png'), 'c4_icon2' => 'fa-regular fa-folder-open', 'c4_link' => base_url('cis.php/lehre/anrechnung/RequestAnrechnung?studiensemester='.urlencode($angezeigtes_stsem).'&lv_id='.urlencode($lvid)) @@ -529,7 +513,7 @@ class LvMenu extends FHCAPI_Controller } } - private function fhc_menu_anrechnungLector(&$menu, $angezeigtes_stsem, $p){ + private function fhc_menu_anrechnungLector(&$menu, $angezeigtes_stsem){ // Anerkennung nachgewiesener Kenntnisse (Anrechnung) - Anzeige fuer LektorInnen if((!defined('CIS_LEHRVERANSTALTUNG_ANRECHNUNG_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_ANRECHNUNG_ANZEIGEN) && $this->PermissionLib->isBerechtigt('lehre/anrechnung_empfehlen')) @@ -538,7 +522,7 @@ class LvMenu extends FHCAPI_Controller ( 'id' => 'core_menu_anerkennungNachgewiesenerKenntnisse_empfehlen', 'position' => '128', - 'name' => $p->t('lehre/anrechnungen'), + 'name' => $this->p->t('lehre', 'anrechnungen'), 'c4_icon'=> base_url('skin/images/button_listen.png'), 'c4_icon2' => 'fa-regular fa-folder-open', 'c4_link' => base_url('cis.php/lehre/anrechnung/ReviewAnrechnungUebersicht?studiensemester='.urlencode($angezeigtes_stsem)) diff --git a/application/libraries/FilterCmptLib.php b/application/libraries/FilterCmptLib.php index 8b13ae3e5..c1a2b47cb 100644 --- a/application/libraries/FilterCmptLib.php +++ b/application/libraries/FilterCmptLib.php @@ -565,6 +565,7 @@ class FilterCmptLib getAuthPersonId() ); + // If filters were loaded if (hasData($filters)) { @@ -1172,5 +1173,4 @@ class FilterCmptLib return $filterName; } -} - +} \ No newline at end of file diff --git a/application/views/templates/FHC-Footer.php b/application/views/templates/FHC-Footer.php index dd27fe5e6..bf3475a04 100644 --- a/application/views/templates/FHC-Footer.php +++ b/application/views/templates/FHC-Footer.php @@ -177,5 +177,4 @@ - - + \ No newline at end of file diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php index b945a15d2..6c3e401c5 100644 --- a/config/global.config-default.inc.php +++ b/config/global.config-default.inc.php @@ -27,6 +27,7 @@ define('CIS_LEHRVERANSTALTUNG_SEMESTERINFO_ANZEIGEN',true); define('CIS_LEHRVERANSTALTUNG_LEHRFACH_ANZEIGEN',false); define('CIS_LEHRVERANSTALTUNG_GESAMTNOTE_ANZEIGEN', true); define('CIS_LEHRVERANSTALTUNG_ANRECHNUNG_ANZEIGEN', true); +define('CIS_LEHRVERANSTALTUNG_ANWESENHEIT_ANZEIGEN', true); // Im CIS Menue Links bei Modulen anzeigen wenn Lehrauftrag define('CIS_LEHRVERANSTALTUNG_MODULE_LINK',true); diff --git a/include/tw/cis_menu_lv.inc.php b/include/tw/cis_menu_lv.inc.php index 16abdc48a..6906bcc0f 100644 --- a/include/tw/cis_menu_lv.inc.php +++ b/include/tw/cis_menu_lv.inc.php @@ -240,13 +240,37 @@ function checkZeilenUmbruch() ); } + // Digitale Anwesenheiten + if(CIS_LEHRVERANSTALTUNG_ANWESENHEIT_ANZEIGEN && $angemeldet + && ($rechte->isBerechtigt('extension/anw_ent_admin') + || $rechte->isBerechtigt('extension/anwesenheit_lektor') + || $rechte->isBerechtigt('extension/anwesenheit_student') + || $rechte->isBerechtigt('extension/anwesenheit_admin'))) + { + + $link=''; + $text=''; + + $link= APP_ROOT."index.ci.php/extensions/FHC-Core-Anwesenheiten/?stg_kz=$studiengang_kz&sem=$semester&lvid=$lvid&sem_kurzbz=$angezeigtes_stsem"; + + $menu[]=array + ( + 'id'=>'core_menu_digitale_anwesenheitslisten', + 'position'=>'50', + 'name'=> $p->t('lehre/digiAnw'), + 'icon'=>'../../../skin/images/button_kreuzerltool.png', + 'link'=>$link, + 'text'=>$text + ); + } + //FEEDBACK if((!defined('CIS_LEHRVERANSTALTUNG_FEEDBACK_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_FEEDBACK_ANZEIGEN) && $angemeldet) { $menu[]=array ( 'id'=>'core_menu_feedback', - 'position'=>'50', + 'position'=>'60', 'name'=>$p->t('lehre/feedback'), 'icon'=>'../../../skin/images/button_feedback.png', 'link'=>'feedback.php?lvid='.$lvid, @@ -584,4 +608,4 @@ function isDirectoryEmpty($DOC_ROOT, $kurzbz, $semester, $short_short_name, $typ } ?> - + \ No newline at end of file diff --git a/locale/de-AT/lehre.php b/locale/de-AT/lehre.php index c5be73401..cdab4c12a 100644 --- a/locale/de-AT/lehre.php +++ b/locale/de-AT/lehre.php @@ -16,6 +16,7 @@ $this->phrasen['lehre/upload']='Upload'; $this->phrasen['lehre/ziparchiv']='Zip-Archiv'; $this->phrasen['lehre/ziparchivTitle']='Alle Dateien im Download Verzeichnis als Zip-Archiv herunterladen'; $this->phrasen['lehre/anwesenheitsUndNotenlisten']='Anwesenheits- und Notenlisten'; +$this->phrasen['lehre/digiAnw']='Digitale Anwesenheiten'; $this->phrasen['lehre/leistungsuebersicht']='Leistungsübersicht'; $this->phrasen['lehre/newsgroups']='Newsgroups'; $this->phrasen['lehre/feedback']='Feedback'; diff --git a/locale/en-US/lehre.php b/locale/en-US/lehre.php index e8a78c38b..cba02e08c 100644 --- a/locale/en-US/lehre.php +++ b/locale/en-US/lehre.php @@ -16,6 +16,7 @@ $this->phrasen['lehre/upload']='Upload'; $this->phrasen['lehre/ziparchiv']='Zip-File'; $this->phrasen['lehre/ziparchivTitle']='Download all Files as Zip-File'; $this->phrasen['lehre/anwesenheitsUndNotenlisten']='Attendance and grade list'; +$this->phrasen['lehre/digiAnw']='Digital Attendances'; $this->phrasen['lehre/leistungsuebersicht']='Performance List'; $this->phrasen['lehre/newsgroups']='Newsgroups'; $this->phrasen['lehre/feedback']='Feedback'; diff --git a/public/css/components/calendar.css b/public/css/components/calendar.css index 93c351120..720b79156 100644 --- a/public/css/components/calendar.css +++ b/public/css/components/calendar.css @@ -68,6 +68,21 @@ box-shadow: 0 0 0 1px #dee2e6 !important; } +.fhc-calendar-no-events-overlay{ + position: relative; +} + +.fhc-calendar-no-events-overlay::before { + content: ""; + position: absolute; + top: 0; + left: 0; + margin:auto; + width: 100%; + height: 100%; + background-image: linear-gradient(120deg, white, gray ); + opacity: .7; +} .fhc-calendar-day-page { /*aspect-ratio: 7/6;*/ min-height: 0; @@ -77,7 +92,7 @@ /*width: calc(100% + 1.5em);*/ height: calc(100% + 1.5em); } -.fhc-calendar-day-page .flex-column > div { +.fhc-calendar-day-page .flex-column > .flex-grow-1 { padding-left: 3em; } .fhc-calendar-day-page .flex-column { diff --git a/public/js/apps/Cis/Stundenplan.js b/public/js/apps/Cis/Stundenplan.js index 2bc3c7d00..1e1d43c2f 100644 --- a/public/js/apps/Cis/Stundenplan.js +++ b/public/js/apps/Cis/Stundenplan.js @@ -33,6 +33,7 @@ const app = Vue.createApp({ monthLastDay: function () { return this.calendarDateToString(this.calendarDate.cdLastDayOfCalendarMonth); }, + }, methods:{ getLvID: function () { @@ -57,7 +58,7 @@ const app = Vue.createApp({ if (checkDate(new CalendarDate(start)) && checkDate(new CalendarDate(end))){ // reset the events before querying the new events to activate the loading spinner this.events = null; - this.calendarDate = tmp_date; + this.calendarDate = new CalendarDate(end); Vue.nextTick(() => { this.loadEvents(); }); @@ -102,9 +103,9 @@ const app = Vue.createApp({ }); }, }, - created(){ + created() + { this.getLvID() - this.loadEvents(); }, //TODO: Stundenplan phrase template:/*html*/` diff --git a/public/js/components/Calendar/Calendar.js b/public/js/components/Calendar/Calendar.js index dd12456ca..761df49db 100644 --- a/public/js/components/Calendar/Calendar.js +++ b/public/js/components/Calendar/Calendar.js @@ -26,6 +26,7 @@ export default { focusDate: this.focusDate, size: Vue.computed({ get: () => this.size, set: v => this.size = v }), events: Vue.computed(() => this.eventsPerDay), + filteredEvents: Vue.computed(() => this.filteredEvents), minimized: Vue.computed({ get: () => this.minimized, set: v => this.$emit('update:minimized', v) }), showWeeks: this.showWeeks, noMonthView: this.noMonthView, @@ -55,7 +56,28 @@ export default { }, minimized: Boolean, noWeekView: Boolean, - noMonthView: Boolean + noMonthView: Boolean, + }, + watch:{ + // scroll to the first event if the html element was found + async scrollTime(newScrollTime){ + // scroll the Stundenplan to the closest event + await Vue.nextTick(); + let previousScrollAnchor = document.getElementById('scroll' + (newScrollTime-1) + this.focusDate.d + this.focusDate.w) + let scrollAnchor = document.getElementById('scroll' + newScrollTime+this.focusDate.d+this.focusDate.w); + + if (previousScrollAnchor) + { + previousScrollAnchor.scrollIntoView({ behavior: 'smooth', block: 'start' }); + } + else + { + if (scrollAnchor) + { + scrollAnchor.scrollIntoView({ behavior: 'smooth', block: 'start' }); + } + } + } }, emits: [ 'select:day', @@ -102,7 +124,52 @@ export default { } return result; }, {}); - } + }, + // returns the hour of the earliest event, used to scroll to the events in the calendar (week / day view) + scrollTime: function () { + // return the first beginning time of the filtered events + if(this.filteredEvents && Array.isArray(this.filteredEvents) && this.filteredEvents.length > 0) + { + return parseInt(this.filteredEvents.sort((a, b) => parseInt(a.beginn) - parseInt(b.beginn))[0].beginn); + } + // there is no event that matches the current view mode constraints + else + { + return null; + } + }, + // filters the events based on the current calendar view mode + // week view - filter events based on their week + // day view - filter events based on their day and week + // month view - does not filter the events + filteredEvents: function(){ + if (this.events && Array.isArray(this.events) && this.events.length > 0) { + let filteredEvents = this.events.filter(event => { + let eventDate = new CalendarDate(new Date(event.datum)); + if (this.mode == 'week') + { + // week view filters the elements only for the same week + return this.focusDate.w == eventDate.w; + } + else if (this.mode == 'day') + { + // day view filters the elements for the same day and the same week + return this.focusDate.d == eventDate.d && this.focusDate.w == eventDate.w; + } + else + { + // returns all the events, does not filter the events + return true; + } + }) + + return filteredEvents; + } + else + { + return null; + } + }, }, methods: { handleInput(day) { @@ -136,9 +203,10 @@ export default { } }).observe(this.$refs.container); } + }, template: /*html*/` -
+