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