From ea5686cada5a3e63edaa0d3e8c2db8def4f9ff31 Mon Sep 17 00:00:00 2001 From: Li Jun <buli@deloitte.com.cn> Date: 星期一, 11 四月 2022 11:52:41 +0800 Subject: [PATCH] PIPLCloneButton --- force-app/main/default/pages/NewRepair.page | 268 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 232 insertions(+), 36 deletions(-) diff --git a/force-app/main/default/pages/NewRepair.page b/force-app/main/default/pages/NewRepair.page index eefaed7..4db1fd5 100644 --- a/force-app/main/default/pages/NewRepair.page +++ b/force-app/main/default/pages/NewRepair.page @@ -2,7 +2,7 @@ @description : @author : ChangeMeIn@UserSettingsUnder.SFDoc @group : - @last modified on : 03-17-2022 + @last modified on : 03-30-2022 @last modified by : ChangeMeIn@UserSettingsUnder.SFDoc --> <apex:page standardController="Repair__c" extensions="NewRepairController" id="page"> @@ -19,6 +19,8 @@ </style> <script> //Initial Required Information + var staticResourceContact = JSON.parse('{!staticResourceContact}'); + var staticResourceAddress = JSON.parse('{!staticResourceAddress}'); var staticResources = JSON.parse('{!staticResource}'); var requiredFieldAPIList = JSON.parse('{!requiredFieldAPIListStr}'); var fieldAPIToLabelMap = JSON.parse('{!fieldAPIToLabelMapStr}'); @@ -28,29 +30,50 @@ //Redirect Required Parameter var redirectCallBack = function redirectCallBack(sfId, errorMessage) { - if (sfId) { - if (redirectMode == 'Save') { - window.open('/' + sfId, '_self'); - } else if (redirectMode == 'SaveAndNew') { - window.open('/setup/ui/recordtypeselect.jsp?ent=' + '{!sobjectId}' + '&retURL=/' + '{!sobjectPrefix}' + '/o&save_new_url=/' + '{!sobjectPrefix}' + '/e?retURL=%2F' + '{!sobjectPrefix}' + '%2Fo', '_self'); - } - } else { - // alert(errorMessage); + if(sfId){ + Visualforce.remoting.Manager.invokeAction( + 'NewRepairController.EncryptUpdate', // example + sfId, + function (result, event) { + console.log(result); + if(result.message){ + alert(result.message); + } + if (redirectMode == 'Save') { + window.open('/' + sfId, '_self'); + } else if (redirectMode == 'SaveAndNew') { + window.open('/setup/ui/recordtypeselect.jsp?ent=' + '{!sobjectId}' + '&retURL=/' + '{!sobjectPrefix}' + '/o&save_new_url=/' + '{!sobjectPrefix}' + '/e?retURL=%2F' + '{!sobjectPrefix}' + '%2Fo', '_self'); + } + + }, + { escape: true } + ); + + }else{ alertErrorMessage(errorMessage); } } + function GetEleApiName(ele){ + for(let ci in ele.classList){ + let c = ele.classList[ci]; + if(c.indexOf('PIBackApi_')>-1){ + return c.replace('PIBackApi_',''); + } + } + return ''; + } //Query Required Parameter - var queryBack = function queryBack(data) { - console.log('data = ' + data); - document.querySelector("[data-id='address_Contacts__c']").value = data.object.addressContacts; - document.querySelector("[data-id='address_Contacts_Name__c']").value = data.object.addressContactsName; - document.querySelector("[data-id='address_Telephone__c']").value = data.object.addressTelephone; - document.querySelector("[data-id='address_ZipCode__c']").value = data.object.addressZipCode; - document.querySelector("[data-id='Detailed_Address__c']").value = data.object.detailedAddress; - document.querySelector("[data-id='RepairApplicant__c']").value = data.object.repairApplicant; - unblockUI(); - }; + // var queryBack = function queryBack(data) { + // console.log('data = ' + data); + // document.querySelector("[data-id='address_Contacts__c']").value = data.object.addressContacts; + // document.querySelector("[data-id='address_Contacts_Name__c']").value = data.object.addressContactsName; + // document.querySelector("[data-id='address_Telephone__c']").value = data.object.addressTelephone; + // document.querySelector("[data-id='address_ZipCode__c']").value = data.object.addressZipCode; + // document.querySelector("[data-id='Detailed_Address__c']").value = data.object.detailedAddress; + // document.querySelector("[data-id='RepairApplicant__c']").value = data.object.repairApplicant; + // unblockUI(); + // }; //Check If Insert Or Update var insertOrUpdateBack = function insertOrUpdateBack(payloadJson, result, isNewMode) { @@ -129,8 +152,10 @@ console.log(nodelist[index].id.indexOf('lkwgt')); if (nodelist[index].id.indexOf('lkwgt') == -1) { let vlookUpNodeId = nodelist[index].id + '_lkid'; - let vlookUpNodeValue = document.getElementById(vlookUpNodeId).value; - result[nodelist[index].getAttribute("data-id")] = vlookUpNodeValue; + if(document.getElementById(vlookUpNodeId)!=null){ + let vlookUpNodeValue = document.getElementById(vlookUpNodeId).value; + result[nodelist[index].getAttribute("data-id")] = vlookUpNodeValue; + } } } else if (nodelist[index].type == 'checkbox') { result[nodelist[index].getAttribute("data-id")] = nodelist[index].checked; @@ -150,14 +175,60 @@ } } for (let i = 0; i < userVLookUpFields.length; i++) { - let userVlookUpNodeValue = document.querySelector("[data-id='" + userVLookUpFields[i] + "']").children[1].value; - console.log('userVlookUpNodeValue:'+userVlookUpNodeValue); - if(userVlookUpNodeValue!='000000000000000'){ - result[userVLookUpFields[i]] = userVlookUpNodeValue; + if(document.querySelector("[data-id='" + userVLookUpFields[i] + "']")!=null){ + // let userVlookUpNodeValue = document.querySelector("[data-id='" + userVLookUpFields[i] + "']").children[1].value; + let e = document.getElementById(jQuery('[data-id="'+userVLookUpFields[i]+'"] .lookupInput input').attr('id')+'_lkid'); + //let userVlookUpNodeValue = jQuery('[data-id="Incharge_Staff__c"] .lookupInput input').val() + // console.log('userVlookUpNodeValue:'+e.value); + if(e && e.value!='000000000000000'){ + result[userVLookUpFields[i]] = e.value; + } } } - result.work_location_select__c = document.querySelector("[id='page:form:j_id30:j_id34:1:j_id35:j_id36:18:j_id37']").value; + // result.work_location_select__c = document.querySelector("[id='page:form:block:j_id34:1:j_id35:j_id36:18:j_id37']").value; // result.ProblemDescription__c = document.querySelector("[aria-describedby = 'cke_34']").contentWindow.document.getElementsByTagName('body')[0].innerHTML + /* + if(result.engineerSendDate__c){ + result.engineerSendDate__c = result.engineerSendDate__c.replace(/\//g, '-')+':00'; + } + */ + let e = null; + e = document.getElementById(jQuery('[data-id="Incharge_Staff__c"] .lookupInput input').attr('id')+'_lkid'); + if(e){ + result.Incharge_Staff__c = e.value; + } + + e = document.getElementById(api_id_map['work_location_select__c']); + if(e){ + result.work_location_select__c = e.value; + } + e = document.getElementById(jQuery('[data-id="OCSM_RC_CordingUser__c"] .lookupInput input').attr('id')+'_lkid'); + if(e){ + result.OCSM_RC_CordingUser__c = e.value; + } + + e = document.getElementById(jQuery('[data-id="OSH_Affirmant__c"] .lookupInput input').attr('id')+'_lkid'); + if(e){ + result.OSH_Affirmant__c = e.value; + } + e = document.getElementById(jQuery('[data-id="OSHRAConfirmUser__c"] .lookupInput input').attr('id')+'_lkid'); + if(e){ + result.OSHRAConfirmUser__c = e.value; + } + e = document.getElementById(jQuery('[data-id="Repair_Authenticator__c"] .lookupInput input').attr('id')+'_lkid'); + if(e){ + result.Repair_Authenticator__c = e.value; + } + e = document.getElementById(jQuery('[data-id="Repair_Determine_result_ConfirmationUser__c"] .lookupInput input').attr('id')+'_lkid'); + if(e){ + result.Repair_Determine_result_ConfirmationUser__c = e.value; + } + //鏈慨鐞嗗綊杩樼悊鐢� + //page:form:block:j_id34:17:j_id35:j_id36:2:j_id37 + //page:form:block:j_id34:17:j_id35:j_id36:2:j_id37 + if(document.getElementById('page:form:block:j_id34:17:j_id35:j_id36:2:j_id37')){ + result.Return_Without_Repair_Reason__c = document.getElementById('page:form:block:j_id34:17:j_id35:j_id36:2:j_id37').value; + } console.log(JSON.stringify(result)); return result; } @@ -166,6 +237,27 @@ function QueryRepairFromAWS() { AWSService.query(staticResources.queryUrl, '{!AWSDataId}', queryBack, staticResources.token); } + + var queryBack = function queryBack(data) { + console.log(data); + document.querySelector("[data-id='address_Contacts__c']").value = data.object.addressContacts; + document.querySelector("[data-id='address_Contacts_Name__c']").value = data.object.addressContactsName; + document.querySelector("[data-id='address_Telephone__c']").value = data.object.addressTelephone; + document.querySelector("[data-id='address_ZipCode__c']").value = data.object.addressZipCode; + document.querySelector("[data-id='Detailed_Address__c']").value = data.object.detailedAddress; + document.querySelector("[data-id='RepairApplicant__c']").value = data.object.repairApplicant; + AWSService.query(staticResourceAddress.queryUrl, '{!DecryptAWSDataId}', queryBackDecrypt, staticResourceAddress.token); + }; + var queryBackContact = function queryBack(data) { + console.log(data); + document.querySelector("[data-id='address_Contacts__c']").value = data.object.lastName; + }; + var queryBackDecrypt = function queryBack(data) { + document.querySelector("[data-id='Detailed_Address__c']").value = data.object.detailedAddress; + document.querySelector("[data-id='address_ZipCode__c']").value = data.object.zipCode; + document.querySelector("[data-id='address_Telephone__c']").value = data.object.telephone; + AWSService.query(staticResourceContact.queryUrl, '{!ContactAWSDataId}', queryBackContact, staticResourceContact.token); + } //Update Sensitive Information to AWS function UpdatePIToAWS(repairJson, payloadForNewPI) { @@ -230,7 +322,7 @@ //Alert Error Message function alertErrorMessage(errorMsg) { - let errorMsgNode = document.getElementById("page:form:msgContent"); + let errorMsgNode = document.getElementById("page:form:block:msgContent"); errorMsg = '閿欒锛氭棤鏁堟暟鎹��' + '\n' + errorMsg; errorMsgNode.innerText = errorMsg; errorMsgNode.className = 'pbError'; @@ -239,7 +331,7 @@ //Hide Error Message function hiddenErrorMsgNode() { - let errorMsgNode = document.getElementById("page:form:msgContent"); + let errorMsgNode = document.getElementById("page:form:block:msgContent"); errorMsgNode.innerText = ''; errorMsgNode.className = ''; } @@ -265,11 +357,7 @@ <div class="ptBreadcrumb"></div> </div> <apex:form id="form"> - <!-- Error Msg--> - <apex:outputPanel id="errorMsg"> - <apex:pageMessages id="msgContent" escape="false" /> - </apex:outputPanel> - <apex:pageblock > + <apex:pageblock id="block"> <div class="pbHeader"> <table cellspacing="0" cellpadding="0" border="0"> <tbody> @@ -287,13 +375,19 @@ </tbody> </table> </div> + <!-- Error Msg--> + <div style="text-align: center;"> + <apex:outputPanel id="errorMsg"> + <apex:pageMessages id="msgContent" escape="false" /> + </apex:outputPanel> + </div> <!-- Iterate the layoutSections, which is a list of sections --> <apex:repeat value="{!layoutSections}" var="layoutSection"> <apex:pageBlockSection title="{!layoutSection.name}" collapsible="{!layoutSection.allowCollapse}" columns="{!layoutSection.columns}"> <!--Each section has layoutFields, let's iterate them as well--> <apex:repeat value="{!layoutSection.layoutFields}" var="layoutField"> - <apex:inputField html-data-id="{!layoutField.fieldAPI}" value="{!Repair__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)}" + <apex:inputField html-title="{!layoutField.fieldAPI}" styleClass="PIBackApi PIBackApi_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!Repair__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)}" required="{!layoutField.isRequired}" /> <apex:pageblocksectionitem rendered="{!layoutField.isPlaceHolder}"> </apex:pageblocksectionitem> @@ -302,6 +396,28 @@ </apex:pageBlockSection> </apex:repeat> <script> + function IsFormTag(tag_name){ + if (!tag_name) { + return false; + } + return ['input','select','textarea'].indexOf(tag_name.toLowerCase())>-1; + } + + function IsFormElement(e){ + return IsFormTag(e.tagName); + } + 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; + } + + } + } + //Append Page sfdcPage.appendToOnloadQueue(function () { var layoutSections = JSON.parse('{!layoutSectionsStr}'); @@ -310,7 +426,16 @@ for (let n = 0; n < layoutSection.length; n++) { let layoutField = layoutSection[n]; if (layoutField.fieldAPI != '' && document.querySelector("[data-id='"+layoutField.fieldAPI+"']") != null) { - document.querySelector("[data-id='"+layoutField.fieldAPI+"']").disabled = !(layoutField.editableField); + let e = document.querySelector("[data-id='"+layoutField.fieldAPI+"']"); + e.disabled = !(layoutField.editableField); + if (!(layoutField.editableField)) { + if (e.getAttribute("multiple") && e.getAttribute("multiple") == 'multiple') { + e.parentNode.classList.add("disabledbutton"); + } + if (e.tagName == 'DIV') { + e.classList.add("disabledbutton"); + } + } } } } @@ -319,8 +444,79 @@ if (!{!isNewMode}) { blockme(); QueryRepairFromAWS(); + unblockUI(); }; - document.querySelector("[data-id='OwnerId']").classList.add("disabledbutton"); + if(document.querySelector("[data-id='OwnerId']") != null) + document.querySelector("[data-id='OwnerId']").classList.add("disabledbutton"); + + let previous_value = {}; + jQuery(".lookupInput input").each(function(i,e){ + let je =jQuery(e); + + let dataid = je.attr('data-id'); + if(['Incharge_Staff_Contact__c'].indexOf(dataid) < 0) return; + + jQuery(e).focus(function(){ + previous_value[this.id] = this.value; + }) + + jQuery(e).change(function(){ + if (previous_value[this.id] != jQuery(this).val()) { + document.getElementById(this.id+'_lkid').value = ''; + } + }) + }) + + //缁翠慨涓績 + if('{!workLocationSelect}' != ''){ + let wlNode = document.getElementById('page:form:block:j_id34:1:j_id35:j_id36:18:j_id37'); + if(wlNode){ + wlNode.removeAttribute("disabled") + var o = new Option() + o.text = '{!workLocationSelect}' + wlNode.options.add(o) + wlNode.value = '{!workLocationSelect}' + } + } + + //濡傛灉浠庢姤淇瓙鍗曡繃鏉ワ紝闇�瑕佽В瀵嗘姤淇汉 + if('{!RepairSubOrderAWSDataId}' != ''){ + var staticResourceRepairSubOrder = JSON.parse('{!staticResourceRepairSubOrder}'); + let queryBackRepairSubOrder = function queryBackRepairSubOrder(data) { + document.querySelector("[data-id='RepairApplicant__c']").value = data.object.repairApplicantName; + }; + AWSService.query(staticResourceRepairSubOrder.queryUrl, '{!RepairSubOrderAWSDataId}', queryBackRepairSubOrder, staticResourceRepairSubOrder.token); + } + + // jQuery(".lookupInput").each(function(i,e){ + // let je =jQuery(e).find('input'); + // je.attr("readonly",""); + // je.css("background","unset"); + + // let dataid = je.attr('data-id'); + // if(['Hospital_Name__c','Department_Class__c','OwnerId'].indexOf(dataid) > -1) return; + // jQuery(e).children(":last-child").before('<img class="closeIcon" data-id="'+dataid+'" generate="" alt="Clear" src="/s.gif" style="display: inline-block;">'); + // }) + + // jQuery(".lookupInput").on("mouseenter","img[generate]",function(e){ + // this.className = "closeIconOn"; + // }); + + // jQuery(".lookupInput").on("mouseleave","img[generate]",function(e){ + // this.className = "closeIcon" + // }); + + // jQuery(".lookupInput").on("click","img[generate]",function(e){ + // 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'); + // if(hidden){ + // hidden.value = ''; + // } + // } + // }); }); </script> <div class="pbBottomButtons"> -- Gitblit v1.9.1