Thursday, August 15, 2013

Group list items by first letter in item name in an A-Z list view

A really simple solution when a client needed an alphabetically displayed list of items. This was to be an A-Z list of useful tips for new employees.

I solved this by adding a calculated column to my list with the formula to extract just the first letter of each item's title like so: =LEFT(Title,LEN(1)).

Then I created a view with the Group By option set to my new column.

Simple but effective!

Thursday, June 13, 2013

Deleting and recreating custom content type managed property killed search scope

Today I had a problem with one of our managed properties. I had created a custom managed property for displaying content type in the search XML and in the search refinement panel. I followed the description from Glyn Clough's Blog: http://www.glynblogs.com/2011/01/create-a-content-type-search-refinement-panel-in-sharepoint-2010.html when setting this up, and everything worked fine except for the problem that for some documents the mime type was listed as the content type instead of the content type's name.

See problem description on Technet forum: http://social.technet.microsoft.com/Forums/en-US/sharepointsearchprevious/thread/2e218709-1f1c-4da1-8bf6-2273b50ce37c/#5d495da5-bec2-4c8a-b960-059784ad5392

To try to fix this I deleted the custom content type managed property and recreated it exactly like I did the first time with same name, mapped it to the same crawled property ows_ContentType, and did a complete recrawl.

That solved the original problem, but now I found that a search scope that had used the original search scope in a rule (customContentType=someContentTypeName) no longer worked. No search results were returned by the scope, and when trying to edit the scope through Central Admin I got an error message stating: "The search service is currently offline...".

I ended up deleting the scope and recreating one exactly the same as the original.

Thursday, March 14, 2013

SharePoint permission groups disappear when sites are deleted

This one really bugged us for a while. Seemingly at random some of our permission groups suddenly disappeared into thin air, leaving lots of users unable to access their SharePoint sites and content.

After doing some research we found that in every instance this was related to groups originally created for sites that were deleted some time ago. These permission groups at first seem to live on happily even after site deletion, but reusing these groups for new sites will come back and kick you hard.

The fact is that when you delete a site, the site lives on in the Recycle bin for 30 days (default setting), hence the site is not deleted but rather marked for deletion. And actually so are the permission groups originally created for the site during site creation. (These groups are only created if you do not opt for permission inheritance, of course.)

The big draw back is that there is no way to identify that these groups in fact are marked for deletion!

So, guess what happens then after the Recycle bin period is over and the cleanup job does what it's supposed to do? The site and permission groups are gone.

So. Best practice is to not keep using these permission groups, but rather always create new permission groups when creating new sites that need dedicated permissions. Or create permission groups outside of the site creation wizard and hook these up to your sites manually.

:-) Henning

Saturday, March 9, 2013

Easy fix of slow webdav connections to SharePoint using IE on Windows 7

For some time I have been extremely annoyed by how slow it is to work with documents and files in SharePoint when I'm sitting outside of my office, logging into our VPN.

The problem is related to the Webdav (Web Document Authoring and Versioning) method that is being used, and apparently a setting in Internet Explorer related to this.

To fix the problem: in IE go into Tools -> Internet Options ->  Connections -> LAN Settings and uncheck the Automatically detect settings check box.

Instant fix!

Monday, February 25, 2013

Term store management link missing from site administration

This typically happens when you create a root site of a site collection from the blank site template

Run 2010 Management Shell as admin and execute the following Powershell command:

Enable-SPFeature -id “73EF14B1-13A9-416b-A9B5-ECECA2B0604C” -Url https://your/siteurl/here

Sunday, December 23, 2012

Opening items from core search results in modal popup

I am a big fan of using search instead of for example CQWP, so for listing out a set of news items from one specific list (this part is important) I created a separate search centre site in this project. Instead of sending people to the listed item's original list location when clicking on the item links in core search results I wanted to keep people on the same page for ease and user friendliness when browsing through several news items in sequence. I hence wanted to open each item in a modal popup within the search results page.

