1# Calendar Plugin Changelog 2 3## Version 3.10.5 (2026-02-06) - TIME SORTING & THINNER ADD BAR 4- **Added:** Events now sorted by time when clicking week grid days 5- **Changed:** Add Event bar now ultra-thin (6px height, down from 12px) 6- **Improved:** Events with times appear first, sorted chronologically 7- **Improved:** All-day events appear after timed events 8- **Changed:** Add Event bar font size reduced to 7px (from 10px) 9- **Changed:** Add Event bar now has 0 padding and fixed 6px height 10 11### Sorting Logic: 12- Events with times sorted by time (earliest first) 13- All-day events (no time) appear at the end 14- Sort algorithm: Convert time to minutes (HH:MM → total minutes) and compare 15- Chronological order: 8:00 AM → 10:30 AM → 2:00 PM → All-day event 16 17### Add Event Bar Changes: 18- **Height**: 6px (was ~12px with padding) 19- **Padding**: 0 (was 4px top/bottom) 20- **Font Size**: 7px (was 10px) 21- **Letter Spacing**: 0.3px (was 0.5px) 22- **Line Height**: 6px to match height 23- **Vertical Align**: Middle for text centering 24 25## Version 3.10.4 (2026-02-06) - ADD EVENT BAR 26- **Added:** Thin orange "Add Event" bar between header and week grid 27- **Added:** Quick access to event creation from sidebar widget 28- **Styled:** Sleek design with hover effects and glow 29- **Interactive:** Clicks navigate to Manage Events tab in admin 30- **Improved:** User workflow for adding events from sidebar 31 32### Visual Design: 33- Orange background (#ff9800) matching Today section color 34- 4px top/bottom padding for thin, sleek appearance 35- Black text with white text-shadow for visibility 36- Hover effect: Darkens to #ff7700 with enhanced glow 37- Orange glow effect (box-shadow) matching Matrix theme 38- Centered "+ ADD EVENT" text (10px, bold, letter-spacing) 39 40### Technical Changes: 41- Added between header close and renderWeekGrid() call 42- Inline onclick handler navigates to admin manage tab 43- Inline onmouseover/onmouseout for hover effects 44- Smooth 0.2s transition on all style changes 45 46## Version 3.10.3 (2026-02-06) - UI IMPROVEMENTS & CACHE BUTTON RELOCATION 47- **Changed:** Update Plugin tab is now the default tab when opening admin 48- **Moved:** Clear Cache button relocated from Outlook Sync tab to Update Plugin tab 49- **Improved:** Clear Cache button now larger and more prominent with helpful description 50- **Improved:** Tab order reorganized: Update Plugin (default) → Outlook Sync → Manage Events 51- **Removed:** Debug console.log statements from day event display 52- **Fixed:** Cache clear now redirects back to Update Plugin tab instead of Config tab 53 54### UI Changes: 55- Update Plugin tab opens by default (was Config/Outlook Sync tab) 56- Clear Cache button prominently displayed at top of Update Plugin tab 57- Orange ️ button (10px 20px padding) with confirmation dialog 58- Help text: "Clear the DokuWiki cache if changes aren't appearing or after updating the plugin" 59- Success/error messages display on Update Plugin tab after cache clear 60- Tab navigation reordered to put Update first 61 62### Technical Changes: 63- Default tab changed from 'config' to 'update' in html() method 64- Tab navigation HTML reordered to show Update Plugin tab first 65- clearCache() method now redirects with 'update' tab parameter 66- Removed Clear Cache button from renderConfigTab() 67- Added Clear Cache button to renderUpdateTab() with message display 68 69## Version 3.10.2 (2026-02-06) - EVENT HTML RENDERING FIX 70- **Fixed:** Event formatting (bold, links, italic) now displays correctly when clicking week grid days 71- **Added:** renderDokuWikiToHtml() helper function to convert DokuWiki syntax to HTML 72- **Changed:** Events in weekEvents now pre-rendered with title_html and description_html fields 73- **Improved:** DokuWiki syntax (**bold**, [[links]], //italic//, etc.) properly rendered in clicked day events 74 75### Technical Changes: 76- Added renderDokuWikiToHtml() private function using p_get_instructions() and p_render() 77- Events added to weekEvents now include pre-rendered HTML versions 78- title_html and description_html fields populated before json_encode() 79- JavaScript now receives properly formatted HTML content 80 81## Version 3.10.1 (2026-02-06) - TOOLTIP FIX & WEATHER & CACHE BUTTON 82- **Fixed:** System tooltip functions now use sanitized calId (showTooltip_sidebar_abc123 instead of showTooltip_sidebar-abc123) 83- **Fixed:** HTML event handlers now call correctly sanitized function names 84- **Fixed:** Weather temperature now updates correctly in sidebar widget 85- **Added:** Weather update function to sidebar widget JavaScript 86- **Added:** "Clear Cache" button in admin panel for easy cache refresh 87- **Added:** Default weather location set to Irvine, CA when geolocation unavailable 88- **Improved:** All tooltip functions now work correctly on system status bars 89 90### Technical Changes: 91- Changed tooltip function names to use $jsCalId instead of $calId 92- Changed HTML onmouseover/onmouseout to use $jsCalId 93- Added updateWeather() function to sidebar widget 94- Added getWeatherIcon() function to sidebar widget 95- Added clearCache() method in admin.php 96- Added recursiveDelete() helper method in admin.php 97- Admin UI now has ️ Clear Cache button alongside Export/Import 98 99## Version 3.10.0 (2026-02-06) - JAVASCRIPT FIXES 100- **Fixed:** JavaScript syntax error "Missing initializer in const declaration" 101- **Fixed:** Event links and formatting not displaying in clicked day events 102- **Fixed:** Sanitized calId to jsCalId by replacing dashes with underscores 103- **Changed:** Event titles now use `title_html` field to preserve HTML formatting 104- **Changed:** Event descriptions now use `description_html` field to preserve links and formatting 105- **Improved:** All JavaScript variable names now use valid syntax 106- **Improved:** Links, bold, italic, and other HTML formatting preserved in events 107 108### Technical Changes: 109- Added variable sanitization: `$jsCalId = str_replace('-', '_', $calId);` 110- JavaScript variables now use underscores instead of dashes 111- Event HTML rendering preserves DokuWiki formatting 112- Fixed "showTooltip_sidebar is not defined" errors 113- Fixed "showDayEvents_cal is not defined" errors 114 115## Version 3.9.9 (2026-02-06) - JAVASCRIPT LOADING ORDER FIX 116- **Fixed:** Critical JavaScript loading order issue causing ReferenceError 117- **Fixed:** Functions now defined BEFORE HTML that uses them 118- **Changed:** Consolidated all JavaScript into single comprehensive script block 119- **Removed:** ~290 lines of duplicate JavaScript code 120- **Added:** Shared state management with `sharedState_[calId]` object 121- **Improved:** System tooltip functions now work correctly 122- **Improved:** Week grid click events now work correctly 123 124### Technical Changes: 125- Moved all JavaScript to beginning of widget (before HTML) 126- Removed duplicate script blocks 127- Unified tooltip and stats functions 128- Shared latestStats and cpuHistory state 129- Fixed "Uncaught ReferenceError: showTooltip_sidebar is not defined" 130 131## Version 3.9.8 (2026-02-05) - DUAL COLOR BARS & CLICK EVENTS 132- **Added:** Dual color bars on events (section color + event color) 133- **Added:** Click week grid days to view events (replaced hover tooltips) 134- **Added:** Expandable section below week grid for selected day events 135- **Added:** Blue theme for selected day section 136- **Changed:** Week grid days now clickable instead of tooltips 137- **Changed:** Section bar: 4px wide (left) 138- **Changed:** Event bar: 3px wide (right) 139- **Increased:** Gap between color bars from 3px to 6px 140- **Improved:** Click is more reliable and mobile-friendly than hover tooltips 141 142### Visual Changes: 143- Each event shows TWO color bars side-by-side 144- Left bar (4px): Section context (Today=Orange, Tomorrow=Green, Important=Purple, Selected=Blue) 145- Right bar (3px): Individual event's assigned color 146- Click any day in week grid to expand event list 147- X button to close selected day events 148 149## Version 3.9.7 (2026-02-05) - EVENT COLOR BAR VISIBILITY 150- **Increased:** Event color bar width from 2px to 3px 151- **Increased:** Gap between section and event bars from 3px to 6px 152- **Improved:** Event color bars now more visible alongside section bars 153- **Note:** Dual color bar system already in place from v3.9.6 154 155## Version 3.9.6 (2026-02-05) - UI REFINEMENTS 156- **Changed:** Date in Important Events moved below event name (was above) 157- **Changed:** Section headers now 9px font size (was 10px) 158- **Changed:** Section headers now normal case (was ALL CAPS) 159- **Changed:** Letter spacing reduced from 0.8px to 0.3px 160- **Improved:** More natural reading flow with date below event name 161- **Improved:** Cleaner, more subtle section headers 162 163### Header Changes: 164- "TODAY" → "Today" 165- "TOMORROW" → "Tomorrow" 166- "IMPORTANT EVENTS" → "Important Events" 167 168## Version 3.9.0 (2026-02-05) - SIDEBAR WIDGET REDESIGN 169- **Redesigned:** Complete overhaul of `sidebar` parameter 170- **Added:** Compact week-at-a-glance itinerary view (200px wide) 171- **Added:** Live clock widget at top of sidebar 172- **Added:** 7-cell week grid showing event bars 173- **Added:** Today section with orange header and left border 174- **Added:** Tomorrow section with green header and left border 175- **Added:** Important Events section with purple header and left border 176- **Added:** Admin setting to configure important namespaces 177- **Added:** Time conflict badges in sidebar events 178- **Added:** Task checkboxes in sidebar events 179- **Changed:** Sidebar now optimized for narrow spaces (200px) 180- **Improved:** Perfect for dashboards, page sidebars, and quick glance widgets 181 182### New Features: 183- Clock updates every second showing current time 184- Week grid shows Mon-Sun with colored event bars 185- Today/Tomorrow sections show full event details 186- Important events highlighted in purple (configurable namespaces) 187- All badges (conflict, time, etc.) shown in compact format 188- Automatic time conflict detection 189 190## Version 3.8.0 (2026-02-05) - PRODUCTION CLEANUP 191- **Removed:** 16 unused/debug/backup files 192- **Removed:** 69 console.log() debug statements 193- **Removed:** 3 orphaned object literals from console.log removal 194- **Removed:** Temporary comments and markers 195- **Fixed:** JavaScript syntax errors from cleanup 196- **Improved:** Code quality and maintainability 197- **Improved:** Reduced plugin size by removing unnecessary files 198- **Status:** Production-ready, fully cleaned codebase 199 200### Files Removed: 201- style.css.backup, script.js.backup 202- admin_old_backup.php, admin_minimal.php, admin_new.php, admin_clean.php 203- debug_events.php, debug_html.php, cleanup_events.php 204- fix_corrupted_json.php, fix_wildcard_namespaces.php 205- find_outlook_duplicates.php, update_namespace.php 206- validate_calendar_json.php, admin.js 207- test_date_field.html 208 209## Version 3.7.5 (2026-02-05) 210- **Fixed:** PHP syntax error (duplicate foreach loop removed) 211- **Fixed:** Time variable handling in grace period logic 212 213## Version 3.7.4 (2026-02-05) 214- **Added:** 15-minute grace period for timed events 215- **Changed:** Events with times now stay visible for 15 minutes after their start time 216- **Changed:** Prevents events from immediately disappearing when they start 217- **Improved:** Better user experience for ongoing events 218- **Fixed:** Events from earlier today now properly handled with grace period 219 220## Version 3.7.3 (2026-02-05) 221- **Changed:** Complete redesign of cleanup section for compact, sleek layout 222- **Changed:** Radio buttons now in single row at top 223- **Changed:** All options visible with grayed-out inactive states (opacity 0.4) 224- **Changed:** Inline controls - no more grid layout or wrapper boxes 225- **Changed:** Namespace filter now compact single-line input 226- **Changed:** Smaller buttons and tighter spacing throughout 227- **Improved:** More professional, space-efficient design 228 229## Version 3.7.2 (2026-02-04) 230- **Fixed:** Strange boxes under cleanup options - now properly hidden 231- **Changed:** Unified color scheme across all admin sections 232- **Changed:** Green (#00cc07) - Primary actions and main theme 233- **Changed:** Orange (#ff9800) - Warnings and cleanup features 234- **Changed:** Purple (#7b1fa2) - Secondary actions and accents 235- **Improved:** Consistent visual design throughout admin interface 236 237## Version 3.7.1 (2026-02-04) 238- **Fixed:** Cleanup section background changed from orange to white 239- **Fixed:** Event cleanup now properly scans all calendar directories 240- **Added:** Debug info display when preview finds no events 241- **Improved:** Better directory scanning logic matching other features 242 243## Version 3.7.0 (2026-02-04) 244- **Added:** Event cleanup feature in Events Manager 245- **Added:** Delete old events by age (months/years old) 246- **Added:** Delete events by status (completed tasks, past events) 247- **Added:** Delete events by date range 248- **Added:** Namespace filter for targeted cleanup 249- **Added:** Preview function to see what will be deleted 250- **Added:** Automatic backup creation before cleanup 251- **Changed:** Reduced changelog viewer height to 100px (was 400px) 252 253## Version 3.6.3 (2026-02-04) 254- **Fixed:** Conflict tooltips now work properly after navigating between months 255- **Added:** Changelog display in Update Plugin tab 256- **Added:** CHANGELOG.md file with version history 257- **Improved:** Changelog shows last 10 versions with color-coded change types 258- **Fixed:** Removed debug console.log statements 259 260## Version 3.6.2 (2026-02-04) 261- **Fixed:** Month title now updates correctly when navigating between months 262- **Changed:** All eventpanel header elements reduced by 10% for more compact design 263- **Changed:** Reduced header height from 78px to 70px 264 265## Version 3.6.1 (2026-02-04) 266- **Changed:** Complete redesign of eventpanel header with practical two-row layout 267- **Fixed:** Improved layout for narrow widths (~500px) 268- **Changed:** Simplified color scheme (removed purple gradient) 269 270## Version 3.6.0 (2026-02-04) 271- **Changed:** Redesigned eventpanel header with gradient background 272- **Changed:** Consolidated multiple header rows into compact single-row design 273 274## Version 3.5.1 (2026-02-04) 275- **Changed:** Moved event search bar into header row next to + Add button 276- **Improved:** More compact UI with search integrated into header 277 278## Version 3.5.0 (2026-02-04) 279- **Added:** Event search functionality in sidebar and eventpanel 280- **Added:** Real-time filtering as you type 281- **Added:** Clear button (✕) appears when searching 282- **Added:** "No results" message when search returns nothing 283 284## Version 3.4.7 (2026-02-04) 285- **Changed:** Made conflict badges smaller and more subtle (9px font, less padding) 286- **Fixed:** Removed debug logging from console 287- **Changed:** Updated export version number to match plugin version 288 289## Version 3.4.6 (2026-02-04) 290- **Added:** Debug logging to diagnose conflict detection issues 291- **Development:** Extensive console logging for troubleshooting 292 293## Version 3.4.5 (2026-02-04) 294- **Added:** Debug logging to showDayPopup and conflict detection 295- **Development:** Added logging to trace conflict detection flow 296 297## Version 3.4.4 (2026-02-04) 298- **Fixed:** Conflict detection now persists across page refreshes (PHP-based) 299- **Fixed:** Conflict tooltips now appear on hover 300- **Added:** Dual conflict detection (PHP for initial load, JavaScript for navigation) 301- **Added:** Conflict badges in both future and past events sections 302 303## Version 3.4.3 (2026-02-04) 304- **Added:** Custom styled conflict tooltips with hover functionality 305- **Changed:** Conflict badge shows count of conflicts (e.g., ⚠️ 2) 306- **Improved:** Beautiful tooltip design with orange header and clean formatting 307 308## Version 3.4.2 (2026-02-04) 309- **Fixed:** Attempted to fix tooltip newlines (reverted in 3.4.3) 310 311## Version 3.4.1 (2026-02-04) 312- **Fixed:** End time field now properly saves to database 313- **Fixed:** End time dropdown now filters to show only valid times after start time 314- **Added:** Smart dropdown behavior - expands on focus, filters invalid options 315- **Improved:** End time auto-suggests +1 hour when start time selected 316 317## Version 3.4.0 (2026-02-04) 318- **Added:** End time support for events (start and end times) 319- **Added:** Automatic time conflict detection 320- **Added:** Conflict warning badges (⚠️) on events with overlapping times 321- **Added:** Conflict tooltips showing which events conflict 322- **Added:** Visual conflict indicators with pulse animation 323- **Changed:** Time display now shows ranges (e.g., "2:00 PM - 4:00 PM") 324 325## Version 3.3.77 (2026-02-04) 326- **Fixed:** Namespace badge onclick handlers restored after clearing filter 327- **Fixed:** Namespace filtering works infinitely (filter → clear → filter) 328 329## Version 3.3.76 (2026-02-04) 330- **Fixed:** Namespace badges now clickable after clearing namespace filter 331 332## Version 3.3.75 (2026-02-04) 333- **Fixed:** Form resubmission warnings eliminated 334- **Improved:** Implemented proper POST-Redirect-GET pattern with HTTP 303 335- **Changed:** All admin redirects now use absolute URLs 336 337## Version 3.3.74 (2026-02-04) 338- **Fixed:** Clearing namespace filter now restores original namespace instead of default 339- **Added:** data-original-namespace attribute to preserve initial namespace setting 340- **Improved:** Console logging for namespace filter debugging 341 342## Version 3.3.73 (2026-02-03) 343- **Added:** Dynamic namespace filtering banner with clear button 344- **Fixed:** JavaScript function accessibility issues 345- **Fixed:** Namespace badge click handlers in event lists 346- **Improved:** Persistent namespace filtering across views 347 348## Earlier Versions 349See previous transcripts for complete history through v3.3.73, including: 350- Recurring events with Outlook sync 351- Multi-namespace support 352- Event categories and mapping 353- Backup/restore functionality 354- System statistics bar 355- Namespace selector with fuzzy search 356- Events Manager with import/export 357- And much more... 358