Tuomi
  • Home
  • Services
  • Blog
  • About
  • Contact
Tuomi
  • Home
  • Services
  • Blog
  • About
  • Contact

Browser Back Button History Not Working with SharePoint Managed Metadata menus

Written by Keith Tuomi on March 14, 2013. Posted in Internet Explorer, Managed Metadata, SharePoint 2010. Leave a Comment

A client reported user grief in that when users clicked from static hyperlinks they had put on their SharePoint team site page Content Editor Web Part, which pointed to specific nodes on a Managed Metadata treeview menu, subsequent clicks of the browsers back button would not have the normal effect of returning to them from whence they came. In fact the back button in the browser really does nothing at all.

The reason is there is a # symbol at the tail end of the URL. The # symbol is traditionally used to denote anchor tags in HTML. In modern web applications it’s commonly used in AJAX techniques .

In the particular case of links to the nodes in the left-hand managed metadata menu, those links include a tag #serverfilter  with a bunch of parameters after that that tell the web browser to go to the specific node in the menu. Unfortunately, as the client discovered, Internet Explorer and some other browsers do not handle browser history normally when navigating via the # tag. Even though you are apparently loading new page content, the browser disagrees, because you are not actually loading an entire new web page – just a dynamic portion of Javascript that is displaying new content.

An example of such a URL is below – the offending #serverfilter and the variables it delivers are bolded.

https://sharepoint/teams/myTeam/MainLibrary/Forms/View.aspx?RootFolder=%2Fteams%2Fqms%2FMainLibrary&TreeField=Reference%5Fx0020%5FLevel&TreeValue=1522a33d%2D5b55%2D472f%2D970f%2Db09b9e804f3e#ServerFilter=FilterField1=Reference%5Fx0020%5FLevel-FilterValue1=106-FilterLookupId1=1-FilterOp1=In-TreeField=Reference%5Fx0020%5FLevel-TreeValue=1522a33d%2D5b55%2D472f%2D970f%2Db09b9e804f3e-OverrideScope=RecursiveAll-ProcessQStringToCAML=1

One of the biggest problems when using AJAX in web development has always been maintaining application state. In a Javascript heavy site (like SharePoint) one might want to do all sorts of things that alter the state of the user experience. For example, opening up modal dialogs (popups) over the page to request input from the user, etc. Because these state changes are occurring only with Javascript the browser is technically unaware of what is going on. If the user decides to hit the back button thinking they are just going back to before they opened a popup, they’ll be surprised when it takes them several steps backward to the last point where their browser actually made a full request. Similar issues occur when they refresh the page. The dynamic state is totally blown away and a new page request is made.

Since the basics of web navigation have always implied that a “new page” is what forms a single unit of web history, you’re not getting the back action as expected when direct linking to items in the Managed Metadata menu tree.  Unfortunately this is not a SharePoint-specific problem, it is endemic with lot’s of newer web applications online today from various vendors.

While I personally have coded workarounds for this type of problem in the past, it was for very specific, simple application scenarios (not like the huge complexity of SharePoint). In the case of out-of-the-box (mis)behavior like this I would advise simply that this unexpected back button behavior is the way it is and that users will have to adapt to selective back button history response (as they probably have on other online web applications). 

SharePoint as a Document Management System – Comparison Matrix Worksheet

Written by Keith Tuomi on June 7, 2012. Posted in Document Management System, Managed Metadata, Search, Security, SharePoint 2010, Versioning, Workflow. Leave a Comment

I created the following Excel worksheet to offer a cross-comparison of the Document Management features and capabilities of SharePoint vs. other DMS on the market.
Credit to Wikipedia for the main categories and fundamentals. Obviously the grading system is opinion-based however I added extensive comments in to each of the SharePoint score cells to back up my points.

Download the Excel here: SharePoint 2010 Document Management System Comparison Matrix (70KB)

Spreadsheet Instructions

Edit data only in color coded cells – white cells contain formulas and should be left alone)
Note: If you need to add factors or categories, please see the example tab for more instructions

  • Title your options: replace “Option 1”, “Option 2” with your option titles
  • Title categories for consideration in column A : replace “Category 1”, “Category 2” with your category labels
  • Add factors for decision in each category in column B (for a job, this might be commute, pay, etc.)
  • Assign weights to categories (column C) so that they add to 100 (see below cat weight column for total). This forces you to understand how important these categories are to you relative to each other
  • Assign weights to each factor within the categories (column D) so they add to 100 (see above factor weights for total). When assigning weights to factors, concentrate on their relative importance, ignoring factors in other categories
    • Note: when your weights add up properly, you should have no more red totals visible.
  • Fill out blue areas with scores from 0-10
    • Note for negatives, reverse your thinking (so a high score on a negative like Risk means it’s NOT risky)
    •  Note that as you edit scores, the weighted averages are shown as subtotals and absolute totals along the bottom.
      For “yes/no” factors, use 0 for no, and 10 for yes.

