In One Line

Develop and centrally manage Sharepoint user interface customisations using jQuery within SharePoint & MOSS (2007 and 2010) and Project Server (2007 and 2010).

Project Description

ShUIE is an addition to Microsoft SharePoint that allows a developer to inject JavaScript and CSS fragments depending on the context of the page being displayed. JavaScript and CSS injected can be optionally minified, and jQuery is included to increase functionality.

Project History

ShUIE was created by Pcubed in Autumn 2005, for SharePoint v2, to enable the customisation of the SharePoint HTML without requiring us to touch the template files and to allow us to apply and maintain the customisations over many SharePoint sub webs without having to re-deploy or modify the site templates. In the SharePoint v2 version, we injected the JavaScript by modifying a Microsoft Sharepoint core JavaScript file.

In early November 2008 we created a version for SharePoint 2007. It uses a WebControl to "inject" JavaScript and Cascading Style Sheets into a page based on the context of the page. The customisations continue to be held centrally in a database, but now the ability to use a WebControl packaged as a feature means that we no longer modify any Microsoft file and still retain the ability to inject our customisations anywhere.

The latest version uses SharePoint's property bag instead of a SQL database. It has been tested and is stable against SharePoint 2007, MOSS 2007, SharePoint 2010 and MOSS 2010.

Features

  • jQuery and jQuery.UI included, develop faster and make use of jQuery plugins
  • Minification support thanks to the YUICompressor project
  • Inject JavaScript and/or CSS based on context:
    • Site
    • Web
    • List
    • User
    • Page Mode (Invalid|New|Edit|Display)
  • Declare CSS media type (to allow you to customise just the print layout for example)
  • Share settings amongst many customisations (such as the location for a shared web service that many AJAX customisations might require)
  • Light-up of customisations (activate and disable customisations based upon component or context)

Project Vision

We are sharing this piece of IP to the SharePoint developer community in the hope that community customisations are generated that we can all take advantage of and re-use and to help establish a strong platform for creating AJAX customisations, applications and enhancements on top of SharePoint.

Jans Tielens has demonstrated the power of embedding jQuery into SharePoint on his blog, and the reaction to his posts has been exciting to watch. As Pcubed hold a mature version of this concept that already enables SharePoint customisation to be dynamically loaded based upon context from a centrally manageable store, we feel that we can offer a leap over what has been demonstrated so far and enliven the SharePoint developer community to release and share openly re-usable customisations that will help increase the capabilities, user-acceptance and market share of SharePoint to the benefit of us all.

We would very much welcome contributions from other developers on all fronts, but especially in the creating of Customisations that others can download and use.

Documentation

Customisations Included

  • Hello World sample
  • jqDock implementation of the Public Lists within a site
  • Print (Any) Web Part from End User SharePoint
  • Wiki Toc ( Table of Contents )

Authors

Libraries Used

License

CDDL, share your modifications and additions.

Last edited Jul 6, 2011 at 3:47 PM by diogoxluis, version 24