SharePoint 2013 new document library features

A lot of new features have been added to the document library of SharePoint 2013. In this blog I will show a few of these new features.

Try out the new Microsoft Office 365 Enterprise Preview for yourself!

Create new documents

The drop-down menu has been replaced by a good looking popup panel.

Preview of selected document

A fancy new preview panel is added. Click on the dots beside a document and view a fully scrollable preview of the document.

Follow a document

Not only whole sites can be followed. Click in the preview panel on follow to follow individual documents.

Search in document library

A search box has been added to the document library. Without a page reload or page redirect the search will be executed directly on the document library!

Uploading document

The process of uploading documents is changed and works a lot faster. Just drag the document(s) onto the document library!

Saving views
Small order and filter changes to active views can be saved very quickly. Just change the view and click on the save this view link.

1. Change the sort order of a view.


2. Click on the save this view link.
3. Click on Save to save the changes to the current view (all documents) or change the name of the view to create a new view.

Switching views

Changing views changed a little bit in a good way. The first three views will be displayed above the documents and by clicking on the name the view will be loaded. Clicking on the dots will collapse a menu which shows all the remaining views, nice and simple.

SharePoint 2013 has Nintex Workflow 2013 App

Nintex Workflow is a powerful tool which lets you visual design workflow within SharePoint. Up until now Nintex Workflow needed to be installed on the SharePoint servers itself, it was not possible to use it with SharePoint Online. In the new SharePoint Online version (part of Office 365) Nintex Workflow is available in the SharePoint App Store!

In this post I will walk through an installation and give a demo using Nintex Workflow Platform Preview on a SharePoint Online site.The Nintex Workflow Platform Preview has less features  in comparison to the on premise version, but I expect that this will change over time.

Install the Nintex Workflow Platform Preview

1. Open the app store.
2. Search for Nintex Workflow Platform Preview.

3. Click on the app and add it.

4. Return to the site.

5. Click on Trust It.

Use Nintex Workflow Plathform Preview

In this demo we are going to build a Nintex Workflow to

1. Open a document library and create a new Single Line of text column named First Letters.
2. Click on Nintes Workflow in the ribbon.

2. Click on Design a workflow.

3. Click on Variable and add a text variable named FirstLettersOfName.

4. Add the Extract Substring from Start of String action to the flow.

5. Set the action as shown below

6. Add the Set Field in Current Item Action and set the action as shown below.

7. Set the workflow settings as shown below and publish the workflow.


8. Upload a document to the library and check out the result.

Result

Display related items within a page layout

An intranet resolves around its content and the findability of the content. Providing the user with useful information is vital for a good intranet. An example of providing useful information is to show related new articles besides a news article.

Solution

The solution consist of three parts the content type, page layout and a content query web part (CQWP).

Content type configuration

1. Create a new content type with Article page as parent.
2. Create a term set named news categories.
3. Add a few terms.
4. Add a new column named News Category linked to the news categories term set.

Page layout and CQWP configuration

1. Open the site in SharePoint Designer
2. Create the news page layout
3. Link the news content type to the page layout.
4. Add a web part zone
5. Add a CQWP to a web part zone.
6. Configure the CQWP to show the news items.
7. Configure the Additional filters.


6. Show items when: News catergory is equal to [PageFieldValue: News Category].

[PageFieldValue: News Category]

7. Or Title is not equal to [PageFiedlValue: Title].

[PageFiedlValue: Title]

7. Add the News Catergory column to the page layout.
8. Save the page layout and enjoy the result.

Result

Display department members with people search

Do you need a dynamic overview with all the members of a department? With the People Search Core Web Part this is easily accomplished, even without changing any XSLT!

Solution

1. Add a People Search Core Results Web Part to a page.
2. Edit the Web Part.
3. Select under Results Query Options, by Cross-Web Part query ID; Query 2
4. Enter the query in Fixed Keyword, for example department:IWS or Department:ICT.

5. Navigate to the Enterprise Search Centers default results page.
6. If needed create temporarily a Enterprise Search Center.
7. Edit the Results page (http://[root]/sites/search/pages/results.aspx) and set the People Matches Web Part in edit mode.
8. Open the Display properties of the People Matches Web Part.


9. Deselect Use Location Visualization.
10. Open the XSLT Editor.
11. Copy and save the XSLT in a local XSLT file.
12. Navigate to the People Search Core Results Web Part.
13. Open the Display properties of the People Matches Web Part.
14.  Deselect Use Location Visualization.
15. Copy and save the XSLT from the local XSLT file.
16. Safe the changes and enjoy the result.

Result

Presence and user profile URL with XSLT

When showing a person field, the field does not show the presence and there is no link to the users My site. With XSLT it is possible to show the prensence of the user and create a URL to the users My Site.

Solution showing the presence 

1. Open the ItemStyle.xsl in SharePoint Designer.
2. Add the reference to the header of the XSLT file, if the reference is missing.

xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"

3.  Add the following code to the XSLT template.

<xsl:variable name="UserEmail">
   <xsl:value-of select="ddwrt:UserLookup(string(@UserField) ,'EMail')" />
</xsl:variable>

<img width="12" height="12" id="{generate-id(@UserField)}" onload="IMNRC('{$UserEmail}');" alt="UserPresence" src="/_layouts/images/blank.gif" border="0" complete="complete" Sortable="1" valign="middle"/>

4. Change the @UserField to your user field.

Solution creating the user profile URL

1. Open the ItemStyle.xsl in SharePoint Designer.
2. Add the reference to the header of the XSLT file, if the reference is missing.

xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"

3. Add the following code to the XSLT template.

<xsl:variable name="UserFieldLogin">
   <xsl:value-of select="ddwrt:UserLookup(string(@UserField) ,'Login')" />
</xsl:variable>

<a href="https://my.macaw.nl/Person.aspx?accountname={$UserFieldLogin}"> 
<xsl:value-of select="@UserField"/></a>

4. Change the @UserField to your user field.
5. Change the My Site example URL to your My Site URL.

<a href="https://my.macaw.nl/Person.aspx?accountname={$UserFieldLogin}">


Result

Remove HTML markup in Content Query Web Part

Issue
When showing a multi line or text column with Rich text or Enhanced rich text all the supporting HTML tags will be visible in the result. The tags make the result unreadable for end users.

With XSLT it is possible to remove the tags and make the result clean and readable. All the markups will be removed, also text markups.

Solution

1. Open the ItemStyle.xsl in SharePoint designer.
2. Make a the new removeMarkUp template.

<xsl:template name="removeMarkup">
   <xsl:param name="string" />
   <xsl:choose>
   <xsl:when test="contains($string, '&lt;')">
      <xsl:variable name="nextString">
	<xsl:call-template name="removeMarkup">
	   <xsl:with-param name="string" select="substring-after($string, '&gt;')" />
	</xsl:call-template>
      </xsl:variable>
         <xsl:value-of select="concat(substring-before($string, '&lt;'), $nextString)" />
   </xsl:when>
   <xsl:otherwise>
      <xsl:value-of select="$string" />
   </xsl:otherwise>
   </xsl:choose>		
</xsl:template>

3. Add the cleanBody variable to the template which renders the content query.

<xsl:variable name="cleanBody">
   <xsl:call-template name="removeMarkup">
      <xsl:with-param name="string" select="@Body"/>
   </xsl:call-template>
</xsl:variable>

4. Show the clean body with this code.

<xsl:value-of select="$cleanBody" />

5. All the HTML markup is removed!