Category Archives: SharePoint 2013

SharePoint 2013 App Store

In my session at today’s Minnesota SharePoint User Group (MNSPUG) we had a question about the SharePoint App Store and if there was a feed available so that folks could keep up on what’s out there and when new apps are added.

The short answer appears to be No. At least for now.

For starters the SharePoint App Store can be accessed here to browse apps online:
http://office.microsoft.com/en-us/store/apps-for-sharepoint-FX102804987.aspx 

The closest we’ve got to a ‘feed’ is the New Apps for SharePoint section on this page. At the bottom of the page we’ve got categories to work with, but we’re likely better off going to search and using the search refiners, which should produce the same results. 

For search you can start here:
http://office.microsoft.com/en-us/store/results.aspx?qu=sharepoint&avg=osu150

Each of the apps has a Released date. Maybe Microsoft can add a sort based on that field to help us find new items.

We’ll see. There aren’t that many apps listed yet, but hopefully they’ll be added on a regular basis going forward as the 2013 platform adoption increases.

JS Link for SharePoint 2013 Web Parts–A Quick Functional Primer

JS Link is a new web part property in many SharePoint 2013 web parts.  It allows users and developers to create Client-Side Rendering (CSR) solutions within SharePoint 2013.  In other words, it allows alternate formatting, data and functionality to be manipulated within a web part.  It is one approach that will help replace the data view web part (DVWP) functionality that was used in SharePoint 2010 and SharePoint Designer 2010.

For example, CSR scenarios can edit how specific fields are displayed, how whole web parts are formatted and what functionality is available.  And these are just a few simple examples.  There is a lot of potential for what can be done.  My session at SPC12 just scratched the surface while others dug much deeper.

Something to note is that using JS Link to implement CSR functionality is easy and reversible.  If you don’t like what it’s doing to your web part you can easily change the JS Link property back (blank it out) and your web part will go back to it’s default format.

The CSR approach is more developer-focused than power user-focused.  There are, however, a few simple things that can be done that I think will be accessible to power-users that have some comfort level with code, specifically JavaScript, HTML and CSS.

So, here are the main components you need to make CSR work with out-of-box web parts – nothing fancy – using JS Link in SharePoint 2013:

  • Create a JavaScript override file
  • Upload the JavaScript file to the Master Page Gallery
    • Set the content type and properties of the file in the Master Page Gallery
  • Set the JS Link property of the web part to point to the JavaScript file

Sounds easy enough, but there are a few details to sort out to get everything synced up.  Additional details for each step are listed below:

Create the JavaScript file
In these examples, JavaScript is being used to override different things – how data is displayed and what content is displayed.  For starters we’ll override a specific field in a view.

During my session at the SharePoint Conference (SPC12) I used a few simple examples that are a good starting point.  EXAMPLE JS FILES

In the first example, we get everything in place and make sure that it’s working.  We start with a standard view (AllItems) that shows text fields, and then use the JS Link functionality to override a single column – displaying different text than came with the view.  We are replacing whatever the ‘MoreText’ column contained with the word ‘Animal’.

image

As the notes in the sample script mention, the Fields override works specifically with individual fields.  You can specify a single field, or multiple fields.  For each field (column) override, you need to identify the field being overridden and the replacement value.

When identifying the field name, take note that you need to use the internal name for the column, which may not be the same name that is displayed.  In some cases this is true, but not all.  See my post on finding the internal column name.

The ‘View’ component of the command is in reference to the type of template being overridden – in our case the view.  There are also options for the NewItem, EditItem and DisplayItem forms, but we won’t cover them in this article.

The last piece of the command for each field is the override value for the field.  This can be a static value – as in the first example – a variable, or HTML and the value, allowing you to style the value.  You can also call a function within the script to do more complicated logic – such as conditional formatting – but for the field.

Note: The following example code is shown with the Before and After output of the sample web part.  The changes will not go into effect until you’ve put all the pieces in place – the steps which are listed after the sample images.

