12/19/2014

Minimal Download Strategy and window.setTimeout issue

Sometimes developers from Microsoft create mysterious things...
In two words the issue with setTimeout looks like that.

11/29/2014

Check if list is switched to quick edit mode

In the last project I was working on, I've stucked in the problem that SharePoint Client Side Object Model and javascript variables do not contain any information about the list mode: view or quick edit. And Google keeps silence about the way to get it.
So I've analyzed a mark-up and here are some ways to handle the switch to quick edit mode.

11/27/2014

Using SharePoint Property Bags in javascript code


SharePoint Property Bag allows to store configurations settings at different levels of the SharePoint hierarchy outside of the application itself. Property bag is basically a hash table of key-value pair options.
I'll show how to use Property Bag of a SPWeb object.

11/25/2014

"Open with Explorer" and "Upload Multiple Documents" links availability check

When you create custom UI for SharePoint libraries you probably may need to create your own "Open with Explorer" and "Upload Multiple Documents" (the second link and functionality is available only in SharePoint 2010, not 2013) links. There are rules when these links are visible and operations are enabled: it should be IE and even not any version of it. You can search the rules and write your own code or use javascript function that is written by Microsoft and used in out-of-the-box link. It's named SupportsNavigateHttpFolder
You can use it something like that on server side:

ScriptManager.RegisterStartupScript(this, this.GetType(), "CheckOpenInExplorerAvailability",  
@"<script type='text/javascript'>  
var displayOpenInExp = SupportsNavigateHttpFolder() ? 'block' : 'none';   
var elOpenInExp = document.getElementById('" + controlId + @"');   
elOpenInExp.style.display = displayOpenInExp;  
</script>", false);  
or on the client (here I'm using jquery):
$('#' + controlId)[(SupportsNavigateHttpFolder() ? 'show' : 'hide']();
Have fun!