Out of the box opening of items from core search results web part



To change this behaviour I obviously had to change the XSL that tells the core search web part how to list it's listed items.

Start by editing the core results web part by clicking “Edit Page” were this Web Parts is placed, then click “Edit Web Part”. In the edit panel under heading "Display properties" uncheck the “Use Location Visualization” checkbox and click "XSL editor". This enables us to edit the XSLT directly in the built in editor (but it's best to copy paste this code into other editor like SharePoint Designer).

To find what lists the original Item Title and Link within the XSLT localize the following:   <div class="srch-Title3"> around line number 300. Just underneath this add the following Javascript:

<a onclick="javascript:NewItem2(event, &quot;http://[listviewurl]&amp;ID={substring-after($url,'ID=')}&quot;);
javascript:return false;" href="[listviewurl]&amp;ID={substring-after($url,'ID=')}" target="_self"><xsl:value-of select="title"/></a>

Thanks to Pete Stilgoe and his article "How to display ‘anything’ in Sharepoint 2010 pop up / modal window" for helping me find the javascript basis.

My javascript is basically built up of three parts: The [istviewurl], the ID=... and the <xsl:value-of select="title"/>.

The [listviewurl] you will find by seeing how the specific list your items live in behave when viewing the items there (where they in fact open modal by design). Go to the list and put your cursor over an item's link, right click and copy it's link.










You will find similar to this: http://server/site/_layouts/listform.aspx?PageType=4&ListId={63628054-BF65-4FB2-9A60-8EBBEB659640}&ID=2&ContentTypeID=0x0100B0CD2426D905CB4FABC1450EF4289FC9004FAC50F90D5C224EA8956A6A6CB9D6C6

Except for the ID=2 part, this is your [listviewurl] in the javascript.

The ID=2 is of course the ID of the specific list item, so this needs to vary for each result in the search list. To find each item's ID you need this in your XSL: &amp;ID={substring-after($url,'ID=')}". What it does is to use the built in variable $url (each item's search result list URL) that of course also includes the item's ID, and extract just the ID.

Then lastly the <xsl:value-of select="title"/> lists out the item's title as the clickable part of the javascript code.

Using my list details the complete javascript comes out as:

<a onclick="javascript:NewItem2(event, &quot;http://server/site/_layouts/listform.aspx?PageType=4&amp;ListId=63628054-BF65-4FB2-9A60-8EBBEB659640&amp;ContentTypeID=0x0100B0CD2426D905CB4FABC1450EF4289FC9004FAC50F90D5C224EA8956A6A6CB9D6C6&amp;ID={substring-after($url,'ID=')}&quot;);
javascript:return false;" href="/site/_layouts/listform.aspx?PageType=4&amp;ListId=63628054-BF65-4FB2-9A60-8EBBEB659640&amp;ContentTypeID=0x0100B0CD2426D905CB4FABC1450EF4289FC9004FAC50F90D5C224EA8956A6A6CB9D6C6&amp;ID={substring-after($url,'ID=')}" target="_self"><xsl:value-of select="title"/></a>
Now, I'm no javascript expert so I'm not sure what the two almost similar url parts do, nor why they are not exactly the same when it comes to formatting. But it works!

Looking at the code in SharePoint Designer it looks like this:
As you can see I have commented out the original code that lists out the result list titles.

And the result: Voila!

Sunday, May 20, 2012

Adding a custom CSS file to your SharePoint 2010 master page

I have been meaning to blog for quite some time, but have been thinking that it will take way too much time. But let me start simple by documenting the single most impactfull change one can do to the visual side of SharePoint, namely change the master page by adding your own CSS file.

To get it to load correctly and in the right order to the native CSS files used by SharePoint you have to do it like this.

<SharePoint:CssRegistration name="<% $SPUrl:~sitecollection/Style Library/myCustomStyles/myCustomSheet.css %>" After="corev4.css" runat="server"/>

Place the line right before the closing </HEAD> tag and you'll be off to a good start.