Move web ui code in its own directory
[e-mobility-charging-stations-simulator.git] / ui / web / src / components / charging-stations / CSData.vue
CommitLineData
32de5a57 1<template>
5a010bf0 2 <tr v-for="(connector, index) in getConnectors()" class="cs-table__row">
32de5a57
LM
3 <CSConnector
4 :hash-id="getHashId()"
5 :connector="connector"
6 :connector-id="index + 1"
5a010bf0
JB
7 :transaction-id="connector.transactionId"
8 :id-tag="props.idTag"
32de5a57
LM
9 />
10 <td class="cs-table__name-col">{{ getId() }}</td>
452a82ca 11 <td class="cs-table__started-col">{{ getStarted() }}</td>
5e3cb728 12 <td class="cs-table__wsState-col">{{ getWsState() }}</td>
333c3566 13 <td class="cs-table__registration-status-col">{{ getRegistrationStatus() }}</td>
32de5a57 14 <td class="cs-table__vendor-col">{{ getVendor() }}</td>
5a010bf0 15 <td class="cs-table__model-col">{{ getModel() }}</td>
32de5a57
LM
16 <td class="cs-table__firmware-col">{{ getFirmwareVersion() }}</td>
17 </tr>
18</template>
19
20<script setup lang="ts">
21import CSConnector from './CSConnector.vue';
22
5a010bf0 23// import { reactive } from 'vue';
f27eb751 24import Utils from '@/composables/Utils';
258a5c7f 25import type {
32de5a57
LM
26 ChargingStationData,
27 ChargingStationInfo,
28 ConnectorStatus,
f27eb751 29} from '@/types/ChargingStationType';
32de5a57
LM
30
31const props = defineProps<{
32 chargingStation: ChargingStationData;
5a010bf0 33 idTag: string;
32de5a57
LM
34}>();
35
5a010bf0
JB
36// type State = {
37// isTagModalVisible: boolean;
38// idTag: string;
39// };
40
41// const state: State = reactive({
42// isTagModalVisible: false,
43// idTag: '',
44// });
32de5a57 45
5a010bf0 46function getConnectors(): ConnectorStatus[] {
aeb31e77 47 return props.chargingStation.connectors?.slice(1);
32de5a57
LM
48}
49function getInfo(): ChargingStationInfo {
50 return props.chargingStation.stationInfo;
51}
51c83d6f
JB
52function getHashId(): string {
53 return getInfo().hashId;
54}
32de5a57
LM
55function getId(): string {
56 return Utils.ifUndefined<string>(getInfo().chargingStationId, 'Ø');
57}
58function getModel(): string {
59 return getInfo().chargePointModel;
60}
61function getVendor(): string {
62 return getInfo().chargePointVendor;
63}
64function getFirmwareVersion(): string {
65 return Utils.ifUndefined<string>(getInfo().firmwareVersion, 'Ø');
66}
452a82ca
JB
67function getStarted(): string {
68 return props.chargingStation.started === true ? 'Yes' : 'No';
333c3566 69}
5e3cb728
JB
70function getWsState(): string {
71 switch (props.chargingStation?.wsState) {
72 case WebSocket.CONNECTING:
73 return 'Connecting';
74 case WebSocket.OPEN:
75 return 'Open';
76 case WebSocket.CLOSING:
77 return 'Closing';
78 case WebSocket.CLOSED:
79 return 'Closed';
80 default:
81 return 'Ø';
82 }
83}
333c3566
JB
84function getRegistrationStatus(): string {
85 return props.chargingStation?.bootNotificationResponse?.status ?? 'Ø';
8fc2e5cc 86}
32de5a57
LM
87// function showTagModal(): void {
88// state.isTagModalVisible = true;
89// }
90// function hideTagModal(): void {
91// state.isTagModalVisible = false;
92// }
93</script>