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 

_______________________________________________
users mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/users

Reply via email to