From 7eed45ab32e9311baa1bed18d0b17c5d819c8ca9 Mon Sep 17 00:00:00 2001 From: Edwin Eames Date: Fri, 22 Aug 2025 12:58:17 -0400 Subject: [PATCH] Working time --- .../service/calender/CalendarCustomer.vue | 35 +++++++++++-------- src/pages/service/calender/EventModal.vue | 31 ++++++++-------- 2 files changed, 35 insertions(+), 31 deletions(-) diff --git a/src/pages/service/calender/CalendarCustomer.vue b/src/pages/service/calender/CalendarCustomer.vue index 4d9459a..8169435 100644 --- a/src/pages/service/calender/CalendarCustomer.vue +++ b/src/pages/service/calender/CalendarCustomer.vue @@ -23,7 +23,13 @@
- + + @@ -37,12 +43,14 @@ import dayGridPlugin from '@fullcalendar/daygrid'; import interactionPlugin from '@fullcalendar/interaction'; import { CalendarOptions, EventApi, EventClickArg } from '@fullcalendar/core'; import EventSidebar from './EventSidebar.vue'; -import EventModal from './EventModal.vue'; +import EventModal from './EventModal.vue'; import axios from 'axios'; -import authHeader from '../../../services/auth.header'; // Assuming you have this service +import authHeader from '../../../services/auth.header'; -// --- Interfaces (no changes) --- +// --- Interfaces --- interface Customer { id: number; customer_last_name: string; customer_first_name: string; customer_town: string; customer_state: number; customer_zip: string; customer_phone_number: string; customer_address: string; customer_home_type: number; customer_apt: string; } +interface EventExtendedProps { description: string; type_service_call: number; } +interface AppEvent { id?: string; title: string; start: string; end?: string; extendedProps: EventExtendedProps; } export default defineComponent({ name: 'CalendarCustomer', @@ -71,19 +79,19 @@ export default defineComponent({ events: [], eventClick: this.handleEventClick, }; - // --- KEY CHANGE: Fetch ALL events when the component is created --- this.fetchEvents(); }, methods: { + // --- METHOD IMPLEMENTATIONS RESTORED --- + async getCustomer(customerId: string): Promise { this.isLoading = true; this.customer = null; try { const path = `${import.meta.env.VITE_BASE_URL}/customer/${customerId}`; - const response = await axios.get(path, { withCredentials: true }); + const response = await axios.get(path, { withCredentials: true, headers: authHeader() }); if (response.data && response.data.id) { this.customer = response.data; - // --- REMOVED: No longer need to fetch events from here --- } } catch (error) { console.error("API call to get customer FAILED:", error); @@ -92,15 +100,10 @@ export default defineComponent({ } }, - // --- KEY CHANGE: This method now fetches ALL events and is independent --- async fetchEvents(): Promise { try { - console.log("fetchEvents: Fetching ALL events for the master calendar."); - // Call the new '/service/all' endpoint const path = `${import.meta.env.VITE_BASE_URL}/service/all`; const response = await axios.get(path, { headers: authHeader(), withCredentials: true }); - - console.log("fetchEvents: Received all events from API:", response.data); this.calendarOptions.events = response.data; } catch (error) { console.error("Error fetching all calendar events:", error); @@ -125,7 +128,6 @@ export default defineComponent({ const response = await axios.post(path, payload, { withCredentials: true, headers: authHeader() }); if (response.data.ok === true) { - // After creating a new event, refresh the entire master calendar await this.fetchEvents(); } else { console.error("Failed to create event:", response.data.error); @@ -136,7 +138,6 @@ export default defineComponent({ }, async handleEventDelete(eventId: string): Promise { - // ... (no changes needed in this method) try { const path = `${import.meta.env.VITE_BASE_URL}/service/delete/${eventId}`; const response = await axios.delete(path, { withCredentials: true, headers: authHeader() }); @@ -145,8 +146,12 @@ export default defineComponent({ const eventToRemove = calendarApi.getEventById(eventId); if (eventToRemove) eventToRemove.remove(); this.selectedEvent = null; + } else { + console.error("Failed to delete event:", response.data.error); } - } catch (error) { console.error("Error deleting event:", error); } + } catch (error) { + console.error("Error deleting event:", error); + } }, }, }); diff --git a/src/pages/service/calender/EventModal.vue b/src/pages/service/calender/EventModal.vue index 4aecb98..69d4963 100644 --- a/src/pages/service/calender/EventModal.vue +++ b/src/pages/service/calender/EventModal.vue @@ -1,23 +1,26 @@