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
