On 01/13/2015 03:05 PM, Pascal BASTIEN wrote:
> Thxs a lot to explained me with clarity all of that and help me to understand 
> better XWiki.
> Then with what you give me, I tried to add a  format_date parameter () (or 
> regexp) in columns properties to improve livetable.
> I failed because I didn't manage to find where is store livetable macro :-))
> 
> Something like this and next add a format date parameter in user index 
> customizer.
> #set($columns = ["_avatar", "first_name", "last_name", "email", 
> "doc.creationDate", "_actions"])
> #set($columnsProperties = {
>    "_avatar" : { "type" : "none", "link" : "none", "html" : "true", 
> "sortable":false },
>    "first_name" : { "type" : "text" , "size" : 20, "link" : "view"},
>    "last_name" : { "type" : "text", "link" : "view"},
>    "email" : { "type" : "text" },
>     "doc.creationDate" : { "type" : "date", "dateformat":"YYYY-mm" }
> })

I am afraid that this does not work.
The supported options are documented here:

  http://extensions.xwiki.org/xwiki/bin/view/Extension/Livetable+Macro

and a 'dateformat' option is unfortunately not part of it.

The problem is that in the end the #livetable macro turns out to make an AJAX 
call
to the code at the page XWiki.LiveTableResults ,  which in turn uses the 
XWiki.LiveTableResultsMacros
and the latter just calls  $xwiki.formatDate($itemDoc.creationDate)) without 
any custom format.

What you can to is:

 - either again patch that line of code in the XWiki.LiveTableResultsMacros 
with a date format of your choice

 - or modify the results afterwards, as explained  
http://extensions.xwiki.org/xwiki/bin/view/Extension/Livetable+Macro#HCustomJSON
   (scroll down to the "Starting with XWiki Enterprise 4.0 you can modify the 
default JSON ...")

the later would involve creating your own livetable result page, i.e. 
XWiki.LiveTableResultsNoTime
with e.g. the contents:

{{include reference="XWiki.LiveTableResultsMacros" /}}

{{velocity wiki="false"}}
#if("$!{request.xpage}" == 'plain')
 $response.setContentType('application/json')
#end
##==================
## Initialize the map that will store the JSON data.
##==================
#set($map = {})
##==================
## Build the JSON in memory using the previous map
##==================
#gridresult_buildJSON("$!request.classname" $request.collist.split(',') $map)
##==================
## Modify the JSON data from the map or add new data.
##==================
#foreach($row in $map.get('rows'))
 #if($row.get('doc_creationDate'))
    #set($creation_date = $row.get('doc_creationDate'))
    #set($time_sep_index = $creation_date.indexOf(' '))
    #if($time_sep_index >=0)
      #set($creation_date_without_time = $creation_date.substring(0, 
$time_sep_index))
      #set($discard = $row.put('doc_creationDate', $creation_date_without_time 
))
    #end
 #end
#end
##==================
## Serialize the map in the JSON format.
##==================
$jsontool.serialize($map)
{{/velocity}}

this mostly copy & paste from the LiveTable docs, expect for the "Modify the 
JSON data ..." part,
where the creation date field is simply cut off after the first space - quite 
hackish, but should work
for most date formats.

Now when calling that page to get the results, everything must be put inside 
the 'url' option
so the $options change to:

#set($options = {
  "url" : "$xwiki.getURL('XWiki.LiveTableResultsNoTime', 'get', 
'outputSyntax=plain&classname=XWiki.XWikiUsers&transprefix=xe.userdirectory.&collist=_avatar,first_name,last_name,email,doc.creationDate')",
  "rowCount": 10
})

Afterwards it is just a matter of a few hours debugging with firebug etc until 
one finds the missing ')' or '"' that keeps things from working ;)


Oh, and come to think of it, the simplest solution would be to change
the XWiki date format the XWiki Admin to exclude the time - that would remove
the time everywhere, but I know people who actually like it. ;)


> #set($options = {
>   "className":"XWiki.XWikiUsers",
>   "translationPrefix" : "xe.index.users.",
>   "tagCloud" : true,
>   "rowCount": 10
> })
> #livetable("userdirectory" $columns $columnsProperties $options)
[...]
_______________________________________________
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users

Reply via email to