Changes for page Calendar Macro

Last modified by admin on 2025/07/01 00:06

From 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]
To version 2.1
edited by Benjamin Fischer
on 2025/02/11 10:47
Change comment: Install extension [org.xwiki.contrib:application-mocca-calendar-ui/2.9.7]

Summary

Details

XWiki.WikiMacroClass[0]
Macro code
... ... @@ -1,5 +1,4 @@
1 1  {{velocity output="false"}}
2 -$services.localization.use('document', 'Calendar.Translations')
3 3  #if('#dateTimePicker_import()' == "#dateTimePicker_import()")
4 4   #set($picker_macro = false)
5 5   ## A simple date picker widget.
... ... @@ -73,6 +73,10 @@
73 73  #if("$!dateFormat" == "")
74 74   #set($dateFormat = "dd.MM.yyyy HH:mm:ss")
75 75  #end
75 +#set ($eventLimit = $xcontext.macro.params.eventLimit)
76 +#if (!$eventLimit)
77 + #set ($eventLimit = false)
78 +#end
76 76  
77 77  ##
78 78  ## some hardwired values that you can feel free to customize
... ... @@ -87,8 +87,34 @@
87 87  #set($right = "agendaDay,agendaWeek,month,plainList")
88 88  
89 89  #set($canCreateEvents = $xwiki.hasAccessLevel("edit", $xcontext.getUser(), $calendarDoc))
93 +#set ($calendarsFilter = $request.parameterMap['calendarsFiltler'])
94 +{{/velocity}}
90 90  
91 -{{/velocity}}{{velocity}}#if($xcontext.action=='view'){{html clean="false" wiki="false"}}
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"}}
92 92  #if($canCreateEvents)
93 93  ## create event link
94 94  <div class="calendar-buttons">
... ... @@ -114,6 +114,7 @@
114 114   outputSyntax: 'plain',
115 115   calendarDoc: "$!escapetool.javascript($calendarDoc)",
116 116   filter: "$!escapetool.javascript($filter)",
146 + calendarsFilter: "$!escapetool.javascript($stringtool.join($calendarsFilter, ','))",
117 117   classname: "MoccaCalendar.MoccaCalendarEventClass",
118 118   startfield: "startDate",
119 119   endfield: "endDate",
... ... @@ -122,6 +122,7 @@
122 122  
123 123   // page is now ready, initialize the calendar...
124 124   var calendar = jQuery('#calendar${calcounter}').fullCalendar({
155 + eventLimit: $escapetool.javascript($eventLimit),
125 125   events: {
126 126   url : "$!escapetool.javascript($jsonUrl)",
127 127   type: 'GET',
XWiki.WikiMacroParameterClass[9]
Parameter default value
... ... @@ -1,0 +1,1 @@
1 +false
Parameter description
... ... @@ -1,0 +1,1 @@
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,0 +1,1 @@
1 +No
Parameter name
... ... @@ -1,0 +1,1 @@
1 +eventLimit