Example 1:  Uses a static value to override the field value.  ‘Animal’ will replace the ‘MoreText’ field value for each list item in the view.

image

Before:

image

After:

image

Example 2:  Displays the true value of the MoreText field, but formats it (bold) by wrapping it in an HTML tag.

image

Before:

image

After:

image

Example 3:  Calls a function that formats the value that overrides the field data.  In this case it uses a conditional to determine what data is displayed.  This could just as easily be used to implement conditional formatting for the field by keeping the field data as in Example 2, but formatting it differently using HTML tagging.

image

image

Before:

image

After:

image

Example 4:  Uses a different override.  This example uses the Item override instead of the Field override.  Using the Item completely overrides the web part and requires the Header and Footer overrides as well.  In the example here, the data is displayed in an HTML list where the open tag is in the header and the closing tag is in the footer.  Each item is then an item in the list.

image

image

Before:

image

After:

image

One other note on the code.  We aren’t getting into details with these settings, but a few of the sample scripts also include settings for BaseViewID and ListTemplateType.  These settings are not required, but if you are using JS Link on a page that has more than one view, these properties control which web parts are affected by the JavaScript code.

BaseViewID is the view ID for the list with 1 being the AllItems view.

ListTemplateType is the ID for the type of list template is used such as Links List, Task List, Custom List, etc.  A list of these types in 2013 can be found here:
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.client.listtemplatetype(v=office.15).aspx

Upload it to the Master Page Gallery

The script files need to be uploaded to a place where they can be accessed by the web part.  Depending on what version of SharePoint you’re using and what your scope is, you will need to determine the best location for the scripts.  In our case we used Office 365 for a test bed and only want to use the scripts within our site collection, so we are uploading the files to the Master Page Gallery.

As each file is uploaded, the content type of the file will need to be changed to ‘JavaScript Display Template’ and the required fields will need to be completed.

In our examples, the Target Control Type is ‘View’.

The Standalone value is ‘Override’.

And the Target Scope is the relative URL of the site collection we’re customizing in the format: ‘/sites/d1’.

image

For our example, upload each of the 4 sample files so that you can see the different examples at work.

Add the JS Link property that points to the JS file

Finally, edit the web part properties you are trying to edit.  This may be web parts on a web part page, or a web part on a standard view page.  Edit the page, then the web part.  Expand the Miscellaneous section and edit the JS Link property using the following sample format to point to the location of the JavaScript file you are using for the CSR override:

~site/_catalogs/masterpage/csr_overridable_demo1.js

Save your changes.  If everything is working, the changes should be immediately visible.  If you still need to edit the JavaScript to match your specific column or example, edit the file using SharePoint Designer.

Edit the files using SharePoint Designer 2013

Developers have a number of code editing tools at their disposal and can use Visual Studio or others.  Non-developers can use SharePoint Designer 2013 to view and edit the JavaScript once it has been uploaded to the site.

If you haven’t already edited the files to match your specific list column names, start SharePoint Designer and open the site collection where you are doing your testing.

From SPD you can edit and save your JavaScript files live.  After you make a change to the JavaScript file, refresh the browser page and your changes should be reflected – assuming everything is correct.  Smile

Wrap-up

Sorry for such a short and unpolished post – there is a LOT more to talk about regarding JS Link and SharePoint 2013 –  but I wanted to get this out for people that attended my #SPC064 session at #SPC12 or who started hearing the rumblings about JS Link this week while at the conference. Hopefully this allows you to get started playing around with the power of JS Link.

Lots more to come!

Notes:

  • JS Link is not only used in web parts, but can also be set and used when creating custom apps, etc.  This post is just covering the specific example when using the web part property.
  • Be sure to take a look at the HTML that is produced by the page once you have your CSR in place.  Some approaches in the CSR may not jive well with the existing page code. You  want to avoid conflicting tags, etc.
  • JS Link override will not work if the form has been edited in SPD.

Finding Internal Names for SharePoint List Columns

