Published using Google Docs
XWIKI-BUG FIX
Updated automatically every 5 minutes

{{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&amp;tag=${urlEscapedTag}")">$htmlEscapedTag</a>

          #if($xwiki.hasAdminRights() && $displayButtons)

            <a href="$doc.getURL('view', "do=prepareRename&amp;tag=${urlEscapedTag}")" class="button rename" rel="nofollow">Rename</a>&nbsp;<a href="$doc.getURL('view', "do=prepareDelete&amp;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}}