1# Calendar Plugin Changelog
2
3## Version 4.0.0 (2026-02-06) - MATRIX EDITION RELEASE ��
4
5**Major Release**: Complete Matrix-themed calendar plugin with advanced features!
6
7### �� Major Features
8
9#### Sidebar Widget
10- **Week Grid**: Interactive 7-day calendar with click-to-view events
11- **Live System Monitoring**: CPU load, real-time CPU, memory usage with tooltips
12- **Live Clock**: Updates every second with date display
13- **Real-time Weather**: Geolocation-based temperature with icon
14- **Event Sections**: Today (orange), Tomorrow (green), Important (purple)
15- **Add Event Button**: Dark green bar opens full event creation dialog
16- **Matrix Theme**: Green glow effects throughout
17
18#### Event Management
19- **Single Color Bars**: Clean 3px bars showing event's assigned color
20- **All-Day Events First**: Then sorted chronologically by time
21- **Conflict Detection**: Orange ⚠ badge on overlapping events
22- **Rich Content**: Full DokuWiki formatting (**bold**, [[links]], //italic//)
23- **HTML Rendering**: Pre-rendered for JavaScript display
24- **Click-to-View**: Click week grid days to expand event details
25
26#### Admin Interface
27- **Update Plugin Tab** (Default): Version info, changelog, prominent Clear Cache button
28- **Outlook Sync Tab**: Microsoft Azure integration, category mapping, sync settings
29- **Manage Events Tab**: Browse, edit, delete, move events across namespaces
30
31#### Outlook Sync
32- **Bi-directional Sync**: DokuWiki ↔ Microsoft Outlook
33- **Category Mapping**: Map colors to Outlook categories
34- **Conflict Resolution**: Time conflict detection
35- **Import/Export Config**: Encrypted configuration files
36
37### �� Design
38- **Matrix Theme**: Authentic green glow aesthetic
39- **Dark Backgrounds**: #1a1a1a header, rgba(36, 36, 36) sections
40- **Color Scheme**:
41  - Today: Orange #ff9800
42  - Tomorrow: Green #4caf50
43  - Important: Purple #9b59b6
44  - Add Event: Dark green #006400
45  - System bars: Green/Purple/Orange
46
47### �� Technical Highlights
48- **Zero-margin Design**: Perfect flush alignment throughout
49- **Flexbox Layout**: Modern, responsive structure
50- **AJAX Operations**: No page reloads needed
51- **Smart Sorting**: All-day events first, then chronological
52- **Tooltip System**: Detailed stats on hover (working correctly)
53- **Event Dialog**: Full form with drag support
54- **Cache Management**: One-click cache clearing
55
56### �� Breaking Changes from v3.x
57- Removed dual color bars (now single event color bar only)
58- Add Event button moved to between header and week grid
59- All-day events now appear FIRST (not last)
60- Update Plugin tab is now the default admin tab
61
62### �� Bug Fixes (v3.10.x → v4.0.0)
63- ✅ Fixed color bars not showing (align-self:stretch vs height:100%)
64- ✅ Fixed tooltip function naming (sanitized calId for JavaScript)
65- ✅ Fixed weather display (added updateWeather function)
66- ✅ Fixed HTML rendering in events (title_html/description_html fields)
67- ✅ Fixed Add Event dialog (null check for calendar element)
68- ✅ Fixed text positioning in Add Event button
69- ✅ Fixed spacing throughout sidebar widget
70
71### �� Complete Feature List
72- Full calendar view (month grid)
73- Sidebar widget (week view)
74- Event panel (standalone)
75- Event list (date ranges)
76- Namespace support
77- Color coding
78- Time conflict detection
79- DokuWiki syntax in events
80- Outlook synchronization
81- System monitoring
82- Weather display
83- Live clock
84- Admin interface
85- Cache management
86- Draggable dialogs
87- AJAX save/edit/delete
88- Import/export config
89
90### �� Usage
91
92**Sidebar Widget**:
93```
94{{calendar sidebar}}
95{{calendar sidebar namespace=team}}
96```
97
98**Full Calendar**:
99```
100{{calendar}}
101{{calendar year=2026 month=6 namespace=team}}
102```
103
104**Event Panel**:
105```
106{{eventpanel}}
107```
108
109**Event List**:
110```
111{{eventlist daterange=2026-01-01:2026-01-31}}
112```
113
114### �� Stats
115- **40+ versions** developed during v3.x iterations
116- **3.10.0 → 3.11.4**: Polish and refinement
117- **4.0.0**: Production-ready Matrix Edition
118
119### �� Credits
120Massive iteration and refinement session resulting in a polished, feature-complete calendar plugin with authentic Matrix aesthetics and enterprise-grade Outlook integration.
121
122---
123
124## Previous Versions (v3.11.4 and earlier)
125
126## Version 3.11.4 (2026-02-06) - RESTORE HEADER BOTTOM SPACING
127- **Changed:** Restored 2px bottom padding to header (was 0px, now 2px)
128- **Improved:** Small breathing room between system stats bars and Add Event button
129- **Visual:** Better spacing for cleaner appearance
130
131### CSS Change:
132**eventlist-today-header**:
133- `padding: 6px 10px 0 10px` → `padding: 6px 10px 2px 10px`
134
135### Visual Result:
136```
137│  ▓▓▓░░ ▓▓░░░ ▓▓▓▓░  │  ← Stats bars
138│                       │  ← 2px space (restored)
139├───────────────────────┤
140│  + ADD EVENT          │  ← Add Event bar
141├───────────────────────┤
142```
143
144**Before (v3.11.3)**: No space, bars directly touch Add Event button
145**After (v3.11.4)**: 2px breathing room for better visual hierarchy
146
147## Version 3.11.3 (2026-02-06) - FIX ADD EVENT DIALOG & TEXT POSITION
148- **Fixed:** openAddEvent() function now checks if calendar element exists before reading dataset
149- **Fixed:** Add Event button no longer throws "Cannot read properties of null" error
150- **Changed:** Add Event text moved up 1px (position:relative; top:-1px)
151- **Changed:** Line-height reduced from 12px to 10px for better text centering
152- **Improved:** openAddEvent() works for both regular calendars and sidebar widgets
153
154### JavaScript Fix:
155**Problem**: Line 1084-1085 in calendar-main.js
156```javascript
157const calendar = document.getElementById(calId);
158const filteredNamespace = calendar.dataset.filteredNamespace; // ← Null error!
159```
160
161**Solution**: Added null check
162```javascript
163const calendar = document.getElementById(calId);
164const filteredNamespace = calendar ? calendar.dataset.filteredNamespace : null;
165```
166
167**Why This Happened**:
168- Regular calendar has element with id=calId
169- Sidebar widget doesn't have this element (different structure)
170- Code tried to read .dataset on null, causing error
171
172### Text Position Fix:
173**Before**:
174- line-height: 12px
175- vertical-align: middle
176- Text slightly low
177
178**After**:
179- line-height: 10px
180- position: relative; top: -1px
181- Text perfectly centered
182
183### What Works Now:
184✅ Click "+ ADD EVENT" in sidebar → Dialog opens
185✅ No console errors
186✅ Text properly centered vertically
187✅ Form pre-filled with today's date
188✅ Save works correctly
189
190## Version 3.11.2 (2026-02-06) - ADD EVENT DIALOG IN SIDEBAR
191- **Added:** Event dialog to sidebar widget (same as regular calendar)
192- **Changed:** Add Event button now opens proper event form dialog
193- **Added:** renderEventDialog() called in renderSidebarWidget()
194- **Fixed:** Add Event button calls openAddEvent() with calId, namespace, and today's date
195- **Improved:** Can now add events directly from sidebar widget
196
197### Add Event Button Behavior:
198**Before (v3.11.1)**: Showed alert with instructions
199**After (v3.11.2)**: Opens full event creation dialog
200
201**Dialog Features**:
202- Date field (defaults to today)
203- Title field (required)
204- Time field (optional)
205- End time field (optional)
206- Color picker
207- Category field
208- Description field
209- Save and Cancel buttons
210- Draggable dialog
211
212### Technical Changes:
213- Added `$html .= $this->renderEventDialog($calId, $namespace);` at end of renderSidebarWidget()
214- Changed Add Event onclick from alert to `openAddEvent('calId', 'namespace', 'YYYY-MM-DD')`
215- Dialog uses same structure as regular calendar
216- Uses existing openAddEvent() and saveEventCompact() JavaScript functions
217
218### User Flow:
2191. User clicks "+ ADD EVENT" green bar
2202. Event dialog opens with today's date pre-filled
2213. User fills in event details
2224. User clicks Save
2235. Event saved via AJAX
2246. Dialog closes
2257. Sidebar refreshes to show new event
226
227## Version 3.11.1 (2026-02-06) - FLUSH HEADER & ADD EVENT DIALOG
228- **Fixed:** Removed bottom padding from header (was 2px, now 0)
229- **Fixed:** Removed margin from stats container (was margin-top:2px, now margin:0)
230- **Fixed:** Add Event bar now flush against header with zero gap
231- **Changed:** Add Event button now shows helpful alert dialog instead of navigating to admin
232- **Improved:** Alert provides clear instructions on how to add events
233
234### CSS Changes:
235**eventlist-today-header**:
236- `padding: 6px 10px 2px 10px` → `padding: 6px 10px 0 10px` (removed 2px bottom)
237
238**eventlist-stats-container**:
239- `margin-top: 2px` → `margin: 0` (removed all margins)
240
241### Add Event Button Behavior:
242**Before**: Clicked → Navigated to Admin → Manage Events tab
243**After**: Clicked → Shows alert with instructions
244
245**Alert Message**:
246```
247To add an event, go to:
248Admin → Calendar Management → Manage Events tab
249or use the full calendar view {{calendar}}
250```
251
252### Visual Result:
253```
254│  ▓▓▓░░ ▓▓░░░ ▓▓▓▓░  │  ← Stats (no margin-bottom)
255├────────────────────────┤
256│  + ADD EVENT           │  ← Perfectly flush!
257├────────────────────────┤
258```
259
260No gaps, perfectly aligned!
261
262## Version 3.11.0 (2026-02-06) - ADD EVENT BAR FINAL POSITION & SIZE
263- **Moved:** Add Event bar back to original position (between header and week grid)
264- **Changed:** Font size reduced from 9px to 8px (prevents text cutoff)
265- **Changed:** Letter spacing reduced from 0.5px to 0.4px
266- **Fixed:** Text now fully visible without being cut off
267- **Final:** Optimal position and size determined
268
269### Final Layout:
270```
271┌─────────────────────────────┐
272│  Clock | Weather | Stats    │  ← Header
273├─────────────────────────────┤
274│  + ADD EVENT                 │  ← Bar (back here, smaller text)
275├─────────────────────────────┤
276│  M  T  W  T  F  S  S        │  ← Week Grid
277│  3  4  5  6  7  8  9        │
278├─────────────────────────────┤
279│  Today                       │  ← Event sections
280└─────────────────────────────┘
281```
282
283### Text Size Changes:
284**v3.10.9**: 9px font, 0.5px letter-spacing → Text slightly cut off
285**v3.11.0**: 8px font, 0.4px letter-spacing → Text fully visible
286
287### Why This Position:
288- Separates header from calendar
289- Natural action point after viewing stats
290- Users see stats → decide to add event → view calendar
291- Consistent with original design intent
292
293## Version 3.10.9 (2026-02-06) - ADD EVENT BAR MOVED BELOW WEEK GRID
294- **Moved:** Add Event bar repositioned from between header/grid to below week grid
295- **Improved:** Better visual flow - header → stats → grid → add button → events
296- **Changed:** Add Event bar now acts as separator between calendar and event sections
297
298### New Layout:
299```
300┌─────────────────────────────┐
301│  Clock | Weather | Stats    │  ← Header
302├─────────────────────────────┤
303│  M  T  W  T  F  S  S        │  ← Week Grid
304│  3  4  5  6  7  8  9        │
305├─────────────────────────────┤
306│  + ADD EVENT                 │  ← Add bar (moved here!)
307├─────────────────────────────┤
308│  Today                       │  ← Event sections
309│  Tomorrow                    │
310│  Important Events            │
311└─────────────────────────────┘
312```
313
314### Visual Flow:
315**Before (v3.10.8)**:
3161. Header (clock, weather, stats)
3172. **+ ADD EVENT** bar
3183. Week grid
3194. Event sections
320
321**After (v3.10.9)**:
3221. Header (clock, weather, stats)
3232. Week grid (calendar days)
3243. **+ ADD EVENT** bar
3254. Event sections
326
327### Benefits:
328- Natural reading flow: View calendar → Add event → See events
329- Add button positioned between calendar and event list
330- Acts as visual separator
331- More logical action placement
332
333## Version 3.10.8 (2026-02-06) - SINGLE COLOR BAR & ZERO MARGIN ADD BAR
334- **Removed:** Section color bar (blue/orange/green/purple) - now shows ONLY event color
335- **Changed:** Events now display with single 3px color bar (event's assigned color only)
336- **Fixed:** Add Event bar now has zero margin (margin:0) - touches header perfectly
337- **Simplified:** Cleaner visual with one color bar instead of two
338- **Improved:** More space for event content without extra bar
339
340### Visual Changes:
341
342**Before (v3.10.7)** - Dual color bars:
343```
344├─ [Orange][Green]  Event Title
345├─ [Blue][Purple]   Event Title
346```
347
348**After (v3.10.8)** - Single color bar:
349```
350├─ [Green]  Event Title    ← Only event color!
351├─ [Purple] Event Title    ← Only event color!
352```
353
354### Add Bar Changes:
355- Added `margin:0` to eliminate gaps
356- Now flush against header (no space above)
357- Now flush against week grid (no space below)
358- Perfect seamless connection
359
360### Technical Changes:
361**renderSidebarEvent()**:
362- Removed section color bar (4px)
363- Kept only event color bar (3px)
364
365**showDayEvents() JavaScript**:
366- Removed section color bar (4px blue)
367- Kept only event color bar (3px)
368
369**Add Event bar**:
370- Added `margin:0` inline style
371- Removed all top/bottom margins
372
373## Version 3.10.7 (2026-02-06) - COLOR BARS FIX FOR SECTIONS & DARK GREEN ADD BAR
374- **Fixed:** Color bars now display in Today/Tomorrow/Important sections (was only showing in clicked day)
375- **Fixed:** Changed Today/Tomorrow/Important event rendering to use `align-self:stretch` instead of `height:100%`
376- **Changed:** Add Event bar color from orange to dark green (#006400)
377- **Changed:** Add Event bar height increased from 6px to 12px (text no longer cut off)
378- **Changed:** Add Event bar text now bright green (#00ff00) with green glow
379- **Changed:** Add Event bar font size increased from 7px to 9px
380- **Changed:** Add Event bar letter spacing increased to 0.5px
381- **Improved:** Hover effect on Add Event bar now darker green (#004d00)
382
383### Color Bar Fix Details:
384**Problem**: Today/Tomorrow/Important sections still used `height:100%` on color bars
385**Solution**: Applied same fix as clicked day events:
386- Changed parent div: `align-items:start` → `align-items:stretch`
387- Added `min-height:20px` to parent
388- Changed bars: `height:100%` → `align-self:stretch`
389- Bars now properly fill vertical space in ALL sections
390
391### Add Event Bar Changes:
392**Before**:
393- Background: Orange (#ff9800)
394- Text: Black (#000)
395- Height: 6px (text cut off)
396- Font: 7px
397
398**After**:
399- Background: Dark green (#006400)
400- Text: Bright green (#00ff00) with green glow
401- Height: 12px (text fully visible)
402- Font: 9px
403- Hover: Darker green (#004d00)
404- Matrix-themed green aesthetic
405
406## Version 3.10.6 (2026-02-06) - COLOR BARS FIX, SORTING REVERSAL, CONFLICT BADGE, README UPDATE
407- **Fixed:** Event color bars now display correctly in clicked day events
408- **Fixed:** Changed sorting - all-day events now appear FIRST, then timed events
409- **Added:** Conflict badge (⚠) appears on right side of conflicting events
410- **Updated:** Complete README.md rewrite with full Matrix theme documentation
411- **Changed:** Color bars use `align-self:stretch` instead of `height:100%` (fixes rendering)
412- **Changed:** Parent div uses `align-items:stretch` and `min-height:20px`
413- **Improved:** Content wrapper now uses flexbox for proper conflict badge positioning
414
415### Color Bar Fix:
416**Problem**: Bars had `height:100%` but parent had no explicit height
417**Solution**:
418- Changed to `align-self:stretch` on bars
419- Parent uses `align-items:stretch`
420- Added `min-height:20px` to parent
421- Bars now properly fill vertical space
422
423### Sorting Change:
424**Before**: Timed events first → All-day events last
425**After**: All-day events FIRST → Timed events chronologically
426
427**Example**:
428```
429Monday, Feb 5
430├─ All Day - Project Deadline       ← All-day first
431├─ 8:00 AM - Morning Standup        ← Earliest time
432├─ 10:30 AM - Coffee with Bob
433└─ 2:00 PM - Team Meeting           ← Latest time
434```
435
436### Conflict Badge:
437- Orange warning triangle (⚠) on right side
438- 10px font size
439- Only appears if `event.conflict` is true
440- Title attribute shows "Time conflict detected"
441- Small and unobtrusive
442
443### README Update:
444- Complete rewrite with Matrix theme focus
445- Full usage instructions for all features
446- Admin interface documentation
447- Outlook sync setup guide
448- System monitoring details
449- Troubleshooting section
450- Color scheme reference
451- File structure documentation
452- Performance tips
453- Security notes
454- Quick start examples
455
456## Version 3.10.5 (2026-02-06) - TIME SORTING & THINNER ADD BAR
457- **Added:** Events now sorted by time when clicking week grid days
458- **Changed:** Add Event bar now ultra-thin (6px height, down from 12px)
459- **Improved:** Events with times appear first, sorted chronologically
460- **Improved:** All-day events appear after timed events
461- **Changed:** Add Event bar font size reduced to 7px (from 10px)
462- **Changed:** Add Event bar now has 0 padding and fixed 6px height
463
464### Sorting Logic:
465- Events with times sorted by time (earliest first)
466- All-day events (no time) appear at the end
467- Sort algorithm: Convert time to minutes (HH:MM → total minutes) and compare
468- Chronological order: 8:00 AM → 10:30 AM → 2:00 PM → All-day event
469
470### Add Event Bar Changes:
471- **Height**: 6px (was ~12px with padding)
472- **Padding**: 0 (was 4px top/bottom)
473- **Font Size**: 7px (was 10px)
474- **Letter Spacing**: 0.3px (was 0.5px)
475- **Line Height**: 6px to match height
476- **Vertical Align**: Middle for text centering
477
478## Version 3.10.4 (2026-02-06) - ADD EVENT BAR
479- **Added:** Thin orange "Add Event" bar between header and week grid
480- **Added:** Quick access to event creation from sidebar widget
481- **Styled:** Sleek design with hover effects and glow
482- **Interactive:** Clicks navigate to Manage Events tab in admin
483- **Improved:** User workflow for adding events from sidebar
484
485### Visual Design:
486- Orange background (#ff9800) matching Today section color
487- 4px top/bottom padding for thin, sleek appearance
488- Black text with white text-shadow for visibility
489- Hover effect: Darkens to #ff7700 with enhanced glow
490- Orange glow effect (box-shadow) matching Matrix theme
491- Centered "+ ADD EVENT" text (10px, bold, letter-spacing)
492
493### Technical Changes:
494- Added between header close and renderWeekGrid() call
495- Inline onclick handler navigates to admin manage tab
496- Inline onmouseover/onmouseout for hover effects
497- Smooth 0.2s transition on all style changes
498
499## Version 3.10.3 (2026-02-06) - UI IMPROVEMENTS & CACHE BUTTON RELOCATION
500- **Changed:** Update Plugin tab is now the default tab when opening admin
501- **Moved:** Clear Cache button relocated from Outlook Sync tab to Update Plugin tab
502- **Improved:** Clear Cache button now larger and more prominent with helpful description
503- **Improved:** Tab order reorganized: Update Plugin (default) → Outlook Sync → Manage Events
504- **Removed:** Debug console.log statements from day event display
505- **Fixed:** Cache clear now redirects back to Update Plugin tab instead of Config tab
506
507### UI Changes:
508- Update Plugin tab opens by default (was Config/Outlook Sync tab)
509- Clear Cache button prominently displayed at top of Update Plugin tab
510- Orange ��️ button (10px 20px padding) with confirmation dialog
511- Help text: "Clear the DokuWiki cache if changes aren't appearing or after updating the plugin"
512- Success/error messages display on Update Plugin tab after cache clear
513- Tab navigation reordered to put Update first
514
515### Technical Changes:
516- Default tab changed from 'config' to 'update' in html() method
517- Tab navigation HTML reordered to show Update Plugin tab first
518- clearCache() method now redirects with 'update' tab parameter
519- Removed Clear Cache button from renderConfigTab()
520- Added Clear Cache button to renderUpdateTab() with message display
521
522## Version 3.10.2 (2026-02-06) - EVENT HTML RENDERING FIX
523- **Fixed:** Event formatting (bold, links, italic) now displays correctly when clicking week grid days
524- **Added:** renderDokuWikiToHtml() helper function to convert DokuWiki syntax to HTML
525- **Changed:** Events in weekEvents now pre-rendered with title_html and description_html fields
526- **Improved:** DokuWiki syntax (**bold**, [[links]], //italic//, etc.) properly rendered in clicked day events
527
528### Technical Changes:
529- Added renderDokuWikiToHtml() private function using p_get_instructions() and p_render()
530- Events added to weekEvents now include pre-rendered HTML versions
531- title_html and description_html fields populated before json_encode()
532- JavaScript now receives properly formatted HTML content
533
534## Version 3.10.1 (2026-02-06) - TOOLTIP FIX & WEATHER & CACHE BUTTON
535- **Fixed:** System tooltip functions now use sanitized calId (showTooltip_sidebar_abc123 instead of showTooltip_sidebar-abc123)
536- **Fixed:** HTML event handlers now call correctly sanitized function names
537- **Fixed:** Weather temperature now updates correctly in sidebar widget
538- **Added:** Weather update function to sidebar widget JavaScript
539- **Added:** "Clear Cache" button in admin panel for easy cache refresh
540- **Added:** Default weather location set to Irvine, CA when geolocation unavailable
541- **Improved:** All tooltip functions now work correctly on system status bars
542
543### Technical Changes:
544- Changed tooltip function names to use $jsCalId instead of $calId
545- Changed HTML onmouseover/onmouseout to use $jsCalId
546- Added updateWeather() function to sidebar widget
547- Added getWeatherIcon() function to sidebar widget
548- Added clearCache() method in admin.php
549- Added recursiveDelete() helper method in admin.php
550- Admin UI now has ��️ Clear Cache button alongside Export/Import
551
552## Version 3.10.0 (2026-02-06) - JAVASCRIPT FIXES
553- **Fixed:** JavaScript syntax error "Missing initializer in const declaration"
554- **Fixed:** Event links and formatting not displaying in clicked day events
555- **Fixed:** Sanitized calId to jsCalId by replacing dashes with underscores
556- **Changed:** Event titles now use `title_html` field to preserve HTML formatting
557- **Changed:** Event descriptions now use `description_html` field to preserve links and formatting
558- **Improved:** All JavaScript variable names now use valid syntax
559- **Improved:** Links, bold, italic, and other HTML formatting preserved in events
560
561### Technical Changes:
562- Added variable sanitization: `$jsCalId = str_replace('-', '_', $calId);`
563- JavaScript variables now use underscores instead of dashes
564- Event HTML rendering preserves DokuWiki formatting
565- Fixed "showTooltip_sidebar is not defined" errors
566- Fixed "showDayEvents_cal is not defined" errors
567
568## Version 3.9.9 (2026-02-06) - JAVASCRIPT LOADING ORDER FIX
569- **Fixed:** Critical JavaScript loading order issue causing ReferenceError
570- **Fixed:** Functions now defined BEFORE HTML that uses them
571- **Changed:** Consolidated all JavaScript into single comprehensive script block
572- **Removed:** ~290 lines of duplicate JavaScript code
573- **Added:** Shared state management with `sharedState_[calId]` object
574- **Improved:** System tooltip functions now work correctly
575- **Improved:** Week grid click events now work correctly
576
577### Technical Changes:
578- Moved all JavaScript to beginning of widget (before HTML)
579- Removed duplicate script blocks
580- Unified tooltip and stats functions
581- Shared latestStats and cpuHistory state
582- Fixed "Uncaught ReferenceError: showTooltip_sidebar is not defined"
583
584## Version 3.9.8 (2026-02-05) - DUAL COLOR BARS & CLICK EVENTS
585- **Added:** Dual color bars on events (section color + event color)
586- **Added:** Click week grid days to view events (replaced hover tooltips)
587- **Added:** Expandable section below week grid for selected day events
588- **Added:** Blue theme for selected day section
589- **Changed:** Week grid days now clickable instead of tooltips
590- **Changed:** Section bar: 4px wide (left)
591- **Changed:** Event bar: 3px wide (right)
592- **Increased:** Gap between color bars from 3px to 6px
593- **Improved:** Click is more reliable and mobile-friendly than hover tooltips
594
595### Visual Changes:
596- Each event shows TWO color bars side-by-side
597- Left bar (4px): Section context (Today=Orange, Tomorrow=Green, Important=Purple, Selected=Blue)
598- Right bar (3px): Individual event's assigned color
599- Click any day in week grid to expand event list
600- X button to close selected day events
601
602## Version 3.9.7 (2026-02-05) - EVENT COLOR BAR VISIBILITY
603- **Increased:** Event color bar width from 2px to 3px
604- **Increased:** Gap between section and event bars from 3px to 6px
605- **Improved:** Event color bars now more visible alongside section bars
606- **Note:** Dual color bar system already in place from v3.9.6
607
608## Version 3.9.6 (2026-02-05) - UI REFINEMENTS
609- **Changed:** Date in Important Events moved below event name (was above)
610- **Changed:** Section headers now 9px font size (was 10px)
611- **Changed:** Section headers now normal case (was ALL CAPS)
612- **Changed:** Letter spacing reduced from 0.8px to 0.3px
613- **Improved:** More natural reading flow with date below event name
614- **Improved:** Cleaner, more subtle section headers
615
616### Header Changes:
617- "TODAY" → "Today"
618- "TOMORROW" → "Tomorrow"
619- "IMPORTANT EVENTS" → "Important Events"
620
621## Version 3.9.0 (2026-02-05) - SIDEBAR WIDGET REDESIGN
622- **Redesigned:** Complete overhaul of `sidebar` parameter
623- **Added:** Compact week-at-a-glance itinerary view (200px wide)
624- **Added:** Live clock widget at top of sidebar
625- **Added:** 7-cell week grid showing event bars
626- **Added:** Today section with orange header and left border
627- **Added:** Tomorrow section with green header and left border
628- **Added:** Important Events section with purple header and left border
629- **Added:** Admin setting to configure important namespaces
630- **Added:** Time conflict badges in sidebar events
631- **Added:** Task checkboxes in sidebar events
632- **Changed:** Sidebar now optimized for narrow spaces (200px)
633- **Improved:** Perfect for dashboards, page sidebars, and quick glance widgets
634
635### New Features:
636- Clock updates every second showing current time
637- Week grid shows Mon-Sun with colored event bars
638- Today/Tomorrow sections show full event details
639- Important events highlighted in purple (configurable namespaces)
640- All badges (conflict, time, etc.) shown in compact format
641- Automatic time conflict detection
642
643## Version 3.8.0 (2026-02-05) - PRODUCTION CLEANUP
644- **Removed:** 16 unused/debug/backup files
645- **Removed:** 69 console.log() debug statements
646- **Removed:** 3 orphaned object literals from console.log removal
647- **Removed:** Temporary comments and markers
648- **Fixed:** JavaScript syntax errors from cleanup
649- **Improved:** Code quality and maintainability
650- **Improved:** Reduced plugin size by removing unnecessary files
651- **Status:** Production-ready, fully cleaned codebase
652
653### Files Removed:
654- style.css.backup, script.js.backup
655- admin_old_backup.php, admin_minimal.php, admin_new.php, admin_clean.php
656- debug_events.php, debug_html.php, cleanup_events.php
657- fix_corrupted_json.php, fix_wildcard_namespaces.php
658- find_outlook_duplicates.php, update_namespace.php
659- validate_calendar_json.php, admin.js
660- test_date_field.html
661
662## Version 3.7.5 (2026-02-05)
663- **Fixed:** PHP syntax error (duplicate foreach loop removed)
664- **Fixed:** Time variable handling in grace period logic
665
666## Version 3.7.4 (2026-02-05)
667- **Added:** 15-minute grace period for timed events
668- **Changed:** Events with times now stay visible for 15 minutes after their start time
669- **Changed:** Prevents events from immediately disappearing when they start
670- **Improved:** Better user experience for ongoing events
671- **Fixed:** Events from earlier today now properly handled with grace period
672
673## Version 3.7.3 (2026-02-05)
674- **Changed:** Complete redesign of cleanup section for compact, sleek layout
675- **Changed:** Radio buttons now in single row at top
676- **Changed:** All options visible with grayed-out inactive states (opacity 0.4)
677- **Changed:** Inline controls - no more grid layout or wrapper boxes
678- **Changed:** Namespace filter now compact single-line input
679- **Changed:** Smaller buttons and tighter spacing throughout
680- **Improved:** More professional, space-efficient design
681
682## Version 3.7.2 (2026-02-04)
683- **Fixed:** Strange boxes under cleanup options - now properly hidden
684- **Changed:** Unified color scheme across all admin sections
685- **Changed:** Green (#00cc07) - Primary actions and main theme
686- **Changed:** Orange (#ff9800) - Warnings and cleanup features
687- **Changed:** Purple (#7b1fa2) - Secondary actions and accents
688- **Improved:** Consistent visual design throughout admin interface
689
690## Version 3.7.1 (2026-02-04)
691- **Fixed:** Cleanup section background changed from orange to white
692- **Fixed:** Event cleanup now properly scans all calendar directories
693- **Added:** Debug info display when preview finds no events
694- **Improved:** Better directory scanning logic matching other features
695
696## Version 3.7.0 (2026-02-04)
697- **Added:** Event cleanup feature in Events Manager
698- **Added:** Delete old events by age (months/years old)
699- **Added:** Delete events by status (completed tasks, past events)
700- **Added:** Delete events by date range
701- **Added:** Namespace filter for targeted cleanup
702- **Added:** Preview function to see what will be deleted
703- **Added:** Automatic backup creation before cleanup
704- **Changed:** Reduced changelog viewer height to 100px (was 400px)
705
706## Version 3.6.3 (2026-02-04)
707- **Fixed:** Conflict tooltips now work properly after navigating between months
708- **Added:** Changelog display in Update Plugin tab
709- **Added:** CHANGELOG.md file with version history
710- **Improved:** Changelog shows last 10 versions with color-coded change types
711- **Fixed:** Removed debug console.log statements
712
713## Version 3.6.2 (2026-02-04)
714- **Fixed:** Month title now updates correctly when navigating between months
715- **Changed:** All eventpanel header elements reduced by 10% for more compact design
716- **Changed:** Reduced header height from 78px to 70px
717
718## Version 3.6.1 (2026-02-04)
719- **Changed:** Complete redesign of eventpanel header with practical two-row layout
720- **Fixed:** Improved layout for narrow widths (~500px)
721- **Changed:** Simplified color scheme (removed purple gradient)
722
723## Version 3.6.0 (2026-02-04)
724- **Changed:** Redesigned eventpanel header with gradient background
725- **Changed:** Consolidated multiple header rows into compact single-row design
726
727## Version 3.5.1 (2026-02-04)
728- **Changed:** Moved event search bar into header row next to + Add button
729- **Improved:** More compact UI with search integrated into header
730
731## Version 3.5.0 (2026-02-04)
732- **Added:** Event search functionality in sidebar and eventpanel
733- **Added:** Real-time filtering as you type
734- **Added:** Clear button (✕) appears when searching
735- **Added:** "No results" message when search returns nothing
736
737## Version 3.4.7 (2026-02-04)
738- **Changed:** Made conflict badges smaller and more subtle (9px font, less padding)
739- **Fixed:** Removed debug logging from console
740- **Changed:** Updated export version number to match plugin version
741
742## Version 3.4.6 (2026-02-04)
743- **Added:** Debug logging to diagnose conflict detection issues
744- **Development:** Extensive console logging for troubleshooting
745
746## Version 3.4.5 (2026-02-04)
747- **Added:** Debug logging to showDayPopup and conflict detection
748- **Development:** Added logging to trace conflict detection flow
749
750## Version 3.4.4 (2026-02-04)
751- **Fixed:** Conflict detection now persists across page refreshes (PHP-based)
752- **Fixed:** Conflict tooltips now appear on hover
753- **Added:** Dual conflict detection (PHP for initial load, JavaScript for navigation)
754- **Added:** Conflict badges in both future and past events sections
755
756## Version 3.4.3 (2026-02-04)
757- **Added:** Custom styled conflict tooltips with hover functionality
758- **Changed:** Conflict badge shows count of conflicts (e.g., ⚠️ 2)
759- **Improved:** Beautiful tooltip design with orange header and clean formatting
760
761## Version 3.4.2 (2026-02-04)
762- **Fixed:** Attempted to fix tooltip newlines (reverted in 3.4.3)
763
764## Version 3.4.1 (2026-02-04)
765- **Fixed:** End time field now properly saves to database
766- **Fixed:** End time dropdown now filters to show only valid times after start time
767- **Added:** Smart dropdown behavior - expands on focus, filters invalid options
768- **Improved:** End time auto-suggests +1 hour when start time selected
769
770## Version 3.4.0 (2026-02-04)
771- **Added:** End time support for events (start and end times)
772- **Added:** Automatic time conflict detection
773- **Added:** Conflict warning badges (⚠️) on events with overlapping times
774- **Added:** Conflict tooltips showing which events conflict
775- **Added:** Visual conflict indicators with pulse animation
776- **Changed:** Time display now shows ranges (e.g., "2:00 PM - 4:00 PM")
777
778## Version 3.3.77 (2026-02-04)
779- **Fixed:** Namespace badge onclick handlers restored after clearing filter
780- **Fixed:** Namespace filtering works infinitely (filter → clear → filter)
781
782## Version 3.3.76 (2026-02-04)
783- **Fixed:** Namespace badges now clickable after clearing namespace filter
784
785## Version 3.3.75 (2026-02-04)
786- **Fixed:** Form resubmission warnings eliminated
787- **Improved:** Implemented proper POST-Redirect-GET pattern with HTTP 303
788- **Changed:** All admin redirects now use absolute URLs
789
790## Version 3.3.74 (2026-02-04)
791- **Fixed:** Clearing namespace filter now restores original namespace instead of default
792- **Added:** data-original-namespace attribute to preserve initial namespace setting
793- **Improved:** Console logging for namespace filter debugging
794
795## Version 3.3.73 (2026-02-03)
796- **Added:** Dynamic namespace filtering banner with clear button
797- **Fixed:** JavaScript function accessibility issues
798- **Fixed:** Namespace badge click handlers in event lists
799- **Improved:** Persistent namespace filtering across views
800
801## Earlier Versions
802See previous transcripts for complete history through v3.3.73, including:
803- Recurring events with Outlook sync
804- Multi-namespace support
805- Event categories and mapping
806- Backup/restore functionality
807- System statistics bar
808- Namespace selector with fuzzy search
809- Events Manager with import/export
810- And much more...
811