The average user usually doesn’t need to care about ‘internal’ naming on SharePoint lists.  They just need to work.  But as you start to delve into some customization approaches, trying to piece some details together behind the scenes a bit, you may need to know internal names. 

What are ‘internal’ names?  They are one of the IDs used by the SharePoint system (other than GUIDs) to refer to columns, fields, etc. They don’t necessarily align perfectly with the user friendly field name that users see.

One instance where someone might need to know the internal name is when dealing with the client-side rendering (CSR) functionality introduced in the 2013 platform.  Overriding specific columns requires the internal name. 

Finding the internal name thankfully is pretty straightforward.  You can find it by going to the List Settings and clicking on the column name you are looking for.  The URL will show the internal name at the end of the string:

https://tsdemo13.sharepoint.com/sites/d1/_layouts/15/FldEdit.aspx?List=%7B81E61C92%2DED5A%2D4BE3%2DBA09%2D821C0343DC23%7D&Field=MoreText

In this example, the internal name of the field is ‘MoreText’.  You can see it there at the end as part of the ‘Field=MoreText’. 

Kudos to Raymond for figuring this out while we were digging into CSR…  Smile

SharePoint 2013 – List / Library / App Naming

Just a quick tidbit about naming the apps, lists, libraries, etc. that you create in your SharePoint site. 

As it did in 2010, SharePoint 2013 adds the ‘%20’ string to your URL if you put a space in your list name. For example, if you create a list called “My Cool List”, the URL will end up looking like:

/Lists/My%20Cool%List/viewname.aspx

It’s not a terrible thing, but it can be irritating in some scenarios. 

The easy way to get around this is to follow a best practice of naming without spaces.  You can then change the list name after the fact without the URL changing. 

  1. Create the list, when asked for the list name, use no spaces: “MyCoolList”
  2. The list will be created and the URL will be nice and neat: /Lists/MyCoolList/viewname.aspx
  3. The list title will show up as “MyCoolList” – again, not a horrible thing in itself, but not great UX either. 
  4. Go to List Settings
  5. Use the List name, description and navigation link to change the name to a more readable “My Cool List”
  6. The URL will remain the same, but the readable list title is now more user friendly. 

SharePoint 2013 – Promoted Links App

The Promoted Links app.  It’s that new control you’re seeing on the new SharePoint 2013 site you just spun up.  The ‘not-Metro-like’ tiles that have a quasi-active tile functionality.   

image

Actually, the specific implementation of the web part shown above is a feature turned on for new sites that can be removed, but let’s get back to Promoted Links.

One other note on the image above – note the second icon – this is what the control does when the individual buttons are hovered over.  A simple animation allows a longer description to be displayed. 

You can add your own control by adding the new app (aka: List) to the site.

  1. Go to Site Contents and click ‘add an app’ or just use the Settings menu item and select ‘add and app’
  2. Within the list of apps that are available, select ‘Promoted Links’
    image

    If you want more App Details, you can check that out – but there’s not a ton more… Smile

    image

  3. You can give your list a name, or click ‘Advanced Options’ to add a name and description.  (The description can also be added later).  Then click ‘Create’.
    Note: SharePoint 2013 still adds the %20 to the URL of your list if you put a space in the name.
  4. Once the list is created, you can add items to it.  The ribbon is likely the easiest way to add new items.   While the Tiles view is the default and one you’ll most often see on a page, the All Promoted Links view is where you have access to the ‘new item’ link in the page – similar to other lists. 
    image

A few notes on the fields that are available:

  • The Launch Behavior option is similar to the ‘target’ property for HTML links and allows you to choose how you’d like the link to launch: as a modal window, in a new browser tab, or right in the same page you are currently browsing in. 
  • The order is a weighted field that allows you to manually sort your tiles – lowest number first.  If you leave the field blank, they are also shown first. 
    Note: The Tiles view is not a view that can be edited in the browser. 

Another note – the Tiles view of the web part does not wrap.  If you have more tiles than can be displayed within the browsers width (which it will adjust to), you get a ‘Previous / Next’ button set:
image

