Re: [xwiki-users] Add date of account creation (without time) in User Index problem

2015-01-15 Thread Pascal BASTIEN
Ok thxs you.I will let this improvment for later when I have less working 
priority.
Like the other said: I'll be back :-)

  De : Clemens Klein-Robbenhaar c.robbenh...@espresto.com
 À : users@xwiki.org 
 Envoyé le : Mercredi 14 janvier 2015 18h28
 Objet : Re: [xwiki-users] Add date of account creation (without time) in User 
Index problem
   
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

Re: [xwiki-users] Add date of account creation (without time) in User Index problem

2015-01-15 Thread Marius Dumitru Florea
You can take a look at how I added the 'match' column parameter
recently 
https://github.com/xwiki/xwiki-platform/commit/aad969f6e51299d3f684b86101aa13c04519541c
.

Hope this helps,
Marius

On Thu, Jan 15, 2015 at 11:48 AM, Pascal BASTIEN
pbasnews-xw...@yahoo.fr wrote:
 Ok thxs you.I will let this improvment for later when I have less working 
 priority.
 Like the other said: I'll be back :-)

   De : Clemens Klein-Robbenhaar c.robbenh...@espresto.com
  À : users@xwiki.org
  Envoyé le : Mercredi 14 janvier 2015 18h28
  Objet : Re: [xwiki-users] Add date of account creation (without time) in 
 User Index problem

 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

Re: [xwiki-users] Add date of account creation (without time) in User Index problem

2015-01-15 Thread Pascal BASTIEN
Cool!thinking ... soon when I come back to this improvment, all will be done! 
:-)


  De : Marius Dumitru Florea mariusdumitru.flo...@xwiki.com
 À : Pascal BASTIEN pbasnews-xw...@yahoo.fr; XWiki Users users@xwiki.org 
 Envoyé le : Jeudi 15 janvier 2015 15h12
 Objet : Re: [xwiki-users] Add date of account creation (without time) in User 
Index problem
   
You can take a look at how I added the 'match' column parameter
recently 
https://github.com/xwiki/xwiki-platform/commit/aad969f6e51299d3f684b86101aa13c04519541c
.

Hope this helps,
Marius



On Thu, Jan 15, 2015 at 11:48 AM, Pascal BASTIEN
pbasnews-xw...@yahoo.fr wrote:
 Ok thxs you.I will let this improvment for later when I have less working 
 priority.
 Like the other said: I'll be back :-)

      De : Clemens Klein-Robbenhaar c.robbenh...@espresto.com
  À : users@xwiki.org
  Envoyé le : Mercredi 14 janvier 2015 18h28
  Objet : Re: [xwiki-users] Add date of account creation (without time) in 
User Index problem

 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

Re: [xwiki-users] Add date of account creation (without time) in User Index problem

2015-01-14 Thread Clemens Klein-Robbenhaar
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

Re: [xwiki-users] Add date of account creation (without time) in User Index problem

2015-01-13 Thread Pascal BASTIEN
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:-mm }
})
#set($options = {
  className:XWiki.XWikiUsers,
  translationPrefix : xe.index.users.,
  tagCloud : true,
  rowCount: 10
})
#livetable(userdirectory $columns $columnsProperties $options)
  De : Clemens Klein-Robbenhaar c.robbenh...@espresto.com
 À : users@xwiki.org 
 Envoyé le : Mardi 13 janvier 2015 12h22
 Objet : Re: [xwiki-users] Add date of account creation (without time) in User 
Index problem
   
On 01/13/2015 10:45 AM, Pascal BASTIEN wrote:
 Hello,
 
 To make it work I add this new property in XWiki.XWikiUsers class:
 /bin/edit/XWiki/XWikiUsers?editor=class
 Name: doc.creationDate Type: String
 PrettyName: Creation date
 

I did not know that you can create class properties with a dot in it,
and that this even can be used to get the original document property, but I see 
it indeed works

 Custom Display:
 {{velocity}}
 {{html}}i$value/i{{/html}}
 {{/velocity}}
 
 The problem is that Custom display is not taking into account and not 
 rendering.

This actually does not work, because the livetable ones not use the custom 
displayer at all,
but treats 'doc.creationDate' special

Possible solutions:

 1)
  - create a dummy class property, which does *not* shadow a doc-property,
  e.g. Name : doccreationdate, Type: Date

  CustomDisplay
  {{velocity}}
  $xwiki.formatDate($doc.getCreationDate(),'/MM/dd')
  {{/velocity}}

 so the custom display does not display the value of the property at all, but 
the actual creation date

 - add 'doccreationdate' to the list of columns in the User Directory

This kinda works, except that you cannot sort by that fake creation date, as 
it is not really there.
(The filter searching the database does not know about the custom displayer and 
searches for the empty value in the DB instead.)


2) Another alternative is to edit the place where doc.creationDate is 
actually rendered ...
for this you would have to patch the main livetable rendering.
see:

 http://localhost:8080/xwiki/bin/view/XWiki/LiveTableResultsMacros?viewer=code

around line 230 there is a:
  #set($discard = $row.put('doc_creationDate', 
$xwiki.formatDate($itemDoc.creationDate)))

you could change that to:
  #set($discard = $row.put('doc_creationDate', 
$xwiki.formatDate($itemDoc.creationDate, '/MM/dd')))

and then add doc.creationDate to the list of displayed columns in the user 
directory.

