+
@@ -38,11 +38,11 @@
import {computed, ref} from "vue";
import ModuleTeaser from "@/components/modules/ModuleTeaser.vue";
import gql from "graphql-tag";
- import {useQuery} from "@vue/apollo-composable";
-
+ import {useQuery, useMutation} from "@vue/apollo-composable";
const props = defineProps<{
modules: [];
+ me: any;
}>();
@@ -59,21 +59,13 @@
name: '---',
id: null,
};
+ let defaultCategory = loadDefaultCategory(props.me);
- const selectedCategory = ref(nullCategory);
-
+ let selectedCategory = ref(defaultCategory);
const firstLevelCategories = computed(() => {
return [nullCategory, ...moduleCategoriesResult.value?.moduleCategories || []];
});
- const {result: moduleCategoryTypesResult} = useQuery(gql`
- query ModuleCategoryTypesQuery {
- moduleCategoryTypes {
- name
- id
- }
- }
- `);
const nullLernfeld = {
name: '---',
@@ -82,6 +74,14 @@
const selectedLernfeld = ref(nullLernfeld);
+ const {result: moduleCategoryTypesResult} = useQuery(gql`
+ query ModuleCategoryTypesQuery {
+ moduleCategoryTypes {
+ name
+ id
+ }
+ }
+ `);
const lernfeldOptions = computed(() => {
return [nullLernfeld, ...moduleCategoryTypesResult.value?.moduleCategoryTypes || []];
@@ -94,6 +94,10 @@
// "$flavor.textInstrumentFilterShowAll"
+ function loadDefaultCategory(me) {
+ return me?.lastModuleCategory || nullCategory;
+ }
+
function filterModules() {
let filteredModules = props.modules;
@@ -114,12 +118,36 @@
return module.categoryType.id == selectedLernfeld.value.id;
});
}
-
+ updateLastModuleCategory(selectedCategory.value);
return filteredModules;
}
+
+
+ function updateLastModuleCategory(moduleCategory) {
+ console.log(moduleCategory);
+
+ const {mutate: updateLastModuleCategory} = useMutation(gql`
+ mutation ($input: UpdateLastModuleCategoryInput!){updateLastModuleCategory(input: $input) {
+ clientMutationId
+ user {
+ username
+ lastModuleCategory {
+ name
+ id
+ }
+ }
+ }}`);
+
+ updateLastModuleCategory({
+ input: {
+ id: moduleCategory.id,
+ },
+ });
+
+ }