Hi All,
I'm working on SharePoint 2010.
I have a requirement where in I need to create a site and apply a particular master page to the newly created site usingECMA Script.
The site gets created but while applying the master page it gives me an error stating the method 'set_masterUrl' is not defined.
Here is my code:
$(document).ready(function () {
ExecuteOrDelayUntilScriptLoaded(createSite, "sp.js"); //This is used to ensure until sp.js is loaded, createSite will not be executed.
});
function createSite() {
var context = SP.ClientContext.get_current();
var collWeb = context.get_web().get_webs();
var webCreationInfo = new SP.WebCreationInformation();
webCreationInfo.set_title('TestSite');
webCreationInfo.set_description('Description of new Web site...');
webCreationInfo.set_language(1033);
webCreationInfo.set_webTemplate('STS#0');
webCreationInfo.set_url('TestSite');
webCreationInfo.set_useSamePermissionsAsParentSite(false);
var oNewWebsite = collWeb.add(webCreationInfo);
context.load(oNewWebsite);
context.executeQueryAsync(Onsuccess, onfail);
function Onsuccess() {
dummy(context, oNewWebsite);
}
function onfail(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
}
function dummy(context,oNewWebsite)
{
var strMasterPageUrl = '/_catalogs/masterpage/Test.master';
oNewWebsite.set_masterUrl(strMasterPageUrl);
oNewWebsite.set_customMasterUrl(strMasterPageUrl);
oNewWebsite.update();
context.executeQueryAsync(Onsuccess1, onfail1);
function Onsuccess1() {
alert("Done");
}
function onfail1(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
}
Please help.
Thanks,
Sachin