Archive

Posts Tagged ‘Customise Ribbon’

Adding Print capabilities to Project Detail Pages

January 26, 2012 2 comments

A user in the Project Server forums asked a question this week about whether it was possible to add printing capability to the Project Detail Pages in order to allow the ‘forms’ to be printed out as there is no print button available on the ribbon.

Capture1

Out of the box, the printing capability in the Project Web Application is limited to the grids, including the schedule grids that are visible in a schedule PDP and uses a custom page to render the information as can be seen below.

Project Schedule PDP Grid Print

After a little experimenting with the Internet Explorer printing, it seems that PDP’s can be printed quite well directly from the browser, so I thought I would try and pull together a ribbon feature that enables PDP printing.

The feature consists of XML button definition and a little piece of JavaScript to determine if the button will be enabled or not. This is important so that the button can be disabled when the user is on the schedule page that has it’s own grid based printing function like the picture above. For the purposes of this feature, I have gone the quick route and do the check based on the name of the page, in this case if the page is called schedule.aspx the button will be disabled. You may need to modify this check if your schedule based PDP(s) have a different name.

Schedule PDP - Custom Print button disabled

The element.xml looks like this:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
	<CustomAction Id="Ribbon.Tabs.PDP.Home.Print"
				  Location="CommandUI.Ribbon">
		<CommandUIExtension>
			<CommandUIDefinitions>
				<CommandUIDefinition Location="Ribbon.Tabs.PDP.Home.Groups._children">
					<Group Id="Ribbon.Tabs.PDP.Home.Print"
						   Sequence="60"
						   Description="Print Custom Group"
						   Title="Share"
						   Command="EnableCustomGroup"
						   Template="Ribbon.Templates.Flexible2">
						<Controls Id="Ribbon.Tabs.PDP.Home.Print.Controls">
							<Button Id="Ribbon.Tabs.PDP.Home.Print.PrintPDP"
									Sequence="40"
									Command="PrintPDP"
									Alt="Print"
									Image16by16="/_layouts/$Resources:core,Language;/images/ps16x16.png"
									Image16by16Top="-96"
									Image16by16Left="-160"
									Image32by32="/_layouts/$Resources:core,Language;/images/ps32x32.png"
									Image32by32Top="-288"
									Image32by32Left="-128"
									LabelText="Print"
									TemplateAlias="o1"
							        ToolTipTitle="Print"
									ToolTipDescription="Print the contents of the PDP"/>
						</Controls>
					</Group>
				</CommandUIDefinition>
				<CommandUIDefinition Location="Ribbon.Tabs.PDP.Home.Scaling._children">
					<MaxSize
						Id="Ribbon.Tabs.PDP.Home.Scaling.Print"
						Sequence="140"
						GroupId="Ribbon.Tabs.PDP.Home.Print"
						Size="LargeLarge"/>
				</CommandUIDefinition>
			</CommandUIDefinitions>
			<CommandUIHandlers>
				<CommandUIHandler Command="EnableCustomGroup"
								  CommandAction="javascript:return true;" />
				<CommandUIHandler Command="PrintPDP"
								  CommandAction="javascript:window.print();"
								  EnabledScript="javascript:
								  function disablePrintForSchedule() {
									var sPath = window.location.pathname;
									var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
									if (sPage.toLowerCase() == 'schedule.aspx')
									{
										return false;
									}
									else
									{
										return true;
									}
								   }
									disablePrintForSchedule();"
/>
			</CommandUIHandlers>
		</CommandUIExtension>
	</CustomAction>
</Elements>

The process of building the feature is exactly the same as outlined in http://epmsource.com/2011/12/13/hiding-disabling-ribbon-items-in-project-server-part-ii/ but substitute the above code into the Element.xml file and change the feature name accordingly.

Once the feature is deployed and activated a Print button should available on the PDP ribbon that when clicked will invoke the Internet Explorer print dialog.

PDP Print Button

From my preliminary testing, the output is pretty good, as can be seen from this ‘Print to XPS’ below:

XPS Printer Output

I have uploaded the full source to Skydrive which can be downloaded from the link below.

Project PDP Print Page

Happy PDP printing Smile

Hiding the Today indicator from the Project 2010 Timeline

December 23, 2010 1 comment

Over the past few months I have found myself using the new Timeline feature of Project 2010 more and more to communicate project schedule information to audiences that may not be comfortable reading Gantt charts.  By default, the timeline will show a ‘Today’ indicator that highlights the current date as can be seen below.

Timeline view with today indicator

Whilst this is fine in most cases, there have been a few times where I didn’t want the today indicator to be visible in the timeline, but I couldn’t work out how to hide it. Looking at the timeline tools ribbon I couldn’t see any prominent setting in the Show / Hide section.

Timeline Tools - Format Timeline

So to hide the indicator I used to export the Timeline out to Word and then edit the resulting graphic to physically remove the Today label and the associated dotted line.

Until today.

Whilst building a timeline view for a project, I needed to change the Date Format and noticed three little Show / Hide options buried at the bottom of the Date Format menu.

Timeline - Show / Hide items

Each option allows you to toggle whether the Task Dates, Today indicator or Timescale is displayed on the timeline view. I am not quite sure why it’s buried at the bottom of the date format menu, but that can be easily fixed by a quick customisation of the Timeline Tools ribbon:

  1. Select File > Options > Customise Ribbon;
  2. Create a new group called ‘Toggle Today indicator’; and
  3. Add the ‘Today’ option to the ‘Toggle Today indicator’ group in the Timeline Tools / Format tab as per the screenshot below.

Customise Ribbon - Add Today to Timeline Tools

Resulting in this much improved Timeline tools ribbon with a prominent today indicator toggle.

Timeline Tools - New Improved with custom Today group

Happy Timelining Smile

Follow

Get every new post delivered to your Inbox.

Join 271 other followers