I created a user macro which works to move all blogposts. But I am not able to add a label. The method createLabel(Label label) needs a value of the type Label, not a string. How to solve that?
## Macro title: My Macro ## Macro has a body: Y or N ## Body processing: Selected body processing option ## Output: Selected output option ## ## Developed by: My Name ## Date created: dd/mm/yyyy ## Installed by: My Name ## This is an example macro ## @param OriginSpace:title=Origin Space|type=spacekey|required=true|desc=Space ## @param TargetSpace:title=Target Space|type=spacekey|required=true|desc=Space ## @param Label:title=Label|type=string|required=false|desc=Label #set($originSpace = $spaceManager.getSpace($paramOriginSpace) ) #set($targetSpace = $spaceManager.getSpace($paramTargetSpace) ) #set($labelManager = $action.getLabelManager() ) #set($blogPosts = $pageManager.getBlogPosts($originSpace, true) ) #if($req.getParameter("move") ) #foreach($blogPost in $blogPosts) <li>move $blogPost to $targetSpace #if($paramLabel != "") ##set($label = $labelManager.createLabel($paramLabel) ) #* doesn't work, object Label is required: Label createLabel(Label label) *# ##$labelManager.addLabel($blogPost, $label) #end $blogPost.setSpace($targetSpace) #if($blogPost.isInSpace($targetSpace) ) <span style="color:darkgreen"> moved &#9745;</span> #end </li> #end #else <h3>Move all blogposts from $originSpace to $targetSpace?</h3> <form method="get"> <input type="submit" name="move" value="move all blogposts listed below"> </form> <hr/> #foreach($blogPost in $blogPosts) <li>$blogPost (Labels: $blogPost.getLabels() )</li> #end #end
There must be some way to do it on the back end, but it's just as easy to do it on the front end. Here's how I would do it:
## Macro title: My Macro ## Macro has a body: Y or N ## Body processing: Selected body processing option ## Output: Selected output option ## ## Developed by: My Name ## Date created: dd/mm/yyyy ## Installed by: My Name ## This is an example macro ## @param OriginSpace:title=Origin Space|type=spacekey|required=true|desc=Space ## @param TargetSpace:title=Target Space|type=spacekey|required=true|desc=Space ## @param Label:title=Label|type=string|required=false|desc=Label #set($originSpace = $spaceManager.getSpace($paramOriginSpace) ) #set($targetSpace = $spaceManager.getSpace($paramTargetSpace) ) #set($labelManager = $action.getLabelManager() ) #set($blogPosts = $pageManager.getBlogPosts($originSpace, true) ) #if($req.getParameter("move") ) #foreach($blogPost in $blogPosts) <li>move $blogPost to $targetSpace #if($paramLabel != "") <script> jQuery.post(contextPath+'/json/addlabelactivity.action', {'entityIdString': '$blogPost.id', 'labelString': '$paramLabel', 'atl_token': jQuery('#atlassian-token').attr('content') }); </script> #end $blogPost.setSpace($targetSpace) #if($blogPost.isInSpace($targetSpace) ) <span style="color:darkgreen"> moved &#9745;</span> #end </li> #end #else <h3>Move all blogposts from $originSpace to $targetSpace?</h3> <form method="get"> <input type="submit" name="move" value="move all blogposts listed below"> </form> <hr/> #foreach($blogPost in $blogPosts) <li>$blogPost (Labels: $blogPost.getLabels() )</li> #end #end
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
This does not work for me when I use in the Confluence User Macros, I get same as nicolarault below. Outputs code and does not move all the blogs. Is there something that I am missing when creating the User Macro?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi, I'm a beginner in Macro
I tried this one and all I get in output is HTML code escaped.
Example :
What did I forgot ?
I tried all options in "Macro Body Processing"
Thank you
Nicolas
France
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.