refactor(ui): fix templates code formatting
[e-mobility-charging-stations-simulator.git] / ui / web / src / components / charging-stations / CSConnector.vue
index 05980e4105ffbb58d76ba72778f9e5a9f34ce825..7c31ae988e1f64b6363361ab7b870c44219b4b8e 100644 (file)
@@ -1,89 +1,80 @@
 <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="Utils.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 Utils 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;
-  connectorId: number;
-  transactionId?: number;
-  idTag?: string;
-}>();
+  hashId: string
+  chargingStationId: string
+  connectorId: number
+  connector: ConnectorStatus
+  atgStatus?: Status
+}>()
 
-// type State = {
-//   isIdTagModalVisible: boolean;
-//   idTag: string;
-//   transaction: () => void;
-// };
+const uiClient = getCurrentInstance()?.appContext.config.globalProperties.$uiClient
 
-// const state: State = reactive({
-//   isIdTagModalVisible: false,
-//   idTag: '',
-//   transaction: startTransaction,
-// });
+const $toast = useToast()
 
-// function getIdTag(transaction: () => void): void {
-//   state.transaction = transaction;
-//   showTagModal();
-// }
-
-// 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>