%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