From 7ce195f5182f2914998383e975b1a299ce0ec3cf Mon Sep 17 00:00:00 2001 From: Christian Cueni Date: Mon, 24 Oct 2022 13:31:15 +0200 Subject: [PATCH] Add mobile selection --- client/src/components/ui/ItDropdownSelect.vue | 10 ++- .../pages/competence/CompetenceIndexPage.vue | 9 ++- .../competence/PerformanceCriteriaPage.vue | 75 +++++++++++++------ .../pages/learningPath/LearningPathPage.vue | 2 +- .../src/pages/mediaLibrary/MLParentPage.vue | 9 ++- 5 files changed, 73 insertions(+), 32 deletions(-) diff --git a/client/src/components/ui/ItDropdownSelect.vue b/client/src/components/ui/ItDropdownSelect.vue index d8fd6f33..7bd555de 100644 --- a/client/src/components/ui/ItDropdownSelect.vue +++ b/client/src/components/ui/ItDropdownSelect.vue @@ -5,6 +5,7 @@ import { computed } from "vue"; interface DropdownSelectable { id: number | string; name: string; + iconName?: string; } // https://stackoverflow.com/questions/64775876/vue-3-pass-reactive-object-to-component-with-two-way-binding @@ -40,8 +41,11 @@ const dropdownSelected = computed({
+ + + {{ dropdownSelected.name }} + + + {
-
+

«Das muss ich nochmals anschauen»

diff --git a/client/src/pages/competence/PerformanceCriteriaPage.vue b/client/src/pages/competence/PerformanceCriteriaPage.vue index f01c80be..e1462871 100644 --- a/client/src/pages/competence/PerformanceCriteriaPage.vue +++ b/client/src/pages/competence/PerformanceCriteriaPage.vue @@ -9,15 +9,44 @@ import {computed, ref} from "vue"; log.debug("CompetencesMainView created"); -const competenceStore = useCompetenceStore(); +interface MenuItem { + id: CourseCompletionStatus; + name: string; + iconName: string; +} -const activeState: Ref = ref("fail"); +const competenceStore = useCompetenceStore(); const shownCriteria = computed(() => { return competenceStore.flatPerformanceCriteria.filter((criteria) => { - return criteria.completion_status === activeState.value; + return criteria.completion_status === activeMenuItem.value.id; }); }); + +const mobileMenuItems: MenuItem[] = [ + { + id: "fail", + name: "«Das muss ich nochmals anschauen»", + iconName: "it-icon-smiley-thinking", + }, + { + id: "success", + name: "«Ja, ich kann das»", + iconName: "it-icon-smiley-happy", + }, + { + id: "unknown", + name: "Nicht eingeschätzt", + iconName: "it-icon-smiley-neutral", + }, +]; + +const activeMenuItem: Ref = ref(mobileMenuItems[0]); + +function updateActiveState(status: CourseCompletionStatus) { + activeMenuItem.value = + mobileMenuItems.find((item) => status === item.id) || mobileMenuItems[0]; +}