webapp: show dialogue before deleting inverter

This commit is contained in:
Thomas Basler 2022-08-09 21:32:25 +02:00
parent 7e9a06d89e
commit c5b29567e1

View File

@ -60,7 +60,7 @@
</td> </td>
<td> <td>
<a href="#" class="icon text-danger" title="Delete inverter"> <a href="#" class="icon text-danger" title="Delete inverter">
<BIconTrash v-on:click="onDelete(inverter.id)" /> <BIconTrash v-on:click="onDeleteModal(inverter)" />
</a>&nbsp; </a>&nbsp;
<a href="#" class="icon" title="Edit inverter"> <a href="#" class="icon" title="Edit inverter">
<BIconPencil v-on:click="onEdit(inverter)" /> <BIconPencil v-on:click="onEdit(inverter)" />
@ -104,7 +104,8 @@
:aria-describedby="`inverter-maxDescription_${index} inverter-maxHelpText_${index}`" /> :aria-describedby="`inverter-maxDescription_${index} inverter-maxHelpText_${index}`" />
<span class="input-group-text" :id="`inverter-maxDescription_${index}`">W</span> <span class="input-group-text" :id="`inverter-maxDescription_${index}`">W</span>
</div> </div>
<div :id="`inverter-maxHelpText_${index}`" class="form-text">This value is used to calculate the Irradiation.</div> <div :id="`inverter-maxHelpText_${index}`" class="form-text">This value is used to
calculate the Irradiation.</div>
</div> </div>
</form> </form>
@ -119,6 +120,27 @@
</div> </div>
</div> </div>
<div class="modal" id="inverterDelete" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Delete Inverter</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
Are you sure you want to delete the inverter "{{ deleteInverterData.name }}" with serial number
{{ deleteInverterData.serial }}?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" @click="onDeleteCancel"
data-bs-dismiss="modal">Cancel</button>
<button type="button" class="btn btn-danger"
@click="onDelete(deleteId.toString())">Delete</button>
</div>
</div>
</div>
</div>
</div> </div>
</template> </template>
@ -142,9 +164,12 @@ export default defineComponent({
data() { data() {
return { return {
modal: {} as bootstrap.Modal, modal: {} as bootstrap.Modal,
modalDelete: {} as bootstrap.Modal,
deleteId: -1,
editId: "-1", editId: "-1",
inverterData: {} as Inverter, inverterData: {} as Inverter,
editInverterData: {} as Inverter, editInverterData: {} as Inverter,
deleteInverterData: {} as Inverter,
inverters: [] as Inverter[], inverters: [] as Inverter[],
alertMessage: "", alertMessage: "",
alertType: "info", alertType: "info",
@ -153,6 +178,7 @@ export default defineComponent({
}, },
mounted() { mounted() {
this.modal = new bootstrap.Modal('#inverterEdit'); this.modal = new bootstrap.Modal('#inverterEdit');
this.modalDelete = new bootstrap.Modal('#inverterDelete');
}, },
created() { created() {
this.getInverters(); this.getInverters();
@ -197,6 +223,20 @@ export default defineComponent({
this.inverterData.serial = 0; this.inverterData.serial = 0;
this.inverterData.name = ""; this.inverterData.name = "";
}, },
onDeleteModal(inverter: Inverter) {
this.modalDelete.show();
this.deleteInverterData.serial = inverter.serial;
this.deleteInverterData.name = inverter.name;
this.deleteInverterData.type = inverter.type;
this.deleteId = +inverter.id;
},
onDeleteCancel() {
this.deleteId = -1;
this.deleteInverterData.serial = 0;
this.deleteInverterData.name = "";
this.deleteInverterData.max_power = [];
this.modalDelete.hide();
},
onDelete(id: string) { onDelete(id: string) {
const formData = new FormData(); const formData = new FormData();
formData.append("data", JSON.stringify({ id: id })); formData.append("data", JSON.stringify({ id: id }));
@ -220,6 +260,11 @@ export default defineComponent({
} }
) )
.then(() => { this.getInverters() }); .then(() => { this.getInverters() });
this.deleteId = -1;
this.deleteInverterData.serial = 0;
this.deleteInverterData.name = "";
this.deleteInverterData.max_power = [];
this.modalDelete.hide();
}, },
onEdit(inverter: Inverter) { onEdit(inverter: Inverter) {
this.modal.show(); this.modal.show();