From 08a21f49f2eaf9cfc19ceb67b196cc36ba689305 Mon Sep 17 00:00:00 2001 From: buli <137736985@qq.com> Date: 星期五, 13 五月 2022 20:52:25 +0800 Subject: [PATCH] FIxSWOPageIssue --- force-app/main/default/pages/SWOPageRead.page | 310 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 292 insertions(+), 18 deletions(-) diff --git a/force-app/main/default/pages/SWOPageRead.page b/force-app/main/default/pages/SWOPageRead.page index d076824..3f64b56 100644 --- a/force-app/main/default/pages/SWOPageRead.page +++ b/force-app/main/default/pages/SWOPageRead.page @@ -5,8 +5,97 @@ <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/> <apex:includeScript value="{!URLFOR($Resource.connection20)}"/> <apex:includeScript value="{!URLFOR($Resource.apex20)}"/> - + <!-- Update 20220315 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}'); + + 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 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); + } + }); + Decrypt1(staticResources,dataIds2,callback); + } + + j$(function(){ + DecryptSWOAll(); + DecryptAll(); + }) + // 20220313 PI鏀归�� by Chen Yanan end + j$(document).ready(function() { var type = j$(escapeVfId("type")).value(); clickColorChange(type); @@ -252,7 +341,14 @@ <tr> <td colspan="2"><apex:outputField value="{!swo.OFFICE__c}"/></td> <td></td> - <td colspan="2"><apex:outputField value="{!swo.CONTACT_NAME_HIDDEN__c}"/></td> + <!-- 20220315 PI鏀归�� by Chen Yanan start --> + <!-- <td colspan="2"><apex:outputField value="{!swo.CONTACT_NAME_HIDDEN__c}"/></td> --> + <!-- <td colspan="2" align="left" ><apex:outputField html-aws-obj="SWO__C" html-aws-api="contactName" html-aws-id="{!swo.CONTACT_NAME_HIDDEN__c}" id="CONTACT_NAME_HIDDEN__c" value="{!swo.CONTACT_NAME_HIDDEN__c}"/></td> --> + <td colspan="2" align="left" > + <apex:inputHidden id="AWS_Data_Id__c" value="{!swo.AWS_Data_Id__c}"/> + <apex:outputField 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> + <!-- 20220315 PI鏀归�� by Chen Yanan End --> </tr> <tr> @@ -403,8 +499,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> @@ -447,18 +547,18 @@ <td>INTERNAL ONLY</td> </tr> <apex:repeat value="{!mailList}" var="mail" id="lines"> - <tr class="row"> + <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> @@ -648,7 +748,13 @@ </tr> <tr> <td><apex:outputField value="{!swo.CASE_NUMBER__c}" ></apex:outputField></td> - <td><apex:outputField 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 class="hand">{!$ObjectType.SWO__c.fields.COMPANY__c.label}</td> @@ -663,7 +769,13 @@ <td class="hand">{!$ObjectType.SWO__c.fields.TRAN__c.label}</td> </tr> <tr> - <td><apex:outputField value="{!swo.CONTACT__c}" ></apex:outputField></td> + <!-- 20220315 PI鏀归�� by Chen Yanan start --> + <!-- <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> + <!-- 20220315 PI鏀归�� by Chen Yanan End --> <td><apex:outputField value="{!swo.TRAN__c}"/></td> </tr> </table> @@ -1329,9 +1441,10 @@ </apex:outputPanel> <apex:outputPanel rendered="{!IF(type = 'General' || type = 'All',true,false)}"> + <!-- Before PIPL Update by Li Jun 20220414 Start --> <apex:commandButton value="Attach" action="{!uploadFile}"></apex:commandButton> - - + <!-- Before PIPL Update by Li Jun 20220414 End --> + <input class="btn" type="Button" value="PIPL Attach" onclick="window.open('/apex/SWOFileUploadPage')" /> <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> @@ -1341,9 +1454,9 @@ <apex:repeat id="attachmentList" value="{!attachmentList}" var="attachment"> <tr style="text-align:center; vertical-align: middle;"> <!-- <td><output 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:outputField value="{!attachment.CreatedDate}"/></td> - <td><apex:outputField value="{!attachment.BodyLength}"/></td> + <!-- <td><apex:outputField value="{!attachment.BodyLength}"/></td> --> </tr> </apex:repeat> </table> @@ -1721,6 +1834,167 @@ <br/> <br/> <apex:commandButton action="{!edit}" value="EDIT" style="width: 5%;"/> + <script> + + function stringbuilder() { + this.arr = new Array(); + this.append = function (str) { + this.arr.push(str); + } + this.tostring = function () { + return this.arr.join(''); + } + } + + function toJSONString(s) { + var sb = new stringbuilder() + for (var i = 0; i < s.length; i++) { + var c = s[i]; + + switch (c) { + + case '\"': + + sb.append("\\\""); + + break; + + case '\\': + + sb.append("\\\\"); + + break; + + case '/': + + sb.append("\\/"); + + break; + + case '\b': + + sb.append("\\b"); + + break; + + case '\f': + + sb.append("\\f"); + + break; + + case '\n': + + sb.append("\\n"); + + break; + + case '\r': + + sb.append("\\r"); + + break; + + case '\t': + + sb.append("\\t"); + + break; + + case '=': + + sb.append("锛�"); + + break; + + case '&': + + sb.append("锛�"); + + break; + + case '?': + + sb.append("?"); + + break; + + case '%': + + sb.append("锛�"); + + break; + + default: + + if ((c >= 0 && c <= 31) || c == 127)//鍦ˋSC鈪$爜涓紝绗�0锝�31鍙峰強绗�127鍙�(鍏�33涓�)鏄帶鍒跺瓧绗︽垨閫氳涓撶敤瀛楃 + + { + + } + + else { + + sb.append(c); + + } + + break; + + } + } + + return sb.tostring() + } + console.log('{!mailListStr}'.replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\s+/g,"").replace("\"/g","\\\"")) + var mailListObj = JSON.parse('{!mailListStr}'.replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\s+/g,"")) + 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].mm.AWS_Data_Id__c) + } + 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> </apex:form> -- Gitblit v1.9.1