Hi All
I have a list, when user creates a new item I am creating new term set by calling below code on PreSave :
function CreateTerm(key, value)
{
try{
var dfdZ = $.Deferred();
if (iscreated )
{
iscreated = false;
var context = SP.ClientContext.get_current();
//defines current Taxonomy Session
var taxSession = SP.Taxonomy.TaxonomySession.getTaxonomySession(context);
//Term Stores
var termStores = taxSession.get_termStores();
//get the Termstore by Termstore name
var termStore = termStores.getByName("Taxonomy_bJik8sNfJ/Yz3Z2wP+SPHg==");
var guid= key;
var termname = value;
var termSet = termStore.getTermSet(guid);
var newguide =CreateGuid() ;
var newTerm = termSet.createTerm( termname, 1033, newguide);
context.load(newTerm);
context.executeQueryAsync(function () {
iscreated = true;
dfdZ.resolve(iscreated);
}, function (sender, args) {
console.log(value + " termname already exist " + args.get_message());
iscreated = true;
dfdZ.resolve(iscreated);
});
return dfdZ.promise();
}
else
{
setTimeout(function(){
CreateTerm(key, value)
}, 2000);
}
}
catch(error)
{
console.log('Error: '+error);
}
}
function CreateGuid() {
function _p8(s) {
var p = (Math.random().toString(16)+"000000000").substr(2,8);
return s ? "-" + p.substr(0,4) + "-" + p.substr(4,4) : p ;
}
return _p8() + _p8(true) + _p8(true) + _p8();
}And when user edits the item, I need to edit the display name of term set dynamically. I am unable to figure out how this can be done.
Please help.
Thanks in Advance, Jiniv Thakkar