diff --git a/src/pages/Route/Vehicle/Card/VehicleEventInclusionForm.vue b/src/pages/Route/Vehicle/Card/VehicleEventInclusionForm.vue index 800ef1b2b..0a21c05a6 100644 --- a/src/pages/Route/Vehicle/Card/VehicleEventInclusionForm.vue +++ b/src/pages/Route/Vehicle/Card/VehicleEventInclusionForm.vue @@ -10,8 +10,10 @@ import VnInput from 'src/components/common/VnInput.vue'; import { useArrayData } from 'src/composables/useArrayData'; import { useVnConfirm } from 'composables/useVnConfirm'; +import { useState } from 'src/composables/useState'; import axios from 'axios'; import VnSelect from 'src/components/common/VnSelect.vue'; +import useNotify from 'src/composables/useNotify.js'; const props = defineProps({ event: { @@ -32,7 +34,10 @@ const emit = defineEmits(['onSubmit', 'closeForm']); const route = useRoute(); const { t } = useI18n(); +const { notify } = useNotify(); const { openConfirmationModal } = useVnConfirm(); +const state = useState(); +const user = state.getUser(); const isNew = computed(() => props.isNewMode); const vehicleFormData = ref({ @@ -48,12 +53,13 @@ const arrayData = useArrayData('VehicleEvents'); const createVehicleEvent = async () => { vehicleFormData.value.vehicleFk = route.params.id; - vehicleFormData.value.userFk = 3; + vehicleFormData.value.userFk = user.value.id; if (isNew.value) { - await axios.post(`Vehicles/${route.params.id}/event`, vehicleFormData.value); + await axios.post(`VehicleEvents`, vehicleFormData.value); + notify(t('globals.dataSaved'), 'positive'); } else { - await axios.put( - `Vehicles/${route.params.id}/event/${props.event?.id}`, + await axios.patch( + `VehicleEvents/${props.event?.id}`, vehicleFormData.value, ); } @@ -64,7 +70,8 @@ const createVehicleEvent = async () => { const deleteVehicleEvent = async () => { if (!props.event) return; - await axios.delete(`Vehicles/${route.params.id}/event/${props.event?.id}`); + await axios.delete(`VehicleEvents/${props.event?.id}`); + notify(t('globals.dataSaved'), 'positive'); await refetchEvents(); }; @@ -127,8 +134,8 @@ onMounted(() => { class="q-mr-sm" @click=" openConfirmationModal( - t('vehicleForm.deleteTitle'), - t('vehicleForm.deleteSubtitle'), + t('vehicle.deleteTitle'), + t('vehicle.deleteSubtitle'), () => deleteVehicleEvent(), ) " diff --git a/src/pages/Route/Vehicle/Card/VehicleEventsPanel.vue b/src/pages/Route/Vehicle/Card/VehicleEventsPanel.vue index 3ff849c16..ead43b908 100644 --- a/src/pages/Route/Vehicle/Card/VehicleEventsPanel.vue +++ b/src/pages/Route/Vehicle/Card/VehicleEventsPanel.vue @@ -9,6 +9,7 @@ import { toDateFormat } from 'src/filters/date.js'; import { dashIfEmpty } from 'src/filters'; import { useWeekdayStore } from 'src/stores/useWeekdayStore'; import { useVnConfirm } from 'composables/useVnConfirm'; +import useNotify from 'src/composables/useNotify.js'; const props = defineProps({ firstDay: { @@ -28,6 +29,7 @@ const props = defineProps({ const emit = defineEmits(['openVehicleForm']); const { t } = useI18n(); const route = useRoute(); +const { notify } = useNotify(); const weekdayStore = useWeekdayStore(); const { openConfirmationModal } = useVnConfirm(); const vehicleStates = ref({}); @@ -72,7 +74,8 @@ watch( const deleteEvent = async (id) => { if (!id) return; - await axios.delete(`Vehicles/${route.params.id}/event/${id}`); + await axios.delete(`VehicleEvents/${id}`); + notify(t('dataSaved'), 'positive'); await fetchData(); }; @@ -121,6 +124,7 @@ onMounted(async () => { { const onDateSelected = (data) => emit('onDateSelected', data); onMounted(async () => { - let initialDate = new Date(); + let initialDate = Date.vnNew(); initialDate.setDate(1); initialDate.setHours(0, 0, 0, 0); date.value = initialDate; diff --git a/src/pages/Route/Vehicle/locale/en.yml b/src/pages/Route/Vehicle/locale/en.yml index c92022f9d..706f77e0c 100644 --- a/src/pages/Route/Vehicle/locale/en.yml +++ b/src/pages/Route/Vehicle/locale/en.yml @@ -15,6 +15,8 @@ vehicle: remove: Vehicle removed search: Search Vehicle searchInfo: Search by id or number plate + deleteTitle: This item will be deleted + deleteSubtitle: Are you sure you want to continue? params: vehicleTypeFk: Type vehicleStateFk: State diff --git a/src/pages/Route/Vehicle/locale/es.yml b/src/pages/Route/Vehicle/locale/es.yml index c878f97ac..23d163eaf 100644 --- a/src/pages/Route/Vehicle/locale/es.yml +++ b/src/pages/Route/Vehicle/locale/es.yml @@ -15,6 +15,8 @@ vehicle: remove: Vehículo eliminado search: Buscar Vehículo searchInfo: Buscar por id o matrícula + deleteTitle: Este elemento será eliminado + deleteSubtitle: ¿Seguro que quieres continuar? params: vehicleTypeFk: Tipo vehicleStateFk: Estado diff --git a/test/cypress/integration/route/vehicle/vehicleEvents.spec.js b/test/cypress/integration/route/vehicle/vehicleEvents.spec.js new file mode 100644 index 000000000..65d5aa8a1 --- /dev/null +++ b/test/cypress/integration/route/vehicle/vehicleEvents.spec.js @@ -0,0 +1,30 @@ +describe('Vehicle', () => { + beforeEach(() => { + cy.viewport(1920, 1080); + cy.login('deliveryAssistant'); + cy.visit(`/#/route/vehicle/3/events`); + }); + + it('should add a new vehicle event', () => { + cy.get('.q-page-sticky > div > .q-btn').click(); + cy.dataCy('Started_inputDate').type('05/02/2001'); + cy.dataCy('Finished_inputDate').type('08/02/2001'); + cy.get(':nth-child(5) > [label="Description"] > .q-field > .q-field__inner > .q-field__control > .q-field__control-container > [data-cy="Description_input"]').type('Test'); + cy.selectOption(':nth-child(5) > .q-select > .q-field__inner > .q-field__control > .q-field__control-container', 3); + cy.get('.q-mt-lg > .q-btn--standard').click(); + }); + + it('should edit a vehicle event', () => { + cy.get('[aria-label="Tuesday, February 6, 2001"] .q-btn__content').click(); + cy.dataCy('Started_inputDate').clear().type('03/02/2001'); + cy.dataCy('Finished_inputDate').clear().type('15/03/2001'); + cy.get(':nth-child(5) > [label="Description"] > .q-field > .q-field__inner > .q-field__control > .q-field__control-container > [data-cy="Description_input"]').clear().type('Test2'); + cy.selectOption(':nth-child(5) > .q-select > .q-field__inner > .q-field__control > .q-field__control-container', 5); + cy.get('.q-mt-lg > .q-btn--standard').click(); + }); + + it('should delete a vehicle event', () => { + cy.dataCy('delete_event').eq(0).click(); + cy.dataCy('VnConfirm_confirm').click(); + }); +});