Changes for page Tags
Last modified by superadmin on 2017/11/28 14:52
From empty
To version 1.1
edited by superadmin
on 2017/11/28 14:52
on 2017/11/28 14:52
Change comment: Install extension [org.xwiki.platform:xwiki-platform-tag-ui/9.9]
Summary
-
Page properties (5 modified, 0 added, 0 removed)
-
Objects (0 modified, 1 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,0 +1,1 @@ 1 +$services.localization.render("xe.tag.tags") - Parent
-
... ... @@ -1,0 +1,1 @@ 1 +Main.WebHome - Author
-
... ... @@ -1,1 +1,1 @@ 1 - XWiki.XWikiGuest1 +xwiki:XWiki.superadmin - Hidden
-
... ... @@ -1,1 +1,1 @@ 1 - false1 +true - Content
-
... ... @@ -1,0 +1,128 @@ 1 +{{velocity}} 2 +## 3 +## Tag application. 4 +## 5 +## - See a Tag Cloud of all tags within the wiki. 6 +## - See all the pages tagged with the given tag. 7 +## - Rename a tag. 8 +## - Delete a tag. 9 +## 10 +$xwiki.ssx.use('Main.Tags')## 11 +## 12 +## Set application variables (action and tag) from URL parameters. 13 +## 14 +#set ($do = "$!{request.get('do')}") 15 +#set ($tag = "$!{request.get('tag')}") 16 +#set ($urlEscapedTag = $escapetool.url($tag)) 17 +#set ($htmlEscapedTag = $escapetool.xml($tag)) 18 +## 19 +## Macro displayTagAppTitle. Display level1 title of this app. 20 +## 21 +#macro (displayTagAppTitle $urlEscapedTag $htmlEscapedTag $displayButtons) 22 + (% class="xapp" %) 23 + = (% class="highlight tag" %)${tag}## 24 + #if ($xwiki.hasAdminRights() && $displayButtons) ## 25 + [[$services.localization.render('xe.tag.rename.link')>>||queryString="do=prepareRename&tag=${urlEscapedTag}" class="button rename" rel="nofollow"]] [[$services.localization.render('xe.tag.delete.link')>>||queryString="do=prepareDelete&tag=${urlEscapedTag}" class="button delete" rel="nofollow"]]## 26 + #end 27 + (%%) = 28 +#end 29 +## 30 +## Switch between all possible actions: 31 +## viewTag, prepareRename, rename, prepareDelete, delete, default (Tag cloud) 32 +## 33 +#if ($do == 'viewTag') 34 + ## 35 + ## View tag 36 + ## 37 + #displayTagAppTitle($urlEscapedTag $htmlEscapedTag true) 38 + #if ("$!{request.get('renamedTag')}" != '') 39 + {{info}}$services.localization.render('xe.tag.rename.success', ["//${request.get('renamedTag')}//"]){{/info}} 40 + 41 + #end 42 + #set ($list = $xwiki.tag.getDocumentsWithTag($tag)) 43 + {{container layoutStyle="columns"}} 44 + ((( 45 + (% class="xapp" %) 46 + === $services.localization.render('xe.tag.alldocs', ["//${tag}//"]) === 47 + 48 + #if ($list.size()> 0) 49 + {{html}}#displayDocumentList($list false $blacklistedSpaces){{/html}} 50 + #else 51 + (% class='noitems' %)$services.localization.render('xe.tag.notags') 52 + #end 53 + ))) 54 + ((( 55 + (% class="xapp" %) 56 + === $services.localization.render('xe.tag.activity', ["//${tag}//"]) === 57 + 58 + {{activity tags="$tag" rss='true'/}} 59 + ))) 60 + {{/container}} 61 +#elseif ($do == 'prepareRename') 62 + ## 63 + ## Prepare rename tag 64 + ## 65 + #displayTagAppTitle($urlEscapedTag $htmlEscapedTag false) 66 +{{html}} 67 + <form id="renameForm" action="$doc.getURL()" method="post"> 68 + <div> 69 + <input type="hidden" name="form_token" value="$!{services.csrf.getToken()}" /> 70 + <input name="do" type="hidden" value="renameTag" /> 71 + <input name="tag" type="hidden" value="$htmlEscapedTag" /> 72 + $services.localization.render('xe.tag.rename.renameto', [$htmlEscapedTag]) <input type="text" name="renameTo" /> <span class="buttonwrapper"><input type="submit" value="$services.localization.render('xe.tag.rename')" class="button"/></span><span class="buttonwrapper"><a href="$doc.getURL('view', "do=viewTag&tag=${urlEscapedTag}")" class="secondary button">$services.localization.render('cancel')</a></span> 73 + </div> 74 + </form> 75 +{{/html}} 76 +#elseif ($do == 'renameTag') 77 + ## 78 + ## Rename tag 79 + ## 80 + #set ($renameTo = "$!{request.get('renameTo')}") 81 + #set ($success = false) 82 + #if ($renameTo != '') 83 + #set ($success = $xwiki.tag.renameTag($tag, $renameTo)) 84 + #end 85 + #if ($success == true || $success == 'OK') 86 + #set ($urlEscapedRenameTo = $escapetool.url($renameTo)) 87 + $response.sendRedirect($doc.getURL('view', "do=viewTag&tag=${urlEscapedRenameTo}&renamedTag=${urlEscapedTag}")) 88 + #else 89 + {{error}}$services.localization.render('xe.tag.rename.failure', ["//${tag}//", "//${renameTo}//"]){{/error}} 90 + #end 91 +#elseif ($do == 'prepareDelete') 92 + ## 93 + ## Prepare delete tag 94 + ## 95 + #displayTagAppTitle($urlEscapedTag $htmlEscapedTag false) 96 +{{html}} 97 + <form id="deleteForm" action="$doc.getURL()" method="post"> 98 + <div> 99 + <input type="hidden" name="form_token" value="$!{services.csrf.getToken()}" /> 100 + <input name="do" type="hidden" value="deleteTag" /> 101 + <input name="tag" type="hidden" value="$htmlEscapedTag" /> 102 + <span class="buttonwrapper"><input type="submit" value="$services.localization.render('xe.tag.delete', [$htmlEscapedTag])" class="button"/></span><span class="buttonwrapper"><a href="$doc.getURL('view', "do=viewTag&tag=${urlEscapedTag}")" class="secondary button">$services.localization.render('cancel')</a></span> 103 + </div> 104 + </form> 105 +{{/html}} 106 +#elseif ($do == 'deleteTag') 107 + ## 108 + ## Delete tag 109 + ## 110 + #set ($success = $xwiki.tag.deleteTag($tag)) 111 + #if ($success == true || $success == 'OK') 112 + $response.sendRedirect($doc.getURL('view', "deletedTag=${urlEscapedTag}")) 113 + #else 114 + {{error}}$services.localization.render('xe.tag.delete.failure', ["//${tag}//"]){{/error}} 115 + #end 116 +#else 117 + ## 118 + ## View all tags (Tag Cloud) 119 + ## 120 + #set ($title = 'All Tags') 121 + #if ("$!{request.get('deletedTag')}" != '') 122 + {{info}}$services.localization.render('xe.tag.delete.success', ["//${request.get('deletedTag')}//"]){{/info}} 123 + 124 + #end 125 + {{tagcloud/}} 126 +#end 127 +#set ($displayDocExtra = false) 128 +{{/velocity}}
- XWiki.StyleSheetExtension[0]
-
- Caching policy
-
... ... @@ -1,0 +1,1 @@ 1 +long - Code
-
... ... @@ -1,0 +1,49 @@ 1 +#template('colorThemeInit.vm') 2 + 3 +h1.xapp { 4 + border-bottom: 0 none; 5 + margin: 0; 6 +} 7 + 8 +h1.xapp + form { 9 + margin: 1.5em 0 1em; 10 +} 11 + 12 +h1.xapp * { 13 + vertical-align: middle; 14 +} 15 + 16 +h1.xapp .highlight { 17 + background: url("$xwiki.getSkinFile('icons/silk/tag_blue.png')") no-repeat 5px 50% $theme.backgroundSecondaryColor; 18 + border: solid 1px $theme.borderColor; 19 + border-radius: 10px; 20 + display: inline-block; 21 + font-weight: bold; 22 + padding: 2px 8px 2px 25px; 23 + white-space: nowrap; 24 +} 25 + 26 +h1.xapp .button { 27 + background: no-repeat 3px 50% $theme.pageContentBackgroundColor; 28 + border: solid 1px $theme.borderColor; 29 + border-radius: 7px; 30 + color: $theme.linkColor; 31 + display : inline-block; 32 + font-size: 50%; 33 + font-weight: normal; 34 + line-height: 1.5em; 35 + padding: 2px 5px 2px 20px; 36 +} 37 + 38 +h1.xapp .delete { 39 + background-image: url("$xwiki.getSkinFile('icons/silk/cross.png')"); 40 +} 41 + 42 +h1.xapp .rename { 43 + background-image: url("$xwiki.getSkinFile('icons/silk/textfield_rename.png')"); 44 +} 45 + 46 +h1.xapp .button:hover { 47 + background-color: $theme.highlightColor; 48 + text-decoration: none; 49 +} - Parse content
-
... ... @@ -1,0 +1,1 @@ 1 +Yes - Use this extension
-
... ... @@ -1,0 +1,1 @@ 1 +onDemand