diff --git a/frontend/src/App.vue b/frontend/src/App.vue
index 36efbff..9220cf1 100644
--- a/frontend/src/App.vue
+++ b/frontend/src/App.vue
@@ -33,9 +33,11 @@ window.addEventListener("resize", updateMobile);
-
+
-
+
+
+
diff --git a/frontend/src/api/createFeed.ts b/frontend/src/api/createFeed.ts
index dd0c0ee..00a3a04 100644
--- a/frontend/src/api/createFeed.ts
+++ b/frontend/src/api/createFeed.ts
@@ -19,6 +19,23 @@ export async function createIndividualFeed(modules: Module[]): Promise {
return token;
}
+interface FeedResponse {
+ modules: FeedModule[];
+ collectionId: string;
+ collectionName: string;
+ id: string;
+ retrieved: string;
+ updated: string;
+}
+
+interface FeedModule {
+ course: string;
+ name: string;
+ reminder: boolean;
+ userDefinedName: string;
+ uuid: string;
+}
+
export async function saveIndividualFeed(
token: string,
modules: Module[],
@@ -30,11 +47,14 @@ export async function saveIndividualFeed(
},
body: '{"modules":' + JSON.stringify(modules) + "}",
})
- .then((response) => {
- return response.json();
+ .then(async (response) => {
+ // parse response.json to FeedResponse
+ const feedResponse: FeedResponse = await response.json();
+ return feedResponse;
})
- .then((response) => {
- token = response;
+ .then((response: FeedResponse) => {
+ console.debug("response", response);
+ token = response.id;
});
return token;
}
diff --git a/frontend/src/components/RenameModules.vue b/frontend/src/components/RenameModules.vue
index e5da3fb..e6343b9 100644
--- a/frontend/src/components/RenameModules.vue
+++ b/frontend/src/components/RenameModules.vue
@@ -3,21 +3,28 @@ import moduleStore from "../store/moduleStore.ts";
import { createIndividualFeed } from "../api/createFeed.ts";
import router from "../router";
import tokenStore from "../store/tokenStore.ts";
-import { Ref, computed, inject, ref } from "vue";
+import { Ref, computed, inject, ref, onMounted } from "vue";
import ModuleTemplateDialog from "./ModuleTemplateDialog.vue";
import { onlyWhitespace } from "../helpers/strings.ts";
import { useI18n } from "vue-i18n";
+import { Module } from "@/model/module.ts";
const { t } = useI18n({ useScope: "global" });
const store = moduleStore();
-const tableData = ref(
- store.getAllModules().map((module) => {
- return {
- Course: module.course,
- Module: module,
- };
- }),
+const tableData: Ref<{ Course: string; Module: Module }[]> = ref([
+ { Course: "", Module: {} as Module },
+]);
+
+onMounted(
+ () =>
+ (tableData.value = store.getAllModules().map((module) => {
+ return {
+ Course: module.course,
+ Module: module,
+ };
+ })),
);
+
const mobilePage = inject("mobilePage") as Ref;
const columns = computed(() => [
@@ -70,11 +77,11 @@ async function finalStep() {
diff --git a/frontend/src/view/AdditionalModules.vue b/frontend/src/view/AdditionalModules.vue
index 93bb5fb..71a26a7 100644
--- a/frontend/src/view/AdditionalModules.vue
+++ b/frontend/src/view/AdditionalModules.vue
@@ -1,12 +1,9 @@