%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/waritko/jetty-distribution-9.4.21.v20190926/webapps/ROOT/templates/
Upload File :
Create Path :
Current File : //home/waritko/jetty-distribution-9.4.21.v20190926/webapps/ROOT/templates/getdeleteddocuments.vm

###
### Template used by a livetable macro to list deleted documents from the recycle bin.
###
$response.setContentType("application/json")
##
## FROM
##
#set ($fromQueryPart = 'FROM XWikiDeletedDocument as ddoc')
##
## WHERE
##
#set ($whereQueryPart = 'WHERE 1=1')
#set ($queryParams = [])
## Exclude some documents
#set ($excludes = $request.getParameterValues('exclude'))
#if ("$!excludes" != '')
  #foreach ($exclude in $excludes)
    #set ($discard = $queryParams.add($exclude))
    #set ($whereQueryPart = "${whereQueryPart} AND ddoc.fullName <> ?${queryParams.size()}")
  #end
#end
#set ($batchId = $request.get('doc.batchId'))
#if ("$!batchId" != '')
  #set ($discard = $queryParams.add("%${batchId.trim()}%"))
  #set ($whereQueryPart = "${whereQueryPart} AND LOWER(ddoc.batchId) LIKE LOWER(?${queryParams.size()})")
#end
##
## ORDER
##
#set ($order = "$!request.sort")
#set ($orderQueryPart = '')
#if ($order != '')
  #set ($orderDirection = "$!{request.get('dir').toLowerCase()}")
  #if ("$!orderDirection" != '' && "$!orderDirection" != 'asc')
    #set($orderDirection = 'desc')
  #end
  ## Sorting by ddoc.location is not supported by the DB, since the location field does not exist.
  #if ($order == 'doc.location')
    ## So we filter on the document full name instead, which is the expected behavior.
    #set ($order = 'ddoc.fullName')
  #end
  ## Weird things happen if we use "ORDER BY" (upper case), at least on HSQLDB. Other DBs may behave differently
  #set ($orderQueryPart = "order by ${order} ${orderDirection}")
#end
##
## OFFSET and LIMIT
##
#set ($offset = $mathtool.toInteger($request.get('offset')))
## offset starts from 0 in velocity and 1 in javascript
#set ($offset = $offset - 1)
#if (!$offset || $offset < 0)
  #set($offset = 0)
#end
#set ($limit = $mathtool.toInteger($request.get('limit')))
#if (!$limit)
  #set ($limit = 15)
#end
##
## Build the query
##
#set ($queryString = "SELECT ddoc.id ${fromQueryPart} $!{whereQueryPart} $!{orderQueryPart}")
#set ($query = $services.query.hql($queryString))
#set ($query = $query.setLimit($limit).setOffset($offset).bindValues($queryParams))
#if ("$!request.wiki" != '')
  #set ($query = $query.setWiki($request.wiki))
#end
#set ($countQueryString = "SELECT COUNT(ddoc.id) ${fromQueryPart} $!{whereQueryPart}")
#set ($countQuery = $services.query.hql($countQueryString).bindValues($queryParams).setWiki($query.wiki))
##
## Execute the query and build the results
##
#set ($items = $query.execute())
#set ($map = {})
#set ($discard = $map.put('totalrows', $countQuery.execute()[0]))
#set ($discard = $map.put('returnedrows', $mathtool.min($items.size(), $limit)))
#set ($discard = $map.put('offset', $mathtool.add($offset, 1)))
#if("$!request.sql" != '')
  ## Add debug infos
  #set($discard = $map.put('sql', $queryString))
  #set($discard = $map.put('params', $queryParams))
#end
#template('hierarchy_macros.vm')
#set ($rows = [])
#foreach ($item in $items)
  #set ($deletedDocument = $xwiki.getDeletedDocument($item))
  #set ($originalDocument = $deletedDocument.getDocument())
  #set ($documentReference = $deletedDocument.documentReference)
  #set ($viewable = $deletedDocument.canUndelete())
  #set ($row = {})
  #set ($discard = $row.put('doc_viewable', $viewable))
  #set ($discard = $row.put('doc_url', $xwiki.getURL($documentReference, 'viewrev', $escapetool.url({'rev' : "deleted:${item}"}))))
  #set ($title = "$!{originalDocument.plainTitle}")
  #if ($title == '')
    #set ($title = $deletedDocument.fullName)
  #end
  #if ("$!{deletedDocument.locale}" != '')
    #set ($title = "${title} (${deletedDocument.locale})")
  #end
  #set ($discard = $row.put('doc_name', $title))
  #set ($location = "#hierarchy($documentReference, {'limit': 5, 'plain': false, 'local': true, 'displayTitle': false})")
  #set ($discard = $row.put('doc_location', $location))
  #set ($discard = $row.put('doc_date', $xwiki.formatDate($deletedDocument.date)))
  #set ($discard = $row.put('doc_deleter', $xwiki.getUserName($deletedDocument.deleter, false)))
  #set ($discard = $row.put('doc_deleter_url', $xwiki.getURL($deletedDocument.deleter)))
  #set ($discard = $row.put('doc_locale', $deletedDocument.locale))
  #set ($discard = $row.put('doc_hasdelete', $deletedDocument.canDelete()))
  #set ($discard = $row.put('doc_delete_url', $xwiki.getURL($documentReference, 'delete', "id=${item}&form_token=$!{services.csrf.getToken()}")))
  #set ($discard = $row.put('doc_hasrestore', $deletedDocument.canUndelete()))
  #set ($discard = $row.put('doc_restore_url', $xwiki.getURL($documentReference, 'undelete', "id=${item}&form_token=$!{services.csrf.getToken()}")))
  #set ($discard = $rows.add($row))
#end
#set ($discard = $map.put('rows', $rows))
##
## Serialize the JSON
##
$jsontool.serialize($map)

Zerion Mini Shell 1.0