The Quick Launch (left nav) of SharePoint’s MySite Host (profile pages area) and personal sites (SkyDrive/MySite/My Content area) is a horribly confusing animal. The navigation changes completely depending on which page you are accessing, and it isn’t entirely clear how to manage the links, or which links appear for all users or just for ME. Definitely a point of confusion for our designers and customers. This post is the result of an internal discussion I started with our designers at Blue Rooster – hopefully you will find it of value to help understand better what you can expect to see in the Quick Launch in the different SharePoint 2013 social/personal areas, and where you might be able to customize it and add your own links.
Overview
The Quick Launch (left nav) of the MySite Host and Personal Sites is very confusing, and changes contextually as you click around different areas and pages. This post will attempt to explain what you see and where, and your options for adding shared and personal links to the navigation.
MySite Host Quick Launch – Self Viewing Self
Let’s start with the first scenario, where a user is viewing his/her own information on the MySite Host, for example on the Newsfeed or the About Me page. This is what the quick launch looks like in this scenario:
The first two links are populated by default, Newsfeed and About Me. They link to pages in the MySite Host site collection:
- Newsfeed: http://companyname-my.sharepoint.com/default.aspx
- About Me: http://companyname-my.sharepoint.com/person.aspx
Those first two links are the only links that show up in Site Settings > Quick Launch in the MySite Host (you have to be an administrator/owner of the MySite Host site collection to access this). Notice in the screen below it only shows Newsfeed and About me, even though there are 5 total links in the quick launch:
In the next screen, I have added a link to the Quick Launch through Site Settings > Quick Launch on the MySite Host. Notice where it appears, specifically that it appears above the Blog and Apps links:
Essentially what this means is that if you want to add shared links (links that appear for everyone) to the left nav, you can do this through Site Settings > Quick Launch, and these links will always be at the top of the Quick Launch, above the Blog/Apps links. You can reorder these shared links from Site Settings > Quick Launch page, for example, move About Me above the Newsfeed link, but you can’t move these shared links below Blogs/Apps or to the bottom of the quick launch (at least not without some client-side scripting on your MySite Host master page).
The Blog and Apps links are two entirely different animals. They are dynamically populated by SharePoint if the user has created a personal site (aka SkyDrive Pro, aka MySite). The links do not show up for users that have not created personal sites yet, or for users that do not have rights to create personal sites.
You cannot get rid of the Blog/Apps links without also getting rid of any of the shared links. The Blog and Apps links come from the same SiteMapDataSource that pulls in the shared links (the first SiteMapDataSource and AspMenu controls in the snippet below):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<SharePoint:SPNavigationManager id="QuickLaunchNavigationManager" runat="server" QuickLaunchControlId="V4QuickLaunchMenu" ContainedControl="QuickLaunch" EnableViewState="false"> <SharePoint:delegatecontrol runat="server" ControlId="QuickLaunchDataSource"> <Template_Controls> <asp:SiteMapDataSource SiteMapProvider="SPNavigationProvider" ShowStartingNode="False" id="QuickLaunchSiteMap" StartingNodeUrl="sid:1025" runat="server" /> </Template_Controls> </SharePoint:delegatecontrol> <SharePoint:aspmenu id="V4QuickLaunchMenu" runat="server" EnableViewState="false" DataSourceId="QuickLaunchSiteMap" UseSimpleRendering="true" Orientation="Vertical" StaticDisplayLevels="2" AdjustForShowStartingNode="true" MaximumDynamicDisplayLevels="0" SkipLinkText="" /> <div id="js-mysite-userquicklaunch" style="display: none; "> <SharePoint:delegatecontrol runat="server" ControlId="MySiteUserQLDataSource"> <Template_Controls> <asp:SiteMapDataSource SiteMapProvider="SPNavigationProvider" ShowStartingNode="False" id="MySiteUserQLSiteMap" StartingNodeUrl="sid:1025" runat="server" /> </Template_Controls> </SharePoint:delegatecontrol> <ContentTemplate> <SharePoint:aspmenu id="MySiteUserQLMenu" runat="server" EnableViewState="false" DataSourceId="MySiteUserQLSiteMap" UseSimpleRendering="true" UseSeparateCss="false" Orientation="Vertical" StaticDisplayLevels="2" MaximumDynamicDisplayLevels="0" SkipLinkText="" /> </ContentTemplate> </div> </SharePoint:SPNavigationManager> |
If you remove this from your master page, you’ll also remove the shared links (Newsfeed, About Me, etc.). It is really unfortunate that Microsoft did not decouple these, because many of our customers are not interested in using SharePoint’s (crappy) blog implementation, and want to hide that link, which is not possible without either disabling personal site creation (thereby removing social features), or resorting to Javascript DOM manipulation. If you are on-prem, you could write your own SiteMapDataSource, but you are stuck on Office365/SharePoint Online.
The Blog and Apps links go to the following locations:
- Blog: https://companyname-my.sharepoint.com/_layouts/15/MySite.aspx?Blog=1
- Apps: https://companyname-my.sharepoint.com/personal/username_domainname/_layouts/15/viewlsts.aspx
The Tasks link that appears underneath Blog/Apps is yet a third unique element in the MySite Host quick launch. The Tasks link actually comes from your personal site. If you click on SkyDrive in the Suite Bar (top nav), and then go to Site Settings > Quick Launch, you’ll see a link for Tasks. This link was placed here when your personal site was first created.
This means that everything under the Apps link comes from your personal site, and is customizable by you! As an individual, you can add personalized links to the MySite Host Quick Launch simply by managing the Quick Launch settings of your personal site, and these links will only show for you. I’ve added a personalized link in the screen below, and also deleted the Tasks link from my personal site’s Quick Launch settings:
In the Quick Launch, you’ll notice that at the bottom is the Edit Links control. This is visible to everyone that has a personal site created. Using this control, you can add links directly to your personal site’s Quick Launch without having to navigate directly to the Site Settings > Quick Launch page of your personal site. You can also use drag/drop to reorder the links, however if you try to drag/drop a link above the Blog/Apps links, it won’t let you. You can only drag/drop links at the bottom of the Quick Launch, amongst your personal links.
MySite Host Quick Launch – Self Viewing Other
In this scenario, we’ll look at the Quick Launch experience when viewing someone else’s profile page in the MySite Host:
You’ll notice a few differences here. The links that appear are About <username>, Documents, People, and Blog and Apps. Gone are the shared links from the MySite Host Quick Launch settings (Newsfeed, About Me, custom added links). Gone also is the Edit Links button, and the personal links like Tasks. Here are the urls where these links navigate to:
- About <username>: https://companyname-my.sharepoint.com/person.aspx?accountname=i%3A0%23%2Ef%7Cmembership%7Cusername%40company%2Ecom
- Documents: https://companyname-my.sharepoint.com/personal/username_domainame/Documents/Forms/All.aspx
- People: https://companyname-my.sharepoint.com/mypeople.aspx?accountname=i%3A0%23%2Ef%7Cmembership%7Cusername%40company%2Ecom
- Blog: https://companyname-my.sharepoint.com/personal/username_domainame/blog
- Apps: https://companyname-my.sharepoint.com/personal/username_domainame/_layouts/15/viewlsts.aspx
The Documents link takes you to the SkyDrive Pro document library view in the personal site of the user being viewed. You’ll only see documents that you have rights to view, for example documents in the Shared with Everyone folder or shared specifically with you.
The People link takes you to the MyPeople.aspx page, showing you the Following/Followers of the user being viewed.
The Blog link this time does not link to MySite.aspx?Blog=1. Instead it is the full absolute url to the user’s blog if created. If no blog exists, the Blog link will not show up at all.
The Apps link is certainly a strange one. Why would you ever want to go to another user’s Site Contents page? But again, you can’t remove this without affecting the shared links that show up in the Self viewing Self scenario described above.
Personal Site Quick Launch – Self Viewing Self
When you navigate into your own personal site (SkyDrive Pro area), for example by clicking the SkyDrive link in the Suite Bar, you see an entirely different Quick Launch:
On this Quick Launch, you see three links to documents:
- My Documents – https://companyname-my.sharepoint.com/personal/username_domainname/Documents/Forms/AllItems.aspx
- Followed Documents – https://companyname-my.sharepoint.com/personal/username_domainname/Social/FollowedContent.aspx
- Shared With Me – https://companyname-my.sharepoint.com/personal/username_domainname/Documents/Forms/SharedWithMe.aspx
On Office365/SharePoint Online, you also see a Recent Documents area, with links to documents that you have recently authored or modified (someone please correct me if I’m wrong here). This is not a part of SharePoint On-premises.
Notice that you do not see the Recent Documents items appear when on the Followed Documents page. Unsure if this is a bug or not. Other than that, the Quick Launch is pretty consistent in what it shows when you go between any of these three links.
If you go to any other page in the personal site, however, you will see the same nav that you see in the MySite Host, complete with Shared links, Blog/Apps, and any personal links like Tasks. For example, click the SkyDrive link, then the Settings icon, and Site Settings. On this settings page, you’ll see the same navigation as on the MySite Host.
Personal Site Quick Launch – Self Viewing Other
There are times when you will navigate into the personal site of another user, and in those cases, for the most part, the quick launch that you see is the same as the one you see when you view another user’s profile page in the MySite Host (person.aspx):
The only caveat is that when clicking the Documents link (which takes you to that user’s SkyDrive Pro document library), the Blog link in the Quick Launch mysteriously disappears. But when clicking the Apps link it shows up again. Bug?
Improving the Experience – Adding Shared Links
As you can see, lots of moving parts in the Quick Launch, and users can easily get confused as to where they are in the site. While a comprehensive customization/overhaul of the Quick Launch is probably needed to resolve these issues, there are a few simple things you can do to bring the different experiences more into alignment.
First off, when viewing someone else’s profile, you see the Documents link, while there is no such link when viewing your own profile. Why is this? Is it because Microsoft thought it enough to have the SkyDrive link in the Suite Bar? Surely “Documents” would make more sense to a user than “SkyDrive”. In any case, you can easily add a link in the MySite Host Quick Launch Settings that will appear for all users, and you can rest assured that it will not appear in duplicate when viewing another user’s profile.
The challenge here of course is to get the right url. The link to a person’s SkyDrive Pro document library is different for every user (https://companyname-my.sharepoint.com/personal/username_domainame/Documents/Forms/All.aspx). Luckily, we have the magic of a little redirection utility that Microsoft has built.
MySite.aspx MySiteRedirect
In the Layouts directory is a page called MySite.aspx. This is a special redirection page. It’s job is to assess where you want to go inside of a personal site or MySite Host, and take you directly to your version of that page, inside your own personal site if necessary. If you hit this page with no QueryString parameter, you’ll either get redirected to your personal site if it’s created, or back to your profile page in the MySite host.
This page does have a special QueryString parameter (MySiteRedirect) that it listens for as well, to take you to specific pages. After looking through reflector, I was able to decipher the possible values that it will accept:
- https://companyname-my.sharepoint.com/_layouts/15/MySite.aspx?MySiteRedirect=FollowedDocuments – Takes you to the Document’s I Follow page in your personal site.
- https://companyname-my.sharepoint.com/_layouts/15/MySite.aspx?MySiteRedirect=SharedDocuments – Takes you to the Shared With Me page in your personal site.
- https://companyname-my.sharepoint.com/_layouts/15/MySite.aspx?MySiteRedirect=AllDocuments – Takes you to the Document library in your personal site, or the same as clicking on SkyDrive in the top nav.
- https://companyname-my.sharepoint.com/_layouts/15/MySite.aspx?MySiteRedirect=AllTasks – Takes you to the My Tasks page in your personal site.
- https://companyname-my.sharepoint.com/_layouts/15/MySite.aspx?MySiteRedirect=AllSites – Takes you to the Sites I’m Following/Suggested Sites page in your personal site.
With this in mind, you can use the MySiteRedirect=AllDocuments QueryString parameter to provide a “Documents” link to all users in the MySite Host Quick Launch.
Another helpful shared link to add would be a “People” link. This appears when you are viewing someone else’s profile, and takes you to the MyPeople.aspx page. Like “Documents”, you don’t see this link when you view your own profile or Newsfeed. The only way to get to this page to see the people that you yourself are following is to click on the number in the stat counter on the Newsfeed page:
To make this a bit better, you can add a shared link to the MySite Host Quick Launch Settings, that points to the MyPeople.aspx page. In the screen below, I have added the Documents and People links, and now the nav is a little more consistent with the nav when viewing someone else’s profile.
Summary
The Quick Launch of the personal/social areas in SharePoint 2013 is a pretty big UX mess, but hopefully after reading this post, you are a little more comfortable with how it works and operates, and what your options are for making it more consistent.
Do you know how to add new links to quick launch for “Self viewing others” view
Hi Markus,
If you want to add links for self-viewing-others view, you’ll have to do it via Javascript and DOM manipulation.
Is there a way to hide the Apps link using CSS?
Can the Apps link be hidden using CSS maybe?
Sure. Bear in mind that looking for the string “Apps” will break in a localized installation where the word “Apps” might be something else in another language. You can probably try to key off the href, and check if it ends in “viewlsts.aspx” instead.
Can anyone else verify that by accessing another user’s Site Contents page on their MySite you can also create a SubSite on their MySite? We ran into this and have turned off site creation for now at least because of it.
Make sure not to test with an account that has been enabled as a Secondary Owner (in UPA > Setup Mysites). This would make you a Site Collection Administrator on a personal site at the time it was created, and give you the option to create a subsite in a user’s personal site.
You should not be able to create a subsite in another user’s personal site if you are a normal user without these permissions.
An *outstanding* elucidation of the MySites left-nav panel. Thank you sooo much.
I now understand my current predicament, even if I’ve yet to dig my way out. I renamed by blog*, because I tired of seeing “blog” “blog” “blog” in the Newsfeed, all pointing to different
people’s sites, but you have to click through to find out _which_ blog it is.
(* at the end of the click path: Manage posts >> Site Contents >> Settings >>Title, Description, and Logo)
Unfortunately while this works fine for me, because the url when I’m logged in goes to …/_layouts/15/MySite.aspx?Blog=1, but for coworkers it remains
.../users/matt/blog
which is now a busted 404 page.I think this means that I need to add a redirect to MySite.aspx, but how do find or get to that? I’m not an administrator, just a user.
Did you just change the “Title” of the blog site, and not the URL? Changing the title should be sufficient to make it more obvious in the Newsfeed, while still leaving the url the same. If you changed the URL, you can probably just change it back to /blog again.
Adam,
Thank you for great article. I was banging my head how to email several hundred people in company of 15k+ and include the link to their personal ‘MySite’. You saved me a lot of grief.
http://mysite.domain.com/_layouts/15/MySite.aspx?MySiteRedirect=AllSites
Great find!!!
Thnx,
–Ivan
From what I can tell “Shared With Me” only works with SharePoint Online. You can find the ASPX though with on-prem but it doesn’t work 100%.
https://yoursharepoint.com/_layouts/15/MySite.aspx?MySiteRedirect=SharedDocuments
Great article Adam. You pointed me down the track of creating my own SiteMapDataSource in hopes to remove the Blog and App links from the quicklaunch. I have been following the steps in this blog: http://www.helpmeonsharepoint.com/2012/03/custom-sharepoint-top-menu-and.html but it was written for 2010.
I seem to be missing a few things – I am extending PortalSiteMapProvider to make my own QuickLaunchSiteMap, and calls to
var provider = PortalSiteMapProvider.CurrentNavSiteMapProvider;
SiteMapNodeCollection oldNodes = provider.GetChildNodes(provider.CurrentNode);
are only returning Newsfeed and About Me nodes. On different user’s person.aspx it is still ‘About Me’ and not ‘About John Doe’.
Did you ever find where App and Blog come from? Or where the ‘About’ node gets formated? Or ‘People’ and ‘Documents’ too for that matter… I am trying to find the code for SPNavigationProvider as used in the QuickLaunchDataSource delegate control to see how the magic happens but no soap!
Thanks Adam for this useful post.
I am wondering if there is possible to add a new link to the left navigation and be visible for all users? thanks again
Hi Adam
Is it possible to create a new page within MySites, which appends a query-string to identify the current person’s MySite. e.g. having an employee’s delegation page so everyone can see individual delegations.
Cheers
Tony