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.