Planning SharePoint 2010 User Profile Synchronization

Written by Keith Tuomi on November 16, 2011. Posted in Deployment, Feature, Managed Metadata, SharePoint Enterprise, SharePoint Standard, User Profile, User Profile Service. Leave a Comment

A basic issue – the client has their Active Directory DisplayName populated in the style of “LastName, FirstName“. Legacy business requirements dictate that the DisplayName stays in that format – but the SharePoint champion comes along and indicates that it would be preferable to have the SharePoint 2010 UI show the users DisplayName in the standard “FirstName LastName” format.

After quickly toying with the idea of using Jquery or some other front-end patch to just reverse the names – complications arose – number one being the data in the DisplayName field in AD was inconsistent, with various flavours and styles of data that was mashed together over the years. Active Directory is aptly named-  people will mess up this data actively. Not to be trusted.  The solution:

1. Set up the SharePoint 2010 User Profile Synchronization and use custom field mapping.
2. Create a new profile property in AD called customDisplayName and give it the values Firstname Lastname
3. Map the new customDisplayName property to the SP DisplayName property.

So, the end result should be that users would now see their DisplayName throughout the SP application populated with the AD field data “FirstName LastName”
Getting User Profile Synchronization itself planned, configured and deployed is a big task. This post will let help you  plan out your first moves.

Authoritative initial references can be found at:

TechNet – Configure profile synchronization (SharePoint Server 2010):
http://technet.microsoft.com/en-us/library/ee721049.aspx
Rational Guide to implementing SharePoint Server 2010 User Profile Synchronization:
  http://www.harbar.net/articles/sp2010ups.aspx
SharePoint 2010 – Provisioning User Profile Synchronization:  http://blogs.msdn.com/b/russmax/archive/2010/03/20/sharepoint-2010-provisioning-user-profile-synchronization.aspx

There are four Excel Worksheets available for download from TechNet which should be the best way to get things organized:

User Profile Properties Planning worksheet

( .xls download )
Should be used with the Plan user profiles, Plan for profile synchronization, and Configure profile synchronization topics on TechNet.

Connection Planning worksheet

( .xls download )
Specifies information that you will need to gather for each directory service with which you will synchronize profile information. It should be used with the Plan for profile synchronization and Configure profile synchronization topics on TechNet.

External Content Types Planning worksheet

( .xls download )
Should be used with the Plan for profile synchronization topic on TechNet if you need to synchronize user profiles with business systems.

Profile Synchronization Planning worksheet

( .xls download )
Profile sync worksheet tab of the specifies information that you might need to gather if you have not already configured the SharePoint Server infrastructure. It is used with the Configure profile synchronization topic on TechNet. The Property mapping worksheet tab is obsolete; it has been replaced by the User Profile Properties Planning worksheet.

NOTE: When performing the intital setup, it’s important to remember that MS best practice is to not have your Active Directory Domain Controller on the same server as SharePoint. So you need to follow a different path if you are using a dev server with AD and SQL all wrapped into the one server, than if you would be deploying to a production setup with AD DC on a separate server. Spence Harbar in particular notes this in a few places but it will confuse the hell out of you with the AD setup requirements unless you understand the distinct setup paths required for both scenarios.

Related articles
  • SharePoint 2010 – Troubleshooting User Profile Service Provisioning (thesharepointref.wordpress.com)
Keith Tuomi

Keith Tuomi

I'm a Consultant at Tuomi Services Ltd..
As a SharePoint Consultant for more than 10 years, I have helped countless businesses and nonprofits to use SharePoint to facilitate team collaboration, simplify project management, and streamline document management.

more..

Keith Tuomi
profile for Keith Tuomi at Stack Overflow, Q&A for professional and enthusiast programmers
  • Keith Tuomi on SharePoint Calculated Column Formulas & Functions – The Essential Guide
  • Larry Wayne Virden on SharePoint Calculated Column Formulas & Functions – The Essential Guide
  • Kevin.Classen@Live.com on SharePoint Calculated Column Formulas & Functions – The Essential Guide
  • Keith Tuomi on SharePoint Calculated Column Formulas & Functions – The Essential Guide
  • Keith Tuomi on Conditional Color Coding on SharePoint 2013 Task List using JSLink
  • Introducing Office 365 Compliance Manager March 27, 2018
  • Office 365 Security – Capabilities & Planning March 19, 2018
  • Office 365 Internet Zone Settings August 1, 2017
  • SharePoint Online Search Word Breaking March 30, 2017
  • SharePoint Saturday Vancouver 2017 – Register Now March 26, 2017
