Javascript работает с перерывами на формах Nintex - PullRequest
0 голосов
/ 10 марта 2020

Надеюсь, я могу получить некоторую помощь здесь, у нас есть форма Nintex с некоторыми пользовательскими JS, написанными для предоставления определенных значений. Одним из которых является значение hidQAType и hidQAURL.

В приведенном ниже сценарии иногда происходит сбой, и эти значения будут нулевыми, что означает, что формы будут перенаправлены в список sharepoint, а не в соответствующую форму nintex.

Любая помощь будет принята с благодарностью.

NWF$(window).load(function () {waitDialog = SP.UI.ModalDialog.showWaitScreenWithNoClose('   ', 'Please wait...', 110, 280);

setTimeout(function () {   
waitDialog.close();
    }, 5000); 
 EnableDisableButton();
 NWF$('#'+ActivityID).prop("readonly", true); 
NWF$('#'+ActivityType).prop("readonly", true);
NWF$('#'+ActivityStatus).prop("readonly", true);
NWF$('#'+StatusReason).prop("readonly", true);
NWF$('#'+CRN).prop("readonly", true);
NWF$('#'+CaseTitle).prop("readonly", true);
NWF$('#'+Description).prop("readonly", true);
NWF$('#'+RegardingID).prop("readonly", true);
NWF$('#'+RegardingType).prop("readonly", true);
NWF$('#'+Reviewer).prop("readonly", true);
//NWF$('#'+ReviewerTeam).prop("readonly", true);
NWF$('#'+Assessee).prop("readonly", true);
//NWF$('#'+AssesseeTeam).prop("readonly", true); 
NWF.FormFiller.Events.RegisterAfterReady(function () {NWF$(document).ready(function(){             


if(("fn-GetQueryString(OwnerUsername)"!="undefined") && ("fn-GetQueryString(OwnerUsername)"!=""))
{
     var assesuser = "fn-GetQueryString(OwnerUsername)";
      var ins = new NF.PeoplePickerApi('#'+Assessee);
                ins.search(assesuser).done(function (Assedata) {
                ins.add(Assedata[0]);
             }); 
}

     //getEntityData();
      getEntityInfo();      

      getTeamsData(NWF$('#'+Reviewer).val(), ReviewerTeam);      

//call Assessee getTeamsData for CheckType and Team value
 //if (NWF$('#'+Assessee).val()!="")
 //      getTeamsData(NWF$('#'+Assessee).val(), AssesseeTeam);
      //remQATypes();

      //getCheckType(NWF$('#'+Reviewer).val(),NWF$('#'+Assessee).val());



      NWF$('#'+Assessee).change(function() {

               NWF$('#'+AssesseeTeam).val('');
               NWF$('#'+hidQAType).val('');  
               NWF$('#'+hidQAURL).val('');  
               //remCheckTypes();
               //remQATypes();

               EnableDisableButton();
  if (NWF$('#'+Assessee).val()!="") 
{             //call getTeamsData for CheckType and Team value
                getTeamsData(NWF$('#'+Assessee).val(), AssesseeTeam);
//                       Page_ClientValidate();
}

      });    
      NWF$('#'+ddlQATypes).change(function() {
           var txtQAType = NWF$('#'+ddlQATypes).find("option:selected").text(); 
           var txtQAURL = NWF$('#'+ddlQATypes).find("option:selected").val(); 
           if (txtQAType!="Please select a value...")
          {
                 NWF$('#'+hidQAType).val(txtQAType);  
                 //NWF$('#'+hidQAURL).val(txtQAURL+"IL_ID="+NWF$('#' +hidUniqueID).val());  
                 NWF$('#'+hidQAURL).val(txtQAURL+NWF$('#' +hidUniqueID).val());            }
          else
         {
                NWF$('#'+hidQAType).val('');  
                NWF$('#'+hidQAURL).val('');  
          }

          EnableDisableButton();
  });  

  NWF$('#'+ddlCheckType).change(function() {                 
         EnableDisableButton();

  });  

       }); });});

