SharePoint shortcuts and useful Javascript variables/functions

Copied from :

1. _spUserId (Variable)

This variable gives the ID of the logged in user. For an anonymous user, this variable will be empty.

var uid = _spUserId;
You can test this variable in the address bar of your browser. Try

You will see an alert message with the ID of the logged in user.

2. JSRequest (Object)

Using this JSRequest object, we can get the querystring, pathname and filename. Before using any of these properties, you should call JSRequest.EnsureSetup();

Ex: page url is

To get a querystring value

var q = JSRequest.QueryString[“qid”]; // q = 15
Similarly, you can use

var f = JSRequest.FileName; // current page name
var p = JSRequest.PathName; // server relative url
3. GetUrlKeyValue(parameter, noDecode, url) (Method)

GetUrlKeyValue() is a javascript function using which we can get the Query string parameter either from url in the browser or a url that we specify.

parameter(string): query string parameter from the url.

noDecode(bool): specifies whether the value has to be encoded or not. If false value is decoded, else returned as it is.(Optional)

url(string): the url from which Query string values are to be retrieved.(Optional)


alert(GetUrlKeyValue(‘a’, false, ‘’));
The above statement will return the value ‘te st’. Here we are specifying our own url.

alert(GetUrlKeyValue(‘a’, false));
The above statement will look for a query string variable ‘a’ in the browser url, and returns the decoded value.

The above statement will look for a query string variable ‘a’ in the browser url.

4. _spPageContextInfo (Object)

_spPageContextInfo object has several useful properties, some are

a. webServerRelativeUrl (for current web)
b. siteServerRelativeUrl (current site collection url)
c. webLanguage (for localization)
d. currentLanguage (for localization again)
e. webUIVersion
f. userId (current user id just like _spUserId)
g. alertsEnabled (more for current page if it has any alerts on it)
h. allowSilverlightPrompt (to have that prompt or not on the page)
i. pageItemId
j. pageListId (Guid)

We can get the webServerRelativeUrl simply by saying

var url = _spPageContextInfo.webServerRelativeUrl;
All the remaining object properties can be used in the same way.

5. escapeProperly(str) (Method)

This function returns the URL encoded value of a given string.

var s = escapeProperly(“hello world!!”); //s = “hello%20world%21%21”
6. unescapeProperly(str) (Method)

This function decodes a URL encoded string.

var s = unescapeProperly(“hello%20world%21%21”); //s = “hello world!!”
7. STSHtmlEncode(htmlString) (Method)

This function encodes an html string

var s = STSHtmlEncode(”

sample text

//s = ”

sample text

8. TrimSpaces(str) (Method)

This method trims out the leading and trailing white spaces of a string. It doesn’t remove spaces created by special characters such as ‘\n’, \t’

var s = TrimSpaces(” Hello World!! “); //s = “Hello World!!”
I intentionally put more spaces between ‘Hello’ and ‘World!!’ just to show that this method doesn’t remove any spaces between words.

9. TrimWhiteSpaces(str) (Method)

This method trims out the leading and trailing white spaces of a string. It also removes spaces created by special characters such as ‘\n’, \t’

var s = TrimWhiteSpaces(“\n\nHello World!!\t\t”); //s = “Hello World!!”
10. LoginAsAnother(url, bUseSource)

This method is used to login as different user.(as the name says)

url(string): the url of the page to which the new user has to be sent after login.

bUseSource(boolean): A boolean that indicates that the source will be added to the url, otherwise the source will be the window.location.href. This parameter is optional, default is false.

<a href="#" onclick="javascript:LoginAsAnother('\u002f_layouts\u002fAccessDenied.aspx?loginasanotheruser=true', 0)">Log on as a different user</a>
11. STSPageUrlValidation(url)

This function validates a url if it starts with “http” or “/” or “:” ONLY. It returns the url value back if it is a valid url and an empty value if it is an invalid url. If the url is not valid, an alert message is displayed that says “Invalid page URL:”.

var s = STSPageUrlValidation(""); //s =

var s = STSPageUrlValidation(“”); //s = “”;

var s = STSPageUrlValidation(“”); //s = “”;
Now please don’t ask me what kind of a validation this is.

STSPageUrlValidation(url) in turn calls a method PageUrlValidation(url) and here’s the code for PageUrlValidation method

function PageUrlValidation(url)
if((url.substr(0, 4) == "http") || (url.substr(0, 1) == "/") || (url.indexOf(":") == -1))
return url;
var L_InvalidPageUrl_Text="Invalid page URL: ";
return "";


The provided App differs from another App with the same version and product ID

Copied from :

Just for Quick reference :

Sometimes, you really just want to delete the old one.  But the Object Model doesn’t have objects that go that deep.  Hence there are no way to do this via command-line either.

You need AppInstance to perform an uninstall.  If you can’t get an AppInstance, but the AppPackage is still in your Site Collection, you are pretty much stuck.

Let’s go check out the content database.  Disclaimer: Do this if you are curious.  Also, don’t do this on your production.

SELECT [PackageFingerprint]
  FROM [WSS_CONTENT_DB].[dbo].[AppPackages]

You want to know which Site Collection it is.  So figure out which AppPackage is the one SharePoint can’t delete – by cross-checking the SiteId

PackageFingerprint is an important field that we’ll need in a minute.  It acts like a unique identifier.
IsDownloadInvalidated is probably 0 (meaning it is valid).  You just can’t delete it.

SharePoint has a few nice store procedures.

exec [WSS_CONTENT_DB].[dbo].proc_App_InvalidatePackage
    @PackageFingerprint, @SiteId

-- example
exec [WSS_CONTENT_DB].[dbo].proc_App_InvalidatePackage

This stored procedure will flag the AppPackage as Invalid.  If you do SELECT * FROM AppPackages again, you’ll see it is now IsDownloadInvalidated = 1

So SharePoint now thinks there was something wrong with the download of this package :-)Let’s invoke SharePoint’s auto-immune system and nuke the AppPackage

