xref: /plugin/calendar/CHANGELOG.md (revision 231d0edb9148222207862b7b998861794a543cdd)
11d05cddcSAtari911# Calendar Plugin Changelog
21d05cddcSAtari911
3*231d0edbSAtari911## Version 4.0.0 (2026-02-06) - MATRIX EDITION RELEASE ��
4*231d0edbSAtari911
5*231d0edbSAtari911**Major Release**: Complete Matrix-themed calendar plugin with advanced features!
6*231d0edbSAtari911
7*231d0edbSAtari911### �� Major Features
8*231d0edbSAtari911
9*231d0edbSAtari911#### Sidebar Widget
10*231d0edbSAtari911- **Week Grid**: Interactive 7-day calendar with click-to-view events
11*231d0edbSAtari911- **Live System Monitoring**: CPU load, real-time CPU, memory usage with tooltips
12*231d0edbSAtari911- **Live Clock**: Updates every second with date display
13*231d0edbSAtari911- **Real-time Weather**: Geolocation-based temperature with icon
14*231d0edbSAtari911- **Event Sections**: Today (orange), Tomorrow (green), Important (purple)
15*231d0edbSAtari911- **Add Event Button**: Dark green bar opens full event creation dialog
16*231d0edbSAtari911- **Matrix Theme**: Green glow effects throughout
17*231d0edbSAtari911
18*231d0edbSAtari911#### Event Management
19*231d0edbSAtari911- **Single Color Bars**: Clean 3px bars showing event's assigned color
20*231d0edbSAtari911- **All-Day Events First**: Then sorted chronologically by time
21*231d0edbSAtari911- **Conflict Detection**: Orange ⚠ badge on overlapping events
22*231d0edbSAtari911- **Rich Content**: Full DokuWiki formatting (**bold**, [[links]], //italic//)
23*231d0edbSAtari911- **HTML Rendering**: Pre-rendered for JavaScript display
24*231d0edbSAtari911- **Click-to-View**: Click week grid days to expand event details
25*231d0edbSAtari911
26*231d0edbSAtari911#### Admin Interface
27*231d0edbSAtari911- **Update Plugin Tab** (Default): Version info, changelog, prominent Clear Cache button
28*231d0edbSAtari911- **Outlook Sync Tab**: Microsoft Azure integration, category mapping, sync settings
29*231d0edbSAtari911- **Manage Events Tab**: Browse, edit, delete, move events across namespaces
30*231d0edbSAtari911
31*231d0edbSAtari911#### Outlook Sync
32*231d0edbSAtari911- **Bi-directional Sync**: DokuWiki ↔ Microsoft Outlook
33*231d0edbSAtari911- **Category Mapping**: Map colors to Outlook categories
34*231d0edbSAtari911- **Conflict Resolution**: Time conflict detection
35*231d0edbSAtari911- **Import/Export Config**: Encrypted configuration files
36*231d0edbSAtari911
37*231d0edbSAtari911### �� Design
38*231d0edbSAtari911- **Matrix Theme**: Authentic green glow aesthetic
39*231d0edbSAtari911- **Dark Backgrounds**: #1a1a1a header, rgba(36, 36, 36) sections
40*231d0edbSAtari911- **Color Scheme**:
41*231d0edbSAtari911  - Today: Orange #ff9800
42*231d0edbSAtari911  - Tomorrow: Green #4caf50
43*231d0edbSAtari911  - Important: Purple #9b59b6
44*231d0edbSAtari911  - Add Event: Dark green #006400
45*231d0edbSAtari911  - System bars: Green/Purple/Orange
46*231d0edbSAtari911
47*231d0edbSAtari911### �� Technical Highlights
48*231d0edbSAtari911- **Zero-margin Design**: Perfect flush alignment throughout
49*231d0edbSAtari911- **Flexbox Layout**: Modern, responsive structure
50*231d0edbSAtari911- **AJAX Operations**: No page reloads needed
51*231d0edbSAtari911- **Smart Sorting**: All-day events first, then chronological
52*231d0edbSAtari911- **Tooltip System**: Detailed stats on hover (working correctly)
53*231d0edbSAtari911- **Event Dialog**: Full form with drag support
54*231d0edbSAtari911- **Cache Management**: One-click cache clearing
55*231d0edbSAtari911
56*231d0edbSAtari911### �� Breaking Changes from v3.x
57*231d0edbSAtari911- Removed dual color bars (now single event color bar only)
58*231d0edbSAtari911- Add Event button moved to between header and week grid
59*231d0edbSAtari911- All-day events now appear FIRST (not last)
60*231d0edbSAtari911- Update Plugin tab is now the default admin tab
61*231d0edbSAtari911
62*231d0edbSAtari911### �� Bug Fixes (v3.10.x → v4.0.0)
63*231d0edbSAtari911- ✅ Fixed color bars not showing (align-self:stretch vs height:100%)
64*231d0edbSAtari911- ✅ Fixed tooltip function naming (sanitized calId for JavaScript)
65*231d0edbSAtari911- ✅ Fixed weather display (added updateWeather function)
66*231d0edbSAtari911- ✅ Fixed HTML rendering in events (title_html/description_html fields)
67*231d0edbSAtari911- ✅ Fixed Add Event dialog (null check for calendar element)
68*231d0edbSAtari911- ✅ Fixed text positioning in Add Event button
69*231d0edbSAtari911- ✅ Fixed spacing throughout sidebar widget
70*231d0edbSAtari911
71*231d0edbSAtari911### �� Complete Feature List
72*231d0edbSAtari911- Full calendar view (month grid)
73*231d0edbSAtari911- Sidebar widget (week view)
74*231d0edbSAtari911- Event panel (standalone)
75*231d0edbSAtari911- Event list (date ranges)
76*231d0edbSAtari911- Namespace support
77*231d0edbSAtari911- Color coding
78*231d0edbSAtari911- Time conflict detection
79*231d0edbSAtari911- DokuWiki syntax in events
80*231d0edbSAtari911- Outlook synchronization
81*231d0edbSAtari911- System monitoring
82*231d0edbSAtari911- Weather display
83*231d0edbSAtari911- Live clock
84*231d0edbSAtari911- Admin interface
85*231d0edbSAtari911- Cache management
86*231d0edbSAtari911- Draggable dialogs
87*231d0edbSAtari911- AJAX save/edit/delete
88*231d0edbSAtari911- Import/export config
89*231d0edbSAtari911
90*231d0edbSAtari911### �� Usage
91*231d0edbSAtari911
92*231d0edbSAtari911**Sidebar Widget**:
93*231d0edbSAtari911```
94*231d0edbSAtari911{{calendar sidebar}}
95*231d0edbSAtari911{{calendar sidebar namespace=team}}
96*231d0edbSAtari911```
97*231d0edbSAtari911
98*231d0edbSAtari911**Full Calendar**:
99*231d0edbSAtari911```
100*231d0edbSAtari911{{calendar}}
101*231d0edbSAtari911{{calendar year=2026 month=6 namespace=team}}
102*231d0edbSAtari911```
103*231d0edbSAtari911
104*231d0edbSAtari911**Event Panel**:
105*231d0edbSAtari911```
106*231d0edbSAtari911{{eventpanel}}
107*231d0edbSAtari911```
108*231d0edbSAtari911
109*231d0edbSAtari911**Event List**:
110*231d0edbSAtari911```
111*231d0edbSAtari911{{eventlist daterange=2026-01-01:2026-01-31}}
112*231d0edbSAtari911```
113*231d0edbSAtari911
114*231d0edbSAtari911### �� Stats
115*231d0edbSAtari911- **40+ versions** developed during v3.x iterations
116*231d0edbSAtari911- **3.10.0 → 3.11.4**: Polish and refinement
117*231d0edbSAtari911- **4.0.0**: Production-ready Matrix Edition
118*231d0edbSAtari911
119*231d0edbSAtari911### �� Credits
120*231d0edbSAtari911Massive iteration and refinement session resulting in a polished, feature-complete calendar plugin with authentic Matrix aesthetics and enterprise-grade Outlook integration.
121*231d0edbSAtari911
122*231d0edbSAtari911---
123*231d0edbSAtari911
124*231d0edbSAtari911## Previous Versions (v3.11.4 and earlier)
125*231d0edbSAtari911
126*231d0edbSAtari911## Version 3.11.4 (2026-02-06) - RESTORE HEADER BOTTOM SPACING
127*231d0edbSAtari911- **Changed:** Restored 2px bottom padding to header (was 0px, now 2px)
128*231d0edbSAtari911- **Improved:** Small breathing room between system stats bars and Add Event button
129*231d0edbSAtari911- **Visual:** Better spacing for cleaner appearance
130*231d0edbSAtari911
131*231d0edbSAtari911### CSS Change:
132*231d0edbSAtari911**eventlist-today-header**:
133*231d0edbSAtari911- `padding: 6px 10px 0 10px` → `padding: 6px 10px 2px 10px`
134*231d0edbSAtari911
135*231d0edbSAtari911### Visual Result:
136*231d0edbSAtari911```
137*231d0edbSAtari911│  ▓▓▓░░ ▓▓░░░ ▓▓▓▓░  │  ← Stats bars
138*231d0edbSAtari911│                       │  ← 2px space (restored)
139*231d0edbSAtari911├───────────────────────┤
140*231d0edbSAtari911│  + ADD EVENT          │  ← Add Event bar
141*231d0edbSAtari911├───────────────────────┤
142*231d0edbSAtari911```
143*231d0edbSAtari911
144*231d0edbSAtari911**Before (v3.11.3)**: No space, bars directly touch Add Event button
145*231d0edbSAtari911**After (v3.11.4)**: 2px breathing room for better visual hierarchy
146*231d0edbSAtari911
147*231d0edbSAtari911## Version 3.11.3 (2026-02-06) - FIX ADD EVENT DIALOG & TEXT POSITION
148*231d0edbSAtari911- **Fixed:** openAddEvent() function now checks if calendar element exists before reading dataset
149*231d0edbSAtari911- **Fixed:** Add Event button no longer throws "Cannot read properties of null" error
150*231d0edbSAtari911- **Changed:** Add Event text moved up 1px (position:relative; top:-1px)
151*231d0edbSAtari911- **Changed:** Line-height reduced from 12px to 10px for better text centering
152*231d0edbSAtari911- **Improved:** openAddEvent() works for both regular calendars and sidebar widgets
153*231d0edbSAtari911
154*231d0edbSAtari911### JavaScript Fix:
155*231d0edbSAtari911**Problem**: Line 1084-1085 in calendar-main.js
156*231d0edbSAtari911```javascript
157*231d0edbSAtari911const calendar = document.getElementById(calId);
158*231d0edbSAtari911const filteredNamespace = calendar.dataset.filteredNamespace; // ← Null error!
159*231d0edbSAtari911```
160*231d0edbSAtari911
161*231d0edbSAtari911**Solution**: Added null check
162*231d0edbSAtari911```javascript
163*231d0edbSAtari911const calendar = document.getElementById(calId);
164*231d0edbSAtari911const filteredNamespace = calendar ? calendar.dataset.filteredNamespace : null;
165*231d0edbSAtari911```
166*231d0edbSAtari911
167*231d0edbSAtari911**Why This Happened**:
168*231d0edbSAtari911- Regular calendar has element with id=calId
169*231d0edbSAtari911- Sidebar widget doesn't have this element (different structure)
170*231d0edbSAtari911- Code tried to read .dataset on null, causing error
171*231d0edbSAtari911
172*231d0edbSAtari911### Text Position Fix:
173*231d0edbSAtari911**Before**:
174*231d0edbSAtari911- line-height: 12px
175*231d0edbSAtari911- vertical-align: middle
176*231d0edbSAtari911- Text slightly low
177*231d0edbSAtari911
178*231d0edbSAtari911**After**:
179*231d0edbSAtari911- line-height: 10px
180*231d0edbSAtari911- position: relative; top: -1px
181*231d0edbSAtari911- Text perfectly centered
182*231d0edbSAtari911
183*231d0edbSAtari911### What Works Now:
184*231d0edbSAtari911✅ Click "+ ADD EVENT" in sidebar → Dialog opens
185*231d0edbSAtari911✅ No console errors
186*231d0edbSAtari911✅ Text properly centered vertically
187*231d0edbSAtari911✅ Form pre-filled with today's date
188*231d0edbSAtari911✅ Save works correctly
189*231d0edbSAtari911
190*231d0edbSAtari911## Version 3.11.2 (2026-02-06) - ADD EVENT DIALOG IN SIDEBAR
191*231d0edbSAtari911- **Added:** Event dialog to sidebar widget (same as regular calendar)
192*231d0edbSAtari911- **Changed:** Add Event button now opens proper event form dialog
193*231d0edbSAtari911- **Added:** renderEventDialog() called in renderSidebarWidget()
194*231d0edbSAtari911- **Fixed:** Add Event button calls openAddEvent() with calId, namespace, and today's date
195*231d0edbSAtari911- **Improved:** Can now add events directly from sidebar widget
196*231d0edbSAtari911
197*231d0edbSAtari911### Add Event Button Behavior:
198*231d0edbSAtari911**Before (v3.11.1)**: Showed alert with instructions
199*231d0edbSAtari911**After (v3.11.2)**: Opens full event creation dialog
200*231d0edbSAtari911
201*231d0edbSAtari911**Dialog Features**:
202*231d0edbSAtari911- Date field (defaults to today)
203*231d0edbSAtari911- Title field (required)
204*231d0edbSAtari911- Time field (optional)
205*231d0edbSAtari911- End time field (optional)
206*231d0edbSAtari911- Color picker
207*231d0edbSAtari911- Category field
208*231d0edbSAtari911- Description field
209*231d0edbSAtari911- Save and Cancel buttons
210*231d0edbSAtari911- Draggable dialog
211*231d0edbSAtari911
212*231d0edbSAtari911### Technical Changes:
213*231d0edbSAtari911- Added `$html .= $this->renderEventDialog($calId, $namespace);` at end of renderSidebarWidget()
214*231d0edbSAtari911- Changed Add Event onclick from alert to `openAddEvent('calId', 'namespace', 'YYYY-MM-DD')`
215*231d0edbSAtari911- Dialog uses same structure as regular calendar
216*231d0edbSAtari911- Uses existing openAddEvent() and saveEventCompact() JavaScript functions
217*231d0edbSAtari911
218*231d0edbSAtari911### User Flow:
219*231d0edbSAtari9111. User clicks "+ ADD EVENT" green bar
220*231d0edbSAtari9112. Event dialog opens with today's date pre-filled
221*231d0edbSAtari9113. User fills in event details
222*231d0edbSAtari9114. User clicks Save
223*231d0edbSAtari9115. Event saved via AJAX
224*231d0edbSAtari9116. Dialog closes
225*231d0edbSAtari9117. Sidebar refreshes to show new event
226*231d0edbSAtari911
227*231d0edbSAtari911## Version 3.11.1 (2026-02-06) - FLUSH HEADER & ADD EVENT DIALOG
228*231d0edbSAtari911- **Fixed:** Removed bottom padding from header (was 2px, now 0)
229*231d0edbSAtari911- **Fixed:** Removed margin from stats container (was margin-top:2px, now margin:0)
230*231d0edbSAtari911- **Fixed:** Add Event bar now flush against header with zero gap
231*231d0edbSAtari911- **Changed:** Add Event button now shows helpful alert dialog instead of navigating to admin
232*231d0edbSAtari911- **Improved:** Alert provides clear instructions on how to add events
233*231d0edbSAtari911
234*231d0edbSAtari911### CSS Changes:
235*231d0edbSAtari911**eventlist-today-header**:
236*231d0edbSAtari911- `padding: 6px 10px 2px 10px` → `padding: 6px 10px 0 10px` (removed 2px bottom)
237*231d0edbSAtari911
238*231d0edbSAtari911**eventlist-stats-container**:
239*231d0edbSAtari911- `margin-top: 2px` → `margin: 0` (removed all margins)
240*231d0edbSAtari911
241*231d0edbSAtari911### Add Event Button Behavior:
242*231d0edbSAtari911**Before**: Clicked → Navigated to Admin → Manage Events tab
243*231d0edbSAtari911**After**: Clicked → Shows alert with instructions
244*231d0edbSAtari911
245*231d0edbSAtari911**Alert Message**:
246*231d0edbSAtari911```
247*231d0edbSAtari911To add an event, go to:
248*231d0edbSAtari911Admin → Calendar Management → Manage Events tab
249*231d0edbSAtari911or use the full calendar view {{calendar}}
250*231d0edbSAtari911```
251*231d0edbSAtari911
252*231d0edbSAtari911### Visual Result:
253*231d0edbSAtari911```
254*231d0edbSAtari911│  ▓▓▓░░ ▓▓░░░ ▓▓▓▓░  │  ← Stats (no margin-bottom)
255*231d0edbSAtari911├────────────────────────┤
256*231d0edbSAtari911│  + ADD EVENT           │  ← Perfectly flush!
257*231d0edbSAtari911├────────────────────────┤
258*231d0edbSAtari911```
259*231d0edbSAtari911
260*231d0edbSAtari911No gaps, perfectly aligned!
261*231d0edbSAtari911
262*231d0edbSAtari911## Version 3.11.0 (2026-02-06) - ADD EVENT BAR FINAL POSITION & SIZE
263*231d0edbSAtari911- **Moved:** Add Event bar back to original position (between header and week grid)
264*231d0edbSAtari911- **Changed:** Font size reduced from 9px to 8px (prevents text cutoff)
265*231d0edbSAtari911- **Changed:** Letter spacing reduced from 0.5px to 0.4px
266*231d0edbSAtari911- **Fixed:** Text now fully visible without being cut off
267*231d0edbSAtari911- **Final:** Optimal position and size determined
268*231d0edbSAtari911
269*231d0edbSAtari911### Final Layout:
270*231d0edbSAtari911```
271*231d0edbSAtari911┌─────────────────────────────┐
272*231d0edbSAtari911│  Clock | Weather | Stats    │  ← Header
273*231d0edbSAtari911├─────────────────────────────┤
274*231d0edbSAtari911│  + ADD EVENT                 │  ← Bar (back here, smaller text)
275*231d0edbSAtari911├─────────────────────────────┤
276*231d0edbSAtari911│  M  T  W  T  F  S  S        │  ← Week Grid
277*231d0edbSAtari911│  3  4  5  6  7  8  9        │
278*231d0edbSAtari911├─────────────────────────────┤
279*231d0edbSAtari911│  Today                       │  ← Event sections
280*231d0edbSAtari911└─────────────────────────────┘
281*231d0edbSAtari911```
282*231d0edbSAtari911
283*231d0edbSAtari911### Text Size Changes:
284*231d0edbSAtari911**v3.10.9**: 9px font, 0.5px letter-spacing → Text slightly cut off
285*231d0edbSAtari911**v3.11.0**: 8px font, 0.4px letter-spacing → Text fully visible
286*231d0edbSAtari911
287*231d0edbSAtari911### Why This Position:
288*231d0edbSAtari911- Separates header from calendar
289*231d0edbSAtari911- Natural action point after viewing stats
290*231d0edbSAtari911- Users see stats → decide to add event → view calendar
291*231d0edbSAtari911- Consistent with original design intent
292*231d0edbSAtari911
293*231d0edbSAtari911## Version 3.10.9 (2026-02-06) - ADD EVENT BAR MOVED BELOW WEEK GRID
294*231d0edbSAtari911- **Moved:** Add Event bar repositioned from between header/grid to below week grid
295*231d0edbSAtari911- **Improved:** Better visual flow - header → stats → grid → add button → events
296*231d0edbSAtari911- **Changed:** Add Event bar now acts as separator between calendar and event sections
297*231d0edbSAtari911
298*231d0edbSAtari911### New Layout:
299*231d0edbSAtari911```
300*231d0edbSAtari911┌─────────────────────────────┐
301*231d0edbSAtari911│  Clock | Weather | Stats    │  ← Header
302*231d0edbSAtari911├─────────────────────────────┤
303*231d0edbSAtari911│  M  T  W  T  F  S  S        │  ← Week Grid
304*231d0edbSAtari911│  3  4  5  6  7  8  9        │
305*231d0edbSAtari911├─────────────────────────────┤
306*231d0edbSAtari911│  + ADD EVENT                 │  ← Add bar (moved here!)
307*231d0edbSAtari911├─────────────────────────────┤
308*231d0edbSAtari911│  Today                       │  ← Event sections
309*231d0edbSAtari911│  Tomorrow                    │
310*231d0edbSAtari911│  Important Events            │
311*231d0edbSAtari911└─────────────────────────────┘
312*231d0edbSAtari911```
313*231d0edbSAtari911
314*231d0edbSAtari911### Visual Flow:
315*231d0edbSAtari911**Before (v3.10.8)**:
316*231d0edbSAtari9111. Header (clock, weather, stats)
317*231d0edbSAtari9112. **+ ADD EVENT** bar
318*231d0edbSAtari9113. Week grid
319*231d0edbSAtari9114. Event sections
320*231d0edbSAtari911
321*231d0edbSAtari911**After (v3.10.9)**:
322*231d0edbSAtari9111. Header (clock, weather, stats)
323*231d0edbSAtari9112. Week grid (calendar days)
324*231d0edbSAtari9113. **+ ADD EVENT** bar
325*231d0edbSAtari9114. Event sections
326*231d0edbSAtari911
327*231d0edbSAtari911### Benefits:
328*231d0edbSAtari911- Natural reading flow: View calendar → Add event → See events
329*231d0edbSAtari911- Add button positioned between calendar and event list
330*231d0edbSAtari911- Acts as visual separator
331*231d0edbSAtari911- More logical action placement
332*231d0edbSAtari911
333*231d0edbSAtari911## Version 3.10.8 (2026-02-06) - SINGLE COLOR BAR & ZERO MARGIN ADD BAR
334*231d0edbSAtari911- **Removed:** Section color bar (blue/orange/green/purple) - now shows ONLY event color
335*231d0edbSAtari911- **Changed:** Events now display with single 3px color bar (event's assigned color only)
336*231d0edbSAtari911- **Fixed:** Add Event bar now has zero margin (margin:0) - touches header perfectly
337*231d0edbSAtari911- **Simplified:** Cleaner visual with one color bar instead of two
338*231d0edbSAtari911- **Improved:** More space for event content without extra bar
339*231d0edbSAtari911
340*231d0edbSAtari911### Visual Changes:
341*231d0edbSAtari911
342*231d0edbSAtari911**Before (v3.10.7)** - Dual color bars:
343*231d0edbSAtari911```
344*231d0edbSAtari911├─ [Orange][Green]  Event Title
345*231d0edbSAtari911├─ [Blue][Purple]   Event Title
346*231d0edbSAtari911```
347*231d0edbSAtari911
348*231d0edbSAtari911**After (v3.10.8)** - Single color bar:
349*231d0edbSAtari911```
350*231d0edbSAtari911├─ [Green]  Event Title    ← Only event color!
351*231d0edbSAtari911├─ [Purple] Event Title    ← Only event color!
352*231d0edbSAtari911```
353*231d0edbSAtari911
354*231d0edbSAtari911### Add Bar Changes:
355*231d0edbSAtari911- Added `margin:0` to eliminate gaps
356*231d0edbSAtari911- Now flush against header (no space above)
357*231d0edbSAtari911- Now flush against week grid (no space below)
358*231d0edbSAtari911- Perfect seamless connection
359*231d0edbSAtari911
360*231d0edbSAtari911### Technical Changes:
361*231d0edbSAtari911**renderSidebarEvent()**:
362*231d0edbSAtari911- Removed section color bar (4px)
363*231d0edbSAtari911- Kept only event color bar (3px)
364*231d0edbSAtari911
365*231d0edbSAtari911**showDayEvents() JavaScript**:
366*231d0edbSAtari911- Removed section color bar (4px blue)
367*231d0edbSAtari911- Kept only event color bar (3px)
368*231d0edbSAtari911
369*231d0edbSAtari911**Add Event bar**:
370*231d0edbSAtari911- Added `margin:0` inline style
371*231d0edbSAtari911- Removed all top/bottom margins
372*231d0edbSAtari911
373*231d0edbSAtari911## Version 3.10.7 (2026-02-06) - COLOR BARS FIX FOR SECTIONS & DARK GREEN ADD BAR
374*231d0edbSAtari911- **Fixed:** Color bars now display in Today/Tomorrow/Important sections (was only showing in clicked day)
375*231d0edbSAtari911- **Fixed:** Changed Today/Tomorrow/Important event rendering to use `align-self:stretch` instead of `height:100%`
376*231d0edbSAtari911- **Changed:** Add Event bar color from orange to dark green (#006400)
377*231d0edbSAtari911- **Changed:** Add Event bar height increased from 6px to 12px (text no longer cut off)
378*231d0edbSAtari911- **Changed:** Add Event bar text now bright green (#00ff00) with green glow
379*231d0edbSAtari911- **Changed:** Add Event bar font size increased from 7px to 9px
380*231d0edbSAtari911- **Changed:** Add Event bar letter spacing increased to 0.5px
381*231d0edbSAtari911- **Improved:** Hover effect on Add Event bar now darker green (#004d00)
382*231d0edbSAtari911
383*231d0edbSAtari911### Color Bar Fix Details:
384*231d0edbSAtari911**Problem**: Today/Tomorrow/Important sections still used `height:100%` on color bars
385*231d0edbSAtari911**Solution**: Applied same fix as clicked day events:
386*231d0edbSAtari911- Changed parent div: `align-items:start` → `align-items:stretch`
387*231d0edbSAtari911- Added `min-height:20px` to parent
388*231d0edbSAtari911- Changed bars: `height:100%` → `align-self:stretch`
389*231d0edbSAtari911- Bars now properly fill vertical space in ALL sections
390*231d0edbSAtari911
391*231d0edbSAtari911### Add Event Bar Changes:
392*231d0edbSAtari911**Before**:
393*231d0edbSAtari911- Background: Orange (#ff9800)
394*231d0edbSAtari911- Text: Black (#000)
395*231d0edbSAtari911- Height: 6px (text cut off)
396*231d0edbSAtari911- Font: 7px
397*231d0edbSAtari911
398*231d0edbSAtari911**After**:
399*231d0edbSAtari911- Background: Dark green (#006400)
400*231d0edbSAtari911- Text: Bright green (#00ff00) with green glow
401*231d0edbSAtari911- Height: 12px (text fully visible)
402*231d0edbSAtari911- Font: 9px
403*231d0edbSAtari911- Hover: Darker green (#004d00)
404*231d0edbSAtari911- Matrix-themed green aesthetic
405*231d0edbSAtari911
406*231d0edbSAtari911## Version 3.10.6 (2026-02-06) - COLOR BARS FIX, SORTING REVERSAL, CONFLICT BADGE, README UPDATE
407*231d0edbSAtari911- **Fixed:** Event color bars now display correctly in clicked day events
408*231d0edbSAtari911- **Fixed:** Changed sorting - all-day events now appear FIRST, then timed events
409*231d0edbSAtari911- **Added:** Conflict badge (⚠) appears on right side of conflicting events
410*231d0edbSAtari911- **Updated:** Complete README.md rewrite with full Matrix theme documentation
411*231d0edbSAtari911- **Changed:** Color bars use `align-self:stretch` instead of `height:100%` (fixes rendering)
412*231d0edbSAtari911- **Changed:** Parent div uses `align-items:stretch` and `min-height:20px`
413*231d0edbSAtari911- **Improved:** Content wrapper now uses flexbox for proper conflict badge positioning
414*231d0edbSAtari911
415*231d0edbSAtari911### Color Bar Fix:
416*231d0edbSAtari911**Problem**: Bars had `height:100%` but parent had no explicit height
417*231d0edbSAtari911**Solution**:
418*231d0edbSAtari911- Changed to `align-self:stretch` on bars
419*231d0edbSAtari911- Parent uses `align-items:stretch`
420*231d0edbSAtari911- Added `min-height:20px` to parent
421*231d0edbSAtari911- Bars now properly fill vertical space
422*231d0edbSAtari911
423*231d0edbSAtari911### Sorting Change:
424*231d0edbSAtari911**Before**: Timed events first → All-day events last
425*231d0edbSAtari911**After**: All-day events FIRST → Timed events chronologically
426*231d0edbSAtari911
427*231d0edbSAtari911**Example**:
428*231d0edbSAtari911```
429*231d0edbSAtari911Monday, Feb 5
430*231d0edbSAtari911├─ All Day - Project Deadline       ← All-day first
431*231d0edbSAtari911├─ 8:00 AM - Morning Standup        ← Earliest time
432*231d0edbSAtari911├─ 10:30 AM - Coffee with Bob
433*231d0edbSAtari911└─ 2:00 PM - Team Meeting           ← Latest time
434*231d0edbSAtari911```
435*231d0edbSAtari911
436*231d0edbSAtari911### Conflict Badge:
437*231d0edbSAtari911- Orange warning triangle (⚠) on right side
438*231d0edbSAtari911- 10px font size
439*231d0edbSAtari911- Only appears if `event.conflict` is true
440*231d0edbSAtari911- Title attribute shows "Time conflict detected"
441*231d0edbSAtari911- Small and unobtrusive
442*231d0edbSAtari911
443*231d0edbSAtari911### README Update:
444*231d0edbSAtari911- Complete rewrite with Matrix theme focus
445*231d0edbSAtari911- Full usage instructions for all features
446*231d0edbSAtari911- Admin interface documentation
447*231d0edbSAtari911- Outlook sync setup guide
448*231d0edbSAtari911- System monitoring details
449*231d0edbSAtari911- Troubleshooting section
450*231d0edbSAtari911- Color scheme reference
451*231d0edbSAtari911- File structure documentation
452*231d0edbSAtari911- Performance tips
453*231d0edbSAtari911- Security notes
454*231d0edbSAtari911- Quick start examples
455*231d0edbSAtari911
4561d05cddcSAtari911## Version 3.10.5 (2026-02-06) - TIME SORTING & THINNER ADD BAR
4571d05cddcSAtari911- **Added:** Events now sorted by time when clicking week grid days
4581d05cddcSAtari911- **Changed:** Add Event bar now ultra-thin (6px height, down from 12px)
4591d05cddcSAtari911- **Improved:** Events with times appear first, sorted chronologically
4601d05cddcSAtari911- **Improved:** All-day events appear after timed events
4611d05cddcSAtari911- **Changed:** Add Event bar font size reduced to 7px (from 10px)
4621d05cddcSAtari911- **Changed:** Add Event bar now has 0 padding and fixed 6px height
4631d05cddcSAtari911
4641d05cddcSAtari911### Sorting Logic:
4651d05cddcSAtari911- Events with times sorted by time (earliest first)
4661d05cddcSAtari911- All-day events (no time) appear at the end
4671d05cddcSAtari911- Sort algorithm: Convert time to minutes (HH:MM → total minutes) and compare
4681d05cddcSAtari911- Chronological order: 8:00 AM → 10:30 AM → 2:00 PM → All-day event
4691d05cddcSAtari911
4701d05cddcSAtari911### Add Event Bar Changes:
4711d05cddcSAtari911- **Height**: 6px (was ~12px with padding)
4721d05cddcSAtari911- **Padding**: 0 (was 4px top/bottom)
4731d05cddcSAtari911- **Font Size**: 7px (was 10px)
4741d05cddcSAtari911- **Letter Spacing**: 0.3px (was 0.5px)
4751d05cddcSAtari911- **Line Height**: 6px to match height
4761d05cddcSAtari911- **Vertical Align**: Middle for text centering
4771d05cddcSAtari911
4781d05cddcSAtari911## Version 3.10.4 (2026-02-06) - ADD EVENT BAR
4791d05cddcSAtari911- **Added:** Thin orange "Add Event" bar between header and week grid
4801d05cddcSAtari911- **Added:** Quick access to event creation from sidebar widget
4811d05cddcSAtari911- **Styled:** Sleek design with hover effects and glow
4821d05cddcSAtari911- **Interactive:** Clicks navigate to Manage Events tab in admin
4831d05cddcSAtari911- **Improved:** User workflow for adding events from sidebar
4841d05cddcSAtari911
4851d05cddcSAtari911### Visual Design:
4861d05cddcSAtari911- Orange background (#ff9800) matching Today section color
4871d05cddcSAtari911- 4px top/bottom padding for thin, sleek appearance
4881d05cddcSAtari911- Black text with white text-shadow for visibility
4891d05cddcSAtari911- Hover effect: Darkens to #ff7700 with enhanced glow
4901d05cddcSAtari911- Orange glow effect (box-shadow) matching Matrix theme
4911d05cddcSAtari911- Centered "+ ADD EVENT" text (10px, bold, letter-spacing)
4921d05cddcSAtari911
4931d05cddcSAtari911### Technical Changes:
4941d05cddcSAtari911- Added between header close and renderWeekGrid() call
4951d05cddcSAtari911- Inline onclick handler navigates to admin manage tab
4961d05cddcSAtari911- Inline onmouseover/onmouseout for hover effects
4971d05cddcSAtari911- Smooth 0.2s transition on all style changes
4981d05cddcSAtari911
4991d05cddcSAtari911## Version 3.10.3 (2026-02-06) - UI IMPROVEMENTS & CACHE BUTTON RELOCATION
5001d05cddcSAtari911- **Changed:** Update Plugin tab is now the default tab when opening admin
5011d05cddcSAtari911- **Moved:** Clear Cache button relocated from Outlook Sync tab to Update Plugin tab
5021d05cddcSAtari911- **Improved:** Clear Cache button now larger and more prominent with helpful description
5031d05cddcSAtari911- **Improved:** Tab order reorganized: Update Plugin (default) → Outlook Sync → Manage Events
5041d05cddcSAtari911- **Removed:** Debug console.log statements from day event display
5051d05cddcSAtari911- **Fixed:** Cache clear now redirects back to Update Plugin tab instead of Config tab
5061d05cddcSAtari911
5071d05cddcSAtari911### UI Changes:
5081d05cddcSAtari911- Update Plugin tab opens by default (was Config/Outlook Sync tab)
5091d05cddcSAtari911- Clear Cache button prominently displayed at top of Update Plugin tab
5101d05cddcSAtari911- Orange ��️ button (10px 20px padding) with confirmation dialog
5111d05cddcSAtari911- Help text: "Clear the DokuWiki cache if changes aren't appearing or after updating the plugin"
5121d05cddcSAtari911- Success/error messages display on Update Plugin tab after cache clear
5131d05cddcSAtari911- Tab navigation reordered to put Update first
5141d05cddcSAtari911
5151d05cddcSAtari911### Technical Changes:
5161d05cddcSAtari911- Default tab changed from 'config' to 'update' in html() method
5171d05cddcSAtari911- Tab navigation HTML reordered to show Update Plugin tab first
5181d05cddcSAtari911- clearCache() method now redirects with 'update' tab parameter
5191d05cddcSAtari911- Removed Clear Cache button from renderConfigTab()
5201d05cddcSAtari911- Added Clear Cache button to renderUpdateTab() with message display
5211d05cddcSAtari911
5221d05cddcSAtari911## Version 3.10.2 (2026-02-06) - EVENT HTML RENDERING FIX
5231d05cddcSAtari911- **Fixed:** Event formatting (bold, links, italic) now displays correctly when clicking week grid days
5241d05cddcSAtari911- **Added:** renderDokuWikiToHtml() helper function to convert DokuWiki syntax to HTML
5251d05cddcSAtari911- **Changed:** Events in weekEvents now pre-rendered with title_html and description_html fields
5261d05cddcSAtari911- **Improved:** DokuWiki syntax (**bold**, [[links]], //italic//, etc.) properly rendered in clicked day events
5271d05cddcSAtari911
5281d05cddcSAtari911### Technical Changes:
5291d05cddcSAtari911- Added renderDokuWikiToHtml() private function using p_get_instructions() and p_render()
5301d05cddcSAtari911- Events added to weekEvents now include pre-rendered HTML versions
5311d05cddcSAtari911- title_html and description_html fields populated before json_encode()
5321d05cddcSAtari911- JavaScript now receives properly formatted HTML content
5331d05cddcSAtari911
5341d05cddcSAtari911## Version 3.10.1 (2026-02-06) - TOOLTIP FIX & WEATHER & CACHE BUTTON
5351d05cddcSAtari911- **Fixed:** System tooltip functions now use sanitized calId (showTooltip_sidebar_abc123 instead of showTooltip_sidebar-abc123)
5361d05cddcSAtari911- **Fixed:** HTML event handlers now call correctly sanitized function names
5371d05cddcSAtari911- **Fixed:** Weather temperature now updates correctly in sidebar widget
5381d05cddcSAtari911- **Added:** Weather update function to sidebar widget JavaScript
5391d05cddcSAtari911- **Added:** "Clear Cache" button in admin panel for easy cache refresh
5401d05cddcSAtari911- **Added:** Default weather location set to Irvine, CA when geolocation unavailable
5411d05cddcSAtari911- **Improved:** All tooltip functions now work correctly on system status bars
5421d05cddcSAtari911
5431d05cddcSAtari911### Technical Changes:
5441d05cddcSAtari911- Changed tooltip function names to use $jsCalId instead of $calId
5451d05cddcSAtari911- Changed HTML onmouseover/onmouseout to use $jsCalId
5461d05cddcSAtari911- Added updateWeather() function to sidebar widget
5471d05cddcSAtari911- Added getWeatherIcon() function to sidebar widget
5481d05cddcSAtari911- Added clearCache() method in admin.php
5491d05cddcSAtari911- Added recursiveDelete() helper method in admin.php
5501d05cddcSAtari911- Admin UI now has ��️ Clear Cache button alongside Export/Import
5511d05cddcSAtari911
5521d05cddcSAtari911## Version 3.10.0 (2026-02-06) - JAVASCRIPT FIXES
5531d05cddcSAtari911- **Fixed:** JavaScript syntax error "Missing initializer in const declaration"
5541d05cddcSAtari911- **Fixed:** Event links and formatting not displaying in clicked day events
5551d05cddcSAtari911- **Fixed:** Sanitized calId to jsCalId by replacing dashes with underscores
5561d05cddcSAtari911- **Changed:** Event titles now use `title_html` field to preserve HTML formatting
5571d05cddcSAtari911- **Changed:** Event descriptions now use `description_html` field to preserve links and formatting
5581d05cddcSAtari911- **Improved:** All JavaScript variable names now use valid syntax
5591d05cddcSAtari911- **Improved:** Links, bold, italic, and other HTML formatting preserved in events
5601d05cddcSAtari911
5611d05cddcSAtari911### Technical Changes:
5621d05cddcSAtari911- Added variable sanitization: `$jsCalId = str_replace('-', '_', $calId);`
5631d05cddcSAtari911- JavaScript variables now use underscores instead of dashes
5641d05cddcSAtari911- Event HTML rendering preserves DokuWiki formatting
5651d05cddcSAtari911- Fixed "showTooltip_sidebar is not defined" errors
5661d05cddcSAtari911- Fixed "showDayEvents_cal is not defined" errors
5671d05cddcSAtari911
5681d05cddcSAtari911## Version 3.9.9 (2026-02-06) - JAVASCRIPT LOADING ORDER FIX
5691d05cddcSAtari911- **Fixed:** Critical JavaScript loading order issue causing ReferenceError
5701d05cddcSAtari911- **Fixed:** Functions now defined BEFORE HTML that uses them
5711d05cddcSAtari911- **Changed:** Consolidated all JavaScript into single comprehensive script block
5721d05cddcSAtari911- **Removed:** ~290 lines of duplicate JavaScript code
5731d05cddcSAtari911- **Added:** Shared state management with `sharedState_[calId]` object
5741d05cddcSAtari911- **Improved:** System tooltip functions now work correctly
5751d05cddcSAtari911- **Improved:** Week grid click events now work correctly
5761d05cddcSAtari911
5771d05cddcSAtari911### Technical Changes:
5781d05cddcSAtari911- Moved all JavaScript to beginning of widget (before HTML)
5791d05cddcSAtari911- Removed duplicate script blocks
5801d05cddcSAtari911- Unified tooltip and stats functions
5811d05cddcSAtari911- Shared latestStats and cpuHistory state
5821d05cddcSAtari911- Fixed "Uncaught ReferenceError: showTooltip_sidebar is not defined"
5831d05cddcSAtari911
5841d05cddcSAtari911## Version 3.9.8 (2026-02-05) - DUAL COLOR BARS & CLICK EVENTS
5851d05cddcSAtari911- **Added:** Dual color bars on events (section color + event color)
5861d05cddcSAtari911- **Added:** Click week grid days to view events (replaced hover tooltips)
5871d05cddcSAtari911- **Added:** Expandable section below week grid for selected day events
5881d05cddcSAtari911- **Added:** Blue theme for selected day section
5891d05cddcSAtari911- **Changed:** Week grid days now clickable instead of tooltips
5901d05cddcSAtari911- **Changed:** Section bar: 4px wide (left)
5911d05cddcSAtari911- **Changed:** Event bar: 3px wide (right)
5921d05cddcSAtari911- **Increased:** Gap between color bars from 3px to 6px
5931d05cddcSAtari911- **Improved:** Click is more reliable and mobile-friendly than hover tooltips
5941d05cddcSAtari911
5951d05cddcSAtari911### Visual Changes:
5961d05cddcSAtari911- Each event shows TWO color bars side-by-side
5971d05cddcSAtari911- Left bar (4px): Section context (Today=Orange, Tomorrow=Green, Important=Purple, Selected=Blue)
5981d05cddcSAtari911- Right bar (3px): Individual event's assigned color
5991d05cddcSAtari911- Click any day in week grid to expand event list
6001d05cddcSAtari911- X button to close selected day events
6011d05cddcSAtari911
6021d05cddcSAtari911## Version 3.9.7 (2026-02-05) - EVENT COLOR BAR VISIBILITY
6031d05cddcSAtari911- **Increased:** Event color bar width from 2px to 3px
6041d05cddcSAtari911- **Increased:** Gap between section and event bars from 3px to 6px
6051d05cddcSAtari911- **Improved:** Event color bars now more visible alongside section bars
6061d05cddcSAtari911- **Note:** Dual color bar system already in place from v3.9.6
6071d05cddcSAtari911
6081d05cddcSAtari911## Version 3.9.6 (2026-02-05) - UI REFINEMENTS
6091d05cddcSAtari911- **Changed:** Date in Important Events moved below event name (was above)
6101d05cddcSAtari911- **Changed:** Section headers now 9px font size (was 10px)
6111d05cddcSAtari911- **Changed:** Section headers now normal case (was ALL CAPS)
6121d05cddcSAtari911- **Changed:** Letter spacing reduced from 0.8px to 0.3px
6131d05cddcSAtari911- **Improved:** More natural reading flow with date below event name
6141d05cddcSAtari911- **Improved:** Cleaner, more subtle section headers
6151d05cddcSAtari911
6161d05cddcSAtari911### Header Changes:
6171d05cddcSAtari911- "TODAY" → "Today"
6181d05cddcSAtari911- "TOMORROW" → "Tomorrow"
6191d05cddcSAtari911- "IMPORTANT EVENTS" → "Important Events"
6201d05cddcSAtari911
6211d05cddcSAtari911## Version 3.9.0 (2026-02-05) - SIDEBAR WIDGET REDESIGN
6221d05cddcSAtari911- **Redesigned:** Complete overhaul of `sidebar` parameter
6231d05cddcSAtari911- **Added:** Compact week-at-a-glance itinerary view (200px wide)
6241d05cddcSAtari911- **Added:** Live clock widget at top of sidebar
6251d05cddcSAtari911- **Added:** 7-cell week grid showing event bars
6261d05cddcSAtari911- **Added:** Today section with orange header and left border
6271d05cddcSAtari911- **Added:** Tomorrow section with green header and left border
6281d05cddcSAtari911- **Added:** Important Events section with purple header and left border
6291d05cddcSAtari911- **Added:** Admin setting to configure important namespaces
6301d05cddcSAtari911- **Added:** Time conflict badges in sidebar events
6311d05cddcSAtari911- **Added:** Task checkboxes in sidebar events
6321d05cddcSAtari911- **Changed:** Sidebar now optimized for narrow spaces (200px)
6331d05cddcSAtari911- **Improved:** Perfect for dashboards, page sidebars, and quick glance widgets
6341d05cddcSAtari911
6351d05cddcSAtari911### New Features:
6361d05cddcSAtari911- Clock updates every second showing current time
6371d05cddcSAtari911- Week grid shows Mon-Sun with colored event bars
6381d05cddcSAtari911- Today/Tomorrow sections show full event details
6391d05cddcSAtari911- Important events highlighted in purple (configurable namespaces)
6401d05cddcSAtari911- All badges (conflict, time, etc.) shown in compact format
6411d05cddcSAtari911- Automatic time conflict detection
6421d05cddcSAtari911
6431d05cddcSAtari911## Version 3.8.0 (2026-02-05) - PRODUCTION CLEANUP
6441d05cddcSAtari911- **Removed:** 16 unused/debug/backup files
6451d05cddcSAtari911- **Removed:** 69 console.log() debug statements
6461d05cddcSAtari911- **Removed:** 3 orphaned object literals from console.log removal
6471d05cddcSAtari911- **Removed:** Temporary comments and markers
6481d05cddcSAtari911- **Fixed:** JavaScript syntax errors from cleanup
6491d05cddcSAtari911- **Improved:** Code quality and maintainability
6501d05cddcSAtari911- **Improved:** Reduced plugin size by removing unnecessary files
6511d05cddcSAtari911- **Status:** Production-ready, fully cleaned codebase
6521d05cddcSAtari911
6531d05cddcSAtari911### Files Removed:
6541d05cddcSAtari911- style.css.backup, script.js.backup
6551d05cddcSAtari911- admin_old_backup.php, admin_minimal.php, admin_new.php, admin_clean.php
6561d05cddcSAtari911- debug_events.php, debug_html.php, cleanup_events.php
6571d05cddcSAtari911- fix_corrupted_json.php, fix_wildcard_namespaces.php
6581d05cddcSAtari911- find_outlook_duplicates.php, update_namespace.php
6591d05cddcSAtari911- validate_calendar_json.php, admin.js
6601d05cddcSAtari911- test_date_field.html
6611d05cddcSAtari911
6621d05cddcSAtari911## Version 3.7.5 (2026-02-05)
6631d05cddcSAtari911- **Fixed:** PHP syntax error (duplicate foreach loop removed)
6641d05cddcSAtari911- **Fixed:** Time variable handling in grace period logic
6651d05cddcSAtari911
6661d05cddcSAtari911## Version 3.7.4 (2026-02-05)
6671d05cddcSAtari911- **Added:** 15-minute grace period for timed events
6681d05cddcSAtari911- **Changed:** Events with times now stay visible for 15 minutes after their start time
6691d05cddcSAtari911- **Changed:** Prevents events from immediately disappearing when they start
6701d05cddcSAtari911- **Improved:** Better user experience for ongoing events
6711d05cddcSAtari911- **Fixed:** Events from earlier today now properly handled with grace period
6721d05cddcSAtari911
6731d05cddcSAtari911## Version 3.7.3 (2026-02-05)
6741d05cddcSAtari911- **Changed:** Complete redesign of cleanup section for compact, sleek layout
6751d05cddcSAtari911- **Changed:** Radio buttons now in single row at top
6761d05cddcSAtari911- **Changed:** All options visible with grayed-out inactive states (opacity 0.4)
6771d05cddcSAtari911- **Changed:** Inline controls - no more grid layout or wrapper boxes
6781d05cddcSAtari911- **Changed:** Namespace filter now compact single-line input
6791d05cddcSAtari911- **Changed:** Smaller buttons and tighter spacing throughout
6801d05cddcSAtari911- **Improved:** More professional, space-efficient design
6811d05cddcSAtari911
6821d05cddcSAtari911## Version 3.7.2 (2026-02-04)
6831d05cddcSAtari911- **Fixed:** Strange boxes under cleanup options - now properly hidden
6841d05cddcSAtari911- **Changed:** Unified color scheme across all admin sections
6851d05cddcSAtari911- **Changed:** Green (#00cc07) - Primary actions and main theme
6861d05cddcSAtari911- **Changed:** Orange (#ff9800) - Warnings and cleanup features
6871d05cddcSAtari911- **Changed:** Purple (#7b1fa2) - Secondary actions and accents
6881d05cddcSAtari911- **Improved:** Consistent visual design throughout admin interface
6891d05cddcSAtari911
6901d05cddcSAtari911## Version 3.7.1 (2026-02-04)
6911d05cddcSAtari911- **Fixed:** Cleanup section background changed from orange to white
6921d05cddcSAtari911- **Fixed:** Event cleanup now properly scans all calendar directories
6931d05cddcSAtari911- **Added:** Debug info display when preview finds no events
6941d05cddcSAtari911- **Improved:** Better directory scanning logic matching other features
6951d05cddcSAtari911
6961d05cddcSAtari911## Version 3.7.0 (2026-02-04)
6971d05cddcSAtari911- **Added:** Event cleanup feature in Events Manager
6981d05cddcSAtari911- **Added:** Delete old events by age (months/years old)
6991d05cddcSAtari911- **Added:** Delete events by status (completed tasks, past events)
7001d05cddcSAtari911- **Added:** Delete events by date range
7011d05cddcSAtari911- **Added:** Namespace filter for targeted cleanup
7021d05cddcSAtari911- **Added:** Preview function to see what will be deleted
7031d05cddcSAtari911- **Added:** Automatic backup creation before cleanup
7041d05cddcSAtari911- **Changed:** Reduced changelog viewer height to 100px (was 400px)
7051d05cddcSAtari911
7061d05cddcSAtari911## Version 3.6.3 (2026-02-04)
7071d05cddcSAtari911- **Fixed:** Conflict tooltips now work properly after navigating between months
7081d05cddcSAtari911- **Added:** Changelog display in Update Plugin tab
7091d05cddcSAtari911- **Added:** CHANGELOG.md file with version history
7101d05cddcSAtari911- **Improved:** Changelog shows last 10 versions with color-coded change types
7111d05cddcSAtari911- **Fixed:** Removed debug console.log statements
7121d05cddcSAtari911
7131d05cddcSAtari911## Version 3.6.2 (2026-02-04)
7141d05cddcSAtari911- **Fixed:** Month title now updates correctly when navigating between months
7151d05cddcSAtari911- **Changed:** All eventpanel header elements reduced by 10% for more compact design
7161d05cddcSAtari911- **Changed:** Reduced header height from 78px to 70px
7171d05cddcSAtari911
7181d05cddcSAtari911## Version 3.6.1 (2026-02-04)
7191d05cddcSAtari911- **Changed:** Complete redesign of eventpanel header with practical two-row layout
7201d05cddcSAtari911- **Fixed:** Improved layout for narrow widths (~500px)
7211d05cddcSAtari911- **Changed:** Simplified color scheme (removed purple gradient)
7221d05cddcSAtari911
7231d05cddcSAtari911## Version 3.6.0 (2026-02-04)
7241d05cddcSAtari911- **Changed:** Redesigned eventpanel header with gradient background
7251d05cddcSAtari911- **Changed:** Consolidated multiple header rows into compact single-row design
7261d05cddcSAtari911
7271d05cddcSAtari911## Version 3.5.1 (2026-02-04)
7281d05cddcSAtari911- **Changed:** Moved event search bar into header row next to + Add button
7291d05cddcSAtari911- **Improved:** More compact UI with search integrated into header
7301d05cddcSAtari911
7311d05cddcSAtari911## Version 3.5.0 (2026-02-04)
7321d05cddcSAtari911- **Added:** Event search functionality in sidebar and eventpanel
7331d05cddcSAtari911- **Added:** Real-time filtering as you type
7341d05cddcSAtari911- **Added:** Clear button (✕) appears when searching
7351d05cddcSAtari911- **Added:** "No results" message when search returns nothing
7361d05cddcSAtari911
7371d05cddcSAtari911## Version 3.4.7 (2026-02-04)
7381d05cddcSAtari911- **Changed:** Made conflict badges smaller and more subtle (9px font, less padding)
7391d05cddcSAtari911- **Fixed:** Removed debug logging from console
7401d05cddcSAtari911- **Changed:** Updated export version number to match plugin version
7411d05cddcSAtari911
7421d05cddcSAtari911## Version 3.4.6 (2026-02-04)
7431d05cddcSAtari911- **Added:** Debug logging to diagnose conflict detection issues
7441d05cddcSAtari911- **Development:** Extensive console logging for troubleshooting
7451d05cddcSAtari911
7461d05cddcSAtari911## Version 3.4.5 (2026-02-04)
7471d05cddcSAtari911- **Added:** Debug logging to showDayPopup and conflict detection
7481d05cddcSAtari911- **Development:** Added logging to trace conflict detection flow
7491d05cddcSAtari911
7501d05cddcSAtari911## Version 3.4.4 (2026-02-04)
7511d05cddcSAtari911- **Fixed:** Conflict detection now persists across page refreshes (PHP-based)
7521d05cddcSAtari911- **Fixed:** Conflict tooltips now appear on hover
7531d05cddcSAtari911- **Added:** Dual conflict detection (PHP for initial load, JavaScript for navigation)
7541d05cddcSAtari911- **Added:** Conflict badges in both future and past events sections
7551d05cddcSAtari911
7561d05cddcSAtari911## Version 3.4.3 (2026-02-04)
7571d05cddcSAtari911- **Added:** Custom styled conflict tooltips with hover functionality
7581d05cddcSAtari911- **Changed:** Conflict badge shows count of conflicts (e.g., ⚠️ 2)
7591d05cddcSAtari911- **Improved:** Beautiful tooltip design with orange header and clean formatting
7601d05cddcSAtari911
7611d05cddcSAtari911## Version 3.4.2 (2026-02-04)
7621d05cddcSAtari911- **Fixed:** Attempted to fix tooltip newlines (reverted in 3.4.3)
7631d05cddcSAtari911
7641d05cddcSAtari911## Version 3.4.1 (2026-02-04)
7651d05cddcSAtari911- **Fixed:** End time field now properly saves to database
7661d05cddcSAtari911- **Fixed:** End time dropdown now filters to show only valid times after start time
7671d05cddcSAtari911- **Added:** Smart dropdown behavior - expands on focus, filters invalid options
7681d05cddcSAtari911- **Improved:** End time auto-suggests +1 hour when start time selected
7691d05cddcSAtari911
7701d05cddcSAtari911## Version 3.4.0 (2026-02-04)
7711d05cddcSAtari911- **Added:** End time support for events (start and end times)
7721d05cddcSAtari911- **Added:** Automatic time conflict detection
7731d05cddcSAtari911- **Added:** Conflict warning badges (⚠️) on events with overlapping times
7741d05cddcSAtari911- **Added:** Conflict tooltips showing which events conflict
7751d05cddcSAtari911- **Added:** Visual conflict indicators with pulse animation
7761d05cddcSAtari911- **Changed:** Time display now shows ranges (e.g., "2:00 PM - 4:00 PM")
7771d05cddcSAtari911
7781d05cddcSAtari911## Version 3.3.77 (2026-02-04)
7791d05cddcSAtari911- **Fixed:** Namespace badge onclick handlers restored after clearing filter
7801d05cddcSAtari911- **Fixed:** Namespace filtering works infinitely (filter → clear → filter)
7811d05cddcSAtari911
7821d05cddcSAtari911## Version 3.3.76 (2026-02-04)
7831d05cddcSAtari911- **Fixed:** Namespace badges now clickable after clearing namespace filter
7841d05cddcSAtari911
7851d05cddcSAtari911## Version 3.3.75 (2026-02-04)
7861d05cddcSAtari911- **Fixed:** Form resubmission warnings eliminated
7871d05cddcSAtari911- **Improved:** Implemented proper POST-Redirect-GET pattern with HTTP 303
7881d05cddcSAtari911- **Changed:** All admin redirects now use absolute URLs
7891d05cddcSAtari911
7901d05cddcSAtari911## Version 3.3.74 (2026-02-04)
7911d05cddcSAtari911- **Fixed:** Clearing namespace filter now restores original namespace instead of default
7921d05cddcSAtari911- **Added:** data-original-namespace attribute to preserve initial namespace setting
7931d05cddcSAtari911- **Improved:** Console logging for namespace filter debugging
7941d05cddcSAtari911
7951d05cddcSAtari911## Version 3.3.73 (2026-02-03)
7961d05cddcSAtari911- **Added:** Dynamic namespace filtering banner with clear button
7971d05cddcSAtari911- **Fixed:** JavaScript function accessibility issues
7981d05cddcSAtari911- **Fixed:** Namespace badge click handlers in event lists
7991d05cddcSAtari911- **Improved:** Persistent namespace filtering across views
8001d05cddcSAtari911
8011d05cddcSAtari911## Earlier Versions
8021d05cddcSAtari911See previous transcripts for complete history through v3.3.73, including:
8031d05cddcSAtari911- Recurring events with Outlook sync
8041d05cddcSAtari911- Multi-namespace support
8051d05cddcSAtari911- Event categories and mapping
8061d05cddcSAtari911- Backup/restore functionality
8071d05cddcSAtari911- System statistics bar
8081d05cddcSAtari911- Namespace selector with fuzzy search
8091d05cddcSAtari911- Events Manager with import/export
8101d05cddcSAtari911- And much more...
811