MyLv: Permissions & notFound fallback

This commit is contained in:
cgfhtw
2023-01-16 11:38:24 +01:00
parent 559e4d2bc0
commit 2e126692f2
4 changed files with 35 additions and 11 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ class MyLv extends Auth_Controller
public function __construct()
{
parent::__construct([
'index' => 'student/anrechnung_beantragen:r' // TODO(chris): permissions?
'index' => ['student/anrechnung_beantragen:r','user:r'] // TODO(chris): permissions?
]);
}
@@ -19,11 +19,11 @@ class Mylv extends Auth_Controller
public function __construct()
{
parent::__construct([
'Student' => 'student/anrechnung_beantragen:r', // TODO(chris): permissions?
'Studiensemester' => 'student/anrechnung_beantragen:r', // TODO(chris): permissions?
'Lvs' => 'student/anrechnung_beantragen:r', // TODO(chris): permissions?
'Info' => 'student/anrechnung_beantragen:r', // TODO(chris): permissions?
'Pruefungen' => 'student/anrechnung_beantragen:r' // TODO(chris): permissions?
'Student' => ['student/anrechnung_beantragen:r','user:r'], // TODO(chris): permissions?
'Studiensemester' => ['student/anrechnung_beantragen:r','user:r'], // TODO(chris): permissions?
'Lvs' => ['student/anrechnung_beantragen:r','user:r'], // TODO(chris): permissions?
'Info' => ['student/anrechnung_beantragen:r','user:r'], // TODO(chris): permissions?
'Pruefungen' => ['student/anrechnung_beantragen:r','user:r'] // TODO(chris): permissions?
]);
}
+9 -5
View File
@@ -25,14 +25,14 @@ export default {
},
current() {
if (this.currentSemester === null)
return { semester: null, lvs: null };
return { semester: null, lvs: [] };
if (this.lvs[this.currentSemester] === undefined) {
this.lvs[this.currentSemester] = {
semester: this.currentSemester,
lvs: null
};
axios.get(FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + '/components/Cis/Mylv/Lvs/' + this.currentSemester).then(res => {
this.lvs[this.currentSemester].lvs = res.data.retval;
this.lvs[this.currentSemester].lvs = res.data.retval || [];
this.firstLoad = false;
});
}
@@ -81,7 +81,7 @@ export default {
},
created() {
axios.get(FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + '/components/Cis/Mylv/Studiensemester').then(res => {
this.studiensemester = res.data.retval;
this.studiensemester = res.data.retval || [];
const hash = location.hash.substring(1);
if (hash && this.studiensemester.filter(s => s.studiensemester_kurzbz == hash).length)
this.currentSemester = hash;
@@ -89,8 +89,9 @@ export default {
this.currentSemester = this.nearestSem;
});
},
template: `<div class="mylv-student" v-if="ready">
<div class="row justify-content-center mb-3">
template: `
<div class="mylv-student" v-if="ready">
<div v-if="currentSemester" class="row justify-content-center mb-3">
<div class="col-auto d-none">
<label class="col-form-label">{{p.t('lehre/studiensemester')}}</label>
</div>
@@ -108,6 +109,9 @@ export default {
</div>
</div>
</div>
<div class="alert alert-danger" role="alert" v-else>
{{p.t('lehre/noLvFound')}}
</div>
<mylv-semester v-bind="current"/>
</div>
<div class="mylv-student text-center" v-else>
+20
View File
@@ -17238,6 +17238,26 @@ array(
)
)
),
array(
'app' => 'core',
'category' => 'lehre',
'phrase' => 'noLvFound',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Keine Lehrveranstaltungen gefunden",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "No LVs found",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'global',