Skip to content
Snippets Groups Projects
Verified Commit ebe4512c authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Use hash of person overview instead of own URL for statistics

parent 4b7c7fca
No related branches found
No related tags found
1 merge request!470Use hash of person overview instead of own URL for statistics
Pipeline #195135 failed
...@@ -65,11 +65,11 @@ ...@@ -65,11 +65,11 @@
i18n-key="alsijil.coursebook.statistics.person_view_details" i18n-key="alsijil.coursebook.statistics.person_view_details"
icon-text="mdi-open-in-new" icon-text="mdi-open-in-new"
:to="{ :to="{
name: 'alsijil.coursebook_statistics', name: 'core.personById',
params: { params: {
personId: item.person.id, personId: item.person.id,
mode: MODE.PARTICIPATIONS,
}, },
hash: '#' + MODE.PARTICIPATIONS,
}" }"
/> />
</template> </template>
......
...@@ -7,18 +7,7 @@ ...@@ -7,18 +7,7 @@
<v-card-title v-else-if="compact"> <v-card-title v-else-if="compact">
{{ $t("alsijil.coursebook.statistics.person_compact.title") }} {{ $t("alsijil.coursebook.statistics.person_compact.title") }}
<v-spacer /> <v-spacer />
<base-button <slot name="header" />
:icon="true"
icon-text="mdi-open-in-new"
i18n-key=""
:to="{
name: 'alsijil.coursebook_statistics',
params: {
personId: person.id,
mode: MODE.PARTICIPATIONS,
},
}"
/>
</v-card-title> </v-card-title>
<v-card-title v-else> <v-card-title v-else>
{{ $t("alsijil.coursebook.statistics.title_plural") }} {{ $t("alsijil.coursebook.statistics.title_plural") }}
...@@ -59,7 +48,6 @@ ...@@ -59,7 +48,6 @@
<script> <script>
import personOverviewCardMixin from "aleksis.core/mixins/personOverviewCardMixin.js"; import personOverviewCardMixin from "aleksis.core/mixins/personOverviewCardMixin.js";
import BaseButton from "aleksis.core/components/generic/buttons/BaseButton.vue";
import MessageBox from "aleksis.core/components/generic/MessageBox.vue"; import MessageBox from "aleksis.core/components/generic/MessageBox.vue";
import StatisticsAbsencesCard from "./StatisticsAbsencesCard.vue"; import StatisticsAbsencesCard from "./StatisticsAbsencesCard.vue";
import StatisticsTardinessCard from "./StatisticsTardinessCard.vue"; import StatisticsTardinessCard from "./StatisticsTardinessCard.vue";
...@@ -73,7 +61,6 @@ export default { ...@@ -73,7 +61,6 @@ export default {
name: "StatisticsForPersonCard", name: "StatisticsForPersonCard",
mixins: [personOverviewCardMixin], mixins: [personOverviewCardMixin],
components: { components: {
BaseButton,
MessageBox, MessageBox,
StatisticsAbsencesCard, StatisticsAbsencesCard,
StatisticsTardinessCard, StatisticsTardinessCard,
...@@ -111,6 +98,9 @@ export default { ...@@ -111,6 +98,9 @@ export default {
MODE() { MODE() {
return MODE; return MODE;
}, },
mode() {
return this.$hash;
},
gridTemplateAreas() { gridTemplateAreas() {
return this.compact return this.compact
? `"absences extra_marks" "tardinesses tardinesses"` ? `"absences extra_marks" "tardinesses tardinesses"`
......
<template> <template>
<fullscreen-dialog-page <fullscreen-dialog-page :fallback-url="{ name: 'core.personById', props: { id: personId } }"
:fallback-url="{ name: 'core.personById', props: { id: personId } }" >
> <template #title>
{{
$t("alsijil.coursebook.statistics.person_page.title", {
fullName: personName?.fullName || "???",
})
}}
</template>
<div class="d-flex" style="gap: 4em"> <div class="d-flex" style="gap: 4em">
<div class="flex-grow-1" style="max-width: 100%"> <div class="flex-grow-1" style="max-width: 100%">
<!-- documentations for person list --> <!-- documentations for person list -->
...@@ -301,11 +307,6 @@ export default { ...@@ -301,11 +307,6 @@ export default {
type: [Number, String], type: [Number, String],
required: true, required: true,
}, },
mode: {
type: String,
required: false,
default: MODE.PARTICIPATIONS,
},
}, },
apollo: { apollo: {
personName: { personName: {
...@@ -315,13 +316,6 @@ export default { ...@@ -315,13 +316,6 @@ export default {
person: this.personId, person: this.personId,
}; };
}, },
result({ data }) {
this.$setToolBarTitle(
this.$t("alsijil.coursebook.statistics.person_page.title", {
fullName: data.personName.fullName || "???",
}),
);
},
}, },
absenceReasons: { absenceReasons: {
query: absenceReasons, query: absenceReasons,
...@@ -346,6 +340,9 @@ export default { ...@@ -346,6 +340,9 @@ export default {
MODE() { MODE() {
return MODE; return MODE;
}, },
mode() {
return this.$hash;
},
}, },
methods: { methods: {
gqlQuery() { gqlQuery() {
...@@ -360,12 +357,9 @@ export default { ...@@ -360,12 +357,9 @@ export default {
this.selected = []; this.selected = [];
this.$router.push({ this.$router.replace({
name: "alsijil.coursebook_statistics", ...this.$route,
params: { hash: "#" + mode,
personId: this.personId,
mode: mode,
},
}); });
}, },
showEdit(item) { showEdit(item) {
......
<template>
<statistics-for-person-card v-bind="{ ...$attrs, ...$props }">
<template #header>
<base-button
:icon="true"
icon-text="mdi-open-in-new"
i18n-key=""
:to="{
name: $route.name,
params: $route.params,
hash: '#' + MODE.PARTICIPATIONS,
}"
/>
<statistics-for-person-page
v-if="Object.values(MODE).includes(mode)"
:person-id="person.id"
/>
</template>
</statistics-for-person-card>
</template>
<script>
import personOverviewCardMixin from "aleksis.core/mixins/personOverviewCardMixin.js";
import BaseButton from "aleksis.core/components/generic/buttons/BaseButton.vue";
import StatisticsForPersonPage from "./StatisticsForPersonPage.vue";
import StatisticsForPersonCard from "./StatisticsForPersonCard.vue";
import { MODE } from "./modes";
export default {
name: "StatisticsForPersonWidget",
mixins: [personOverviewCardMixin],
components: {
BaseButton,
StatisticsForPersonPage,
StatisticsForPersonCard,
},
computed: {
MODE() {
return MODE;
},
mode() {
return this.$hash;
},
},
};
</script>
export const MODE = { export const MODE = {
PARTICIPATIONS: "participations", PARTICIPATIONS: "alsijil.participations",
PERSONAL_NOTES: "personal_notes", PERSONAL_NOTES: "alsijil.personal_notes",
}; };
import { DateTime } from "luxon"; import { DateTime } from "luxon";
import { MODE } from "./components/coursebook/statistics/modes";
export const collectionItems = { export const collectionItems = {
coreGroupActions: [ coreGroupActions: [
...@@ -32,7 +31,7 @@ export const collectionItems = { ...@@ -32,7 +31,7 @@ export const collectionItems = {
key: "core-person-widgets", key: "core-person-widgets",
component: () => component: () =>
import( import(
"./components/coursebook/statistics/StatisticsForPersonCard.vue" "./components/coursebook/statistics/StatisticsForPersonWidget.vue"
), ),
shouldDisplay: () => true, shouldDisplay: () => true,
colProps: { colProps: {
...@@ -113,21 +112,5 @@ export default { ...@@ -113,21 +112,5 @@ export default {
permission: "alsijil.view_extramarks_rule", permission: "alsijil.view_extramarks_rule",
}, },
}, },
{
path: `statistics/:personId/:mode(${Object.values(MODE).join("|")})`,
component: () =>
import(
"./components/coursebook/statistics/StatisticsForPersonPage.vue"
),
name: "alsijil.coursebook_statistics",
props: true,
meta: {
inMenu: false,
titleKey: "alsijil.coursebook.statistics.person_compact.title",
toolbarTitle: "alsijil.coursebook.statistics.person_compact.title",
// TODO: Add permission & change it here.
permission: "alsijil.view_documentations_menu_rule",
},
},
], ],
}; };
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment