Issue Details (XML | Word | Printable)

Key: CHK-37
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Blocker Blocker
Assignee: Roberto Dominguez
Reporter: James Mortimer
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Confluence Checklists Plugin

using store=checklist and label= together does not use a unique key for each space:page combination

Created: 17/Sep/07 05:36 PM   Updated: 10/Oct/07 06:21 PM
Component/s: None
Affects Version/s: 1.2.1
Fix Version/s: 1.3

Time Tracking:
Not Specified

Labels:


 Description  « Hide
Sorry to hit you with another 'critical' so fast. Hopefully you can work on them at the same time.

If you use the following checklist:

{checklist:Content|label=featured|width=30%}
    {checklist-metadata:Space|width=10%}
    {checklist-excerpt:Excerpt|width=30%}
    {checklist-wikiinput:why-featured|title=Why Featured?|cols=50|rows=3|width=30%|store=checklist}
    {checklist-label:Featured?|label=featured|width=20px}
{checklist}

And you have a page that uses the 'featured' label AND has the same name in multiple spaces, you can have multiple rows that try to access the same peice of metadata. For example:

If you have three pages with the name "Home" in three spaces, A: B: and C:. If you edit the row for A:Home, you will immediately update the metadata for "why-featured.Home". This metadata is the same for A:Home, B:Home and C:Home.

Setting the comment for A: and B: results in this log:

Changed why-featured.Home from shows 'panels' layout to main help space
Changed why-featured.Home to shows 'panels' layout

Upon refresh, all three rows show the same value, "main help space"

Perculiarites

  • if you change A and refresh, you see A B and C all changed. If you change A and don't refresh, B and C remain unchanged in the display.
  • if you don't even have access to C (no edit pencil), you can still change the value since they use the same metadata key
  • both of these are side effects that I think would be totally avoided if you had a unique key

Recommend

  • use a unique key that incorporates the space. I.e. why-featured.A:Home

Note: Something to think about while you are making this change

  • I think this will break the existing store=checklist metadata and perhaps the current 'checklist logs', so it should perhaps be considered a 'major' version update (1.3? 2.0?)
  • What happens if I name one column A and another column A.B, and there is a page named B.C and a page named C?

Thanks! All all together awesome plugin.



 All   Comments   Work Log   Change History   FishEye   Crucible   Builds      Sort Order: Ascending order - Click to sort in descending order
James Mortimer added a comment - 17/Sep/07 05:41 PM
On second thought, you could make this backward compatible and avoid breaking the existing checklists if you use the logic:
  • if "column.spacekey:pagetitle" metadata exists in the current page metadata store (for store=checklist), use it,
  • otherwise, use the "column.pagetitle" metadata value.
  • always use the new column.space:pagetitle method for writing the metadata for store=checklist

This will mean that existing checklists will still show the existing data for non-duplicates, and after the next edit, even the duplicates should be stored properly.