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>&nbsp;&nbsp;<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