Friday, May 31, 2013

SharePoint 2010 Extended Details CodePlex Solution

I'm happy to annouce my addition to CodePlex: SharePoint 2010 Extended Details feature!  The solution was built to address an on-going problem I was seeing through-out various implementations.  Here are the details.

The Problem
Users will often create sites and lists with varying degrees of complexity.  These can include some of the following:
  • Sites that have very a specific structure with varying sub-sites, etc.
  • Lists that have several workflows attached, some could be automatic, some could be manual.
  • Lists that have lookup columns to various other lists.
  • Etc, etc.
As these setups become more complicated, it becomes harder and harder for another user to come in later and make changes, without knowing anything about the current environment.  This could be combated using documentation, but it requires knowledge of where that documentation lives or what its name is for a proper search.

The Solution
The SharePoint 2010 Extended Details feature takes care of this issue by placing the documentation right at the site or list level.  This solution deploys a hidden list which is used as a central repository for documentation.  The list has several columns to capture details about the setup, as well as allowing attachments for documentation.  It also deploys links in Site Settings and List Settings so users can simply go to the settings page and view the documentation/details.

This feature is scoped to the site collection level and is a Farm solution.

The Installation
Since this is a standard SharePoint solution, a little PowerShell will get it installed.  Use the following commands:

Add-SPSolution -LiteralPath "C:\PathToTheSolution\SharePointExtendedDetailsFeature.wsp"
Install-SPSolution -Identity "SharePointExtendedDetailsFeature.wsp" -GACDeployment

Once added and installed, the feature will be displayed in our Site Collection Features page:
Click the "Activate" button to activate the feature.  This will create the hidden list to hold our documentation/details and place the links on the various settings pages.  Opening SharePoint Designer, navigate to All Files -> Lists to see the list was added.  Note:  This is a hidden list for a reason, do not delete or change values manually to avoid breaking the feature.
Now that the feature is active and the components have been deployed, lets check out the links.
Link in Site Settings:
Link in List/Library Settings:
Link in List/Library Ribbon:
Now adding details is a simple as clicking our new link.  If we go back to our Site Settings page we'll add some details by clicking the "View/Modify Extended Details" link.  If no details are currently in the list for this particular item (site or list) you will get a prompt telling you nothing is present and would you like to add the details now.

If the user does not have Contribute permissions or higher, they will be presented with a message instructing them to contact their administrator.

Clicking "Cancel" will simply close the dialog.  Clicking "Yes" will take you to a modified default new item form.

The only modifications here is a JavaScript file is loaded and some functions fire on the page load.  What happens is the following:
  • The 'Title' field is pre-populated with the site or list title.
  • The 'ObjectGuid' field is pre-populated with the GUID of the site or list.
  • Both of these fields are then marked as read-only so the user cannot change them.
From here users can supply a 'Description' and 'Notes' in the text fields as well as upload attachments.  There is also an 'Owner' field where you can add a User or Group.  Click "Save" and the information is stored in the list and the dialog closes.

Clicking the "View/Modify Extended Details" link now will bring up the default display form, since we now have some information on this site/list.

From here the user can view all the details for the site/list as well as download any attachments that may be present.  Clicking the "Edit Item" button will bring up a modified default edit form.

Just like the new item form the only modifications here is a JavaScript file is loaded and some functions fire on the page load. What happens is the following:
  • The 'Title' field and the 'ObjectGuid' field are marked as read-only so the user cannot change them.
I hope this solution will help others running SharePoint!  You can download the solution at CodePlex, including full source code if you wish to modify it.


1 comment:

  1. HI Brandon,

    Nice post.Thanks for sharing this information in very detail.

    Sharepoint Developers