From 1f7527ffae293e35c9a53b61f641186150328e4e Mon Sep 17 00:00:00 2001 From: Li Jun <buli@deloitte.com.cn> Date: 星期三, 11 五月 2022 17:06:31 +0800 Subject: [PATCH] Page Enhance 0511 --- force-app/main/default/pages/NewAndEditInquiryForm.page | 141 ++++++++++++++++++++++++++++------------------ 1 files changed, 86 insertions(+), 55 deletions(-) diff --git a/force-app/main/default/pages/NewAndEditInquiryForm.page b/force-app/main/default/pages/NewAndEditInquiryForm.page index 056f814..56a5168 100644 --- a/force-app/main/default/pages/NewAndEditInquiryForm.page +++ b/force-app/main/default/pages/NewAndEditInquiryForm.page @@ -1,6 +1,6 @@ <apex:page standardController="Inquiry_form__c" extensions="NewAndEditInquiryFormController" id="page"> <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)}"/> @@ -63,10 +63,14 @@ //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; }, @@ -128,10 +132,23 @@ var VLookUpFields = {! VLookUpFieldsJson}; function ProcessPI(sobjJson, payloadForNewPI) { blockme(); - if ({!isNewMode}) { - NewPIToAWS(sobjJson, payloadForNewPI) + if ({!isNewMode} || {!isCloneMode}) { + NewPIToAWS(sobjJson, payloadForNewPI) }else { UpdatePIToAWS(sobjJson, payloadForNewPI) + } + } + + 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"); } } @@ -152,7 +169,7 @@ } function IsFormElement(tag_name){ - return ['input','select','textarea'].indexOf(tag_name)>-1; + return ['input','select','textarea','div'].indexOf(tag_name)>-1; } function getPIPayload(sobjJson) { @@ -161,22 +178,22 @@ function validateFieldValueFormate() { let error_msg = ''; - let textEmail = "[data-id='Email__c']"; - let textPhone = "[data-id='Phone__c']"; - if (document.querySelector("[data-id='Email__c']").value != "" && document.querySelector("[data-id='Email__c']").value != null) { - //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 textEmail = "[data-id='Email__c']"; + // let textPhone = "[data-id='Phone__c']"; + // if (document.querySelector("[data-id='Email__c']").value != "" && document.querySelector("[data-id='Email__c']").value != null) { + // //Email + // let email = document.querySelector(textEmail); + // if(email && !/^[\w-]{3,12}@[\da-zA-Z]{2,16}\.[a-zA-Z]+$/.test(email.value)){ + // error_msg += ';閭欢鏍煎紡閿欒'; + // } + // } - if (document.querySelector("[data-id='Phone__c']").value != "" && document.querySelector("[data-id='Phone__c']").value != null) { - let phone = document.querySelector(textPhone); - if(phone && !/^1[3|5|8|7][0-9]\d{4,8}$/.test(phone.value)){ - error_msg += ';鐢佃瘽鍙风爜閿欒'; - } - } + // if (document.querySelector("[data-id='Phone__c']").value != "" && document.querySelector("[data-id='Phone__c']").value != null) { + // let phone = document.querySelector(textPhone); + // if(phone && !/^1[3|5|8|7][0-9]\d{4,8}$/.test(phone.value)){ + // error_msg += ';鐢佃瘽鍙风爜閿欒'; + // } + // } for(let ei in document.getElementsByTagName('select')){ let e = document.getElementsByTagName('select')[ei]; @@ -212,6 +229,9 @@ console.log(ele.id.indexOf('lkwgt')); if (ele.id.indexOf('lkwgt') == -1) { let vlookUpNodeId = ele.id + '_lkid'; + if (tag_name == 'div') { + vlookUpNodeId = ele.id.substring(0,ele.id.length-4) + '_lkid'; + } let vlook_ele = document.getElementById(vlookUpNodeId); let v = ''; if(vlook_ele){ @@ -228,20 +248,26 @@ } else if (ele.type == 'checkbox') { result[field_api_name] = ele.checked; } else if (ele.type == 'select-multiple') { - //field_api_name - let multiple = field_api_name; - let targets = ""; - //InquiryForm鐗规畩澶勭悊 - if(multiple == "Product1__c"){ - targets = GetEleByClass(config.ApiPrefix+'_'+field_api_name).parentNode.children[1].rows[1].cells[2].innerText; - }else if(multiple == "Request1__c"){ - targets = GetEleByClass(config.ApiPrefix+'_'+field_api_name).parentNode.children[2].rows[1].cells[2].innerText; - }else{ - targets = GetEleByClass(config.ApiPrefix+'_'+field_api_name).parentNode.children[1].children[0].children[1].children[2].children[0].innerText; + //After Update By zhj 20220411 Start + let multiple = nodelist[index].getAttribute("data-id"); + let targets = document.querySelector("[data-id=" + multiple + "]").options; + let selValues = []; + for(i=0; i < targets.length; i++){ + if(targets[i].selected){ + selValues.push(targets[i].value); + } } - targets = targets.replace(/\n/g, ";"); - console.log('targets = ' + targets); - result[field_api_name] = targets; + let setValuesStr = JSON.stringify(selValues); + setValuesStr = setValuesStr.substring(1,setValuesStr.length-1); + if(setValuesStr){ + setValuesStr = setValuesStr.replace(/"/g,""); + if(setValuesStr.indexOf(',')!=-1){ + setValuesStr = setValuesStr.replace(/,/g,";"); + } + } + console.log('targets = ' + setValuesStr); + result[nodelist[index].getAttribute("data-id")] = setValuesStr; + //After Update By zhj 20220411 end } else { result[field_api_name] = ele.value; } @@ -300,7 +326,9 @@ 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 == ''){ @@ -315,6 +343,7 @@ } //鎸夐挳鐐瑰嚮鏂规硶 function saveSobjectProcess(save_and_new) { + EditButton(true); if(save_and_new){ config.SaveAndNew = true; } @@ -353,6 +382,7 @@ let errorMsgNode = document.getElementById("page:form:block:msgContent"); errorMsgNode.innerText = errorMsg; errorMsgNode.className = 'pbError'; + EditButton(false); } function hiddenErrorMsgNode() { let errorMsgNode = document.getElementById("page:form:block:msgContent"); @@ -409,13 +439,16 @@ let contactNodeId = document.querySelector("[data-id='Contact_Name__c']").id + '_lkid'; document.getElementById(contactNodeId).value = contactInfo.ContactId; document.querySelector("[data-id='Contact_Name__c']").value = contactInfo.Name; + //2022-5-7 yjk 澧炲姞鍙傛暟 + document.querySelector("[data-id='Email__c']").value = contactInfo.email; + document.querySelector("[data-id='Phone__c']").value = contactInfo.phone; } //鏇挎崲vlookup function replaceSearchContactLookup() { let lookUpNode = htmlToElement(contactHtmlString); console.log(lookUpNode); - let eleContactValue = document.querySelector("[data-id='Contact_Name__c']").parentNode.parentNode.children[1].value; + let eleContactValue = document.querySelector("[data-id='Contact_Name__c']").parentNode.parentNode.children[0].value; if (eleContactValue) { if (!{!isNewMode} || (eleContactValue != '000000000000000')) { //1. Query Contact from AWS by AWSDataId @@ -521,10 +554,10 @@ <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"> @@ -547,9 +580,9 @@ <tr> <td class="pbTitle"> <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> + <h2 class="mainTitle">{! SobjectLabel}<apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$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}" /> @@ -571,8 +604,9 @@ <!--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="{!Inquiry_form__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)}" - required="{!layoutField.isRequired}" /> + <apex:inputField styleClass="{!ApiPrefix} {!ApiPrefix}_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!Inquiry_form__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)&&isNewMode}" required="{!layoutField.isRequired}" /> + <apex:inputField styleClass="{!ApiPrefix} {!ApiPrefix}_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!Inquiry_form__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)&¬(isNewMode)&&layoutField.fieldAPI!='RecordTypeId'}" required="{!layoutField.isRequired}" /> + <apex:outputField styleClass="{!ApiPrefix} {!ApiPrefix}_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!Inquiry_form__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)&¬(isNewMode)&&layoutField.fieldAPI=='RecordTypeId'}" /> <apex:pageblocksectionitem rendered="{!layoutField.isPlaceHolder}"> </apex:pageblocksectionitem> </apex:repeat> @@ -639,11 +673,12 @@ replaceSearchLeadLookup(); document.querySelectorAll("[data-id='OwnerId']")[0].classList.add("disabledbutton"); // document.querySelectorAll("[data-id='OwnerId']")[1].classList.add("disabledbutton"); - + document.getElementById('topButtonRow').style = ''; + document.getElementById('bottomButtonRow').style = ''; jQuery('a[data-id="OwnerId"]').remove(); //Updated by Li Jun 20220322 Start - /* + /* jQuery(".lookupInput").on("mouseenter","img[generate]",function(e){ this.className = "closeIconOn"; @@ -657,10 +692,10 @@ let id = jQuery("input[data-id='"+jQuery(this).attr("data-id")+ "']").attr("id"); let input = document.getElementById(id); if(input){ - input.value = ''; - let hidden = document.getElementById(id+'_lkid'); + input.value = ''; + let hidden = document.getElementById(id+'_lkid'); if(hidden){ - hidden.value = ''; + hidden.value = ''; } } });*/ @@ -682,13 +717,6 @@ } }) }) - - // jQuery(".lookupInput").on("click","img.closeIconOn",function(){ - // if (jQuery(this).siblings("input").attr("data-id") == 'Hospital_Name__c'){ - // clearVlookup('Department_Class__c'); - // clearVlookup('Hospital__c'); - // } - // }); jQuery("body").on("change","input[data-id='Hospital_Name__c']",function(){ setTimeout(() => { @@ -714,7 +742,7 @@ JSON.stringify(lookups), lookup_id, function (result, event) { console.log("result = " + result); - if (result != null ){ + if (result != null && result != '{}'){ var obj = JSON.parse(result.replaceAll('&'+'quot;','"')); for (let i = 0; i < lookups.length; i++) { let lookup = lookups[i]; @@ -737,6 +765,9 @@ } } + }else { + clearVlookup('Department_Class__c'); + clearVlookup('Hospital__c'); } }, { escape: true } @@ -766,7 +797,7 @@ <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}" /> -- Gitblit v1.9.1