exec [WSS_CONTENT_DB].[dbo].proc_App_DeleteInvalidatedDownloadApp
    @PackageFingerprint, @SiteId

-- same arguments.  

This one will nuke the AppPackage clean.

You can now go back to PowerShell and redeploy your App.

PS> $App = Import-SPAppPackage -Path <Path> -Site <Url> -Source <Source>
PS> Install-SPApp -Web <Url> -Identity $App


How to add Custom styles in Seattle master page in Sharepoint 2013

For adding cutom styles in seattle master page you have to edit the .html file and there is a proper syntax to add styles.


<!–MS:<style type=”text/css”>–>
    display: none !important; /*as requested by cusomer – hide suite bar links*/
<!–ME: </style>–>


You have to start with <!–MS :  and end with <!–ME

Building SharePoint Add-ins with Kendo UI

Building SharePoint Add-ins with Kendo UI

Creating and configuring a SharePoint 2013 Secure Store Service Application for BCS

Creating and configuring a SharePoint 2013 search service application

Standalone server

Multi Server with Indexing

Creating and configuring a SharePoint 2013 search service application

For Errors :



Creating and configuring SharePoint 2013 reporting services

Powershell for configuring Reporting services in SP mode

Copied from

#This script Configures SQL Server Reporting Services SharePoint mode

write-host -foregroundcolor DarkGray StartTime>> $starttime

Write-Host -ForegroundColor Green “Import the SharePoint PowerShell snappin”
Add-PSSnapin Microsoft.Sharepoint.Powershell –EA 0

Write-Host -ForegroundColor Green “Install SSRS Service and Service Proxy, and start the service”
Write-Host -ForegroundColor Green “>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>”

Write-Host -ForegroundColor Green “Install the Reporting Services Shared Service”

Write-Host -ForegroundColor Green ” Install the Reporting Services Service Proxy”

# Get the ID of the RS Service Instance and start the service
Write-Host -ForegroundColor Green “Start the Reporting Services Service”
$RS = Get-SPServiceInstance | Where {$_.TypeName -eq “SQL Server Reporting Services Service”}
Start-SPServiceInstance -Identity $RS.Id.ToString()

# Wait for the Reporting Services Service to start…
$Status = Get-SPServiceInstance $RS.Id.ToString()
While ($Status.Status -ne “Online”)
Write-Host -ForegroundColor Green “SSRS Service Not Online…Current Status = ” $Status.Status
Start-Sleep -Seconds 2
$Status = Get-SPServiceInstance $RS.Id.ToString()

write-host -foregroundcolor DarkGray StartTime>> $starttime
write-host -foregroundcolor DarkGray $time

Write-Host -ForegroundColor Green “Create a new application pool and Reporting Services service application”
Write-Host -ForegroundColor Green “>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>”
Write-Host -ForegroundColor Green “Create a new application pool”
#!!!! update “-Account” with an existing Managed Service Account
New-SPServiceApplicationPool -Name “Reporting Services” -Account “<domain>\User name>”
$appPool = Get-SPServiceApplicationPool “Reporting Services”

Write-Host -ForegroundColor Green ” Create the Reporting Services Service Application”
#!!!! Update “-DatabaseServer”, an instance of the SQL Server database engine
$rsService = New-SPRSServiceApplication -Name “Reporting Services Application” -ApplicationPool $appPool -DatabaseName “Reporting_Services_Application” -DatabaseServer “<server name>”

Write-Host -ForegroundColor Green “Create the Reporting Services Service Application Proxy”
$rsServiceProxy = New-SPRSServiceApplicationProxy -Name “Reporting Services Application Proxy” -ServiceApplication $rsService

Write-Host -ForegroundColor Green “Associate service application proxy to default web site and grant web applications rights to SSRS application pool”
Write-Host -ForegroundColor Green “>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>”
# Associate the Reporting Services Service Applicatoin Proxy to the default web site…
Get-SPServiceApplicationProxyGroup -default | Add-SPServiceApplicationProxyGroupMember -Member $rsServiceProxy

write-host -foregroundcolor DarkGray StartTime>> $starttime
write-host -foregroundcolor DarkGray $time

Write-Host -ForegroundColor Green “Enable the PowerView and reportserver site features”
Write-Host -ForegroundColor Green “>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>”
#!!!! update “-url” of the site where you want the features enabled
Enable-SPfeature -identity “powerview” -Url http://server/sites/bi
Enable-SPfeature -identity “reportserver” -Url http://server/sites/bi

####To Verify, you can run the following:
#Get-SPServiceApplicationPool | where {$ -like “reporting*”}
Other reference /help

For errors :