%PDF- %PDF-
| Direktori : /home/waritko/jetty-distribution-9.4.21.v20190926/webapps/ROOT/skins/flamingo/ |
| Current File : //home/waritko/jetty-distribution-9.4.21.v20190926/webapps/ROOT/skins/flamingo/delete.vm |
#######################################################
### DELETE PAGE ACTION
### ------------------
###
#######################################################
##
#######################################################
## GLOBALS
#######################################################
#set($fullmsg = '')
#set($quote = '"')
#set($hasInlinks = false)
#######################################################
## DISPLAY
#######################################################
#template('refactoringStatus_macros.vm')
#controller()
#macro(displayContent $content)
#template("startpage.vm")
<div class="main">
<div id="mainContentArea">
#define($title)<a href="$doc.getURL('view')">$!escapetool.xml($doc.plainTitle)</a>#end
#set($titleToDisplay = $services.localization.render('core.delete.title', [$title]))
<div class="xcontent">
#template('contentheader.vm')
$content
<div class="clearfloats"></div>
</div> ## xcontent
</div>## mainContentArea
</div>## main
#template("endpage.vm")
#end
#######################################################
## CONTROLLER
#######################################################
#macro(controller)
#if("$!{request.jobId}" != '')
#set ($deleteJobStatus = $services.job.getJobStatus($request.jobId.split('/')))
## A delete job is running
#if ($xcontext.action == 'get')
#outputDeleteJobStatusJSON($deleteJobStatus)
#else
#set ($content = "#displayDeleteJobStatus($deleteJobStatus)")
#displayContent($content)
#end
#else
#if("$!{request.id}" != '')
## request.id means that we are deleting a document from the recycle bin
#set ($content = "#displayCompletelyDeleteConfirmMessage()")
#displayContent($content)
#else
#set ($content = "#displayConfirmationPage()")
#displayContent($content)
#end
#end
#end
#macro (outputDeleteJobStatusJSON $deleteJobStatus)
#getJobStatusJSON($deleteJobStatus $json)
$response.setContentType('application/json')
$jsontool.serialize($json)
#end
#######################################################
## DISPLAY RUNNING JOB
#######################################################
#macro (displayDeleteJobStatus $deleteJobStatus)
#set ($discard = $xwiki.jsfx.use('uicomponents/job/job.js', true))
## TODO: allows question templates to inject the web resources they need
#set ($discard = $xwiki.linkx.use($services.webjars.url('org.xwiki.platform:xwiki-platform-tree-webjar', 'tree.min.css',
{'evaluate': true}), {'type': 'text/css', 'rel': 'stylesheet'}))
#set ($discard = $xwiki.jsfx.use("uicomponents/job/question/ExtensionBreakingQuestion.js", true))
#set ($discard = $xwiki.jsfx.use("uicomponents/job/question/XClassBreakingQuestion.js", true))
#set ($deleteJobState = $deleteJobStatus.state)
#set ($finished = $deleteJobState == 'FINISHED')
#set ($deleteJobRequest = $deleteJobStatus.request)
#set ($jobStatusURL = $doc.getURL('get', $escapetool.url({
'xpage': 'delete',
'jobId': $request.jobId,
'outputSyntax': 'plain'
})))
<div class="xcontent job-status" data-url="$jobStatusURL">
<h2>$services.localization.render('core.delete.waitmessage')</h2>
#if (!$finished)
#displayJobProgressBar($deleteJobStatus)
#displayJobQuestion($deleteJobStatus)
#else
#displayJobFinishedMessage($deleteJobStatus)
#end
#if ($isAdvancedUser || $isSuperAdmin)
#displayJobStatusLog($deleteJobStatus true)
#end
</div>
#end
#######################################################
## DISPLAY CONFIRMATION PAGE
#######################################################
#macro(displayConfirmationPage)
<form action="$doc.getURL('delete', "$!{languageparams}")" method="post">
#getChildren()
#getBacklinks()
#getChildren_legacy()
#displayConfirmMessage()
</form>
#end
#######################################################
## DISPLAY PANEL
#######################################################
#macro(displayPanel $panelId $panelClass $heading $body)
<div class="panel $!panelClass">
<div class="panel-heading">
$heading
<div class="pull-right"><a class="panel-collapse-carret" role="button" data-toggle="collapse" href="#$panelId" aria-expanded="false" aria-controls="$panelId"><span class="caret"></span></a></div>
</div>
<div class="panel-body collapse" id="$panelId">
$body
</div>
</div>
#end
#######################################################
## CHILDREN
#######################################################
#macro(getChildren)
#if ($doc.documentReference.name == 'WebHome') ## terminal documents have no child
#set($childCountXWQL = "WHERE doc.fullName LIKE :space AND doc.fullName <> :fullName")
#set ($query = $services.query.xwql($childCountXWQL))
#set ($query = $query.bindValue('space').literal("${doc.space}.").anyChars().query())
#set ($query = $query.bindValue('fullName', $doc.fullName))
#set($childCount = $query.addFilter('unique').count())
#if ($childCount > 0)
## Check if we should propose by default to affect children when the only remaining children (after the delete) would be the WebPreferences document.
#set ($webPreferencesDocumentReference = $services.model.createDocumentReference('WebPreferences', $doc.documentReference.lastSpaceReference))
#if ($childCount == 1 && $xwiki.exists($webPreferencesDocumentReference))
#set ($forceAffectChildren = " checked='checked'")
#end
#define($heading)
<input name="affectChildren" id="affectChildren" type="checkbox" $!{forceAffectChildren}/><label for="affectChildren">Affect children</label> ($childCount)
#end
#define($body)
##
## List the documents to be deleted using a livetable
##
#set ($collist = ['doc.title', 'doc.location', 'doc.date', 'doc.author'])
#set ($colprops = {
'doc.title' : { 'link' : 'view' },
'doc.location' : { 'type': 'text', 'filterable': true, 'html': true},
'doc.author' : { 'link' : 'author' }
})
#set ($urlParameters = "xpage=getdocuments&childrenOf=$escapetool.url($doc.space)&queryFilters=unique")
#set ($options = {
'url' : "$doc.getURL('get', $urlParameters)",
'translationPrefix' : 'platform.index.',
'outputOnlyHtml' : true
})
#livetable('deleteSpaceIndex' $collist $colprops $options)
#end
#displayPanel('panel-children', 'panel-default', $heading, $body)
#end
#end
#end
#######################################################
## LEGACY CHILDREN
##
## Get the children document based on the legacy
## parent/child relationship.
#######################################################
#macro(getChildren_legacy)
#if($services.parentchild.isParentChildMechanismEnabled())
#set($childrenStatement = 'where doc.fullName <> :parentFullName and (doc.parent = :parentFullName or (doc.parent = :parentName and doc.space = :parentSpace))')
#set($childrenQuery = $services.query.xwql($childrenStatement))
#set($discard = $childrenQuery.bindValue('parentFullName', $doc.fullName).bindValue('parentName', $doc.documentReference.name).bindValue('parentSpace', $doc.space))
#set($children = $childrenQuery.addFilter('unique').execute())
#if($children && $children.size() > 0)
#define($heading)
<strong>Orphans</strong> ($children.size())
#end
#define($message)
<ul>
#foreach($docname in $children)
#set($rdoc = $xwiki.getDocument($docname).getTranslatedDocument())
<li><a href="$doc.getURL('view')">$escapetool.xml($rdoc.getPlainTitle())</a></li>
#end
</ul>
#end
#set($body = $services.localization.render('core.delete.orphansWarning', [$message]))
#displayPanel('panel-legacy-children', 'panel-default', $heading, $body)
#end
#end
#end
#######################################################
## GET BACKLINKS
##
## Get the documents having some links to the current
## one.
#######################################################
#macro(getBacklinks)
#set($links = $doc.getBacklinks())
#if($links && $links.size() > 0)
#define($heading)
<strong>Backlinks</strong> ($links.size())
#end
#define($message)
<ul>
#foreach($docname in $links)
#set($rdoc = $xwiki.getDocument($docname).getTranslatedDocument())
<li><a href="$rdoc.getURL('view')">$escapetool.xml($rdoc.getPlainTitle())</a></li>
#end
</ul>
#end
#set($body = $services.localization.render('core.delete.backlinksWarning', [$message]))
#displayPanel('panel-backlinks', 'panel-default', $heading, $body)
#set($hasInlinks = true)
#end
#end
#######################################################
## DISPLAY CONFIRM MESSAGE
#######################################################
#macro(displayConfirmMessage)
#if($xwiki.hasRecycleBin())
#if($hasInlinks)
<p><strong>$services.localization.render('core.recyclebin.confirmWithInlinks')</strong></p>
#else
<p>$services.localization.render('core.recyclebin.confirm')</p>
#end
#else
#if($hasInlinks)
<p><strong>$services.localization.render('core.delete.confirmWithInlinks')</strong></p>
#else
<p>$services.localization.render('core.delete.confirm')</p>
#end
#end
<div class="hidden">
<input type="hidden" name="form_token" value="$!{services.csrf.getToken()}" />
<input type="hidden" name="confirm" value="1"/>
<input type="hidden" name="async" value="true"/>
#if("$!{request.xredirect}" != '')
<input type="hidden" name="xredirect" value="$!{escapetool.xml($request.xredirect)}"/>
#end
</div>
<button class="btn btn-danger confirm">$services.localization.render('delete')</button>
#if("$!{request.xredirect}" != '')
#set($cancelUrl = "$request.xredirect")
#else
#set($cancelUrl = $doc.getURL())
#end
<a class="btn btn-default cancel" href="$!{escapetool.xml(${cancelUrl})}">$services.localization.render('cancel')</a>
#end
#######################################################
## DISPLAY DELETE COMPLETELY CONFIRM MESSAGE
##
## Display a confirmation message when the user wants
## to delete a page from the recycle bin.
#######################################################
#macro(displayCompletelyDeleteConfirmMessage)
#xwikimessageboxstart($services.localization.render('core.delete') $services.localization.render('core.recyclebin.completelyDeleteConfirm'))
<form action="$xwiki.relativeRequestURL" method="post">
<div class="hidden">
## CSRF prevention
<input type="hidden" name="form_token" value="$!{services.csrf.getToken()}" />
<input type="hidden" name="confirm" value="1"/>
<input type="hidden" name="id" value="$!{escapetool.xml($request.id)}"/>
#if("$!{request.xredirect}" != '')
<input type="hidden" name="xredirect" value="$!{escapetool.xml($request.xredirect)}"/>
#end
</div>
<input type="submit" class="btn btn-primary" value="$services.localization.render('yes')"/>
#if("$!{request.xredirect}" != '')
#set($cancelUrl = "$request.xredirect")
#else
#set($cancelUrl = $doc.getURL())
#end
<a class="btn btn-default" href="$!{escapetool.xml(${cancelUrl})}">$services.localization.render('no')</a>
</form>
#xwikimessageboxend()
#end