Quantcast
Channel: SharePoint 2013 - Development and Programming forum
Viewing all articles
Browse latest Browse all 7589

javascript runs only in edit mode in script editor

$
0
0

HI,

I am using script editor to add javascript and jquery to to access the user profile metadata and add list item in list by calling rest api.

The below script runs in only in edit mode.

I do not know what is wrong with it.

Thanks for your help in advance.

<script type="text/javascript" src='https://apps-emea.collaboration.intranet.commerzbank.com/sites/CMIB/JavaScript/jquery.min.js'></script>
<script type="text/javascript" src="/_layouts/15/SP.js"></script>
<script type="text/javascript" src="/_layouts/15/sp.runtime.js"></script>
<script type="text/javascript" src="/_layouts/15/SP.UserProfiles.js"></script>
<script type="text/javascript" language="javascript" >
//SP.SOD.executeOrDelayUntilScriptLoaded(getUserProperties, 'SP.UserProfiles.js');
SP.SOD.loadMultiple(['sp.js', 'sp.runtime.js','SP.UserProfiles.js','jquery.min.js'], getUserProperties);
var userProfileProperties;
var subCostCentre;
function getUserProperties() {
var clientContext = new SP.ClientContext.get_current();
var peopleManager = new SP.UserProfiles.PeopleManager(clientContext);
userProfileProperties = peopleManager.getMyProperties();
clientContext.load(userProfileProperties);
clientContext.executeQueryAsync(onRequestSuccess, onRequestFail);
}
function onRequestSuccess() {
var listName = "CostCentre";
//document.getElementById("div2").innerHTML = userProfileProperties.get_userProfileProperties()['Cost-Centre'];
var costCentre = userProfileProperties.get_userProfileProperties()['Cost-Centre'];
subCostCentre = (userProfileProperties.get_userProfileProperties()['Cost-Centre']).substring(0,5);
var call = $.ajax({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/Web/Lists/GetByTitle('"+listName+"')/items?$select=Title,SubCostCentre&$filter=Title eq '"+costCentre+"'",
type: "GET",
dataType: "json",
headers: {
Accept: "application/json;odata=verbose"
}
});
call.done(function (data,textStatus, jqXHR)
{
if(data.d.results.length > 0)
{
//alert("success");
}
else
{
var newItemTitle = costCentre
var itemType = GetItemTypeForListName(listName);
 var item = {
        "__metadata": { "type": itemType },
        "Title": newItemTitle,
  "SubCostCentre":subCostCentre
    };
 $.ajax({
        url: _spPageContextInfo.siteAbsoluteUrl + "/_api/web/lists/getbytitle('" + listName + "')/items",
        type: "POST",
        contentType: "application/json;odata=verbose",
        data: JSON.stringify(item),
        headers: {
            "Accept": "application/json;odata=verbose",
            "X-RequestDigest": $("#__REQUESTDIGEST").val()
        },
        success: function (data) {
           // alert("success");
        },
        error: function (data) {
           // alert("fail");
        }
    });

}
});
call.fail(function (jqXHR,textStatus,errorThrown)
{
alert("Error retrieving Tasks: " + jqXHR.responseText);
});
}

function onQueryFailed(sender, args) {
    alert('Request failed. ' + args.get_message() +
        '\n' + args.get_stackTrace());
}
function GetItemTypeForListName(name) {
    return "SP.Data." + name.charAt(0).toUpperCase() + name.split(" ").join("").slice(1) + "ListItem";
}

function onRequestFail(sender, args) { alert( args.get_message());}
</script>

PreferredName <div  id="div2"></div>


Viewing all articles
Browse latest Browse all 7589

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>