From ead4df22dca33a867279471821ca675f91dec760 Mon Sep 17 00:00:00 2001 From: buli <137736985@qq.com> Date: 星期六, 14 五月 2022 18:44:54 +0800 Subject: [PATCH] FixIssue0514 --- force-app/main/default/pages/SWOPage.page | 390 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 369 insertions(+), 21 deletions(-) diff --git a/force-app/main/default/pages/SWOPage.page b/force-app/main/default/pages/SWOPage.page index b9d64c1..f280d44 100644 --- a/force-app/main/default/pages/SWOPage.page +++ b/force-app/main/default/pages/SWOPage.page @@ -5,8 +5,151 @@ <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/> <apex:includeScript value="{!URLFOR($Resource.connection20)}"/> <apex:includeScript value="{!URLFOR($Resource.apex20)}"/> + <!-- 20220313 PI鏀归�� by Chen Yanan --> + <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" /> <script> + // 20220313 PI鏀归�� by Chen Yanan start + AWSService.sfSessionId = '{!GETSESSIONID()}'; + var staticResources = JSON.parse('{!staticResource}'); + var contactstaticResource = JSON.parse('{!contactstaticResource}'); + var aws_data = {}; + console.log('AWS' + '{!contactAWSDataId}'); + var isNew = {!isNew}; + console.log('isNew: ' + isNew); + + function Decrypt1(r,dataIds,callback){ + if (!(dataIds && dataIds.length)) { + if(callback)callback(); + return; + } + + let Foo = function(){ + for (const id of dataIds) { + if (aws_data.hasOwnProperty(id)) { + let d = aws_data[id]; + let $e =j$("[aws-id='"+d.dataId+ "']"); + $e.each((i,e)=>{ + j$(e).html(d[j$(e).attr("aws-api")]); + //j$(e).attr('value',d[j$(e).attr("aws-api")]) + }) + + } + } + if(callback)callback(); + } + let ids = []; + for (const id of dataIds) { + if (!aws_data.hasOwnProperty(id)) { + ids.push(id); + } + } + if (ids.length > 0) { + + // AWSService.search(r.searchUrl,JSON.stringify({ + // "dataIds":ids + // }),function(data){ + AWSService.query(r.queryUrl,ids[0],function(data){ + console.log('data: ' + JSON.stringify(data)); + // if(data.object && data.object.length > 0){ + if(data.object){ + + // for(let d of data.object){ + // if(d.dataId){ + // aws_data[d.dataId] = d; + // } + // } + aws_data[data.object.dataId] = data.object; + Foo(); + }else{ + if(callback)callback(); + } + },r.token); + }else{ + Foo(); + } + } + + function Decrypt2(r,dataIds,callback){ + if (!(dataIds && dataIds.length)) { + if(callback)callback(); + return; + } + + let Foo = function(){ + for (const id of dataIds) { + if (aws_data.hasOwnProperty(id)) { + let d = aws_data[id]; + let $e =j$("[aws-id='"+d.dataId+ "']"); + $e.each((i,e)=>{ + //j$(e).html(d[j$(e).attr("aws-api")]); + j$(e).attr('value',d[j$(e).attr("aws-api")]) + }) + + } + } + if(callback)callback(); + } + let ids = []; + for (const id of dataIds) { + if (!aws_data.hasOwnProperty(id)) { + ids.push(id); + } + } + if (ids.length > 0) { + + // AWSService.search(r.searchUrl,JSON.stringify({ + // "dataIds":ids + // }),function(data){ + AWSService.query(r.queryUrl,ids[0],function(data){ + console.log('data: ' + JSON.stringify(data)); + // if(data.object && data.object.length > 0){ + if(data.object){ + + // for(let d of data.object){ + // if(d.dataId){ + // aws_data[d.dataId] = d; + // } + // } + aws_data[data.object.dataId] = data.object; + Foo(); + }else{ + if(callback)callback(); + } + },r.token); + }else{ + Foo(); + } + } + + function DecryptAll(callback){ + let dataIds1 = []; + j$('[aws-id][aws-obj="Contact"]').each((i,e)=>{ + let v = j$(e).attr('aws-id'); + if (v) { + dataIds1.push(v); + } + }); + Decrypt1(contactstaticResource,dataIds1,callback); + + } + + function DecryptSWOAll(callback) { + let dataIds2 = []; + j$('[aws-id][aws-obj="SWO__c"]').each((i,e)=>{ + let v = j$(e).attr('aws-id'); + if (v) { + dataIds2.push(v); + } + }); + Decrypt2(staticResources,dataIds2,callback); + } + + j$(function(){ + DecryptSWOAll(); + DecryptAll(); + }) + // 20220313 PI鏀归�� by Chen Yanan end var IS_OPEN = true; j$(document).ready(function() { @@ -159,6 +302,121 @@ IS_OPEN = false; } } + //Add By Li JUn for PIPL 20220414 Start + var aws_result = {}; + + function saveSWOToAWS(){ + // document.getElementById("errorMsg").innerHTML = ''; + // if(!document.getElementById("Page:mainForm:idSearchVisitor:updateContactLastName").value){ + // document.getElementById("errorMsg").innerHTML = '<strong>閿欒:</strong> 蹇呴』濉啓銆�'; + // return; + // } + blockme(); + let es = document.getElementsByTagName('select') + for(let ei in es){ + let e = es[ei]; + for(let opi in e.options){ + let op = e.options[opi]; + if(!op)continue; + if(op.value == "*****" && op.selected){ + unblockUI(); + alert('涓嬫媺妗嗕笉鑳戒富鍔ㄩ�夋嫨瀵嗘枃閫夐」') + return; + } + } + } + ProcessPIForAWS({},GetEditObj()); + } + + function ProcessPIForAWS(sobjJson, payloadForNewPI) { + let url = staticResources.newUrl + let moduleName = AWSService.insertModule; + if (!isNew) { + console.log('Update'); + moduleName = AWSService.updateModule; + url = staticResources.updateUrl + } + console.log('Payload for AWS:'+payloadForNewPI + ' Module Name:'+moduleName); + // AWSService.postAWS(url,moduleName, payloadForNewPI, function(result){ + AWSService.post(url, payloadForNewPI, function(result){ + aws_result = result; + SetEditObj(); + saveNew(); + }, staticResources.token); + } + + function GetEditObj(){ + var swoId = j$(escapeVfId("swoid")).value(); + console.log('swoId: ' + swoId); + return JSON.stringify([{ + // lastName : document.getElementById("Page:mainForm:idSearchVisitor:updateContactLastName").value, + // phone : document.getElementById("Page:mainForm:idSearchVisitor:updateContactPhone").value, + // type : document.getElementById("Page:mainForm:idSearchVisitor:updateContactType").value, + // doctorDivision1 : document.getElementById("Page:mainForm:idSearchVisitor:updateContactDoctorDivision").value, + // dataId:selectedAwsDataId + contactNameHidden: document.getElementById("Page:mainForm:CONTACT_NAME_HIDDEN__c").value, + contactNameHiddenEncrypt: document.getElementById("Page:mainForm:CONTACT_NAME_HIDDEN_Encrypted__c").value, + dataId:'{!swoawsDataId}' + }]); + } + + function SetEditObj(){ + let obj = GetAWSResultObj(); + if(obj){ + console.log('Result from AWS:'+JSON.stringify(obj)); + document.getElementById('Page:mainForm:AWS_Data_Id__c').value = obj.dataId; + document.getElementById("Page:mainForm:CONTACT_NAME_HIDDEN__c").value = obj.contactNameHidden; + document.getElementById('Page:mainForm:CONTACT_NAME_HIDDEN_Encrypted__c').value = obj.contactNameHiddenEncrypt; + + // document.getElementById("Page:mainForm:idSearchVisitor:updateContactLastName").value = obj.lastName; + // document.getElementById("Page:mainForm:LastName_Encrypted__c").value = obj.lastNameEncrypt; + + // document.getElementById("Page:mainForm:idSearchVisitor:updateContactPhone").value = obj.phone; + // document.getElementById("Page:mainForm:Phone_Encrypted__c").value = obj.phoneEncrypt; + + // document.getElementById("Page:mainForm:idSearchVisitor:updateContactType").value = obj.type; + // document.getElementById("Page:mainForm:Type_Encrypted__c").value = obj.typeEncrypt; + + // document.getElementById("Page:mainForm:idSearchVisitor:updateContactDoctorDivision").value = obj.doctorDivision1; + // document.getElementById("Page:mainForm:Doctor_Division1_Encrypted__c").value = obj.doctorDivision1Encrypt; + } + + } + + function GetAWSResultObj(){ + if(aws_result && aws_result.object && aws_result.object.length > 0){ + return aws_result.object[0]; + } + return null; + } + + function Trans(){ + console.log('SWO ID : ' + document.getElementById('swoid').value); + var swoId = j$(escapeVfId("swoid")).value(); + console.log('SFRcordId:'+swoId); + // AWSService.postAWS(staticResources.transactionUrl,AWSService.confirmTrans, JSON.stringify({ + // "txId":aws_result.txId, + // "sfRecordId":swoId, + // "isSuccess":1 + // }), function(result){ + AWSService.post(staticResources.transactionUrl, JSON.stringify({ + "txId":aws_result.txId, + "sfRecordId":swoId, + "isSuccess":1 + }), function(result){ + //let id = document.getElementById('Page:mainForm:frontSwoId').value + let id = j$(escapeVfId("swoid")).value(); + if(id == ''){ + unblockUI(); + alert('鏁版嵁楠岃瘉閿欒') + return + } + window.location.href = '/apex/SWOPageRead?id=' + id +'&type='+'{!type}'; + //window.location.reload(); + }, staticResources.token); + } + + //Add By Li JUn for PIPL 20220414 End </script> <style type="text/css"> @@ -219,6 +477,7 @@ </style> <apex:form id="mainForm" style="width: 95%; margin-left: 30px;"> + <apex:actionFunction name="mustData" action="{!mustData}" reRender="messageInfo" oncomplete="clickColorChange('Repair')"></apex:actionFunction> <apex:actionFunction name="repairReturn" action="{!init}" reRender="mainForm" > <apex:param name="swoid" assignTo="{!swoid}" value="" /><!-- mailRepair mainForm--> @@ -226,6 +485,12 @@ <apex:actionFunction name="openPageSave" action="{!openPageSave}" reRender=""> </apex:actionFunction> <apex:actionFunction name="uploadFile" action="{!uploadFile}"></apex:actionFunction> + <!-- Add save method for PIPL 20220414 by Li Jun Start --> + <apex:inputHidden id="frontSwoId" value="{!frontSwoId}" /> + <apex:actionFunction name="saveNew" action="{!save}" reRender="swoid,frontSwoId,mainForm" onComplete="Trans()"> + <apex:param name="frontCaseId" assignto="{!caseId}" value="{!caseId}"/> + </apex:actionFunction> + <!-- Add save method for PIPL 20220414 by Li Jun End --> <input type="hidden" id="baseUrl" value="{!baseUrl}"/> <input type="hidden" id="swoid" value="{!swoid}"/> <input type="hidden" id="type" value="{!type}"/> @@ -242,7 +507,12 @@ <apex:outputPanel id="messageInfo"> <apex:pagemessages /> </apex:outputPanel> - <apex:commandButton onclick="blockme();" value="Save" action="{!save}" style="width: 5%;"/> + <!-- Before PIPL Update 20220414 By Chen Yanan Start --> + <!-- <apex:commandButton onclick="blockme();" value="Save" action="{!save}" style="width: 5%;"/> --> + <!-- Before PIPL Update 20220414 By Chen Yanan end --> + <!-- After PIPL Update 20220414 By Chen Yanan Start --> + <apex:commandButton id="saveSWO" value="Save" style="width: 5%;" onclick="saveSWOToAWS();" rerender="dummy" /> + <!-- After PIPL Update 20220414 By Chen Yanan end --> <table style="width: 100%;"> <colgroup> <col width="16%"/> @@ -299,12 +569,20 @@ <td colspan="2">{!$ObjectType.SWO__c.fields.OFFICE__c.label}<span class="textRed">*</span></td> <td><apex:inputField value="{!swo.TYPE__c}"/></td> <td colspan="2">{!$ObjectType.SWO__c.fields.CONTACT_NAME_HIDDEN__c.label}</td> + </tr> <tr> <td colspan="2"><apex:inputField value="{!swo.OFFICE__c}"/></td> <td></td> - <td colspan="2"><apex:inputField value="{!swo.CONTACT_NAME_HIDDEN__c}"/></td> + <!-- Update By Yanan --> + <!-- <td colspan="2"><apex:inputField value="{!swo.CONTACT_NAME_HIDDEN__c}"/></td> --> + <td colspan="2" > + <apex:inputHidden id="AWS_Data_Id__c" value="{!swo.AWS_Data_Id__c}"/> + <apex:inputHidden id="CONTACT_NAME_HIDDEN_Encrypted__c" value="{!swo.CONTACT_NAME_HIDDEN_Encrypted__c}"/> + <apex:inputField html-aws-obj="SWO__c" html-aws-api="contactNameHidden" html-aws-id="{!swo.AWS_Data_Id__c}" id="CONTACT_NAME_HIDDEN__c" value="{!swo.CONTACT_NAME_HIDDEN__c }" /> + </td> + <!-- Update By Yanan --> </tr> <tr> @@ -456,8 +734,12 @@ <table style="width: 100%;border-collapse: collapse;"> <tr class="title"> <td id="titleProduct" class="title1"><apex:commandLink oncomplete="clickColorChange('Product')" action="{!setProduct}" reRender="table" value="Product Info" /></td> - <td id="titleCase" class="title1"><apex:commandLink oncomplete="clickColorChange('Case')" action="{!setCase}" reRender="table" value="Case Info" /></td> - <td id="titlemail" class="title1"><apex:commandLink oncomplete="clickColorChange('mail')" action="{!setMail}" reRender="table" value="Mail Merge" /></td> + <!-- PIPL Update 20220414 By Chen Yanan Start --> + <!-- <td id="titleCase" class="title1"><apex:commandLink oncomplete="clickColorChange('Case')" action="{!setCase}" reRender="table" value="Case Info" /></td> --> + <!-- After --> + <td id="titleCase" class="title1"><apex:commandLink oncomplete="clickColorChange('Case');DecryptAll();" action="{!setCase}" reRender="table" value="Case Info" /></td> + <!-- PIPL Update 20220414 By Chen Yanan End --> + <td id="titlemail" class="title1"><apex:commandLink oncomplete="clickColorChange('mail')" action="{!setMail}" reRender="table" value="Mail Merge" /></td> <td id="titleTracking" class="title1"><apex:commandLink oncomplete="clickColorChange('Tracking')" action="{!setTracking}" reRender="table" value="Tracking" /></td> <td id="titleTechnical" class="title1"><apex:commandLink oncomplete="clickColorChange('Technical')" action="{!setTechnical}" reRender="table" value="Technical Info" /></td> <td id="titleEstimation" class="title1"><apex:commandLink oncomplete="clickColorChange('Estimation')" action="{!setEstimation}" reRender="table" value="Estimation" /></td> @@ -499,24 +781,25 @@ <td>INTERNAL ONLY</td> </tr> <apex:repeat value="{!mailList}" var="mail" id="lines"> - <tr> + <!-- Update 20220513 By Chen Yanan Start --> + <tr class="row" id="{!mail.mm.AWS_Data_Id__c}" onmouseover="showPI('{!mail.mm.AWS_Data_Id__c}')"> <td><apex:outputLink value="/apex/SendEmail?id={!mail.mm.ID}&type=SWO&typeid={!swoid}&openType=View">View</apex:outputLink> <apex:outputLink value="/apex/SendEmail?id={!mail.mm.ID}&type=SWO&typeid={!swoid}&openType=Reply">Reply</apex:outputLink></td> - <td><apex:outputField value="{!mail.mm.DATE__c}" /></td> - <td><apex:outputField value="{!mail.mm.FROM__c}" /></td> - <td><apex:outputField value="{!mail.mm.MESSAGE__c}" /></td> - <td><apex:outputText value="{!mail.mm.EMAIL_SENT__c}" /></td> - <td><apex:outputField value="{!mail.mm.toName__c}" /></td> - <td><apex:outputField value="{!mail.mm.ccName__c}" /></td> + <td><apex:outputField value="{!mail.mm.DATE__c}"/></td> + <td id="{!mail.mm.AWS_Data_Id__c}_FROM"><apex:outputField value="{!mail.mm.FROM__c}" /></td> + <td><apex:outputField value="{!mail.mm.MESSAGE__c}"/></td> + <td><apex:outputText value="{!mail.mm.EMAIL_SENT__c}"/></td> + <td id="{!mail.mm.AWS_Data_Id__c}_toName"><apex:outputField value="{!mail.mm.toName__c}"/></td> + <td id="{!mail.mm.AWS_Data_Id__c}_ccName"><apex:outputField value="{!mail.mm.ccName__c}"/></td> <td><apex:outputText value="{!mail.haveAtt}" /></td> <td> <apex:repeat value="{!mail.attList}" var="att" id="lines"> - <apex:outputLink value="/{!att.Id}"><c:PDFWbr targetStr="{!att.Name}" /></apex:outputLink> + <apex:outputLink value="/{!att.Id}"><c:PDFWbr targetStr="{!att.FileName__c}" /></apex:outputLink> <br/> </apex:repeat> </td> <td><apex:outputText value="YES" /></td> </tr> - + <!-- Update 20220513 By Chen Yanan End --> </apex:repeat> </table> @@ -701,7 +984,13 @@ </tr> <tr> <td><apex:outputField value="{!swo.CASE_NUMBER__c}" ></apex:outputField></td> - <td><apex:inputField value="{!swo.EMAIL__c}"/></td> + <!-- PIPL Update 20220414 By Chen Yanan Start --> + <!-- <td><apex:inputField value="{!swo.EMAIL__c}"/></td> --> + <td colspan="2" align="left" > + <apex:inputField html-aws-obj="Contact" html-aws-api="email" html-aws-id="{!contactAWSDataId}" value="{!swo.EMAIL__c}" /> + </td> + + <!-- PIPL Update 20220414 By Chen Yanan End --> </tr> <tr> <td>{!$ObjectType.SWO__c.fields.COMPANY__c.label}</td> @@ -716,7 +1005,13 @@ <td>{!$ObjectType.SWO__c.fields.TRAN__c.label}</td> </tr> <tr> - <td><apex:outputField value="{!swo.CONTACT__c}" ></apex:outputField></td> + <!-- 20220313 PI鏀归�� by Chen Yanan --> + <!-- <td><apex:outputField value="{!swo.CONTACT__c}" ></apex:outputField></td> --> + <td colspan="2" align="left" > + <!-- <a href="/{!swo.CONTACT__c}" aws-obj="Contact" aws-api="lastName" aws-id="{!contactAWSDataId}">{!swo.CONTACT__r.Name}</a> --> + <a href="/{!swo.CONTACT__c}" aws-obj="Contact" aws-api="lastName" aws-id="{!contactAWSDataId}">{!contactName}</a> + </td> + <!-- 20220313 PI鏀归�� by Chen Yanan --> <td><apex:inputField value="{!swo.TRAN__c}"/></td> </tr> </table> @@ -1381,9 +1676,13 @@ </apex:outputPanel> <apex:outputPanel rendered="{!IF(type = 'General' || type = 'All',true,false)}"> - <apex:commandButton value="Attach" onclick="uploadFileJS();return false;"></apex:commandButton> - - + <!-- Before PIPL Update by Li Jun 20220414 Start --> + <!-- <apex:commandButton value="Attach" action="{!uploadFile}"></apex:commandButton> --> + <!-- Before PIPL Update by Li Jun 20220414 End --> + <!-- After PIPL Update by Li Jun 20220414 Start --> + <apex:iframe src="/apex/SWOFileUploadPage?parentId={!swoid}" scrolling="true" height="300" id="fileUploadSection"/> + <!-- <input class="btn" type="Button" value="Attach" onclick="window.open('/apex/SWOFileUploadPage?parentId={!swoid}')" /> --> + <!-- After PIPL Update by Li Jun 20220414 End --> <table class="tableCss" style="border:1px solid #000000;width: 80%"> <tr style="text-align:center;"> <th style="text-align:center;width: 33%;">File Name</th> @@ -1393,9 +1692,9 @@ <apex:repeat id="attachmentList" value="{!attachmentList}" var="attachment"> <tr style="text-align:center; vertical-align: middle;"> <!-- <td><input value="{!attachment.Name}" readonly="readonly" style="border:none;"/></td> --> - <td><apex:outputLink value="/{!attachment.Id}">{!attachment.Name}</apex:outputLink></td> + <td><apex:outputLink value="/{!attachment.Id}">{!attachment.FileName__c}</apex:outputLink></td> <td><apex:inputField value="{!attachment.CreatedDate}"/></td> - <td><apex:inputField value="{!attachment.BodyLength}"/></td> + <!-- <td><apex:inputField value="{!attachment.BodyLength}"/></td>--> </tr> </apex:repeat> </table> @@ -1775,8 +2074,57 @@ <br/> <br/> <!-- <apex:commandButton action="{!save}" onclick="blockme();" value="Save" oncomplete="isOk();unblockUI();" reRender="Page,mainForm" style="width: 5%;"/> --> - <apex:commandButton onclick="blockme();" value="Save" action="{!save}" style="width: 5%;"/> + <!-- PIPL Update 20220414 By Chen Yanan --> + <!-- <apex:commandButton onclick="blockme();" value="Save" action="{!save}" style="width: 5%;"/> --> + <apex:commandButton id="saveSWOs" value="Save" style="width: 5%;" onclick="saveSWOToAWS();" rerender="dummy" /> + <script> + var mailListObj = JSON.parse('{!awsDataIdStr}'); + var staticResourceMailMerge = JSON.parse('{!staticResourceMailMerge}') + var mailList = [] + var PIDataObjList = {} + + function showPI(awsId){ + if(awsId){ + document.getElementById(awsId).children[2].children[0].children[0].innerText = PIDataObjList[awsId].author + document.getElementById(awsId).children[5].children[0].innerText = PIDataObjList[awsId].premaryRecipient + document.getElementById(awsId).children[6].children[0].innerText = PIDataObjList[awsId].cc + } + } + + + for(var i=0;i<mailListObj.length;i++){ + mailList.push(mailListObj[i]) + } + var queryBack = function queryBack(data){ + console.log(data) + if (data.object) { + for (var i=0;i<data.object.length;i++) { + // var PIDataObj = {}; + // var d = {}; + // PIDataObj.author = data.object[i].author + // PIDataObj.premaryRecipient = data.object[i].premaryRecipient + // PIDataObj.cc = data.object[i].cc + // d[data.object[i].dataId] = PIDataObj + // PIDataObjList.push(d) + var PIDataObj = {}; + PIDataObj.author = data.object[i].author + PIDataObj.premaryRecipient = data.object[i].premaryRecipient + PIDataObj.cc = data.object[i].cc + PIDataObjList[data.object[i].dataId] = PIDataObj; + } + } + unblockUI(); + }; + document.body.onload = function(){ + blockme(); + console.log('appendToOnloadQueue'); + let searchPayload = new Object(); + searchPayload.dataIds = mailList; + AWSService.search(staticResourceMailMerge.searchUrl,JSON.stringify(searchPayload),queryBack,staticResourceMailMerge.token); + } + </script> + <!-- PIPL Update 20220414 By Chen Yanan --> </apex:form> <br/> -- Gitblit v1.9.1