|  |  | 
 |  |  | <!-- | 
 |  |  |   @description       :  | 
 |  |  |   @author            : ChangeMeIn@UserSettingsUnder.SFDoc | 
 |  |  |   @group             :  | 
 |  |  |   @last modified on  : 03-23-2022 | 
 |  |  |   @last modified by  : ChangeMeIn@UserSettingsUnder.SFDoc | 
 |  |  | --> | 
 |  |  | <apex:page standardController="ASEActivity__c" extensions="NewAndEditASEActivityController" id="page"> | 
 |  |  | <apex:page standardController="ASEActivity__c" extensions="NewAndEditASEActivityController" id="page" lightningStylesheets="true"> | 
 |  |  |     <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" /> | 
 |  |  |     <script src="../../soap/ajax/53.0/connection.js" type="text/javascript"></script> | 
 |  |  |     <apex:includeScript value="{!URLFOR($Resource.connection20)}"/> | 
 |  |  |     <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/> | 
 |  |  |     <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/> | 
 |  |  |     <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/> | 
 |  |  | 
 |  |  |                  | 
 |  |  |                 //payloadJson.AWS_Data_Id__c = r.object[0].dataId; | 
 |  |  |                 payloadJson.AWS_Data_Id__c = '{!AWSDataId}'; | 
 |  |  |                 if (isNewMode) { | 
 |  |  |                 if (isNewMode || {!isCloneMode}) { | 
 |  |  |                     payloadJson.AWS_Data_Id__c = r.object[0].dataId; | 
 |  |  |                     delete payloadJson.OwnerId; | 
 |  |  |                 } else { | 
 |  |  |                     payloadJson.AWS_Data_Id__c = '{!AWSDataId}'; | 
 |  |  |                 } | 
 |  |  |                 if('{!rtTypeId}'){ | 
 |  |  |                     payloadJson.RecordTypeId = '{!rtTypeId}';//Add by zhj for Record Type Issue 20220421 | 
 |  |  |                 } | 
 |  |  |                 return payloadJson; | 
 |  |  |             }, | 
 |  |  | 
 |  |  |         var requiredFieldAPIList = JSON.parse('{!requiredFieldAPIListStr}'); | 
 |  |  |         var fieldAPIToLabelMap = JSON.parse('{!fieldAPIToLabelMapStr}'); | 
 |  |  |         var staticResources = JSON.parse('{!staticResource}'); | 
 |  |  |         //zhj MEBG新方案改造 2022-11-29 start | 
 |  |  |         var staticResourcesV2 = JSON.parse('{!staticResourceV2}'); | 
 |  |  |         //zhj MEBG新方案改造 2022-11-29 end | 
 |  |  |         var staticResourcesContact = JSON.parse('{!staticResourceContact}'); | 
 |  |  |         console.log('{!staticResource}'); | 
 |  |  |         var VLookUpFields = {! VLookUpFieldsJson}; | 
 |  |  |                 | 
 |  |  |          | 
 |  |  |         function EditButton(isDisabled){ | 
 |  |  |             var topele = document.getElementById('topButtonRow'); | 
 |  |  |             var bottomele = document.getElementById('bottomButtonRow'); | 
 |  |  |  | 
 |  |  |             if (isDisabled) { | 
 |  |  |                 topele.classList.add("disabledbutton"); | 
 |  |  |                 bottomele.classList.add("disabledbutton"); | 
 |  |  |             }else { | 
 |  |  |                 topele.classList.remove("disabledbutton"); | 
 |  |  |                 bottomele.classList.remove("disabledbutton"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         function ProcessPI(sobjJson, payloadForNewPI) { | 
 |  |  |             blockme(); | 
 |  |  |             if ({!isNewMode}) { | 
 |  |  |             if ({!isNewMode} || {!isCloneMode}) { | 
 |  |  |                 NewPIToAWS(sobjJson, payloadForNewPI) | 
 |  |  |             }else { | 
 |  |  |                 UpdatePIToAWS(sobjJson, payloadForNewPI) | 
 |  |  | 
 |  |  |         function validateFieldValueFormate() { | 
 |  |  |             let error_msg = ''; | 
 |  |  |             // let textEmail = "[data-id='Email']"; | 
 |  |  |             let textPhone = "[data-id='CustomerTel__c']"; | 
 |  |  |             //let textPhone = "[data-id='CustomerTel__c']"; | 
 |  |  |             // //Email | 
 |  |  |             // let email = document.querySelector(textEmail); | 
 |  |  |             // if(email && !/^[\w-]{3,12}@[\da-zA-Z]{2,16}\.[a-zA-Z]+$/.test(email.value)){ | 
 |  |  |             //     error_msg += ';邮件格式错误'; | 
 |  |  |             // } | 
 |  |  |             let phone = document.querySelector(textPhone); | 
 |  |  |             // let phone = document.querySelector(textPhone); | 
 |  |  |  | 
 |  |  |             if(phone ){ | 
 |  |  |                 if(phone.value){ | 
 |  |  |                     if(!/^1[3|5|8|7][0-9]\d{4,8}$/.test(phone.value)){ | 
 |  |  |                         error_msg += ';电话号码错误'; | 
 |  |  |                     } | 
 |  |  |                 }else{ | 
 |  |  |                     if(phone.previousSibling && phone.previousSibling.className.indexOf('requiredBlock')>-1){ | 
 |  |  |                         error_msg += ';电话号码错误'; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             // if(phone ){ | 
 |  |  |             //     if(phone.value){ | 
 |  |  |             //         if(!/^1[3|5|8|7][0-9]\d{4,8}$/.test(phone.value)){ | 
 |  |  |             //             error_msg += ';电话号码错误'; | 
 |  |  |             //         } | 
 |  |  |             //     }else{ | 
 |  |  |             //         if(phone.previousSibling && phone.previousSibling.className.indexOf('requiredBlock')>-1){ | 
 |  |  |             //             error_msg += ';电话号码错误'; | 
 |  |  |             //         } | 
 |  |  |             //     } | 
 |  |  |             // } | 
 |  |  |  | 
 |  |  |             let es = document.getElementsByTagName('select') | 
 |  |  |             for(let ei in es){ | 
 |  |  | 
 |  |  |                     result[field_api_name] = ele.value; | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             if(document.getElementById(api_id_map['Purpose_Type__c'])){ | 
 |  |  |                 result['Purpose_Type__c'] = document.getElementById(api_id_map['Purpose_Type__c']).value!='_\x01_'?document.getElementById(api_id_map['Purpose_Type__c']).value:''; | 
 |  |  |             } | 
 |  |  |             return result; | 
 |  |  |         } | 
 |  |  |         function QuerySobjectFromAWS() { | 
 |  |  | 
 |  |  |             let obj = JSON.parse(payloadForNewPI); | 
 |  |  |             obj[0].dataId = '{!AWSDataId}'; | 
 |  |  |             let payloadForNewPIJson = JSON.stringify(obj); | 
 |  |  |             AWSService.update(staticResources.updateUrl, sobjJson, payloadForNewPIJson, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, false, insertOrUpdateBack,redirectCallBack); | 
 |  |  |              | 
 |  |  |             //zhj MEBG新方案改造 2022-11-29 start | 
 |  |  |             //AWSService.update(staticResources.updateUrl, sobjJson, payloadForNewPIJson, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, false, insertOrUpdateBack,redirectCallBack); | 
 |  |  |             AWSService.update(staticResourcesV2.updateUrl, sobjJson, payloadForNewPIJson, controllerSaveMethod, staticResourcesV2.token, staticResources.transactionUrl, false, insertOrUpdateBack,redirectCallBack); | 
 |  |  |             //zhj MEBG新方案改造 2022-11-29 end | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         function NewPIToAWS(sobjJson, payloadForNewPI) { | 
 |  |  |             let controllerSaveMethod = config.insertMethod; | 
 |  |  |             AWSService.insert(staticResources.newUrl, sobjJson, payloadForNewPI, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, true, insertOrUpdateBack,redirectCallBack); | 
 |  |  |              | 
 |  |  |             //zhj MEBG新方案改造 2022-11-29 start | 
 |  |  |             //AWSService.insert(staticResources.newUrl, sobjJson, payloadForNewPI, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, true, insertOrUpdateBack,redirectCallBack); | 
 |  |  |             AWSService.insert(staticResourcesV2.newUrl, sobjJson, payloadForNewPI, controllerSaveMethod, staticResourcesV2.token, staticResources.transactionUrl, true, insertOrUpdateBack,redirectCallBack); | 
 |  |  |             //zhj MEBG新方案改造 2022-11-29 end | 
 |  |  |         } | 
 |  |  |          | 
 |  |  |  | 
 |  |  |         function checkRequiredFieldMsg(formData) { | 
 |  |  |             let blankRequiredFields = ''; | 
 |  |  |             for(i = 0;i<requiredFieldAPIList.length;i++){ | 
 |  |  |                 if(formData[requiredFieldAPIList[i]]){ | 
 |  |  |                 if(formData[requiredFieldAPIList[i]] && (VLookUpFields.indexOf(requiredFieldAPIList[i]) == -1)){ | 
 |  |  |                     continue; | 
 |  |  |                 }else if((VLookUpFields.indexOf(requiredFieldAPIList[i]) != -1) && formData[requiredFieldAPIList[i]] != '000000000000000'){ | 
 |  |  |                     continue; | 
 |  |  |                 }else{ | 
 |  |  |                     if(blankRequiredFields == ''){ | 
 |  |  | 
 |  |  |             return blankRequiredFields; | 
 |  |  |         } | 
 |  |  |         function saveSobjectProcess(save_and_new) { | 
 |  |  |             EditButton(true); | 
 |  |  |             if(save_and_new){ | 
 |  |  |                 config.SaveAndNew = true; | 
 |  |  |             } | 
 |  |  | 
 |  |  |  | 
 |  |  |         function alertErrorMessage(errorMsg) { | 
 |  |  |             let errorMsgNode = document.getElementById("page:form:block:msgContent"); | 
 |  |  |             errorMsg = '错误:无效数据。' + '\n' + errorMsg; | 
 |  |  |             errorMsgNode.innerText = errorMsg; | 
 |  |  |             errorMsgNode.className = 'pbError'; | 
 |  |  |             EditButton(false); | 
 |  |  |         } | 
 |  |  |         function hiddenErrorMsgNode() { | 
 |  |  |             let errorMsgNode = document.getElementById("page:form:block:msgContent"); | 
 |  |  | 
 |  |  |         <div class="ptBody"> | 
 |  |  |             <div class="content"> | 
 |  |  |                 <img src="/img/s.gif" alt="{! SobjectLabel}" class="pageTitleIcon" title="{! SobjectLabel}" /> | 
 |  |  |                 <h1 class="pageType">{! SobjectLabel}<apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText> | 
 |  |  |                 <h1 class="pageType">{! SobjectLabel}<apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText> | 
 |  |  |                     <span class="titleSeparatingColon">:</span> | 
 |  |  |                 </h1> | 
 |  |  |                 <h2 class="pageDescription"> <apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText>{! SobjectLabel}</h2> | 
 |  |  |                 <h2 class="pageDescription"> <apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText>{! SobjectLabel}</h2> | 
 |  |  |                 <div class="blank"> </div> | 
 |  |  |             </div> | 
 |  |  |             <div class="links"> | 
 |  |  | 
 |  |  |                                 <img src="/img/s.gif" alt="" class="minWidth" title="" width="1" height="1" /> | 
 |  |  |                                 <h2 class="mainTitle">{! SobjectLabel}<apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText></h2> | 
 |  |  |                             </td> | 
 |  |  |                             <td class="pbButton" id="topButtonRow"> | 
 |  |  |                             <td class="pbButton" id="topButtonRow" style="pointer-events: none; opacity: 0.4;"> | 
 |  |  |                                 <input class="btn" type="Button" value="{!$Label.Save}" onclick="saveSobjectProcess()" /> | 
 |  |  |                                 <input class="btn" type="Button" value="{!$Label.SaveAndNew}" onclick="saveSobjectProcess(1)" /> | 
 |  |  |                                 <apex:commandButton action="{!cancel}" value="{!$Label.Cancel}" /> | 
 |  |  | 
 |  |  |  | 
 |  |  |                     <!--Each section has layoutFields, let's iterate them as well--> | 
 |  |  |                     <apex:repeat value="{!layoutSection.layoutFields}" var="layoutField"> | 
 |  |  |                         <apex:inputField styleClass="{!ApiPrefix} {!ApiPrefix}_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!ASEActivity__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)}" | 
 |  |  |                         <apex:inputField styleClass="PIBackApi PIBackApi_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!ASEActivity__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)&&isNewMode}" | 
 |  |  |                             required="{!layoutField.isRequired}" /> | 
 |  |  |                         <apex:inputField styleClass="PIBackApi PIBackApi_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!ASEActivity__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)&¬(isNewMode)&&layoutField.fieldAPI!='RecordTypeId'}" | 
 |  |  |                             required="{!layoutField.isRequired}" /> | 
 |  |  |                         <apex:outputField styleClass="PIBackApi PIBackApi_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!ASEActivity__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)&¬(isNewMode)&&layoutField.fieldAPI=='RecordTypeId'}" | 
 |  |  |                        /> | 
 |  |  |                         <apex:pageblocksectionitem rendered="{!layoutField.isPlaceHolder}"> | 
 |  |  |                         </apex:pageblocksectionitem> | 
 |  |  |                     </apex:repeat> | 
 |  |  | 
 |  |  |                 </apex:pageBlockSection> | 
 |  |  |             </apex:repeat> | 
 |  |  |             <script> | 
 |  |  |                var init_nodes = document.getElementsByClassName("PIBackApi"); | 
 |  |  |                var api_id_map={}; | 
 |  |  |                for(let ei in init_nodes){ | 
 |  |  |                    let e = init_nodes[ei]; | 
 |  |  |                   if(IsFormElement(e)){ | 
 |  |  |                        if(e.getAttribute("multiple") != 'multiple' || e.style.display == 'none' && e.id.indexOf('selected') < 0){ | 
 |  |  |                            api_id_map[GetEleApiName(e)] = e.id; | 
 |  |  |                        } | 
 |  |  |                 	  | 
 |  |  |                    } | 
 |  |  |                } | 
 |  |  |                console.log(api_id_map); | 
 |  |  |                 var init_nodes = document.getElementsByClassName("PIBackApi"); | 
 |  |  |                 var api_id_map={}; | 
 |  |  |                 for(let ei in init_nodes){ | 
 |  |  |                     let e = init_nodes[ei]; | 
 |  |  |                     if(IsFormElement(e)){ | 
 |  |  |                         if(e.getAttribute("multiple") != 'multiple' || e.style.display == 'none' && e.id.indexOf('selected') < 0){ | 
 |  |  |                             api_id_map[GetEleApiName(e)] = e.id; | 
 |  |  |                         } | 
 |  |  |                       | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 console.log(api_id_map); | 
 |  |  |  | 
 |  |  |                  | 
 |  |  |                 sfdcPage.appendToOnloadQueue(function () { | 
 |  |  |                     debugger | 
 |  |  |                     var layoutSections = JSON.parse('{!layoutSectionsStr}'); | 
 |  |  |                     for (let m = 0; m < layoutSections.length; m++) { | 
 |  |  |                         let layoutSection = layoutSections[m].layoutFields; | 
 |  |  | 
 |  |  |                     //Replace Vlookup Field | 
 |  |  |                     replaceSearchContactLookup(); | 
 |  |  |                     document.querySelectorAll("[data-id='OwnerId']")[0].classList.add("disabledbutton"); | 
 |  |  |                      | 
 |  |  |                     document.getElementById('topButtonRow').style = ''; | 
 |  |  |                     document.getElementById('bottomButtonRow').style = ''; | 
 |  |  |                     jQuery('a[data-id="OwnerId"]').remove(); | 
 |  |  |                     /* | 
 |  |  |                     jQuery(".lookupInput").each(function(i,e){ | 
 |  |  | 
 |  |  |                         <tr> | 
 |  |  |                             <td class="pbTitle"> | 
 |  |  |                                 <img src="/img/s.gif" alt="" class="minWidth" title="" width="1" height="1" /> </td> | 
 |  |  |                             <td class="pbButtonb" id="bottomButtonRow"> | 
 |  |  |                             <td class="pbButtonb" id="bottomButtonRow" style="pointer-events: none; opacity: 0.4;"> | 
 |  |  |                                 <input class="btn" type="Button" value="{!$Label.Save}" onclick="saveSobjectProcess()" /> | 
 |  |  |                                 <input class="btn" type="Button" value="{!$Label.SaveAndNew}" onclick="saveSobjectProcess()" /> | 
 |  |  |                                 <apex:commandButton action="{!cancel}" value="{!$Label.Cancel}" /> |