switch calendar to be per foreman, added date select, added foreman select
This commit is contained in:
parent
5bf9b45861
commit
697add510f
2 changed files with 360 additions and 131 deletions
90
frontend/CALENDAR_UPDATE_SUMMARY.md
Normal file
90
frontend/CALENDAR_UPDATE_SUMMARY.md
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
# Calendar View Update Summary
|
||||
|
||||
## Overview
|
||||
Updated the Calendar.vue component from a weekly view to a daily view with foremen as columns and 30-minute time slots as rows.
|
||||
|
||||
## Key Changes Made
|
||||
|
||||
### 1. Layout Structure
|
||||
- **Before**: Weekly calendar with 7 day columns
|
||||
- **After**: Daily calendar with 10 foreman columns
|
||||
|
||||
### 2. Header Changes
|
||||
- Changed from "Sprinkler Service Calendar" to "Daily Schedule - Sprinkler Service"
|
||||
- Navigation changed from week-based (previousWeek/nextWeek) to day-based (previousDay/nextDay)
|
||||
- Display shows full day name instead of week range
|
||||
|
||||
### 3. Grid Structure
|
||||
- **Columns**: Now shows foremen names instead of days of the week
|
||||
- **Rows**: Still uses 30-minute time slots from 7 AM to 7 PM
|
||||
- Grid template updated from `repeat(7, 1fr)` to `repeat(10, 1fr)` for 10 foremen
|
||||
|
||||
### 4. Foremen Data
|
||||
Added 10 foremen to the system:
|
||||
- Mike Thompson
|
||||
- Sarah Johnson
|
||||
- David Martinez
|
||||
- Chris Wilson
|
||||
- Lisa Anderson
|
||||
- Robert Thomas
|
||||
- Maria White
|
||||
- James Clark
|
||||
- Patricia Lewis
|
||||
- Kevin Walker
|
||||
|
||||
### 5. Event Scheduling Logic
|
||||
- Events now filter by foreman name instead of day
|
||||
- Drag and drop updated to assign services to specific foremen
|
||||
- Time slot conflict detection now checks per foreman instead of per day
|
||||
- Preview slots updated to show foreman-specific scheduling
|
||||
|
||||
### 6. Visual Updates
|
||||
- Foreman headers show name and job count for the day
|
||||
- CSS classes renamed from `day-column` to `foreman-column`
|
||||
- Updated styling to accommodate wider layout for 10 columns
|
||||
- Maintained all existing drag-and-drop visual feedback
|
||||
|
||||
### 7. Functionality Preserved
|
||||
- All existing drag-and-drop functionality
|
||||
- Service priority handling
|
||||
- Unscheduled services panel
|
||||
- Event details modal
|
||||
- Time slot highlighting for current time
|
||||
|
||||
## Technical Implementation Details
|
||||
|
||||
### Data Flow
|
||||
1. `currentDate` (string) - tracks the currently viewed date
|
||||
2. `foremen` (array) - contains foreman ID and name pairs
|
||||
3. Services filter by `foreman` name and `scheduledDate` matching `currentDate`
|
||||
4. Grid renders 10 columns × ~24 time slots (30-min intervals)
|
||||
|
||||
### Key Methods Updated
|
||||
- `getEventsForTimeSlot(foremanName, time, date)` - filters by foreman and date
|
||||
- `isTimeSlotOccupied(foremanName, startTime, duration)` - checks conflicts per foreman
|
||||
- `getOccupiedSlots(foremanId, startTime, duration)` - preview slots per foreman
|
||||
- `handleDragOver/handleDrop` - updated to work with foreman IDs
|
||||
- Navigation: `previousDay()`, `nextDay()`, `goToToday()`
|
||||
|
||||
### CSS Grid Layout
|
||||
```css
|
||||
.calendar-header-row, .time-row {
|
||||
grid-template-columns: 80px repeat(10, 1fr);
|
||||
}
|
||||
```
|
||||
|
||||
This provides a time column (80px) plus 10 equal-width foreman columns.
|
||||
|
||||
## Benefits of New Design
|
||||
1. **Better resource allocation** - See all foremen's schedules at once
|
||||
2. **Easier scheduling** - Drag services directly to specific foremen
|
||||
3. **Conflict prevention** - Visual feedback for time conflicts per foreman
|
||||
4. **Daily focus** - Concentrate on optimizing a single day's schedule
|
||||
5. **Scalable** - Easy to add/remove foremen by updating the foremen array
|
||||
|
||||
## Usage
|
||||
- Use left/right arrows to navigate between days
|
||||
- Drag unscheduled services from the right panel to specific foreman time slots
|
||||
- Services automatically get assigned to the foreman and time slot where dropped
|
||||
- Current time slot is highlighted across all foremen columns
|
||||
- Each foreman header shows their job count for the selected day
|
||||
Loading…
Add table
Add a link
Reference in a new issue