Development Blogs
Andrew Connell
Chris Givens
Chris Johnson
Chris O'Brien
Corey Roth
Doug Ware
Fabian Williams
Liam Cleary
Marc Anderson
Mark Rackley
Tobias Zimmergren
Waldek Mastykarz
Wictor Wilen
IT Pro Blogs
Bill Baer [MSFT]
Spencer Harbar
Steve Peschka
Power User Blogs
EndUserSharePoint.com
Laura Rogers
Randy Drisgill
Business Blogs
Paul Culmsee
Richard Harbridge
Ruven Gotz
Susan Hanley
  • Access 2013
  • Active Directory
  • Administrator
  • Amazon AWS
  • AppFabric
  • Apps for Office
  • Apps for SharePoint
  • ASP .NET
  • Authentication
  • Azure
  • Backups
  • Backups
  • Best Practices
  • Bing
  • Branding
  • Branding
  • Branding
  • Browsers
  • C#
  • Certification
  • Client Object Model
  • Cloud
  • CloudShare
  • Compliance
  • Conferences
  • Content Search Web Part
  • Content Type
  • CSS
  • Delve
  • Deployment
  • Development
  • Development
  • Document Library
  • Document Library
  • Document Management System
  • Document Sets
  • Errors
  • Event Handlers
  • Excel
  • Excel 2010
  • Feature
  • Flow
  • Groups
  • Ignite
  • IIS
  • Infopath
  • Internet Explorer
  • itgroove Bloggers
  • itgroove Store
  • Javascript
  • Jquery
  • JSLink
  • List
  • Lists
  • Logs
  • Lync
  • Lync
  • Managed Metadata
  • Master Page
  • Master Page
  • Microsoft
  • Microsoft Virtual Academy
  • Migration
  • Monday May 4
  • MS Ignite Conference 2015
  • MSDN
  • MSOCAF
  • MVP
  • MVP Virtual Conference
  • Napa
  • Navigation
  • Nintex
  • Nintex Forms for Office 365
  • Nintex Workflow for Office 365
  • Object Cache
  • Office
  • Office 2013
  • Office 365
  • Office Store
  • Office Web Apps
  • OneDrive
  • OneDrive for Business
  • OneDrive for Business
  • OneNote 2010
  • OneNote 2013
  • Outlook
  • Outlook
  • Outlook 2010
  • Outlook Web App
  • Output Cache
  • Performance
  • Permissions
  • Planner
  • Power Apps
  • Power BI
  • Power BI
  • PowerPoint 2010
  • Powershell
  • PowerShell
  • Programming
  • Regular Expressions
  • Regular Expressions
  • Search
  • Search Service Application
  • Security
  • Security
  • SharePoint
  • SharePoint 2007
  • SharePoint 2007
  • SharePoint 2010
  • SharePoint 2013
  • SharePoint 2016
  • SharePoint Designer
  • SharePoint Enterprise
  • SharePoint Foundation
  • SharePoint MVP
  • SharePoint Online
  • SharePoint Standard
  • Shredded Storage
  • Site Template
  • Skydrive Pro
  • Skype for Business
  • Solution Package
  • SPS Vancouver
  • SPServices
  • SQL
  • SQL
  • SQL Server 2012
  • store.itgroove.net
  • Tasks
  • Taxonomy
  • Team Foundation Server 2010
  • Team Foundation Server 2012
  • Team Foundation Services
  • TechNet
  • Thursday May 7
  • Training
  • Tuesday May 5
  • TypeScript
  • TypeScript
  • UI
  • Uncategorized
  • Usage Data Collection
  • User Groups
  • User Profile
  • User Profile Service
  • User Profile Service
  • Versioning
  • Versioning
  • Video
  • Virtualization
  • Visio
  • Visio 2013
  • Visual Studio
  • Visual Studio 2010
  • Visual Studio 2012
  • Visual Studio 2013
  • VisualStudio.com
  • vSharePoint
  • Web parts
  • WebDAV
  • Windows
  • Windows Phone 8
  • Windows Server 2012
  • Windows Updates
  • Word
  • Word 2010
  • Workflow
  • Workflow
  • Workflow Manager
  • Workflow Task
  • Yammer
  • Yammer