function EnableDisableButton()
{
          var txtQAType = NWF$('#'+ddlQATypes).find("option:selected").text(); 
          var txtCheckType = NWF$('#'+ddlCheckType).find("option:selected").text(); 
          var txtAssesse = NWF$('#'+Assessee).val();
          if ((txtQAType!="Please select a value...") && (txtCheckType !="Please select a value...") && (txtAssesse != ''))
                  NWF$('.startQA').attr("disabled", false);
          else     
                  NWF$('.startQA').attr("disabled", true);
}
function getEntityInfo()
{
var svcEntityInfo =  NWF$('[data-controlname*=svcEntityInfo] input').val();
 var caseID = NWF$('#'+RegardingID).val();
var caseType = NWF$('#'+ActivityType).val().toLowerCase();
if (caseID=="") 
{
 caseID=NWF$('#'+ActivityID).val();
//check for orphaned activity
if (caseType!='incident')
{
 NWF$('#'+CaseTitle).val("Orphaned");
 NWF$('#'+Description).val("Case information not available");
 return;
}
}

 var serviceUri =_spPageContextInfo.webAbsoluteUrl +svcEntityInfo + caseID; //+ NWF$('#'+ActivityID).val() ;
console.log(serviceUri);
    NWF$.ajax({
        type: "GET",
        contentType: "application/json",
        url: serviceUri,
        dataType: "json",
        success:
            function (data) {
                console.log(data);
if (data.length>0)
{
                NWF$('#'+CRN).val(data[0].ReferenceNumber);
                NWF$('#'+CaseTitle).val(data[0].Name);
                NWF$('#'+Description).val(data[0].Summary);
                if ((NWF$('#'+Assessee).val()=="") || (NWF$('#'+Assessee).val()=="undefined"))
               {
                var ins = new NF.PeoplePickerApi('#'+Assessee);
                ins.search(data[0].OwnerDomainName).done(function (Assedata) {
                ins.add(Assedata[0]);
                });     
               }
}       
                },
        error:
            function (err) {
                console.log("getEntityInfo Error: " + err);
            }
    });
}function getEntityData()
{
var svcEntityInfo =  NWF$('[data-controlname*=svcEntityInfo] input').val();
//console.log("svcEntityInfo: " + svcEntityInfo); 
var serviceUri =svcEntityInfo + NWF$('#'+ActivityID).val() ;
//console.log(serviceUri);
NWF$.support.cors = true;
    NWF$.ajax({
        type: "GET",
        contentType: "application/json",
        url: serviceUri,
        dataType: "json",
        success:
            function (data) {
                //console.log(data);
                NWF$('#'+CRN).val(data.ReferenceNumber);
  NWF$('#'+CaseTitle).val(data.Name);
                NWF$('#'+Description).val(data.Summary);
                var ins = new NF.PeoplePickerApi('#'+Assessee);
                ins.search(data.OwnerDomainName).done(function (Assedata) {
                ins.add(Assedata[0]);
                });            },
        error:
            function (err) {
                console.log("getEntityData Error: " + err);
            }
    });
} 
function getTeamsData(userName, teamCtrl) {
 var str = userName;
    var res = str.substring(str.indexOf('\\')+1, str.indexOf(';'));
var svcUserlevels = NWF$('[data-controlname*=svcUserLevels] input').val();
//console.log("svcUserLevels: " +  svcUserlevels );
var serviceUri = _spPageContextInfo.webAbsoluteUrl + svcUserlevels + res;
    NWF$.ajax({
        type: "GET",
        contentType: "application/json",
        url: serviceUri,
        dataType: "json",
        success:
            function (data) {
                if (data.length>0)
                     NWF$('#'+teamCtrl).val(data[0].GroupName);
       getQATypes(NWF$('#'+Reviewer).val(),NWF$('#'+Assessee).val());
                if ((data.length>0) && (teamCtrl==AssesseeTeam))
                    getCheckType(NWF$('#'+Reviewer).val(),NWF$('#'+Assessee).val());
            },
        error:
            function (err) {
                console.log("getTeamsData Error: " + err + " uname: " + userName + " Ctrl: " +teamCtrl);
            }
    });
}function getCheckType(revName, asseName)
{
var str = revName;
    var res1 = str.substring(str.indexOf('\\')+1, str.indexOf(';'));
  str = asseName;
    var res2 = str.substring(str.indexOf('\\')+1, str.indexOf(';'));
var svcCheckTypes = NWF$('[data-controlname*=svcCheckTypes] input').val();
console.log("svcCheckTypes: " + svcCheckTypes );

var serviceUri = _spPageContextInfo.webAbsoluteUrl +svcCheckTypes + res1 + "/" + res2;
    NWF$.ajax({
        type: "GET",
        contentType: "application/json",
        url: serviceUri,
        dataType: "json",
        success:
            function (data) {
               console.log(data);
              if (data.length<=1)
                  remCheckTypes();
              else
                  addCheckTypes();
            },
        error:
            function (err) {
                console.log("getCheckType Error: " + err + " Reviwer: " + revName + " Assessee: " + asseName);
                remCheckTypes();
            }
    });
} function remCheckTypes()
{
    foo = "Focused";
    NWF$("#" + ddlCheckType+ " option:contains(" + foo +")").remove();
    foo = "Random";
    NWF$("#" + ddlCheckType+ " option:contains(" + foo +")").remove(); 
}
function addCheckTypes()
{
    NWF$('#' +ddlCheckType).append($('<option>', {
 value: 'Focused',
 text: 'Focused'
 }));NWF$('#' +ddlCheckType).append($('<option>', {
value: 'Random',
 text: 'Random'
 }));remDuplicates(ddlCheckType);
}

