| Name | Confluence Page State Plugin |
|---|---|
| Version | 1.0.5 |
| Languages | English, German |
| Product Versions | 2.6.2 (tested) ... 2.7.3 (tested) |
| Author(s) | Martin Breest (mbs(at)spreadshirt(dot)net), Gregor Nobis (gno(at)spreadshirt(dot)net) - we both work for sprd.net AG, Germany, Leipzig |
| Homepage | http://www.spreadshirt.net, http://www.lafraise.com |
| Price | for free |
| License | BSD |
| JavaDocs | CODEGEIST:pagestateplugin-1.0.5-javadoc.jar |
| IssueTracking | no public tracking yet |
| Download JAR | CODEGEIST:pagestateplugin-1.0.5.jar |
| Download Source | CODEGEIST:pagestateplugin-1.0.5-src.zip |
Description/Features
The page state plugin can be used to associate page versions with specific states, such as Submit, Accepted, Rejected, Set Outdated.
The pluging provides the following features:
- associate page states with pages
- page state history for single page as well as child pages
- notifications on page state changes
- integration into reporting templates
Video
Usage
The screen above shows how a typical spaces page looks like, when the page state plugin is enabled. As you can see, each page now has a status field that displays the current page status (1). You can edit (change) the page status by clicking on the EDIT button (2). You can also view the page states for all page versions and all page children by clicking on the page status tab.
Setting the Page Status
As mentioned above, when clicking on the EDIT button the change page status menu will be opened that allows you to edit (change) the page status.
To set a new page status, you can write a comment (1) and click on one of the buttons Submit, Approve, Reject or Set Outdated (2).
To remove the current page status, you can click on the red cross (3).
To close the menu without changing the current page status, you can click on the Cancel button (4).
![]()
After setting for example the page status to Approved, the status field will show the changed page status (1).
Getting Notifications on Page Status Changes
You usually get a notification via e-mail, when someone changes the page status of a page that you changed before. However, you only get the notification, if you activated the receive notifications option for the page. This option will automatically be enabled as soon as you edit the page. However, you can also manually enable the option by clicking on the notification icon (1).
![]()
With the receive notifications option enabled, you will receive a similar notification e-mail as the one shown above on each page status change of the corresponding page.
Viewing Page States
As already explained, you are not only able to set page states, but you can also see which page states where set to the different versions of a page. To see the page states of a page, you have to click on the Page Status tab. You will then see a list of page states for each page version (1). By clicking on one of the state links (2) you can filter the list and only display list entries for the selected state. By clicking on the Children link (3), you can switch to viewing the page's children instead of the page's versions.
![]()
Having clicked on the Children link, you will see the page status information for all page children (1).
Using the Page Status inside Pages and Templates
You can display the page status of a page by using the page-state-info macro. Using the macro without providing additional parameters will display the page status of the current page. Using the macro with providing a pageId will display the page state of that page. You can use the macro as follows:
Current page's page status: {page-state-info}
Page status for page with id 12098984: {page-state-info}12098984{page-state-info} or
{page-state-info:pageId=12098984}
Show color: {page-state-info:showColor=true}
Usage example in templates are:
{report-table}
...
{report-column:title=Status|width=100px}{page-state-info:showColor=true}{report-info:content:id}{page-state-info}{report-column}
{report-table}
Configuration
In order to get the plugin running on your machine, you need to modify your page template, i.e. page.vmd (see sample file), a little bit and some lines of code that add the page state field to your pages. Just copy the example below to your page template:
<div class="smalltext">
#editReport()
#parse ("/labels/labels-include.vm")
--- start of code to insert ---
#if ($pspHelper)
$pspHelper.renderPageStatePanel($page)
#end
--- end ---
</div>
Version History
1.0.5 Changed Modified By user name from Anonymous to - on page state overview page.
1.0.4 Hopefully bug fixed that led to displaying username Anonymous even if a logged in user changed the page state.
1.0.3 Basic stable version

