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>