function getQATypes(revName, asseName)
{
    var str = revName;
    var res1 = str.substring(str.indexOf('\\')+1, str.indexOf(';'));    if (asseName!="")
    {
       str = asseName;
       var res2 = str.substring(str.indexOf('\\')+1, str.indexOf(';'));
    }
    else
       var res2 = "null";
//console.log("svcQATypes: " + NWF$('[data-controlname*=svcQATypes] input').val());
var svcQATypes = NWF$('[data-controlname*=svcQATypes] input').val();
//console.log("svcQATypes: " + svcQATypes );

var serviceUri = _spPageContextInfo.webAbsoluteUrl +svcQATypes + res1 + "/" + res2;
    NWF$.ajax({
        type: "GET",
        contentType: "application/json",
        url: serviceUri,
        dataType: "json",
        success:
            function (data) {
               //console.log(data);
                remQATypes();
                addQATypes(data)

            },
        error:
            function (err) {
                console.log("getQATypes Error: " + err + " Reviwer: " + revName + " Assessee: " + asseName);
                remQATypes();
            }
    });
} 
function addQATypes(data)
{
      remQATypes();
      for (i = 0; i < data.length; i++) 
      {
          NWF$('#' +ddlQATypes).append($('<option>', {
          value: data[i].URL,
          text: data[i].QAType
          }));
       }
       var seltext =  NWF$('#' +hidQAType).val();
       if (seltext !="")
             NWF$("#" + ddlQATypes+ " option:contains(" + seltext +")").attr("selected", true);

}
function remQATypes()
{
      NWF$("select[id="+ddlQATypes+"]>option").each(function(){
           if(this.text !="Please select a value...") 
                $(this).remove();
     });

}function remDuplicates(ctrl)
{
var usednames={};
NWF$("select[id="+ctrl+"]>option").each(function(){
if(usednames[this.text]){
 NWF$(this).remove();
 }
 else{
 usednames[this.text]=this.value;
 }
 });
}function saveAndRedirect() {  
 if(validateForm())
  {
 NWF$('#' +ddlQATypes).attr("disabled", true);

 waitDialog = SP.UI.ModalDialog.showWaitScreenWithNoClose('   ', 'Please wait...', 110, 280);
 setTimeout(function(){
   waitDialog.close(); 
  }, 6000);  NWF$('.saveButton').click();   setTimeout(function(){
   window.location.replace(NWF$('#' +hidQAURL).val()); 
  }, 1000);
  }
else
{

 NWF$('#' +ddlQATypes).attr("disabled", false); NWF$('.saveButton').click();  
 EnableDisableButton();
}}function validateForm() {  //for(i = 0; i < Page_Validators.length ; i++) {
   // NWF$("#" + Assessee).attr("class","nf-peoplepicker nf-associated-control");
  //}
  var formValidated = Page_ClientValidate();  if(!formValidated) 
  {
      //for(i = 0; i < Page_Validators.length ; i++) 
      //{
       //   if(!Page_Validators[i].isvalid) 
       //   {
        //     NWF$("#" + Assessee).attr("class", "nf-peoplepicker nf-associated-control nf-error-highlight");        //  }

      //}
 return false;
  }
  else
  {
 return true;
  }}  

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...