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
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
Change comment: Install extension [org.xwiki.contrib:application-mocca-calendar-ui/2.9.6]

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.admin
1 +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