# New Features - Quick Reference ## AJAX Updates (No Page Reload) All calendar operations now happen without page reloads! ⚡ ### What Works with AJAX: ✅ **Add Event** - Save and see it appear immediately ✅ **Edit Event** - Changes show instantly ✅ **Delete Event** - Removed in real-time ✅ **Month Navigation** - Switch months smoothly ✅ **Day Filter** - Click days to filter events instantly ### How It Works: 1. **Add Event**: Click + Add → Fill form → Save → Calendar updates automatically 2. **Edit Event**: Click Edit → Modify → Save → Changes appear immediately 3. **Delete Event**: Click Delete → Confirm → Event disappears instantly 4. **Navigate**: Click ◄ ► arrows → New month loads without refresh No more waiting for page reloads! Everything updates in real-time. --- ## Event Panel Only Display just the event management panel (320px wide) without the calendar grid. ### Syntax: ``` {{eventpanel}} ``` ### With Options: ``` {{eventpanel year=2026 month=6}} {{eventpanel namespace=team}} {{eventpanel year=2026 month=3 namespace=projects:alpha}} ``` ### Perfect For: - **Page sidebars** - 320px fits perfectly in side columns - **Dashboard widgets** - Compact event management - **Mobile layouts** - Smaller footprint - **Focus on events** - When you don't need the calendar grid ### Example Sidebar Layout: ```wiki ===== Main Content ===== Your main page content here... {{eventpanel namespace=team}} ``` ### Features: ✅ Month navigation (◄ ►) ✅ Add events (+ Add button) ✅ Edit/Delete events (inline buttons) ✅ Scrollable list ✅ Color-coded events ✅ Full event details ✅ AJAX updates (no reload) --- ## Comparison: Calendar vs Event Panel vs Event List ### Full Calendar (`{{calendar}}`) - **Size**: 800x600 pixels - **Layout**: Calendar grid (500px) + Event panel (300px) - **Use for**: Full month overview with event management - **Interactive**: Yes - click days, add/edit/delete events - **AJAX**: Yes - all updates in real-time ### Event Panel Only (`{{eventpanel}}`) - **Size**: 320x600 pixels - **Layout**: Event panel only (no calendar grid) - **Use for**: Sidebars, compact event management - **Interactive**: Yes - add/edit/delete events, month navigation - **AJAX**: Yes - all updates in real-time ### Event List (`{{eventlist}}`) - **Size**: Variable width - **Layout**: Chronological list of events - **Use for**: Reports, print-friendly views, date ranges - **Interactive**: No - read-only display - **AJAX**: No - static content --- ## AJAX Technical Details ### No More Page Reloads **Before** (old version): ``` Add Event → Submit → Page reloads → Calendar updates Delete Event → Confirm → Page reloads → Event gone Navigate month → Click → Page reloads → New month ``` **Now** (with AJAX): ``` Add Event → Submit → Calendar updates instantly ⚡ Delete Event → Confirm → Event disappears immediately ⚡ Navigate month → Click → New month loads smoothly ⚡ ``` ### How Calendar Rebuilds Work When you perform an action (add/edit/delete/navigate): 1. **Action sent** to server via AJAX 2. **Server processes** and returns updated data 3. **Calendar rebuilds** on your screen - Grid cells update with new dates - Event dots appear/disappear - Event list refreshes - Navigation buttons update 4. **All happens** in under 1 second - no page flash! ### Benefits ⚡ **Faster** - No full page reload ✨ **Smoother** - No screen flash or scroll reset 💾 **Maintains state** - Your position on page stays 🎯 **Better UX** - Instant feedback on actions --- ## Quick Syntax Reference ```wiki # Full calendar (800x600) {{calendar}} {{calendar year=2026 month=6}} {{calendar namespace=team}} # Event panel only (320px wide) {{eventpanel}} {{eventpanel year=2026 month=6}} {{eventpanel namespace=team}} # Event list (read-only) {{eventlist date=2026-01-22}} {{eventlist daterange=2026-01-01:2026-01-31}} {{eventlist daterange=2026-01-01:2026-01-31 namespace=team}} ``` --- ## Example: Dashboard with Event Panel ```wiki ====== My Dashboard ====== ===== Today's Overview ===== **Date**: {{CURRENTDATE}}\\ **Tasks Completed**: 12/20\\ **Meetings Today**: 3 ===== Quick Stats ===== * Open Tasks: 8 * In Progress: 5 * Blocked: 2 * Completed This Week: 15 ===== Recent Activity ===== * ✓ Completed design review * ✓ Merged PR #234 * ⏳ Code review pending * 📧 Sent weekly report [[dashboard:details|View Full Dashboard]] {{eventpanel namespace=personal:me}} ===== This Week's Schedule ===== {{eventlist daterange=2026-01-22:2026-01-28 namespace=personal:me}} ``` Creates a dashboard with: - Main content on left (65%) - Event panel on right (35%) - Event list below for full week view - All with AJAX updates! --- ## Tips for Best Performance 1. **Use namespaces** - Separate calendars by team/project 2. **Keep descriptions short** - Long text slows rendering 3. **Archive old events** - Remove events older than 6 months 4. **Use event panels** - For sidebars instead of full calendar 5. **Combine views** - Use eventpanel for management, eventlist for reports --- ## Browser Compatibility AJAX features work on: - Chrome/Edge 90+ ✅ - Firefox 88+ ✅ - Safari 14+ ✅ - Mobile browsers ✅ Requires JavaScript enabled (standard for DokuWiki). --- ## Troubleshooting AJAX **Calendar not updating after save?** - Check browser console for errors (F12) - Verify JavaScript is enabled - Clear browser cache **"Access denied" errors?** - Check file permissions on data/meta/calendar/ - Verify user has edit rights on page **Slow updates?** - Too many events? Archive old ones - Server overloaded? Check server resources **Still issues?** - Disable other plugins temporarily - Check DokuWiki error log - Test with browser console open (F12)