Lines Matching refs:html
138 $html = $this->renderStandaloneEventList($data);
140 $html = $this->renderEventPanelOnly($data);
142 $html = $this->renderStaticCalendar($data);
144 $html = $this->renderCompactCalendar($data);
147 $renderer->doc .= $html;
203 …$html = '<div class="calendar-compact-container ' . $themeClass . '" id="' . $calId . '" data-name…
206 $html .= '<style>
238 $html .= '<script src="' . DOKU_BASE . 'lib/plugins/calendar/calendar-main.js"></script>';
241 …$html .= '<script>if(typeof DOKU_BASE==="undefined"){window.DOKU_BASE="' . DOKU_BASE . '";}</scrip…
244 …$html .= '<script type="application/json" id="events-data-' . $calId . '">' . json_encode($events)…
247 $html .= '<div class="calendar-compact-left">';
250 $html .= '<div class="calendar-compact-header">';
251 …$html .= '<button class="cal-nav-btn" onclick="navCalendar(\'' . $calId . '\', ' . $prevYear . ', …
252 …$html .= '<h3 class="calendar-month-picker" onclick="openMonthPicker(\'' . $calId . '\', ' . $year…
253 …$html .= '<button class="cal-nav-btn" onclick="navCalendar(\'' . $calId . '\', ' . $nextYear . ', …
254 …$html .= '<button class="cal-today-btn" onclick="jumpToToday(\'' . $calId . '\', \'' . $namespace …
255 $html .= '</div>';
258 $html .= '<div class="calendar-day-headers">';
259 …$html .= '<span>S</span><span>M</span><span>T</span><span>W</span><span>T</span><span>F</span><spa…
260 $html .= '</div>';
261 $html .= '<table class="calendar-compact-grid">';
262 $html .= '<tbody>';
409 $html .= '<tr>';
412 $html .= '<td class="cal-empty"></td>';
422 …$html .= '<td class="' . $classes . '" data-date="' . $dateKey . '" tabindex="0" role="gridcell" a…
425 $html .= '<span class="' . $dayNumClass . '">' . $currentDay . '</span>';
443 $html .= '<div class="event-indicators">';
447 …$html .= '<span style="display:block;width:100%;height:6px;min-height:6px;flex-shrink:0;"></span>';
480 $html .= '<span class="event-bar ' . $barClass . '" ';
481 $html .= 'style="background: ' . $eventColor . ';" ';
482 … $html .= 'title="' . $titlePrefix . $eventTitle . ($eventTime ? ' @ ' . $eventTime : '') . '" ';
483 …$html .= 'onclick="event.stopPropagation(); highlightEvent(\'' . $calId . '\', \'' . $eventId . '\…
484 $html .= '</span>';
486 $html .= '</div>';
489 $html .= '</td>';
493 $html .= '</tr>';
496 $html .= '</tbody></table>';
497 $html .= '</div>'; // End calendar-left
500 $html .= '<div class="calendar-compact-right">';
501 $html .= '<div class="event-list-header">';
502 $html .= '<div class="event-list-header-content">';
503 $html .= '<h4 id="eventlist-title-' . $calId . '">Events</h4>';
505 $html .= '<span class="namespace-badge">' . htmlspecialchars($namespace) . '</span>';
507 $html .= '</div>';
515 $html .= '<div class="event-search-container-inline">';
516 …$html .= '<input type="text" class="event-search-input-inline" id="event-search-' . $calId . '" pl…
517 …$html .= '<button class="event-search-clear-inline" id="search-clear-' . $calId . '" onclick="clea…
518 …$html .= '<button class="event-search-mode-inline' . $searchAllClass . '" id="search-mode-' . $cal…
519 $html .= '</div>';
521 …$html .= '<button class="add-event-compact" onclick="openAddEvent(\'' . $calId . '\', \'' . $names…
522 $html .= '</div>';
524 $html .= '<div class="event-list-compact" id="eventlist-' . $calId . '">';
525 $html .= $this->renderEventListContent($events, $calId, $namespace, $themeStyles);
526 $html .= '</div>';
528 $html .= '</div>'; // End calendar-right
531 $html .= $this->renderEventDialog($calId, $namespace, $theme);
534 $html .= $this->renderMonthPicker($calId, $year, $month, $namespace, $theme, $themeStyles);
536 $html .= '</div>'; // End container
538 return $html;
591 …$html = '<div class="calendar-static ' . $themeClass . '" id="' . $calId . '" data-year="' . $year…
594 $html .= '<div class="static-screen-view">';
597 $html .= '<div class="static-header">';
599 …$html .= '<button class="static-nav-btn" onclick="navStaticCalendar(\'' . $calId . '\', -1)" title…
601 $html .= '<h2 class="static-month-title">' . hsc($displayTitle) . '</h2>';
603 …$html .= '<button class="static-nav-btn" onclick="navStaticCalendar(\'' . $calId . '\', 1)" title=…
606 …$html .= '<button class="static-print-btn" onclick="printStaticCalendar(\'' . $calId . '\')" title…
608 $html .= '</div>';
611 $html .= '<table class="static-calendar-grid">';
612 $html .= '<thead><tr>';
615 $html .= '<th>' . $day . '</th>';
617 $html .= '</tr></thead>';
618 $html .= '<tbody>';
625 $html .= '<tr>';
630 $html .= '<td class="static-day-empty"></td>';
642 $html .= '<td class="' . $cellClass . '">';
643 $html .= '<div class="static-day-number">' . $dayCount . '</div>';
646 $html .= '<div class="static-day-events">';
685 …$html .= '<div class="' . $eventClass . '" style="border-left-color: ' . $color . ';" title="' . h…
687 $html .= '<span class="static-event-star">⭐</span>';
690 … $html .= '<span class="static-event-time">' . $this->formatTime12Hour($time) . '</span> ';
692 $html .= '<span class="static-event-title">' . $title . '</span>';
693 $html .= '</div>';
695 $html .= '</div>';
698 $html .= '</td>';
702 $html .= '</tr>';
705 $html .= '</tbody></table>';
706 $html .= '</div>'; // End screen view
710 $html .= '<div class="static-print-view">';
711 $html .= '<h2 class="static-print-title">' . hsc($displayTitle) . '</h2>';
714 …$html .= '<p class="static-print-namespace">' . $this->getLang('calendar_label') . ': ' . hsc($nam…
736 … $html .= '<p class="static-print-empty">' . $this->getLang('no_events_scheduled') . '</p>';
738 $html .= '<table class="static-itinerary">';
739 … $html .= '<thead><tr><th>Date</th><th>Time</th><th>Event</th><th>Details</th></tr></thead>';
740 $html .= '<tbody>';
760 $html .= '<tr class="' . $rowClass . '">';
764 $html .= '<td class="static-itinerary-date">' . $dateDisplay . '</td>';
767 $html .= '<td></td>';
775 $html .= '<td class="static-itinerary-time">' . $time . '</td>';
778 $html .= '<td class="static-itinerary-title">';
780 $html .= '⭐ ';
782 $html .= hsc($event['title']);
783 $html .= '</td>';
787 $html .= '<td class="static-itinerary-desc">' . $desc . '</td>';
789 $html .= '</tr>';
792 $html .= '</tbody></table>';
795 $html .= '</div>'; // End print view
798 $html .= '</div>'; // End container
800 return $html;
1149 $html = '';
1153 $html .= '<div class="past-events-section">';
1154 … $html .= '<div class="past-events-toggle" onclick="togglePastEvents(\'' . $calId . '\')">';
1155 $html .= '<span class="past-events-arrow" id="past-arrow-' . $calId . '">▶</span> ';
1156 $html .= '<span class="past-events-label">Past Events (' . $pastCount . ')</span>';
1157 $html .= '</div>';
1158 …$html .= '<div class="past-events-content" id="past-events-' . $calId . '" style="display:none;">';
1159 $html .= $pastHtml;
1160 $html .= '</div>';
1161 $html .= '</div>';
1165 $html .= $futureHtml;
1167 return $html;
1331 …$html = '<div class="event-panel-standalone" id="' . $calId . '" data-height="' . htmlspecialchars…
1334 $html .= '<style>
1363 $html .= '<script src="' . DOKU_BASE . 'lib/plugins/calendar/calendar-main.js"></script>';
1366 …$html .= '<script>if(typeof DOKU_BASE==="undefined"){window.DOKU_BASE="' . DOKU_BASE . '";}</scrip…
1369 $html .= '<div class="panel-header-compact">';
1372 $html .= '<div class="panel-header-row-1">';
1373 …$html .= '<button class="panel-nav-btn" onclick="navEventPanel(\'' . $calId . '\', ' . $prevYear .…
1377 …$html .= '<h3 class="panel-month-title" onclick="openMonthPickerPanel(\'' . $calId . '\', ' . $yea…
1379 …$html .= '<button class="panel-nav-btn" onclick="navEventPanel(\'' . $calId . '\', ' . $nextYear .…
1385 …$html .= '<span class="panel-ns-badge" style="background:var(--cell-today-bg) !important; color:va…
1389 …$html .= '<span class="panel-ns-badge" style="background:var(--cell-today-bg) !important; color:va…
1394 …$html .= '<span class="panel-ns-badge filter-on" style="background:var(--text-bright) !important; …
1396 …$html .= '<span class="panel-ns-badge" style="background:var(--cell-today-bg) !important; color:va…
1401 …$html .= '<button class="panel-today-btn" onclick="jumpTodayPanel(\'' . $calId . '\', \'' . $names…
1402 $html .= '</div>';
1410 $html .= '<div class="panel-header-row-2">';
1411 $html .= '<div class="panel-search-box">';
1412 …$html .= '<input type="text" class="panel-search-input" id="event-search-' . $calId . '" placehold…
1413 …$html .= '<button class="panel-search-clear" id="search-clear-' . $calId . '" onclick="clearEventS…
1414 …$html .= '<button class="panel-search-mode' . $searchAllClass . '" id="search-mode-' . $calId . '"…
1415 $html .= '</div>';
1416 …$html .= '<button class="panel-add-btn" onclick="openAddEventPanel(\'' . $calId . '\', \'' . $name…
1417 $html .= '</div>';
1419 $html .= '</div>';
1421 …$html .= '<div class="event-list-compact" id="eventlist-' . $calId . '" style="max-height: ' . htm…
1422 $html .= $this->renderEventListContent($events, $calId, $namespace);
1423 $html .= '</div>';
1425 $html .= $this->renderEventDialog($calId, $namespace, $theme);
1428 $html .= $this->renderMonthPicker($calId, $year, $month, $namespace, $theme, $themeStyles);
1430 $html .= '</div>';
1432 return $html;
1664 …$html = '<div class="eventlist-simple ' . $themeClass . '" id="' . $calId . '" style="' . $contain…
1667 $html .= '<style>
1692 $html .= '<script src="' . DOKU_BASE . 'lib/plugins/calendar/calendar-main.js"></script>';
1695 …$html .= '<script>if(typeof DOKU_BASE==="undefined"){window.DOKU_BASE="' . DOKU_BASE . '";}</scrip…
1703 $html .= '<div class="eventlist-today-header">';
1704 …$html .= '<span class="eventlist-today-clock" id="clock-' . $calId . '">' . $currentTime . '</span…
1705 $html .= '<div class="eventlist-bottom-info">';
1706 …$html .= '<span class="eventlist-weather"><span id="weather-icon-' . $calId . '">️</span> <span …
1707 $html .= '<span class="eventlist-today-date">' . $displayDate . '</span>';
1708 $html .= '</div>';
1710 $html .= '</div>';
1713 $html .= '<script>
1822 $html .= '<div class="eventlist-simple-empty">';
1823 $html .= '<div class="eventlist-simple-header">' . htmlspecialchars($headerText);
1825 … $html .= ' <span class="eventlist-simple-namespace">' . htmlspecialchars($namespace) . '</span>';
1827 $html .= '</div>';
1828 $html .= '<div class="eventlist-simple-body">No events</div>';
1829 $html .= '</div>';
1868 …$html .= '<div class="eventlist-simple-item' . $todayClass . $tomorrowClass . $pastDueClass . '">';
1869 $html .= '<div class="eventlist-simple-header">';
1872 … $html .= '<span class="eventlist-simple-title">' . htmlspecialchars($event['title']) . '</span>';
1883 … $html .= ' <span class="eventlist-simple-time">' . $displayTime . '</span>';
1888 $html .= ' <span class="eventlist-simple-date">' . $displayDate . '</span>';
1892 …$html .= ' <span class="eventlist-simple-pastdue-badge" style="background:' . $themeStyles['pastdu…
1894 …$html .= ' <span class="eventlist-simple-today-badge" style="background:' . $themeStyles['border']…
1903 …$html .= ' <span class="eventlist-simple-namespace">' . htmlspecialchars($eventNamespace) . '</spa…
1906 $html .= '</div>'; // header
1910 …$html .= '<div class="eventlist-simple-body">' . $this->renderDescription($event['description']) .…
1913 $html .= '</div>'; // item
1918 $html .= '</div>'; // eventlist-simple
1920 return $html;
1930 … $html = '<div class="event-dialog-compact" id="dialog-' . $calId . '" style="display:none;">';
1931 … $html .= '<div class="dialog-overlay" onclick="closeEventDialog(\'' . $calId . '\')"></div>';
1934 $html .= '<div class="dialog-content-sleek" id="dialog-content-' . $calId . '">';
1937 … $html .= '<div class="dialog-header-sleek dialog-drag-handle" id="drag-handle-' . $calId . '">';
1938 $html .= '<h3 id="dialog-title-' . $calId . '">Add Event</h3>';
1939 …$html .= '<button type="button" class="dialog-close-btn" onclick="closeEventDialog(\'' . $calId . …
1940 $html .= '</div>';
1943 …$html .= '<form id="eventform-' . $calId . '" onsubmit="saveEventCompact(\'' . $calId . '\', \'' .…
1946 $html .= '<input type="hidden" id="event-id-' . $calId . '" name="eventId" value="">';
1949 $html .= '<div class="form-field">';
1950 $html .= '<label class="field-label"> Title</label>';
1951 …$html .= '<input type="text" id="event-title-' . $calId . '" name="title" required class="input-sl…
1952 $html .= '</div>';
1955 $html .= '<div class="form-field">';
1956 $html .= '<label class="field-label"> Namespace</label>';
1959 … $html .= '<input type="hidden" id="event-namespace-' . $calId . '" name="namespace" value="">';
1962 $html .= '<div class="namespace-search-wrapper">';
1963 …$html .= '<input type="text" id="event-namespace-search-' . $calId . '" class="input-sleek input-c…
1964 …$html .= '<div class="namespace-dropdown" id="event-namespace-dropdown-' . $calId . '" style="disp…
1965 $html .= '</div>';
1969 …$html .= '<script type="application/json" id="namespaces-data-' . $calId . '">' . json_encode($all…
1971 $html .= '</div>';
1974 $html .= '<div class="form-field">';
1975 $html .= '<label class="field-label"> Description</label>';
1976 …$html .= '<textarea id="event-desc-' . $calId . '" name="description" rows="2" class="input-sleek …
1977 $html .= '</div>';
1980 $html .= '<div class="form-row-group">';
1982 $html .= '<div class="form-field form-field-half">';
1983 $html .= '<label class="field-label-compact"> Start Date</label>';
1984 $html .= '<div class="date-picker-wrapper">';
1985 … $html .= '<input type="hidden" id="event-date-' . $calId . '" name="date" required value="">';
1986 …$html .= '<button type="button" class="custom-date-picker input-sleek input-compact" id="date-pick…
1987 $html .= '<span class="date-display">Select date</span>';
1988 $html .= '<span class="date-arrow">▼</span>';
1989 $html .= '</button>';
1990 $html .= '<div class="date-dropdown" id="date-dropdown-' . $calId . '"></div>';
1991 $html .= '</div>';
1992 $html .= '</div>';
1994 $html .= '<div class="form-field form-field-half">';
1995 $html .= '<label class="field-label-compact"> End Date</label>';
1996 $html .= '<div class="date-picker-wrapper">';
1997 $html .= '<input type="hidden" id="event-end-date-' . $calId . '" name="endDate" value="">';
1998 …$html .= '<button type="button" class="custom-date-picker input-sleek input-compact" id="end-date-…
1999 $html .= '<span class="date-display">Optional</span>';
2000 $html .= '<span class="date-arrow">▼</span>';
2001 $html .= '</button>';
2002 $html .= '<div class="date-dropdown" id="end-date-dropdown-' . $calId . '"></div>';
2003 $html .= '</div>';
2004 $html .= '</div>';
2006 $html .= '</div>'; // End row
2009 $html .= '<div class="form-field form-field-checkbox form-field-checkbox-compact">';
2010 $html .= '<label class="checkbox-label checkbox-label-compact">';
2011 …$html .= '<input type="checkbox" id="event-recurring-' . $calId . '" name="isRecurring" class="rec…
2012 $html .= '<span> Repeating Event</span>';
2013 $html .= '</label>';
2014 $html .= '</div>';
2017 …$html .= '<div id="recurring-options-' . $calId . '" class="recurring-options" style="display:none…
2020 $html .= '<div class="form-row-group" style="margin-bottom:6px;">';
2022 $html .= '<div class="form-field" style="flex:0 0 auto; min-width:0;">';
2023 $html .= '<label class="field-label-compact">Repeat every</label>';
2024 …$html .= '<input type="number" id="event-recurrence-interval-' . $calId . '" name="recurrenceInter…
2025 $html .= '</div>';
2027 $html .= '<div class="form-field" style="flex:1; min-width:0;">';
2028 $html .= '<label class="field-label-compact"> </label>';
2029 …$html .= '<select id="event-recurrence-type-' . $calId . '" name="recurrenceType" class="input-sle…
2030 $html .= '<option value="daily">Day(s)</option>';
2031 $html .= '<option value="weekly">Week(s)</option>';
2032 $html .= '<option value="monthly">Month(s)</option>';
2033 $html .= '<option value="yearly">Year(s)</option>';
2034 $html .= '</select>';
2035 $html .= '</div>';
2037 $html .= '</div>'; // End row 1
2040 …$html .= '<div id="weekly-options-' . $calId . '" class="weekly-options" style="display:none; marg…
2041 …$html .= '<label class="field-label-compact" style="display:block; margin-bottom:4px;">On these da…
2042 $html .= '<div style="display:flex; flex-wrap:wrap; gap:2px;">';
2045 …$html .= '<label style="display:inline-flex; align-items:center; padding:2px 6px; background:var(-…
2046 …$html .= '<input type="checkbox" name="weekDays[]" value="' . $idx . '" style="margin-right:3px; w…
2047 $html .= '<span>' . $day . '</span>';
2048 $html .= '</label>';
2050 $html .= '</div>';
2051 $html .= '</div>'; // End weekly options
2054 …$html .= '<div id="monthly-options-' . $calId . '" class="monthly-options" style="display:none; ma…
2055 …$html .= '<label class="field-label-compact" style="display:block; margin-bottom:4px;">Repeat on:<…
2058 $html .= '<div style="margin-bottom:6px;">';
2059 …$html .= '<label style="display:inline-flex; align-items:center; margin-right:12px; cursor:pointer…
2060 …$html .= '<input type="radio" name="monthlyType" value="dayOfMonth" checked onchange="updateMonthl…
2061 $html .= 'Day of month';
2062 $html .= '</label>';
2063 …$html .= '<label style="display:inline-flex; align-items:center; cursor:pointer; font-size:11px;">…
2064 …$html .= '<input type="radio" name="monthlyType" value="ordinalWeekday" onchange="updateMonthlyTyp…
2065 $html .= 'Weekday pattern';
2066 $html .= '</label>';
2067 $html .= '</div>';
2070 …$html .= '<div id="monthly-day-' . $calId . '" style="display:flex; align-items:center; gap:6px;">…
2071 $html .= '<span style="font-size:11px;">Day</span>';
2072 …$html .= '<input type="number" id="event-month-day-' . $calId . '" name="monthDay" class="input-sl…
2073 $html .= '<span style="font-size:10px; color:var(--text-dim, #666);">of each month</span>';
2074 $html .= '</div>';
2077 $html .= '<div id="monthly-ordinal-' . $calId . '" style="display:none;">';
2078 $html .= '<div style="display:flex; align-items:center; gap:4px; flex-wrap:wrap;">';
2079 …$html .= '<select id="event-ordinal-' . $calId . '" name="ordinalWeek" class="input-sleek input-co…
2080 $html .= '<option value="1">First</option>';
2081 $html .= '<option value="2">Second</option>';
2082 $html .= '<option value="3">Third</option>';
2083 $html .= '<option value="4">Fourth</option>';
2084 $html .= '<option value="5">Fifth</option>';
2085 $html .= '<option value="-1">Last</option>';
2086 $html .= '</select>';
2087 …$html .= '<select id="event-ordinal-day-' . $calId . '" name="ordinalDay" class="input-sleek input…
2088 $html .= '<option value="0">Sunday</option>';
2089 $html .= '<option value="1">Monday</option>';
2090 $html .= '<option value="2">Tuesday</option>';
2091 $html .= '<option value="3">Wednesday</option>';
2092 $html .= '<option value="4">Thursday</option>';
2093 $html .= '<option value="5">Friday</option>';
2094 $html .= '<option value="6">Saturday</option>';
2095 $html .= '</select>';
2096 $html .= '<span style="font-size:10px; color:var(--text-dim, #666);">of each month</span>';
2097 $html .= '</div>';
2098 $html .= '</div>';
2100 $html .= '</div>'; // End monthly options
2103 $html .= '<div class="form-row-group">';
2104 $html .= '<div class="form-field">';
2105 $html .= '<label class="field-label-compact">Repeat Until (optional)</label>';
2106 …$html .= '<input type="date" id="event-recurrence-end-' . $calId . '" name="recurrenceEnd" class="…
2107 …$html .= '<div style="font-size:9px; color:var(--text-dim, #666); margin-top:2px;">Leave empty for…
2108 $html .= '</div>';
2109 $html .= '</div>'; // End row 4
2111 $html .= '</div>'; // End recurring options
2114 $html .= '<div class="form-row-group">';
2116 $html .= '<div class="form-field form-field-half">';
2117 $html .= '<label class="field-label-compact"> Start Time</label>';
2118 $html .= '<div class="time-picker-wrapper">';
2120 $html .= '<input type="hidden" id="event-time-' . $calId . '" name="time" value="">';
2121 …$html .= '<button type="button" class="custom-time-picker input-sleek input-compact" id="time-pick…
2122 $html .= '<span class="time-display">All day</span>';
2123 $html .= '<span class="time-arrow">▼</span>';
2124 $html .= '</button>';
2125 $html .= '<div class="time-dropdown" id="time-dropdown-' . $calId . '"></div>';
2126 $html .= '</div>';
2127 $html .= '</div>';
2129 $html .= '<div class="form-field form-field-half">';
2130 $html .= '<label class="field-label-compact"> End Time</label>';
2131 $html .= '<div class="time-picker-wrapper">';
2133 $html .= '<input type="hidden" id="event-end-time-' . $calId . '" name="endTime" value="">';
2134 …$html .= '<button type="button" class="custom-time-picker input-sleek input-compact" id="end-time-…
2135 $html .= '<span class="time-display">Same as start</span>';
2136 $html .= '<span class="time-arrow">▼</span>';
2137 $html .= '</button>';
2138 $html .= '<div class="time-dropdown" id="end-time-dropdown-' . $calId . '"></div>';
2139 $html .= '</div>';
2140 $html .= '</div>';
2142 $html .= '</div>'; // End row
2145 $html .= '<div class="form-row-group">';
2147 $html .= '<div class="form-field form-field-full">';
2148 $html .= '<label class="field-label-compact"> Color</label>';
2149 $html .= '<div class="color-picker-wrapper">';
2150 …$html .= '<select id="event-color-' . $calId . '" name="color" class="input-sleek input-compact co…
2151 $html .= '<option value="#3498db" style="background:#3498db;color:white"> Blue</option>';
2152 $html .= '<option value="#2ecc71" style="background:#2ecc71;color:white"> Green</option>';
2153 $html .= '<option value="#e74c3c" style="background:#e74c3c;color:white"> Red</option>';
2154 … $html .= '<option value="#f39c12" style="background:#f39c12;color:white"> Orange</option>';
2155 … $html .= '<option value="#9b59b6" style="background:#9b59b6;color:white"> Purple</option>';
2156 $html .= '<option value="#e91e63" style="background:#e91e63;color:white"> Pink</option>';
2157 $html .= '<option value="#1abc9c" style="background:#1abc9c;color:white"> Teal</option>';
2158 $html .= '<option value="custom"> Custom...</option>';
2159 $html .= '</select>';
2160 …$html .= '<input type="color" id="event-color-custom-' . $calId . '" class="color-picker-input col…
2161 $html .= '</div>';
2162 $html .= '</div>';
2164 $html .= '</div>'; // End row
2167 $html .= '<div class="form-field form-field-checkbox form-field-checkbox-compact">';
2168 $html .= '<label class="checkbox-label checkbox-label-compact">';
2169 …$html .= '<input type="checkbox" id="event-is-task-' . $calId . '" name="isTask" class="task-toggl…
2170 $html .= '<span> This is a task (can be checked off)</span>';
2171 $html .= '</label>';
2172 $html .= '</div>';
2175 $html .= '<div class="dialog-actions-sleek">';
2176 …$html .= '<button type="button" class="btn-sleek btn-cancel-sleek" onclick="closeEventDialog(\'' .…
2177 $html .= '<button type="submit" class="btn-sleek btn-save-sleek"> Save</button>';
2178 $html .= '</div>';
2180 $html .= '</form>';
2181 $html .= '</div>';
2182 $html .= '</div>';
2184 return $html;
2195 …$html = '<div class="month-picker-overlay ' . $themeClass . '" id="month-picker-overlay-' . $calId…
2196 $html .= '<div class="month-picker-dialog" onclick="event.stopPropagation();">';
2197 $html .= '<h4>Jump to Month</h4>';
2199 $html .= '<div class="month-picker-selects">';
2200 $html .= '<select id="month-picker-month-' . $calId . '" class="month-picker-select">';
2204 … $html .= '<option value="' . $m . '"' . $selected . '>' . $monthNames[$m - 1] . '</option>';
2206 $html .= '</select>';
2208 $html .= '<select id="month-picker-year-' . $calId . '" class="month-picker-select">';
2212 $html .= '<option value="' . $y . '"' . $selected . '>' . $y . '</option>';
2214 $html .= '</select>';
2215 $html .= '</div>';
2217 $html .= '<div class="month-picker-actions">';
2218 …$html .= '<button class="btn-sleek btn-cancel-sleek" onclick="closeMonthPicker(\'' . $calId . '\')…
2219 …$html .= '<button class="btn-sleek btn-save-sleek" onclick="jumpToSelectedMonth(\'' . $calId . '\'…
2220 $html .= '</div>';
2222 $html .= '</div>';
2223 $html .= '</div>';
2225 return $html;
2355 foreach ($tokens as $i => $html) {
2356 $rendered = str_replace("\x00TOKEN" . $i . "\x00", $html, $rendered);
2688 …$html = '<div class="sidebar-widget ' . $themeClass . '" id="sidebar-widget-' . $calId . '" style=…
2692 $html .= '<style>
2721 $html .= '<style>
2765 $html .= '<script>
2818 $html .= '<script>
2906 …$html .= '<div class="eventlist-today-header" style="background:' . $themeStyles['header_bg'] . ';…
2907 …$html .= '<span class="eventlist-today-clock" id="clock-' . $calId . '" style="color:' . $themeSty…
2908 $html .= '<div class="eventlist-bottom-info">';
2909 …$html .= '<span class="eventlist-weather"><span id="weather-icon-' . $calId . '">️</span> <span …
2910 …$html .= '<span class="eventlist-today-date" style="color:' . $themeStyles['text_dim'] . ';">' . $…
2911 $html .= '</div>';
2912 $html .= '</div>';
2927 …$html .= '<div style="background:' . $addBtnBg . '; padding:0; margin:0; height:12px; line-height:…
2929 …$html .= '<span style="color:' . $addBtnTextColor . '; font-size:8px; font-weight:700; letter-spac…
2930 $html .= '</div>';
2933 $html .= $this->renderWeekGrid($weekEvents, $weekStart, $themeStyles, $theme);
2982 …$html .= '<div id="itinerary-bar-' . $calId . '" style="background:' . $itineraryBg . '; padding:0…
2983 …$html .= '<span id="itinerary-arrow-' . $calId . '" style="color:' . $itineraryTextColor . '; font…
2984 …$html .= '<span style="color:' . $itineraryTextColor . '; font-size:8px; font-weight:700; letter-s…
2985 $html .= '</div>';
2988 …$html .= '<div id="itinerary-content-' . $calId . '" style="transition:max-height 0.3s ease-out, o…
2992 …$html .= $this->renderSidebarSection('Today', $todayEvents, $todayColor, $calId, $themeStyles, $th…
2997 …$html .= $this->renderSidebarSection('Tomorrow', $tomorrowEvents, $tomorrowColor, $calId, $themeSt…
3002 …$html .= $this->renderSidebarSection('Important Events', $importantEvents, $importantColor, $calId…
3007 …$html .= '<div style="padding:8px; text-align:center; color:' . $themeStyles['text_dim'] . '; font…
3010 $html .= '</div>'; // Close itinerary-content
3019 $html .= '<script>
3065 $html .= '</div>';
3068 $html .= $this->renderEventDialog($calId, $namespace, $theme);
3071 $html .= '<script>
3110 return $html;
3121 …$html = '<div style="display:grid; grid-template-columns:repeat(7, 1fr); gap:1px; background:' . $…
3165 …$html .= '<div style="background:' . $bgColor . '; padding:4px 2px; text-align:center; min-height:…
3169 …$html .= '<div style="font-size:9px; color:' . $dayLetterColor . '; font-weight:500; font-family:s…
3172 …$html .= '<div style="font-size:12px; color:' . $textColor . '; font-weight:' . $fontWeight . '; m…
3181 …$html .= '<div style="height:2px; background:' . htmlspecialchars($color) . '; margin:1px 0; borde…
3187 …$html .= '<div style="font-size:7px; color:' . $moreTextColor . '; margin-top:1px; font-family:sys…
3191 $html .= '</div>';
3194 $html .= '</div>';
3210 …$html .= '<div id="selected-day-events-' . $calId . '" style="display:none; margin:8px 4px; border…
3212 …$html .= '<div style="background:' . $panelHeaderBg . '; color:' . $panelHeaderColor . '; padding:…
3213 $html .= '<span id="selected-day-title-' . $calId . '"></span>';
3214 …$html .= '<span onclick="document.getElementById(\'selected-day-events-' . $calId . '\').style.dis…
3216 …$html .= '<div style="background:' . $panelHeaderBg . ' !important; color:' . $panelHeaderColor . …
3217 $html .= '<span id="selected-day-title-' . $calId . '"></span>';
3218 …$html .= '<span onclick="document.getElementById(\'selected-day-events-' . $calId . '\').style.dis…
3220 $html .= '</div>';
3221 …$html .= '<div id="selected-day-content-' . $calId . '" style="padding:4px 0; background:' . $pane…
3222 $html .= '</div>';
3225 $html .= '<script>';
3228 $html .= 'window.weekEventsData_' . $jsCalId . ' = ' . json_encode($weekEvents) . ';';
3246 $html .= 'window.themeColors_' . $jsCalId . ' = ' . $jsThemeColors . ';';
3247 $html .= '
3347 $html .= '</script>';
3349 return $html;
3415 …$html = '<div style="display:flex; margin:8px 4px; box-shadow:' . $sectionShadow . '; background:'…
3416 … $html .= '<div style="width:3px; flex-shrink:0; background:' . $borderColor . ';"></div>';
3417 $html .= '<div style="flex:1; min-width:0;">';
3419 …$html = '<div style="border-left:3px solid ' . $borderColor . ' !important; margin:8px 4px; box-sh…
3428 …$html .= '<div style="background:' . $accentColor . '; color:' . $headerTextColor . '; padding:4px…
3431 …$html .= '<div style="background:' . $accentColor . ' !important; color:' . $headerTextColor . ' !…
3433 $html .= htmlspecialchars($title);
3434 $html .= '</div>';
3437 $html .= '<div style="padding:4px 0;">';
3440 …$html .= $this->renderSidebarEvent($event, $calId, $showDate, $accentColor, $themeStyles, $theme, …
3443 $html .= '</div>';
3444 $html .= '</div>';
3446 $html .= '</div>'; // Close flex wrapper
3449 return $html;
3529 …$html = '<div style="padding:4px 6px; border-bottom:1px solid ' . $borderColor . ' !important; fon…
3533 …$html .= '<div style="width:3px; align-self:stretch; background:' . $eventColor . '; border-radius…
3536 $html .= '<div style="flex:1; min-width:0;">';
3539 …$html .= '<div style="font-weight:600; color:' . $titleColor . '; word-wrap:break-word; font-famil…
3543 …$html .= '<span style="color:' . $timeColor . '; font-weight:500; font-size:9px;">' . htmlspecialc…
3550 … $html .= '<span style="font-size:11px; color:' . $checkColor . ';">' . $checkIcon . '</span> ';
3555 $html .= '<span style="font-size:9px;" title="Important">⭐</span> ';
3558 $html .= $title; // Already HTML-escaped on line 2625
3563 …$html .= ' <span class="event-conflict-badge" style="font-size:10px;" data-conflicts="' . $conflic…
3566 $html .= '</div>';
3575 …$html .= '<div style="font-size:8px; color:' . $dateColor . '; font-weight:500; margin-top:2px; ' …
3578 $html .= '</div>';
3579 $html .= '</div>';
3581 return $html;