Saturday, November 21, 2015

Client-side People Picker control for Sharepoint

$(document).ready(function () {
    SP.SOD.executeFunc('sp.js', 'SP.ClientContext', sharePointReady);
})

function sharePointReady() {
    context = new SP.ClientContext.get_current();
    web = context.get_web();
    getUser().done(function (user) {
        var schema = {};
        schema['PrincipalAccountType'] = 'User,DL,SecGroup,SPGroup';
        schema['SearchPrincipalSource'] = 15;
        schema['ResolvePrincipalSource'] = 15;
        schema['AllowMultipleValues'] = false;
        schema['MaximumEntitySuggestions'] = 50;
        schema['Width'] = '280px';

        var users = new Array(1);
        var defaultUser = new Object();
        defaultUser.AutoFillDisplayText = user.get_title();
        defaultUser.AutoFillKey = user.get_loginName();
        defaultUser.Description = user.get_email();
        defaultUser.DisplayText = user.get_title();
        defaultUser.EntityType = "User";
        defaultUser.IsResolved = true;
        defaultUser.Key = user.get_loginName();
        defaultUser.Resolved = true;
        users[0] = defaultUser;
        SPClientPeoplePicker_InitStandaloneControlWrapper('peoplePickerDiv', users, schema);
    });
}

function getUser() {
    var dfd = $.Deferred(function () {
        user = web.get_currentUser();
        context.load(user);
        context.executeQueryAsync(
            function () {
                dfd.resolve(user);
            }),
            function () {
                dfd.reject(args.get_message());
            };
    });
    return dfd.promise();
}

Thursday, November 12, 2015

JSLink Urls

JSLink URLs and Tokens
When you are constructing your JSLink URL there are a number of tokens you can take advantage of:
  • ~site – reference to the current SharePoint site (or “Web”)
  • ~sitecollection – reference to the current SharePoint site collection (or “Site”)
  • ~layouts – version specific reference to the web application Layouts folder (so it will automatically swap out /_layouts/14 or /_layouts/15 for you)
  • ~sitecollectionlayouts – reference to the layouts folder in the current site collection (e.g. /sites/team/_layouts/15)
  • ~sitelayouts – reference to the layouts folder in the current site (e.g. /sites/teams/subsite/_layouts/15)

Friday, November 6, 2015

Export to Excel using javascript

http://www.c-sharpcorner.com/UploadFile/65794e/export-from-html-table-using-jquery/

Thursday, November 5, 2015

How to get spfielduser value in REST call ?


use below kind of query to get the SPFieldUserValue in REST based call

url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('" + listName + "')/Items?$select=Title,EmployeePhone,LeaveCategory,EmployeeLocation,EmployeeName/Title&$expand=EmployeeName&$filter="+ restQuery,

Monday, November 2, 2015

CRUD Operations using JSOM

Add :- 

function Add() {
    var clientContext = new SP.ClientContext();
    var oWeb = clientContext.get_web();
    var oList = oWeb.get_lists().getByTitle('List1');//Get SPList by Title
    var itemCreateInfo = new SP.ListItemCreationInformation();

    var oListItem = oList.addItem(itemCreateInfo);
    oListItem.set_item('Title', 'Value'); //Title is the field and Value is the value for field
    oListItem.update();

    clientContext.load(oListItem);
    clientContext.executeQueryAsync(Function.createDelegate(this, onQuerySucceeded), Function.createDelegate(this, onQueryFailed));

    //Function when the execution of the query successed
    function onQuerySucceeded(sender, args) {
        alert('Data ADDED successfully');
    };
    //Function to run when the execution falis
    function onQueryFailed(sender, args) {
        alert('Cannot ADD');
    };

};

Update :- 
function Update() {
    var clientContext = new SP.ClientContext();
    var oWeb = clientContext.get_web();
    var oList = oWeb.get_lists().getByTitle('List1');//Get SPList by Title

    var oListItem = oList.getItemById(1);//Get the list item by id
    oListItem.set_item('Title', 'New Value');
    oListItem.update();
    clientContext.executeQueryAsync(Function.createDelegate(this, onQuerySucceeded), Function.createDelegate(this, onQueryFailed));

    //Function when the execution of the query successed
    function onQuerySucceeded(sender, args) {
        alert('Data UPDATED successfully');
    };
    //Function to run when the execution falis
    function onQueryFailed(sender, args) {
        alert('Cannot UPDATE');
    };
};

Delete :-

function Delete() {
    var clientContext = new SP.ClientContext();
    var oWeb = clientContext.get_web();
    var oList = oWeb.get_lists().getByTitle('List1');//Get SPList by Title

    var oListItem = oList.getItemById(1);//Get the list item by id
   oListItem.deleteObject();
    clientContext.executeQueryAsync(Function.createDelegate(this, onQuerySucceeded), Function.createDelegate(this, onQueryFailed));

    //Function when the execution of the query successed
    function onQuerySucceeded(sender, args) {
        alert('Data DELETED successfully');
    };
    //Function to run when the execution falis
    function onQueryFailed(sender, args) {
        alert('Cannot DELETE');
    };
};

Monday, October 5, 2015

Get Field values using CSOM

Using the Javascript Client Object Model, you can get values from a listitem. 

How to use the JSOM is described here Code Project

Title – SP.ListItem.get_item(‘Title‘);

ID – SP.ListItem.get_id();

Url -SP.ListItem.get_item(‘urlfieldname‘).get_url()

Description – SP.ListItem.get_item(‘descriptionfieldname‘).get_description();

Current Version – SP.ListItem.get_item(“_UIVersionString“);

Lookup field – SP.ListItem.get_item(‘LookupFieldName’).get_lookupValue(); // or get_lookupID();

Created By – SP.ListItem.get_item(“Author“).get_lookupValue();

Modified by – SP.ListItem.get_item(“Editor“).get_lookupValue();

Choice Field – SP.ListItem.get_item(‘ChoiceFieldName‘);

Created Date – SP.ListItem.get_item(“Created“);

Modified Date – SP.ListItem.get_item(“Modified“); -> case sensitive does not work with ‘modified’

File  – SP.ListItem.get_file();

File Versions -  File.get_versions();.

Content Type – SP.ListItem.get_contentType();

Parent List – SP.ListItem.get_parentList();

Note:  (‘LookupFieldName’).get_lookupValue() sometimes returns an array of data, especially when your lookup allows multiple values.
In that case you will need to iterate the array and get each value individually.

 SP.ListItem.get_item(‘LookupFieldName’)[0].get_lookupValue(); - this will get the first item in the array.

For Arrays:


       for(var i = 0; i < oListItem.get_item("LookupFieldName").length; i++)
 {
      alert(oListItem.get_item("LookupFieldName")[i].get_lookupId()); // or get_lookupValue()
 } 

Wednesday, September 30, 2015

Angular js lectures

One of the best video tutorials i have ever seen for angulat js

http://campus.codeschool.com/courses/shaping-up-with-angular-js/level/1/section/1/video/1