|  |  |  | 
|---|
|  |  |  | <!-- | 
|---|
|  |  |  | @description       : | 
|---|
|  |  |  | @author            : ChangeMeIn@UserSettingsUnder.SFDoc | 
|---|
|  |  |  | @group             : | 
|---|
|  |  |  | @last modified on  : 03-23-2022 | 
|---|
|  |  |  | @last modified by  : ChangeMeIn@UserSettingsUnder.SFDoc | 
|---|
|  |  |  | --> | 
|---|
|  |  |  | <apex:page standardController="ASEActivity__c" extensions="NewAndEditASEActivityController" id="page"> | 
|---|
|  |  |  | <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" /> | 
|---|
|  |  |  | <script src="../../soap/ajax/53.0/connection.js" type="text/javascript"></script> | 
|---|
|  |  |  | 
|---|
|  |  |  | SaveAndNew:false, | 
|---|
|  |  |  | AWSToSobjectMap:{!AWSToSobjectMapJson}, | 
|---|
|  |  |  | AWSToSobjectNonEncryptedMap:{!AWSToSobjectNonEncryptedMapJson}, | 
|---|
|  |  |  | AWSToSobjectNonEncryptedMapKeySet:{!AWSToSobjectNonEncryptedMapKeySet}, | 
|---|
|  |  |  | AWSToSobjectEncryptedMap:{!AWSToSobjectEncryptedMapJson}, | 
|---|
|  |  |  | SobjectToAWSModel:function (sobjJson) { | 
|---|
|  |  |  | let leadPayloadList = []; | 
|---|
|  |  |  | 
|---|
|  |  |  | queryBack:function (data) { | 
|---|
|  |  |  | console.log('data = ' + data); | 
|---|
|  |  |  | if(data.object){ | 
|---|
|  |  |  | for(let f in config.AWSToSobjectNonEncryptedMap){ | 
|---|
|  |  |  | let ele = GetEleByClass(config.ApiPrefix + "_"+ config.AWSToSobjectNonEncryptedMap[f]); | 
|---|
|  |  |  | for(let fi in config.AWSToSobjectNonEncryptedMapKeySet){ | 
|---|
|  |  |  | let f = config.AWSToSobjectNonEncryptedMapKeySet[fi]; | 
|---|
|  |  |  | let ele = document.getElementById(api_id_map[config.AWSToSobjectNonEncryptedMap[f]]) | 
|---|
|  |  |  | if(data.object.hasOwnProperty(f) && ele){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 多选特殊处理 | 
|---|
|  |  |  | if(ele.type == 'select-multiple'){ | 
|---|
|  |  |  | //let me = GetEleByClass(config.ApiPrefix+'_'+field_api_name); | 
|---|
|  |  |  | if(ele && data.object[f]){ | 
|---|
|  |  |  | let arr = data.object[f].split(';'); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 给隐藏的select赋值 | 
|---|
|  |  |  | for(let op of ele.options){ | 
|---|
|  |  |  | op.selected = arr.indexOf(op.value)>-1; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 利用按钮给显示的select赋值 | 
|---|
|  |  |  | let ra = document.getElementById(ele.id + '_right_arrow'); | 
|---|
|  |  |  | if(ra){ | 
|---|
|  |  |  | ra.click(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(ele ){ | 
|---|
|  |  |  | //_unselected | 
|---|
|  |  |  | let v = ''; | 
|---|
|  |  |  | if(data.object[f]){ | 
|---|
|  |  |  | v = data.object[f]; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | let arr = v.split(';'); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for(let opi in ele.options){ | 
|---|
|  |  |  | let op = ele.options[opi]; | 
|---|
|  |  |  | if(!op)continue; | 
|---|
|  |  |  | op.selected = arr.indexOf(op.value)>-1; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | let ra = document.getElementById(ele.id + '_right_arrow'); | 
|---|
|  |  |  | if(ra){ | 
|---|
|  |  |  | ra.click(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | ele.value = data.object[f]; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(ele.type.indexOf("select")>-1 && ele.value){ | 
|---|
|  |  |  | jQuery(ele).change() | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else{ | 
|---|
|  |  |  | console.log(f + 'is not in data.object'); | 
|---|
|  |  |  | console.log(f + ' is not in data.object'); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | var staticResourcesContact = JSON.parse('{!staticResourceContact}'); | 
|---|
|  |  |  | console.log('{!staticResource}'); | 
|---|
|  |  |  | var VLookUpFields = {! VLookUpFieldsJson}; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function ProcessPI(sobjJson, payloadForNewPI) { | 
|---|
|  |  |  | blockme(); | 
|---|
|  |  |  | if ({!isNewMode}) { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var GetEleApiName = function(ele){ | 
|---|
|  |  |  | for(let c of ele.classList){ | 
|---|
|  |  |  | for(let ci in ele.classList){ | 
|---|
|  |  |  | let c = ele.classList[ci]; | 
|---|
|  |  |  | if(c.indexOf(config.ApiPrefix+'_')>-1){ | 
|---|
|  |  |  | return c.replace(config.ApiPrefix+'_',''); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | return ''; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function IsFormElement(tag_name){ | 
|---|
|  |  |  | return ['input','select','textarea'].indexOf(tag_name)>-1; | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function getPIPayload(sobjJson) { | 
|---|
|  |  |  | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | let phone = document.querySelector(textPhone); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(phone && !/^1[3|5|8|7][0-9]\d{4,8}$/.test(phone.value)){ | 
|---|
|  |  |  | error_msg += ';电话号码错误'; | 
|---|
|  |  |  | if(phone ){ | 
|---|
|  |  |  | if(phone.value){ | 
|---|
|  |  |  | if(!/^1[3|5|8|7][0-9]\d{4,8}$/.test(phone.value)){ | 
|---|
|  |  |  | error_msg += ';电话号码错误'; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | if(phone.previousSibling && phone.previousSibling.className.indexOf('requiredBlock')>-1){ | 
|---|
|  |  |  | error_msg += ';电话号码错误'; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for(let e of document.getElementsByTagName('select')){ | 
|---|
|  |  |  | for(let op of e.options){ | 
|---|
|  |  |  | 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){ | 
|---|
|  |  |  | error_msg += ';下拉框不能主动选择密文选项'; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | let nodelist = document.getElementsByClassName(config.ApiPrefix); | 
|---|
|  |  |  | let result = {} | 
|---|
|  |  |  | for (let index = 0; index < nodelist.length; index++) { | 
|---|
|  |  |  | let ele = nodelist[index]; | 
|---|
|  |  |  | let field_api_name = GetEleApiName(ele); | 
|---|
|  |  |  | for (let index in api_id_map) { | 
|---|
|  |  |  | let ele = document.getElementById(api_id_map[index]); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | let field_api_name = index; | 
|---|
|  |  |  | let tag_name = ele.tagName.toLowerCase(); | 
|---|
|  |  |  | if(!IsFormElement(tag_name)){ | 
|---|
|  |  |  | if(!IsFormTag(tag_name)){ | 
|---|
|  |  |  | console.log('tag_name='+tag_name+',field_api_name'+field_api_name+' is not a form element'); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | v = ele.value; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(v && v != "000000000000000"){ | 
|---|
|  |  |  | // if(v && v != "000000000000000"){ | 
|---|
|  |  |  | result[field_api_name] = v; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else if (ele.type == 'checkbox') { | 
|---|
|  |  |  | 
|---|
|  |  |  | // Check Required Field | 
|---|
|  |  |  | let checkRequiredFieldMsgResult = checkRequiredFieldMsg(sobjJson); | 
|---|
|  |  |  | if (checkRequiredFieldMsgResult) { | 
|---|
|  |  |  | alertErrorMessage('requiredErrorMsg' + checkRequiredFieldMsgResult); | 
|---|
|  |  |  | alertErrorMessage('{!$Label.Input_Required_Field_Msg}' + checkRequiredFieldMsgResult); | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // //3. Prepare the payload for New PI API To AWS - To Do | 
|---|
|  |  |  | 
|---|
|  |  |  | accountValue = document.getElementById(accountNodeId).value; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | console.log('accountValue = ' + accountValue); | 
|---|
|  |  |  | let searchContactKeyWord = document.querySelector("[data-id='ReporterASE__c']").value; | 
|---|
|  |  |  | if(accountValue !='000000000000000'){ | 
|---|
|  |  |  | suffixUrl = "?contactId="+contactNodeId+"&accountId="+accountValue; | 
|---|
|  |  |  | suffixUrl = "?contactId="+contactNodeId+"&accountId="+accountValue+"&searchContactKeyWord=" + searchContactKeyWord; | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | suffixUrl = "?contactId="+contactNodeId; | 
|---|
|  |  |  | suffixUrl = "?contactId="+contactNodeId+"&searchContactKeyWord=" + searchContactKeyWord; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | let baseUrl = "/apex/SearchContactPage"; | 
|---|
|  |  |  | let newSearchContactParam = 'height=600,width=800,left=100,top=100,dialogHide=true,resizable=no,scrollbars=yes,toolbar=no,status=no'; | 
|---|
|  |  |  | 
|---|
|  |  |  | function replaceSearchContactLookup() { | 
|---|
|  |  |  | let lookUpNode = htmlToElement(contactHtmlString); | 
|---|
|  |  |  | console.log(lookUpNode); | 
|---|
|  |  |  | if (!{!isNewMode}) { | 
|---|
|  |  |  | let eleContactValue = document.querySelector("[data-id='ReporterASE__c']").parentNode.parentNode.children[0].value; | 
|---|
|  |  |  | if (!{!isNewMode} || (eleContactValue != '000000000000000')) { | 
|---|
|  |  |  | //1. Query Contact from AWS by AWSDataId | 
|---|
|  |  |  | queryContactName() | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | </apex:pageBlockSection> | 
|---|
|  |  |  | </apex:repeat> | 
|---|
|  |  |  | <script> | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | console.log(api_id_map); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | sfdcPage.appendToOnloadQueue(function () { | 
|---|
|  |  |  | var layoutSections = JSON.parse('{!layoutSectionsStr}'); | 
|---|
|  |  |  | for (let m = 0; m < layoutSections.length; m++) { | 
|---|
|  |  |  | let layoutSection = layoutSections[m].layoutFields; | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //1. Set Last Name label | 
|---|
|  |  |  | //document.querySelector("[data-id='LastName']").parentNode.parentNode.parentNode.children[2].children[0].innerText = '姓名'; | 
|---|
|  |  |  | //2. Query AWS Data by dataId | 
|---|
|  |  |  | 
|---|
|  |  |  | //Replace Vlookup Field | 
|---|
|  |  |  | replaceSearchContactLookup(); | 
|---|
|  |  |  | document.querySelectorAll("[data-id='OwnerId']")[0].classList.add("disabledbutton"); | 
|---|
|  |  |  | document.querySelectorAll("[data-id='OwnerId']")[1].classList.add("disabledbutton"); | 
|---|
|  |  |  | jQuery('a[data-id="OwnerId"]').remove(); | 
|---|
|  |  |  | /* | 
|---|
|  |  |  | 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 = ''; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | let previous_value = {}; | 
|---|
|  |  |  | jQuery(".lookupInput input").each(function(i,e){ | 
|---|
|  |  |  | let je =jQuery(e); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | let dataid = je.attr('data-id'); | 
|---|
|  |  |  | if(['ContactId'].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 = ''; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | </script> | 
|---|
|  |  |  | <div class="pbBottomButtons"> | 
|---|