<template>
- <Container id="charging-stations">
+ <Container id="charging-stations-container">
<Container id="buttons-container">
- <Button id="simulator-button" @click="startSimulator()">Start Simulator</Button>
- <Button id="simulator-button" @click="stopSimulator()">Stop Simulator</Button>
- <ReloadButton id="reload-button" :loading="state.isLoading" @click="loadChargingStations()" />
- </Container>
- <Container id="inputs-container">
- <input
- id="idtag-field"
- v-model="state.idTag"
- type="text"
- name="idtag-field"
- placeholder="RFID tag"
+ <Button id="button" @click="startSimulator()">Start Simulator</Button>
+ <Button id="button" @click="stopSimulator()">Stop Simulator</Button>
+ <Button id="button" @click="$router.push({ name: 'add-charging-stations' })"
+ >Add Charging Stations</Button
+ >
+ <ReloadButton
+ id="reload-button"
+ :loading="state.isLoading"
+ @click="loadChargingStations(() => $router.go(0))"
/>
</Container>
- <CSTable
- :charging-stations="
- getCurrentInstance()?.appContext.config.globalProperties.$chargingStations
- "
- :id-tag="state.idTag"
- />
+ <CSTable :charging-stations="app?.appContext.config.globalProperties.$chargingStations ?? []" />
</Container>
</template>
import Button from '@/components/buttons/Button.vue'
const state = reactive({
- isLoading: false,
- idTag: ''
+ isLoading: false
})
const app = getCurrentInstance()
const uiClient = app?.appContext.config.globalProperties.$uiClient
-function loadChargingStations(): void {
+function loadChargingStations(reloadCallback?: () => void): void {
if (state.isLoading === false) {
state.isLoading = true
uiClient
}
})
.catch((error: Error) => {
+ // TODO: add code for UI notifications or other error handling logic
console.error('Error at fetching charging stations:', error)
})
.finally(() => {
+ if (reloadCallback != null) {
+ reloadCallback()
+ }
state.isLoading = false
})
}
</script>
<style>
-#charging-stations {
+#charging-stations-container {
height: fit-content;
width: 100%;
display: flex;
flex-direction: row;
}
-#inputs-container {
- display: flex;
- flex-direction: row;
+#button {
+ flex: auto;
}
#reload-button {
#reload-button:active {
background-color: red;
}
-
-#simulator-button {
- flex: auto;
-}
-
-#idtag-field {
- flex: auto;
- font-size: 1.5rem;
- text-align: center;
-}
</style>