2200 lines
80 KiB
JavaScript
2200 lines
80 KiB
JavaScript
( function( $ ) {
|
||
'use strict';
|
||
|
||
// i18n variables
|
||
const ajaxUrl = hubwooi18n.ajaxUrl;
|
||
const hubwooWentWrong = hubwooi18n.hubwooWentWrong;
|
||
const hubwooMailSuccess = hubwooi18n.hubwooMailSuccess;
|
||
const hubwooMailFailure = hubwooi18n.hubwooMailFailure;
|
||
const hubwooSecurity = hubwooi18n.hubwooSecurity;
|
||
const hubwooAccountSwitch = hubwooi18n.hubwooAccountSwitch;
|
||
const hubwooOcsSuccess = hubwooi18n.hubwooOcsSuccess;
|
||
const hubwooOcsError = hubwooi18n.hubwooOcsError;
|
||
const hubwooOverviewTab = hubwooi18n.hubwooOverviewTab;
|
||
const dataCounter = {
|
||
percentage: 0,
|
||
totalCount: 0,
|
||
totalGrpPrCreated: 0,
|
||
setupRunning: false
|
||
};
|
||
|
||
jQuery( document ).ready(
|
||
function() {
|
||
const createLists = ( list ) => {
|
||
return new Promise(
|
||
( resolve, reject ) => {
|
||
const listData = {
|
||
action: 'hubwoo_create_list',
|
||
listDetails: list,
|
||
hubwooSecurity,
|
||
};
|
||
jQuery.ajax( { url: ajaxUrl, type: 'POST', data: listData } )
|
||
.then(
|
||
( listResponse ) => {
|
||
if ( listResponse != null ) {
|
||
const response = jQuery.parseJSON( listResponse );
|
||
const responseCode = response.status_code;
|
||
if ( responseCode == 200 || responseCode == 409 ) {
|
||
dataCounter.totalGrpPrCreated += 1;
|
||
dataCounter.percentage = ( ( dataCounter.totalGrpPrCreated / dataCounter.totalCount ) * 100 ).toFixed( 0 );
|
||
updateProgressBar( dataCounter.percentage );
|
||
resolve( response );
|
||
} else {
|
||
reject( response );
|
||
}
|
||
}
|
||
},
|
||
);
|
||
},
|
||
);
|
||
};
|
||
|
||
const createGroupsToHS = ( groupName, type ) => {
|
||
let action = '';
|
||
|
||
if ( type == 'contact' ) {
|
||
action = 'hubwoo_create_property_group';
|
||
} else if ( type == 'deal' ) {
|
||
action = 'hubwoo_deals_create_group';
|
||
}
|
||
|
||
const groupData = {
|
||
action,
|
||
createNow: 'group',
|
||
groupName,
|
||
hubwooSecurity,
|
||
};
|
||
|
||
return new Promise(
|
||
( resolve, reject ) => {
|
||
jQuery.ajax( { url: ajaxUrl, type: 'POST', data: groupData } )
|
||
.done(
|
||
( groupResponse ) => {
|
||
const groupRes = jQuery.parseJSON( groupResponse );
|
||
groupRes.name = groupName;
|
||
if ( groupRes.status_code == 201 || groupRes.status_code == 409 ) {
|
||
dataCounter.totalGrpPrCreated += 1;
|
||
dataCounter.percentage = ( ( dataCounter.totalGrpPrCreated / dataCounter.totalCount ) * 100 ).toFixed( 0 );
|
||
updateProgressBar( dataCounter.percentage );
|
||
resolve( groupRes );
|
||
} else {
|
||
reject( groupRes );
|
||
}
|
||
},
|
||
);
|
||
},
|
||
);
|
||
};
|
||
|
||
const createPropertiesToHS = ( dealProperty, type ) => {
|
||
let action = '';
|
||
if ( type == 'contact' ) {
|
||
action = 'hubwoo_create_group_property';
|
||
} else if ( type == 'deal' ) {
|
||
action = 'hubwoo_deals_create_property';
|
||
}
|
||
|
||
return new Promise(
|
||
( resolve, reject ) => {
|
||
const createProperties = {
|
||
action,
|
||
propertyDetails: dealProperty,
|
||
hubwooSecurity,
|
||
};
|
||
jQuery.ajax( { url: ajaxUrl, type: 'POST', data: createProperties } )
|
||
.done(
|
||
function( propertyResponse ) {
|
||
const propRes = jQuery.parseJSON( propertyResponse );
|
||
|
||
if ( propRes.status_code == 201 ) {
|
||
dataCounter.totalGrpPrCreated += propRes.body.results.length;
|
||
dataCounter.percentage = ( ( dataCounter.totalGrpPrCreated / dataCounter.totalCount ) * 100 ).toFixed( 0 );
|
||
updateProgressBar( dataCounter.percentage );
|
||
resolve( propRes );
|
||
} else if ( propRes.status_code == 207 ) {
|
||
dataCounter.totalGrpPrCreated += propRes.body.numErrors;
|
||
dataCounter.percentage = ( ( dataCounter.totalGrpPrCreated / dataCounter.totalCount ) * 100 ).toFixed( 0 );
|
||
updateProgressBar( dataCounter.percentage );
|
||
resolve( propRes );
|
||
} else {
|
||
reject( propRes );
|
||
}
|
||
},
|
||
);
|
||
},
|
||
);
|
||
};
|
||
|
||
const debounce = ( func, delay ) => {
|
||
let callDebounce;
|
||
|
||
return function() {
|
||
const context = this;
|
||
const args = arguments;
|
||
clearTimeout( callDebounce );
|
||
callDebounce = setTimeout( () => func.apply( context, args ), delay );
|
||
};
|
||
};
|
||
|
||
const trackInputCheckboxes = () => {
|
||
return {
|
||
hubwoo_customers_manual_sync: '.hubwoo-date-range',
|
||
hubwoo_abncart_delete_old_data: '.delete-after-date',
|
||
hubwoo_checkout_optin_enable: '#hubwoo_checkout_optin_label',
|
||
hubwoo_registeration_optin_enable: '#hubwoo_registeration_optin_label',
|
||
hubwoo_ecomm_order_date_allow: '.hubwoo-date-d-range',
|
||
};
|
||
};
|
||
|
||
const arrayChunk = ( array, size ) => {
|
||
const tempArray = [];
|
||
|
||
const length = array.length;
|
||
let initialIndex = 0,
|
||
maxLength = Math.round( length / size ),
|
||
lastIndex = size;
|
||
|
||
for ( let index = 0; index < maxLength + 1; index += 1 ) {
|
||
const cutArr = array.slice( initialIndex, lastIndex );
|
||
if ( cutArr.length > 0 ) {
|
||
tempArray.push( cutArr );
|
||
}
|
||
initialIndex = lastIndex;
|
||
lastIndex += size;
|
||
}
|
||
|
||
return tempArray;
|
||
};
|
||
|
||
const runEcommSetup = async () => {
|
||
|
||
const totalProducts = jQuery( '.hubwoo-info' ).data( 'products' );
|
||
await jQuery.ajax( { url: ajaxUrl, type: 'POST', data: { action: 'hubwoo_ecomm_setup', hubwooSecurity, process: 'start-products-sync' } } );
|
||
if(dataCounter.setupRunning) { updateProgressBar( 95 ) }
|
||
let response = await jQuery.ajax( { url: ajaxUrl, type: 'POST', data: { action: 'hubwoo_ecomm_setup', hubwooSecurity, process: 'update-deal-stages' } } );
|
||
|
||
return response
|
||
}
|
||
|
||
|
||
const manageSpinText = ( job, type, result = 'none' ) => {
|
||
if ( type == 'add' ) {
|
||
job.addClass( 'fa' );
|
||
job.removeClass( 'hubwoo-cr-btn' );
|
||
job.removeClass( 'hubwoo-crd-btn' );
|
||
job.addClass( 'fa-spinner' );
|
||
job.addClass( 'fa-spin' );
|
||
job.text( '' );
|
||
} else if ( type == 'remove' ) {
|
||
job.removeClass( 'fa' );
|
||
job.removeClass( 'fa-spinner' );
|
||
job.removeClass( 'fa-spin' );
|
||
job.addClass( 'hubwoo-cr-btn' );
|
||
job.text( 'Created' );
|
||
|
||
if ( result == 'failed' ) {
|
||
job.addClass( 'hubwoo-crd-btn' );
|
||
job.text( 'Create' );
|
||
}
|
||
}
|
||
};
|
||
|
||
const updateProgressBar = ( percentage, mode = 1 ) => {
|
||
if ( mode == 1 ) {
|
||
jQuery( '.hubwoo-progress-bar' ).css( 'width', percentage + '%' );
|
||
jQuery( '.hubwoo-progress-bar' ).html( percentage + '%' );
|
||
jQuery( '.hubwoo-progress-notice' ).html( hubwooOcsSuccess );
|
||
} else if ( mode == 2 ) {
|
||
jQuery( '.hubwoo-progress-notice' ).html( hubwooOcsError );
|
||
jQuery( '.hubwoo-progress-bar' ).addClass( 'hubwoo-progress-error' );
|
||
jQuery( '.hubwoo-progress-bar' ).css( 'width', '100%' );
|
||
jQuery( '.hubwoo-progress-bar' ).html( 'Failed! Please check error log or contact support' );
|
||
}
|
||
};
|
||
|
||
const capitalize = (s) => {
|
||
if (typeof s !== 'string') return ''
|
||
return s.charAt(0).toUpperCase() + s.slice(1)
|
||
}
|
||
|
||
const transferScreen = async( screenKey, lastKey = undefined ) => {
|
||
let redirectUrl,
|
||
redirect = true,
|
||
currentPage = window.location.href;
|
||
|
||
if ( lastKey == undefined ) {
|
||
lastKey = 'hubwoo_key';
|
||
}
|
||
|
||
if ( ! currentPage.includes( lastKey ) ) {
|
||
currentPage = jQuery( '.mwb-heb__nav-list-item:eq(0) a' ).attr( 'href' );
|
||
}
|
||
redirectUrl = currentPage.substring( 0, currentPage.indexOf( lastKey ) );
|
||
redirectUrl += lastKey;
|
||
|
||
switch ( screenKey ) {
|
||
case 'move-to-grp-pr':
|
||
redirectUrl += '=grp-pr-setup';
|
||
break;
|
||
case 'move-to-list':
|
||
redirectUrl += '=list-setup';
|
||
break;
|
||
case 'move-to-sync':
|
||
redirectUrl += '=sync';
|
||
break;
|
||
case 'move-to-pipeline':
|
||
redirectUrl += '=pipeline-setup';
|
||
break;
|
||
case 'greet-to-dashboard':
|
||
await saveUpdates( { 'hubwoo_connection_setup_established': 1 } );
|
||
redirectUrl += '=hubwoo-overview';
|
||
break;
|
||
case 'move-to-dashboard':
|
||
redirectUrl += '=hubwoo-overview';
|
||
break;
|
||
case 'skip-list-creation':
|
||
jQuery( '.hubwoo_pop_up_wrap' ).slideUp( 800 );
|
||
redirect = lastKey != 'hubwoo_key'
|
||
? false
|
||
: 'true' == await saveUpdates( { 'hubwoo_pro_lists_setup_completed': 1 } )
|
||
? true
|
||
: false;
|
||
break;
|
||
default:
|
||
location.reload();
|
||
}
|
||
|
||
if ( redirect ) {
|
||
window.location.href = redirectUrl;
|
||
}
|
||
};
|
||
|
||
const getCurrentUsersToSync = () => {
|
||
jQuery.post(
|
||
ajaxUrl,
|
||
{ action: 'hubwoo_get_user_for_current_roles', hubwooSecurity },
|
||
function( totalUsers ) {
|
||
let message = 'We have found ' + totalUsers + ' Users';
|
||
|
||
if ( jQuery( '#hubwoo_customers_manual_sync' ).is( ':checked' ) ) {
|
||
message += ` from ${ jQuery( '#hubwoo_users_from_date' ).val() } to ${ jQuery( '#hubwoo_users_upto_date' ).val() }`;
|
||
}
|
||
jQuery('#hubwoo-usr-spin').hide()
|
||
jQuery( '.hubwoo-ocs-btn-notice' ).text( message + ' ready to be synced over HubSpot' );
|
||
if ( totalUsers > 0 ) {
|
||
jQuery( '.hubwoo-osc-instant-sync' ).attr( 'data-total_users', totalUsers );
|
||
jQuery( '#hubwoo-osc-instant-sync' ).fadeIn();
|
||
jQuery( '#hubwoo-osc-schedule-sync' ).hide();
|
||
} else {
|
||
jQuery( '.hubwoo-ocs-btn-notice' ).delay( 1500 ).slideDown( 5000 );
|
||
jQuery( '.hubwoo-ocs-btn-notice' ).text( 'We could not find any user / order, please try changing the filters' );
|
||
jQuery( '#hubwoo-osc-instant-sync' ).hide();
|
||
jQuery( '#hubwoo-osc-schedule-sync' ).hide();
|
||
}
|
||
|
||
if ( totalUsers > 500 ) {
|
||
jQuery( '#hubwoo-osc-schedule-sync' ).fadeIn();
|
||
jQuery( '#hubwoo-osc-instant-sync' ).hide();
|
||
}
|
||
|
||
const userRoles = jQuery( '#hubwoo_customers_role_settings' ).val();
|
||
|
||
if ( userRoles === undefined || userRoles.length === 0 ) {
|
||
jQuery( '.hubwoo-ocs-btn-notice' ).hide();
|
||
jQuery( '#hubwoo-osc-instant-sync' ).hide();
|
||
jQuery( '#hubwoo-osc-schedule-sync' ).hide();
|
||
}
|
||
},
|
||
);
|
||
};
|
||
const startContactSync = async( step, progress ) => {
|
||
const response = await jQuery.ajax(
|
||
{
|
||
type: 'POST',
|
||
url: ajaxUrl,
|
||
data: {
|
||
action: 'hubwoo_ocs_instant_sync',
|
||
step,
|
||
hubwooSecurity,
|
||
},
|
||
dataType: 'json',
|
||
},
|
||
).fail(
|
||
( response ) => {
|
||
updateProgressBar( response.progress, 2 );
|
||
saveUpdates( [ 'hubwoo_total_ocs_need_sync' ], 'delete' );
|
||
},
|
||
);
|
||
|
||
if ( 100 == response.progress && response.propertyError != true ) {
|
||
updateProgressBar( response.progress );
|
||
jQuery( '.hubwoo-progress-notice' ).html( hubwooOcsSuccess );
|
||
jQuery( 'a#hubwoo-osc-instant-sync' ).hide();
|
||
await saveUpdates( { 'hubwoo_greeting_displayed_setup': 'yes' } );
|
||
location.reload();
|
||
} else if ( response.propertyError == true ) {
|
||
updateProgressBar( 100, 2 );
|
||
saveUpdates( [ 'hubwoo_total_ocs_need_sync' ], 'delete' );
|
||
} else {
|
||
updateProgressBar( Math.ceil( response.progress ) );
|
||
startContactSync( parseInt( response.step ), parseInt( response.progress ) );
|
||
}
|
||
};
|
||
|
||
const getDealsUsersToSync = async() => {
|
||
const ocsCount = await jQuery.post( ajaxUrl, { action: 'hubwoo_ecomm_get_ocs_count', hubwooSecurity } );
|
||
|
||
let message = 'No Users found. Please change the filters below.';
|
||
|
||
if ( ocsCount > 0 ) {
|
||
message = `We have found ${ ocsCount } Orders for the selected order statuses`;
|
||
jQuery( '.manage_deals_ocs' ).fadeIn();
|
||
} else {
|
||
jQuery( '.manage_deals_ocs' ).hide();
|
||
jQuery( '.deal-sync_progress' ).hide();
|
||
message = 'No Orders found for the selected order statuses';
|
||
}
|
||
if(jQuery('#hubwoo_ecomm_order_date_allow').is(':checked')) {
|
||
message += ' and date range'
|
||
}
|
||
|
||
jQuery( '.hubwoo_deals_message[data-sync-type="order"]' ).text( message );
|
||
jQuery( '.hubwoo-group-wrap__deal_notice[data-type="pBar"]' ).slideDown( 'slow' );
|
||
};
|
||
|
||
const saveUpdates = ( data, action = 'update' ) => {
|
||
return jQuery.post( ajaxUrl, { action: 'hubwoo_save_updates', hubwooSecurity, updates: data, type: action } );
|
||
};
|
||
|
||
const prepareFormData = ( data, enableKeys = null, singleKeys = false ) => {
|
||
const preparedFormData = {};
|
||
|
||
data.map(
|
||
( formElement ) => {
|
||
let { name, value } = formElement;
|
||
if ( enableKeys != null ) {
|
||
enableKeys.map(
|
||
( enableKey ) => {
|
||
if ( name == enableKey.key ) {
|
||
enableKey.status = 'yes';
|
||
}
|
||
},
|
||
);
|
||
}
|
||
if ( name.includes( '[]' ) == false && singleKeys ) {
|
||
preparedFormData[ name ] = value;
|
||
}
|
||
if ( name.includes( '[]' ) && value != '' ) {
|
||
name = name.replace( '[]', '' );
|
||
|
||
if ( preparedFormData.hasOwnProperty( name ) ) {
|
||
preparedFormData[ name ].push( value );
|
||
} else {
|
||
preparedFormData[ name ] = [ value ];
|
||
}
|
||
}
|
||
},
|
||
);
|
||
|
||
if ( enableKeys !== null ) {
|
||
enableKeys.map(
|
||
( enableKey ) => {
|
||
preparedFormData[ enableKey.key ] = enableKey.status;
|
||
},
|
||
);
|
||
}
|
||
|
||
return preparedFormData;
|
||
};
|
||
|
||
Object.entries( trackInputCheckboxes() ).map(
|
||
( elementData ) => {
|
||
const [ key, hideField ] = elementData;
|
||
if ( jQuery( `#${ key }` ).is( ':checked' ) ) {
|
||
jQuery( '.hubwoo-date-range' ).closest( 'tr' ).slideDown();
|
||
} else {
|
||
jQuery( hideField ).closest( 'tr' ).hide();
|
||
}
|
||
}
|
||
);
|
||
|
||
jQuery( '#hubwoo_pro_switch' ).on(
|
||
'click',
|
||
function( e ) {
|
||
if ( ! confirm( hubwooAccountSwitch ) ) {
|
||
e.preventDefault();
|
||
return false;
|
||
}
|
||
},
|
||
);
|
||
|
||
if ( jQuery( '#get_workflow_scope' ).val() == 'false' ) {
|
||
setTimeout(
|
||
function() {
|
||
jQuery( '.hubwoo_pop_up_wrap' ).slideDown( 'slow' );
|
||
},
|
||
1000
|
||
);
|
||
}
|
||
const dataOfSelected = jQuery( '#hubwoo_customers_role_settings' ).val();
|
||
if ( dataOfSelected != null ) {
|
||
jQuery.post(
|
||
ajaxUrl,
|
||
{ action: 'hubwoo_get_current_sync_status', hubwooSecurity, data: { type: 'contact' } },
|
||
function( response ) {
|
||
// response = jQuery.parseJSON( response );
|
||
if ( response === true || response == 1 ) {
|
||
jQuery( '#hubwoo_customers_role_settings' ).attr( { disabled: 'true' } );
|
||
jQuery( '#hubwoo_customers_manual_sync' ).attr( { disabled: 'true' } );
|
||
} else {
|
||
getCurrentUsersToSync();
|
||
}
|
||
},
|
||
);
|
||
}
|
||
|
||
const innerWidth = jQuery( '.hubwoo-form-wizard-wrapper' ).find( '.hubwoo-form-wizard-link' ).innerWidth();
|
||
const position = jQuery( '.hubwoo-form-wizard-wrapper' ).find( '.hubwoo-form-wizard-link' ).position();
|
||
if ( position != null ) {
|
||
jQuery( '.hubwoo-form-wizardmove-button' ).css( { left: position.left, width: innerWidth } );
|
||
}
|
||
|
||
if( new URLSearchParams(window.location.search).get('trn') == 'shDls') {
|
||
window.scroll( {
|
||
top: 200,
|
||
behavior: 'smooth'
|
||
} );
|
||
jQuery('.hubwoo-group-wrap__deal_ocs[data-txn="ocs-form"]').slideDown()
|
||
}
|
||
|
||
jQuery( '.hubwoo-form-wizard-wrapper' ).find( '.hubwoo-form-wizard-link' ).click(
|
||
function() {
|
||
jQuery( '.hubwoo-form-wizard-link' ).removeClass( 'active' );
|
||
const innerWidth = jQuery( this ).innerWidth();
|
||
jQuery( this ).addClass( 'active' );
|
||
const position = jQuery( this ).position();
|
||
jQuery( '.hubwoo-form-wizardmove-button' ).css( { left: position.left, width: innerWidth } );
|
||
const attr = jQuery( this ).attr( 'data-attr' );
|
||
jQuery( '.hubwoo-form-wizard-content' ).each(
|
||
function() {
|
||
if ( jQuery( this ).attr( 'data-tab-content' ) == attr ) {
|
||
jQuery( this ).addClass( 'show' );
|
||
} else {
|
||
jQuery( this ).removeClass( 'show' );
|
||
}
|
||
},
|
||
);
|
||
},
|
||
);
|
||
|
||
jQuery( '.hubwoo-form-wizard-next-btn' ).click(
|
||
function() {
|
||
const next = jQuery( this );
|
||
next.parents( '.hubwoo-form-wizard-content' ).toggle( 'slow' );
|
||
next.parents( '.hubwoo-form-wizard-content' ).next( '.hubwoo-form-wizard-content' ).toggle( 'slow' );
|
||
jQuery( document ).find( '.hubwoo-form-wizard-content' ).each(
|
||
function() {
|
||
if ( jQuery( this ).hasClass( 'show' ) ) {
|
||
const formAtrr = jQuery( this ).attr( 'data-tab-content' );
|
||
jQuery( document ).find( '.hubwoo-form-wizard-wrapper li a' ).each(
|
||
function() {
|
||
if ( jQuery( this ).attr( 'data-attr' ) == formAtrr ) {
|
||
jQuery( this ).addClass( 'active' );
|
||
const innerWidth = jQuery( this ).innerWidth();
|
||
const position = jQuery( this ).position();
|
||
jQuery( document ).find( '.hubwoo-form-wizardmove-button' ).css( { left: position.left, width: innerWidth } );
|
||
} else {
|
||
jQuery( this ).removeClass( 'active' );
|
||
}
|
||
},
|
||
);
|
||
}
|
||
},
|
||
);
|
||
},
|
||
);
|
||
|
||
jQuery( '.hubwoo-form-wizard-previous-btn' ).click(
|
||
function() {
|
||
const prev = jQuery( this );
|
||
prev.parents( '.hubwoo-form-wizard-content' ).removeClass( 'show' );
|
||
prev.parents( '.hubwoo-form-wizard-content' ).prev( '.hubwoo-form-wizard-content' ).addClass( 'show' );
|
||
jQuery( document ).find( '.hubwoo-form-wizard-content' ).each(
|
||
function() {
|
||
if ( jQuery( this ).hasClass( 'show' ) ) {
|
||
const formAtrr = jQuery( this ).attr( 'data-tab-content' );
|
||
jQuery( document ).find( '.hubwoo-form-wizard-wrapper li a' ).each(
|
||
function() {
|
||
if ( jQuery( this ).attr( 'data-attr' ) == formAtrr ) {
|
||
jQuery( this ).addClass( 'active' );
|
||
const innerWidth = jQuery( this ).innerWidth();
|
||
const position = jQuery( this ).position();
|
||
jQuery( document ).find( '.hubwoo-form-wizardmove-button' ).css( { left: position.left, width: innerWidth } );
|
||
} else {
|
||
jQuery( this ).removeClass( 'active' );
|
||
}
|
||
},
|
||
);
|
||
}
|
||
},
|
||
);
|
||
},
|
||
);
|
||
|
||
jQuery( '.mwb-woo__accordian-heading' ).click(
|
||
function() {
|
||
const name = $( this ).data( 'name' );
|
||
jQuery( '.grToCreate' ).removeClass( 'fa-minus' ).addClass( 'fa-plus' );
|
||
if ( jQuery( '.mwb-woo__accordian-heading' ).is( '.gr_created' ) ) {
|
||
jQuery( '.gr_created' ).parent( 'div' ).children( 'i' ).removeClass( 'fa fa-chevron-down' ).addClass( 'fa fa-chevron-right' );
|
||
}
|
||
|
||
if ( ! jQuery( this ).hasClass( 'active' ) ) {
|
||
jQuery( '#fa-drag-' + name ).removeClass( 'fa-plus' ).addClass( 'fa-minus' );
|
||
if ( jQuery( this ).hasClass( 'gr_created' ) ) {
|
||
jQuery( this ).parent( 'div' ).children( 'i' ).removeClass( 'fa fa-chevron-right' ).addClass( 'fa fa-chevron-down' );
|
||
jQuery( '#' + 'fa-' + name ).removeClass( 'fa fa-chevron-right' ).addClass( 'fa fa-chevron-down' );
|
||
}
|
||
if ( ! jQuery( this ).hasClass( 'gr_uncreated' ) ) {
|
||
jQuery( '.mwb-woo__accordian-heading' ).removeClass( 'active' );
|
||
jQuery( '.mwb-woo__accordion-content' ).slideUp( 500 );
|
||
jQuery( this ).addClass( 'active' );
|
||
jQuery( this ).parents( '.mwb-woo__accordion-wrapper' ).children( '.mwb-woo__accordion-content' ).slideDown( 500 );
|
||
}
|
||
} else if ( jQuery( this ).hasClass( 'active' ) ) {
|
||
if ( jQuery( this ).hasClass( 'gr_created' ) ) {
|
||
jQuery( '#' + 'fa-' + name ).removeClass( 'fa fa-chevron-down' ).addClass( 'fa fa-chevron-right' );
|
||
}
|
||
if ( ! jQuery( this ).hasClass( 'gr_uncreated' ) ) {
|
||
jQuery( this ).removeClass( 'active' );
|
||
jQuery( this ).parents( '.mwb-woo__accordion-wrapper' ).children( '.mwb-woo__accordion-content' ).slideUp( 500 );
|
||
}
|
||
}
|
||
},
|
||
);
|
||
|
||
jQuery( '.mwb-woo__accordian-heading' ).hover(
|
||
function() {
|
||
if ( jQuery( this ).parent( 'div' ).children( 'span' ).hasClass( 'grCreateNew' ) ) {
|
||
jQuery( this ).prop( 'title', 'Create group first, before creating properties.' );
|
||
}
|
||
},
|
||
);
|
||
|
||
jQuery( 'input.hub-group' ).on(
|
||
'click',
|
||
function() {
|
||
const groupID = jQuery( this ).data( 'group' );
|
||
const groupRequired = jQuery( this ).data( 'req' );
|
||
const currentChecked = jQuery( this ).prop( 'checked' );
|
||
|
||
if ( 'yes' == groupRequired ) {
|
||
return false;
|
||
}
|
||
|
||
jQuery( 'div#' + groupID ).find( 'input[type=checkbox]' ).each(
|
||
function() {
|
||
jQuery( this ).attr( 'checked', currentChecked );
|
||
if ( currentChecked ) {
|
||
jQuery( this ).removeAttr( 'disabled' );
|
||
} else {
|
||
jQuery( this ).attr( 'disabled', true );
|
||
}
|
||
},
|
||
);
|
||
},
|
||
);
|
||
|
||
jQuery( '#hubwoo-re-auth' ).click(
|
||
( e ) => {
|
||
e.preventDefault();
|
||
saveUpdates( [ 'hubwoo_pro_oauth_success', 'hubwoo_pro_account_scopes', 'hubwoo_pro_valid_client_ids_stored' ], 'delete' );
|
||
window.location.href = jQuery( '#hubwoo-re-auth' ).attr( 'href' );
|
||
},
|
||
);
|
||
|
||
jQuery( 'input.hub-prop' ).on(
|
||
'click',
|
||
function() {
|
||
const propRequired = jQuery( this ).data( 'req' );
|
||
if ( 'yes' == propRequired ) {
|
||
return false;
|
||
}
|
||
},
|
||
);
|
||
|
||
jQuery( '#hub-lists-form' ).submit(
|
||
async( event ) => {
|
||
event.preventDefault();
|
||
jQuery( '.hubwoo-list__manage' ).slideUp();
|
||
jQuery( '.hubwoo-btn-list' ).hide();
|
||
jQuery( '.hubwoo-list__progress' ).css( 'display', 'block' );
|
||
updateProgressBar( 0 );
|
||
const countLists = jQuery( 'input[name=\'selectedLists[]\']' ).length;
|
||
const currentCounter = 0;
|
||
const maxCounter = countLists != null ? countLists : 3;
|
||
const data = jQuery( 'form#hub-lists-form' ).serializeArray();
|
||
const selectedLists = [];
|
||
jQuery.each(
|
||
data,
|
||
function( i, input ) {
|
||
if ( input.name == 'selectedLists[]' ) {
|
||
selectedLists.push( input.value );
|
||
}
|
||
},
|
||
);
|
||
let oauth_response = await jQuery.post( ajaxUrl, { action: 'hubwoo_check_oauth_access_token', hubwooSecurity } );
|
||
oauth_response = jQuery.parseJSON( oauth_response );
|
||
const oauth_status = oauth_response.status;
|
||
|
||
if ( oauth_status ) {
|
||
let listsResponse = await jQuery.post( ajaxUrl, { action: 'hubwoo_get_lists', hubwooSecurity } );
|
||
listsResponse = jQuery.parseJSON( listsResponse );
|
||
|
||
const tempLists = [];
|
||
|
||
jQuery.each(
|
||
listsResponse,
|
||
function( i, singleList ) {
|
||
if ( selectedLists.includes( singleList.name ) ) {
|
||
tempLists.push( singleList );
|
||
}
|
||
},
|
||
);
|
||
|
||
dataCounter.totalCount = tempLists.length;
|
||
try {
|
||
const createdLists = [];
|
||
let upgradeRequired = false;
|
||
const allListResults = await Promise.all(
|
||
tempLists.map(
|
||
async( singleList ) => {
|
||
try {
|
||
const response = await createLists( singleList );
|
||
if ( response.status_code == 200 || response.status_code == 409 ) {
|
||
createdLists.push( singleList.name );
|
||
}
|
||
return response;
|
||
} catch ( errors ) {
|
||
if ( errors.status_code == 402 ) {
|
||
upgradeRequired = true;
|
||
} else if ( errors.status_code == 400 ) {
|
||
|
||
const promessage = jQuery.parseJSON(errors.body);
|
||
const errormessage = promessage.message;
|
||
if(errormessage.indexOf('The following list names already exist') != -1) {
|
||
createdLists.push( singleList.name );
|
||
}
|
||
} else {
|
||
console.error( errors );
|
||
}
|
||
}
|
||
},
|
||
),
|
||
);
|
||
|
||
if ( upgradeRequired ) {
|
||
jQuery( '.hubwoo_pop_up_wrap' ).slideDown( 'slow' );
|
||
} else {
|
||
await saveUpdates( { 'hubwoo-lists-created': createdLists, 'hubwoo_pro_lists_setup_completed': 1 } );
|
||
transferScreen( 'move-to-pipeline' );
|
||
}
|
||
} catch ( error ) {
|
||
console.error( error );
|
||
}
|
||
} else {
|
||
alert( hubwooWentWrong );
|
||
return false;
|
||
}
|
||
},
|
||
);
|
||
|
||
jQuery( 'span.hubwoo-create-single-group' ).on(
|
||
'click',
|
||
function() {
|
||
const name = $( this ).data( 'name' );
|
||
const job = $( this );
|
||
|
||
manageSpinText( job, 'add' );
|
||
|
||
jQuery.post(
|
||
ajaxUrl,
|
||
{ action: 'hubwoo_check_oauth_access_token', hubwooSecurity },
|
||
function( response ) {
|
||
const oauth_response = jQuery.parseJSON( response );
|
||
const oauth_status = oauth_response.status;
|
||
if ( oauth_status ) {
|
||
jQuery.post(
|
||
ajaxUrl,
|
||
{ action: 'hubwoo_create_single_group', name, hubwooSecurity },
|
||
function( response ) {
|
||
const proresponse = jQuery.parseJSON( response );
|
||
const proerrors = proresponse.errors;
|
||
const prohubMessage = '';
|
||
|
||
if ( ! proerrors ) {
|
||
const proresponseCode = proresponse.status_code;
|
||
|
||
if ( proresponseCode == 200 ) {
|
||
manageSpinText( job, 'remove' );
|
||
job.addClass( 'grSuccess' );
|
||
|
||
jQuery( '#' + name ).removeClass( 'mwb-woo__accordion-content-disable' ).addClass( 'mwb-woo__accordion-content' );
|
||
if ( jQuery( '.mwb-woo__accordian-heading' ).hasClass( name ) ) {
|
||
jQuery( '.' + name ).removeClass( 'gr_uncreated' ).addClass( 'gr_created' );
|
||
}
|
||
} else if ( proresponseCode == 409 ) {
|
||
manageSpinText( job, 'remove' );
|
||
job.addClass( 'grSuccess' );
|
||
jQuery( '#' + name ).removeClass( 'mwb-woo__accordion-content-disable' ).addClass( 'mwb-woo__accordion-content' );
|
||
if ( jQuery( '.mwb-woo__accordian-heading' ).hasClass( name ) ) {
|
||
jQuery( '.' + name ).removeClass( 'gr_uncreated' ).addClass( 'gr_created' );
|
||
}
|
||
} else {
|
||
manageSpinText( job, 'remove', 'failed' );
|
||
}
|
||
}
|
||
},
|
||
);
|
||
} else {
|
||
manageSpinText( job, 'remove', 'failed' );
|
||
return false;
|
||
}
|
||
},
|
||
);
|
||
},
|
||
);
|
||
|
||
jQuery( 'span.hubwoo-create-single-field' ).on(
|
||
'click',
|
||
function() {
|
||
const name = $( this ).data( 'name' );
|
||
|
||
const group = $( this ).data( 'group' );
|
||
|
||
const job = $( '.pr-' + name );
|
||
job.removeClass( 'fa-plus' );
|
||
job.addClass( 'fa-spinner' );
|
||
job.addClass( 'fa-spin' );
|
||
jQuery.post(
|
||
ajaxUrl,
|
||
{ action: 'hubwoo_check_oauth_access_token', hubwooSecurity },
|
||
function( response ) {
|
||
const oauth_response = jQuery.parseJSON( response );
|
||
const oauth_status = oauth_response.status;
|
||
|
||
if ( oauth_status ) {
|
||
jQuery.post(
|
||
ajaxUrl,
|
||
{ action: 'hubwoo_create_single_property', name, group, hubwooSecurity },
|
||
function( response ) {
|
||
const proresponse = jQuery.parseJSON( response );
|
||
const proerrors = proresponse.errors;
|
||
const prohubMessage = '';
|
||
|
||
if ( ! proerrors ) {
|
||
const proresponseCode = proresponse.status_code;
|
||
|
||
if ( proresponseCode == 200 ) {
|
||
job.removeClass( 'fa-spinner' );
|
||
job.removeClass( 'fa-spin' );
|
||
job.addClass( 'fa-check' );
|
||
} else if ( proresponseCode == 409 ) {
|
||
job.removeClass( 'fa-spinner' );
|
||
job.removeClass( 'fa-spin' );
|
||
job.addClass( 'fa-check' );
|
||
} else {
|
||
job.removeClass( 'fa-spinner' );
|
||
job.removeClass( 'fa-spin' );
|
||
job.addClass( 'fa-plus' );
|
||
}
|
||
}
|
||
},
|
||
);
|
||
} else {
|
||
job.removeClass( 'fa-spinner' );
|
||
job.removeClass( 'fa-spin' );
|
||
job.addClass( 'fa-plus' );
|
||
return false;
|
||
}
|
||
},
|
||
);
|
||
},
|
||
);
|
||
|
||
jQuery( '.hubwoo-create-single-list' ).on(
|
||
'click',
|
||
function() {
|
||
const name = $( this ).data( 'name' );
|
||
const job = $( this );
|
||
|
||
manageSpinText( job, 'add' );
|
||
|
||
jQuery.post(
|
||
ajaxUrl,
|
||
{ action: 'hubwoo_check_oauth_access_token', hubwooSecurity },
|
||
function( response ) {
|
||
const oauth_response = jQuery.parseJSON( response );
|
||
const oauth_status = oauth_response.status;
|
||
|
||
if ( oauth_status ) {
|
||
jQuery.post(
|
||
ajaxUrl,
|
||
{ action: 'hubwoo_create_single_list', name, hubwooSecurity },
|
||
function( response ) {
|
||
const proresponse = jQuery.parseJSON( response );
|
||
const proerrors = proresponse.errors;
|
||
const prohubMessage = '';
|
||
|
||
if ( ! proerrors ) {
|
||
const proresponseCode = proresponse.status_code;
|
||
if ( proresponseCode == 200 ) {
|
||
manageSpinText( job, 'remove' );
|
||
} else if ( proresponseCode == 409 ) {
|
||
manageSpinText( job, 'remove' );
|
||
} else if ( proresponseCode == 400 ) {
|
||
const promessage = jQuery.parseJSON(proresponse.body);
|
||
const errormessage = promessage.message;
|
||
if(errormessage.indexOf('The following list names already exist') != -1) {
|
||
manageSpinText( job, 'remove' );
|
||
} else {
|
||
jQuery( '.hubwoo_pop_up_wrap' ).slideDown( 'slow' );
|
||
manageSpinText( job, 'remove', 'failed' );
|
||
}
|
||
} else {
|
||
manageSpinText( job, 'remove', 'failed' );
|
||
}
|
||
}
|
||
},
|
||
);
|
||
} else {
|
||
manageSpinText( job, 'remove', 'failed' );
|
||
return false;
|
||
}
|
||
},
|
||
);
|
||
},
|
||
);
|
||
|
||
jQuery( '#save-deal-stages' ).click(
|
||
async( e ) => {
|
||
e.preventDefault();
|
||
if ( jQuery( '#hubwoo-ecomm-deal-stage' ).length ) {
|
||
await saveUpdates( { 'hubwoo_ecomm_mapping_setup': 'yes' } );
|
||
}
|
||
window.location.reload( true );
|
||
},
|
||
);
|
||
|
||
setInterval(
|
||
function() {
|
||
jQuery( '.hubwoo-progress-bar' ).map(
|
||
async function( element ) {
|
||
const currentElement = jQuery( this );
|
||
if ( 'yes' == currentElement.data( 'sync-status' ) ) {
|
||
const type = currentElement.data( 'sync-type' );
|
||
let response = await jQuery.ajax( { url: ajaxUrl, type: 'POST', data: { action: 'hubwoo_sync_status_tracker', hubwooSecurity, process: type } } );
|
||
response = jQuery.parseJSON( response );
|
||
currentElement.css( 'width', response.percentage + '%' );
|
||
currentElement.text( response.percentage + '%' );
|
||
if ( response.hasOwnProperty( 'eta' ) ) {
|
||
const currentDesc = jQuery( '.sync-desc[data-sync-type=\'' + type + '\']' );
|
||
let text = currentDesc.text().trim();
|
||
const previousEta = currentDesc.attr( 'data-sync-eta' );
|
||
text = text.replace( previousEta, response.eta );
|
||
currentDesc.attr( 'data-sync-eta', response.eta );
|
||
currentDesc.text( text );
|
||
}
|
||
if ( 'no' == response.is_running || 100 == currentElement.data( 'percentage' ) || 100 == response.percentage ) {
|
||
currentElement.css( 'width', '100%' );
|
||
currentElement.text( '100%' );
|
||
window.location.href = window.location.href;
|
||
}
|
||
}
|
||
}
|
||
);
|
||
},
|
||
25000
|
||
);
|
||
|
||
jQuery( '#reset-deal-stages' ).click(
|
||
async( e ) => {
|
||
e.preventDefault();
|
||
let pipeline = jQuery( '.hubwoo_selected_pipeline' ).find(":selected").text();
|
||
await jQuery.ajax( { url: ajaxUrl, type: 'POST', data: { action: 'hubwoo_ecomm_setup', hubwooSecurity, process: 'reset-mapping', pipeline } } );
|
||
window.location.reload( true );
|
||
},
|
||
);
|
||
|
||
jQuery( '.hubwoo-create-single-workflow-data' ).on(
|
||
'click',
|
||
function() {
|
||
const btnThis = jQuery( this );
|
||
var name = jQuery( this ).data( 'name' );
|
||
const tab = jQuery( this ).closest( '.hubwoo-field-text-col' );
|
||
tab.removeClass( 'hubwoo-align-class' ).addClass( 'align-big' );
|
||
var name = $( this ).data( 'name' );
|
||
const job = $( this );
|
||
|
||
manageSpinText( job, 'add' );
|
||
|
||
jQuery.post(
|
||
ajaxUrl,
|
||
{ action: 'hubwoo_check_oauth_access_token', hubwooSecurity },
|
||
function( response ) {
|
||
const oauth_response = jQuery.parseJSON( response );
|
||
const oauth_status = oauth_response.status;
|
||
|
||
if ( oauth_status ) {
|
||
jQuery.post(
|
||
ajaxUrl,
|
||
{ action: 'hubwoo_create_single_workflow', name, hubwooSecurity },
|
||
function( response ) {
|
||
const proresponse = jQuery.parseJSON( response );
|
||
const proerrors = proresponse.errors;
|
||
const prohubMessage = '';
|
||
|
||
if ( ! proerrors ) {
|
||
const proresponseCode = proresponse.status_code;
|
||
|
||
if ( proresponseCode == 200 ) {
|
||
manageSpinText( job, 'remove' );
|
||
|
||
tab.removeClass( 'align-big' ).addClass( 'hubwoo-align-class' );
|
||
|
||
jQuery.post(
|
||
ajaxUrl,
|
||
{ action: 'hubwoo_update_workflow_tab' },
|
||
function( data ) {
|
||
var data = JSON.parse( data );
|
||
$.each(
|
||
data,
|
||
function( index, value ) {
|
||
$( '.workflow-tab[data-name="' + value + '"]' ).removeClass( 'hubwoo-disabled' );
|
||
},
|
||
);
|
||
},
|
||
);
|
||
|
||
btnThis.parents( '.hubwoo-field-text-col' ).children( 'div.hubwoo-field-checked' ).show();
|
||
} else if ( proresponseCode == 404 ) {
|
||
let message = JSON.parse( proresponse.response );
|
||
message = message.message;
|
||
manageSpinText( job, 'remove', 'failed' );
|
||
tab.removeClass( 'align-big' ).addClass( 'hubwoo-align-class' );
|
||
alert( message );
|
||
} else {
|
||
alert( hubwooWentWrong );
|
||
manageSpinText( job, 'remove', 'failed' );
|
||
tab.removeClass( 'align-big' ).addClass( 'hubwoo-align-class' );
|
||
}
|
||
}
|
||
},
|
||
);
|
||
} else {
|
||
tab.removeClass( 'align-big' ).addClass( 'hubwoo-align-class' );
|
||
manageSpinText( job, 'remove', 'failed' );
|
||
return false;
|
||
}
|
||
},
|
||
);
|
||
},
|
||
);
|
||
|
||
jQuery( '.hubwoo-onquest' ).select2(
|
||
{
|
||
placeholder: "Select from the options",
|
||
ajax: {
|
||
url: ajaxurl,
|
||
dataType: 'json',
|
||
delay: 100,
|
||
type: 'POST',
|
||
data( params ) {
|
||
return {
|
||
q: params.term,
|
||
action: 'hubwoo_get_onboard_form',
|
||
key: jQuery(this).attr('name'),
|
||
hubwooSecurity:hubwooSecurity
|
||
};
|
||
},
|
||
processResults( data ) {
|
||
const options = [];
|
||
if ( data ) {
|
||
$.each(
|
||
data,
|
||
function( index, text ) {
|
||
options.push( { id: text[ 0 ], text: text[ 1 ] } );
|
||
},
|
||
);
|
||
}
|
||
return {
|
||
results: options,
|
||
};
|
||
},
|
||
cache: true,
|
||
},
|
||
},
|
||
);
|
||
|
||
jQuery( '#hubwoo_ecomm_order_ocs_status' ).select2(
|
||
{
|
||
placeholder: 'Processing, Completed etc.',
|
||
ajax: {
|
||
url: ajaxurl,
|
||
dataType: 'json',
|
||
delay: 200,
|
||
data( params ) {
|
||
return {
|
||
q: params.term,
|
||
action: 'hubwoo_search_for_order_status',
|
||
};
|
||
},
|
||
processResults( data ) {
|
||
const options = [];
|
||
if ( data ) {
|
||
$.each(
|
||
data,
|
||
function( index, text ) {
|
||
options.push( { id: text[ 0 ], text: text[ 1 ] } );
|
||
},
|
||
);
|
||
}
|
||
return {
|
||
results: options,
|
||
};
|
||
},
|
||
cache: true,
|
||
},
|
||
},
|
||
);
|
||
|
||
jQuery( '#hubwoo-selected-user-roles, #hubwoo_customers_role_settings' ).select2(
|
||
{
|
||
placeholder: 'All Users Roles are Selected except Guest.',
|
||
ajax: {
|
||
url: ajaxurl,
|
||
dataType: 'json',
|
||
delay: 200,
|
||
data( params ) {
|
||
return {
|
||
q: params.term,
|
||
action: 'hubwoo_get_for_user_roles',
|
||
};
|
||
},
|
||
processResults( data ) {
|
||
const options = [];
|
||
if ( data ) {
|
||
$.each(
|
||
data,
|
||
function( index, text ) {
|
||
options.push( { id: text[ 0 ], text: text[ 1 ] } );
|
||
},
|
||
);
|
||
}
|
||
return {
|
||
results: options,
|
||
};
|
||
},
|
||
cache: true,
|
||
},
|
||
},
|
||
);
|
||
|
||
jQuery( 'input[type="checkbox"]' ).on(
|
||
'change',
|
||
function() {
|
||
const elementId = jQuery( this ).attr( 'id' );
|
||
const checkboxes = trackInputCheckboxes();
|
||
if ( checkboxes.hasOwnProperty( elementId ) ) {
|
||
const hideField = checkboxes[ elementId ];
|
||
if ( jQuery( this ).is( ':checked' ) ) {
|
||
jQuery( hideField ).closest( 'tr' ).fadeIn();
|
||
} else {
|
||
jQuery( hideField ).closest( 'tr' ).fadeOut();
|
||
}
|
||
}
|
||
},
|
||
);
|
||
|
||
jQuery( '.date-picker' ).datepicker( { dateFormat: 'dd-mm-yy', maxDate: 0, changeMonth: true, changeYear: true } );
|
||
|
||
jQuery( document ).on(
|
||
'click',
|
||
'#hubwoo-osc-instant-sync',
|
||
async function( event ) {
|
||
event.preventDefault();
|
||
jQuery( '#hubwoo-osc-instant-sync' ).hide();
|
||
const progress = 0;
|
||
jQuery( '#hubwoo-ocs-form' ).slideUp( 600 );
|
||
jQuery( '#hubwoo-osc-instant-sync' ).addClass( 'hubwoo-disable' );
|
||
jQuery( '#hubwoo-osc-schedule-sync' ).addClass( 'hubwoo-disable' );
|
||
jQuery( '.hubwoo-progress-wrap' ).css( 'display', 'block' );
|
||
const totalUsers = jQuery( '.hubwoo-osc-instant-sync' ).data( 'total_users' );
|
||
await saveUpdates( { 'hubwoo_total_ocs_need_sync': totalUsers } );
|
||
await saveUpdates( [ 'hubwoo_ocs_contacts_synced' ], 'delete' );
|
||
updateProgressBar( 0 );
|
||
startContactSync( 1, progress );
|
||
},
|
||
);
|
||
|
||
jQuery( '.hubwoo-date-picker' ).datepicker( { dateFormat: 'dd-mm-yy', maxDate: 0, changeMonth: true, changeYear: true } );
|
||
|
||
jQuery( '#hubwoo-pro-email-logs' ).on(
|
||
'click',
|
||
function( e ) {
|
||
e.preventDefault();
|
||
jQuery( '#hubwoo_email_loader' ).css( { display: 'inline-block' } );
|
||
|
||
jQuery.post(
|
||
ajaxUrl,
|
||
{ action: 'hubwoo_email_the_error_log', hubwooSecurity },
|
||
function( response ) {
|
||
const res_parsed = jQuery.parseJSON(response);
|
||
if ( res_parsed != null ) {
|
||
if ( res_parsed == 'success' ) {
|
||
alert( hubwooMailSuccess );
|
||
jQuery( '#hubwoo_email_loader' ).css( { display: 'none' } );
|
||
jQuery( '#hubwoo_email_success' ).css( { display: 'inline-block' } );
|
||
} else {
|
||
alert( hubwooMailFailure );
|
||
jQuery( '#hubwoo_email_loader' ).css( { display: 'none' } );
|
||
}
|
||
} else {
|
||
// close the popup and show the error.
|
||
alert( hubwooMailFailure );
|
||
jQuery( '#hubwoo_email_loader' ).css( { display: 'none' } );
|
||
}
|
||
jQuery( '#hubwoo_email_success' ).css( { display: 'none' } );
|
||
},
|
||
);
|
||
},
|
||
);
|
||
|
||
jQuery( '.hubwoo-general-settings-fields' ).on(
|
||
'change',
|
||
function() {
|
||
const data = jQuery( '#plugin-settings-gen-adv' ).serializeArray();
|
||
const enableKeys = [
|
||
{ key: 'hubwoo_checkout_optin_enable', status: 'no' },
|
||
{ key: 'hubwoo_registeration_optin_enable', status: 'no' },
|
||
{ key: 'hubwoo_subs_settings_enable', status: 'no' },
|
||
];
|
||
const multiSelectKeys = [
|
||
{ key: 'hubwoo-selected-user-roles', status: 'EMPTY_ARRAY' },
|
||
];
|
||
const preparedFormData = prepareFormData( data, enableKeys, true );
|
||
multiSelectKeys.map(
|
||
( singleKey ) => {
|
||
if ( preparedFormData.hasOwnProperty( singleKey.key ) == false ) {
|
||
preparedFormData[ singleKey.key ] = singleKey.status;
|
||
}
|
||
},
|
||
);
|
||
saveUpdates( preparedFormData );
|
||
},
|
||
);
|
||
|
||
jQuery( '.hubwoo_rfm_data_fields' ).on(
|
||
'change',
|
||
debounce(
|
||
function() {
|
||
const data = jQuery( '#hubwoo-rfm-form' ).serializeArray();
|
||
const preparedFormData = prepareFormData( data );
|
||
saveUpdates( preparedFormData );
|
||
},
|
||
800,
|
||
),
|
||
);
|
||
|
||
// Deals
|
||
|
||
if( new URLSearchParams(window.location.search).get('hubwoo_tab') == 'hubwoo-deals') {
|
||
jQuery.post(
|
||
ajaxUrl,
|
||
{ action: 'hubwoo_get_current_sync_status', hubwooSecurity, data: { type: 'deal' } },
|
||
function( response ) {
|
||
// response = jQuery.parseJSON( response );
|
||
if ( response != true || response != 1 ) {
|
||
getDealsUsersToSync();
|
||
} else {
|
||
$("#hubwoo_deals_ocs_form :input").map(function() {
|
||
$(this).attr( { disabled: 'true' } );
|
||
})
|
||
}
|
||
},
|
||
);
|
||
}
|
||
|
||
jQuery( '.hubwoo_real_time_changes' ).on(
|
||
'change',
|
||
debounce(
|
||
() => {
|
||
const data = jQuery( '#hubwoo_real_time_deal_settings' ).serializeArray();
|
||
const enableKeys = [ { key: 'hubwoo_ecomm_deal_enable', status: 'no' }, { key: 'hubwoo_assoc_deal_cmpy_enable', status: 'no' }, { key: 'hubwoo_deal_multi_currency_enable', status: 'no' } ];
|
||
const multiSelectKeys = [ { key: 'hubwoo_ecomm_won_stages', status: 'EMPTY_ARRAY' } ];
|
||
const formData = prepareFormData( data, enableKeys, true );
|
||
multiSelectKeys.map(
|
||
( singleKey ) => {
|
||
if ( formData.hasOwnProperty( singleKey.key ) == false ) {
|
||
formData[ singleKey.key ] = singleKey.status;
|
||
}
|
||
},
|
||
);
|
||
saveUpdates( formData );
|
||
},
|
||
800,
|
||
),
|
||
);
|
||
|
||
jQuery( '.hubwoo_ecomm_mapping' ).on(
|
||
'change',
|
||
debounce(
|
||
() => {
|
||
const data = jQuery( '.hubwoo_save_ecomm_mapping' ).serializeArray();
|
||
const formData = [];
|
||
for ( let index = 0; index < data.length; index++ ) {
|
||
const preparedData = {};
|
||
preparedData.status = data[ index ].value;
|
||
preparedData.deal_stage = data[ ++index ].value;
|
||
formData.push( preparedData );
|
||
}
|
||
saveUpdates( { 'hubwoo_ecomm_final_mapping': formData } );
|
||
},
|
||
300,
|
||
),
|
||
);
|
||
|
||
jQuery( document ).on(
|
||
'change',
|
||
'.hubwoo_selected_pipeline',
|
||
debounce(
|
||
async () => {
|
||
const selected_pipeline = jQuery( this ).find(":selected").val();
|
||
const response = await jQuery.ajax(
|
||
{
|
||
type : 'POST',
|
||
url : ajaxUrl,
|
||
data : {
|
||
action : 'hubwoo_fetch_deal_stages',
|
||
selected_pipeline,
|
||
hubwooSecurity,
|
||
},
|
||
dataType : 'json',
|
||
}
|
||
);
|
||
if ( response.success ) {
|
||
window.location.reload( true );
|
||
}
|
||
},
|
||
300,
|
||
),
|
||
);
|
||
|
||
jQuery( '#hubwoo_ecomm_won_stages' ).select2(
|
||
{
|
||
placeholder: 'Select Winning Deal Stages.',
|
||
ajax: {
|
||
url: ajaxurl,
|
||
dataType: 'json',
|
||
delay: 200,
|
||
data( params ) {
|
||
return {
|
||
q: params.term,
|
||
action: 'hubwoo_deals_search_for_stages',
|
||
};
|
||
},
|
||
processResults( data ) {
|
||
const options = [];
|
||
if ( data ) {
|
||
$.each(
|
||
data,
|
||
function( index, text ) {
|
||
options.push( { id: text[ 0 ], text: text[ 1 ] } );
|
||
},
|
||
);
|
||
}
|
||
return {
|
||
results: options,
|
||
};
|
||
},
|
||
cache: true,
|
||
},
|
||
},
|
||
);
|
||
|
||
jQuery( '.hubwoo-ecomm-settings-select' ).on(
|
||
'change',
|
||
async() => {
|
||
const data = jQuery( '#hubwoo_deals_ocs_form' ).serializeArray();
|
||
const enableKeys = [ { key: 'hubwoo_ecomm_order_date_allow', status: 'no' } ];
|
||
const multiSelectKeys = [ { key: 'hubwoo_ecomm_order_ocs_status', status: 'EMPTY_ARRAY' } ];
|
||
const formData = prepareFormData( data, enableKeys, true );
|
||
multiSelectKeys.map(
|
||
( singleKey ) => {
|
||
if ( formData.hasOwnProperty( singleKey.key ) == false ) {
|
||
formData[ singleKey.key ] = singleKey.status;
|
||
}
|
||
}
|
||
);
|
||
|
||
if(formData.hubwoo_ecomm_order_date_allow == 'no') {
|
||
delete formData.hubwoo_ecomm_order_ocs_from_date
|
||
delete formData.hubwoo_ecomm_order_ocs_upto_date
|
||
}
|
||
const syncReponse = await jQuery.post( ajaxUrl, { action: 'hubwoo_get_current_sync_status', hubwooSecurity, data: { type: 'deal' } } );
|
||
if ( syncReponse != true || syncReponse != 1 ) {
|
||
const savedResponse = await saveUpdates( formData );
|
||
if ( savedResponse ) {
|
||
const ocsCount = await jQuery.get( ajaxUrl, { action: 'hubwoo_ecomm_get_ocs_count', hubwooSecurity } );
|
||
if ( ocsCount !== undefined || ocsCount !== null ) {
|
||
jQuery( '.hubwoo_deals_message[data-sync-type="order"]' ).slideDown( 20 );
|
||
jQuery( '.hubwoo_deals_message[data-sync-type="order"]' ).css( 'display', 'inline-block' );
|
||
jQuery( '.hubwoo-group-wrap__deal_notice[data-type="pBar"]' ).slideDown( 200 );
|
||
|
||
let message = '';
|
||
|
||
if ( ocsCount > 0 ) {
|
||
message = `We have found ${ ocsCount } Orders for the selected order statuses`;
|
||
if(jQuery('#hubwoo_ecomm_order_date_allow').is(':checked')) {
|
||
message += ' and date range'
|
||
}
|
||
jQuery( '.manage_deals_ocs' ).fadeIn();
|
||
} else {
|
||
jQuery( '.manage_deals_ocs' ).fadeOut();
|
||
message = 'No Orders found for the selected order statuses';
|
||
if(jQuery('#hubwoo_ecomm_order_date_allow').is(':checked')) {
|
||
message += ' and date range'
|
||
}
|
||
}
|
||
|
||
jQuery( '.hubwoo_deals_message[data-sync-type="order"]' ).text( message );
|
||
}
|
||
}
|
||
} else {
|
||
jQuery( '.hubwoo-deals-settings-select' ).attr( { disabled: 'true' } );
|
||
}
|
||
},
|
||
);
|
||
|
||
$('#hubwoo-initiate-oauth').click( function(e) {
|
||
e.preventDefault()
|
||
const url = $(this).attr('href')
|
||
// track connect count and redirect
|
||
window.location.href = url
|
||
})
|
||
|
||
jQuery( '.manage_deals_ocs, .manage_contact_sync, .manage_product_sync' ).click(
|
||
async function() {
|
||
const syncAction = jQuery( this ).data( 'action' );
|
||
if ( syncAction !== undefined ) {
|
||
if( 'run-ecomm-setup' === syncAction ) {
|
||
await runEcommSetup();
|
||
} else {
|
||
await jQuery.post( ajaxUrl, { action: 'hubwoo_manage_sync', hubwooSecurity, process: syncAction } );
|
||
}
|
||
window.location.reload( true );
|
||
}
|
||
},
|
||
);
|
||
|
||
// Abandoned Cart
|
||
jQuery( '.hubwoo-abncart-setup-form' ).on(
|
||
'change',
|
||
debounce(
|
||
function() {
|
||
const data = jQuery( '.hubwoo-abncart-setup-form' ).serializeArray();
|
||
const enableKeys = [
|
||
{ key: 'hubwoo_abncart_enable_addon', status: 'no' },
|
||
{ key: 'hubwoo_abncart_guest_cart', status: 'no' },
|
||
{ key: 'hubwoo_abncart_delete_old_data', status: 'no' },
|
||
];
|
||
const preparedFormData = prepareFormData( data, enableKeys, true );
|
||
saveUpdates( preparedFormData );
|
||
},
|
||
700,
|
||
),
|
||
);
|
||
|
||
// Show Setup Content on Click
|
||
jQuery( '.hubwoo-btn-cshow__btn a' ).click(
|
||
function( e ) {
|
||
e.preventDefault();
|
||
$( this ).parents( '.hubwoo-box-card' ).find( '.hubwoo-btn-cshow__content' ).toggle( 'slow' );
|
||
},
|
||
);
|
||
|
||
jQuery( '.hubwoo-btn-data' ).click(
|
||
function( e ) {
|
||
e.preventDefault();
|
||
jQuery( this ).parents( '.hubwoo-btn-list' ).next( '.hubwoo-sub-content' ).children( 'div' ).hide();
|
||
const datavalue = jQuery( this ).data( 'action' );
|
||
if ( datavalue == 'group_setup' ) {
|
||
jQuery( this ).parents( '.hubwoo-btn-list' ).next( '.hubwoo-sub-content' ).children( '.hubwoo-group__progress' ).show();
|
||
jQuery( '#hubwoo_create_group_prop_setup' ).hide();
|
||
jQuery( '.gen-text' ).hide();
|
||
jQuery( '#hub-gr-props-form' ).submit();
|
||
} else if ( datavalue == 'group_manage_setup' ) {
|
||
jQuery( '.grp-pr-heading' ).text( 'Created Properties & Groups' );
|
||
jQuery( '.hubwoo-content__para' ).hide();
|
||
jQuery( this ).parents( '.hubwoo-btn-list' ).next( '.hubwoo-sub-content' ).children( '.hubwoo-group__manage' ).slideDown( 'slow' );
|
||
jQuery( '.hubwoo-group-desc' ).show();
|
||
jQuery( '#hubwoo_create_group_prop_setup' ).hide();
|
||
jQuery( '#hubwoo-manage-setup' ).hide();
|
||
}
|
||
|
||
if ( datavalue == 'lists_setup' ) {
|
||
jQuery( this ).parents( '.hubwoo-btn-list' ).next( '.hubwoo-sub-content' ).children( '.hubwoo-list__progress' ).show();
|
||
jQuery( '#hub-lists-form' ).submit();
|
||
} else if ( datavalue == 'lists_setup_manage' ) {
|
||
jQuery( this ).parents( '.hubwoo-btn-list' ).next( '.hubwoo-sub-content' ).children( '.hubwoo-list__manage' ).slideDown( 'slow' );
|
||
jQuery( '.list-setup-heading' ).text( 'Lists' );
|
||
jQuery( '.hubwoo-content__para' ).hide();
|
||
jQuery( '.hubwoo-list-desc' ).show();
|
||
jQuery( '.hubwoo-btn-data' ).hide();
|
||
jQuery( '#hub-lists-form' ).slideDown();
|
||
}
|
||
},
|
||
);
|
||
|
||
jQuery( '.hubwoo_manage_screen' ).click(
|
||
() => {
|
||
const screenKey = jQuery( '.hubwoo_manage_screen' ).data( 'process' );
|
||
const lastKey = jQuery( '.hubwoo_manage_screen' ).data( 'tab' );
|
||
transferScreen( screenKey, lastKey );
|
||
},
|
||
);
|
||
|
||
jQuery( '.hubwoo-adv-settingg__btn a' ).click(
|
||
function() {
|
||
jQuery( this ).parents( '.hubwoo-adv-settingg' ).children( '.hubwoo-adv-settingg__form' ).toggle( 'slow' );
|
||
},
|
||
);
|
||
jQuery( '.hubwoo-deal-wrap-con__h-btn a' ).click(
|
||
function( e ) {
|
||
e.preventDefault();
|
||
jQuery( this ).parents( '.hubwoo-deal-wrap-con' ).children( '.hubwoo-deal-wrap-con__store' ).toggle( 'slow' );
|
||
},
|
||
);
|
||
|
||
jQuery( '.hubwoo-manage-account' ).on('click',
|
||
function() {
|
||
let formData = {}
|
||
switch (jQuery(this).data('type')) {
|
||
case 'disconnect-form':
|
||
jQuery('.hubwoo_pop_up_wrap').fadeIn();
|
||
break;
|
||
case 'disconnect':
|
||
formData = jQuery('.hubwoo-disconnect-form').serializeArray();
|
||
const enableKeys = [ { key: 'delete_meta', status: 'no' } ];
|
||
formData = prepareFormData( formData, enableKeys );
|
||
case 'change-account':
|
||
jQuery('.hubwoo-discon-spinner').slideDown('slow')
|
||
const currentPage = window.location.href;
|
||
let redirectUrl = currentPage.substring( 0, currentPage.indexOf( 'hubwoo' ) );
|
||
redirectUrl += 'hubwoo';
|
||
|
||
const action = { action: 'hubwoo_disconnect_account', hubwooSecurity }
|
||
|
||
if(Object.keys(formData).length !== 0) {
|
||
action.data = formData
|
||
}
|
||
jQuery.post(
|
||
ajaxUrl,
|
||
action,
|
||
function( status ) {
|
||
if ( status ) {
|
||
window.location.href = redirectUrl
|
||
}
|
||
},
|
||
);
|
||
break;
|
||
case 'cancel':
|
||
jQuery('.hubwoo_pop_up_wrap').hide();
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
);
|
||
|
||
jQuery( '.hubwoo-ocs-input-change' ).on(
|
||
'change',
|
||
async() => {
|
||
const data = jQuery( '#hubwoo-ocs-form' ).serializeArray();
|
||
const enableKeys = [ { key: 'hubwoo_customers_manual_sync', status: 'no' } ];
|
||
const multiSelectKeys = [ { key: 'hubwoo_customers_role_settings', status: 'EMPTY_ARRAY' } ];
|
||
const preparedFormData = prepareFormData( data, enableKeys, true );
|
||
multiSelectKeys.map(
|
||
( singleKey ) => {
|
||
if ( preparedFormData.hasOwnProperty( singleKey.key ) == false ) {
|
||
preparedFormData[ singleKey.key ] = singleKey.status;
|
||
}
|
||
},
|
||
);
|
||
saveUpdates( preparedFormData );
|
||
jQuery.post(
|
||
ajaxUrl,
|
||
{ action: 'hubwoo_get_current_sync_status', hubwooSecurity, data: { type: 'contact' } },
|
||
function( response ) {
|
||
// response = jQuery.parseJSON( response );
|
||
if ( response != true || response != 1 ) {
|
||
getCurrentUsersToSync();
|
||
} else {
|
||
jQuery( '#hubwoo_customers_role_settings' ).attr( { disabled: 'true' } );
|
||
jQuery( '#hubwoo_customers_manual_sync' ).attr( { disabled: 'true' } );
|
||
}
|
||
},
|
||
);
|
||
},
|
||
);
|
||
|
||
jQuery(document).on('change', '.which_hubspot_packages_do_you_currently_use_', function() {
|
||
var hubwoo_package = jQuery(this).val();
|
||
if( hubwoo_package.includes("I don’t currently use HubSpot") ){
|
||
jQuery('.hubwoo_register').removeClass('hidefield');
|
||
} else {
|
||
jQuery('.hubwoo_register').addClass('hidefield');
|
||
}
|
||
|
||
});
|
||
|
||
jQuery('.hubwoo-onboard-manage').click( async function(e){
|
||
e.preventDefault()
|
||
|
||
switch (jQuery(this).data('type')) {
|
||
case 'sync':
|
||
|
||
let inputFields = true
|
||
let formData = jQuery('#hubwoo-onboarding-form').serializeArray();
|
||
formData = prepareFormData(formData, null, true);
|
||
let hubwoo_package = jQuery('.which_hubspot_packages_do_you_currently_use_').val();
|
||
|
||
const onboardKeys = [
|
||
{ key: 'mwb_hs_familarity', status: '' },
|
||
{ key: 'mwb_woo_familarity', status: '' },
|
||
{ key: 'which_hubspot_packages_do_you_currently_use_', status: '' },
|
||
{ key: 'firstname', status: '' },
|
||
{ key: 'lastname', status: '' },
|
||
{ key: 'company', status: '' },
|
||
{ key: 'website', status: '' },
|
||
{ key: 'email', status: '' },
|
||
{ key: 'phone', status: '' },
|
||
];
|
||
|
||
if( ! hubwoo_package.includes("I don’t currently use HubSpot") ){
|
||
onboardKeys.splice(3,4);
|
||
delete formData["firstname"];
|
||
delete formData["lastname"];
|
||
delete formData["company"];
|
||
delete formData["website"];
|
||
}
|
||
|
||
onboardKeys.map(
|
||
( singleKey ) => {
|
||
if ( formData.hasOwnProperty( singleKey.key ) == false ) {
|
||
formData[ singleKey.key ] = singleKey.status;
|
||
}
|
||
},
|
||
);
|
||
Object.keys(formData).forEach((key) => {
|
||
if(formData[key] !== '') {
|
||
jQuery('.hubwoo-onboard-img[name='+key+']').show()
|
||
} else {
|
||
inputFields = false
|
||
jQuery('.hubwoo-onboard-img[name='+key+']').hide()
|
||
}
|
||
})
|
||
|
||
if(inputFields) {
|
||
jQuery('.hubwoo-onboard-notice').slideUp()
|
||
jQuery('.onboard-spinner').slideDown()
|
||
await jQuery.post( ajaxUrl, { action: 'hubwoo_onboard_form', formData, hubwooSecurity } );
|
||
} else {
|
||
$('html,body').animate({ scrollTop: $(".mwb-heb-wlcm__title").outerHeight() + 220 }, 'slow', function() {
|
||
jQuery('.hubwoo-onboard-notice').slideDown('slow')
|
||
});
|
||
break;
|
||
}
|
||
case 'skip':
|
||
await saveUpdates({'hubwoo_onboard_user': 'yes'})
|
||
jQuery("#hubwoo-onboard-user").hide()
|
||
jQuery("#hubwoo-visit-dashboard").show()
|
||
default:
|
||
break;
|
||
}
|
||
})
|
||
|
||
jQuery('.hubwoo-action-icon').tipTip({
|
||
'attribute': 'data-tip',
|
||
delay: 150,
|
||
fadeIn: 150,
|
||
fadeOut: 200,
|
||
})
|
||
|
||
$('.hubwoo-action-icon').click( async function(e) {
|
||
if('no' == $(this).data("status")) {
|
||
e.preventDefault()
|
||
|
||
if( 'yes' == $(this).attr('data-sync-status')) {
|
||
return;
|
||
}
|
||
|
||
let triggerStatus = false
|
||
const type = $(this).data('type');
|
||
const firstChild = document.body.firstChild;
|
||
const popupWrap = document.createElement("div");
|
||
popupWrap.className = 'hubwoo_pop_up_wrap';
|
||
firstChild.parentNode.insertBefore(popupWrap, firstChild);
|
||
$(popupWrap).css('display','none');
|
||
$(popupWrap).fadeIn()
|
||
$(popupWrap).append('<div class="pop_up_sub_wrap"><div class="hubwoo-disconnect-wrapper"><h2></h2><p></p></div></div>');
|
||
$('.hubwoo-disconnect-wrapper').append('<div class="hubwoo-discon-spinner"><span class="fa fa-spin fa-spinner"></span></div>');
|
||
$('.hubwoo-disconnect-wrapper').append('<div class="hubwoo-discon-btn"><a href="javascript:void(0);" data-type="sync" class="hubwoo-btn--primary hubwoo-objects">Start sync</a><a href="javascript:void(0);" data-type="cancel" class="hubwoo-btn--primary hubwoo-btn--disconnect hubwoo-btn--secondary hubwoo-objects">Not now</a></div>');
|
||
$('.hubwoo-disconnect-wrapper > h2').text("Schedule a background sync")
|
||
$('.hubwoo-disconnect-wrapper > p').text("Would you like to schedule a background sync for all of the "+ capitalize(type)+ "s")
|
||
$('.hubwoo-objects').click( async function() {
|
||
if( 'sync' == $(this).data('type') ) {
|
||
$('.hubwoo-discon-spinner').fadeIn('slow');
|
||
switch (type) {
|
||
case 'contact':
|
||
await jQuery.post( ajaxUrl, { action: 'hubwoo_manage_vids', hubwooSecurity, process: type } );
|
||
window.location.reload()
|
||
break;
|
||
case 'deal':
|
||
await jQuery.post( ajaxUrl, { action: 'hubwoo_manage_vids', hubwooSecurity, process: type } );
|
||
window.location.reload()
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
} else {
|
||
$('.hubwoo_pop_up_wrap').hide();
|
||
}
|
||
})
|
||
}
|
||
})
|
||
|
||
jQuery( '#hub-gr-props-form' ).submit(
|
||
async( event ) => {
|
||
event.preventDefault();
|
||
const data = jQuery( 'form#hub-gr-props-form' ).serializeArray();
|
||
const progress = 0;
|
||
const selectedGroups = [];
|
||
const selectedProps = [];
|
||
jQuery( '.hubwoo-group__progress' ).css( 'display', 'block' );
|
||
updateProgressBar( 0 );
|
||
jQuery.each(
|
||
data,
|
||
function( i, input ) {
|
||
if ( input.name == 'selectedGroups[]' ) {
|
||
selectedGroups.push( input.value );
|
||
} else if ( input.name == 'selectedProps[]' ) {
|
||
selectedProps.push( input.value );
|
||
}
|
||
},
|
||
);
|
||
dataCounter.setupRunning = true;
|
||
dataCounter.totalCount = selectedGroups.length + selectedProps.length;
|
||
const ecommSetupCount = 10 * dataCounter.totalCount / 100;
|
||
dataCounter.totalCount += ecommSetupCount;
|
||
let oauth_response = await jQuery.post( ajaxUrl, { action: 'hubwoo_check_oauth_access_token', hubwooSecurity } );
|
||
oauth_response = jQuery.parseJSON( oauth_response );
|
||
const oauth_status = oauth_response.status;
|
||
|
||
if ( oauth_status ) {
|
||
const allCreatedGroups = [];
|
||
let allCreatedProperties = [];
|
||
let chunkedProperties = [];
|
||
|
||
for (let i = selectedGroups.length - 1; i >= 0; i--) {
|
||
const singleCreatedGroup = await createGroupsToHS( selectedGroups[i], 'contact' );
|
||
let groupName = null;
|
||
|
||
if ( singleCreatedGroup.status_code == 200 ) {
|
||
groupName = singleCreatedGroup.name;
|
||
} else if ( singleCreatedGroup.status_code == 409 ) {
|
||
groupName = singleCreatedGroup.name;
|
||
} else if ( singleCreatedGroup.status_code == 201 ) {
|
||
groupName = singleCreatedGroup.name;
|
||
}
|
||
allCreatedGroups.push( groupName );
|
||
}
|
||
|
||
for (let i = allCreatedGroups.length - 1; i >= 0; i--) {
|
||
let groupName = allCreatedGroups[i];
|
||
let tempPropertiesToCreate = await jQuery.ajax( { url: ajaxUrl, type: 'POST', data: { action: 'hubwoo_get_group_properties', groupName, hubwooSecurity } } );
|
||
|
||
if ( tempPropertiesToCreate != undefined || tempPropertiesToCreate.length > 0 ) {
|
||
tempPropertiesToCreate = jQuery.parseJSON( tempPropertiesToCreate );
|
||
tempPropertiesToCreate = tempPropertiesToCreate.map( ( property ) => ( { ...property, groupName } ) );
|
||
chunkedProperties.push(arrayChunk( tempPropertiesToCreate, 16 ) );
|
||
}
|
||
}
|
||
|
||
if(chunkedProperties.length > 0) {
|
||
|
||
chunkedProperties = chunkedProperties.flat();
|
||
|
||
for (let i = chunkedProperties.length - 1; i >= 0; i--) {
|
||
let singleChunk = chunkedProperties[i]
|
||
try {
|
||
const response = await createPropertiesToHS( singleChunk, 'contact' );
|
||
let results = [];
|
||
|
||
if ( response.status_code == 201 ) {
|
||
results = response.body.results;
|
||
results.map(
|
||
( createdProperty ) => {
|
||
allCreatedProperties.push( createdProperty.name );
|
||
}
|
||
);
|
||
} else if ( response.status_code == 207 ) {
|
||
results = response.body.errors;
|
||
results.map(
|
||
( createdProperty ) => {
|
||
const message = createdProperty.message;
|
||
const propertyName = message.slice( message.indexOf( 'named' ) + 5, message.indexOf( 'already' ) - 1 );
|
||
allCreatedProperties.push( propertyName );
|
||
}
|
||
);
|
||
}
|
||
} catch ( errors ) {
|
||
console.error( errors );
|
||
continue;
|
||
}
|
||
}
|
||
}
|
||
|
||
const deal_property = await jQuery.ajax({ type : 'POST', url : ajaxUrl, data : { action : 'hubwoo_deals_create_property', hubwooSecurity, }, dataType : 'json', });
|
||
|
||
allCreatedProperties = allCreatedProperties.map((prop) => { return prop.replace(/["']/g, "").trim()})
|
||
await saveUpdates( { 'hubwoo-groups-created': allCreatedGroups, 'hubwoo-properties-created': allCreatedProperties, 'hubwoo_fields_setup_completed': 1, 'hubwoo_pro_setup_completed': 1, 'hubwoo_plugin_version': '1.5.8' } );
|
||
await runEcommSetup();
|
||
updateProgressBar( 100 );
|
||
transferScreen( 'move-to-list' );
|
||
}
|
||
},
|
||
);
|
||
|
||
/* CSV creation and syncing of products, contacts, deals start. */
|
||
jQuery( document ).on(
|
||
'click',
|
||
'#hubwoo-osc-instant-sync-historical',
|
||
async function( event ) {
|
||
event.preventDefault();
|
||
jQuery( '#hubwoo-osc-instant-sync-historical' ).hide();
|
||
const progress = 0;
|
||
jQuery( '#hubwoo-ocs-form' ).slideUp( 600 );
|
||
jQuery( '#hubwoo-osc-instant-sync' ).addClass( 'hubwoo-disable' );
|
||
jQuery( '#hubwoo-osc-schedule-sync' ).addClass( 'hubwoo-disable' );
|
||
jQuery( '.hubwoo-progress-wrap' ).css( 'display', 'block' );
|
||
jQuery( '#hubwoo-osc-schedule-sync' ).css( 'display', 'none' );
|
||
updateProgressBar( 0 );
|
||
|
||
checkHistoricalData( 1, progress );
|
||
|
||
},
|
||
);
|
||
|
||
|
||
const checkHistoricalData = async( step, progress ) => {
|
||
const response = await jQuery.ajax(
|
||
{
|
||
type : 'POST',
|
||
url : ajaxUrl,
|
||
data : {
|
||
action : 'hubwoo_ocs_historical_contact',
|
||
step,
|
||
hubwooSecurity,
|
||
},
|
||
dataType : 'json',
|
||
}
|
||
).fail(
|
||
( response ) => {
|
||
updateProgressBar ( response.progress, 2 );
|
||
}
|
||
);
|
||
|
||
var max_item = Math.ceil( response.max_time / 100);
|
||
|
||
if ( 0 == response.progress && response.propertyError != true && response.status == true ) {
|
||
updateProgressBar( response.progress );
|
||
var con_batches = Math.ceil( response.contact / max_item );
|
||
var con_batch_count = 1;
|
||
var con_bar_update = parseFloat( 100 / con_batches );
|
||
con_bar_update = parseFloat( con_bar_update.toFixed(2) );
|
||
var con_progress_bar = parseFloat( 0 );
|
||
var con_deal_response = '';
|
||
var con_get_vid = 'process_request';
|
||
|
||
while ( con_batch_count <= con_batches ) {
|
||
|
||
con_progress_bar += con_bar_update;
|
||
con_progress_bar = parseFloat( con_progress_bar.toFixed(2) );
|
||
|
||
if ( con_batch_count == con_batches ) {
|
||
con_progress_bar = 100;
|
||
con_get_vid = 'final_request';
|
||
}
|
||
|
||
con_deal_response = await bulkContactSync( 1, con_progress_bar, max_item, con_get_vid );
|
||
con_batch_count++;
|
||
|
||
}
|
||
|
||
|
||
} else if( 100 == response.progress && response.propertyError != true && response.status == true ) {
|
||
con_get_vid = 'final_request';
|
||
await bulkContactSync( 1, response.progress, max_item, con_get_vid );
|
||
} else if ( response.propertyError == true ) {
|
||
updateProgressBar( 100, 2 );
|
||
|
||
} else {
|
||
con_get_vid = 'final_request';
|
||
updateProgressBar( Math.ceil( response.progress ) );
|
||
bulkContactSync( parseInt( response.step ), parseInt( response.progress ), max_item, con_get_vid );
|
||
}
|
||
};
|
||
|
||
const bulkContactSync = async( step, progress, max_item, con_get_vid ) => {
|
||
|
||
const response = await jQuery.ajax(
|
||
{
|
||
type : 'POST',
|
||
url : ajaxUrl,
|
||
data : {
|
||
action : 'hubwoo_historical_contact_sync',
|
||
step,
|
||
hubwooSecurity,
|
||
max_item,
|
||
con_get_vid,
|
||
},
|
||
dataType : 'json',
|
||
}
|
||
).fail(
|
||
( response ) => {
|
||
updateProgressBar ( response.progress, 2 );
|
||
}
|
||
);
|
||
|
||
if ( 100 == progress && response.propertyError != true && response.status == true ) {
|
||
updateProgressBar( progress );
|
||
jQuery( '.hubwoo-progress-wrap' ).children( 'p' ).append( '<strong>Completed !</strong>' );
|
||
|
||
if ( 'false' == response.skip_product ) {
|
||
jQuery( '.hubwoo-progress-wrap-import .hubwoo-progress-bar' ).css( 'width', 0 + '%' );
|
||
jQuery( '.hubwoo-progress-wrap-import .hubwoo-progress-bar' ).html( 0 + '%' );
|
||
jQuery( '.hubwoo-progress-wrap-import' ).show(500);
|
||
} else {
|
||
jQuery( '.hubwoo-progress-wrap-import-deals p strong' ).html( '2. Syncing your Deals to Hubspot. This should only take a few moments. Thanks for your patience!' );
|
||
}
|
||
|
||
var total_prod = response.total_prod;
|
||
var total_deals = response.total_deals;
|
||
|
||
if ( total_prod == 0 ) {
|
||
|
||
jQuery( '.hubwoo-progress-wrap-import .hubwoo-progress-bar' ).css( 'width', 100 + '%' );
|
||
jQuery( '.hubwoo-progress-wrap-import .hubwoo-progress-bar' ).html( 100 + '%' );
|
||
jQuery( '.hubwoo-progress-wrap-import' ).children( 'p' ).append( '<strong>Completed !</strong>' );
|
||
|
||
if ( total_deals != 0 ) {
|
||
|
||
jQuery( '.hubwoo-progress-wrap-import-deals .hubwoo-progress-bar' ).css( 'width', 0 + '%' );
|
||
jQuery( '.hubwoo-progress-wrap-import-deals .hubwoo-progress-bar' ).html( 0 + '%' );
|
||
jQuery( '.hubwoo-progress-wrap-import-deals' ).show(1000);
|
||
|
||
await deals_check( total_deals, max_item );
|
||
} else if ( total_deals == 0 ) {
|
||
jQuery( '.hubwoo-progress-wrap-import-deals .hubwoo-progress-bar' ).css( 'width', 100 + '%' );
|
||
jQuery( '.hubwoo-progress-wrap-import-deals .hubwoo-progress-bar' ).html( 100 + '%' );
|
||
jQuery( '.hubwoo-progress-wrap-import-deals' ).show(1000);
|
||
jQuery( '.hubwoo-progress-wrap-import-deals' ).children( 'p' ).append( '<strong>Completed !</strong>' );
|
||
|
||
jQuery( '.hubwoo-progress-notice' ).html( hubwooOcsSuccess );
|
||
await saveUpdates( { 'hubwoo_greeting_displayed_setup': 'yes' } );
|
||
setTimeout(function(){ location.reload();}, 3000 );
|
||
}
|
||
|
||
} else {
|
||
|
||
var pro_batches = Math.ceil( total_prod / max_item );
|
||
var batch_count = 1;
|
||
var bar_update = parseFloat( 100 / pro_batches );
|
||
bar_update = parseFloat( bar_update.toFixed(2) );
|
||
var progress_bar = parseFloat( 0 );
|
||
var last_request = false;
|
||
var bulk_pro_response = '';
|
||
var total_deals = '';
|
||
var pro_get_vid = 'process_request';
|
||
|
||
while ( batch_count <= pro_batches ) {
|
||
|
||
progress_bar += bar_update;
|
||
progress_bar = parseFloat( progress_bar.toFixed(2) );
|
||
|
||
if ( batch_count == pro_batches ){
|
||
progress_bar = 100;
|
||
last_request = true;
|
||
pro_get_vid = 'final_request';
|
||
}
|
||
|
||
bulk_pro_response = await bulkProductsSync( 1, progress_bar, last_request, max_item, pro_get_vid );
|
||
total_deals = bulk_pro_response.total_deals;
|
||
batch_count++;
|
||
}
|
||
|
||
if ( 100 == progress_bar ) {
|
||
jQuery( '.hubwoo-progress-wrap-import' ).children( 'p' ).append( '<strong>Completed !</strong>' );
|
||
jQuery( '.hubwoo-progress-wrap-import-deals .hubwoo-progress-bar' ).css( 'width', 0 + '%' );
|
||
jQuery( '.hubwoo-progress-wrap-import-deals .hubwoo-progress-bar' ).html( 0 + '%' );
|
||
jQuery( '.hubwoo-progress-wrap-import-deals' ).show(1000);
|
||
|
||
if ( true == last_request && total_deals == 0 ) {
|
||
|
||
jQuery( '.hubwoo-progress-wrap-import-deals .hubwoo-progress-bar' ).css( 'width', 100 + '%' );
|
||
jQuery( '.hubwoo-progress-wrap-import-deals .hubwoo-progress-bar' ).html( 100 + '%' );
|
||
jQuery( '.hubwoo-progress-wrap-import-deals' ).children( 'p' ).append( '<strong>Completed !</strong>' );
|
||
|
||
} else {
|
||
|
||
await deals_check( total_deals, max_item );
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
} else if ( response.propertyError == true ) {
|
||
updateProgressBar( 100, 2 );
|
||
} else {
|
||
updateProgressBar( Math.ceil( progress ) );
|
||
// bulkContactSync( parseInt( response.step ), parseInt( response.progress ) );
|
||
}
|
||
|
||
return response;
|
||
}
|
||
|
||
const bulkProductsSync = async( step, progress, last_request, max_item, pro_get_vid ) => {
|
||
const response = await jQuery.ajax(
|
||
{
|
||
type : 'POST',
|
||
url : ajaxUrl,
|
||
data : {
|
||
action : 'hubwoo_historical_products_import',
|
||
step,
|
||
hubwooSecurity,
|
||
last_request,
|
||
max_item,
|
||
pro_get_vid,
|
||
},
|
||
dataType : 'json',
|
||
}
|
||
).fail(
|
||
( response ) => {
|
||
jQuery( '.hubwoo-progress-notice' ).html( hubwooOcsError );
|
||
jQuery( '.hubwoo-progress-wrap-import .hubwoo-progress-bar' ).addClass( 'hubwoo-progress-error' );
|
||
jQuery( '.hubwoo-progress-wrap-import .hubwoo-progress-bar' ).css( 'width', '100%' );
|
||
jQuery( '.hubwoo-progress-wrap-import .hubwoo-progress-bar' ).html( 'Failed! Please check error log or contact support' );
|
||
}
|
||
);
|
||
|
||
if ( true == response.status && response.propertyError != true && response.status == true ) {
|
||
jQuery( '.hubwoo-progress-wrap-import .hubwoo-progress-bar' ).css( 'width', progress + '%' );
|
||
jQuery( '.hubwoo-progress-wrap-import .hubwoo-progress-bar' ).html( progress + '%' );
|
||
jQuery( '.hubwoo-progress-wrap-import' ).show(500);
|
||
|
||
} else if ( response.propertyError == true ) {
|
||
jQuery( '.hubwoo-progress-notice' ).html( hubwooOcsError );
|
||
jQuery( '.hubwoo-progress-wrap-import .hubwoo-progress-bar' ).addClass( 'hubwoo-progress-error' );
|
||
jQuery( '.hubwoo-progress-wrap-import .hubwoo-progress-bar' ).css( 'width', '100%' );
|
||
jQuery( '.hubwoo-progress-wrap-import .hubwoo-progress-bar' ).html( 'Failed! Please check error log or contact support' );
|
||
} else {
|
||
jQuery( '.hubwoo-progress-notice' ).html( hubwooOcsError );
|
||
jQuery( '.hubwoo-progress-wrap-import .hubwoo-progress-bar' ).addClass( 'hubwoo-progress-error' );
|
||
jQuery( '.hubwoo-progress-wrap-import .hubwoo-progress-bar' ).css( 'width', '100%' );
|
||
jQuery( '.hubwoo-progress-wrap-import .hubwoo-progress-bar' ).html( 'Failed! Please check error log or contact support' );
|
||
}
|
||
|
||
return response;
|
||
}
|
||
|
||
const bulkDealsSync = async( step, progress, max_item ) => {
|
||
|
||
const response = await jQuery.ajax(
|
||
{
|
||
type : 'POST',
|
||
url : ajaxUrl,
|
||
data : {
|
||
action : 'hubwoo_historical_deals_sync',
|
||
step,
|
||
hubwooSecurity,
|
||
max_item,
|
||
},
|
||
dataType : 'json',
|
||
}
|
||
).fail(
|
||
( response ) => {
|
||
jQuery( '.hubwoo-progress-notice' ).html( hubwooOcsError );
|
||
jQuery( '.hubwoo-progress-wrap-import-deals .hubwoo-progress-bar' ).addClass( 'hubwoo-progress-error' );
|
||
jQuery( '.hubwoo-progress-wrap-import-deals .hubwoo-progress-bar' ).css( 'width', '100%' );
|
||
jQuery( '.hubwoo-progress-wrap-import-deals .hubwoo-progress-bar' ).html( 'Failed! Please check error log or contact support' );
|
||
}
|
||
);
|
||
|
||
if ( true == response.status && response.propertyError != true && response.status == true ) {
|
||
jQuery( '.hubwoo-progress-wrap-import-deals .hubwoo-progress-bar' ).css( 'width', progress + '%' );
|
||
jQuery( '.hubwoo-progress-wrap-import-deals .hubwoo-progress-bar' ).html( progress + '%' );
|
||
jQuery( '.hubwoo-progress-wrap-import-deals' ).show(1000);
|
||
|
||
} else if ( response.propertyError == true ) {
|
||
jQuery( '.hubwoo-progress-notice' ).html( hubwooOcsError );
|
||
jQuery( '.hubwoo-progress-wrap-import-deals .hubwoo-progress-bar' ).addClass( 'hubwoo-progress-error' );
|
||
jQuery( '.hubwoo-progress-wrap-import-deals .hubwoo-progress-bar' ).css( 'width', '100%' );
|
||
jQuery( '.hubwoo-progress-wrap-import-deals .hubwoo-progress-bar' ).html( 'Failed! Please check error log or contact support' );
|
||
} else {
|
||
jQuery( '.hubwoo-progress-notice' ).html( hubwooOcsError );
|
||
jQuery( '.hubwoo-progress-wrap-import-deals .hubwoo-progress-bar' ).addClass( 'hubwoo-progress-error' );
|
||
jQuery( '.hubwoo-progress-wrap-import-deals .hubwoo-progress-bar' ).css( 'width', '100%' );
|
||
jQuery( '.hubwoo-progress-wrap-import-deals .hubwoo-progress-bar' ).html( 'Failed! Please check error log or contact support' );
|
||
|
||
}
|
||
}
|
||
|
||
const deals_check = async( total_deals, max_item ) => {
|
||
|
||
var deal_batches = Math.ceil( total_deals / max_item );
|
||
var deal_batch_count = 1;
|
||
var deal_bar_update = parseFloat( 100 / deal_batches );
|
||
deal_bar_update = parseFloat( deal_bar_update.toFixed(2) );
|
||
var deal_progress_bar = parseFloat( 0 );
|
||
var bulk_deal_response = '';
|
||
|
||
while ( deal_batch_count <= deal_batches ) {
|
||
|
||
deal_progress_bar += deal_bar_update;
|
||
deal_progress_bar = parseFloat( deal_progress_bar.toFixed(2) );
|
||
|
||
if ( deal_batch_count == deal_batches ) {
|
||
deal_progress_bar = 100;
|
||
|
||
}
|
||
|
||
bulk_deal_response = await bulkDealsSync( 1, deal_progress_bar, max_item );
|
||
deal_batch_count++;
|
||
|
||
if ( 100 == deal_progress_bar ) {
|
||
jQuery( '.hubwoo-progress-wrap-import-deals' ).children( 'p' ).append( '<strong>Completed !</strong>' );
|
||
jQuery( '.hubwoo-progress-notice' ).html( hubwooOcsSuccess );
|
||
await saveUpdates( { 'hubwoo_greeting_displayed_setup': 'yes' } );
|
||
location.reload();
|
||
}
|
||
}
|
||
}
|
||
|
||
if( new URLSearchParams(window.location.search).get('hubwoo_tab') == 'hubwoo-logs') {
|
||
|
||
var ajax_url = ajaxUrl + '?action=hubwoo_get_datatable_data&hubwooSecurity='+hubwooSecurity;
|
||
|
||
jQuery('#hubwoo-table').dataTable({
|
||
"processing": true,
|
||
"serverSide": true,
|
||
"ajax": ajax_url,
|
||
"dom": 'f<"bottom">tr<"bottom"ilp>',
|
||
"ordering": false,
|
||
language: {
|
||
"lengthMenu": "Rows per page _MENU_",
|
||
"info": "_START_ - _END_ of _TOTAL_",
|
||
|
||
paginate: {
|
||
next: '<svg width="8" height="12" viewBox="0 0 8 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.99984 0L0.589844 1.41L5.16984 6L0.589844 10.59L1.99984 12L7.99984 6L1.99984 0Z" fill="#8E908F"/></svg>',
|
||
previous: '<svg width="8" height="12" viewBox="0 0 8 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.00016 12L7.41016 10.59L2.83016 6L7.41016 1.41L6.00016 -1.23266e-07L0.000156927 6L6.00016 12Z" fill="#8E908F"/></svg>'
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
jQuery(document).on('click', '#hubwoo-download-log', async function(e){
|
||
e.preventDefault();
|
||
var button = jQuery(this);
|
||
button.addClass('hubwoo-btn__loader');
|
||
const response = await jQuery.ajax(
|
||
{
|
||
type : 'POST',
|
||
url : ajaxUrl,
|
||
data : {
|
||
action : 'hubwoo_download_sync_log',
|
||
hubwooSecurity,
|
||
},
|
||
dataType : 'json',
|
||
}
|
||
);
|
||
if ( response.success ) {
|
||
button.removeClass('hubwoo-btn__loader');
|
||
window.location.href = response.redirect;
|
||
}
|
||
});
|
||
|
||
jQuery(document).on('click', '#hubwoo-clear-log', async function(e){
|
||
e.preventDefault();
|
||
var button = jQuery(this);
|
||
button.addClass('hubwoo-btn__loader');
|
||
const response = await jQuery.ajax(
|
||
{
|
||
type : 'POST',
|
||
url : ajaxUrl,
|
||
data : {
|
||
action : 'hubwoo_clear_sync_log',
|
||
hubwooSecurity,
|
||
},
|
||
dataType : 'json',
|
||
}
|
||
);
|
||
if ( response.success ) {
|
||
button.removeClass('hubwoo-btn__loader');
|
||
window.location.href = response.redirect;
|
||
}
|
||
});
|
||
|
||
jQuery( document ).on(
|
||
'click',
|
||
'#hubwoo-save-pipeline',
|
||
async function( event ) {
|
||
await saveUpdates( { 'hubwoo_pipeline_setup_completed': 1 } );
|
||
transferScreen( 'move-to-sync' );
|
||
},
|
||
);
|
||
|
||
jQuery( document ).on(
|
||
'click',
|
||
'.hubwoo_update_pipelines',
|
||
async function( event ) {
|
||
const selected_pipeline = jQuery( '.hubwoo_selected_pipeline' ).find(":selected").val();
|
||
jQuery(this).find('.fa-refresh').addClass('fa-spin');
|
||
const response = await jQuery.ajax(
|
||
{
|
||
type : 'POST',
|
||
url : ajaxUrl,
|
||
data : {
|
||
action : 'hubwoo_fetch_update_pipelines',
|
||
selected_pipeline,
|
||
hubwooSecurity,
|
||
},
|
||
dataType : 'json',
|
||
}
|
||
);
|
||
if ( response.success ) {
|
||
jQuery(this).find('.fa-refresh').removeClass('fa-spin');
|
||
window.location.href = window.location.href;
|
||
}
|
||
}
|
||
);
|
||
|
||
jQuery(document).on('input', '#hubwoo_abncart_timing', function() {
|
||
var value = jQuery(this).val();
|
||
if (value < 5 && value !== "") {
|
||
jQuery(this).val(5);
|
||
}
|
||
});
|
||
},
|
||
);
|
||
}( jQuery ) );
|