<template>
- <td class="cs-table__action-col">
- <Button @click="startChargingStation()">Start Charging Station</Button>
- <Button @click="stopChargingStation()">Stop Charging Station</Button>
- <Button @click="openConnection()">Open Connection</Button>
- <Button @click="closeConnection()">Close Connection</Button>
- <Button @click="startTransaction()">Start Transaction</Button>
- <!-- <IdTagInputModal
- :visibility="state.isIdTagModalVisible"
- :id-tag="state.idTag"
- @close="hideIdTagModal()"
- @done="compose(state.transaction, hideIdTagModal)()"
- >
- Start Transaction
- </IdTagInputModal> -->
- <Button @click="stopTransaction()">Stop Transaction</Button>
- <Button @click="startAutomaticTransactionGenerator()">Start ATG</Button>
- <Button @click="stopAutomaticTransactionGenerator()">Stop ATG</Button>
- </td>
- <td class="cs-table__connector-col">{{ connectorId }}</td>
- <td class="cs-table__status-col">{{ connector.status }}</td>
- <td class="cs-table__transaction-col">{{ connector.transactionStarted ? 'Yes' : 'No' }}</td>
+ <tr class="connectors-table__row">
+ <td class="connectors-table__column">{{ connectorId }}</td>
+ <td class="connectors-table__column">{{ connector.status ?? 'Ø' }}</td>
+ <td class="connectors-table__column">
+ {{ connector.transactionStarted === true ? 'Yes' : 'No' }}
+ </td>
+ <td class="connectors-table__column">
+ {{ atgStatus?.start === true ? 'Yes' : 'No' }}
+ </td>
+ <td class="connectors-table__column">
+ <Button
+ @click="
+ $router.push({
+ name: 'start-transaction',
+ params: { hashId, chargingStationId, connectorId }
+ })
+ "
+ >Start Transaction</Button
+ >
+ <Button @click="stopTransaction()">Stop Transaction</Button>
+ <Button @click="startAutomaticTransactionGenerator()">Start ATG</Button>
+ <Button @click="stopAutomaticTransactionGenerator()">Stop ATG</Button>
+ </td>
+ </tr>
</template>
<script setup lang="ts">
-// import { reactive } from 'vue'
-import Button from '../buttons/Button.vue'
-// import IdTagInputModal from './IdTagInputModal.vue'
-import type { ConnectorStatus } from '@/types'
-import { UIClient } from '@/composables/UIClient'
-// import { compose } from '@/composables/Utils'
+import { getCurrentInstance } from 'vue'
+import { useToast } from 'vue-toast-notification'
+import Button from '@/components/buttons/Button.vue'
+import type { ConnectorStatus, Status } from '@/types'
const props = defineProps<{
hashId: string
- connector: ConnectorStatus
+ chargingStationId: string
connectorId: number
- transactionId?: number
- idTag?: string
+ connector: ConnectorStatus
+ atgStatus?: Status
}>()
-// type State = {
-// isIdTagModalVisible: boolean
-// idTag: string
-// transaction: () => void
-// }
-
-// const state: State = reactive({
-// isIdTagModalVisible: false,
-// idTag: '',
-// transaction: startTransaction
-// })
+const uiClient = getCurrentInstance()?.appContext.config.globalProperties.$uiClient
-// function getIdTag(transaction: () => void): void {
-// state.transaction = transaction
-// showTagModal()
-// }
+const $toast = useToast()
-// function showTagModal(): void {
-// state.isIdTagModalVisible = true
-// }
-// function hideIdTagModal(): void {
-// state.isIdTagModalVisible = false
-// }
-
-function startChargingStation(): void {
- UIClient.getInstance().startChargingStation(props.hashId)
-}
-function stopChargingStation(): void {
- UIClient.getInstance().stopChargingStation(props.hashId)
-}
-function openConnection(): void {
- UIClient.getInstance().openConnection(props.hashId)
-}
-function closeConnection(): void {
- UIClient.getInstance().closeConnection(props.hashId)
-}
-function startTransaction(): void {
- UIClient.getInstance().startTransaction(props.hashId, props.connectorId, props.idTag)
-}
-function stopTransaction(): void {
- UIClient.getInstance().stopTransaction(props.hashId, props.transactionId)
+const stopTransaction = (): void => {
+ uiClient
+ .stopTransaction(props.hashId, props.connector.transactionId)
+ .then(() => {
+ $toast.success('Transaction successfully stopped')
+ })
+ .catch((error: Error) => {
+ $toast.error('Error at stopping transaction')
+ console.error('Error at stopping transaction:', error)
+ })
}
-function startAutomaticTransactionGenerator(): void {
- UIClient.getInstance().startAutomaticTransactionGenerator(props.hashId, props.connectorId)
+const startAutomaticTransactionGenerator = (): void => {
+ uiClient
+ .startAutomaticTransactionGenerator(props.hashId, props.connectorId)
+ .then(() => {
+ $toast.success('Automatic transaction generator successfully started')
+ })
+ .catch((error: Error) => {
+ $toast.error('Error at starting automatic transaction generator')
+ console.error('Error at starting automatic transaction generator:', error)
+ })
}
-function stopAutomaticTransactionGenerator(): void {
- UIClient.getInstance().stopAutomaticTransactionGenerator(props.hashId, props.connectorId)
+const stopAutomaticTransactionGenerator = (): void => {
+ uiClient
+ .stopAutomaticTransactionGenerator(props.hashId, props.connectorId)
+ .then(() => {
+ $toast.success('Automatic transaction generator successfully stopped')
+ })
+ .catch((error: Error) => {
+ $toast.error('Error at stopping automatic transaction generator')
+ console.error('Error at stopping automatic transaction generator:', error)
+ })
}
</script>