SyncMadeEasy/force-app/main/default/aura/ConfiguarationFieldMapping/ConfiguarationFieldMappingC...

431 lines
20 KiB
JavaScript

({
AddNewRow : function(component, event, helper){
//fire the AddNewRowEvt Lightning Event var
var params = {"indexVar" : component.get("v.rowIndex"),
"Objecttype" : component.get("v.Objecttype")
};
component.getEvent("AddRowEvt").setParams({"Objecttype" : component.get("v.Objecttype") }).fire();
// component.getEvent("AddRowEvt").setParams({"Objecttype" : JSON.stringify(params)}).fire();
},
checkDefault : function(component, event, helper){
if(component.get("v.type")=='BOOLEAN'){
component.set("v.objectInstance.selectedfields",false);
}else{
component.set("v.objectInstance.selectedfields","");
}
component.set("v.objectInstance.flag",true);
},
removeRow : function(component, event, helper){
// fire the DeleteRowEvt Lightning Event and pass the deleted Row Index to Event parameter/attribute
// console.log('***removeRow');
//console.log( component.get("v.rowIndex") );
//console.log( component.get("v.Objecttype") );
var params = { "indexVar" : component.get("v.rowIndex"),
"Objecttype" : component.get("v.Objecttype") };
component.getEvent("DeleteRowEvt").setParams( { "deleteObject" : JSON.stringify(params) } ).fire();
},
doInit : function(component, event, helper) {
if(component.get("v.objectInstance.fieldDisabled") != undefined){
component.set("v.fieldDisabled",component.get("v.objectInstance.fieldDisabled"));
}
if(component.get("v.objectInstance.flag") == undefined ) {
//helper.getObjectFieldsHelper( component, event );
var Defaultlist = component.get("v.defaultFieldMappingObject");
var filterdlist = component.get("v.filteredList");
var Displaydefaultlist = [];
/* filterdlist.forEach(function(element) {
//console.log("****Defaultvalue ");
//console.log(element);
//filterdlist.forEach(function(element2) {
//console.log("****Filteredtvalue ");
//console.log(element);
var getElementIndex = Defaultlist.indexOf(element);
if(getElementIndex != -1){
Displaydefaultlist.push(element);
}else{
//component.set('v.filteredList',false);
}
//})
})
component.set('v.filteredList',Displaydefaultlist);*/
//var selectedfield = component.get("v.objectInstance");
// console.log('********objectInstance*******');
//console.log(selectedlist);
helper.InsertFilteredlist(component, event, helper);
var selectedfield = component.get("v.objectInstance.selectedfields");
if(selectedfield=='false') component.set("v.objectInstance.selectedfields", false);
if(selectedfield != null && selectedfield != '' && selectedfield !== 'undefined'){
if(selectedfield.includes(',')){
component.set("v.objectInstance.flag", false);
component.set("v.objectInstance.shopifyFieldName", null);
component.set("v.objectInstance.shopifyNested", null);
}else{
component.set("v.objectInstance.flag", true);
}
}else{
component.set("v.objectInstance.flag", true);
}
/* var sobjectTypevalue = component.get("v.objectInstance.sobjectType");
if(sobjectTypevalue != null && sobjectTypevalue != '' && sobjectTypevalue !== 'undefined'){
if(sobjectTypevalue == 'Opportunity Product'){
component.set("v.Spinner", false);
}else{
component.set("v.Spinner", true);
}
} */
}
},
closeModal:function(component,event,helper){
var nestevalue = false ;
var singlevalue = false ;
var nestedfield = '';
var selectedvalue1 = component.find('multiPicklist').get('v.value').split(";");
selectedvalue1.forEach(function(element) {
console.log('gerfilteredList2');
//console.log(element);
if(element.includes('.') ){ //&& ( element.includes('default_address') || element.includes('shipping_address') ||element.includes('billing_address') )
nestevalue = true;
nestedfield = selectedvalue1[0].split(".")[0];
}else{
singlevalue = true;
}
})
if(nestevalue == true && singlevalue == true ){
component.set("v.applyandcloseerror",true);
component.set("v.selectedfieldmappingError"," *Please multiple select single fields or nested fields at a time.");
// alert('please choose single item or multiple');
}
var cmpTarget = component.find('Modalbox');
var cmpBack = component.find('Modalbackdrop');
//console.log('New');
//console.log(component.find("multiPicklist"));
// var plValue;
//console.log(component.find("multiPicklist").get("v.value"));
if( !component.get("v.applyandcloseerror") && (component.find("multiPicklist").get("v.value") == null || component.find("multiPicklist").get("v.value") == '') ){
//alert('please choose atleast one vlaue');
component.set("v.applyandcloseerror",true);
component.set("v.selectedfieldmappingError"," *Please select atleast one value");
}else if(!component.get("v.applyandcloseerror")){
var plValue = component.find("multiPicklist").get("v.value").replace(/;/g,",");
var garphQlValues = '';
if(plValue){
var picklistValues = plValue.split(',');
var filteredValues = component.get("v.filteredList");
// console.log('@@@ FILTERED VALUES ::: '+JSON.stringify(filteredValues));
// console.log('@@@ picklistValues VALUES ::: '+JSON.stringify(picklistValues));
for(let value of filteredValues){
// console.log('@@@ picklistValues value ::: '+JSON.stringify(value));
picklistValues.forEach(function(element){
if(element.includes('.') && element.split('.')[1] === value.HIC_ShopifySync__Field_Name__c){
// console.log('THIS IS IF CONDITION');
// console.log('@@@ picklistValues.includes ::: '+JSON.stringify(value));
if(value.hasOwnProperty('HIC_ShopifySync__GQL_Field_API__c')){
garphQlValues += value.HIC_ShopifySync__GQL_Field_API__c + ',';
}
// console.log('@@@ picklistValues.includes ::: '+JSON.stringify(garphQlValues));
}else if(element === value.HIC_ShopifySync__Field_Name__c){
// console.log('THIS IS if else CONDITION');
// console.log('@@@ picklistValues.includes ::: '+JSON.stringify(value));
if(value.hasOwnProperty('HIC_ShopifySync__GQL_Field_API__c')){
garphQlValues += value.HIC_ShopifySync__GQL_Field_API__c + ',';
}
// console.log('@@@ picklistValues.includes ::: '+JSON.stringify(garphQlValues));
}else{
console.log('THIS IS ELSE CONDITION ::: '+element);
}
});
}
garphQlValues.slice(0, -1);
// console.log('@@@ picklistValues '+garphQlValues.slice(0, -1));
}
// console.log('@@@ garphQlValues '+garphQlValues.slice(0, -1));
// component.set("v.objectInstance.selectedfields", plValue);
component.set("v.objectInstance.graphqlfield", garphQlValues.slice(0, -1));
// console.log('@@@@@@@@@@@@@@@@@@ THIS IS FIELD config::: '+component.get("v.objectInstance.graphqlfield"));
component.set("v.objectInstance.shopifyFieldName", null);
component.set("v.objectInstance.shopifyNested", null);
component.set("v.objectInstance.flag", false);
component.set("v.objectInstance.selectedfields", plValue);
var shopifyfield = component.get('v.objectInstance.shopifyFieldName');
$A.util.removeClass(cmpBack,'slds-backdrop--open');
$A.util.removeClass(cmpTarget, 'slds-fade-in-open');
// console.log('@@@@@@@@@@@@@@@@@@ THIS IS OBject ::: '+JSON.stringify(component.get("v.objectInstance")));
}
},
// console.log(plValue);
cancelModal:function(component,event,helper){
//console.log( 'cancelModal++++' );
var cmpTarget = component.find('Modalbox');
var cmpBack = component.find('Modalbackdrop');
component.set("v.applyandcloseerror",false);
$A.util.removeClass(cmpBack,'slds-backdrop--open');
$A.util.removeClass(cmpTarget, 'slds-fade-in-open');
component.set("v.objectInstance.flag", true);
component.set("v.objectInstance.selectedfields", null);
//component.set("v.selectedfields", plValue);
//var selectList = component.get("v.selectedfields").split(';');
//component.set("v.selectList", selectList);
//*************For Refresh the list**************//
// console.log( '1111-->'+component.get("v.objectInstance.salesforcefields"));
var selectedvalue = component.get("v.objectInstance.salesforcefields");
var dataTable2 = component.get("v.table2Data");
var dataType = '';
dataTable2.forEach(function(element) {
// console.log('*********-->'+element);
// console.log(element);
if( element.filedApiName == selectedvalue ){
//dataType = element.dataType;
//console.log('*********-->'+selectedvalue);
//console.log(selectedvalue);
component.set("v.type",element.dataType);
if(element.dataType == 'STRING' || element.dataType == 'TEXTAREA' || element.dataType == 'PICKLIST' || element.dataType == 'ADDRESS' || element.dataType == 'URL' || element.dataType == 'EMAIL' || element.dataType == 'ID'){
dataType = 'string';
}else if(element.dataType == 'DOUBLE' || element.dataType == 'CURRENCY' || element.dataType == 'INTEGER'){
dataType = 'number';
}else if(element.dataType == 'DATE' || element.dataType == 'DATETIME'){
dataType = 'datetime';
}else if(element.dataType == 'BOOLEAN'){
dataType = 'boolean';
}else if( element.dataType == 'PHONE'){
dataType = 'phone';
}
}
});
var options = component.get("v.options");
var filterList = [];
if( dataType != null && dataType != ''){
var objectTableData2 = component.get("v.objectTableData2");
//console.log('*****dataType****'+dataType);
objectTableData2.forEach(function(element) {
//console.log(element);
if(dataType.toLowerCase() == 'string'){
filterList.push( element );
var newItem = {};
newItem['label'] = element.UI_Label_Name__c;
newItem['value'] = element.Name;
options.push(newItem);
}
else if( element.HIC_ShopifySync__Data_Type__c.toLowerCase() == dataType.toLowerCase() ){
//console.log('*****element.Data_Type__c****'+element.HIC_ShopifySync__Data_Type__c);
filterList.push( element );
var newItem = {};
newItem['label'] = element.HIC_ShopifySync__UI_Label_Name__c;
newItem['value'] = element.Name;
options.push(newItem);
}
});
//console.log( filterList );
component.set("v.filteredList",filterList);
//console.log( component.get("v.filteredList"));
// console.log( filterList);
//component.set("v.options",options);
// console.log( component.get("v.options"));
}
},
openmodal:function(component,event,helper) {
var cmpTarget = component.find('Modalbox');
var cmpBack = component.find('Modalbackdrop');
$A.util.addClass(cmpTarget, 'slds-fade-in-open');
$A.util.addClass(cmpBack, 'slds-backdrop--open');
component.set("v.applyandcloseerror",false);
// plValue = component.find("multiPicklist").get("v.value")
},
defaultMappingchange:function(component,event,helper) {
var defaultCheck = component.get("v.objectInstance.DefaultValue");
if(defaultCheck){
//component.set("v.objectInstance.DefaultValue",false);
}else{
//component.set("v.objectInstance.DefaultValue",true);
}
},
getFilteredList:function(component,event,helper) {
//console.log( 'getFilteredList++++' );
//console.log( event.getSource().get("v.value") );
var selectedvalue = event.getSource().get("v.value");
var dataTable2 = component.get("v.table2Data");
var accountlist = component.get("v.ObjectListPassed");
var duplicateListVaue = 1;
console.log('dataTable2');
//console.log(JSON.stringify(component.get("v.objectInstance")));
//console.log(JSON.stringify(dataTable2));
for(var item in accountlist){
if(accountlist[item]['salesforcefields'] == selectedvalue ){
duplicateListVaue = duplicateListVaue + 1;
}
}
if(duplicateListVaue >= 3){
component.set("v.isOpen",true);
setTimeout(function(){
component.set("v.isOpen",false);
event.getSource().set("v.value","");
},2000);
}else{
component.set("v.isOpen",false);
}
var validForm = component.find('shopifyfield').get("v.validity");
//debugger;
var dataType = '';
console.log(selectedvalue);
dataTable2.forEach(function(element) {
if( element.filedApiName == selectedvalue ){
console.log('element.filedApiName--');
console.log(element.filedApiName);
console.log(element.dataType);
//dataType = element.dataType;
component.set("v.type",element.dataType);
if(element.dataType == 'STRING' || element.dataType == 'TEXTAREA' || element.dataType == 'PICKLIST' || element.dataType == 'ADDRESS' || element.dataType == 'URL' || element.dataType == 'EMAIL' || element.dataType == 'ID'){
dataType = 'string';
}else if(element.dataType == 'DOUBLE' || element.dataType == 'CURRENCY' || element.dataType == 'INTEGER' || element.dataType == 'PERCENT'){
dataType = 'number';
}else if(element.dataType == 'DATE' || element.dataType == 'DATETIME'){
dataType = 'datetime';
}else if(element.dataType == 'BOOLEAN'){
dataType = 'boolean';
}else if( element.dataType == 'PHONE'){
dataType = 'phone';
}
}
});
var options = component.get("v.options");
var filterList = [];
if( dataType != null && dataType != ''){
var objectTableData2 = component.get("v.objectTableData2");
objectTableData2.forEach(function(element) {
if(dataType.toLowerCase() == 'string'){
filterList.push( element );
var newItem = {};
newItem['label'] = element.UI_Label_Name__c;
newItem['value'] = element.Name;
options.push(newItem);
}
else if( element.HIC_ShopifySync__Data_Type__c.toLowerCase() == dataType.toLowerCase() ){
filterList.push( element );
var newItem = {};
newItem['label'] = element.HIC_ShopifySync__UI_Label_Name__c;
newItem['value'] = element.Name;
options.push(newItem);
}
});
component.set("v.filteredList",filterList);
component.set("v.options",options);
}
},
getFilteredList2:function(component,event,helper) {
var nestevalue = false ;
var singlevalue = false ;
var nestedfield = '';
var selectedvalue1 = component.find('multiPicklist').get('v.value').split(";");
selectedvalue1.forEach(function(element) {
console.log('gerfilteredList2');
console.log(element);
if(element.includes('.') ){ //&& ( element.includes('default_address') || element.includes('shipping_address') ||element.includes('billing_address') )
nestevalue = true;
nestedfield = selectedvalue1[0].split(".")[0];
}else{
singlevalue = true;
}
})
if(nestevalue == true && singlevalue == true ){
component.set("v.applyandcloseerror",true);
component.set("v.selectedfieldmappingError"," *Please multiple select single fields or nested fields at a time.");
// alert('please choose single item or multiple');
}else{
var selectedvalue = component.find('multiPicklist').get('v.value');
var filteredList = component.get("v.filteredList");
var filterList = [];
if(selectedvalue != '' && selectedvalue != null){
filteredList.forEach(function(element) {
console.log('filter on');
console.log(selectedvalue);
console.log(nestedfield);
console.log(element.HIC_ShopifySync__UI_Label_Name__c);
/*if(selectedvalue.includes('.') && selectedvalue.includes('default_address')){
if( element.HIC_ShopifySync__UI_Label_Name__c.includes('.') && element.HIC_ShopifySync__UI_Label_Name__c.includes('default_address')){
filterList.push( element );
}
}else if(selectedvalue.includes('.') && selectedvalue.includes('shipping_address')){
if( element.HIC_ShopifySync__UI_Label_Name__c.includes('.') && element.HIC_ShopifySync__UI_Label_Name__c.includes('shipping_address')){
filterList.push( element );
}
}else if(selectedvalue.includes('.') && selectedvalue.includes('billing_address')){
if( element.HIC_ShopifySync__UI_Label_Name__c.includes('.') && element.HIC_ShopifySync__UI_Label_Name__c.includes('billing_address')){
filterList.push( element );
}
}else*/ if(selectedvalue.includes('.') && selectedvalue.includes(nestedfield)){
if(nestedfield == element.HIC_ShopifySync__UI_Label_Name__c.split('.')[0] && element.HIC_ShopifySync__UI_Label_Name__c.includes('.') && element.HIC_ShopifySync__UI_Label_Name__c.includes(nestedfield)){
filterList.push( element );
}
}else {
if( !element.HIC_ShopifySync__UI_Label_Name__c.includes('.')){
filterList.push( element );
}
}
});
component.set("v.filteredList",filterList);
component.set("v.applyandcloseerror",false);
}
//component.set(component.find('multiPicklist').get('v.value'),filterList);
}
}
})