Fix user session list displaying sessions in categories - refs BT#21745

pull/5551/head
Angel Fernando Quiroz Campos 1 year ago
parent 603ca76966
commit 2f351d192e
  1. 9
      assets/vue/components/session/SessionCategoryListWrapper.vue
  2. 2
      assets/vue/components/session/SessionCategoryView.vue
  3. 24
      assets/vue/views/user/sessions/session.js

@ -1,6 +1,5 @@
<script setup> <script setup>
import SessionListCategoryWrapper from "../../components/session/SessionListCategoryWrapper" import SessionListCategoryWrapper from "../../components/session/SessionListCategoryWrapper"
import { toRefs } from "vue"
import BaseIcon from "../basecomponents/BaseIcon.vue" import BaseIcon from "../basecomponents/BaseIcon.vue"
const props = defineProps({ const props = defineProps({
@ -9,16 +8,12 @@ const props = defineProps({
required: true, required: true,
}, },
categoryWithSessions: { categoryWithSessions: {
type: Array, type: Map,
required: true, required: true,
}, },
}) })
const { categoryWithSessions } = toRefs(props) const getSessionsFromCategory = (category) => props.categoryWithSessions.get(category["@id"]).sessions
function getSessionsFromCategory(category) {
return categoryWithSessions.value[category._id]["sessions"]
}
</script> </script>
<template> <template>

@ -20,7 +20,7 @@ defineProps({
required: true, required: true,
}, },
categoriesWithSessions: { categoriesWithSessions: {
type: Array, type: Map,
required: true, required: true,
}, },
}) })

@ -32,17 +32,27 @@ export function useSession(type) {
return categoryList return categoryList
} }
/**
* @param {Array<object>} sessions
* @returns {Map<string, { sessions }>}
*/
function getCategoriesWithSessions(sessions) { function getCategoriesWithSessions(sessions) {
let categoriesIn = [] let categoriesIn = new Map()
sessions.forEach(function (session) { sessions.forEach(function (session) {
if (!isEmpty(session.category)) { if (isEmpty(session.category)) {
if (categoriesIn[session.category["@id"]] === undefined) { return
categoriesIn[session.category["@id"]] = [] }
categoriesIn[session.category["@id"]]["sessions"] = []
} let sessionsInCategory = []
categoriesIn[session.category["@id"]]["sessions"].push(session)
if (categoriesIn.has(session.category["@id"])) {
sessionsInCategory = categoriesIn.get(session.category["@id"]).sessions
} }
sessionsInCategory.push(session)
categoriesIn.set(session.category["@id"], { sessions: sessionsInCategory })
}) })
return categoriesIn return categoriesIn

Loading…
Cancel
Save