| Name | Label Manager Plugin |
|---|---|
| Vendor | James House (Website) |
| Authors | James House |
| Homepage | http://confluence.atlassian.com/display/CONFEXT/Label+Management+Plugin |
| Issue Management | http://developer.atlassian.com/jira/browse/LBLMAN |
| Continuous Integration | n/a |
| Categories | Content Macros |
| Most Recent Version | 1.1 |
| Availability | Confluence v2.2-rc1 to v2.10 |
| State | Stable |
| Support |
|
| License | Freeware / Open Source (BSD) |
| Price | Free |
| Release Docs | http://confluence.atlassian.com/display/CONFEXT/Label+Management+Plugin |
| Java API Docs | n/a |
| Download Source | http://svn.atlassian.com/svn/public/contrib/confluence/label-management-plugin/tags/1.1/ |
| Download JAR | plugin-labelmanagement-1.1.jar |
Description/Features
Helps users take better advantage of the powerful page labels feature by letting them manage page hierarchies of labelings. This makes Confluence's "Search" and "RSS Feed Builder" features far more useful.
The Problem
Labels are a powerful feature of Confluence, but there is no existing way to add/remove them from a page without directly visiting that page. This can get extremely tedious when you wish to add a given label to a page as well as all of its children, particularly when the page is the head of a large hierarchy of pages.
Even worse, once you have labeled all of the pages in a hierarchy, another user may add a new page, and not add the label, creating inconsistencies over time.
The Solution
The "Label Manager" plugin allows to to add a label to a page and all of it's children with one simple click!
The "Label Manager" also has a powerful feature called "Sticky Labels": if you use the manager to mark a label as "sticky", then all child pages of that page will always have the label. In other words, the child pages cannot have that label removed from them, and any new child pages added to the hierarchy automaticaly get the label!
Once you have your pages well labeled, searching and RSS feeds are far more powerful!
Usage
If you install the suggested links (below in the "Install" section) you can get to the Label Manager two ways:
From the main controls:
From the page labeling controls:
Once you are on the Label Management screen, you can use the Select Space control to choose which space you are manging labels in.
The left panel will display the hierarchy of pages in the selected space. Next to each page is a listing of the page's labels, color coded per the label type (label types are discussed below).
Click on a page name to manage its labels. The right panel will display the details of the page's labels, and offer conrols to manage them (if you have permissions to edit the page). Clicking on the icon next to a page title will take you to that page - away from the Label Manager.
You can hover your mouse pointer over the control action links to get more information about what the action will do.
Summary of controls:
- sticky will make the label 'sticky' (see label types below)
- un-sticky will make the label 'normal'
- remove will remove the label from the page
- remove from tree will remove the label from the page and all child pages that have it as well
- add will add the label to the page (a label must already exist in the space to be added)
- add to tree will add the label to the page and all child pages as well
- add sticky will add the label to the page as a 'sticky' label
Label Types
- Normal Labels (highlighed yellow) are just that - labels attached to the page, with no special properties.
- Sticky Labels (highlighted pink) are labels that have been marked "sticky" using the Labeling Manager conrols for the page. Sticky labels cause all child-pages to "inherit" the label. The label cannot be removed from child pages. Any new page added as a child in the page hierarchy will have the label automatically added.
- Inherited (Sticky) Labels (highlighed green) are labels on a page that are there due to one of its parent pages having a sticky label. Inherited sticky labels cannot be removed from a page until the label is made un-sticky on the parent page that has declared it sticky.

