Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
cb8174c
chore: Readme udpated.
NiloyDas789 Aug 12, 2024
d256883
feat: Hubspot update records action created
RishadAlam Aug 17, 2024
a2d5c21
feat: Hubspot contact update pro feature added in the list
RishadAlam Aug 17, 2024
257028f
feat: Hubspot contact update data submission added
RishadAlam Aug 17, 2024
381c77d
core: Pro features alphabetically sorted
RishadAlam Aug 17, 2024
9d4f28c
action: JetEngine.init
FahimSakib Aug 18, 2024
35d28e9
Merge branch 'main' into niloy-dev
NiloyDas789 Aug 18, 2024
574f485
fix: Mail Mint updating tags for Contact issue fixed
RishadAlam Aug 18, 2024
21fea52
update: Hubspot update contact features name
RishadAlam Aug 18, 2024
f5b15c9
feat: HubsPot Update Company filter hook added
RishadAlam Aug 18, 2024
a4b8a8b
feat: Hubspot update company action name added
RishadAlam Aug 18, 2024
de4dacc
refactor: Hubspot handle Contact & Company execution method
RishadAlam Aug 18, 2024
5288a0d
feat: Hubspot Deal update feature added in the list
RishadAlam Aug 18, 2024
b9af6c4
feat: Hubspot Deal module update data submission added
RishadAlam Aug 18, 2024
a5c2e6a
action: JetEngine task one
FahimSakib Aug 18, 2024
624b2c5
chore: actions note css
FahimSakib Aug 18, 2024
b6d20f0
feat: Hubspot Ticket update feature added in the list
RishadAlam Aug 18, 2024
69fec09
feat: Hubspot Ticket module update data submission added
RishadAlam Aug 18, 2024
dc8055b
action: JetEngine task two
FahimSakib Aug 19, 2024
34a083e
fix: Hubspot existing record id property
RishadAlam Aug 20, 2024
ad33826
refactor: Hubsport Update Entity records optimized
RishadAlam Aug 20, 2024
00aaa3d
remove: Brizy entity conditions
RishadAlam Aug 20, 2024
a703674
feat: ActionHook StdClass extractor added
RishadAlam Aug 21, 2024
f824147
core: Integration Actions replace into Utilities
RishadAlam Aug 21, 2024
4ddcc8f
action: JetEngine task three
FahimSakib Aug 21, 2024
dea074a
update: Webhook Data Table types update
RishadAlam Aug 21, 2024
7432b7a
remove: Bricks remove from integration helpers
RishadAlam Aug 21, 2024
0183935
Merge branch 'action-hook-stdclass' into rishad-dev-tmp
RishadAlam Aug 21, 2024
fe8a275
Merge branch 'jet-engine-action' into fahim-temp
FahimSakib Aug 21, 2024
f34bb3f
Merge remote-tracking branch 'origin/fahim-temp' into rishad-dev-tmp
RishadAlam Aug 21, 2024
4fc0d48
Merge branch 'rishad-dev-tmp' into niloy-dev
NiloyDas789 Aug 21, 2024
c0284ad
Update: Version updated to 2.2.1
NiloyDas789 Aug 22, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions bitwpfi.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Plugin Name: Bit Integrations
* Plugin URI: https://bitapps.pro/bit-integrations
* Description: Bit Integrations is a platform that integrates with over 200+ different platforms to help with various tasks on your WordPress site, like WooCommerce, Form builder, Page builder, LMS, Sales funnels, Bookings, CRM, Webhooks, Email marketing, Social media and Spreadsheets, etc
* Version: 2.2.0
* Version: 2.2.1
* Author: Automation & Integration Plugin - Bit Apps
* Author URI: https://bitapps.pro
* Text Domain: bit-integrations
Expand All @@ -23,7 +23,7 @@
$btcbi_db_version = '1.0';

// Define most essential constants.
define('BTCBI_VERSION', '2.2.0');
define('BTCBI_VERSION', '2.2.1');
define('BTCBI_PLUGIN_MAIN_FILE', __FILE__);

