Li Jun
2022-03-28 f5a94e721ae5a26f817f0df75065b64f1f192eb3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<apex:page standardController="Event" extensions="NewAndEditEventController" id="page">
    <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }"/>
    <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
    <!-- <script src="../../soap/ajax/53.0/connection.js" type="text/javascript"></script> -->
    <apex:form id="form">
        <apex:pageblock id="pageBlock">
            <apex:pageBlockSection showHeader="false" title="" collapsible="true" columns="2" id="pageBlockSection">
                <!--Each section has layoutFields, let's iterate them as well-->
                <!-- <apex:repeat value="{!layoutEncryptedAPIList}" var="encryptedAPI">
                    <apex:outputField html-data-id="{!encryptedAPI}" title="{!ApiPrefix}{!encryptedAPI}" value="{!Event[encryptedAPI]}" />
                </apex:repeat> -->
                <apex:outputField html-data-id="Visitor1__c" title="{!ApiPrefix}Visitor1__c" value="{!Event['Visitor1__c']}" />
                <apex:outputField html-data-id="Visitor2__c" title="{!ApiPrefix}Visitor2__c" value="{!Event['Visitor2__c']}" />
                <apex:outputField html-data-id="Visitor3__c" title="{!ApiPrefix}Visitor3__c" value="{!Event['Visitor3__c']}" />
                <apex:outputField html-data-id="Visitor4__c" title="{!ApiPrefix}Visitor4__c" value="{!Event['Visitor4__c']}" />
                <apex:outputField html-data-id="Visitor5__c" title="{!ApiPrefix}Visitor5__c" value="{!Event['Visitor5__c']}" />
            </apex:pageBlockSection>
            <script>
                // var config = {
                //     SobjectName : "{!SobjectName}",
                //     ApiPrefix:"{!ApiPrefix}",
                //     AWSToSobjectMap:{!AWSToSobjectMapJson},
                //     AWSToSobjectNonEncryptedMap:{!AWSToSobjectNonEncryptedMapJson},
                //     AWSToSobjectEncryptedMap:{!AWSToSobjectEncryptedMapJson}
                // };
                
                var staticResources = JSON.parse('{!staticResources}');
                var contactAWSIds = JSON.parse('{!contactAWSIds}'); //AWS ContactId
                var sfIdToContactInfo = {};
 
                function preparePayloadForSearchContact(){
                    let searchPayload = new Object();
                    searchPayload.dataIds = contactAWSIds;
                    searchPayload.contactName = '';
                    console.log('searchPayload: ' + JSON.stringify(searchPayload));
                    return JSON.stringify(searchPayload);
                }
 
                function searchContactAll(){
                    let data = preparePayloadForSearchContact();
                    let searchCallBack = function searchCallBack(result){
                        let contacts = result.object;
                        console.log('contacts: ' + contacts);
                        if(contacts == null){
                            return;
                        }
                        //赋值给前端页面
                        for(var i=0;i<contacts.length;i++){
                            // let temp = {}
                            // temp.lastName = contacts[i].lastName?contacts[i].lastName:'';
                            // console.log('temp.lastName: ' + temp.lastName);
                            console.log('contacts[i].lastName?contacts[i].lastName:' + contacts[i].lastName?contacts[i].lastName:'');
                            document.querySelector("[data-id='Visitor" + (i + 1) + "__c']").innerHTML = contacts[i].lastName?contacts[i].lastName:'';
                        //     if(contacts[i].sfRecordId){
                        //         sfIdToContactInfo[contacts[i].sfRecordId] = temp;
                        //     }
                        }
                        // console.log('AWS Result:' + JSON.stringify(sfIdToContactInfo));
                    };
                    AWSService.search(staticResources.searchUrl,data,searchCallBack,staticResources.token);
                }
                // function QuerySobjectFromAWS() {
                //     AWSService.query(staticResources.queryUrl, '{!AWSDataId}', queryBack, staticResources.token);
                // }
                // var queryBack = function queryBack(data) {
                //     if(!data.object){
                //         console.log('data.object is ' + data.object);
                //         return;
                //     }
 
                //     for(let f in config.AWSToSobjectNonEncryptedMap){
                //         let t = "[title='"+config.ApiPrefix+config.AWSToSobjectNonEncryptedMap[f]+"']";
                //         let ele = document.querySelector(t);
                //         if(ele){
                //             ele.title = '';
                //             if(data.object.hasOwnProperty(f)){
                //                 ele.innerHTML = data.object[f];
                //             }
                //             else{
                //                 console.log(f + 'is not in data.object');
                //             }
                //         }else{
                //             console.log('selector='+t+' not found');
                //         }
                        
                //     }
                //     // 当不能自动正确替换加密数据时需要在此处添加js,硬编码处理
                //     // document.querySelector("[data-id='LastName']").value = data.object.lastName;
                // };
                sfdcPage.appendToOnloadQueue(function () {
                    console.log('sfdcPage.appendToOnloadQueue')
                    // document.querySelector("[data-id='LastName']").parentNode.parentNode.parentNode.children[0].innerText = '姓名'
                    //QuerySobjectFromAWS();
                    searchContactAll();
                });
            </script>
        </apex:pageblock>
    </apex:form>
</apex:page>