However then all creation dates everywhere (well, everywhere in live tables) 
will be rendered day only.
(Oh, and I see one still needs to add a dummy 'doc.creationDate' field to the 
user class, as otherwise the field is ignored :(


3) Finally the third solution I can think of would be to add a new date 
property to the user class,
and set this property to doc.creationDate whenever a user is created, and show 
this property in the User Directory
.
This might even be the cleanest solution, except that one needs to touch all 
existing users to update this field.

Newly created users then would be set up by writing an event listener that 
listens to a DocumentCreatingEvent
and if the new document has an XWiki.XWikiUsers object, then set the new 
property to doc.creaionDate

Event listener would be components as explained here:
  http://platform.xwiki.org/xwiki/bin/view/DevGuide/WritingEventListenerTutorial
  http://extensions.xwiki.org/xwiki/bin/view/Extension/WikiComponent+Module

This is somewhat more effort, but I guess this would be cleaner (no custom 
display needed, just use the date format of that property,
results can be sorted, as value is really stored in the DB, no patching of 
core XWiki pages ...)




 I know HTML is not interpreted but I want to remove time of Creation date 
 field but Custom Display is apparently not used on a database field.
 Here a screenshot on what I want: http://snag.gy/bWnu9.jpg
 Do you have an idea how I must do it?
 Is it normal than Custom Display is not used?
 
 Thxs for any help
 
 Pascal BASTIEN
 
 
 ___
 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


  
___
users

Re: [xwiki-users] Add date of account creation (without time) in User Index problem

2015-01-13 Thread Clemens Klein-Robbenhaar
On 01/13/2015 10:45 AM, Pascal BASTIEN wrote:
 Hello,
 
 To make it work I add this new property in XWiki.XWikiUsers class:
 /bin/edit/XWiki/XWikiUsers?editor=class
 Name: doc.creationDate Type: String
 PrettyName: Creation date
 

I did not know that you can create class properties with a dot in it,
and that this even can be used to get the original document property, but I see 
it indeed works

 Custom Display:
 {{velocity}}
 {{html}}i$value/i{{/html}}
 {{/velocity}}
 
 The problem is that Custom display is not taking into account and not 
 rendering.

This actually does not work, because the livetable ones not use the custom 
displayer at all,
but treats 'doc.creationDate' special

Possible solutions:

 1)
  - create a dummy class property, which does *not* shadow a doc-property,
   e.g. Name : doccreationdate, Type: Date

  CustomDisplay
  {{velocity}}
  $xwiki.formatDate($doc.getCreationDate(),'/MM/dd')
  {{/velocity}}

 so the custom display does not display the value of the property at all, but 
the actual creation date

 - add 'doccreationdate' to the list of columns in the User Directory

This kinda works, except that you cannot sort by that fake creation date, as 
it is not really there.
(The filter searching the database does not know about the custom displayer and 
searches for the empty value in the DB instead.)


2) Another alternative is to edit the place where doc.creationDate is 
actually rendered ...
for this you would have to patch the main livetable rendering.
see:

 http://localhost:8080/xwiki/bin/view/XWiki/LiveTableResultsMacros?viewer=code

around line 230 there is a:
   #set($discard = $row.put('doc_creationDate', 
$xwiki.formatDate($itemDoc.creationDate)))

you could change that to:
   #set($discard = $row.put('doc_creationDate', 
$xwiki.formatDate($itemDoc.creationDate, '/MM/dd')))

and then add doc.creationDate to the list of displayed columns in the user 
directory.

However then all creation dates everywhere (well, everywhere in live tables) 
will be rendered day only.
(Oh, and I see one still needs to add a dummy 'doc.creationDate' field to the 
user class, as otherwise the field is ignored :(


3) Finally the third solution I can think of would be to add a new date 
property to the user class,
and set this property to doc.creationDate whenever a user is created, and show 
this property in the User Directory
.
This might even be the cleanest solution, except that one needs to touch all 
existing users to update this field.

Newly created users then would be set up by writing an event listener that 
listens to a DocumentCreatingEvent
and if the new document has an XWiki.XWikiUsers object, then set the new 
property to doc.creaionDate

Event listener would be components as explained here:
  http://platform.xwiki.org/xwiki/bin/view/DevGuide/WritingEventListenerTutorial
  http://extensions.xwiki.org/xwiki/bin/view/Extension/WikiComponent+Module

This is somewhat more effort, but I guess this would be cleaner (no custom 
display needed, just use the date format of that property,
results can be sorted, as value is really stored in the DB, no patching of 
core XWiki pages ...)


 I know HTML is not interpreted but I want to remove time of Creation date 
 field but Custom Display is apparently not used on a database field.
 Here a screenshot on what I want: http://snag.gy/bWnu9.jpg
 Do you have an idea how I must do it?
 Is it normal than Custom Display is not used?
 
 Thxs for any help
 
 Pascal BASTIEN
 
 
 ___
 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


[xwiki-users] Add date of account creation (without time) in User Index problem

2015-01-13 Thread Pascal BASTIEN
Hello,

To make it work I add this new property in XWiki.XWikiUsers class:
/bin/edit/XWiki/XWikiUsers?editor=class
Name: doc.creationDate Type: String
PrettyName: Creation date

Custom Display:
{{velocity}}
{{html}}i$value/i{{/html}}
{{/velocity}}

The problem is that Custom display is not taking into account and not 
rendering.
I know HTML is not interpreted but I want to remove time of Creation date 
field but Custom Display is apparently not used on a database field.
Here a screenshot on what I want: http://snag.gy/bWnu9.jpg
Do you have an idea how I must do it?
Is it normal than Custom Display is not used?

Thxs for any help

Pascal BASTIEN


___
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users


Re: [xwiki-users] Add date of account creation (without time) in User Index problem

2015-01-13 Thread Clemens Klein-Robbenhaar

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:-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=plainclassname=XWiki.XWikiUserstransprefix=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


Re: [xwiki-users] Add date of account creation (without time) in User Index problem

2015-01-13 Thread Pascal BASTIEN
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

  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:-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=plainclassname=XWiki.XWikiUserstransprefix=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