SP.service nested Example
--------------------------------
var RequestId = 0;
$(document).ready(function(){
SP.SOD.executeFunc('sp.js', SP.ClientContext, fn_getModuleCategoriesMatrix);
var loaded = 0;
function fn_LoadNewContext() {
context = new SP.ClientContext("/sites/coo/");
web = context.get_web();
CurrentUserName = $().SPServices.SPGetCurrentUser({fieldName: "Title",debug: false});
}
//
$(".ms-dlgOverlay").show();
function fn_getModuleCategoriesMatrix()
{
try
{
if(loaded == 0)
{
$().SPServices({
operation: "GetListItems",
async: false,
listName: "BU",
completefunc: function (xModules, moduleStatus)
{
if($(xModules.responseXML).SPFilterNode("z:row").length > 0)
{ var changeBuflag = 0;
$(xModules.responseXML).SPFilterNode("z:row").each(function()
{
var BU = $(this).attr("ows_Title");
var BUId = $(this).attr("ows_ID");
$().SPServices({
operation: "GetListItems",
async: false,
listName: "SubSegment",
CAMLQuery:"<Query><Where><Contains><FieldRef Name='BU' /><Value Type='Text'>"+BU +"</Value></Contains></Where></Query>",
completefunc: function (xCategories, categoriesStatus)
{
if($(xCategories.responseXML).SPFilterNode("z:row").length > 0)
{
$(xCategories.responseXML).SPFilterNode("z:row").each(function(){
var SubSegment = $(this).attr("ows_Title");
var SubSegmentId = $(this).attr("ows_ID");
$().SPServices({
operation: "GetListItems",
async: false,
listName: "Product",
CAMLQuery:"<Query><Where><Contains><FieldRef Name='SubSegment' /><Value Type='Text'>"+SubSegment+"</Value></Contains></Where></Query>",
completefunc: function (xProducts, productsStatus)
{
$(xProducts.responseXML).SPFilterNode("z:row").each(function(){
var Product = $(this).attr("ows_Title");
var ProductId = $(this).attr("ows_ID");
var Configuration = $(this).attr("ows_Configuration");
var ListOfApprovers = $(this).attr("ows_ListOfApprovers").split("#");
var SecondaryApprovers = $(this).attr("ows_SecondaryApprovers").split("#");
var sysListOfApprovers = $(this).attr("ows_ListOfApprovers");
var IsActive = $(this).attr("ows_IsActive");
///////////// For primary Approvers//////////
if(IsActive == 1)
{
var listApprovers="", item=0;
for(item = 1;item < ListOfApprovers.length;item = item+2)
{
if(listApprovers == "")
{
listApprovers += ListOfApprovers[item];
}
else
{
listApprovers += " "+ListOfApprovers[item];
}
}
var approvers = listApprovers.split(" ").join('');
var formattedapprovers= approvers.replace(/'/g, "'");
//////////////////For secondary Approvers ///////////
if(IsActive == 1)
{
var secApprovers="", index=0;
for(index = 1;index < SecondaryApprovers.length;index = index+2)
{
if(secApprovers == "")
{
secApprovers += SecondaryApprovers[index];
}
else
{
secApprovers += " "+SecondaryApprovers[index];
}
}
}
var secondapprs = secApprovers.split(" ").join('');
var formattedsecapprovers= secondapprs.replace(/'/g, "'");
var rowClass="";
if(changeBuflag == 0)
rowClass = "oddRow";
else
rowClass = "evenRow";
var trString= "<tr class='"+rowClass +"'>";
if(BU.trim()!="")
trString= "<tr class='"+rowClass +"' style='border-top:1px #bdbdbd solid;'>";
trString += "<td><nobr>"+BU +"</nobr></td><td><nobr>"+SubSegment +"</nobr></td><td><nobr>"+Product +"</nobr></td><td>"+Configuration +"</td>";
trString += "<td align='center'><input type='checkbox' id='chk_"+BUId+"_"+SubSegmentId+"_"+ProductId+"' productId='"+ ProductId +"' approvers='"+formattedapprovers+"' secapprovers='"+formattedsecapprovers+"'/> </td>";
trString += "<td><nobr>"+listApprovers +"</nobr></td>";
trString += "</tr>";
BU ="";
SubSegment = "";
$("#tblRequestAccessMain").append(trString);
}
});
}
});
});
}
}
});
if(changeBuflag ==0)
{
changeBuflag = 1;
}
else
{
changeBuflag = 0;
}
});
}
}
});
$(".ms-dlgOverlay").hide();
loaded = 1;
}
}
catch(err)
{
$(".ms-dlgOverlay").hide();
}
}
////////////// Creating New Item in Request Master List/////////////
var tblRequestAccessMain= $("#tblRequestAccessMain");
var checkedProducts =[];
var checkedBU = [];
var checkedSubSegments = [];
var checkedApprovers = [];
var checkedProductNames = [];
var checkedConfiguration =[];
var checkedSecApprovers =[];
var itemIndex = 0;
var Reason ="";
var status = "Pending";
function submitrequest(){
Reason = $("#txtReasonForRequestAccess").val();
var tblRequestAccessMain = $("#tblRequestAccessMain");
var rowIndex, row, BU, SubSegment, Product, Configuration;
var itemChecked = false;
checkedProducts =[];
for(rowIndex = 2; rowIndex<tblRequestAccessMain[0].rows.length; rowIndex++)
{
row = tblRequestAccessMain[0].rows[rowIndex];
if(row.cells[0].innerText.trim()!="")
BU = row.cells[0].innerText;
if(row.cells[1].innerText.trim()!="")
SubSegment = row.cells[1].innerText;
Product = row.cells[2].innerText;
Configuration = row.cells[3].innerText;
var cellAccess = row.cells[4];
var chkAccess = cellAccess.children[0];
if(chkAccess.checked==true)
{
itemChecked = true;
checkedProducts.push(chkAccess.getAttribute("productid"));
Product
checkedBU.push(BU);
checkedSubSegments.push(SubSegment);
checkedConfiguration.push(Configuration);
checkedApprovers.push(chkAccess.getAttribute("approvers"));
checkedSecApprovers.push(chkAccess.getAttribute("secapprovers"));
checkedProductNames.push(Product);
}
}
if(itemChecked!=true && Reason!="")
{
$(".ms-dlgOverlay").hide();
alert("Please select atleast one product to send access request.")
return false;
}
if(itemChecked==true && Reason=="")
{
$(".ms-dlgOverlay").hide();
alert("Please specify role, organization, manager, and reason for request.")
return false;
}
if(itemChecked!=true && Reason=="")
{
$(".ms-dlgOverlay").hide();
alert("Please select atleast one product and specify reason to send access request.")
return false;
}
var message ="Access request sent succesfully for:\n";
var errormessage ="Request already pending for the following items,\n";
var count =0;
var bu;
var product;
var subsegment;
var approvers;
var secapprovers
var name;
var configuration;
for(var itemIndex = 0; itemIndex < checkedProducts.length;itemIndex++)
{
bu = checkedBU[itemIndex];
product = checkedProductNames[itemIndex];
subsegment = checkedSubSegments[itemIndex];
configuration = checkedConfiguration[itemIndex];
name;
$().SPServices({
operation: "GetListItems",
async: false,
listName: "poc",
CAMLQuery:"<Query><Where><And><And><And><Eq><FieldRef Name='RequestedBy'/><Value Type='Text'>"+CurrentUserName+"</Value></Eq><Eq><FieldRef Name='Product'/><Value Type='Text'>"+product+"</Value></Eq></And><Eq><FieldRef Name='Configuration'/><Value Type='Text'>"+configuration+"</Value></Eq></And><Eq><FieldRef Name='status'/><Value Type='Text'>"+status+"</Value></Eq></And></Where></Query>",
completefunc: function (xData, Status)
{
if($(xData.responseXML).SPFilterNode("z:row").length>0)
{
errormessage += bu+ "-->"+subsegment+"-->"+product+"-->"+configuration+"\n";
count++;
}
}
});
}
if (count > 0)
{
$(".ms-dlgOverlay").hide();
alert(errormessage);
tblRequestAccessMain;
checkedProducts =[];
checkedBU = [];
checkedSubSegments = [];
checkedApprovers = [];
checkedProductNames = [];
checkedConfiguration =[];
checkedSecApprovers =[];
return false;
}
else {
for(var Index = 0; Index < checkedProducts.length;Index++)
{
bu = checkedBU[Index];
product = checkedProductNames[Index];
subsegment = checkedSubSegments[Index];
approvers = checkedApprovers[Index];
configuration = checkedConfiguration[Index];
secapprovers = checkedSecApprovers[Index];
name;
$().SPServices({
operation: "UpdateListItems",
async: false,
batchCmd: "New",
listName: "poc",
valuepairs: [["BU", bu],["Reason",Reason],["ListofApprovers" , approvers],["SubSegment" , subsegment],["Product" , product],["status" , status],["RequestedBy",CurrentUserName],["Configuration",configuration],["SecondaryApprovers",secapprovers]],
completefunc: function (xData, Status) {
message += bu+ "-->"+subsegment+"-->"+product+"-->"+configuration+"\n";
}
});
}
alert(message);
window.location.href = window.location.href;
}
}
$(".btnRequest").click(function(){
$(".ms-dlgOverlay").show();
//pausecomp(10000);
submitrequest();
});
function pausecomp(millis)
{
var date = new Date();
var curDate = null;
do { curDate = new Date(); }
while(curDate-date < millis);
}
});
--------------------------------
var RequestId = 0;
$(document).ready(function(){
SP.SOD.executeFunc('sp.js', SP.ClientContext, fn_getModuleCategoriesMatrix);
var loaded = 0;
function fn_LoadNewContext() {
context = new SP.ClientContext("/sites/coo/");
web = context.get_web();
CurrentUserName = $().SPServices.SPGetCurrentUser({fieldName: "Title",debug: false});
}
//
$(".ms-dlgOverlay").show();
function fn_getModuleCategoriesMatrix()
{
try
{
if(loaded == 0)
{
$().SPServices({
operation: "GetListItems",
async: false,
listName: "BU",
completefunc: function (xModules, moduleStatus)
{
if($(xModules.responseXML).SPFilterNode("z:row").length > 0)
{ var changeBuflag = 0;
$(xModules.responseXML).SPFilterNode("z:row").each(function()
{
var BU = $(this).attr("ows_Title");
var BUId = $(this).attr("ows_ID");
$().SPServices({
operation: "GetListItems",
async: false,
listName: "SubSegment",
CAMLQuery:"<Query><Where><Contains><FieldRef Name='BU' /><Value Type='Text'>"+BU +"</Value></Contains></Where></Query>",
completefunc: function (xCategories, categoriesStatus)
{
if($(xCategories.responseXML).SPFilterNode("z:row").length > 0)
{
$(xCategories.responseXML).SPFilterNode("z:row").each(function(){
var SubSegment = $(this).attr("ows_Title");
var SubSegmentId = $(this).attr("ows_ID");
$().SPServices({
operation: "GetListItems",
async: false,
listName: "Product",
CAMLQuery:"<Query><Where><Contains><FieldRef Name='SubSegment' /><Value Type='Text'>"+SubSegment+"</Value></Contains></Where></Query>",
completefunc: function (xProducts, productsStatus)
{
$(xProducts.responseXML).SPFilterNode("z:row").each(function(){
var Product = $(this).attr("ows_Title");
var ProductId = $(this).attr("ows_ID");
var Configuration = $(this).attr("ows_Configuration");
var ListOfApprovers = $(this).attr("ows_ListOfApprovers").split("#");
var SecondaryApprovers = $(this).attr("ows_SecondaryApprovers").split("#");
var sysListOfApprovers = $(this).attr("ows_ListOfApprovers");
var IsActive = $(this).attr("ows_IsActive");
///////////// For primary Approvers//////////
if(IsActive == 1)
{
var listApprovers="", item=0;
for(item = 1;item < ListOfApprovers.length;item = item+2)
{
if(listApprovers == "")
{
listApprovers += ListOfApprovers[item];
}
else
{
listApprovers += " "+ListOfApprovers[item];
}
}
var approvers = listApprovers.split(" ").join('');
var formattedapprovers= approvers.replace(/'/g, "'");
//////////////////For secondary Approvers ///////////
if(IsActive == 1)
{
var secApprovers="", index=0;
for(index = 1;index < SecondaryApprovers.length;index = index+2)
{
if(secApprovers == "")
{
secApprovers += SecondaryApprovers[index];
}
else
{
secApprovers += " "+SecondaryApprovers[index];
}
}
}
var secondapprs = secApprovers.split(" ").join('');
var formattedsecapprovers= secondapprs.replace(/'/g, "'");
var rowClass="";
if(changeBuflag == 0)
rowClass = "oddRow";
else
rowClass = "evenRow";
var trString= "<tr class='"+rowClass +"'>";
if(BU.trim()!="")
trString= "<tr class='"+rowClass +"' style='border-top:1px #bdbdbd solid;'>";
trString += "<td><nobr>"+BU +"</nobr></td><td><nobr>"+SubSegment +"</nobr></td><td><nobr>"+Product +"</nobr></td><td>"+Configuration +"</td>";
trString += "<td align='center'><input type='checkbox' id='chk_"+BUId+"_"+SubSegmentId+"_"+ProductId+"' productId='"+ ProductId +"' approvers='"+formattedapprovers+"' secapprovers='"+formattedsecapprovers+"'/> </td>";
trString += "<td><nobr>"+listApprovers +"</nobr></td>";
trString += "</tr>";
BU ="";
SubSegment = "";
$("#tblRequestAccessMain").append(trString);
}
});
}
});
});
}
}
});
if(changeBuflag ==0)
{
changeBuflag = 1;
}
else
{
changeBuflag = 0;
}
});
}
}
});
$(".ms-dlgOverlay").hide();
loaded = 1;
}
}
catch(err)
{
$(".ms-dlgOverlay").hide();
}
}
////////////// Creating New Item in Request Master List/////////////
var tblRequestAccessMain= $("#tblRequestAccessMain");
var checkedProducts =[];
var checkedBU = [];
var checkedSubSegments = [];
var checkedApprovers = [];
var checkedProductNames = [];
var checkedConfiguration =[];
var checkedSecApprovers =[];
var itemIndex = 0;
var Reason ="";
var status = "Pending";
function submitrequest(){
Reason = $("#txtReasonForRequestAccess").val();
var tblRequestAccessMain = $("#tblRequestAccessMain");
var rowIndex, row, BU, SubSegment, Product, Configuration;
var itemChecked = false;
checkedProducts =[];
for(rowIndex = 2; rowIndex<tblRequestAccessMain[0].rows.length; rowIndex++)
{
row = tblRequestAccessMain[0].rows[rowIndex];
if(row.cells[0].innerText.trim()!="")
BU = row.cells[0].innerText;
if(row.cells[1].innerText.trim()!="")
SubSegment = row.cells[1].innerText;
Product = row.cells[2].innerText;
Configuration = row.cells[3].innerText;
var cellAccess = row.cells[4];
var chkAccess = cellAccess.children[0];
if(chkAccess.checked==true)
{
itemChecked = true;
checkedProducts.push(chkAccess.getAttribute("productid"));
Product
checkedBU.push(BU);
checkedSubSegments.push(SubSegment);
checkedConfiguration.push(Configuration);
checkedApprovers.push(chkAccess.getAttribute("approvers"));
checkedSecApprovers.push(chkAccess.getAttribute("secapprovers"));
checkedProductNames.push(Product);
}
}
if(itemChecked!=true && Reason!="")
{
$(".ms-dlgOverlay").hide();
alert("Please select atleast one product to send access request.")
return false;
}
if(itemChecked==true && Reason=="")
{
$(".ms-dlgOverlay").hide();
alert("Please specify role, organization, manager, and reason for request.")
return false;
}
if(itemChecked!=true && Reason=="")
{
$(".ms-dlgOverlay").hide();
alert("Please select atleast one product and specify reason to send access request.")
return false;
}
var message ="Access request sent succesfully for:\n";
var errormessage ="Request already pending for the following items,\n";
var count =0;
var bu;
var product;
var subsegment;
var approvers;
var secapprovers
var name;
var configuration;
for(var itemIndex = 0; itemIndex < checkedProducts.length;itemIndex++)
{
bu = checkedBU[itemIndex];
product = checkedProductNames[itemIndex];
subsegment = checkedSubSegments[itemIndex];
configuration = checkedConfiguration[itemIndex];
name;
$().SPServices({
operation: "GetListItems",
async: false,
listName: "poc",
CAMLQuery:"<Query><Where><And><And><And><Eq><FieldRef Name='RequestedBy'/><Value Type='Text'>"+CurrentUserName+"</Value></Eq><Eq><FieldRef Name='Product'/><Value Type='Text'>"+product+"</Value></Eq></And><Eq><FieldRef Name='Configuration'/><Value Type='Text'>"+configuration+"</Value></Eq></And><Eq><FieldRef Name='status'/><Value Type='Text'>"+status+"</Value></Eq></And></Where></Query>",
completefunc: function (xData, Status)
{
if($(xData.responseXML).SPFilterNode("z:row").length>0)
{
errormessage += bu+ "-->"+subsegment+"-->"+product+"-->"+configuration+"\n";
count++;
}
}
});
}
if (count > 0)
{
$(".ms-dlgOverlay").hide();
alert(errormessage);
tblRequestAccessMain;
checkedProducts =[];
checkedBU = [];
checkedSubSegments = [];
checkedApprovers = [];
checkedProductNames = [];
checkedConfiguration =[];
checkedSecApprovers =[];
return false;
}
else {
for(var Index = 0; Index < checkedProducts.length;Index++)
{
bu = checkedBU[Index];
product = checkedProductNames[Index];
subsegment = checkedSubSegments[Index];
approvers = checkedApprovers[Index];
configuration = checkedConfiguration[Index];
secapprovers = checkedSecApprovers[Index];
name;
$().SPServices({
operation: "UpdateListItems",
async: false,
batchCmd: "New",
listName: "poc",
valuepairs: [["BU", bu],["Reason",Reason],["ListofApprovers" , approvers],["SubSegment" , subsegment],["Product" , product],["status" , status],["RequestedBy",CurrentUserName],["Configuration",configuration],["SecondaryApprovers",secapprovers]],
completefunc: function (xData, Status) {
message += bu+ "-->"+subsegment+"-->"+product+"-->"+configuration+"\n";
}
});
}
alert(message);
window.location.href = window.location.href;
}
}
$(".btnRequest").click(function(){
$(".ms-dlgOverlay").show();
//pausecomp(10000);
submitrequest();
});
function pausecomp(millis)
{
var date = new Date();
var curDate = null;
do { curDate = new Date(); }
while(curDate-date < millis);
}
});
No comments:
Post a Comment