xref: /plugin/calendar/CHANGELOG.md (revision 1d05cddc261a22328c4671319b0963b94fa1a7e9)
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