A List of available resources and a Web Part to show and make bookings. Ensures that there are no double bookings.
I had a request to build a simple generic, configurable, weekly resource booking web part for Sharepoint 2010. Here is a list of the design goals that we set:
- Ability to have multiple resource booking webparts on a single Sharepoint Web
- The available resources should be configurable by the end users
- A weekly view of bookings
- Ability to easily identify resources that can be booked and to filter the weekly view
- Validation to guard against double bookings
- Ability to delete bookings you created
- Defaults to make creating new bookings quick and easy
- Use AJAX to avoid ugly post backs (page reloads)
The resulting Sharepoint Feature contains a WebPart which is deployed at Site level and can be used in any site within the Site Collection. A Web level Feature contains List Templates for the Resource list and the Bookings list which can be activated by any site administrator that wants to use the Resource Bookings WebPart.
The Resource Booking WebPart has two custom properties to link it to the Resource list and the Bookings list. The Resource list is included on the Quick Launch menu, while the Bookings list in not. It's possible to change this, of course, along with list permissions and adding your own views to the Bookings list to extend functionality for the users.
Below is a screenshot of the Resource Booking WebPart.
The Resource Booking WebPart defaults to show the current week starting on a Monday. At the top it shows the week start date and end date, there are arrow buttons to navigate to the previous and next weeks.
Each box shows the Bookings for a particular day sorted in time order. Bookings with a red cross next to them are one's made by the currently logged on user, clicking the red cross will delete the booking. You can only delete your own bookings using the WebPart, you could open the Bookings list and delete bookings from there if you have sufficient permissions. Hovering the mouse over a booking will popup who own's that booking, as shown in the screenshot.
In the bottom right hand corner is a list of all the resources that are available for booking. This list is created from the Resources list which is managed by the users. Checking the boxes against the resources will filter the view to show only those bookings against the selected resources. You can filter the view and still navigate to previous or next weeks keeping the chosen filter in effect.
To create a new booking simply click on the
icon. Below is a screenshot of the New Resource Booking view:
The From time defaults to the current time and the To time to the current time plus one hour. The Owner will default to the currently logged on user. All of the fields are required and there is validation in place to ensure there is no double booking of resources. The validation error message will tell you who has the resource booked when the times they have it reserved.