Comments (24)
Mar 26, 2008
Bob Swift says:
ImpressiveImpressive
Mar 27, 2008
Martin Breest says:
Thanks Bob, we actually didn't know what to do with our plugin ideas for Conflu...Thanks Bob,
we actually didn't know what to do with our plugin ideas for Confluence until we found a link to the Codegeist competition on InfoQ or TheServerSide. Hope the plugin is usefull for you. ... We are actually working on another one that we might submit during the next weeks
.
Cheers,
Martin
Mar 26, 2008
Mike Cannon-Brookes says:
Martin - well done for submitting early! You get all the benefit of other people...Martin - well done for submitting early! You get all the benefit of other people's ideas
Just an idea - have you given any thought to some sort of admin configuration option (either at a space or global level) to set a 'time out' for automatically setting pages out of date etc? Maybe after 90 days of no activity? Could be useful as an indicator that a certain page could be out of date. Maybe a 'possibly out of date' type state.
Mar 27, 2008
Martin Breest says:
Hi Mike, thanks for your feedback and ideas . Sounds like we need a time-based ...Hi Mike,
thanks for your feedback and ideas
. Sounds like we need a time-based batch job (oh no
) that goes through all pages space by space during a specified time x, e.g. midnight, and checks whether the set page state is older then y days. X and y can be configured globally. Do you need a space specific configuration as well?
If this is really a requirement and you really want/need it, we will implement that
.
Cheers,
Martin
Mar 27, 2008
Lukas Karrer says:
I'd like to second this idea. A content lifecycle which automatically sets pages...I'd like to second this idea. A content lifecycle which automatically sets pages to outdated helps keep content accurate and up to date, This would help us alot!
Cheers
Lukas
May 06, 2008
Christian Nesemann says:
Yeah such an option would be great. Had created an issue before i've seen this p...Yeah such an option would be great. Had created an issue before i've seen this plugin, but if it would be possible with this macro i could close that.
Jun 28
Joshua Wold says:
+1+1
Sep 29
Boots Wang [atlassian] says:
+1+1
Mar 26, 2008
Bob Swift says:
Basics seem to work on 2.7.1. I noticed that Modified By was Anonymous even tho...Basics seem to work on 2.7.1. I noticed that Modified By was Anonymous even though it was changed by a logged in person.
Mar 27, 2008
Martin Breest says:
Hi Bob, thanks for your feedback and time. You mean in the e-mail you received ...Hi Bob,
thanks for your feedback and time. You mean in the e-mail you received after changing the page state as a user it showed modified by Anonymous instead of your user name? I will have a look at the implementation and try to fix that. I actually think that this part worked with Confluence 2.6.2 on my machine.
Cheers,
Martin
Mar 27, 2008
Bob Swift says:
No, on the page states page.No, on the page states page.
Mar 29, 2008
Martin Breest says:
Hm, it took me a while to understand the cause of the problem. Here is the expla...Hm, it took me a while to understand the cause of the problem. Here is the explanation. We actually do have a couple of states, e.g. None, In Progress, Submit, Feedback, Approve, Reject and Set Outdated. For each state, we can configure whether the state should be kept when editing the page. The configuration right now is as follows:
None - keepState = true
In Progress - keepState = true
Submit - keepState = false
...
That means, in case keepState is false, e.g. in state Submit, the page state will actually be reseted by the system, i.e. actually no page state will be stored for the new page to keep database records to a minimum. The semantics of no page state associated with a page is displayed right now as state None with no modifier, i.e. modifier Anonymous. I changed this now from Anonymous to - to reduce confusion.
I am not sure whether the way we do it right now is best. What would be a better solution?
May 05, 2008
David Dembo says:
Looks pretty interesting - nice work One thing I thought worth pointing out is...Looks pretty interesting - nice work
One thing I thought worth pointing out is that this looks like it has a fair few similarities to the Approvals Workflow Plugin. It looks like it has some advantages in some areas, for example the fact that it allows for custom states other than approved or rejected. On the other hand the Approvals plug-in is stronger in other areas, particularly its workflow engine.
It'd be great if there were some integration between the two plug-ins - I think the different strengths of these plug-ins would complement each other quite nicely if they played well together.
Something to think about for the long-term, anyway - might be a bit too ambitious for a short-term goal.
Jun 25
Richmond-rae Dalisay says:
This is a nice plugin. I'm just wondering, how can you set the permission...This is a nice plugin.
I'm just wondering, how can you set the permission for the approvals? Let say I want to specify a certain group ("Approvers group"), that this group's task is to check and approve all created pages. One more thing, I observed that when your using the default theme, the Page States Bar is missing but when you change to other themes, the Page States Bar appears.
Thanks and God bless.
Jun 27
Brian Bukowski says:
I am trying to install the Page State plugin onto Confluence 2.7.1 and am gettin...I am trying to install the Page State plugin onto Confluence 2.7.1 and am getting an error. Here's what I'm working with:Operating System: HP-UX B.11.11Java Version: 1.4.2.13Database: oracle.jdbc.OracleDriver 10.2
When attempting to install, I get the following error message:
Error: There was a problem loading the descriptor for module 'component' in plugin 'Spreadshirt Page Status Plugin'. Class version is incompatible with current JVM: net.sprd.confluence.plugin.pagestateplugin.PageStateManager
I looked at the log and found the following exception:javax.servlet.jsp.jspException: com.ibm.ws.webcontainer.webapp.WebAppErrorReport: Transaction rolled back because it has been marked as rollback-only
Can anyone help explain why I am running into these errors?
Jun 28
Martin B. says:
Hi Brian, the problem is, that I did compile the page state plugin's sources fo...Hi Brian,
the problem is, that I did compile the page state plugin's sources for Java 1.6.x and not 1.4.x. That's the reason for the "Class version is incompatible with current JVM" message. To solve the problem, you can either use a new version of the JRE (1.6.x) or recompile the project with Java 1.4.x. You therefore simply need adjust the maven project a little bit (pom.xml) and change the maven-compiler-plugin's source and target version from 1.6 to 1.4 I think.
Cheers,
Martin
Jun 30
Brian Bukowski says:
Martin, Thanks for the response. I changed the pom.xml file as you had re...Martin,
Thanks for the response. I changed the pom.xml file as you had recommended to specify that we're using Java 1.4. I'm still getting the same error message as before. Is there anywhere else that I need to specify this?
Regards,
Brian
Jul 03
Brian Bukowski says:
I am still unable to load this plugin. I changed the specified Java versio...I am still unable to load this plugin. I changed the specified Java version from 1.5 to 1.4 in the pom.xml file and I'm still seeing the following error:
Error: There was a problem loading the descriptor for module 'component' in plugin 'Spreadshirt Page Status Plugin'. Class version is incompatible with current JVM: net.sprd.confluence.plugin.pagestateplugin.PageStateManager
Does anyone have any suggestions?
Jul 11
Sasha Zucker says:
In order to get the plugin running on your machine, you need to modify your page...Which page template is this, exactly? I'm using Confluence 2.6.0.
Jul 12
Martin B. says:
Hi Sasha, it's great that you find the plugin usefull and use it in your compan...Hi Sasha,
it's great that you find the plugin usefull and use it in your company. You have to change or overwrite the page template, i.e. page.vmd (see sample file). I fixed the documentation to make that clear.
Cheers,
Martin
Jul 15
Tim Eddelbuettel says:
Does it work on Confluence 2.8? If not will it in future work with Confluence 2....Does it work on Confluence 2.8?
If not will it in future work with Confluence 2.8?
kind regards
Jul 25
Colin Goudie says:
It works in 2.8 but it's down the bottom near the labels. (Plus the styling of 2...It works in 2.8 but it's down the bottom near the labels. (Plus the styling of 2.8 has changed it just a tad) I liked it at the top more since you do really want to see the PageStatus as one of the first things. It's probably just a matter of playing around with the Layout Template and styles but I haven't done that yet
Sep 19
Monaury Cécile says:
Hi and thank your for this plugin, I just install it in a 9.2 version of conflu...Hi and thank your for this plugin,
I just install it in a 9.2 version of confluence.
It's ok but I don't see any "Page Status tab"... In default theme, in left navigation them, Y don't see how change status, but a see the Pages Status. How to have both ?
Y woud like to change the default statut "none" to "In progress". Is it possible ? where it is in code ?
And, less important, I would like to translate status in french. Is it possible to ?
Thinks for any help,
Cheers,
Cécile
Oct 28
Bob Swift says:
I am also interested in a 2.8/2.9 version. I modified the page layout to put in ...I am also interested in a 2.8/2.9 version. I modified the page layout to put in the status line similar to before (just under the title) as it gets lost following the content and labels. However, the tab is missing and needs to be turned into a entry on the tools menu. Any body know how to do simply do that?