diff --git a/application/controllers/api/frontend/v1/Stundenplan.php b/application/controllers/api/frontend/v1/Stundenplan.php index 032519cf6..a89341654 100644 --- a/application/controllers/api/frontend/v1/Stundenplan.php +++ b/application/controllers/api/frontend/v1/Stundenplan.php @@ -168,7 +168,8 @@ class Stundenplan extends FHCAPI_Controller // getting the student_lehrverbaende of the student in the different studiensemester $this->load->model('education/Studentlehrverband_model', 'StudentlehrverbandModel'); $student_lehrverbaende = null; - if ($lvplan_load_ueber_semesterhaelfte) { + if ($lvplan_load_ueber_semesterhaelfte) + { $student_lehrverbaende = $this->BenutzergruppeModel->execReadOnlyQuery(" SELECT * FROM tbl_studentlehrverband where student_uid = ? AND studiensemester_kurzbz IN ?", [$student_uid, [$aktuelle_studiensemester,$next_studiensemester, $previous_studiensemester]]); $student_lehrverbaende = array_map( @@ -182,7 +183,9 @@ class Stundenplan extends FHCAPI_Controller return $result; }, getData($student_lehrverbaende)); - } else { + } + else + { $student_lehrverbaende = $this->BenutzergruppeModel->execReadOnlyQuery(" SELECT * FROM tbl_studentlehrverband where student_uid = ? AND studiensemester_kurzbz IN ?", [$student_uid, [$aktuelle_studiensemester,$nearest_studiensemester]]); $student_lehrverbaende = array_map( @@ -240,13 +243,16 @@ class Stundenplan extends FHCAPI_Controller } private function expand_object_information($data){ - foreach ($data as $item) { + + foreach ($data as $item) + { $lektor_obj_array = array(); $gruppe_obj_array = array(); // load lektor object - foreach ($item->lektor as $lv_lektor) { + foreach ($item->lektor as $lv_lektor) + { $this->StundenplanModel->addLimit(1); $lektor_object = $this->StundenplanModel->execReadOnlyQuery(" SELECT mitarbeiter_uid, vorname, nachname, kurzbz @@ -263,7 +269,8 @@ class Stundenplan extends FHCAPI_Controller } // load gruppe object - foreach ($item->gruppe as $lv_gruppe) { + foreach ($item->gruppe as $lv_gruppe) + { $lv_gruppe = strtr($lv_gruppe, ['(' => '', ')' => '', '"' => '']); $lv_gruppe_array = explode(",", $lv_gruppe); list($gruppe, $verband, $semester, $studiengang_kz, $gruppen_kuerzel) = $lv_gruppe_array; diff --git a/public/js/components/Calendar/Week/Page.js b/public/js/components/Calendar/Week/Page.js index 4b7c45952..10c56e13e 100755 --- a/public/js/components/Calendar/Week/Page.js +++ b/public/js/components/Calendar/Week/Page.js @@ -4,6 +4,12 @@ function ggt(m,n) { return n==0 ? m : ggt(n, m%n); } function kgv(m,n) { return (m*n) / ggt(m,n); } export default { + data(){ + return{ + hourPosition:null, + hourPositionTime:null, + } + }, inject: [ 'date', 'focusDate', @@ -76,6 +82,26 @@ export default { } }, methods: { + calcHourPosition(event){ + let top = this.$refs.eventcontainer.getBoundingClientRect().top; + let position = event.clientY - top; + this.hourPosition = position; + // position percentage of total height + let timePercentage = (position / this.$refs.eventcontainer.offsetHeight) * 100; + // minute percentage of total minutes + let result = (this.hours.length * 60) * (timePercentage/100); + // calculate time in float + let currentMinutes = ((result+(this.hours[0]*60))/60); + // get hour part of time + let currentHour = Math.floor(currentMinutes); + // get float part of time + let minutePercentage = currentMinutes % currentHour; + // calculate minutes from float part of time + let minute = Math.round(60 * minutePercentage); + // add padding to minutes that consist of only one digit + minute.toString().length == 1 ? minute = "0" + minute : minute; + this.hourPositionTime = currentHour + ":" + minute; + }, getAbsolutePositionForHour(hour){ // used for the absolute positioning of the gutters of hours return (100 / this.hours.length) * (hour - (24-this.hours.length)) + '%'; @@ -104,13 +130,14 @@ export default { {{day.toLocaleString(undefined, [{day:'numeric',month:'numeric'},{day:'numeric',month:'numeric'},{day:'numeric',month:'numeric'},{dateStyle:'short'}][this.size])}} -
this is a placeholder which means that no template was passed to the Calendar Page slot