diff --git a/frontend/src/components/messstelle/MessstelleForm.vue b/frontend/src/components/messstelle/MessstelleForm.vue index 655cc3f..8c8537d 100644 --- a/frontend/src/components/messstelle/MessstelleForm.vue +++ b/frontend/src/components/messstelle/MessstelleForm.vue @@ -71,7 +71,9 @@ md="4" > @@ -190,6 +192,7 @@ import { computed, ComputedRef, ref, Ref } from "vue"; import MessstelleEditDTO from "@/domain/dto/messstelle/MessstelleEditDTO"; import LhmTextField from "@/components/common/LhmTextField.vue"; import _ from "lodash"; +import { messstelleStatusText } from "@/domain/enums/MessstelleStatus"; /* eslint-enable no-unused-vars */ diff --git a/frontend/src/components/messstelle/UpdateMessstelleDialogForm.vue b/frontend/src/components/messstelle/UpdateMessstelleDialogForm.vue index ff15f81..0ac5748 100644 --- a/frontend/src/components/messstelle/UpdateMessstelleDialogForm.vue +++ b/frontend/src/components/messstelle/UpdateMessstelleDialogForm.vue @@ -45,6 +45,7 @@ Speichern @@ -63,12 +64,13 @@ import MessstelleEditDTO from "@/domain/dto/messstelle/MessstelleEditDTO"; import MessstelleForm from "@/components/messstelle/MessstelleForm.vue"; import MessquerschnittForm from "@/components/messstelle/MessquerschnittForm.vue"; -import { onMounted, ref, Ref } from "vue"; +import { computed, ComputedRef, onMounted, ref, Ref } from "vue"; import MessstelleService from "@/api/service/MessstelleService"; import { ApiError, Levels } from "@/api/error"; import { useStore } from "@/util/useStore"; import { useRoute } from "vue-router/composables"; import DefaultObjectCreator from "@/util/DefaultObjectCreator"; +import { MessstelleStatus } from "@/domain/enums/MessstelleStatus"; const SHEETHEIGHT: Ref = ref("600px"); const activeTab: Ref = ref(0); @@ -84,6 +86,10 @@ const emits = defineEmits<{ (e: "saved"): void; }>(); +const isMessstelleInPlanung: ComputedRef = computed(() => { + return messstelle.value.status === MessstelleStatus.IN_PLANUNG; +}); + onMounted(() => { loadMessstelle(); }); diff --git a/frontend/src/domain/dto/messstelle/MessstelleEditDTO.ts b/frontend/src/domain/dto/messstelle/MessstelleEditDTO.ts index a0e548f..91b1805 100644 --- a/frontend/src/domain/dto/messstelle/MessstelleEditDTO.ts +++ b/frontend/src/domain/dto/messstelle/MessstelleEditDTO.ts @@ -1,10 +1,11 @@ import BaseEntity from "@/domain/BaseEntity"; import MessquerschnittEditDTO from "@/domain/dto/messstelle/MessquerschnittEditDTO"; +import { MessstelleStatus } from "@/domain/enums/MessstelleStatus"; export default interface MessstelleEditDTO extends BaseEntity { mstId: string; name: string; - status: string; + status: MessstelleStatus; stadtbezirk: string; stadtbezirkNummer: string; bemerkung: string; diff --git a/frontend/src/domain/dto/messstelle/MessstelleOverviewDTO.ts b/frontend/src/domain/dto/messstelle/MessstelleOverviewDTO.ts index adda048..4a8d3cb 100644 --- a/frontend/src/domain/dto/messstelle/MessstelleOverviewDTO.ts +++ b/frontend/src/domain/dto/messstelle/MessstelleOverviewDTO.ts @@ -1,8 +1,10 @@ import BaseEntity from "@/domain/BaseEntity"; +import { MessstelleStatus } from "@/domain/enums/MessstelleStatus"; export default interface MessstelleOverviewDTO extends BaseEntity { mstId: string; name: string; + status: MessstelleStatus; geprueft: boolean; sichtbarDatenportal: boolean; } diff --git a/frontend/src/domain/enums/MessstelleStatus.ts b/frontend/src/domain/enums/MessstelleStatus.ts new file mode 100644 index 0000000..24e744f --- /dev/null +++ b/frontend/src/domain/enums/MessstelleStatus.ts @@ -0,0 +1,34 @@ +export const enum MessstelleStatus { + /** + * In Planung + */ + IN_PLANUNG = "IN_PLANUNG", + + /** + * In Bestand + */ + IN_BESTAND = "IN_BESTAND", + + /** + * AUSSER_BETRIEB + */ + AUSSER_BETRIEB = "AUSSER_BETRIEB", + + /** + * ABGEBAUT + */ + ABGEBAUT = "ABGEBAUT", + + /** + * UNBEKANNT + */ + UNBEKANNT = "UNBEKANNT", +} + +export const messstelleStatusText = new Map([ + [MessstelleStatus.IN_PLANUNG, "In Planung"], + [MessstelleStatus.IN_BESTAND, "In Bestand"], + [MessstelleStatus.AUSSER_BETRIEB, "Außer Betrieb"], + [MessstelleStatus.ABGEBAUT, "Abgebaut"], + [MessstelleStatus.UNBEKANNT, "unbekannt"], +]); diff --git a/frontend/src/util/DefaultObjectCreator.ts b/frontend/src/util/DefaultObjectCreator.ts index d82dc42..049d60a 100644 --- a/frontend/src/util/DefaultObjectCreator.ts +++ b/frontend/src/util/DefaultObjectCreator.ts @@ -10,6 +10,7 @@ import DienstleisterDTO from "@/domain/dto/DienstleisterDTO"; import EmailAddressDTO from "@/domain/dto/EmailAddressDTO"; import MessstelleEditDTO from "@/domain/dto/messstelle/MessstelleEditDTO"; import MessstelleInfoDTO from "@/domain/dto/messstelle/MessstelleInfoDTO"; +import { MessstelleStatus } from "@/domain/enums/MessstelleStatus"; export default class DefaultObjectCreator { private static readonly MUNICH_CENTER_LATITUDE: number = 48.137227; @@ -56,6 +57,7 @@ export default class DefaultObjectCreator { public static createDefaultMessstelleEditDTO(): MessstelleEditDTO { const messstelle: MessstelleEditDTO = {} as MessstelleEditDTO; messstelle.sichtbarDatenportal = false; + messstelle.status = MessstelleStatus.IN_PLANUNG; messstelle.customSuchwoerter = []; messstelle.messquerschnitte = []; return messstelle; diff --git a/frontend/src/views/ErhebungsstellenOverView.vue b/frontend/src/views/ErhebungsstellenOverView.vue index ae2d65a..8a85df8 100644 --- a/frontend/src/views/ErhebungsstellenOverView.vue +++ b/frontend/src/views/ErhebungsstellenOverView.vue @@ -59,10 +59,16 @@ focusable > + > = ref( const correctionZaehlungen: Ref> = ref( [] as Array ); -const neueMessstellen: Ref> = ref( +const geplanteMessstellen: Ref> = ref( + [] as Array +); +const neuUmgesetztMessstellen: Ref> = ref( [] as Array ); const nichtSichtbareMessstellen: Ref> = ref( @@ -145,8 +155,11 @@ const getAccomplishedHeader: ComputedRef = computed(() => { const getCorrectionHeader: ComputedRef = computed(() => { return `Fehlerhafte Zählungen: ${correctionZaehlungen.value.length}`; }); -const neueMessstellenHeader: ComputedRef = computed(() => { - return `Neue Messstellen: ${neueMessstellen.value.length}`; +const geplanteMessstellenHeader: ComputedRef = computed(() => { + return `Geplante Messstellen: ${geplanteMessstellen.value.length}`; +}); +const neuUmgesetzteMessstellenHeader: ComputedRef = computed(() => { + return `Neu umgesetzte Messstellen: ${neuUmgesetztMessstellen.value.length}`; }); const nichtSichtbareMessstellenHeader: ComputedRef = computed(() => { return `Nicht sichtbare Messstellen: ${nichtSichtbareMessstellen.value.length}`; @@ -191,8 +204,11 @@ function loadOpenMessstellen(): void { MessstelleService.getAllMessstellenForOverview() .then((messstellen: Array) => { messstellen.forEach((messstelle: MessstelleOverviewDTO) => { - if (!messstelle.geprueft) { - neueMessstellen.value.push(messstelle); + console.error(messstelle.status); + if (messstelle.status === MessstelleStatus.IN_PLANUNG) { + geplanteMessstellen.value.push(messstelle); + } else if (!messstelle.geprueft) { + neuUmgesetztMessstellen.value.push(messstelle); } else if (!messstelle.sichtbarDatenportal) { nichtSichtbareMessstellen.value.push(messstelle); } @@ -211,7 +227,7 @@ function sortDataArrays(): void { accomplishedZaehlungen.value ); correctionZaehlungen.value = sortByDatumDesc(correctionZaehlungen.value); - neueMessstellen.value = sortByMstId(neueMessstellen.value); + geplanteMessstellen.value = sortByMstId(geplanteMessstellen.value); nichtSichtbareMessstellen.value = sortByMstId( nichtSichtbareMessstellen.value );