From 1b214a96d371ce90578fb7d6c14eecfcba5f87f0 Mon Sep 17 00:00:00 2001
From: 涂煌豪 <tuhuanghao@prec-tech.com>
Date: 星期一, 11 四月 2022 18:52:32 +0800
Subject: [PATCH] Sfdc2PoContactBatch修改
---
force-app/main/default/pages/NewAndEditInquiryForm.page | 297 ++++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 231 insertions(+), 66 deletions(-)
diff --git a/force-app/main/default/pages/NewAndEditInquiryForm.page b/force-app/main/default/pages/NewAndEditInquiryForm.page
index be37f91..b3e7658 100644
--- a/force-app/main/default/pages/NewAndEditInquiryForm.page
+++ b/force-app/main/default/pages/NewAndEditInquiryForm.page
@@ -63,7 +63,7 @@
//payloadJson.AWS_Data_Id__c = r.object[0].dataId;
payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
- if (isNewMode) {
+ if (isNewMode || {!isCloneMode}) {
payloadJson.AWS_Data_Id__c = r.object[0].dataId;
} else {
payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
@@ -84,7 +84,8 @@
let arr = data.object[f].split(';');
// 缁欓殣钘忕殑select璧嬪��
- for(let op of ele.options){
+ for(let opi in ele.options){
+ let op = ele.options[opi];
op.selected = arr.indexOf(op.value)>-1;
}
@@ -127,7 +128,7 @@
var VLookUpFields = {! VLookUpFieldsJson};
function ProcessPI(sobjJson, payloadForNewPI) {
blockme();
- if ({!isNewMode}) {
+ if ({!isNewMode} || {!isCloneMode}) {
NewPIToAWS(sobjJson, payloadForNewPI)
}else {
UpdatePIToAWS(sobjJson, payloadForNewPI)
@@ -141,7 +142,8 @@
}
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+'_','');
}
@@ -176,8 +178,10 @@
}
}
- for(let e of document.getElementsByTagName('select')){
- for(let op of e.options){
+ for(let ei in document.getElementsByTagName('select')){
+ let e = document.getElementsByTagName('select')[ei];
+ for(let opi in e.options){
+ let op = e.options[opi];
if(op.value == "*****" && op.selected){
error_msg += ';涓嬫媺妗嗕笉鑳戒富鍔ㄩ�夋嫨瀵嗘枃閫夐」';
}
@@ -216,9 +220,9 @@
v = ele.value;
}
- if(v && v != "000000000000000"){
+ //if(v && v != "000000000000000"){
result[field_api_name] = v;
- }
+ //}
}
} else if (ele.type == 'checkbox') {
@@ -330,7 +334,7 @@
// 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
@@ -356,7 +360,7 @@
errorMsgNode.className = '';
}
- var newSearchContactWindow = null;
+ var newSearchContactWindow = null;
var contactHtmlString = '<img src="/img/s.gif" onclick="searchContact(\'page:form:contactId\')" alt="Reference Document Number Lookup" class="lookupIcon" title="Reference Document Number Lookup (New Window)"/>';
function htmlToElement(html) {
var template = document.createElement('template');
@@ -378,18 +382,21 @@
accountValue = document.getElementById(accountNodeId).value;
}
console.log(accountValue);
+
+ let searchContactKeyWord = document.querySelector("[data-id='Contact_Name__c']").value;
if(accountValue !='000000000000000'){
- suffixUrl = "?contactId="+contactNodeId+"&accountId="+accountValue;
+ suffixUrl = "?contactId=" + contactNodeId + "&accountId=" + accountValue+"&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';
+ newSearchContactWindow = window.open(baseUrl+suffixUrl, 'Popup', newSearchContactParam);
+ if (window.focus) {
+ newSearchContactWindow.focus();
+ }
+ return false;
}else{
- suffixUrl = "?contactId="+contactNodeId;
+ // suffixUrl = "?contactId="+contactNodeId+"&searchContactKeyWord=" + searchContactKeyWord;
+ alertErrorMessage('璇峰厛閫夋嫨绉戝鍚�');
}
- let baseUrl = "/apex/SearchContactPage";
- let newSearchContactParam = 'height=600,width=800,left=100,top=100,dialogHide=true,resizable=no,scrollbars=yes,toolbar=no,status=no';
- newSearchContactWindow = window.open(baseUrl+suffixUrl, 'Popup', newSearchContactParam);
- if (window.focus) {
- newSearchContactWindow.focus();
- }
- return false;
}
//绐楀彛鍏抽棴鏃跺彂鐢�
function closePopupWindow() {
@@ -408,10 +415,13 @@
function replaceSearchContactLookup() {
let lookUpNode = htmlToElement(contactHtmlString);
console.log(lookUpNode);
- if (!{!isNewMode}) {
- //1. Query Contact from AWS by AWSDataId
- queryContactName()
- }
+ let eleContactValue = document.querySelector("[data-id='Contact_Name__c']").parentNode.parentNode.children[1].value;
+ if (eleContactValue) {
+ if (!{!isNewMode} || (eleContactValue != '000000000000000')) {
+ //1. Query Contact from AWS by AWSDataId
+ queryContactName()
+ }
+ }
let parentNode = document.querySelector("[data-id='Contact_Name__c']").parentNode;
document.querySelector("[data-id='Contact_Name__c']").removeAttribute("onchange");
parentNode.replaceChild(lookUpNode, document.querySelector("[data-id='Contact_Name__c']").parentNode.children[2]);
@@ -421,25 +431,25 @@
let sfId = document.getElementById(document.querySelector("[data-id='Contact_Name__c']").id + '_lkid').value;
let contactsInfo = JSON.parse('{!LookUpOverrideFieldsMapJson}');
let dataId = contactsInfo[sfId];
- // let queryContactBack = function(data){
- // //To Do later
- // console.log('ContactData = ' + data.object);
+ let queryContactBack = function(data){
+ //To Do later
+ console.log('ContactData = ' + data.object);
- // document.querySelector("[data-id='Contact_Name__c']").value = data.object.lastName;
- // }
- // AWSService.query(staticResourcesContact.queryUrl, dataId, queryContactBack, staticResources.token);
- let url = staticResourcesContact.queryUrl + '?dataId=' + dataId;
- fetch(url, {
- method: 'GET',
- headers: {
- 'Content-Type': 'application/json',
- 'pi-token': staticResources.token
- }
- }).then((data) => {
- return data.json();
- }).then((result) => {
- document.querySelector("[data-id='Contact_Name__c']").value = result.object.lastName;
- })
+ document.querySelector("[data-id='Contact_Name__c']").value = data.object.lastName;
+ }
+ AWSService.query(staticResourcesContact.queryUrl, dataId, queryContactBack, staticResources.token);
+ // let url = staticResourcesContact.queryUrl + '?dataId=' + dataId;
+ // fetch(url, {
+ // method: 'GET',
+ // headers: {
+ // 'Content-Type': 'application/json',
+ // 'pi-token': staticResources.token
+ // }
+ // }).then((data) => {
+ // return data.json();
+ // }).then((result) => {
+ // document.querySelector("[data-id='Contact_Name__c']").value = result.object.lastName;
+ // })
}
//For Lead Search
@@ -460,7 +470,8 @@
function searchLead(leadNodeId){
// let accountValue = "";
// let suffixUrl = "";
- let suffixUrl = "?leadId="+leadNodeId;
+ let searchLeadKeyWord = document.querySelector("[data-id='Lead_link__c']").value;
+ let suffixUrl = "?leadId="+leadNodeId+"&searchLeadKeyWord=" + searchLeadKeyWord;
let baseUrl = "/apex/SearchLeadPage";
let newSearchLeadParam = 'height=600,width=800,left=100,top=100,dialogHide=true,resizable=no,scrollbars=yes,toolbar=no,status=no';
newSearchLeadWindow = window.open(baseUrl+suffixUrl, 'Popup', newSearchLeadParam);
@@ -485,36 +496,35 @@
let sfId = document.getElementById(document.querySelector("[data-id='Lead_link__c']").id + '_lkid').value;
let leadsInfo = JSON.parse('{!LookUpOverrideFieldsMapJson}');
let dataId = leadsInfo[sfId];
- // let queryLeadBack = function(data){
- // //To Do later
- // console.log('ContactData = ' + data.object);
+ let queryLeadBack = function(data){
+ //To Do later
+ console.log('ContactData = ' + data.object);
- // document.querySelector("[data-id='Lead_link__c']").value = data.object.lastName;
- // }
- // AWSService.query(staticResourcesLead.queryUrl, dataId, queryLeadBack, staticResources.token);
- let url = staticResourcesLead.queryUrl + '?dataId=' + dataId;
- fetch(url, {
- method: 'GET',
- headers: {
- 'Content-Type': 'application/json',
- 'pi-token': staticResources.token
- }
- }).then((data) => {
- return data.json();
- }).then((result) => {
- document.querySelector("[data-id='Lead_link__c']").value = result.object.lastName;
- })
+ document.querySelector("[data-id='Lead_link__c']").value = data.object.lastName;
+ }
+ AWSService.query(staticResourcesLead.queryUrl, dataId, queryLeadBack, staticResources.token);
+ // let url = staticResourcesLead.queryUrl + '?dataId=' + dataId;
+ // fetch(url, {
+ // method: 'GET',
+ // headers: {
+ // 'Content-Type': 'application/json',
+ // 'pi-token': staticResources.token
+ // }
+ // }).then((data) => {
+ // return data.json();
+ // }).then((result) => {
+ // document.querySelector("[data-id='Lead_link__c']").value = result.object.lastName;
+ // })
}
-
</script>
<div class="bPageTitle">
<div class="ptBody">
<div class="content">
<img src="/img/s.gif" alt="{! SobjectLabel}" class="pageTitleIcon" title="{! SobjectLabel}" />
- <h1 class="pageType">{! SobjectLabel}<apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText>
+ <h1 class="pageType">{! SobjectLabel}<apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText>
<span class="titleSeparatingColon">:</span>
</h1>
- <h2 class="pageDescription"> <apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText>{! SobjectLabel}</h2>
+ <h2 class="pageDescription"> <apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText>{! SobjectLabel}</h2>
<div class="blank"> </div>
</div>
<div class="links">
@@ -537,7 +547,7 @@
<tr>
<td class="pbTitle">
<img src="/img/s.gif" alt="" class="minWidth" title="" width="1" height="1" />
- <h2 class="mainTitle">{! SobjectLabel}<apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText></h2>
+ <h2 class="mainTitle">{! SobjectLabel}<apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText></h2>
</td>
<td class="pbButton" id="topButtonRow">
<input class="btn" type="Button" value="{!$Label.Save}" onclick="saveSobjectProcess()" />
@@ -570,7 +580,38 @@
</apex:pageBlockSection>
</apex:repeat>
<script>
+ var api_id_map={};
sfdcPage.appendToOnloadQueue(function () {
+ var init_nodes = document.getElementsByClassName("PIBackApi");
+ 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;
+ }
+ }
+ }
+
+ 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) {
+ let e = document.querySelector("[data-id='"+layoutField.fieldAPI+"']");
+ e.disabled = !(layoutField.editableField);
+ if (!(layoutField.editableField)) {
+ if (e.getAttribute("multiple") && e.getAttribute("multiple") == 'multiple') {
+ e.parentNode.classList.add("disabledbutton");
+ }else if (e.tagName == 'DIV') {
+ e.classList.add("disabledbutton");
+ }else if (VLookUpFields.indexOf(layoutField.fieldAPI) >= 0) {
+ e.parentNode.classList.add("disabledbutton");
+ }
+ }
+ }
+ }
+ }
//1. Set Last Name label
//document.querySelector("[data-id='LastName']").parentNode.parentNode.parentNode.children[2].children[0].innerText = '濮撳悕';
//2. Query AWS Data by dataId
@@ -579,14 +620,138 @@
blockme();
QuerySobjectFromAWS();
unblockUI();
- }
+ }else{
+ let ot = jQuery('input[data-id="OwnerId"]');
+ let oi = document.getElementById(ot.attr("id")+'_lkid');
+ ot.val('{!CurrentUserName}');
+ ot.attr("readonly","");
+ ot.css("background","unset");
+ ot.css("border","0");
+ ot.css( "outline","0");
+ jQuery('a[data-id="OwnerId"]').remove();
+ if(oi){
+ oi.value = '{!CurrentUserId}'
+ }
+ }
//Replace Contact Vlookup Field
replaceSearchContactLookup();
//Replace Lead Vlookup Field
replaceSearchLeadLookup();
document.querySelectorAll("[data-id='OwnerId']")[0].classList.add("disabledbutton");
- document.querySelectorAll("[data-id='OwnerId']")[1].classList.add("disabledbutton");
+ // document.querySelectorAll("[data-id='OwnerId']")[1].classList.add("disabledbutton");
+
+ jQuery('a[data-id="OwnerId"]').remove();
+
+ //Updated by Li Jun 20220322 Start
+ /*
+
+ 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 = '';
+ }
+ }
+ });*/
+ //Updated by Li Jun 20220322 End
+ let previous_value = {};
+ jQuery(".lookupInput input").each(function(i,e){
+ let je =jQuery(e);
+
+ let dataid = je.attr('data-id');
+ if(['Contact_Name__c','Lead_link__c'].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 = '';
+ }
+ })
+ })
+
+ jQuery("body").on("change","input[data-id='Hospital_Name__c']",function(){
+ setTimeout(() => {
+ console.log(document.getElementById(this.id+'_lkid').value);
+ var hospitalNameValue = document.getElementById(this.id+'_lkid').value;
+ if (hospitalNameValue != "000000000000000" && hospitalNameValue != '') {
+ console.log("hospitalNameValue = " + hospitalNameValue);
+
+ var ls = ['Department_Class__c','Hospital__c'];
+ setVlookup(ls,hospitalNameValue);
+ }else{
+ clearVlookup('Department_Class__c');
+ clearVlookup('Hospital__c');
+ }
+ }, 50);
+ });
});
+
+ function setVlookup(lookups, lookup_id){
+ let controllerSaveMethod = '{!$RemoteAction.NewAndEditInquiryFormController.queryAccount}';
+ Visualforce.remoting.Manager.invokeAction(
+ controllerSaveMethod,
+ JSON.stringify(lookups), lookup_id,
+ function (result, event) {
+ console.log("result = " + result);
+ if (result != null ){
+ var obj = JSON.parse(result.replaceAll('&'+'quot;','"'));
+ for (let i = 0; i < lookups.length; i++) {
+ let lookup = lookups[i];
+ if (!obj[lookup]) {
+ continue;
+ }
+ let ele = document.querySelector("[data-id='"+lookup+"']");
+ let elei1 = document.getElementById(ele.id + '_lkid');
+ let elei2 = document.getElementById(ele.id + '_lkold');
+
+ ele.value=obj[lookup].Name;
+ elei1.value = obj[lookup].Id;
+ elei2.value = obj[lookup].Name;
+
+ let inputele = document.querySelector("[data-id='"+lookup+"']").parentNode;
+ if (inputele.childNodes.length > 4){
+ inputele.childNodes[0].style = "";
+ inputele.childNodes[1].style = "display: inline-block;";
+ inputele.childNodes[2].style = "display: none;";
+ }
+
+ }
+ }
+ },
+ { escape: true }
+ );
+ };
+
+ function clearVlookup(lookup){
+ let ele = document.querySelector("[data-id='"+lookup+"']");
+ let elei1 = document.getElementById(ele.id + '_lkid');
+ let elei2 = document.getElementById(ele.id + '_lkold');
+
+ ele.value='';
+ elei1.value = '';
+ elei2.value = '';
+
+ let inputele = document.querySelector("[data-id='"+lookup+"']").parentNode;
+ if (inputele.childNodes.length > 4){
+ inputele.childNodes[0].style = "display: none;";
+ inputele.childNodes[1].style = "display: none;";
+ inputele.childNodes[2].style = "";
+ }
+ }
</script>
<div class="pbBottomButtons">
<table cellspacing="0" cellpadding="0" border="0">
--
Gitblit v1.9.1