require_once plugin_dir_path(__FILE__) . 'includes/loader.php';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,24 @@ import MultiSelect from 'react-multiple-select-dropdown-lite'
import Loader from '../../Loaders/Loader'
import { addFieldMap } from '../IntegrationHelpers/IntegrationHelpers'
import ActiveCampaignActions from './ActiveCampaignActions'
import { refreshActiveCampaingAccounts, refreshActiveCampaingHeader, refreshActiveCampaingList, refreshActiveCampaingTags } from './ActiveCampaignCommonFunc'
import {
refreshActiveCampaingAccounts,
refreshActiveCampaingHeader,
refreshActiveCampaingList,
refreshActiveCampaingTags
} from './ActiveCampaignCommonFunc'
import ActiveCampaignFieldMap from './ActiveCampaignFieldMap'
import { create } from 'mutative'

export default function ActiveCampaignIntegLayout({ formID, formFields, activeCampaingConf, setActiveCampaingConf, isLoading, setIsLoading, setSnackbar }) {
export default function ActiveCampaignIntegLayout({
formID,
formFields,
activeCampaingConf,
setActiveCampaingConf,
isLoading,
setIsLoading,
setSnackbar
}) {
const setTags = (val) => {
const newConf = { ...activeCampaingConf }
if (val) {
Expand All @@ -19,21 +32,25 @@ export default function ActiveCampaignIntegLayout({ formID, formFields, activeCa
}
setActiveCampaingConf({ ...newConf })
}
const setAccount = val => {
const setAccount = (val) => {
console.log(val)
setActiveCampaingConf(prevConf => create(prevConf, draftConf => {
if (val) {
draftConf.selectedAccount = val
} else {
delete draftConf.selectedAccount
}
}))
setActiveCampaingConf((prevConf) =>
create(prevConf, (draftConf) => {
if (val) {
draftConf.selectedAccount = val
} else {
delete draftConf.selectedAccount
}
})
)
}

const setJobTitle = val => {
setActiveCampaingConf(prevConf => create(prevConf, draftConf => {
draftConf['job_title'] = val
}))
const setJobTitle = (val) => {
setActiveCampaingConf((prevConf) =>
create(prevConf, (draftConf) => {
draftConf['job_title'] = val
})
)
}

const handleInput = (e) => {
Expand All @@ -52,110 +69,222 @@ export default function ActiveCampaignIntegLayout({ formID, formFields, activeCa
const activeCampaignLists = activeCampaingConf?.default?.activeCampaignLists

useEffect(() => {
activeCampaignLists && refreshActiveCampaingTags(activeCampaingConf, setActiveCampaingConf, setIsLoading, setSnackbar)
activeCampaignLists &&
refreshActiveCampaingTags(
activeCampaingConf,
setActiveCampaingConf,
setIsLoading,
setSnackbar
)
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [activeCampaignLists])

return (
<>
<br />
<b className="wdt-200 d-in-b">{__('List:', 'bit-integrations')}</b>
<select value={activeCampaingConf?.listId} name="listId" id="" className="btcd-paper-inp w-5" onChange={handleInput}>
<select
value={activeCampaingConf?.listId}
name="listId"
id=""
className="btcd-paper-inp w-5"
onChange={handleInput}>
<option value="">{__('Select List', 'bit-integrations')}</option>
{
activeCampaingConf?.default?.activeCampaignLists && Object.keys(activeCampaingConf.default.activeCampaignLists).map(listname => (
<option key={`${listname + 1}`} value={activeCampaingConf.default.activeCampaignLists[listname].listId}>
{activeCampaingConf?.default?.activeCampaignLists &&
Object.keys(activeCampaingConf.default.activeCampaignLists).map((listname) => (
<option
key={`${listname + 1}`}
value={activeCampaingConf.default.activeCampaignLists[listname].listId}>
{activeCampaingConf.default.activeCampaignLists[listname].listName}
</option>
))
}
))}
</select>
<button onClick={() => refreshActiveCampaingList(activeCampaingConf, setActiveCampaingConf, setIsLoading, setSnackbar)} className="icn-btn sh-sm ml-2 mr-2 tooltip" style={{ '--tooltip-txt': '"Refresh Activecapmaign list"' }} type="button" disabled={isLoading}>&#x21BB;</button>
<button
onClick={() =>
refreshActiveCampaingList(
activeCampaingConf,
setActiveCampaingConf,
setIsLoading,
setSnackbar
)
}
className="icn-btn sh-sm ml-2 mr-2 tooltip"
style={{ '--tooltip-txt': '"Refresh Activecapmaign list"' }}
type="button"
disabled={isLoading}>
&#x21BB;
</button>
<br />
<br />
<div className="d-flx">
<b style={{ marginTop: '15px' }} className="wdt-200 d-in-b">{__('Tags: ', 'bit-integrations')}</b>
<b style={{ marginTop: '15px' }} className="wdt-200 d-in-b">
{__('Tags: ', 'bit-integrations')}
</b>
<MultiSelect
defaultValue={activeCampaingConf?.tagIds}
className="btcd-paper-drpdwn w-5"
options={activeCampaingConf?.default?.activeCampaignTags && Object.keys(activeCampaingConf.default.activeCampaignTags).map(tag => ({ label: activeCampaingConf.default.activeCampaignTags[tag].tagName, value: activeCampaingConf.default.activeCampaignTags[tag].tagId }))}
onChange={val => setTags(val)}
options={
activeCampaingConf?.default?.activeCampaignTags &&
Object.keys(activeCampaingConf.default.activeCampaignTags).map((tag) => ({
label: activeCampaingConf.default.activeCampaignTags[tag].tagName,
value: activeCampaingConf.default.activeCampaignTags[tag].tagId
}))
}
onChange={(val) => setTags(val)}
/>
<button onClick={() => refreshActiveCampaingTags(activeCampaingConf, setActiveCampaingConf, setIsLoading, setSnackbar)} className="icn-btn sh-sm ml-2 mr-2 tooltip" style={{ '--tooltip-txt': `'${__('Refresh Activecapmaign Tags', 'bit-integrations')}'` }} type="button" disabled={isLoading}>&#x21BB;</button>
<button
onClick={() =>
refreshActiveCampaingTags(
activeCampaingConf,
setActiveCampaingConf,
setIsLoading,
setSnackbar
)
}
className="icn-btn sh-sm ml-2 mr-2 tooltip"
style={{ '--tooltip-txt': `'${__('Refresh Activecapmaign Tags', 'bit-integrations')}'` }}
type="button"
disabled={isLoading}>
&#x21BB;
</button>
</div>
<br />
{activeCampaingConf?.accounts &&
{activeCampaingConf?.accounts && (
<>
<div className="d-flx">
<b style={{ marginTop: '15px' }} className="wdt-200 d-in-b">{__('Account: ', 'bit-integrations')}</b>
<b style={{ marginTop: '15px' }} className="wdt-200 d-in-b">
{__('Account: ', 'bit-integrations')}
</b>
<MultiSelect
defaultValue={activeCampaingConf?.selectedAccount}
className="btcd-paper-drpdwn w-5"
options={activeCampaingConf?.accounts && activeCampaingConf.accounts.map(account => ({ label: account.name, value: account.id }))}
options={
activeCampaingConf?.accounts &&
activeCampaingConf.accounts.map((account) => ({
label: account.name,
value: account.id
}))
}
onChange={setAccount}
singleSelect
/>
<button onClick={() => refreshActiveCampaingAccounts(activeCampaingConf, setActiveCampaingConf, setIsLoading, setSnackbar)} className="icn-btn sh-sm ml-2 mr-2 tooltip" style={{ '--tooltip-txt': `'${__('Refresh Activecapmaign Tags', 'bit-integrations')}'` }} type="button" disabled={isLoading}>&#x21BB;</button>
<button
onClick={() =>
refreshActiveCampaingAccounts(
activeCampaingConf,
setActiveCampaingConf,
setIsLoading,
setSnackbar
)
}
className="icn-btn sh-sm ml-2 mr-2 tooltip"
style={{
'--tooltip-txt': `'${__('Refresh Activecapmaign Tags', 'bit-integrations')}'`
}}
type="button"
disabled={isLoading}>
&#x21BB;
</button>
</div>
<br />
</>
}
{activeCampaingConf?.selectedAccount &&
)}
{activeCampaingConf?.selectedAccount && (
<>
<div className="d-flx">
<b style={{ marginTop: '15px' }} className="wdt-200 d-in-b">{__('Job Title:', 'bit-integrations')}</b>
<input className="btcd-paper-inp w-5 mt-1" onChange={e => setJobTitle(e.target.value)} name="job_title" value={activeCampaingConf.job_title} type="text" placeholder={__('Job Title...', 'bit-integrations')} />
<b style={{ marginTop: '15px' }} className="wdt-200 d-in-b">
{__('Job Title:', 'bit-integrations')}
</b>
<input
className="btcd-paper-inp w-5 mt-1"
onChange={(e) => setJobTitle(e.target.value)}
name="job_title"
value={activeCampaingConf.job_title}
type="text"
placeholder={__('Job Title...', 'bit-integrations')}
/>
</div>
<br />
</>
}
)}
{isLoading && (
<Loader style={{
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
height: 100,
transform: 'scale(0.7)',
}}
<Loader
style={{
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
height: 100,
transform: 'scale(0.7)'
}}
/>
)}

<div className="mt-4">
<b className="wdt-100">{__('Map Fields', 'bit-integrations')}</b>
<button onClick={() => refreshActiveCampaingHeader(activeCampaingConf, setActiveCampaingConf, setIsLoading, setSnackbar)} className="icn-btn sh-sm ml-2 mr-2 tooltip" style={{ '--tooltip-txt': `'${__('Refresh Activecapmaign Field', 'bit-integrations')}'` }} type="button" disabled={isLoading}>&#x21BB;</button>
<button
onClick={() =>
refreshActiveCampaingHeader(
activeCampaingConf,
setActiveCampaingConf,
setIsLoading,
setSnackbar
)
}
className="icn-btn sh-sm ml-2 mr-2 tooltip"
style={{ '--tooltip-txt': `'${__('Refresh Activecapmaign Field', 'bit-integrations')}'` }}
type="button"
disabled={isLoading}>
&#x21BB;
</button>
</div>
{
(activeCampaingConf?.listId || activeCampaingConf?.default?.fields) && (
<>
<div className="btcd-hr mt-1" />
<div className="flx flx-around mt-2 mb-2 btcbi-field-map-label">
<div className="txt-dp"><b>{__('Form Fields', 'bit-integrations')}</b></div>
<div className="txt-dp"><b>{__('ActiveCampaign Fields', 'bit-integrations')}</b></div>
{(activeCampaingConf?.listId || activeCampaingConf?.default?.fields) && (
<>
<div className="btcd-hr mt-1" />
<div className="flx flx-around mt-2 mb-2 btcbi-field-map-label">
<div className="txt-dp">
<b>{__('Form Fields', 'bit-integrations')}</b>
</div>
<div className="txt-dp">
<b>{__('ActiveCampaign Fields', 'bit-integrations')}</b>
</div>
</div>

{activeCampaingConf.field_map.map((itm, i) => (
<ActiveCampaignFieldMap
key={`Activecampaign-m-${i + 9}`}
i={i}
field={itm}
activeCampaingConf={activeCampaingConf}
formFields={formFields}
setActiveCampaingConf={setActiveCampaingConf}
/>
))}
<div className="txt-center btcbi-field-map-button mt-2"><button onClick={() => addFieldMap(activeCampaingConf.field_map.length, activeCampaingConf, setActiveCampaingConf)} className="icn-btn sh-sm" type="button">+</button></div>
<br />
<br />
<div className="mt-4"><b className="wdt-100">{__('Actions', 'bit-integrations')}</b></div>
<div className="btcd-hr mt-1" />
<ActiveCampaignActions
{activeCampaingConf.field_map.map((itm, i) => (
<ActiveCampaignFieldMap
key={`Activecampaign-m-${i + 9}`}
i={i}
field={itm}
activeCampaingConf={activeCampaingConf}
formFields={formFields}
setActiveCampaingConf={setActiveCampaingConf}
/>
</>
)
}

))}
<div className="txt-center btcbi-field-map-button mt-2">
<button
onClick={() =>
addFieldMap(
activeCampaingConf.field_map.length,
activeCampaingConf,
setActiveCampaingConf
)
}
className="icn-btn sh-sm"
type="button">
+
</button>
</div>
<br />
<br />
<div className="mt-4">
<b className="wdt-100">{__('Utilities', 'bit-integrations')}</b>
</div>
<div className="btcd-hr mt-1" />
<ActiveCampaignActions
activeCampaingConf={activeCampaingConf}
setActiveCampaingConf={setActiveCampaingConf}
/>
</>
)}
</>
)
}
Loading