Damn Quotes, even after all this time they still get me! Thanks Marius. ----- Original Message ----- From: "Marius Dumitru Florea" <[email protected]> To: "XWiki Users" <[email protected]> Sent: Thursday, January 23, 2014 8:59:00 AM Subject: Re: [xwiki-users] LivetableResults filter query Use quotes and, for safety, encode the query string parameters: 'extraParams': "&assignee=$escapetool.url($xcontext.userReference.<http://xcontext.userreference.name/> name)" Check the Velocity documentation for the explanation (see string literals). Hope this helps, Marius On Jan 23, 2014 5:42 PM, "Kelly Steinke" <[email protected]> wrote:
Marius,
Thanks for your reply. I placed the userReference.name in the extra params like so:
'extraParams': '&assignee=$xcontext.userReference.name' Printing to screen $xcontext.userReference.name does show 'test' as the
value, unfortunately my livetable is still showing blank results. However when I replace the $xcontext.userReference.name with the hard-coded value 'test' like so:
'extraParams': '&assignee=test' the livetable shows the correct results. This seems like very strange
behaviour to me and I cannot seem to get this filter working. Even though I set the "List of Users" value to the currently logged in user with $context.user, I cannot seem to filter the table with any of the $context variables.
Any other ideas?
Kelly ----- Original Message -----
From: "Marius Dumitru Florea" <[email protected]> To: "XWiki Users" <[email protected]> Sent: Thursday, January 23, 2014 2:26:44 AM Subject: Re: [xwiki-users] LivetableResults filter query
Try $xcontext.userReference.name
Hope this helps, Marius
On Thu, Jan 23, 2014 at 1:01 AM, Kelly Steinke <[email protected]>
wrote:
I have a Subwiki where I have created a Live Table called Active Tasks and I have been trying to filter the results based on two properties status and assignee. As defined in the TaskManagerClass, status is a database list and assignee is a list of users (local subwiki users). I have defined the live table like so:
#set ($columnsProperties = { 'number': {"type":"number","size":10}, 'doc.title': {"type":"text","size":20,"link":"view"}, 'project': {"type":"list","size":10}, 'status': {"type":"list","size":10}, 'severity': {"type":"list","size":10}, 'reporter': {"type":"text","size":10,"html":true}, 'assignee': {"type":"text","size":10,"html":true}, 'duedate': {"type":"text","size":10}, '_actions': {"sortable":false,"filterable":false,"html":true,"actions":["edit","delete"]} }) #set ($options = { 'className': 'TaskManager.TaskManagerClass', 'resultPage': 'TaskManagerCode.MyActiveTasksLiveTableResults', 'translationPrefix': 'taskmanager.livetable.', 'tagCloud': true, 'rowCount': 15, 'maxPages': 10, 'selectedColumn': 'number', 'defaultOrder': 'asc' }) #set ($columns = ['number', 'doc.title', 'project', 'status', 'severity', 'reporter', 'assignee', 'duedate', '_actions']) #livetable('myActiveTasks' $columns $columnsProperties $options)
In the resultPage I have the following code:
{{include document="XWiki.LiveTableResultsMacros" /}} {{velocity wiki="false"}}
#gridresultwithfilter("$!request.classname" $request.collist.split(",")", StringProperty as statusprop ", " and obj.id= statusprop.id.id and statusprop.id.name='status' and statusprop.value not in ('Done')" )
{{/velocity}}
This successfully displays the live table and filters it showing all tasks that have a status other than "Done". I cannot however successfully get the results to also filter based on the currently logged in user. In the TaskManagerClass sheet I have set the assignee property automatically using $context.user when a new entry is made. I have tried to filter the table at the definition using the extraparams option like so:
' extraParams' : '&assignee=$context.User ', however when this is added the table does not display any entries. Upon further investigation I found that when I display what is in the $context.user, it shows as " XWiki.test " (test being the name of the user I created for testing). The strange thing is that when I change the extraParams option to be ' extraParams' : '&assignee=test ' then it works. This means that when I set the default property in the List of Users with the same function ($context.user), that it set it as test as opposed to XWiki.test. I also tried using $context.localUser in the extraParams however that also displays as XWiki.test.
Does this have to do with how the "List of Users" control on the class form is storing the value from $context.user? How can I filter this live table on the currently logged in user. I have tried to add another object to my where clause in the gridreslutwithfilter() call, however I was unsuccessful. If anyone can help me out with that query or with using the extraParams I would greatly appreciate it.
Regards,
Kelly
_______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users