Changes for page Calendar Macro
Last modified by admin on 2025/07/01 00:06
From version 3.1
edited by admin
on 2025/03/28 10:41
on 2025/03/28 10:41
Change comment:
Install extension [org.xwiki.contrib:application-mocca-calendar-ui/2.9.8]
To version 1.1
edited by Benjamin Fischer
on 2024/11/05 16:22
on 2024/11/05 16:22
Change comment:
Install extension [org.xwiki.contrib:application-mocca-calendar-ui/2.9.6]
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Objects (1 modified, 0 added, 1 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. admin1 +XWiki.fischer
- XWiki.WikiMacroClass[0]
-
- Macro code
-
... ... @@ -1,4 +1,5 @@ 1 1 {{velocity output="false"}} 2 +$services.localization.use('document', 'Calendar.Translations') 2 2 #if('#dateTimePicker_import()' == "#dateTimePicker_import()") 3 3 #set($picker_macro = false) 4 4 ## A simple date picker widget. ... ... @@ -72,10 +72,6 @@ 72 72 #if("$!dateFormat" == "") 73 73 #set($dateFormat = "dd.MM.yyyy HH:mm:ss") 74 74 #end 75 -#set ($eventLimit = $xcontext.macro.params.eventLimit) 76 -#if (!$eventLimit) 77 - #set ($eventLimit = false) 78 -#end 79 79 80 80 ## 81 81 ## some hardwired values that you can feel free to customize ... ... @@ -88,36 +88,10 @@ 88 88 #set($left = "prev,next today") 89 89 #set($center = "title") 90 90 #set($right = "agendaDay,agendaWeek,month,plainList") 91 -## 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. 92 -#set ($canCreateEvents = $xwiki.hasAccessLevel('edit', $xcontext.getUser(), $calendarDoc) || ($filter != 'page' && $services.moccacalendar.allEditableCalendars.size() > 0)) 93 -#set ($calendarsFilter = $request.parameterMap['calendarsFiltler']) 94 -{{/velocity}} 95 95 96 -{{velocity}} 97 -#if ($xcontext.action == 'view' && $filter != 'page') 98 - #set ($statement = "select doc.fullName, calendar.color from Document doc, doc.object(MoccaCalendar.MoccaCalendarClass) calendar where doc.name <> 'MoccaCalendarTemplate'") 99 - #set ($results = $services.query.xwql($statement).execute()) 100 - #if ($results.size() > 1) 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}} 117 - #end 118 -#end 119 -#if ($xcontext.action=='view' || $xcontext.action=='export') 120 -{{html clean="false" wiki="false"}} 89 +#set($canCreateEvents = $xwiki.hasAccessLevel("edit", $xcontext.getUser(), $calendarDoc)) 90 + 91 +{{/velocity}}{{velocity}}#if($xcontext.action=='view'){{html clean="false" wiki="false"}} 121 121 #if($canCreateEvents) 122 122 ## create event link 123 123 <div class="calendar-buttons"> ... ... @@ -128,12 +128,9 @@ 128 128 ## end create event link 129 129 #end 130 130 <div id="calendar${calcounter}"></div> 131 -#if ($calcounter == 0 && $canCreateEvents) 132 - ## Show event description form to trigger load of CK Editor resources. 133 - <form class="hidden"> 134 - #set ($eventObject = $xwiki.getDocument('MoccaCalendar.MoccaCalendarEventTemplate').getObject('MoccaCalendar.MoccaCalendarEventClass')) 135 - $eventObject.display('description','edit').replace('{{html clean="false" wiki="false"}}', '').replace('{{/html}}', '') 136 - </form> 102 +#if($calcounter==0 && $canCreateEvents) 103 +## show event description form to trigger load of CK Editor resources 104 +<form class="hidden">$xwiki.getDocument('MoccaCalendar.MoccaCalendarEventTemplate').getObject('MoccaCalendar.MoccaCalendarEventClass').display('description','edit')</form> 137 137 #end 138 138 <script type="text/javascript"> 139 139 require(['jquery', 'moccacalendar'], function(jQuery) { ... ... @@ -146,7 +146,6 @@ 146 146 outputSyntax: 'plain', 147 147 calendarDoc: "$!escapetool.javascript($calendarDoc)", 148 148 filter: "$!escapetool.javascript($filter)", 149 - calendarsFilter: "$!escapetool.javascript($stringtool.join($calendarsFilter, ','))", 150 150 classname: "MoccaCalendar.MoccaCalendarEventClass", 151 151 startfield: "startDate", 152 152 endfield: "endDate", ... ... @@ -155,7 +155,6 @@ 155 155 156 156 // page is now ready, initialize the calendar... 157 157 var calendar = jQuery('#calendar${calcounter}').fullCalendar({ 158 - eventLimit: $escapetool.javascript($eventLimit), 159 159 events: { 160 160 url : "$!escapetool.javascript($jsonUrl)", 161 161 type: 'GET', ... ... @@ -237,12 +237,7 @@ 237 237 jQuery('#calendar${calcounter}-btn').click( function(e) { calendarHelper.showCreateEvent(); e.preventDefault(); }); 238 238 // helper to be used in callback above 239 239 #set($newPageParams = "template=MoccaCalendar.MoccaCalendarEventTemplate&parentFROM=${escapetool.url($calendarDoc)}&form_token=${services.csrf.getToken()}&ocalcaction=create") 240 -## 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. 241 -#set ($randomSpace = 'MoccaCalendar') 242 -#if ($services.moccacalendar.allEditableCalendars.size() > 0) 243 - #set ($randomSpace = $services.model.resolveDocument($services.moccacalendar.allEditableCalendars[0]).lastSpaceReference) 244 -#end 245 -#set($randomDocUrl = $xwiki.getURL("${randomSpace}.randomPage${util.generateRandomString(10)}",'edit',$newPageParams)) 206 +#set($randomDocUrl = $xwiki.getURL("randomPage${util.generateRandomString(10)}",'edit',$newPageParams)) 246 246 #set($updateUrlParams="?xpage=plain&outputSyntax=plain&calendarDoc=${escapetool.url(${calendarDoc})}&") 247 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 248 });
- XWiki.WikiMacroParameterClass[9]
-
- Parameter default value
-
... ... @@ -1,1 +1,0 @@ 1 -false - Parameter description
-
... ... @@ -1,1 +1,0 @@ 1 -Sets a limit on daily event display. Extra events appear in a popover. If false (default) shows all events, else (true) restricts them to the day cell’s height. - Parameter mandatory
-
... ... @@ -1,1 +1,0 @@ 1 -No - Parameter name
-
... ... @@ -1,1 +1,0 @@ 1 -eventLimit