{{velocity}}
##
## Tag application.
##
## - See a Tag Cloud of all tags within the wiki.
## - See all the pages tagged with the given tag.
## - Rename a tag.
## - Delete a tag.
##
$xwiki.ssx.use('Main.Tags')##
$xwiki.ssx.use('Main.Dashboard')##
##
## Set application variables (action and tag) from URL parameters.
##
#set($do = "$!{request.get('do')}")
#set($tag = "$!{request.get('tag')}")
#set($urlEscapedTag = $escapetool.url($tag))
#set($htmlEscapedTag = $escapetool.xml($tag))
##
## Macro displayTagAppTitle. Display level1 title of this app.
##
#macro(displayTagAppTitle $urlEscapedTag $htmlEscapedTag $displayButtons)
<h1 class="xapp">
<span class="highlight tag">
<a href="$doc.getURL('view', "do=viewTag&tag=${urlEscapedTag}")">$htmlEscapedTag</a>
#if($xwiki.hasAdminRights() && $displayButtons)
<a href="$doc.getURL('view', "do=prepareRename&tag=${urlEscapedTag}")" class="button rename" rel="nofollow">Rename</a> <a href="$doc.getURL('view', "do=prepareDelete&tag=${urlEscapedTag}")" class="button delete" rel="nofollow">Delete</a>
#end
</span>
</h1>
#end
##
## Switch between all possible actions:
## viewTag, prepareRename, rename, prepareDelete, delete, default (Tag cloud)
##
{{html wiki=true}}
#if($do == 'viewTag')
##
## View tag
##
#displayTagAppTitle($urlEscapedTag $htmlEscapedTag true)
#if("$!{request.get('renamedTag')}" != '')
#set($htmlEscapedRenamedTag = $escapetool.xml($request.get('renamedTag')))
#info($msg.get('xe.tag.rename.success', [$htmlEscapedRenamedTag]))
#end
#set($list = $xwiki.tag.getDocumentsWithTag($tag))
#if ($xwiki.tag.getDocumentsWithTag($tag).isEmpty())
#set($entries="1")
<div>
<div id="dashboardleft">
<div id="dashboardleftcontent">
<h3 class="xapp">
##ENTER MESSAGE TO BE DISPLAYED HERE
</h3>
</div>
</div>
<div id="dashboardright">
<div id="dashboardrightcontent">
<h3 class="xapp"><span>$msg.get("xe.tag.activity", [$htmlEscapedTag])</span></h3>
</div>
</div>
#else
#set($entries=" ")
<div>
<div id="dashboardleft">
<div id="dashboardleftcontent">
<h3 class="xapp">
<span>$msg.get('xe.tag.alldocs', [$htmlEscapedTag])</span></h3>
#displayDocumentList($list true $blacklistedSpaces)
</div>
</div>
<div id="dashboardright">
<div id="dashboardrightcontent">
<h3 class="xapp"><span>$msg.get("xe.tag.activity", [$htmlEscapedTag])</span></h3>
</div>
</div>
#end
{{activity tags="$htmlEscapedTag" entries="$entries"/}}
<div style="clear:both; margin-bottom: 40px;"></div>
</div>
#elseif($do == 'prepareRename')
##
## Prepare rename tag
##
#displayTagAppTitle($urlEscapedTag $htmlEscapedTag false)
<form id="renameForm" action="$doc.getURL()" method="post">
<div>
<input type="hidden" name="form_token" value="$!{services.csrf.getToken()}" />
<input name="do" type="hidden" value="renameTag" />
<input name="tag" type="hidden" value="$htmlEscapedTag" />
$msg.get('xe.tag.rename.renameto', [$htmlEscapedTag]) <input type="text" name="renameTo" /> <span class="buttonwrapper"><input type="submit" value="$msg.get('xe.tag.rename')" class="button"/></span>
</div>
</form>
#elseif($do == 'renameTag')
##
## Rename tag
##
#set($renameTo = "$!{request.get('renameTo')}")
#set($success = false)
#if ($renameTo != '')
#set($success = $xwiki.tag.renameTag($tag, $renameTo))
#end
#if ($success == true || $success == 'OK')
#set($urlEscapedRenameTo = $escapetool.url($renameTo))
$response.sendRedirect($doc.getURL('view', "do=viewTag&tag=${urlEscapedRenameTo}&renamedTag=${urlEscapedTag}"))
#else
#set($htmlEscapedRenameTo = $escapetool.xml($renameTo))
#error($msg.get('xe.tag.rename.failure', [$htmlEscapedTag, $htmlEscapedRenameTo]))
#end
#elseif($do == 'prepareDelete')
##
## Prepare delete tag
##
#displayTagAppTitle($urlEscapedTag $htmlEscapedTag false)
<form id="deleteForm" action="$doc.getURL()" method="post">
<div>
<input type="hidden" name="form_token" value="$!{services.csrf.getToken()}" />
<input name="do" type="hidden" value="deleteTag" />
<input name="tag" type="hidden" value="$htmlEscapedTag" />
<span class="buttonwrapper"><input type="submit" value="$msg.get('xe.tag.delete', [$htmlEscapedTag])" class="button"/></span>
</div>
</form>
#elseif($do == 'deleteTag')
##
## Delete tag
##
#set($success = $xwiki.tag.deleteTag($tag))
#if ($success == true || $success == 'OK')
$response.sendRedirect($doc.getURL('view', "deletedTag=${urlEscapedTag}"))
#else
#error($msg.get('xe.tag.delete.failure', [$htmlEscapedTag]))
#end
#else
##
## View all tags (Tag Cloud)
##
#set($tags = $xwiki.tag.getTags(true))
#set($title = 'All Tags')
#if("$!{request.get('deletedTag')}" != '')
#set($htmlEscapedTag = $escapetool.xml($request.get('deletedTag')))
#info($msg.get('xe.tag.delete.success', [$htmlEscapedTag]))
#end
#set($docextras = [])
#includeInContext("XWiki.TagCloud")
#end
{{/html}}
{{/velocity}}