Changes for page Calendar Macro
Last modified by Benjamin Fischer on 2025/07/10 12:57
From version 8.1
edited by Benjamin Fischer
on 2025/07/10 12:57
on 2025/07/10 12:57
Change comment:
Install extension [org.xwiki.contrib:application-mocca-calendar-ui/2.9.10]
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Objects (3 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. fischer1 +XWiki.admin
- XWiki.JavaScriptExtension[0]
-
- Code
-
... ... @@ -79,7 +79,7 @@ 79 79 var params = "page=" + encodeURIComponent(page) + "&isResize=" + (isResize ? "1" : "0") + "&delta=" + delta.asMilliseconds() + "&startDate=" + startDate.format() 80 80 if (endDate) { params += "&endDate=" + endDate.format(); } 81 81 params += "&allDay=" + (startDate.hasTime()?"":"1"); 82 - var url = this.updateEventUrl + '&' +params;82 + var url = this.updateEventUrl + params; 83 83 jQuery.ajax(url).fail(function (data) { 84 84 savingBox.hide(); 85 85 this.displayError(); ... ... @@ -727,11 +727,3 @@ 727 727 } // if the XWiki.widgets.ModalPopup is defined 728 728 729 729 }); 730 - 731 -// Toggle the Filter Events by Calendar section. 732 -require(['jquery'], function ($) { 733 - $('#toggleCalendarsFilter').on('click', function() { 734 - $(this).children('span').toggleClass('fa-angle-up fa-angle-down'); 735 - $('#calendarsFilter form').toggleClass('hidden'); 736 - }); 737 -});
- XWiki.StyleSheetExtension[0]
-
- Code
-
... ... @@ -83,35 +83,3 @@ 83 83 div.fc-view.fc-plainList-view { 84 84 border-width: 0; 85 85 } 86 - 87 -/* Filterable calendars */ 88 -#calendarsFilter { 89 - h4 { 90 - display: inline-block; 91 - margin-right: 10px; 92 - } 93 - #toggleCalendarsFilter { 94 - margin-bottom: 10px; 95 - span.fa-angle-down { 96 - font-weight: bold; 97 - } 98 - } 99 - ul { 100 - list-style: none; 101 - padding: 0; 102 - li { 103 - float: left; 104 - margin-right: 10px; 105 - margin-bottom: 10px; 106 - label { 107 - margin: 0; 108 - } 109 - input, label { 110 - cursor: inherit; 111 - } 112 - } 113 - } 114 - input[type='submit'] { 115 - display: block; 116 - } 117 -} - Content Type
-
... ... @@ -1,1 +1,1 @@ 1 - LESS1 +CSS
- XWiki.WikiMacroClass[0]
-
- Macro code
-
... ... @@ -80,16 +80,17 @@ 80 80 ## 81 81 ## some hardwired values that you can feel free to customize 82 82 ## 83 -#set($jsonUrl = $xwiki.getURL('MoccaCalendar.Code.JSONService', 'get')) 84 -#set($newPageNameUrl = $xwiki.getURL('MoccaCalendar.Code.NewEventNameService', 'get')) 85 -#set($dateCheckUrl = $xwiki.getURL('MoccaCalendar.Code.DateCheckService', 'get')) 86 -#set($deleteEventInstanceUrl = $xwiki.getURL('MoccaCalendar.Code.DeleteEventInstanceService', 'get')) 83 +#set($jsonUrl = $xwiki.getDocument("MoccaCalendar.Code.JSONService").getURL("get")) 84 +#set($newPageNameUrl = $xwiki.getDocument("MoccaCalendar.Code.NewEventNameService").getURL("get")) 85 +#set($dateCheckUrl = $xwiki.getDocument("MoccaCalendar.Code.DateCheckService").getURL("get")) 86 +#set($updateUrl = $xwiki.getDocument("MoccaCalendar.Code.UpdateService").getURL("get")) 87 +#set($deleteEventInstanceUrl = $xwiki.getDocument("MoccaCalendar.Code.DeleteEventInstanceService").getURL("get")) 87 87 #set($left = "prev,next today") 88 88 #set($center = "title") 89 89 #set($right = "agendaDay,agendaWeek,month,plainList") 90 90 ## Can create event in the current calendar or in the space or wiki calendar view if at least one calendar is editable for the current user. 91 91 #set ($canCreateEvents = $xwiki.hasAccessLevel('edit', $xcontext.getUser(), $calendarDoc) || ($filter != 'page' && $services.moccacalendar.allEditableCalendars.size() > 0)) 92 -#set ($calendarsFilter = $request.parameterMap['calendarsFilter']) 93 +#set ($calendarsFilter = $request.parameterMap['calendarsFiltler']) 93 93 {{/velocity}} 94 94 95 95 {{velocity}} ... ... @@ -97,38 +97,22 @@ 97 97 #set ($statement = "select doc.fullName, calendar.color from Document doc, doc.object(MoccaCalendar.MoccaCalendarClass) calendar where doc.name <> 'MoccaCalendarTemplate'") 98 98 #set ($results = $services.query.xwql($statement).execute()) 99 99 #if ($results.size() > 1) 100 - (% id="calendarsFilter" %)((( 101 - #set ($hasCalendarsFilter = "$!request.calendarsFilter" != '') 102 - ==== $services.localization.render('MoccaCalendar.calendarevent.filterEvents') ==== 103 - {{html clean="false"}} 104 - <div class="btn-group flat-buttons"> 105 - <a id="toggleCalendarsFilter" class="btn btn-default"> 106 - #set ($faClass = 'fa-angle-down') 107 - #if ($hasCalendarsFilter) 108 - #set ($faClass = 'fa-angle-up') 109 - #end 110 - <span class="fa $faClass"></span> 111 - </a> 112 - </div> 113 - <form action="" method="post" #if(!$hasCalendarsFilter)class="hidden"#end> 114 - <ul class="btn-group flat-buttons"> 115 - #foreach ($result in $results) 116 - #set ($docFullName = $result[0]) 117 - #set ($backgroundColor = $result[1]) 118 - #set ($checked = $calendarsFilter.contains($docFullName)) 119 - #set ($title = $xwiki.getDocument($docFullName).displayTitle) 120 - <li> 121 - <a class="btn btn-default"> 122 - <input type="checkbox" id="$docFullName" name="calendarsFilter" value="$docFullName" #if ($checked) checked #end style="accent-color:$backgroundColor"/> 123 - <label for="$docFullName">$title</label> 124 - </a> 125 - </li> 126 - #end 127 - </ul> 128 - <input type="submit" class="btn btn-primary" value="$services.localization.render('MoccaCalendar.calendarevent.filterEvents.submit')" /> 129 - </form> 130 - {{/html}} 131 - ))) 101 + === $services.localization.render('MoccaCalendar.calendarevent.filterEvents') === 102 + {{html clean="false"}} 103 + <form action="" method="get"> 104 + #foreach ($result in $results) 105 + #set ($docFullName = $result[0]) 106 + #set ($backgroundColor = $result[1]) 107 + #set ($checked = $calendarsFilter.contains($docFullName)) 108 + #set ($title = $xwiki.getDocument($docFullName).displayTitle) 109 + <div> 110 + <input type="checkbox" id="$docFullName" name="calendarsFiltler" value="$docFullName" #if ($checked) checked #end style="accent-color:$backgroundColor"/> 111 + <label for="$docFullName">$title</label> 112 + </div> 113 + #end 114 + <input type="submit" class="btn btn-primary" value="$services.localization.render('MoccaCalendar.calendarevent.filterEvents.submit')" /> 115 + </form> 116 + {{/html}} 132 132 #end 133 133 #end 134 134 #if ($xcontext.action=='view' || $xcontext.action=='export') ... ... @@ -137,7 +137,7 @@ 137 137 ## create event link 138 138 <div class="calendar-buttons"> 139 139 <span class="buttonwrapper"> 140 -<button class="btn btn-success" id="calendar${calcounter}-btn"><span class="glyphicon glyphicon-plus"></span> $escapetool. xml($services.localization.render('MoccaCalendar.calendarevent.create'))</button>125 +<button class="btn btn-success" id="calendar${calcounter}-btn"><span class="glyphicon glyphicon-plus"></span> $escapetool.html($services.localization.render('MoccaCalendar.calendarevent.create'))</button> 141 141 </span> 142 142 </div> 143 143 ## end create event link ... ... @@ -251,37 +251,17 @@ 251 251 }); 252 252 jQuery('#calendar${calcounter}-btn').click( function(e) { calendarHelper.showCreateEvent(); e.preventDefault(); }); 253 253 // helper to be used in callback above 254 -#set ($newPageParams = $escapetool.url({ 255 - 'template': 'MoccaCalendar.MoccaCalendarEventTemplate', 256 - 'parentFROM': $calendarDoc, 257 - 'form_token': $services.csrf.token, 258 - 'ocalcaction': 'create' 259 -})) 239 +#set($newPageParams = "template=MoccaCalendar.MoccaCalendarEventTemplate&parentFROM=${escapetool.url($calendarDoc)}&form_token=${services.csrf.getToken()}&ocalcaction=create") 260 260 ## If the current user is not allowed to edit the current calendar, then create the temporary randomPage in a calendar that can be edited by the current user. 261 261 #set ($randomSpace = 'MoccaCalendar') 262 262 #if ($services.moccacalendar.allEditableCalendars.size() > 0) 263 - #set ($randomSpace = $services.model. serialize($services.model.resolveDocument($services.moccacalendar.allEditableCalendars[0]).lastSpaceReference))243 + #set ($randomSpace = $services.model.resolveDocument($services.moccacalendar.allEditableCalendars[0]).lastSpaceReference) 264 264 #end 265 -#set ($randomDocUrl = $xwiki.getURL("${randomSpace}.randomPage${util.generateRandomString(10)}",'edit',$newPageParams)) 266 -#set ($updateUrlParams = $escapetool.url({ 267 - 'xpage': 'plain', 268 - 'outputSyntax': 'plain', 269 - 'calendarDoc': $calendarDoc 270 -})) 271 -#set ($updateUrl = $xwiki.getURL('MoccaCalendar.Code.UpdateService', 'get', $updateUrlParams)) 272 -var calendarHelper = new XWiki.MoccaCalendar.Helper(calendar, 273 - "$escapetool.javascript($dateFormat)", 274 - "$escapetool.javascript($jsonUrl)", 275 - "$escapetool.javascript($randomDocUrl)", 276 - "$escapetool.javascript($updateUrl)", 277 - "$escapetool.javascript($newPageNameUrl)", 278 - "$escapetool.javascript($dateCheckUrl)", 279 - "$escapetool.javascript($deleteEventInstanceUrl)", 280 - "$escapetool.javascript($newPageParams)", 281 - "$escapetool.javascript($services.csrf.token)" 282 -); 245 +#set($randomDocUrl = $xwiki.getURL("${randomSpace}.randomPage${util.generateRandomString(10)}",'edit',$newPageParams)) 246 +#set($updateUrlParams="?xpage=plain&outputSyntax=plain&calendarDoc=${escapetool.url(${calendarDoc})}&") 247 + var calendarHelper = new XWiki.MoccaCalendar.Helper(calendar, "$!escapetool.javascript($dateFormat)", "$escapetool.javascript($jsonUrl)", "$escapetool.javascript($randomDocUrl)", "$escapetool.javascript("${updateUrl}${updateUrlParams}")", "$escapetool.javascript($newPageNameUrl)", "$escapetool.javascript($dateCheckUrl)","$escapetool.javascript($deleteEventInstanceUrl)","$escapetool.javascript($newPageParams)", "${escapetool.javascript($services.csrf.getToken())}"); 248 + }); 283 283 }); 284 -}); 285 285 </script> 286 286 {{/html}} 287 287 #else ## of #if($xcontext.action=='view') - defaultCategory
-
... ... @@ -1,1 +1,0 @@ 1 -Content