From 1bd64173334202ed6bb13b9d3973d475164ef9ff Mon Sep 17 00:00:00 2001 From: Moustafa Banqusli <banqusli@infai.org> Date: Thu, 21 Oct 2021 18:14:33 +0200 Subject: [PATCH] #373 pass data to observations-diagrams --- .../sharedFilter/FilterHistoryDiagrams.ts | 50 ++++++++++++++- .../sharedFilter/FilterHistoryDiagrams.vue | 63 ++++++++----------- 2 files changed, 74 insertions(+), 39 deletions(-) diff --git a/app/src/components/shared/sharedFilter/FilterHistoryDiagrams.ts b/app/src/components/shared/sharedFilter/FilterHistoryDiagrams.ts index bfce3c988..c83a469c5 100644 --- a/app/src/components/shared/sharedFilter/FilterHistoryDiagrams.ts +++ b/app/src/components/shared/sharedFilter/FilterHistoryDiagrams.ts @@ -3,11 +3,13 @@ import {FilterCriteriaType} from "@/types/filter"; import VegaLite from "vue-vega"; import {SelectedFilterHistoryDiagram, DiagramData} from "@/types"; import {GenerateDashboardDiagramService} from "@/helper/generateDashboardDiagram.service"; -import {getCreatedInspection, getVisitedTransect} from "@/diagramsSchema/Diagrams.schema"; +import FilterHistoryDiagramCard from "@/components/shared/sharedFilter/FilterHistoryDiagramCard.vue"; +import {getCreatedInspection, getVisitedTransect, getCountSpecies, getCountSpeciesBreakdown, getObservationIndex} from "@/diagramsSchema/Diagrams.schema"; @Component({ components: { VegaLite, + FilterHistoryDiagramCard, }, }) @@ -19,6 +21,8 @@ export default class FilterHistoryDiagrams extends Vue { return {}; }, }) private selectedFilterHistoryDiagram!: SelectedFilterHistoryDiagram; + private findingType = this.filterCriteriaType === FilterCriteriaType.FINDING; + private inspectionType = this.filterCriteriaType === FilterCriteriaType.INSPECTION; private isLoading = false; private showFailAlert = false; private diagramData: DiagramData[] = []; @@ -31,7 +35,7 @@ export default class FilterHistoryDiagrams extends Vue { private mounted() { if (this.filterCriteriaType !== FilterCriteriaType.GENERAL) { this.isLoading = true; - this.getFilterHistoryDiagramData(); + this.getFilterHistoryDiagramData().then(); } } @@ -63,6 +67,48 @@ export default class FilterHistoryDiagrams extends Vue { return null; } + /** + * will get observation-summarized-species count schema for diagram. + * @private + */ + private get countSpecies(): {} | null { + if (this.diagramData && this.diagramData.length !== 0) { + const find = this.diagramData.find((d) => d.diagramType === "CountSpecies"); + if (find) { + return getCountSpecies(find.data, this.$i18n); + } + } + return null; + } + + /** + * will get observation-separated-species count schema for diagram. + * @private + */ + private get countSpeciesBreakdown(): {} | null { + if (this.diagramData && this.diagramData.length !== 0) { + const find = this.diagramData.find((d) => d.diagramType === "CountSpeciesBreakdown"); + if (find) { + return getCountSpeciesBreakdown(find.data, this.$i18n); + } + } + return null; + } + + /** + * will get index of observations schema for diagram. + * @private + */ + private get observationIndex(): {} | null { + if (this.diagramData && this.diagramData.length !== 0) { + const find = this.diagramData.find((d) => d.diagramType === "ObservationIndex"); + if (find) { + return getObservationIndex(find.data, this.$i18n); + } + } + return null; + } + /** handle requested-data */ private async getFilterHistoryDiagramData() { try { diff --git a/app/src/components/shared/sharedFilter/FilterHistoryDiagrams.vue b/app/src/components/shared/sharedFilter/FilterHistoryDiagrams.vue index 8e0295acb..07f785512 100644 --- a/app/src/components/shared/sharedFilter/FilterHistoryDiagrams.vue +++ b/app/src/components/shared/sharedFilter/FilterHistoryDiagrams.vue @@ -7,46 +7,35 @@ </template> </v-row> <v-row v-else> - <v-row> - <v-col cols="12"> - <v-card> - <v-card-title> - {{ $t("sharedTable.numberOfInspections") }} - </v-card-title> + <v-col cols="12" v-if="inspectionType"> + <FilterHistoryDiagramCard data-testid="ShowInspectionCount" + :title="$t('sharedTable.numberOfInspections')" + :showFailAlert="showFailAlert" + :errorMessage="errorMessage" + :spec="inspectionCount"/> - <v-divider></v-divider> + <FilterHistoryDiagramCard data-testid="ShowVisitedTransect" + :title="$t('sharedTable.numberOfTransectsCommitted')" + :showFailAlert="showFailAlert" + :errorMessage="errorMessage" + :spec="transectCount"/> + </v-col> + <v-col cols="12" v-if="findingType"> + <!-- <FilterHistoryDiagramCard :title="$t('sharedTable.speciesSeparatedTitle')"--> + <!-- :showFailAlert="showFailAlert"--> + <!-- :errorMessage="errorMessage"--> + <!-- :spec="countSpeciesBreakdown"/>--> - <v-card-text v-if="inspectionCount" data-testid="ShowInspectionCount"> - <vega-lite :spec="inspectionCount"/> - </v-card-text> - </v-card> - </v-col> - <v-container class="justify-center" fluid> - <v-alert v-show="showFailAlert" dismissible transition="fade-transition" type="error"> - {{ errorMessage }} - </v-alert> - </v-container> - </v-row> - <v-row> - <v-col cols="12"> - <v-card> - <v-card-title> - {{ $t("sharedTable.numberOfTransectsCommitted") }} - </v-card-title> + <FilterHistoryDiagramCard :title="$t('sharedTable.speciesSummarizedTitle')" + :showFailAlert="showFailAlert" + :errorMessage="errorMessage" + :spec="countSpecies"/> - <v-divider></v-divider> - - <v-card-text v-if="transectCount" data-testid="ShowVisitedTransect"> - <vega-lite :spec="transectCount"/> - </v-card-text> - </v-card> - </v-col> - <v-container class="justify-center" fluid> - <v-alert v-show="showFailAlert" dismissible transition="fade-transition" type="error"> - {{ errorMessage }} - </v-alert> - </v-container> - </v-row> + <FilterHistoryDiagramCard :title="$t('sharedTable.speciesCombinedTitle')" + :showFailAlert="showFailAlert" + :errorMessage="errorMessage" + :spec="observationIndex"/> + </v-col> </v-row> </template> -- GitLab