%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/restore.vm |
#######################################################
### RESTORE (UNDELETE) PAGE ACTION
### ------------------
###
#######################################################
##
#######################################################
## GLOBALS
#######################################################
#set($fullmsg = '')
#set($quote = '"')
#set($hasInlinks = false)
#######################################################
## DISPLAY
#######################################################
#if ($xcontext.action == 'get' && "$!request.jobId" != '')
#handleStatusRequest()
#else
#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.restore.title', [$title]))
<div class="xcontent">
#template('contentheader.vm')
#controller()
<div class="clearfloats"></div>
</div> ## xcontent
</div>## mainContentArea
</div>## main
#template("endpage.vm")
#end
#######################################################
## CONTROLLER
#######################################################
#macro(controller)
#if("$!{request.jobId}" != '')
## A restore job is running
#displayProgressBar()
#elseif("$!{request.showBatch}" == 'true')
## showBatch=true means that we are displaying the other documents that were deleted in the same batch as the
## current one, which we might want to restore as well.
#displayConfirmationPage()
#end
#end
#######################################################
## DISPLAY CONFIRMATION PAGE
#######################################################
#macro(displayConfirmationPage)
<form action="$xwiki.relativeRequestURL" method="post">
#getBatch()
#displayConfirmMessage()
</form>
#end
#######################################################
## DISPLAY PROGRESS BAR
#######################################################
#macro(displayProgressBar)
#handleStatusRequest()
#end
#macro (handleStatusRequest)
#template('job_macros.vm')
#set ($jobStatus = $services.job.getJobStatus($stringtool.split($request.jobId, '/')))
#if ($jobStatus)
#if ($xcontext.action == 'get')
#outputJobStatusJSON($jobStatus)
#else
#displayJobStatus($jobStatus)
#end
#else
$response.setStatus(404)
<div class="box errormessage">
$services.localization.render('core.restore.status.notFound')
</div>
#end
#end
#macro (displayJobStatus $jobStatus)
#set ($discard = $xwiki.jsfx.use('uicomponents/job/job.js', true))
#set ($jobState = $jobStatus.state)
#set ($finished = $jobState == 'FINISHED')
#set ($jobRequest = $jobStatus.request)
## FIXME: refactor jobs to use the /rest/jobstatus and /rest/joblog resources.
#set ($jobStatusURL = $doc.getURL('get', $escapetool.url({
'xpage': 'restore',
'outputSyntax': 'plain',
'jobId': $stringtool.join($jobRequest.id, '/')
})))
<div class="job-status" data-url="$jobStatusURL">
#if (!$finished)
<p>$services.localization.render('core.restore.waitmessage')</p>
#displayJobProgressBar($jobStatus)
#else
#displayJobFinishedMessage($jobStatus)
#end
#if ($isAdvancedUser || $isSuperAdmin)
#displayJobStatusLog($jobStatus true)
#end
</div>
#end
#macro (outputJobStatusJSON $jobStatus)
#getJobStatusJSON($jobStatus $json)
#set ($json.message = "#displayJobFinishedMessage($jobStatus)")
$response.setContentType('application/json')
$jsontool.serialize($json)
#end
#macro (displayJobFinishedMessage $jobStatus)
#template('refactoringStatus_macros.vm')
#displayRefactoringJobFinishedMessage($jobStatus 'core.restore.status.success' 'core.restore.status.failure')
#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
#######################################################
## BATCH
#######################################################
#macro(getBatch)
#set ($deletedDocument = $xwiki.getDeletedDocument($request.get('id')))
#set ($batchDeletedDocuments = $xwiki.getDeletedDocuments($deletedDocument.batchId))
## Only propose to restore the batch if it also contains other documents than the current one.
#if ($batchDeletedDocuments.size() > 1)
#define($heading)
<input name="includeBatch" id="includeBatch" type="checkbox" value="true"/><label for="includeBatch">$services.localization.render('core.restore.includeBatch')</label> ($batchDeletedDocuments.size())
#end
#define($body)
##
## Batch details.
##
<div class="row">
<div class="col-xs-12 col-lg-4">
<div><b>$services.localization.render('core.restore.deleter')</b></div> $xwiki.getUserName($deletedDocument.deleter)
</div>
<div class="col-xs-12 col-lg-4">
<div><b>$services.localization.render('core.restore.deleteDate')</b></div> $xwiki.formatDate($deletedDocument.date)
</div>
<div class="col-xs-12 col-lg-4">
<div><b>$services.localization.render('core.restore.batchId')</b></div> $deletedDocument.batchId
</div>
</div>
##
## List the deleted documents in the batch using a livetable.
##
#set ($collist = ['doc.name', 'doc.location', '_actions'])
#set ($colprops = {
'doc.name' : { 'link' : 'view', 'filterable': false, 'sortable' : 'false' },
'doc.location' : { 'type' : 'text', 'link' : false, 'filterable': true, 'html': true},
'_actions' : { 'actions' : ['restore', 'delete'] }
})
#set ($urlParameters = "xpage=getdeleteddocuments&doc.batchId=$!{escapetool.url($deletedDocument.batchId)}")
#set ($options = {
'url' : "$doc.getURL('get', $urlParameters)",
'translationPrefix' : 'core.restore.batch.',
'outputOnlyHtml' : true,
'selectedColumn' : 'doc.location'
})
#livetable('deletedBatch' $collist $colprops $options)
#end
#displayPanel('panel-batch', 'panel-default', $heading, $body)
#end
#end
#######################################################
## DISPLAY CONFIRM MESSAGE
#######################################################
#macro(displayConfirmMessage)
<div class="hidden">
<input type="hidden" name="form_token" value="$!{services.csrf.getToken()}" />
<input type="hidden" name="confirm" value="true"/>
<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-primary">$services.localization.render('core.restore.confirm.yes')</button>
#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('core.restore.confirm.no')</a>
#end