The Label Manager only lets you work with (such as add to a page) labels that already exist in the Space. If you need a new label, temporarily visit the page on which it belongs, and use the normal "EDIT" labels feature. You may then return to the Label Manager and add it to all child or make it "sticky".
Here is a complete view of the Label Manager (click to view):
Examples
To help you better understand how the Label Manager, and more particularly "sticky labels" work, the following example is given:
Here is a view of the Label Manager's left panel, which shows the space's page hierarchy. Next to each page is shown the page's labels, color coded with type.
In order to aid searching and creating selective RSS feeds (using Confluence's Feed Builder), the pages in this space have been labeled with metadata.
In our example, we desired that all pages under the "Documentation" page heirarchy be labeled as "documentation". This was easily accomplished with the Label Manager, simply by making the "documentation" label sticky on the "Documentation" page. You can see in the screen shot that all child pages have inherited the label. What's more, because the label is sticky if anyone adds a page to hierarchy, they need not remember to label it as "documentation", as it will automatically happen! Further, no one can mistakenly remove that label from any of the pages - as it will be automatically replaced.
Examine the screen shot and take note of all sticky labels (in pink) and the inheritance (in green) they cause down the tree of the page hierarchy. Note that all pages that had to do with release version 1.0 of the Zippy Product have been painlessly labeled with "zippy_r1_0". Also note the "use_case" labeling.
Note how easy it will now be to search for all pages that are a use case document for release 1.0!
Installation
Installing the Plugin
Place the "plugin-labelmanagement.jar" in your Confluence install's "plugins" directory, restart Confluence, or more simply visit Confluence's Administration -> Plugins page, and select "rescan" to load the new plugin.
Exposing the Plugin on the UI
Once the plugin is in place, you also need to add links/controls to your pages for getting to the Labeling Manger UI.
Although you are free to place links to the Label Management Action anywhere on the Confluence UI that you wish, it is suggested that you do the following:
Add Link To Page Label Information Line
Open the file confluence/labels/labels-include.vm
Locate the div block that looks like this (note the "editLabelsLink" id of the span):
<span id="editLabelsLink" class="inline-control-link" style="display: none;"> #if( $permissionCheckDispatcher.isPermittedForAjax("addLabelToEntity",[$entity]) ) <a href="" onclick="onAddLabel(); showLabelsInput(); return false;">EDIT</a> #end </span>
Just after the closing span tag (</span>) add the following:
<span class="inline-control-link"> <a href="$req.contextPath/plugins/stickylabel/addstickylabel.action ?spaceKey=$spaceKey&pageId=$entity.id" mce_href="$req.contextPath/plugins/stickylabel/addstickylabel.action ?spaceKey=$spaceKey&pageId=$entity.id">MANAGE</a> </span>
(be careful to make sure the complete link is on one line)
You may also want to add a label editing tip after the existing one:
Locate this block:
<div class="smalltext"> <em>Tip:</em> Looking for a label? Just start typing. </div>
Add this one after it:
<div class="smalltext">
<em>Tip:</em> Labels come back after you remove them? 'Manage' sticky labels.
</div>
Add Link To Top-Level Controls Site-Wide:
Go the the "Administration" area of Confluence, and select "Layouts" under the
"Look and Feel" section.
Edit a custom version of the "Main Layout". Search for the line that reads:
#usernavbar()
On a new line immediately after this, add:
#if ($sitemeshPage.getProperty("page.spacekey")) <span class="smalltext">| <a href="$req.contextPath/plugins/stickylabel/addstickylabel.action?spaceKey=$sitemeshPage.getProperty("page.spacekey")">Manage Labels</a> </span> #end
(be careful to make sure the complete link is on one line)
ENJOY!
Version History
- 1.0 - Initial release
- 1.0.1 - Fixed small bug related to space-select option when confluence is not deployed on root context of app server
- 1.1 - Fixes to allow use with Confluence 2.2.x
(contributions welcome!)


Comments (33)
Mar 19, 2006
James House says:
The UI gets a bit unwieldy when the space is very large (it becomes tedious to ...The UI gets a bit unwieldy when the space is very large (it becomes tedious to scroll up and down).
The next efforts will be to improve the UI in this respect. Probably utilizing a pop-up for the labeling controls, and reserving the main window body just for the page layout and label info.
Apr 23, 2007
Mircea Botez says:
Hi, I need this plugin like there's no tomorow unfortunately i receive an error...Hi, I need this plugin like there's no tomorow
unfortunately i receive an error when trying to reach the management for a space.
I'm using confluence 2.2.2 (perhaps the cause?)
Here is the stacktrace:
Jun 13, 2006
James House says:
Yes, it's broken in 2.2.2. I'll be trying to fix it by the end of the week, as ...Yes, it's broken in 2.2.2.
I'll be trying to fix it by the end of the week, as I need it fixed too.
Jun 16, 2006
James House says:
The new "1.1" version of this plugin works with Confluence 2.2.x.The new "1.1" version of this plugin works with Confluence 2.2.x.
Jun 19, 2006
Kevin James says:
Hmmm, still seems to be a problem with Confluence 2.2.3. I've installed yo...Hmmm, still seems to be a problem with Confluence 2.2.3. I've installed your 1.1 version of this plugin and Confluence then fails to start.
Stack dump:
2006-06-19 14:26:21,890 ERROR [ContainerBase.[Catalina].[localhost].[/confluence]] listenerStart Exception sending context initialized event to listener instance of class com.atlassian.confluence.util.ConfluenceContextLoaderListener
java.lang.UnsupportedClassVersionError: net/revolition/confluence/labeling/StickyLabelManager (Unsupported major.minor version 49.0)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at java.lang.ClassLoader.defineClass(ClassLoader.java:448)
at com.atlassian.plugin.loaders.classloading.PluginsClassLoader.findClass(PluginsClassLoader.java:74)
at com.atlassian.plugin.loaders.classloading.PluginsClassLoader.loadClass(PluginsClassLoader.java:57)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at com.atlassian.plugin.impl.DynamicPlugin.loadClass(DynamicPlugin.java:22)
Jun 19, 2006
Dan Hardiker says:
That means the plugin was compiled using Java 5, and you a running it on an olde...That means the plugin was compiled using Java 5, and you a running it on an older JDK. The quickest solution is to checkout the source from subversion and follow the instructions in the readme.txt file on how to build it using the JDK you have installed.
I would suggest moving the source over to building using maven, or at least setting the target/source compiler version options in ant to 1.3! There are plenty of examples in svn.atlassian.com to rip from.
Jun 23, 2006
James House says:
No maven for me, unless you're volunteering to set it up. I don't like it enou...No maven for me, unless you're volunteering to set it up. I don't like it enough to bother with the time, even if it is only an hour.
BTW: I'll be posting a new build that is against an earlier JDK, I just spaced that last time. Sorry.
Jun 23, 2006
James House says:
done.done.
Jun 23, 2006
Kevin James says:
One feature request would be to have checkboxes next to the pages that one could...One feature request would be to have checkboxes next to the pages that one could check and then apply a label. We have a space containing many reusable testcases (testplan plugin!). When a development project starts up testers go through the set of testcases label appropriate testcases with the development project name in order to use the testcase for that project. Sometimes these testcases aren't all collected under the same parent page or only some testcases are need under a given parent page.
Great plugin, by the way!
Jul 13, 2006
Michael Kasten says:
Hi, I would like to use this plugin,but there appears an error --- but f...Hi, I would like to use this plugin,but there appears an error --- but first the facts.
The plugin works fine on some spaces, but when try to access some other spaces an error appears.
I'll try to explain it:
1. Space: named -
> Mainpage-> works fine (Spacekey:MP)2. Space named -
> JG:: Test -> doesn't work (Spacekey:T)Is it possible that the plugin uses the name instead of the spacekey, so the error is provoked by "::" ??
Sorry for my bad english.
Error Description:
Cause:
at net.revolition.confluence.labeling.StickyLabelManager.getAllStickyLabelsOfParents(StickyLabelManager.java:272
Sep 14, 2006
Kalyan D says:
tried adding v1.0.1 to my confluence 2.1.3, but getting this error FATAL at...tried adding v1.0.1 to my confluence 2.1.3, but getting this error
FATAL atlassian.confluence.plugin.ConfluencePluginManager onApplicationEvent Error initialising plugin manager: Duplicate plugin key found: 'com.TAP.confluence.macros.SHAI'
com.atlassian.plugin.PluginParseException: Duplicate plugin key found: 'com.TAP.confluence.macros.SHAI'
at com.atlassian.plugin.DefaultPluginManager.addPlugin(DefaultPluginManager.java:110)
at com.atlassian.plugin.DefaultPluginManager.init(DefaultPluginManager.java:44)
at com.atlassian.confluence.plugin.ConfluencePluginManager.onApplicationEvent(ConfluencePluginManager.java:63)
......
{noformat)
Nov 16, 2006
Simon Lieschke says:
Ugh. So our work Confluence install has this plugin installed. I try deleting a ...Ugh. So our work Confluence install has this plugin installed. I try deleting a label from a page. It comes back when I hit Done. I have no idea why. About 10 minutes later I read the tip "Labels come back after you remove them? 'Manage' sticky labels." (because I, like many other users, are ignorant). OK, that helps me out. Um, how do I manage sticky labels? Oh, maybe it's that Manage Labels link in the top right corner (although it doesn't mention sticky labels). Perhaps it would be a good idea to include this link inline in the labels coming back hint. I click through, and am presented with a confusing looking screen. All I want to do is remove the label dammit! Ah, there's a small show/hide help I just about missed. Read through the details, realise the label is inherited from the parent page, and give up on working out how to remove it from the child page where it doesn't make sense because it all seems too hard.
Nov 16, 2006
Guy Fraser says:
It's a free open source plugin - feel free to download the source code and make ...It's a free open source plugin - feel free to download the source code and make the changes
Nov 19, 2006
Simon Lieschke says:
Sorry. I don't have the time to do so. I'll concede my comment was a rant, but ...Sorry. I don't have the time to do so.
I'll concede my comment was a rant, but I was simply trying to provide feedback about some problems I had using Confluence with the extension installed.
Apr 27, 2007
patrice saint-louis says:
We cannot download the plugin!!?? Cause: javax.servlet.ServletExcep...We cannot download the plugin!!??
Cause:
at com.atlassian.plugin.proxystat.ProxyServlet.doGet(ProxyServlet.java:46)
Stack Trace: [hide]javax.servlet.ServletException: The target must form a URL!
at com.atlassian.plugin.proxystat.ProxyServlet.doGet(ProxyServlet.java:46)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:115)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
May 01, 2007
Jonathan Nolen says:
Looks like there was a problem with the plugin metadata. I've corrected it and i...Looks like there was a problem with the plugin metadata. I've corrected it and it should be available for download in the next 1/2 hour.
May 21, 2007
Joaquin Obieta says:
When trying to install the plug-in on Confluence 2.4.5 via the repository, I get...When trying to install the plug-in on Confluence 2.4.5 via the repository, I get the following error:
The following error(s) occurred:
May 25, 2007
Vanessa Vandervalk says:
I am very interested in installing this plugin, but haven't been successful. I a...I am very interested in installing this plugin, but haven't been successful. I am trying to install this plugin on Confluence 2.4.5 via the repository. I get the following popup error:
The plugin key I expected is not what I found: Expected: undefined Found: undefined Are you sure you would like to continue installing?Clicking OK does not continue installing, but continues to display the error. Help?
May 29, 2007
Tony Cheah Tong Nyee says:
Hi Vanessa Vandervalk, I could reproduce your problem when trying to install vi...Hi Vanessa Vandervalk,
I could reproduce your problem when trying to install via the Plugin Repository too. However I could successfully upload the JAR file via the Plugin Manager. Hence, you may want to give a try to download the JAR file(plugin-labelmanagement-1.1.jar) and upload it manually via the Plugin Manager.
Cheers,
Tony
Jun 12, 2007
Kirk Mook says:
I received the same error. You may want to fix this issue. - KirkI received the same error. You may want to fix this issue.
- Kirk
Sep 20, 2007
Kirk Mook says:
Just received word that this plugin is not functioning. Standalone Confluence, v...Just received word that this plugin is not functioning. Standalone Confluence, ver 2.5.4.
The Plugin was uninstalled, reinstalled, and the 'stickyLabelState.xml' file is and was, located in C:\Confluence\data
I uninstalled, and reinstalled the plugin via the repository, but there is no option listed to 'Manage Labels'.
Was told by the user that this was functioning a few months ago, we did upgrade since then.
Above also added to JIRA yesterday.
Jan 17, 2008
Martin Breest says:
I created an add-sticky-label macro today that has the same behaviour as the add...I created an add-sticky-label macro today that has the same behaviour as the add-label macro from adaptivist (http://www.adaptavist.com/display/USERGUIDE/add-label+macro) with the difference that I add sticky labels. Would you be interested in the sources and could you add it to the plugin? Would be nice for us because of maintenance reasons.
The macro could be used for example in a template as follows:
{replace-and-render} {replace-body} ... {add-sticky-label:%PROJECTNAME%} {replace-body} {replace-item:%PROJECTNAME%}{page-info:title}{replace-item} {replace-and-render}Cheers,
Martin
Jan 18, 2008
David Page says:
This plugin looks most useful - just what I have been looking for. I have a sma...This plugin looks most useful - just what I have been looking for.
I have a small problem - when I manage labels for a space it only shows pages rooted from Home. However in most of the spaces we have have a number of pages hierarchies at the same level as Home (i.e they do not have Home as the parent).
Is there anything that can be done other than making all content a child of Home?
Mar 05, 2008
Matt Bovett says:
We're having this exact same problem. In order to use this plugin, we have to p...We're having this exact same problem.
In order to use this plugin, we have to put every page under the Home page. We have to set restrictions on our home page, and if we do that, they trickle down to every page under it.
This makes it so we have to set restrictions on many pages we normally wouldn't have to.
Is there a way we can change the location this plugin looks at?
Feb 15, 2008
Joseph Sagir says:
Hi How can I permanently delete a label...? I have labels rendered in {listlabe...Hi
How can I permanently delete a label...? I have labels rendered in {listlabels} macro, labels which no longer have pages under them. I want to permanently delete these labels. How can I do this...?
I am not sure if this is the most suitable place to ask this, but I need this urgently.
Regards,
Joseph
May 07, 2008
jd lima says:
Are there updated instructions for installing enabling the UI on Confluence 2.8....Are there updated instructions for
installingenabling the UI on Confluence 2.8.x?May 22, 2008
semir h says:
Hi, I am after some updated instructions as well. Does not seem to work with C...Hi,
I am after some updated instructions as well.
Does not seem to work with CONF 2.8.1 (did not try with 2.8 - we just skipped that version).
Some of my findings:
Even though the plugin home page says it is compatible with confluence
2.8.1
the instructions there do not seem to be correct anymore (e.g. there is
no <span id="editLabelsLink" anymore. I think it is now <span
id="labels-edit-link")
and even when I pasted the code in the MANAGE bit does nto work (is not clickable)....
Thanks
Sep 03
Jeff Guthrie says:
Has anyone found where to put the code to use this plugin with 2.8.x yet?Has anyone found where to put the code to use this plugin with 2.8.x yet?
Jul 28
Lukas Pischala says:
Hi together, i have a question about this plugin. If i go to the manage l...Hi together,
i have a question about this plugin. If i go to the manage labels overview, all pages of the space will be shown. The question is, it is possible to arrange the pages alphabetically?