Skip to content

Using default.master as meeting workspace masterpage

November 18, 2010

The meeting workspace uses a different masterpage than the other pages. It’s called mwsdefault.master and is located in the file system in the following folder:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\GLOBAL\mwsdefault.master

When branding a site this is an additional masterpage to consider otherwise the meeting workspaces will have the good-old sharepoint look-and-feel that your customer will find ugly. So you will need to customize the mwsdefault.master in the end.

Would be nice to use the default.master that you already customized as the masterpage of the meeting workspace but if you do that you lose some functionality. But with some nice hacking you can add these missing controls into the default.master so you can have one common masterpage that will be much easier to maintain.

Here are the steps that you need to do:

1. Add the following line to the top of the default.master This registers the Meetings TagPrefix:

<%@ Register TagPrefix="Meetings" Namespace="Microsoft.SharePoint.Meetings" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

2. add the following line right under the opening body tag. This is needed for the meeting workspace to work properly:

<Meetings:PropertyBag ID="PropertyBag1" runat="server" />

3. add the following code right above the placeholder id=”MSO_ContentDiv” tag. These are the controls that are missing from the default.master and are needed on the meeting workspace pages. We put them in a hidden div so they won’t be visible on non-meeting pages.:

<div id="MeetingWebparts" style="display: none;">
<Meetings:CustomToolPaneManager runat="server" __MarkupType="vsattributemarkup" WebPart="true"
Height="" Width="" __WebPartId="{7EA68B2E-73BE-4C56-B299-4B8B2D259B0B}" ID="g_7ea68b2e_73be_4c56_b299_4b8b2d259b0b" />
<Meetings:PageTabsWebPart runat="server" __MarkupType="vsattributemarkup" WebPart="true"
Height="" Width="" __WebPartId="{D615EF9C-A209-4013-B8F4-A97799486CBB}" ID="g_d615ef9c_a209_4013_b8f4_a97799486cbb" />
</div>

4. and the last step is to add the following javascript code to the head of the default.master. This shows the above controls on the meeting pages. This is sort of hacking 🙂

<script type="text/javascript">

function ApplyFormat()
{
var meetingWPDIV = document.getElementById("MeetingWebparts");
if (meetingWPDIV != null) {
if (meetingWPDIV.innerText.indexOf("This Web Part was designed for use on a Microsoft Meeting Workspace") < 0) {
meetingWPDIV.style.display = "";
}
}
}

_spBodyOnLoadFunctionNames.push("ApplyFormat"); 
</script>

5. when done, just use this default.master as your masterpage for the meeting workspace. I simple backed up my mwsdefault.master and overwritten with this file. Good luck.

Advertisements

From → MOSS 2007, WSS 3.0

5 Comments
  1. In FireFox I will get the following error:

    meetingWPDIV.innerText is undefined
    https://portal
    Line 81

    The scrollbar is now disabled and the page seems to be broken?

    Do you have any suggestions?

    Thanks in advance!

    • Hi Bastiaan,

      FireFox doesn’t support the innerText property in JavaScript. Try using the textContent property instead. See this post for an example:
      http://blog.coderlab.us/2005/09/22/using-the-innertext-property-with-firefox/

      Hope it helps,

      • Thank you for the fast reply! I use this now:

        function ApplyFormat()
        {
        var meetingWPDIV = document.getElementById(“MeetingWebparts”);
        if (meetingWPDIV != null) {
        if (document.all){
        if (meetingWPDIV.innerText.indexOf(“This Web Part was designed for use on a Microsoft Meeting Workspace”) < 0) { meetingWPDIV.style.display = ""; }
        } else{
        if (meetingWPDIV.textContent.indexOf("This Web Part was designed for use on a Microsoft Meeting Workspace") < 0) { meetingWPDIV.style.display = ""; }
        }
        }
        }
        _spBodyOnLoadFunctionNames.push("ApplyFormat");

        Seems to work fine now.

      • Glad to hear it’s working. Thanks for sharing the code.

  2. Thanks, this works!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: