Ah, ok, now I understand (I hope) :)
Indeed the livetable macro is in that place, but this is because the flamingo
skin overrides some of the macros;
the original is actually here:
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwiki-platform-web/src/main/webapp/templates/macros.vm
I guess both macros should be updated, as other skins will use the version in
xwiki-platform-web by default.
(Btw, as the variant in the flamingo skin seems to be there to stay, I wonder
if one wants to split that file
into two parts, one containing the macros overwritten in the flamingo-skin, and
the other one containing the common ones.
Or is this considered an API breakage ?)
Anyway, when adding a dateformat to one of the $columnsProperties it might be
still some way to go to get this working ...
I just tried to track this down, and ended up with the following (any better
idea how to do it?)
- the livetable macro does not really render much stuff by itself, but
delegates most to the AJAX call
You can see that in the script part, where a JavaScript at the end of the
macro, where
the function startup() creates a JavaScript object :
XWiki.widgets.LiveTable that does the actual loading
- just in case you wonder how this triggers the Ajax call, this JavaScript
class in turn is in the file
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwiki-platform-web/src/main/webapp/resources/js/xwiki/table/livetable.js
but I guess that does not need to be touched. (at least)
- instead you can see how the AJAX-request parameters are put together in the
#livetable macro in
#set ($parameters = {
'outputSyntax': 'plain',
'transprefix': $transprefix,
'classname': $classname,
'collist': $stringtool.join($dataColumns, ','),
'queryFilters': $queryFilters
})
You can see these parameters are send via Ajax if you check your browsers
network tab.
So this would be the place to add more parameters.
However as you might see there are no column-specific parameters, only
global ones. So you need to invent a schema to pass these parameters for
columns in, too.
Maybe it might be easier to try to send a global dateformat, at least for a
first try? (I.e. globally used for all entries in the current livetable)
Anyway, these parameters are then send to the XWiki.LiveTableResults :
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwiki-platform-livetable/xwiki-platform-livetable-ui/src/main/resources/XWiki/LiveTableResults.xml
which in turn delegate most of the work into the XWiki.LiveTableResultsMarco
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwiki-platform-livetable/xwiki-platform-livetable-ui/src/main/resources/XWiki/LiveTableResultsMacros.xml
there the call chain in the velocity macros is:
gridresultwithfilter - calls gridresultwithfilter_buildJSON -
gridresult_buildRowsJSON - gridresult_buildRowJSON
In the latter one you find the code which creates the (already formatted)
doc.creationDate (already formatted, because Date is no JSON data type that
can be passed around, and also formatting Dates in JavaScript + Timezone issues
= Desperation IMO)
It is somewhere:
#set($discard = $row.put('doc_date', $xwiki.formatDate($translatedDoc.date)))
#set($discard = $row.put('doc_creationDate',
$xwiki.formatDate($translatedDoc.creationDate)))
Then this macro, for custom class property date columns, delegates to
gridresult_buildColumnJSON, which just called the display for that class
property and I guess that will ignore any attempts to change date formatting.
It looks like after putting the date format into the request you would have to
read the format from the request in XWiki.LiveTableResults and pass it around
through all the macros ...
Yes I know that format_date parameter doesn't exist for the moment :-), I
wanted to improve livetable macro (with pull request at the end I hope). I
think I find where this macro
is:https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/src/main/resources/flamingo/macros.vmLine
1261
#macro(livetable $divid $collist $colprops $options)
I saw the Modify the JSON data ... solution but afraid about ...since it
would slow down your wiki a lot as it loads DocThxs
That slow down your wiki comment is only about the action happening in that
specific example, because it loads a document for every element in the result
set into memory.
If you do something with the data already loaded I think it should not be too
inefficient.
Personally I still think this is the way to go ...
De : Clemens Klein-Robbenhaar c.robbenh...@espresto.com
À : users@xwiki.org
Envoyé le : Mardi 13 janvier 2015 16h10
Objet : Re: [xwiki-users] Add date of account creation (without time) in
User Index problem
On 01/13/2015 03:05 PM,