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 Doc"Thxs 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, 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 > > > > _______________________________________________ > users mailing list > users@xwiki.org > http://lists.xwiki.org/mailman/listinfo/users > mit freundlichen Grüßen Clemens Klein-Robbenhaar -- Clemens Klein-Robbenhaar Software Development EsPresto AG Breite Str. 30-31 10178 Berlin/Germany Tel: +49.(0)30.90 226.763 Fax: +49.(0)30.90 226.760 robbenh...@espresto.com HRB 77554 B - Berlin-Charlottenburg Vorstand: Maya Biersack, Peter Biersack Vorsitzender des Aufsichtsrats: Dipl.-Wirtsch.-Ing. Winfried Weber Zertifiziert nach ISO 9001:2008 _______________________________________________ users mailing list users@xwiki.org http://lists.xwiki.org/mailman/listinfo/users