image

So, another useful tool in our toolbox for building out SharePoint 2013 sites.  Time will tell what folks come up with for best practices, etc. 

SharePoint 2013 – Enabling Design Manager

Design Manager is a new feature in SharePoint 2013 that puts some structure around management of branding and styling SharePoint sites and pages.  It is only available on SharePoint Server and only with Publishing sites, or on sites where publishing features have been enabled. 

With Office 365, you will need a level that has publishing enabled. 

If you’re starting from a publishing site, it’s pretty easy to access.  You can just click the Settings menu item and the Design Manager is available. 

image

You can also access it via the Site Settings page under Look and Feel. 

image

If, however, you’re starting from a site that is not a publishing template – like a Team Site, you need to turn a few things on.  Nothing difficult, but a little confusing to some because you have to activate more than one feature and while you’re in the middle state it may not be entirely intuitive.

The Team Site does not show the Design Manager in either the Settings dropdown or the Site Settings page.  But you do have a quick link to the ‘Look’ / Theming feature. 

image

image

So, to get things enabled, you need to:

  1. Turn on the Site Collection Feature
    1. Site Settings
    2. Site Collection Features under Site Collection Administration
    3. Activate –> SharePoint Server Publishing Infrastructure
    4. Site Settings page now displays like:
      image
  2. Turn on the Site Feature
    1. Site Settings
    2. Manage Site Features under Site Actions
    3. Activate –> SharePoint Server Publishing
    4. The Settings menu dropdown now changes to:
      image

Now everything is as you would expect it. 

GOTCHA NOTE: If, however, you activate the site collection feature, but NOT the site feature, you’ll be able to access Design Manager via the Site Settings page, but NOT the Settings dropdown menu. 

Again, not a huge deal, but something that may be a little confusing. 

SPC12 Keynote Notes

Nice little keynote this morning to officially kick off the conference.  They did a nice job, but nothing earth-shattering.  I did like the intro graphics that were reminiscent of the Game of Thrones (HBO) intro sequence.  Smile 

A few tidbits that did get my attention during the session:

  • No more 3-year product cycle.  New features, fixes and bits will be expected every 90 days.  Thanks to the focus on online servers/services.  On premises and private clouds will still be able to receive the updates as well. 
  • Check out the Yammer web parts… they’re doing the ‘crawl, walk, run’ thing.  Good to get started sooner rather than later. 
  • The cool task management stuff we’ve seen and heard of in SharePoint does extend into Outlook.  Now we need Outlook on the Surface RT. 
  • Really great news hearing about the way data is managed for document libraries and versions.  Only storing diffs now – a LOT more efficient. 
  • Oh yea – Yammer is INCLUDED with your Office365 subscriptions.  Nice. 

Oh yea – I also liked the TechNet email that I got DURING the keynote – that RTM bits for SharePoint Server 2013 are now available for download.  Nice timing. 

Someone should go clean Dreamweaver up after that bus ran over it… 

The Microsoft SharePoint Conference 2012 (SPC12)

And so it begins.  The big public outing of SharePoint 2013 and all of its supporting cast.  SPC has returned to the Mandalay Bay Conference Center for another week of sessions, labs, exams, networking and partying. Lots of great sessions and gatherings in store for all who can be here.  If you hadn’t already heard, the attendee party will be a concert by Bon Jovi and crew at the Mandalay’s beach area.  Beyond that, there are any number of gatherings -  public or invite only – happening every night starting tonight with the reception and SharePint (Eye Candy 8:00).

I’m lucky enough to be able to present this year – doing a session in of all areas, the Developer track (more on that in the session post coming in a few days).  We’ll be talking about Customizing Sites and Pages with SharePoint 2013  (SPC064). I’ll have a post specifically about that session with all the supporting materials, etc. coming out closer to the session time.  Session will be Wednesday at 3:15-4:30.

SPC12

Until then I’m looking forward to seeing all the SharePoint community folks as they continue to roll into town.  More to come…