Monday, February 1, 2016

Client-side People Picker control for Sharepoint 2013 Apps

When creating my "Sharepoint Hosted" App for Office365 (15) I had to use the client-side People Picker control in the App Part. There doesn't appear to be much in the way of documentation for this control other than the "How to" MSDN document here:
I wanted to default the control to the current user. From the document I could tell that there was a parameter in the init function that should contain an array of initial PickerEntity objects, but sadly no example of this. The example code simply passed a null where this should be.

SPClientPeoplePicker_InitStandaloneControlWrapper(peoplePickerElementId, null, schema); 


I like to use the jQuery deferred function with the SharePoint asynchronous requests so that I have some control over my code executing in a sequential manner.
Here is a snippet of code that demonstrates how to default the People Picker control to the current user:

$(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();  
}  

REST API - Delete Item

                $.ajax({
                    url: "https://stageteam.effem.com/sites/Premia/_api/web/lists/getbytitle('" + prolist + "')/GetItemById('" + $scope.SelectedId + "')",
                    type: "DELETE",
                    headers: {
                        "accept": "application/json;odata=verbose",
                        "X-RequestDigest": $("#__REQUESTDIGEST").val(),
                        "If-Match": "*"
                    },
                    success: function (data) {
                        alert("Succes");
                    },
                    error: function (data) {
                        alert("Failure");
                    }
                });
            }

Rest Api Update Items

                $.ajax({
                    url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/GetByTitle('Projects')/GetItemById('" + Folder + "')",
                    type: "POST",
                    data: JSON.stringify({
         '__metadata': { 'type': 'SP.Data.ProjectsListItem' },//ProjectsListItem where Projects is list name
                        '{0}': "No"
                    }).replace("{0}", FieldName),
                    contentType: 'application/json;odata=verbose',
                    headers: {
                        "Accept": "application/json;odata=verbose",
                        "X-RequestDigest": $("#__REQUESTDIGEST").val(),
                        "X-HTTP-Method": "MERGE",
                        "If-Match": "*"
                    },
                    success: function (data) {
                        console.log("Item updated successfully!");
                    },
                    error: function (err) {
                        console.log("Error while updating item: " + JSON.stringify(err));
                    }

                });

SharePoint 2013 Rest API Select All



How to fetch list items usng Rest service in Sharepoint 2013
 // get multiple items
    var requestUri = _spPageContextInfo.webAbsoluteUrl + '/_api/Web/Lists/getByTitle(\'Contacts\')/items/' + '?$select=Id,FirstName,Title,Email'
    // execute AJAX request
    var requestHeaders = { 'accept': 'application/json;odata=verbose' };
    $.ajax({
        url: requestUri,
        contentType: 'application/json;odata=verbose',
        headers: requestHeaders,
        success: function (response){
            /* do something on success */ },
        error: function(error)
        { /* do something on fail */ } });

How to redirect New form,Edit form & Display From to new Url in SharePoint 2013


Example:

function PreSaveItem()
{
    var redirectUrl = _spPageContextInfo.siteAbsoluteUrl + "Lists/XXX/DispForm.aspx?ID=1&PrjTitle=" + $("[title^='Project Title']").val();
    WPQ2FormCtx.RedirectInfo.redirectUrl = redirectUrl;
    return true;

}

Wednesday, December 9, 2015

The column name that you entered is already in use or reserved

The column name that you entered is already in use or reserved will come when you create any come in the list.

Click F12

  •  Go to Console Windoe
  • In Console write below code:     g_FieldName={};

Wednesday, November 25, 2015

Rest App for Date field filter and orderby in Sharepoint 2010 2013 2016

var dt="2015-12-01" //YYYY-MM-DD

 _spPageContextInfo.webAbsoluteUrl + "/_api/lists/getbyTitle('Test')/items?$filter=Date lt  '" + dt + "'&$orderby=Date desc&$top=1"