Uploaded image for project: 'XWiki Platform'
  1. XWiki Platform
  2. XWIKI-23606

Make XWiki.LiveTableResults almost empty, to be reusable

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Unresolved
    • Major
    • None
    • 16.10.0
    • LiveTable
    • None
    • Unknown

    Description

      It's painful to use a custom LT results page since it means replacing the default one and the default one now have a lot of additional features that you loose unless you duplicate them in your own custom page:

      {{include reference="XWiki.LiveTableResultsMacros" /}}
      
      {{velocity wiki="false"}}
      ## the $extra variable is passed to the call to #gridresultwithfilter below and is used to perform some default
      ## filtering on the LiveTable data even when the user has not performed any column filtering yet.
      ## When users start using column filtering, the generated DB query will combine both the default filtering and what the
      ## user has entered in the column filters.
      #set ($extra = '')
      #set ($params = {})
      #if ("$!request.space" != '')
        #set ($extra = "${extra} AND doc.space = :doc_space")
        #set ($discard = $params.put('doc_space', $request.space))
      #end
      ## Use filterLocation since addLivetableLocationFilter is buggy when called several times (it'll add the
      ## same HQL binding name every time it's called! See https://jira.xwiki.org/browse/XWIKI-17463).
      ## Also note that we don't call addLocationFilter since we use a Map for $params.
      #filterLocation($extra, $params, $!request.location, 'locationFilterValue1')
      #if ("$!request.parent" != '')
        #set ($extra = "${extra} and doc.parent = :doc_parent")
        #set ($discard = $params.put('doc_parent', $request.parent))
      #end
      #if ("$!request.orphaned" == '1')
        #set ($homepage = $services.wiki.getById($services.wiki.currentWikiId).mainPageReference)
        #set ($homepageFullName = $services.model.serialize($homepage, 'local'))
        ## On Oracle the empty parent is actually null.
        #set ($extra = "${extra} and (doc.parent = '' or doc.parent is null) and doc.fullName <> :homepageFullName")
        #set ($discard = $params.put('homepageFullName', $homepageFullName))
      #end
      #gridresultwithfilter("$!request.classname" $request.collist.split(',') '' "${extra}" $params)
      {{/velocity}}
      

      Note that you don't always need these extra features in your own LT, but you could so it would be best to make them reusable, i.e. located inside XWiki.LiveTableResultsMacros

      Attachments

        Activity

          People

            Unassigned Unassigned
            vmassol Vincent Massol
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: