The first component of the voodoo toolkit is a is a custom site column that renders in line visual markers for the user's read/unread status of the underlying SharePoint item. When a user reads an item, it is marked as read for that user. If another user updates the item, the read mark is cleared and the item once again shows up as unread.
The project is currently in "beta" and uses several experimental techniques but it deploys like any other SharePoint package. Since you are reading a souce code package, I am assuming that you are familiar with SharePoint 2010 and the basics of package deployment. Eventually there will be a more robust deployment and administration document, but for now this is all you get. Things that don’t work or currently behave curiously are listed in the TODO.txt file, found in the project directory.
Deployment is quite easy, it’s a SharePoint package, so either compile the project and let Visual Studio deploy it, or use stsadm to deploy the complied wsp file. Once deployed and activated you have a few global decisions to make. In your farms Central admin you will see a new title section named "Voodoo configuration" and underneath that are the global settings for this utility, of which there are two:
  • Direct updates By default the Read and Unread system uses the SharePoint API to update the read marks for a particular item or document. In systems with high user activity this can sometimes lead to update collisions which will cause the read marks not to be stored, and occasionally cause SharePoint to throw a "Dirty Item" error. If you are experiencing this, then you can enable direct updates here. Most of our testing uses this mode and to date we have not experienced any problems.
  • Track document reads Normally the Read and Unread tracking system triggers read updates only when a user reads a SharePoint form. For document libraries this is the document properties information, if you want a document marked as read when a user opens the document directly or downloads it, and then you should enable tracking here. Tracking can happen inline or in a background thread, to enable background processing set the background thread pool to a value between 1 and 5, if you want marks to be handled inline then set the background thread count to 0.

After you configure these settings you will be ready to use the column. First, find or create a list anywhere in your SharePoint farm, if you have enabled "Track document reads" you can also do this on a document library. Add a new column to the library, call it RUMarks and make it a "Read or Unread marker field". Make sure "Add to default view" is selected. You have several column options which are explained here:
  • Read mark configuration You have two choices for the display of your read marks, either a color (Unread columns are highlighted) or an inline image (Show icons for read or unread). If you select a color, enter the HTML color tag for unread items in the text field. If you select icons, then you can provide an icon image url for both states.
  • Read mark appearance There are two options for read mark appearance, if you select "Hide label and data on forms" then the edit control will mark its row as invisible in the edit table display of the form. We still need to render the control, because that’s when we mark the item as read (except for document downloads which are tracked differently). If you select "Show inline status editor" then a drop down menu will be available next to each item and folder that will allow you to change that items status.
  • Row mark processing This one is self-explanatory, if you set it to "Retain read marks permanently" than once you have read an item it will not ever be reset, even if someone edits it. If you select "Clear read marks when item is updated" then the items status will be reset when it is updated.

For the column to render properly, the site column must be included in the current view. While it will work in any position in the view, the "Unread columns are highlighted" works better if its the last column to be rendered so put it in the last position (highest number). That’s it, it really is that simple. Please be careful and give us some feedback in the forums

Last edited Feb 6, 2010 at 10:50 AM by robginsburg, version 2


No comments yet.