This server will be upgraded at 3pm Sydney time on December 3rd (December 2nd, 8pm PST) and will be down for up to 30 minutes.

Confluence Page State Plugin

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

Screenshots

Labels

codegeist_2008_confluence codegeist_2008_confluence Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Mar 26, 2008

    Bob Swift says:

    Impressive

    Impressive

    1. 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

  2. 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.

    1. 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

    2. 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

    3. 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.

    4. Jun 28

      Joshua Wold says:

      +1
    5. Sep 29

  3. 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.

    1. 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

      1. Mar 27, 2008

        Bob Swift says:

        No, on the page states page.

        No, on the page states page.

        1. 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?

  4. 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.

  5. 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.

  6. 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?

    1. 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

      1. 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

  7. 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:

    Page Status Manager
    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?

  8. Jul 11

    Sasha Zucker says:

    In order to get the plugin running on your machine, you need to modify your page...

    In order to get the plugin running on your machine, you need to modify your page template a little bit

    Which page template is this, exactly? I'm using Confluence 2.6.0.

    1. 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

  9. 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

    1. 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

  10. 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

    1. 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?