mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-18 07:22:17 +00:00
makes MyLv more responsive
This commit is contained in:
@@ -29,6 +29,7 @@ class Lehre extends FHCAPI_Controller
|
||||
{
|
||||
parent::__construct([
|
||||
'lvStudentenMail' => self::PERM_LOGGED,
|
||||
'LV' => self::PERM_LOGGED,
|
||||
]);
|
||||
|
||||
|
||||
@@ -65,6 +66,18 @@ class Lehre extends FHCAPI_Controller
|
||||
$this->terminateWithSuccess($studentenMails);
|
||||
}
|
||||
|
||||
public function LV($studiensemester_kurzbz, $lehrveranstaltung_id)
|
||||
{
|
||||
$this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel');
|
||||
|
||||
$result = $this->LehrveranstaltungModel->getLvsByStudentWithGrades(getAuthUID(), $studiensemester_kurzbz, getUserLanguage(), $lehrveranstaltung_id);
|
||||
|
||||
$result = current($this->getDataOrTerminateWithError($result));
|
||||
|
||||
$this->terminateWithSuccess($result);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -550,10 +550,11 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
* @param string $student_uid
|
||||
* @param string $studiensemester_kurzbz
|
||||
* @param string|null $sprache
|
||||
* @param number|null $lvid - returns only information about that single lv if the parameter is set
|
||||
*
|
||||
* @return stdClass
|
||||
*/
|
||||
public function getLvsByStudentWithGrades($student_uid, $studiensemester_kurzbz, $sprache = null)
|
||||
public function getLvsByStudentWithGrades($student_uid, $studiensemester_kurzbz, $sprache = null, $lvid=null)
|
||||
{
|
||||
if ($sprache) {
|
||||
$sprache_qry = $this->db->compile_binds('SELECT index FROM public.tbl_sprache WHERE sprache = ?', [$sprache]);
|
||||
@@ -615,6 +616,10 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
$this->addJoin('campus.vw_student_lehrveranstaltung v', 'lehrveranstaltung_id');
|
||||
$this->addJoin('public.tbl_studiengang sg', $this->dbTable . '.studiengang_kz = sg.studiengang_kz');
|
||||
$this->db->where("v.lehreverzeichnis<>''");
|
||||
if(isset($lvid))
|
||||
{
|
||||
$this->db->where("v.lehrveranstaltung_id", $lvid);
|
||||
}
|
||||
|
||||
$this->addJoin('campus.tbl_lvgesamtnote gn', 'gn.lehrveranstaltung_id=v.lehrveranstaltung_id AND gn.student_uid=v.uid AND gn.studiensemester_kurzbz=v.studiensemester_kurzbz', 'LEFT');
|
||||
$this->addJoin('lehre.tbl_note gnn', 'gn.note=gnn.note', 'LEFT');
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<?php
|
||||
$includesArray = array(
|
||||
'title' => 'MyLv',
|
||||
'customJSModules' => ['public/js/apps/Cis/MyLv/Student.js']
|
||||
'customJSModules' => ['public/js/apps/Cis/MyLv/Student.js'],
|
||||
'customCSSs' => ['public/css/components/MyLv.css']
|
||||
);
|
||||
|
||||
$this->load->view('templates/CISVUE-Header', $includesArray);
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
.unavailable, .unavailable:hover{
|
||||
color: #565e647f !important;
|
||||
cursor: default;
|
||||
}
|
||||
@@ -7,4 +7,10 @@ export default {
|
||||
{ lehreinheit_id: lehreinheit_id }
|
||||
);
|
||||
},
|
||||
getLvInfo(studiensemester_kurzbz, lehrveranstaltung_id) {
|
||||
return this.$fhcApi.get(
|
||||
`/api/frontend/v1/Lehre/LV/${studiensemester_kurzbz}/${lehrveranstaltung_id}`
|
||||
, {}
|
||||
);
|
||||
},
|
||||
}
|
||||
@@ -36,7 +36,7 @@ export default {
|
||||
<small>{{semester}}.{{p.t('lehre/semester')}}</small>
|
||||
</h4>
|
||||
<div class="row">
|
||||
<div v-for="lv in lehrveranstaltungen" :key="lv.lehrveranstaltung_id" class="col-sm-4 col-md-3 mb-3">
|
||||
<div v-for="lv in lehrveranstaltungen" :key="lv.lehrveranstaltung_id" class="col-12 col-md-6 col-xl-4 col-xxl-3 mb-3">
|
||||
<mylv-semester-studiengang-lv v-bind="lv" class="text-center h-100"></mylv-semester-studiengang-lv>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -120,12 +120,12 @@ export default {
|
||||
<div class="card-body " :style="bodyStyle">
|
||||
<ul class="list-group border-top-0 border-bottom-0 rounded-0">
|
||||
<template v-if="menu">
|
||||
<li type="button" v-for="menuItem in menu" class="list-group-item border-0 ">
|
||||
<div class="d-flex flex-row">
|
||||
<li :type="menuItem.c4_link ? 'button' : null" v-for="menuItem in menu" class="list-group-item border-0 ">
|
||||
<div class="d-flex flex-row" >
|
||||
<div class="mx-4">
|
||||
<i :class="menuItem.c4_icon2 ? menuItem.c4_icon2 : 'fa-solid fa-pen-to-square'"></i>
|
||||
<i :class="[menuItem.c4_icon2 ? menuItem.c4_icon2 : 'fa-solid fa-pen-to-square', !menuItem.c4_link ? 'unavailable' : null ]"></i>
|
||||
</div>
|
||||
<a class="text-decoration-none" :class="{'link-secondary':!menuItem.c4_link, 'link-dark':menuItem.c4_link}" :target="menuItem.c4_target" :href="menuItem.c4_link ? menuItem.c4_link : null">
|
||||
<a class="text-decoration-none text-truncate" :class="{'link-dark':menuItem.c4_link, 'unavailable':!menuItem.c4_link}" :target="menuItem.c4_target" :href="menuItem.c4_link ? menuItem.c4_link : null">
|
||||
{{menuItem.name}}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -3,30 +3,18 @@
|
||||
const infos = {};
|
||||
|
||||
export default {
|
||||
props: {
|
||||
|
||||
lehrveranstaltung_id: Number,
|
||||
bezeichnung: String,
|
||||
studiengang_kuerzel: String,
|
||||
semester: Number,
|
||||
props:{
|
||||
studien_semester: String,
|
||||
orgform_kurzbz: String,
|
||||
sprache: String,
|
||||
ects: Number,
|
||||
incoming: Number,
|
||||
/*
|
||||
* NOTE(chris):
|
||||
* Hack to expose in "emits" declared events to $props which we use
|
||||
* in the v-bind directive to forward all events.
|
||||
* @see: https://github.com/vuejs/core/issues/3432
|
||||
*/
|
||||
onHideBsModal: Function,
|
||||
onHiddenBsModal: Function,
|
||||
onHidePreventedBsModal: Function,
|
||||
onShowBsModal: Function,
|
||||
onShownBsModal: Function
|
||||
lehrveranstaltung_id: Number,
|
||||
},
|
||||
data: () => ({
|
||||
bezeichnung: null,
|
||||
studiengang_kuerzel: null,
|
||||
semester: null,
|
||||
orgform_kurzbz: null,
|
||||
sprache: null,
|
||||
ects: null,
|
||||
incoming: null,
|
||||
result: true,
|
||||
info: null,
|
||||
}),
|
||||
@@ -61,10 +49,27 @@ export default {
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.$fhcApi.factory.lehre.getLvInfo(this.studien_semester, this.lehrveranstaltung_id)
|
||||
.then(
|
||||
res => res.data
|
||||
).then(data =>{
|
||||
Object.assign(this,
|
||||
{
|
||||
bezeichnung : data.bezeichnung,
|
||||
studiengang_kuerzel: data.studiengang_kuerzel,
|
||||
semester: data.semester,
|
||||
orgform_kurzbz: data.orgform_kurzbz,
|
||||
sprache: data.sprache,
|
||||
ects: data.ects,
|
||||
incoming: data.incoming ?? '-',
|
||||
});
|
||||
})
|
||||
|
||||
if (infos[this.lehrveranstaltung_id]) {
|
||||
this.info = infos[this.lehrveranstaltung_id];
|
||||
} else {
|
||||
axios.get(FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + '/components/Cis/Mylv/Info/' + this.studien_semester + '/' + this.lehrveranstaltung_id).then(res => {
|
||||
|
||||
this.info = infos[this.lehrveranstaltung_id] = res.data.retval || [];
|
||||
}).catch(() => this.info = {});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user