Edward Laptop wrote:
Sometime ago I was given this code to add to attachmentsinline.vm
#set($attachmentsMap = $util.hashMap) #foreach($a in $attachments) #set($discard = $attachmentsMap.put($a.date, $a)) #end #set($dates = $util.arrayList) #foreach($date in $attachmentsMap.keySet()) #set($discard = $dates.add($date)) #end #set($dates = $util.sort($dates)) #set($dates = $util.reverseList($dates)) #set($attachments = $util.arrayList) #foreach($date in $dates) #set($discard = $attachments.add($attachmentsMap.get($date))) #end
this works fine, putting the attachments in order on my local server
However, my client (running XWiki Enterprise 1.5.1.12494) reports that it doesn't show all the attachments. He has one page with about 10 attachments, only 5 of which show. If he takes the code out all the attachments are there, but not in date order which he wants.
can anyone please help.
I guess some attachments have the same date, thus they overlap in the hashmap. Try this: #set($attachmentsMap = $util.hashMap) #foreach($a in $attachments) #if(!$attachmentsMap.containsKey($a.date)) #set($discard = $attachmentsMap.put($a.date, $util.arrayList)) #end #set($discard = $attachmentsMap.get($a.date).add($a)) #end #set($dates = $util.arrayList) #foreach($date in $attachmentsMap.keySet()) #set($discard = $dates.add($date)) #end #set($dates = $util.sort($dates)) #set($dates = $util.reverseList($dates)) #set($attachments = $util.arrayList) #foreach($date in $dates) #set($discard = $attachments.addAll($attachmentsMap.get($date))) #end -- Sergiu Dumitriu http://purl.org/net/sergiu/