diff --git a/backend/Actions/PostCreation/PostCreationController.php b/backend/Actions/PostCreation/PostCreationController.php index 9206ee36d..09619d45a 100644 --- a/backend/Actions/PostCreation/PostCreationController.php +++ b/backend/Actions/PostCreation/PostCreationController.php @@ -120,20 +120,30 @@ public static function mbFileMapping($metaboxMapField, $fieldValues, $metaboxFie { foreach ($metaboxMapField as $fieldPair) { if (property_exists($fieldPair, 'metaboxFileUpload')) { - if (!empty($fieldValues[$fieldPair->formField])) { - $triggerValue = $fieldPair->formField; - $actionValue = $fieldPair->metaboxFile; - $fieldObject = $metaboxFields->{$actionValue}; + if (empty($fieldPair->formField) || empty($fieldPair->metaboxFileUpload)) { + continue; + } - if ($fieldObject['multiple'] == false) { - static::uploadMBFile($postId, $fieldValues[$triggerValue], $fieldObject); - } elseif ($fieldObject['multiple'] == true) { - $attachMentId = Helper::multiFileMoveWpMedia($fieldValues[$triggerValue], $postId); + if (empty($fieldValues[$fieldPair->formField])) { + continue; + } + + $triggerValue = $fieldPair->formField; + $actionValue = $fieldPair->metaboxFileUpload; + $fieldObject = isset($metaboxFields[$actionValue]) ? $metaboxFields[$actionValue] : null; + + if (empty($fieldObject)) { + continue; + } + + if (empty($fieldObject['multiple'])) { + static::uploadMBFile($postId, $fieldValues[$triggerValue], $fieldObject); + } else { + $attachMentId = Helper::multiFileMoveWpMedia($fieldValues[$triggerValue], $postId); - if (!empty($attachMentId) && \is_array($attachMentId)) { - foreach ($attachMentId as $attachemnt) { - add_post_meta($postId, $fieldObject['field_name'], $attachemnt); - } + if (!empty($attachMentId) && \is_array($attachMentId)) { + foreach ($attachMentId as $attachemnt) { + add_post_meta($postId, $fieldObject['field_name'], $attachemnt); } } } @@ -286,6 +296,10 @@ public function execute($integrationData, $fieldValues) if (\in_array($fieldValues['bit-integrator%trigger_data%']['triggered_entity'], $triggers)) { $fieldValues = Helper::splitStringToarray($fieldValues); } + $actionType = isset($flowDetails->action_type) ? $flowDetails->action_type : 'createNewPost'; + if ($actionType !== 'createNewPost') { + return $this->executeWordPressPostAction($flowDetails, $fieldValues, $actionType, $integrationData->id); + } $postData = $this->postFieldData($flowDetails); $postFieldMap = $flowDetails->post_map; @@ -363,6 +377,49 @@ public function execute($integrationData, $fieldValues) } } + private function executeWordPressPostAction($flowDetails, $fieldValues, $actionType, $integrationId) + { + $defaultResponse = [ + 'success' => false, + 'message' => wp_sprintf( + // translators: %s: Plugin name + __('%s plugin is not installed or activated', 'bit-integrations'), + 'Bit Integrations Pro' + ), + ]; + + $response = Hooks::apply( + Config::withPrefix($actionType), + $defaultResponse, + $this->buildRequestDataFromPostMap(isset($flowDetails->post_map) ? $flowDetails->post_map : [], $fieldValues), + ); + + $responseType = isset($response['success']) && $response['success'] ? 'success' : 'error'; + LogHandler::save($integrationId, ['type' => 'WP Post Creation', 'type_name' => $actionType], $responseType, $response); + + return true; + } + + private function buildRequestDataFromPostMap($postMap, $fieldValues) + { + $dataFinal = []; + + foreach ($postMap as $mapItem) { + if (empty($mapItem->formField) || empty($mapItem->postField)) { + continue; + } + + $triggerValue = $mapItem->formField; + $actionValue = $mapItem->postField; + + $dataFinal[$actionValue] = $triggerValue === 'custom' && isset($mapItem->customValue) + ? Common::replaceFieldWithValue($mapItem->customValue, $fieldValues) + : ($fieldValues[$triggerValue] ?? ''); + } + + return $dataFinal; + } + private static function setPostCategories($postId, $postCategories) { if (empty($postCategories)) { diff --git a/backend/Actions/Registration/RegistrationController.php b/backend/Actions/Registration/RegistrationController.php index f865e5995..98a3efe0c 100644 --- a/backend/Actions/Registration/RegistrationController.php +++ b/backend/Actions/Registration/RegistrationController.php @@ -2,7 +2,9 @@ namespace BitApps\Integrations\Actions\Registration; +use BitApps\Integrations\Config; use BitApps\Integrations\Core\Util\Common; +use BitApps\Integrations\Core\Util\Hooks; use BitApps\Integrations\Flow\Flow; use BitApps\Integrations\Log\LogHandler; @@ -46,6 +48,14 @@ public function createUser($userData, $flowDetails, $fieldValues) public function execute($integrationData, $fieldValues) { $flowDetails = $integrationData->flow_details; + $actionType = isset($flowDetails->action_type) ? $flowDetails->action_type : 'new_user'; + + if (!\in_array($actionType, ['new_user', 'updated_user'], true)) { + $this->executeWordPressUserAction($flowDetails, $fieldValues, $actionType); + + return; + } + $userFieldMap = $flowDetails->user_map; $specialTagValue = Flow::specialTagMappingValue($userFieldMap); @@ -57,13 +67,54 @@ public function execute($integrationData, $fieldValues) $userData['role'] = $flowDetails->user_role; } - if (isset($flowDetails->action_type) && $flowDetails->action_type == 'updated_user') { + if ($actionType === 'updated_user') { $this->updateUser($userData, $flowDetails, $updatedvalues); - } elseif (isset($flowDetails->action_type) && $flowDetails->action_type == 'new_user') { + } else { $this->createUser($userData, $flowDetails, $updatedvalues); } } + private function executeWordPressUserAction($flowDetails, $fieldValues, $actionType) + { + $defaultResponse = [ + 'success' => false, + 'message' => wp_sprintf( + // translators: %s: Plugin name + __('%s plugin is not installed or activated', 'bit-integrations'), + 'Bit Integrations Pro' + ), + ]; + + $response = Hooks::apply( + Config::withPrefix($actionType), + $defaultResponse, + $this->buildRequestDataFromUserMap(isset($flowDetails->user_map) ? $flowDetails->user_map : [], $fieldValues), + ); + + $responseType = isset($response['success']) && $response['success'] ? 'success' : 'error'; + LogHandler::save($this->_integrationID, ['type' => 'WP User Registration', 'type_name' => $actionType], $responseType, $response); + } + + private function buildRequestDataFromUserMap($userMap, $fieldValues) + { + $dataFinal = []; + + foreach ($userMap as $mapItem) { + if (empty($mapItem->formField) || empty($mapItem->userField)) { + continue; + } + + $triggerValue = $mapItem->formField; + $actionValue = $mapItem->userField; + + $dataFinal[$actionValue] = $triggerValue === 'custom' && isset($mapItem->customValue) + ? Common::replaceFieldWithValue($mapItem->customValue, $fieldValues) + : ($fieldValues[$triggerValue] ?? ''); + } + + return $dataFinal; + } + private function userFieldMapping($user_map, $fieldValues, $flowDetails) { $fieldData = []; diff --git a/backend/Actions/WordPress/RecordApiHelper.php b/backend/Actions/WordPress/RecordApiHelper.php new file mode 100644 index 000000000..f4ec7ac5a --- /dev/null +++ b/backend/Actions/WordPress/RecordApiHelper.php @@ -0,0 +1,247 @@ +_integrationDetails = $integrationDetails; + $this->_integrationID = $integId; + } + + public function execute($fieldValues, $fieldMap, $integrationDetails) + { + $fieldData = $this->generateReqDataFromFieldMap($fieldMap, $fieldValues); + $mainAction = isset($this->_integrationDetails->mainAction) ? $this->_integrationDetails->mainAction : ''; + + $defaultResponse = [ + 'success' => false, + 'message' => wp_sprintf( + // translators: %s: Plugin name + __('%s plugin is not installed or activated', 'bit-integrations'), + 'Bit Integrations Pro' + ), + ]; + + if (strpos($mainAction, 'get') === 0) { + $response = [ + 'success' => false, + 'message' => __('Get data actions are no longer available in WordPress integration.', 'bit-integrations'), + ]; + + LogHandler::save($this->_integrationID, ['type' => 'WordPress', 'type_name' => $mainAction], 'error', $response); + + return $response; + } + + switch ($mainAction) { + // === Post Types === + case 'registerPostType': + $response = Hooks::apply(Config::withPrefix('wordpress_registerPostType'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'unregisterPostType': + $response = Hooks::apply(Config::withPrefix('wordpress_unregisterPostType'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'addPostTypeFeatures': + $response = Hooks::apply(Config::withPrefix('wordpress_addPostTypeFeatures'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + // === Post Tags === + case 'createPostTag': + $response = Hooks::apply(Config::withPrefix('wordpress_createPostTag'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'updatePostTag': + $response = Hooks::apply(Config::withPrefix('wordpress_updatePostTag'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'deletePostTag': + $response = Hooks::apply(Config::withPrefix('wordpress_deletePostTag'), $defaultResponse, $fieldData, $integrationDetails); + + break; + case 'addTaxonomyToPost': + $response = Hooks::apply(Config::withPrefix('wordpress_addTaxonomyToPost'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'removeTaxonomyFromPost': + $response = Hooks::apply(Config::withPrefix('wordpress_removeTaxonomyFromPost'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'addTagsToPost': + $response = Hooks::apply(Config::withPrefix('wordpress_addTagsToPost'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'removeTagsFromPost': + $response = Hooks::apply(Config::withPrefix('wordpress_removeTagsFromPost'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + // === Media === + case 'addNewImage': + $response = Hooks::apply(Config::withPrefix('wordpress_addNewImage'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'deleteMedia': + $response = Hooks::apply(Config::withPrefix('wordpress_deleteMedia'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'renameMedia': + $response = Hooks::apply(Config::withPrefix('wordpress_renameMedia'), $defaultResponse, $fieldData, $integrationDetails); + + break; + // === Taxonomies === + case 'registerTaxonomy': + $response = Hooks::apply(Config::withPrefix('wordpress_registerTaxonomy'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'unregisterTaxonomy': + $response = Hooks::apply(Config::withPrefix('wordpress_unregisterTaxonomy'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + // === Terms === + case 'createNewTerm': + $response = Hooks::apply(Config::withPrefix('wordpress_createNewTerm'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'updateTerm': + $response = Hooks::apply(Config::withPrefix('wordpress_updateTerm'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'termDelete': + $response = Hooks::apply(Config::withPrefix('wordpress_termDelete'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + // === Categories === + case 'createCategory': + $response = Hooks::apply(Config::withPrefix('wordpress_createCategory'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'updateCategory': + $response = Hooks::apply(Config::withPrefix('wordpress_updateCategory'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'deleteCategory': + $response = Hooks::apply(Config::withPrefix('wordpress_deleteCategory'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'addCategoryToPost': + $response = Hooks::apply(Config::withPrefix('wordpress_addCategoryToPost'), $defaultResponse, $fieldData, $integrationDetails); + + break; + // === Product Tags (WooCommerce) === + case 'createProductTag': + $response = Hooks::apply(Config::withPrefix('wordpress_createProductTag'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'updateProductTag': + $response = Hooks::apply(Config::withPrefix('wordpress_updateProductTag'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'deleteProductTag': + $response = Hooks::apply(Config::withPrefix('wordpress_deleteProductTag'), $defaultResponse, $fieldData, $integrationDetails); + + break; + // === Product Categories (WooCommerce) === + case 'createProductCategory': + $response = Hooks::apply(Config::withPrefix('wordpress_createProductCategory'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'updateProductCategory': + $response = Hooks::apply(Config::withPrefix('wordpress_updateProductCategory'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'deleteProductCategory': + $response = Hooks::apply(Config::withPrefix('wordpress_deleteProductCategory'), $defaultResponse, $fieldData, $integrationDetails); + + break; + // === Product Types (WooCommerce) === + case 'createProductType': + $response = Hooks::apply(Config::withPrefix('wordpress_createProductType'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'updateProductType': + $response = Hooks::apply(Config::withPrefix('wordpress_updateProductType'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'deleteProductType': + $response = Hooks::apply(Config::withPrefix('wordpress_deleteProductType'), $defaultResponse, $fieldData, $integrationDetails); + + break; + // === Plugin Management === + case 'checkPluginActivationStatus': + $response = Hooks::apply(Config::withPrefix('wordpress_checkPluginActivationStatus'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'activatePlugin': + $response = Hooks::apply(Config::withPrefix('wordpress_activatePlugin'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + default: + $response = [ + 'success' => false, + 'message' => __('Invalid action', 'bit-integrations'), + ]; + + break; + } + + $responseType = isset($response['success']) && $response['success'] ? 'success' : 'error'; + LogHandler::save($this->_integrationID, ['type' => 'WordPress', 'type_name' => $mainAction], $responseType, $response); + + return $response; + } + + private function generateReqDataFromFieldMap($fieldMap, $fieldValues) + { + $dataFinal = []; + + foreach ($fieldMap as $item) { + $triggerValue = $item->formField; + $actionValue = $item->wordPressField; + + $dataFinal[$actionValue] = $triggerValue === 'custom' && isset($item->customValue) + ? Common::replaceFieldWithValue($item->customValue, $fieldValues) + : ($fieldValues[$triggerValue] ?? ''); + } + + return $dataFinal; + } +} diff --git a/backend/Actions/WordPress/Routes.php b/backend/Actions/WordPress/Routes.php new file mode 100644 index 000000000..71ec270e8 --- /dev/null +++ b/backend/Actions/WordPress/Routes.php @@ -0,0 +1,10 @@ +flow_details; + $integId = $integrationData->id; + $fieldMap = isset($integrationDetails->field_map) ? $integrationDetails->field_map : []; + + $recordApiHelper = new RecordApiHelper($integrationDetails, $integId); + + return $recordApiHelper->execute($fieldValues, $fieldMap, $integrationDetails); + } +} diff --git a/backend/Core/Util/AllTriggersName.php b/backend/Core/Util/AllTriggersName.php index 951b8dc7c..467479f3a 100644 --- a/backend/Core/Util/AllTriggersName.php +++ b/backend/Core/Util/AllTriggersName.php @@ -144,6 +144,7 @@ public static function allTriggersName() 'WCMemberships' => ['name' => 'WooCommerce Memberships', 'isPro' => true, 'is_active' => false], 'WCSubscriptions' => ['name' => 'WooCommerce Subscriptions', 'isPro' => true, 'is_active' => false], 'Webhook' => ['name' => 'Webhook', 'isPro' => true, 'is_active' => false], + 'WordPress' => ['name' => 'WordPress', 'isPro' => true, 'is_active' => false], 'WeForms' => ['name' => 'WeForms', 'isPro' => true, 'is_active' => false], 'WeDocs' => ['name' => 'weDocs', 'isPro' => true, 'is_active' => false], 'WPCourseware' => ['name' => 'WP Courseware', 'isPro' => true, 'is_active' => false], diff --git a/frontend/src/Utils/StaticData/webhookIntegrations.js b/frontend/src/Utils/StaticData/webhookIntegrations.js index bd468f03a..cec3a619d 100644 --- a/frontend/src/Utils/StaticData/webhookIntegrations.js +++ b/frontend/src/Utils/StaticData/webhookIntegrations.js @@ -94,7 +94,10 @@ export const customFormIntegrations = [ 'WeDocs', 'UserRegistrationMembership', 'UltimateAffiliatePro', - "FluentPdfGenerator" + 'Registration', + 'Post', + 'WordPress', + 'FluentPdfGenerator' ] export const actionHookIntegrations = ['ActionHook'] diff --git a/frontend/src/components/AllIntegrations/ACPT/ACPTAuthorization.jsx b/frontend/src/components/AllIntegrations/ACPT/ACPTAuthorization.jsx index 0a3833bd1..b861b748a 100644 --- a/frontend/src/components/AllIntegrations/ACPT/ACPTAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ACPT/ACPTAuthorization.jsx @@ -2,7 +2,6 @@ /* eslint-disable no-unused-expressions */ import { useCallback, useState } from 'react' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import TutorialLink from '../../Utilities/TutorialLink' @@ -47,7 +46,7 @@ const handleInput = useCallback(e => {
- +
diff --git a/frontend/src/components/AllIntegrations/AcademyLms/AcademyLmsAuthorization.jsx b/frontend/src/components/AllIntegrations/AcademyLms/AcademyLmsAuthorization.jsx index 4e674f68a..119bec35b 100644 --- a/frontend/src/components/AllIntegrations/AcademyLms/AcademyLmsAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/AcademyLms/AcademyLmsAuthorization.jsx @@ -4,7 +4,6 @@ import { deepCopy } from '../../../Utils/Helpers' import bitsFetch from '../../../Utils/bitsFetch' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function AcademyLmsAuthorization({ @@ -46,7 +45,7 @@ const [isAuthorized, setisAuthorized] = useState(false) width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ActiveCampaign/ActiveCampaignAuthorization.jsx b/frontend/src/components/AllIntegrations/ActiveCampaign/ActiveCampaignAuthorization.jsx index 098263665..b7a63552b 100644 --- a/frontend/src/components/AllIntegrations/ActiveCampaign/ActiveCampaignAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ActiveCampaign/ActiveCampaignAuthorization.jsx @@ -6,8 +6,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { refreshActiveCampaingHeader, refreshActiveCampaingList } from './ActiveCampaignCommonFunc' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function ActiveCampaignAuthorization({ formID, activeCampaingConf, @@ -77,7 +75,7 @@ export default function ActiveCampaignAuthorization({
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Acumbamail/AcumbamailAuthorization.jsx b/frontend/src/components/AllIntegrations/Acumbamail/AcumbamailAuthorization.jsx index 6a8791821..d825c8d60 100644 --- a/frontend/src/components/AllIntegrations/Acumbamail/AcumbamailAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Acumbamail/AcumbamailAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { fetchAllList, handleAuthorize } from './AcumbamailCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function AcumbamailAuthorization({ @@ -43,7 +42,7 @@ export default function AcumbamailAuthorization({
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/AdvancedFormIntegration/AdvancedFormIntegration.jsx b/frontend/src/components/AllIntegrations/AdvancedFormIntegration/AdvancedFormIntegration.jsx index 0025ec7bb..8ee457890 100644 --- a/frontend/src/components/AllIntegrations/AdvancedFormIntegration/AdvancedFormIntegration.jsx +++ b/frontend/src/components/AllIntegrations/AdvancedFormIntegration/AdvancedFormIntegration.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function AdvancedFormIntegration({ formFields, setFlow, flow, allIntegURL }) { @@ -33,7 +32,7 @@ return (
- + { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/AgiledCRM/AgiledAuthorization.jsx b/frontend/src/components/AllIntegrations/AgiledCRM/AgiledAuthorization.jsx index 5f7929bb7..155904376 100644 --- a/frontend/src/components/AllIntegrations/AgiledCRM/AgiledAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/AgiledCRM/AgiledAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { agiledAuthentication } from './AgiledCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function AgiledAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Airtable/AirtableAuthorization.jsx b/frontend/src/components/AllIntegrations/Airtable/AirtableAuthorization.jsx index a19f5505e..8c20f61af 100644 --- a/frontend/src/components/AllIntegrations/Airtable/AirtableAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Airtable/AirtableAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { airtableAuthentication } from './AirtableCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function AirtableAuthorization({ @@ -41,7 +40,7 @@ export default function AirtableAuthorization({
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Albato/Albato.jsx b/frontend/src/components/AllIntegrations/Albato/Albato.jsx index b452dd05b..5fac1ceef 100644 --- a/frontend/src/components/AllIntegrations/Albato/Albato.jsx +++ b/frontend/src/components/AllIntegrations/Albato/Albato.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function Albato({ formFields, setFlow, flow, allIntegURL }) { @@ -35,7 +34,7 @@ const [albato, setAlbato] = useState({
- + - + {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/AutomatorWP/AutomatorWP.jsx b/frontend/src/components/AllIntegrations/AutomatorWP/AutomatorWP.jsx index 5802e573c..2cb74b385 100644 --- a/frontend/src/components/AllIntegrations/AutomatorWP/AutomatorWP.jsx +++ b/frontend/src/components/AllIntegrations/AutomatorWP/AutomatorWP.jsx @@ -8,8 +8,6 @@ import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - function AutomatorWP({ formFields, setFlow, flow, allIntegURL }) { const navigate = useNavigate() const { formID } = useParams() @@ -34,7 +32,7 @@ const [automatorWP, setAutomatorWP] = useState({
- + - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/BenchMark/BenchMarkAuthorization.jsx b/frontend/src/components/AllIntegrations/BenchMark/BenchMarkAuthorization.jsx index 2be98e62d..06c245288 100644 --- a/frontend/src/components/AllIntegrations/BenchMark/BenchMarkAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/BenchMark/BenchMarkAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { refreshBenchMarkList, refreshBenchMarkHeader } from './BenchMarkCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function BenchMarkAuthorization({ @@ -76,7 +75,7 @@ const [isAuthorized, setisAuthorized] = useState(false)
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Bento/BentoAuthorization.jsx b/frontend/src/components/AllIntegrations/Bento/BentoAuthorization.jsx index bf85717e8..cf700ef9d 100644 --- a/frontend/src/components/AllIntegrations/Bento/BentoAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Bento/BentoAuthorization.jsx @@ -2,7 +2,6 @@ /* eslint-disable no-unused-expressions */ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import TutorialLink from '../../Utilities/TutorialLink' @@ -42,7 +41,7 @@ const [error, setError] = useState({ publishable_key: '', secret_key: '' })
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/BitForm/BitFormAuthorization.jsx b/frontend/src/components/AllIntegrations/BitForm/BitFormAuthorization.jsx index e722eecae..787590b30 100644 --- a/frontend/src/components/AllIntegrations/BitForm/BitFormAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/BitForm/BitFormAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { fetchAllForm, handleAuthorize } from './BitFormCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function BitFormAuthorization({ @@ -43,7 +42,7 @@ const [error, setError] = useState({ dataCenter: '', api_key: '' })
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/BuddyBoss/BuddyBossAuthorization.jsx b/frontend/src/components/AllIntegrations/BuddyBoss/BuddyBossAuthorization.jsx index 6383aa401..06df0561b 100644 --- a/frontend/src/components/AllIntegrations/BuddyBoss/BuddyBossAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/BuddyBoss/BuddyBossAuthorization.jsx @@ -5,8 +5,6 @@ import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function BuddyBossAuthorization({ formID, buddyBossConf, @@ -48,7 +46,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/CampaignMonitor/CampaignMonitorAuthorization.jsx b/frontend/src/components/AllIntegrations/CampaignMonitor/CampaignMonitorAuthorization.jsx index 605ae69f9..14f333c60 100644 --- a/frontend/src/components/AllIntegrations/CampaignMonitor/CampaignMonitorAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/CampaignMonitor/CampaignMonitorAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { refreshCampaignMonitorLists } from './CampaignMonitorCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function CampaignMonitorAuthorization({ @@ -94,7 +93,7 @@ const handleAuthorize = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/CapsuleCRM/CapsuleCRMAuthorization.jsx b/frontend/src/components/AllIntegrations/CapsuleCRM/CapsuleCRMAuthorization.jsx index 29e7127e3..2e5b89112 100644 --- a/frontend/src/components/AllIntegrations/CapsuleCRM/CapsuleCRMAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/CapsuleCRM/CapsuleCRMAuthorization.jsx @@ -5,8 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { capsulecrmAuthentication } from './CapsuleCRMCommonFunc' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function CapsuleCRMAuthorization({ capsulecrmConf, setCapsuleCRMConf, @@ -40,7 +38,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Clickup/ClickupAuthorization.jsx b/frontend/src/components/AllIntegrations/Clickup/ClickupAuthorization.jsx index e94ab3bc8..1034646ca 100644 --- a/frontend/src/components/AllIntegrations/Clickup/ClickupAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Clickup/ClickupAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { clickupAuthentication } from './ClickupCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import Note from '../../Utilities/Note' @@ -51,7 +50,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ClinchPad/ClinchPadAuthorization.jsx b/frontend/src/components/AllIntegrations/ClinchPad/ClinchPadAuthorization.jsx index 639d49539..ef8759988 100644 --- a/frontend/src/components/AllIntegrations/ClinchPad/ClinchPadAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ClinchPad/ClinchPadAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { clinchPadAuthentication } from './ClinchPadCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ClinchPadAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/CompanyHub/CompanyHubAuthorization.jsx b/frontend/src/components/AllIntegrations/CompanyHub/CompanyHubAuthorization.jsx index b0fcb7aa7..fc29dd636 100644 --- a/frontend/src/components/AllIntegrations/CompanyHub/CompanyHubAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/CompanyHub/CompanyHubAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { companyHubAuthentication } from './CompanyHubCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function CompanyHubAuthorization({ @@ -51,7 +50,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ConstantContact/ConstantContactAuthorization.jsx b/frontend/src/components/AllIntegrations/ConstantContact/ConstantContactAuthorization.jsx index 7983f8314..6bb5d4774 100644 --- a/frontend/src/components/AllIntegrations/ConstantContact/ConstantContactAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ConstantContact/ConstantContactAuthorization.jsx @@ -5,7 +5,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import CopyText from '../../Utilities/CopyText' import { handleConstantContactAuthorize } from './ConstantContactCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import { $appConfigState } from '../../../GlobalStates' import { useRecoilValue } from 'recoil' @@ -83,7 +82,7 @@ const [error, setError] = useState({ ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ConvertKit/ConvertKitAuthorization.jsx b/frontend/src/components/AllIntegrations/ConvertKit/ConvertKitAuthorization.jsx index 02967242e..bd0686eb2 100644 --- a/frontend/src/components/AllIntegrations/ConvertKit/ConvertKitAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ConvertKit/ConvertKitAuthorization.jsx @@ -5,7 +5,6 @@ import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { refreshConvertKitForm } from './ConvertKitCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ConvertKitAuthorization({ @@ -79,7 +78,7 @@ const [isAuthorized, setisAuthorized] = useState(false)
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/CopperCRM/CopperCRMAuthorization.jsx b/frontend/src/components/AllIntegrations/CopperCRM/CopperCRMAuthorization.jsx index 0a93acfd1..e68db80da 100644 --- a/frontend/src/components/AllIntegrations/CopperCRM/CopperCRMAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/CopperCRM/CopperCRMAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { coppercrmAuthentication } from './CopperCRMCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function CopperCRMAuthorization({ @@ -49,7 +48,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/CreatorLms/CreatorLmsAuthorization.jsx b/frontend/src/components/AllIntegrations/CreatorLms/CreatorLmsAuthorization.jsx index f39404b7e..df5d019cc 100644 --- a/frontend/src/components/AllIntegrations/CreatorLms/CreatorLmsAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/CreatorLms/CreatorLmsAuthorization.jsx @@ -2,7 +2,6 @@ import { useState } from 'react' import BackIcn from '../../../Icons/BackIcn' import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' @@ -19,7 +18,6 @@ export default function CreatorLmsAuthorization({ }) { const [isAuthorized, setIsAuthorized] = useState(false) const [showAuthMsg, setShowAuthMsg] = useState(false) - const { creatorLms } = tutorialLinks const authorizeHandler = () => { setIsLoading('auth') @@ -49,10 +47,8 @@ export default function CreatorLmsAuthorization({ width: step === 1 && 900, height: step === 1 && 'auto' }}> - {creatorLms?.youTubeLink && ( - - )} - {creatorLms?.docLink && } + +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/CustomAction/CustomAction.jsx b/frontend/src/components/AllIntegrations/CustomAction/CustomAction.jsx index c6502e036..ccd835dec 100644 --- a/frontend/src/components/AllIntegrations/CustomAction/CustomAction.jsx +++ b/frontend/src/components/AllIntegrations/CustomAction/CustomAction.jsx @@ -9,7 +9,6 @@ import CustomActionStepTwo from './CustomActionStepTwo' import CustomFuncEditor from './CustomFuncEditor' import { checkFunctionValidity } from './CustomFunctionHelper' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' const CustomAction = ({ formFields, setFlow, flow, allIntegURL }) => { @@ -61,7 +60,7 @@ const CustomAction = ({ formFields, setFlow, flow, allIntegURL }) => {
- +
diff --git a/frontend/src/components/AllIntegrations/CustomAction/EditCustomAction.jsx b/frontend/src/components/AllIntegrations/CustomAction/EditCustomAction.jsx index 73061e068..3210f6d3c 100644 --- a/frontend/src/components/AllIntegrations/CustomAction/EditCustomAction.jsx +++ b/frontend/src/components/AllIntegrations/CustomAction/EditCustomAction.jsx @@ -14,8 +14,6 @@ import CustomFuncEditor from './CustomFuncEditor' import { checkFunctionValidity } from './CustomFunctionHelper' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - function EditCustomAction({ allIntegURL }) { const navigate = useNavigate() const { formID } = useParams() @@ -51,7 +49,7 @@ function EditCustomAction({ allIntegURL }) {
- +

custom action

{
- +
diff --git a/frontend/src/components/AllIntegrations/Demio/DemioAuthorization.jsx b/frontend/src/components/AllIntegrations/Demio/DemioAuthorization.jsx index 943536ad4..47ef096f2 100644 --- a/frontend/src/components/AllIntegrations/Demio/DemioAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Demio/DemioAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { demioAuthentication, getAllEvents } from './DemioCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function DemioAuthorization({ @@ -53,7 +52,7 @@ const [error, setError] = useState({ api_key: '', api_secret: '' })
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/DirectIq/DirectIqAuthorization.jsx b/frontend/src/components/AllIntegrations/DirectIq/DirectIqAuthorization.jsx index 0aea411e4..d137bdb07 100644 --- a/frontend/src/components/AllIntegrations/DirectIq/DirectIqAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/DirectIq/DirectIqAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { refreshDirectIqList } from './DirectIqCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function DirectIqAuthorization({ @@ -78,7 +77,7 @@ const [isAuthorized, setisAuthorized] = useState(false)
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Discord/DiscordAuthorization.jsx b/frontend/src/components/AllIntegrations/Discord/DiscordAuthorization.jsx index 62a266665..9baf6df51 100644 --- a/frontend/src/components/AllIntegrations/Discord/DiscordAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Discord/DiscordAuthorization.jsx @@ -3,7 +3,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { getAllServers, handleAuthorize } from './DiscordCommonFunc' import Note from '../../Utilities/Note' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function DiscordAuthorization({ @@ -61,7 +60,7 @@ export default function DiscordAuthorization({ ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Dokan/DokanAuthorization.jsx b/frontend/src/components/AllIntegrations/Dokan/DokanAuthorization.jsx index b63102395..508b60391 100644 --- a/frontend/src/components/AllIntegrations/Dokan/DokanAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Dokan/DokanAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { dokanAuthentication } from './dokanCommonFunctions' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function DokanAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Drip/DripAuthorization.jsx b/frontend/src/components/AllIntegrations/Drip/DripAuthorization.jsx index df6fe73e0..4035be8ef 100644 --- a/frontend/src/components/AllIntegrations/Drip/DripAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Drip/DripAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { dripAuthentication } from './DripCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import toast from 'react-hot-toast' @@ -56,7 +55,7 @@ const [isAuthorized, setisAuthorized] = useState(false)
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Dropbox/DropboxAuthorization.jsx b/frontend/src/components/AllIntegrations/Dropbox/DropboxAuthorization.jsx index 4744709a8..d82f8bea4 100644 --- a/frontend/src/components/AllIntegrations/Dropbox/DropboxAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Dropbox/DropboxAuthorization.jsx @@ -3,7 +3,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { getAllDropboxFolders, handleAuthorize } from './DropboxCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function DropboxAuthorization({ @@ -56,7 +55,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/EditInteg.jsx b/frontend/src/components/AllIntegrations/EditInteg.jsx index a87818398..3f8a3bf63 100644 --- a/frontend/src/components/AllIntegrations/EditInteg.jsx +++ b/frontend/src/components/AllIntegrations/EditInteg.jsx @@ -173,6 +173,7 @@ const EditWishlistMember = lazy(() => import('./WishlistMember/EditWishlistMembe const EditCreatorLms = lazy(() => import('./CreatorLms/EditCreatorLms')) const EditUltimateAffiliatePro = lazy(() => import('./UltimateAffiliatePro/EditUltimateAffiliatePro')) const EditFluentCart = lazy(() => import('./FluentCart/EditFluentCart')) +const EditWordPress = lazy(() => import('./WordPress/EditWordPress')) const EditPeepSo = lazy(() => import('./PeepSo/EditPeepSo')) const EditNinjaTables = lazy(() => import('./NinjaTables/EditNinjaTables')) const EditWCAffiliate = lazy(() => import('./WCAffiliate/EditWCAffiliate')) @@ -597,6 +598,8 @@ const IntegType = memo(({ allIntegURL, flow }) => { return case 'FluentCart': return + case 'WordPress': + return case 'PeepSo': return case 'Ninja Tables': diff --git a/frontend/src/components/AllIntegrations/ElasticEmail/ElasticEmailAuthorization.jsx b/frontend/src/components/AllIntegrations/ElasticEmail/ElasticEmailAuthorization.jsx index d26e69ded..977577ad2 100644 --- a/frontend/src/components/AllIntegrations/ElasticEmail/ElasticEmailAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ElasticEmail/ElasticEmailAuthorization.jsx @@ -7,8 +7,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { getAllList } from './ElasticEmailCommonFunc' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function ElasticEmailAuthorization({ elasticEmailConf, setElasticEmailConf, @@ -60,7 +58,7 @@ const handleAuthorize = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/EmailOctopus/EmailOctopusAuthorization.jsx b/frontend/src/components/AllIntegrations/EmailOctopus/EmailOctopusAuthorization.jsx index 33b628aea..8cb91ac75 100644 --- a/frontend/src/components/AllIntegrations/EmailOctopus/EmailOctopusAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/EmailOctopus/EmailOctopusAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { emailOctopusAuthentication } from './EmailOctopusCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function EmailOctopusAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Encharge/EnchargeAuthorization.jsx b/frontend/src/components/AllIntegrations/Encharge/EnchargeAuthorization.jsx index e9bb3fc8d..9a2f23beb 100644 --- a/frontend/src/components/AllIntegrations/Encharge/EnchargeAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Encharge/EnchargeAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { refreshEnchargeHeader } from './EnchargeCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function EnchargeAuthorization({ @@ -61,7 +60,7 @@ const handleAuthorize = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Fabman/FabmanAuthorization.jsx b/frontend/src/components/AllIntegrations/Fabman/FabmanAuthorization.jsx index 4f575a832..5bc149082 100644 --- a/frontend/src/components/AllIntegrations/Fabman/FabmanAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Fabman/FabmanAuthorization.jsx @@ -5,7 +5,6 @@ import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { fabmanAuthentication, fetchFabmanWorkspaces } from './FabmanCommonFunc' import Note from '../../Utilities/Note' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' const STEP_ONE_STYLE = { width: 900, height: 'auto' } @@ -41,7 +40,7 @@ export default function FabmanAuthorization({ return (
- +
{__('Integration Name:', 'bit-integrations')}
diff --git a/frontend/src/components/AllIntegrations/FlowMattic/FlowMattic.jsx b/frontend/src/components/AllIntegrations/FlowMattic/FlowMattic.jsx index fe635d96b..5b63db90d 100644 --- a/frontend/src/components/AllIntegrations/FlowMattic/FlowMattic.jsx +++ b/frontend/src/components/AllIntegrations/FlowMattic/FlowMattic.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function FlowMattic({ formFields, setFlow, flow, allIntegURL }) { @@ -34,7 +33,7 @@ const [flowMattic, setFlowMattic] = useState({
- + {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/FluentCRM/FluentCrmAuthorization.jsx b/frontend/src/components/AllIntegrations/FluentCRM/FluentCrmAuthorization.jsx index ce899ce77..2eebec83f 100644 --- a/frontend/src/components/AllIntegrations/FluentCRM/FluentCrmAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/FluentCRM/FluentCrmAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import bitsFetch from '../../../Utils/bitsFetch' import LoaderSm from '../../Loaders/LoaderSm' import BackIcn from '../../../Icons/BackIcn' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function FluentCrmAuthorization({ @@ -55,7 +54,7 @@ const [isMounted, setIsMounted] = useState(true)
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/FluentCart/FluentCartAuthorization.jsx b/frontend/src/components/AllIntegrations/FluentCart/FluentCartAuthorization.jsx index c02163691..8b1949073 100644 --- a/frontend/src/components/AllIntegrations/FluentCart/FluentCartAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/FluentCart/FluentCartAuthorization.jsx @@ -2,7 +2,6 @@ import { useState } from 'react' import BackIcn from '../../../Icons/BackIcn' import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' @@ -46,7 +45,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/FluentSupport/FluentSupportAuthorization.jsx b/frontend/src/components/AllIntegrations/FluentSupport/FluentSupportAuthorization.jsx index e97b681fb..65baf1b4b 100644 --- a/frontend/src/components/AllIntegrations/FluentSupport/FluentSupportAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/FluentSupport/FluentSupportAuthorization.jsx @@ -2,7 +2,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { getCustomFields, handleAuthorize } from './FluentSupportCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function FluentSupportAuthorization({ @@ -43,7 +42,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/FreshSales/FreshSalesAuthorization.jsx b/frontend/src/components/AllIntegrations/FreshSales/FreshSalesAuthorization.jsx index b20d45537..dbb35ec97 100644 --- a/frontend/src/components/AllIntegrations/FreshSales/FreshSalesAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/FreshSales/FreshSalesAuthorization.jsx @@ -1,6 +1,5 @@ /* eslint-disable no-unused-expressions */ import { useState } from 'react' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' @@ -58,7 +57,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Bundle Alias(Your Account URL):', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Freshdesk/FreshdeskAuthorization.jsx b/frontend/src/components/AllIntegrations/Freshdesk/FreshdeskAuthorization.jsx index 85fe17a49..26c280cf3 100644 --- a/frontend/src/components/AllIntegrations/Freshdesk/FreshdeskAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Freshdesk/FreshdeskAuthorization.jsx @@ -3,7 +3,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { getAllTicketFields, handleAuthorize } from './FreshdeskCommonFunc' import Note from '../../Utilities/Note' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function FreshdeskAuthorization({ @@ -78,7 +77,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/GamiPress/GamiPressAuthorization.jsx b/frontend/src/components/AllIntegrations/GamiPress/GamiPressAuthorization.jsx index 5aade949d..4e18a15d2 100644 --- a/frontend/src/components/AllIntegrations/GamiPress/GamiPressAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/GamiPress/GamiPressAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function GamiPressAuthorization({ @@ -47,7 +46,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/GetResponse/GetResponseAuthorization.jsx b/frontend/src/components/AllIntegrations/GetResponse/GetResponseAuthorization.jsx index ae8ff215c..5faf845dd 100644 --- a/frontend/src/components/AllIntegrations/GetResponse/GetResponseAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/GetResponse/GetResponseAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { fetchCustomFields, getresponseAuthentication } from './GetResponseCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function GetResponseAuthorization({ @@ -63,7 +62,7 @@ useEffect(() => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Getgist/GetgistAuthorization.jsx b/frontend/src/components/AllIntegrations/Getgist/GetgistAuthorization.jsx index 5b7865506..1103b0190 100644 --- a/frontend/src/components/AllIntegrations/Getgist/GetgistAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Getgist/GetgistAuthorization.jsx @@ -3,7 +3,6 @@ import BackIcn from '../../../Icons/BackIcn' import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function GetgistAuthorization({ getgistConf, setGetgistConf, step, setstep, isInfo }) { @@ -52,7 +51,7 @@ const handleAuthorize = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/GiveWp/GiveWpAuthorization.jsx b/frontend/src/components/AllIntegrations/GiveWp/GiveWpAuthorization.jsx index 0df7f4fd7..8d0bcd513 100644 --- a/frontend/src/components/AllIntegrations/GiveWp/GiveWpAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/GiveWp/GiveWpAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function GiveWpAuthorization({ @@ -47,7 +46,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/GoogleCalendar/GoogleCalendarAuthorization.jsx b/frontend/src/components/AllIntegrations/GoogleCalendar/GoogleCalendarAuthorization.jsx index 4bd950bf8..fc94c800d 100644 --- a/frontend/src/components/AllIntegrations/GoogleCalendar/GoogleCalendarAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/GoogleCalendar/GoogleCalendarAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { getAllGoogleCalendarLists, handleAuthorize } from './GoogleCalendarCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function GoogleCalendarAuthorization({ @@ -46,7 +45,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/GoogleContacts/GoogleContactsAuthorization.jsx b/frontend/src/components/AllIntegrations/GoogleContacts/GoogleContactsAuthorization.jsx index 7ca2f6bde..3bc654906 100644 --- a/frontend/src/components/AllIntegrations/GoogleContacts/GoogleContactsAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/GoogleContacts/GoogleContactsAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleAuthorize } from './GoogleContactsCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function GoogleContactsAuthorization({ @@ -45,7 +44,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/GoogleDrive/GoogleDriveAuthorization.jsx b/frontend/src/components/AllIntegrations/GoogleDrive/GoogleDriveAuthorization.jsx index 54be78e86..70485a19a 100644 --- a/frontend/src/components/AllIntegrations/GoogleDrive/GoogleDriveAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/GoogleDrive/GoogleDriveAuthorization.jsx @@ -7,8 +7,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { getAllGoogleDriveFolders, handleAuthorize } from './GoogleDriveCommonFunc' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function GoogleDriveAuthorization({ flowID, googleDriveConf, @@ -46,7 +44,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/GoogleSheet/GoogleSheetAuthorization.jsx b/frontend/src/components/AllIntegrations/GoogleSheet/GoogleSheetAuthorization.jsx index ed69d906a..ab875e064 100644 --- a/frontend/src/components/AllIntegrations/GoogleSheet/GoogleSheetAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/GoogleSheet/GoogleSheetAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleAuthorize, refreshSpreadsheets, tokenHelper } from './GoogleSheetCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import SelectAuthorizationType from '../../OneClickRadioComponents/SelectAuthorizationType' import AuthorizationAccountList from '../../OneClickRadioComponents/AuthorizationAccountList' @@ -95,7 +94,7 @@ const [authData, setAuthData] = useState([])
- + {selectedAuthType === 'Custom Authorization' && (
diff --git a/frontend/src/components/AllIntegrations/Gravitec/GravitecAuthorization.jsx b/frontend/src/components/AllIntegrations/Gravitec/GravitecAuthorization.jsx index c6dbb2f6b..6167d3165 100644 --- a/frontend/src/components/AllIntegrations/Gravitec/GravitecAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Gravitec/GravitecAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { gravitecAuthentication } from './GravitecCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function GravitecAuthorization({ @@ -50,7 +49,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Groundhogg/GroundhoggAuthorization.jsx b/frontend/src/components/AllIntegrations/Groundhogg/GroundhoggAuthorization.jsx index 932d11ccf..0aaacb7bb 100644 --- a/frontend/src/components/AllIntegrations/Groundhogg/GroundhoggAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Groundhogg/GroundhoggAuthorization.jsx @@ -5,7 +5,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import Note from '../../Utilities/Note' import { handleAuthorize, fetchAllTags } from './GroundhoggCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function GroundhoggAuthorization({ @@ -51,7 +50,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/HighLevel/HighLevelAuthorization.jsx b/frontend/src/components/AllIntegrations/HighLevel/HighLevelAuthorization.jsx index 4f50e424e..691771334 100644 --- a/frontend/src/components/AllIntegrations/HighLevel/HighLevelAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/HighLevel/HighLevelAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { highLevelAuthentication } from './HighLevelCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import toast from 'react-hot-toast' import { useRecoilValue } from 'recoil' @@ -48,7 +47,7 @@ const [isAuthorized, setisAuthorized] = useState(false)
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Hubspot/HubspotAuthorization.jsx b/frontend/src/components/AllIntegrations/Hubspot/HubspotAuthorization.jsx index 1e82f6def..9bc42f64f 100644 --- a/frontend/src/components/AllIntegrations/Hubspot/HubspotAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Hubspot/HubspotAuthorization.jsx @@ -7,7 +7,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { hubspotAuthorization } from './HubspotCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function HubspotAuthorization({ @@ -57,7 +56,7 @@ const handleInput = e => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/IFTTT/IFTTT.jsx b/frontend/src/components/AllIntegrations/IFTTT/IFTTT.jsx index 2a9c38c2b..91e7458e6 100644 --- a/frontend/src/components/AllIntegrations/IFTTT/IFTTT.jsx +++ b/frontend/src/components/AllIntegrations/IFTTT/IFTTT.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function IFTTT({ formFields, setFlow, flow, allIntegURL }) { @@ -34,7 +33,7 @@ const [ifttt, setIfttt] = useState({
- + {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/IntegInfo.jsx b/frontend/src/components/AllIntegrations/IntegInfo.jsx index 0a797372c..0566f2956 100644 --- a/frontend/src/components/AllIntegrations/IntegInfo.jsx +++ b/frontend/src/components/AllIntegrations/IntegInfo.jsx @@ -176,6 +176,7 @@ const UltimateAffiliateProAuthorization = lazy( () => import('./UltimateAffiliatePro/UltimateAffiliateProAuthorization') ) const FluentCartAuthorization = lazy(() => import('./FluentCart/FluentCartAuthorization')) +const WordPressAuthorization = lazy(() => import('./WordPress/WordPressAuthorization')) const PeepSoAuthorization = lazy(() => import('./PeepSo/PeepSoAuthorization')) const NinjaTablesAuthorization = lazy(() => import('./NinjaTables/NinjaTablesAuthorization')) const WCAffiliateAuthorization = lazy(() => import('./WCAffiliate/WCAffiliateAuthorization')) @@ -640,6 +641,8 @@ export default function IntegInfo() { ) case 'FluentCart': return + case 'WordPress': + return case 'PeepSo': return case 'Ninja Tables': diff --git a/frontend/src/components/AllIntegrations/Integrately/Integrately.jsx b/frontend/src/components/AllIntegrations/Integrately/Integrately.jsx index 289d17ae3..59475b8ca 100644 --- a/frontend/src/components/AllIntegrations/Integrately/Integrately.jsx +++ b/frontend/src/components/AllIntegrations/Integrately/Integrately.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function Integrately({ formFields, setFlow, flow, allIntegURL }) { @@ -35,7 +34,7 @@ const [integrately, setIntegrately] = useState({
- + - +
{__('Integration Name', 'bit-integrations')}
diff --git a/frontend/src/components/AllIntegrations/Integromat/Integromat.jsx b/frontend/src/components/AllIntegrations/Integromat/Integromat.jsx index ffd1caf0a..2eba42906 100644 --- a/frontend/src/components/AllIntegrations/Integromat/Integromat.jsx +++ b/frontend/src/components/AllIntegrations/Integromat/Integromat.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function Integromat({ formFields, setFlow, flow, allIntegURL }) { @@ -35,7 +34,7 @@ const [integromat, setIntegromat] = useState({
- + {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Keap/KeapAuthorization.jsx b/frontend/src/components/AllIntegrations/Keap/KeapAuthorization.jsx index 936f48109..d56943908 100644 --- a/frontend/src/components/AllIntegrations/Keap/KeapAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Keap/KeapAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleAuthorize, refreshCustomFields } from './KeapCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function KeapAuthorization({ @@ -45,7 +44,7 @@ export default function KeapAuthorization({
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/KirimEmail/KirimEmailAuthorization.jsx b/frontend/src/components/AllIntegrations/KirimEmail/KirimEmailAuthorization.jsx index 02da0323e..b8a4923d1 100644 --- a/frontend/src/components/AllIntegrations/KirimEmail/KirimEmailAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/KirimEmail/KirimEmailAuthorization.jsx @@ -2,7 +2,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { handleAuthorize } from './KirimEmailCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function KirmilEmailAuthorization({ @@ -42,7 +41,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Klaviyo/KlaviyoAuthorization.jsx b/frontend/src/components/AllIntegrations/Klaviyo/KlaviyoAuthorization.jsx index c9fec2dba..b9fb7713f 100644 --- a/frontend/src/components/AllIntegrations/Klaviyo/KlaviyoAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Klaviyo/KlaviyoAuthorization.jsx @@ -3,7 +3,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { handleAuthorize } from './KlaviyoCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function KlaviyoAuthorization({ @@ -57,7 +56,7 @@ const handleInput = e => {
- +
diff --git a/frontend/src/components/AllIntegrations/KonnectzIT/KonnectzIT.jsx b/frontend/src/components/AllIntegrations/KonnectzIT/KonnectzIT.jsx index abe1c0a41..187e613e2 100644 --- a/frontend/src/components/AllIntegrations/KonnectzIT/KonnectzIT.jsx +++ b/frontend/src/components/AllIntegrations/KonnectzIT/KonnectzIT.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function KonnectzIT({ formFields, setFlow, flow, allIntegURL }) { @@ -35,7 +34,7 @@ const [konnectzIT, setKonnectzIT] = useState({
- + - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/LearnDash/LearnDashAuthorization.jsx b/frontend/src/components/AllIntegrations/LearnDash/LearnDashAuthorization.jsx index a69f4446d..f400fe4eb 100644 --- a/frontend/src/components/AllIntegrations/LearnDash/LearnDashAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/LearnDash/LearnDashAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function LearnDashAuthorization({ @@ -48,7 +47,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Lemlist/LemlistAuthorization.jsx b/frontend/src/components/AllIntegrations/Lemlist/LemlistAuthorization.jsx index 02714e07f..eb6a09d8c 100644 --- a/frontend/src/components/AllIntegrations/Lemlist/LemlistAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Lemlist/LemlistAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { refreshLemlistCampaign } from './LemlistCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function LemlistAuthorization({ @@ -91,7 +90,7 @@ const handleAuthorize = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/LifterLms/LifterLmsAuthorization.jsx b/frontend/src/components/AllIntegrations/LifterLms/LifterLmsAuthorization.jsx index c06f80b13..4c700ce73 100644 --- a/frontend/src/components/AllIntegrations/LifterLms/LifterLmsAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/LifterLms/LifterLmsAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function LifterLmsAuthorization({ @@ -47,7 +46,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Line/LineAuthorization.jsx b/frontend/src/components/AllIntegrations/Line/LineAuthorization.jsx index 1c3a4a683..f73e8d6c8 100644 --- a/frontend/src/components/AllIntegrations/Line/LineAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Line/LineAuthorization.jsx @@ -3,7 +3,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { handleAuthorize } from './LineCommonFunc' import Note from '../../Utilities/Note' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function LineAuthorization({ @@ -44,7 +43,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/LionDesk/LionDeskAuthorization.jsx b/frontend/src/components/AllIntegrations/LionDesk/LionDeskAuthorization.jsx index 508ddc95e..34ac54b7f 100644 --- a/frontend/src/components/AllIntegrations/LionDesk/LionDeskAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/LionDesk/LionDeskAuthorization.jsx @@ -9,8 +9,6 @@ import CopyText from '../../Utilities/CopyText' import Note from '../../Utilities/Note' import { handleAuthorize } from './LionDeskCommonFunc' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function LionDeskAuthorization({ lionDeskConf, setLionDeskConf, @@ -58,7 +56,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Livestorm/LivestormAuthorization.jsx b/frontend/src/components/AllIntegrations/Livestorm/LivestormAuthorization.jsx index 75bd1fa0d..e528debd9 100644 --- a/frontend/src/components/AllIntegrations/Livestorm/LivestormAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Livestorm/LivestormAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { getAllEvents, livestormAuthentication } from './LivestormCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function LivestormAuthorization({ @@ -52,7 +51,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Mail/Mail.jsx b/frontend/src/components/AllIntegrations/Mail/Mail.jsx index 113484ce3..4bd19f778 100644 --- a/frontend/src/components/AllIntegrations/Mail/Mail.jsx +++ b/frontend/src/components/AllIntegrations/Mail/Mail.jsx @@ -6,7 +6,6 @@ import { useRecoilState, useRecoilValue } from 'recoil' import { $actionConf, $appConfigState, $formFields, $newFlow } from '../../../GlobalStates' import { __ } from '../../../Utils/i18nwrap' import { SmartTagField } from '../../../Utils/StaticData/SmartTagField' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import ConditionalLogic from '../../ConditionalLogic' import LoaderSm from '../../Loaders/LoaderSm' import DropDown from '../../Utilities/DropDown' @@ -171,7 +170,7 @@ const btcbi = useRecoilValue($appConfigState) return (
- + {__('Integration Name', 'bit-integration')} {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/MailChimp/MailChimpAuthorization.jsx b/frontend/src/components/AllIntegrations/MailChimp/MailChimpAuthorization.jsx index 401458bf3..0ead95f79 100644 --- a/frontend/src/components/AllIntegrations/MailChimp/MailChimpAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/MailChimp/MailChimpAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleMailChimpAuthorize, refreshAudience, refreshModules } from './MailChimpCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function MailChimpAuthorization({ @@ -42,7 +41,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/MailMint/MailMintAuthorization.jsx b/frontend/src/components/AllIntegrations/MailMint/MailMintAuthorization.jsx index 1a145c454..569f7a64d 100644 --- a/frontend/src/components/AllIntegrations/MailMint/MailMintAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/MailMint/MailMintAuthorization.jsx @@ -5,7 +5,6 @@ import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { getAllList, getAllTags, mailMintRefreshFields } from './MailMintCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function MailMintAuthorization({ @@ -51,7 +50,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/MailPoet/MailPoetAuthorization.jsx b/frontend/src/components/AllIntegrations/MailPoet/MailPoetAuthorization.jsx index 691f0e497..2f91e5f4b 100644 --- a/frontend/src/components/AllIntegrations/MailPoet/MailPoetAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/MailPoet/MailPoetAuthorization.jsx @@ -3,7 +3,6 @@ import { __ } from '../../../Utils/i18nwrap' import bitsFetch from '../../../Utils/bitsFetch' import LoaderSm from '../../Loaders/LoaderSm' import BackIcn from '../../../Icons/BackIcn' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function MailPoetAuthorization({ @@ -43,7 +42,7 @@ const handleAuthorize = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/MailRelay/MailRelayAuthorization.jsx b/frontend/src/components/AllIntegrations/MailRelay/MailRelayAuthorization.jsx index 4fe85c025..a1f1711a1 100644 --- a/frontend/src/components/AllIntegrations/MailRelay/MailRelayAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/MailRelay/MailRelayAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { mailRelayAuthentication } from './MailRelayCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function MailRelayAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/MailerLite/MailerLiteAuthorization.jsx b/frontend/src/components/AllIntegrations/MailerLite/MailerLiteAuthorization.jsx index 46cd780a2..fb5af28b0 100644 --- a/frontend/src/components/AllIntegrations/MailerLite/MailerLiteAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/MailerLite/MailerLiteAuthorization.jsx @@ -1,7 +1,6 @@ /* eslint-disable no-unused-expressions */ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import TutorialLink from '../../Utilities/TutorialLink' @@ -57,7 +56,7 @@ const url =
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/MailerPress/MailerPressAuthorization.jsx b/frontend/src/components/AllIntegrations/MailerPress/MailerPressAuthorization.jsx index c2d850bc8..7403142ec 100644 --- a/frontend/src/components/AllIntegrations/MailerPress/MailerPressAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/MailerPress/MailerPressAuthorization.jsx @@ -2,7 +2,6 @@ import { useState } from 'react' import BackIcn from '../../../Icons/BackIcn' import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' @@ -46,7 +45,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Mailercloud/MailercloudAuthorization.jsx b/frontend/src/components/AllIntegrations/Mailercloud/MailercloudAuthorization.jsx index 855e0197d..9f0649ef6 100644 --- a/frontend/src/components/AllIntegrations/Mailercloud/MailercloudAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Mailercloud/MailercloudAuthorization.jsx @@ -6,7 +6,6 @@ import Input from '../../Utilities/Input' import Note from '../../Utilities/Note' import StepPage from '../../Utilities/StepPage' import { getAllLists, handleAuthorize, handleInput } from './MailercloudCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import { __ } from '../../../Utils/i18nwrap' @@ -55,7 +54,7 @@ const nextPage = async () => { return ( - +
{/* Mailercloud Authorization */} diff --git a/frontend/src/components/AllIntegrations/Mailify/MailifyAuthorization.jsx b/frontend/src/components/AllIntegrations/Mailify/MailifyAuthorization.jsx index 55273b2ca..16575859a 100644 --- a/frontend/src/components/AllIntegrations/Mailify/MailifyAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Mailify/MailifyAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { refreshMailifyList } from './MailifyCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function MailifyAuthorization({ @@ -100,7 +99,7 @@ const [isAuthorized, setisAuthorized] = useState(false)
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Mailjet/MailjetAuthorization.jsx b/frontend/src/components/AllIntegrations/Mailjet/MailjetAuthorization.jsx index f2bf9cb19..593b8dd98 100644 --- a/frontend/src/components/AllIntegrations/Mailjet/MailjetAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Mailjet/MailjetAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { mailjetAuthentication } from './MailjetCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function MailjetAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Mailster/MailsterAuthorization.jsx b/frontend/src/components/AllIntegrations/Mailster/MailsterAuthorization.jsx index 70b340e8e..ae70c11c9 100644 --- a/frontend/src/components/AllIntegrations/Mailster/MailsterAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Mailster/MailsterAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { mailsterAuthentication } from './MailsterCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function MailsterAuthorization({ @@ -43,7 +42,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Mailup/MailupAuthorization.jsx b/frontend/src/components/AllIntegrations/Mailup/MailupAuthorization.jsx index 4df8c25d4..41b57e298 100644 --- a/frontend/src/components/AllIntegrations/Mailup/MailupAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Mailup/MailupAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleMailupAuthorize, fetchAllList } from './MailupCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function MailupAuthorization({ @@ -42,7 +41,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/MasterStudyLms/MasterStudyLms.jsx b/frontend/src/components/AllIntegrations/MasterStudyLms/MasterStudyLms.jsx index 2994fa020..fb8967705 100644 --- a/frontend/src/components/AllIntegrations/MasterStudyLms/MasterStudyLms.jsx +++ b/frontend/src/components/AllIntegrations/MasterStudyLms/MasterStudyLms.jsx @@ -11,7 +11,6 @@ import IntegrationStepThree from '../IntegrationHelpers/IntegrationStepThree' import { handleInput, checkMappedFields } from './MasterStudyLmsCommonFunc' import MasterStudyLmsAuthorization from './MasterStudyLmsAuthorization' import MasterStudyLmsIntegLayout from './MasterStudyLmsIntegLayout' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function MasterStudyLms({ formFields, setFlow, flow, allIntegURL, isInfo, edit }) { diff --git a/frontend/src/components/AllIntegrations/MasterStudyLms/MasterStudyLmsAuthorization.jsx b/frontend/src/components/AllIntegrations/MasterStudyLms/MasterStudyLmsAuthorization.jsx index 1248280ee..7892fab5c 100644 --- a/frontend/src/components/AllIntegrations/MasterStudyLms/MasterStudyLmsAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/MasterStudyLms/MasterStudyLmsAuthorization.jsx @@ -5,8 +5,6 @@ import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function MasterStudyLmsAuthorization({ formID, msLmsConf, @@ -47,7 +45,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Mautic/MauticAuthorization.jsx b/frontend/src/components/AllIntegrations/Mautic/MauticAuthorization.jsx index e7ca87081..d52f291d2 100644 --- a/frontend/src/components/AllIntegrations/Mautic/MauticAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Mautic/MauticAuthorization.jsx @@ -5,8 +5,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleMauticAuthorize, getAllFields } from './MauticCommonFunc' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function MauticAuthorization({ mauticConf, setMauticConf, @@ -41,7 +39,7 @@ export default function MauticAuthorization({
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Memberpress/MemberpressAuthorization.jsx b/frontend/src/components/AllIntegrations/Memberpress/MemberpressAuthorization.jsx index 15ec26acb..dbe68e998 100644 --- a/frontend/src/components/AllIntegrations/Memberpress/MemberpressAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Memberpress/MemberpressAuthorization.jsx @@ -5,7 +5,6 @@ import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { getAllMemberShip, paymentGateway } from './MemberpressCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function MemberpressAuthorization({ @@ -51,7 +50,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Moosend/MoosendAuthorization.jsx b/frontend/src/components/AllIntegrations/Moosend/MoosendAuthorization.jsx index cbfc5436a..67316b7a2 100644 --- a/frontend/src/components/AllIntegrations/Moosend/MoosendAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Moosend/MoosendAuthorization.jsx @@ -6,7 +6,6 @@ import Input from '../../Utilities/Input' import Note from '../../Utilities/Note' import StepPage from '../../Utilities/StepPage' import { getAllLists, handleAuthorize, handleInput } from './MoosendCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import { __ } from '../../../Utils/i18nwrap' @@ -50,7 +49,7 @@ function MoosendAuthorization({ return ( - +
{/* Moosend Authorization */} diff --git a/frontend/src/components/AllIntegrations/MoxieCRM/MoxieCRMAuthorization.jsx b/frontend/src/components/AllIntegrations/MoxieCRM/MoxieCRMAuthorization.jsx index 439b1da09..18460e669 100644 --- a/frontend/src/components/AllIntegrations/MoxieCRM/MoxieCRMAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/MoxieCRM/MoxieCRMAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { moxiecrmAuthentication } from './MoxieCRMCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function MoxieCRMAuthorization({ @@ -50,7 +49,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/N8n/N8n.jsx b/frontend/src/components/AllIntegrations/N8n/N8n.jsx index 856f61f23..4c1802acf 100644 --- a/frontend/src/components/AllIntegrations/N8n/N8n.jsx +++ b/frontend/src/components/AllIntegrations/N8n/N8n.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function N8n({ formFields, setFlow, flow, allIntegURL }) { @@ -35,7 +34,7 @@ const [n8n, setN8n] = useState({
- + import('./WishlistMember/WishlistMember')) const CreatorLms = lazy(() => import('./CreatorLms/CreatorLms')) const UltimateAffiliatePro = lazy(() => import('./UltimateAffiliatePro/UltimateAffiliatePro')) const FluentCart = lazy(() => import('./FluentCart/FluentCart')) +const WordPress = lazy(() => import('./WordPress/WordPress')) const PeepSo = lazy(() => import('./PeepSo/PeepSo')) const NinjaTables = lazy(() => import('./NinjaTables/NinjaTables')) const WCAffiliate = lazy(() => import('./WCAffiliate/WCAffiliate')) @@ -1679,6 +1680,15 @@ export default function NewInteg({ allIntegURL }) { setFlow={setFlow} /> ) + case 'WordPress': + return ( + + ) case 'PeepSo': return ( {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Nimble/NimbleAuthorization.jsx b/frontend/src/components/AllIntegrations/Nimble/NimbleAuthorization.jsx index 7e544e86f..4ffda11f3 100644 --- a/frontend/src/components/AllIntegrations/Nimble/NimbleAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Nimble/NimbleAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { getAllFields, nimbleAuthentication } from './NimbleCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function NimbleAuthorization({ @@ -51,7 +50,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/NinjaTables/NinjaTablesAuthorization.jsx b/frontend/src/components/AllIntegrations/NinjaTables/NinjaTablesAuthorization.jsx index 6051107f3..ea479e079 100644 --- a/frontend/src/components/AllIntegrations/NinjaTables/NinjaTablesAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/NinjaTables/NinjaTablesAuthorization.jsx @@ -1,7 +1,6 @@ import { useState } from 'react' import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' diff --git a/frontend/src/components/AllIntegrations/NotificationX/NotificationXAuthorization.jsx b/frontend/src/components/AllIntegrations/NotificationX/NotificationXAuthorization.jsx index a3764a079..7213600f5 100644 --- a/frontend/src/components/AllIntegrations/NotificationX/NotificationXAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/NotificationX/NotificationXAuthorization.jsx @@ -1,6 +1,5 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import TutorialLink from '../../Utilities/TutorialLink' @@ -28,7 +27,7 @@ const handleInput = e => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Notion/NotionAuthorization.jsx b/frontend/src/components/AllIntegrations/Notion/NotionAuthorization.jsx index e6220e188..bf68b575e 100644 --- a/frontend/src/components/AllIntegrations/Notion/NotionAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Notion/NotionAuthorization.jsx @@ -8,7 +8,6 @@ import Input from '../../Utilities/Input' import Note from '../../Utilities/Note' import StepPage from '../../Utilities/StepPage' import { getAllDatabaseLists, handleAuthorize, handleInput } from './NotionCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import { __ } from '../../../Utils/i18nwrap' @@ -51,7 +50,7 @@ const nextPage = async () => { ` return ( - +
{/* Notion Authorization */} diff --git a/frontend/src/components/AllIntegrations/NutshellCRM/NutshellCRMAuthorization.jsx b/frontend/src/components/AllIntegrations/NutshellCRM/NutshellCRMAuthorization.jsx index 1f1b1fafb..1893afe4f 100644 --- a/frontend/src/components/AllIntegrations/NutshellCRM/NutshellCRMAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/NutshellCRM/NutshellCRMAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { nutshellCRMAuthentication } from './NutshellCRMCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function NutshellCRMAuthorization({ @@ -52,7 +51,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/OmniSend/OmniSendAuthorization.jsx b/frontend/src/components/AllIntegrations/OmniSend/OmniSendAuthorization.jsx index 4db277038..5dc9a1872 100644 --- a/frontend/src/components/AllIntegrations/OmniSend/OmniSendAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/OmniSend/OmniSendAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { handleOmniSendAuthorize } from './OmniSendCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function OmniSendAuthorization({ @@ -59,7 +58,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/OneDrive/OneDriveAuthorization.jsx b/frontend/src/components/AllIntegrations/OneDrive/OneDriveAuthorization.jsx index af07d0488..1ec2843e9 100644 --- a/frontend/src/components/AllIntegrations/OneDrive/OneDriveAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/OneDrive/OneDriveAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { getAllOneDriveFolders, handleAuthorize } from './OneDriveCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function OneDriveAuthorization({ @@ -46,7 +45,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/OneHashCRM/OneHashCRMAuthorization.jsx b/frontend/src/components/AllIntegrations/OneHashCRM/OneHashCRMAuthorization.jsx index ed592a6ba..6706c23ac 100644 --- a/frontend/src/components/AllIntegrations/OneHashCRM/OneHashCRMAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/OneHashCRM/OneHashCRMAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { oneHashCRMAuthentication } from './OneHashCRMCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function OneHashCRMAuthorization({ @@ -59,7 +58,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/PCloud/PCloudAuthorization.jsx b/frontend/src/components/AllIntegrations/PCloud/PCloudAuthorization.jsx index 5aff8489a..de12b5aea 100644 --- a/frontend/src/components/AllIntegrations/PCloud/PCloudAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/PCloud/PCloudAuthorization.jsx @@ -7,7 +7,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { getAllPCloudFolders, handleAuthorization } from './PCloudCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function PCloudAuthorization({ @@ -47,7 +46,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Pabbly/Pabbly.jsx b/frontend/src/components/AllIntegrations/Pabbly/Pabbly.jsx index 3245b78a2..42823b915 100644 --- a/frontend/src/components/AllIntegrations/Pabbly/Pabbly.jsx +++ b/frontend/src/components/AllIntegrations/Pabbly/Pabbly.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function Pabbly({ formFields, setFlow, flow, allIntegURL }) { @@ -35,7 +34,7 @@ const [pabbly, setPabbly] = useState({
- + { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/PerfexCRM/PerfexCRMAuthorization.jsx b/frontend/src/components/AllIntegrations/PerfexCRM/PerfexCRMAuthorization.jsx index e5966be57..d16fd8f9c 100644 --- a/frontend/src/components/AllIntegrations/PerfexCRM/PerfexCRMAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/PerfexCRM/PerfexCRMAuthorization.jsx @@ -7,8 +7,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { perfexCRMAuthentication } from './PerfexCRMCommonFunc' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function PerfexCRMAuthorization({ perfexCRMConf, setPerfexCRMConf, @@ -69,7 +67,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/PipeDrive/PipeDriveAuthorization.jsx b/frontend/src/components/AllIntegrations/PipeDrive/PipeDriveAuthorization.jsx index 4dd2dc61e..9f3b0e7da 100644 --- a/frontend/src/components/AllIntegrations/PipeDrive/PipeDriveAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/PipeDrive/PipeDriveAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { handleAuthorize } from './PipeDriveCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function PipeDriveAuthorization({ @@ -55,7 +54,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Pods/Pods.jsx b/frontend/src/components/AllIntegrations/Pods/Pods.jsx index 29b66a204..c6c66483a 100644 --- a/frontend/src/components/AllIntegrations/Pods/Pods.jsx +++ b/frontend/src/components/AllIntegrations/Pods/Pods.jsx @@ -11,7 +11,6 @@ import { postFields } from '../../../Utils/StaticData/postField' import LoaderSm from '../../Loaders/LoaderSm' import TableCheckBox from '../../Utilities/TableCheckBox' import ConditionalLogic from '../../ConditionalLogic' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function Pods({ formFields, setFlow, flow, allIntegURL }) { @@ -119,7 +118,7 @@ const [podsConf, setPodsConf] = useState({ return (
- +
{__('Integration Name', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/PostCreation/Post.jsx b/frontend/src/components/AllIntegrations/PostCreation/Post.jsx index 947c48f99..e54026d56 100644 --- a/frontend/src/components/AllIntegrations/PostCreation/Post.jsx +++ b/frontend/src/components/AllIntegrations/PostCreation/Post.jsx @@ -1,18 +1,20 @@ import { useEffect, useState } from 'react' -import { useNavigate, useParams } from 'react-router' +import { useNavigate } from 'react-router' import { __ } from '../../../Utils/i18nwrap' -// import { postFields } from '../../../Utils/StaticData/postField' import Cooltip from '../../Utilities/Cooltip' import SnackMsg from '../../Utilities/SnackMsg' import Steps from '../../Utilities/Steps' import CustomField from './CustomField' -import { postFields } from '../../../Utils/StaticData/postField' import { addFieldMap, checkMappedAcfFields, checkMappedJEFields, checkMappedMbFields, checkMappedPostFields, + generatePostCreationFieldMap, + getPostCreationFieldsByAction, + isLegacyPostCreationAction, + postCreationExtraActions, refreshPostCategories, refreshPostTypes } from './PostHelperFunction' @@ -20,33 +22,33 @@ import FieldMap from './FieldMap' import bitsFetch from '../../../Utils/bitsFetch' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import IntegrationStepThree from '../IntegrationHelpers/IntegrationStepThree' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import MultiSelect from 'react-multiple-select-dropdown-lite' import 'react-multiple-select-dropdown-lite/dist/index.css' import { useRecoilValue } from 'recoil' import { $appConfigState } from '../../../GlobalStates' import { ProFeatureTitle } from '../IntegrationHelpers/ActionProFeatureLabels' +import { checkIsPro, getProLabel } from '../../Utilities/ProUtilHelpers' function Post({ formFields, setFlow, flow, allIntegURL }) { const [users, setUsers] = useState([]) const [postTypes, setPostTypes] = useState([]) const [postCategories, setPostCategories] = useState([]) const navigate = useNavigate() - const { formID } = useParams() const [isLoading, setIsLoading] = useState(false) const [step, setstep] = useState(1) const [snack, setSnackbar] = useState({ show: false }) const [acf, setAcf] = useState({ fields: [], files: [] }) const [mb, setMb] = useState({ fields: [], files: [] }) const [jeCPTMeta, setJeCPTMeta] = useState({ fields: [], files: [] }) -const btcbi = useRecoilValue($appConfigState) + const btcbi = useRecoilValue($appConfigState) const { isPro } = btcbi const [postConf, setPostConf] = useState({ name: 'WP Post Creation', type: 'WP Post Creation', - post_map: [{ post_author: 'logged_in_user' }], + action_type: 'createNewPost', + post_map: generatePostCreationFieldMap('createNewPost'), acf_map: [{}], acf_file_map: [{}], metabox_map: [{}], @@ -72,10 +74,14 @@ const btcbi = useRecoilValue($appConfigState) const { data } = res setPostTypes(data) }) + const newConf = { ...postConf } - newConf.post_map = postFields - .filter(fld => fld.required) - .map(fl => ({ formField: '', postField: fl.key, required: fl.required })) + if (!newConf.action_type) { + newConf.action_type = 'createNewPost' + } + if (!newConf?.post_map?.[0]?.postField) { + newConf.post_map = generatePostCreationFieldMap(newConf.action_type) + } setPostConf(newConf) }, []) @@ -116,11 +122,22 @@ const btcbi = useRecoilValue($appConfigState) } }) - // tmpData.metabox_map = postFields.filter(fld => fld.required).map(fl => ({ formField: '', postFormField: fl.key, required: fl.required })) setPostConf(tmpData) - // setLoad(false) } + const setActionType = actionType => { + const nextAction = actionType || 'createNewPost' + setPostConf(prevConf => ({ + ...prevConf, + action_type: nextAction, + post_map: generatePostCreationFieldMap(nextAction) + })) + setstep(1) + } + + const isLegacyAction = isLegacyPostCreationAction(postConf?.action_type) + const selectedPostFields = getPostCreationFieldsByAction(postConf?.action_type || 'createNewPost') + const nextPage = stepNo => { setTimeout(() => { document.getElementById('btcd-settings-wrp').scrollTop = 0 @@ -130,16 +147,17 @@ const btcbi = useRecoilValue($appConfigState) setSnackbar({ show: true, msg: __('Please map mandatory fields', 'bit-integrations') }) return } - if (!postConf.post_type) { + + if (isLegacyAction && !postConf.post_type) { setSnackbar({ show: true, msg: __("Post Type can't be empty", 'bit-integrations') }) return } - if (!postConf.post_status) { + if (isLegacyAction && !postConf.post_status) { setSnackbar({ show: true, msg: __("Post Status can't be empty", 'bit-integrations') }) return } - if (stepNo === 3) { + if (isLegacyAction && stepNo === 3) { if (!checkMappedAcfFields(postConf)) { setSnackbar({ show: true, msg: __('Please map mandatory fields', 'bit-integrations') }) return @@ -174,7 +192,7 @@ const btcbi = useRecoilValue($appConfigState) return (
- +
@@ -194,155 +212,176 @@ const btcbi = useRecoilValue($appConfigState) placeholder={__('Integration Name...', 'bit-integrations')} /> -
- {__('Post Type', 'bit-integrations')} - -
- {__( - 'Select one of the defined WordPress post types Or custom post types for the post', - 'bit-integrations' - )} -
-
-
+
+ {__('Action Type', 'bit-integrations')}
-
- setActionType(e.target.value)}> + {postCreationExtraActions.map(action => ( + - {postTypes?.map((postType, key) => ( - - ))} - - -
+ ))} + -
- {__('Post Categories', 'bit-integrations')} - -
- {__('Select one or multiple categories for the post', 'bit-integrations')} -
+ {isLegacyAction && ( + <> +
+ {__('Post Type', 'bit-integrations')} + +
+ {__( + 'Select one of the defined WordPress post types Or custom post types for the post', + 'bit-integrations' + )} +
+
+
+
+
+ +
- -
-
- handleInput('post_categories', val)} - /> - -
-
- {__('Post Status', 'bit-integrations')} - -
- {__( - 'Select the status for the post. If published status is selected and the post date is in the future, it will automatically be changed to scheduled', - 'bit-integrations' - )} -
+
+ {__('Post Categories', 'bit-integrations')} + +
+ {__('Select one or multiple categories for the post', 'bit-integrations')} +
+
+
+
+
+ handleInput('post_categories', val)} + /> +
- -
- -
- {__('Author', 'bit-integrations')} - -
- {('Select the user to be assigned to the post', 'bit-integrations')} -
+
+ {__('Post Status', 'bit-integrations')} + +
+ {__( + 'Select the status for the post. If published status is selected and the post date is in the future, it will automatically be changed to scheduled', + 'bit-integrations' + )} +
+
+
- -
-
- handleInput(e.target.name, e.target.value)} + className="btcd-paper-inp w-5 mt-2"> + - ))} - -
- -
- {__('Comment Status', 'bit-integrations')} -
- + + + + + + + +
+ {__('Author', 'bit-integrations')} + +
+ {__('Select the user to be assigned to the post', 'bit-integrations')} +
+
+
+
+
+ +
-
- - - - - -
- {__('Use commas to separate multiple tags. Example: tag1, tag2, tag3', 'bit-integrations')} -
+
+ {__('Comment Status', 'bit-integrations')} +
+ + +
+ + + + + +
+ {__( + 'Use commas to separate multiple tags. Example: tag1, tag2, tag3', + 'bit-integrations' + )} +
+
+
- -
- handleInput(e.target.name, e.target.value)} - name="post_tags" - value={postConf.post_tags} - type="text" - placeholder={__('Add Post Tags...', 'bit-integrations')} - disabled={!isPro} - /> + handleInput(e.target.name, e.target.value)} + name="post_tags" + value={postConf.post_tags} + type="text" + placeholder={__('Add Post Tags...', 'bit-integrations')} + disabled={!isPro} + /> + + )}
@@ -368,13 +407,15 @@ const btcbi = useRecoilValue($appConfigState) formFields={formFields} postConf={postConf} setPostConf={setPostConf} - customFields={postFields} + customFields={selectedPostFields} /> ))}
-
- handleInput(e, postConf, setPostConf, formID, setIsLoading, setSnackbar)} - postConf={postConf} - setPostConf={setPostConf} - isLoading={isLoading} - setIsLoading={setIsLoading} - setSnackbar={setSnackbar} - acfFields={acf} - mbFields={mb} - jeCPTFields={jeCPTMeta} - /> - -
+ {isLegacyAction && ( +
+ + + +
+ )} { const tmpData = { ...postConf } tmpData[typ] = val @@ -66,15 +70,22 @@ function Post({ allIntegURL }) { setPostTypes(data) }) - refreshPostCategories(postConf?.post_type, setPostCategories) + if (!tmpData.action_type) { + tmpData.action_type = 'createNewPost' + } + if (!tmpData?.post_map?.[0]?.postField) { + tmpData.post_map = generatePostCreationFieldMap(tmpData.action_type) + } + + refreshPostCategories(tmpData?.post_type, setPostCategories) - bitsFetch({ post_type: postConf?.post_type }, 'customfield/list').then(res => { + bitsFetch({ post_type: tmpData?.post_type }, 'customfield/list').then(res => { const { data } = res setAcf({ fields: data.acf_fields, files: data.acf_files }) setMb({ fields: data.mb_fields, files: data.mb_files }) setJeCPTMeta({ fields: data.je_cpt_fields, files: data.je_cpt_files }) }) - // setLoad(false) + setPostConf(tmpData) }, []) @@ -114,23 +125,34 @@ function Post({ allIntegURL }) { } }) setPostConf(tmpData) - // setLoad(false) } + const setActionType = actionType => { + const nextAction = actionType || 'createNewPost' + setPostConf(prevConf => ({ + ...prevConf, + action_type: nextAction, + post_map: generatePostCreationFieldMap(nextAction) + })) + } + + const isLegacyAction = isLegacyPostCreationAction(postConf?.action_type) + const selectedPostFields = getPostCreationFieldsByAction(postConf?.action_type || 'createNewPost') + const saveConfig = () => { if (!checkMappedPostFields(postConf)) { setSnackbar({ show: true, msg: __('Please map mandatory fields', 'bit-integrations') }) return } - if (!checkMappedAcfFields(postConf)) { + if (isLegacyAction && !checkMappedAcfFields(postConf)) { setSnackbar({ show: true, msg: __('Please map mandatory fields', 'bit-integrations') }) return } - if (!checkMappedMbFields(postConf)) { + if (isLegacyAction && !checkMappedMbFields(postConf)) { setSnackbar({ show: true, msg: __('Please map mandatory fields', 'bit-integrations') }) return } - if (!checkMappedJEFields(postConf)) { + if (isLegacyAction && !checkMappedJEFields(postConf)) { setSnackbar({ show: true, msg: __('Please map mandatory fields', 'bit-integrations') }) return } @@ -139,7 +161,6 @@ function Post({ allIntegURL }) { resp.then(res => { if (res.success) { setSnackbar({ show: true, msg: res.data }) - // navigate(allIntegURL) } else { setSnackbar({ show: true, msg: res.data || res }) } @@ -150,177 +171,202 @@ function Post({ allIntegURL }) {
-
- {__('Integration Name', 'bit-integrations')} + +
+
+ {__('Integration Name', 'bit-integrations')} +
+ handleInput(e.target.name, e.target.value)} + name="name" + value={postConf.name} + type="text" + placeholder={__('Integration Name...', 'bit-integrations')} + />
- handleInput(e.target.name, e.target.value)} - name="name" - value={postConf.name} - type="text" - placeholder={__('Integration Name...', 'bit-integrations')} - /> -

-
- {__('Post Type', 'bit-integrations')} - -
- {__( - 'Select one of the defined WordPress post types Or custom post types for the post', - 'bit-integrations' - )} -
-
-
-
-
+
+
+ {__('Action type', 'bit-integrations')} +
-
-
- {__('Post Categories', 'bit-integrations')} - -
- {__('Select one or multiple categories for the post', 'bit-integrations')} -
+ {isLegacyAction && ( + <> +
+ {__('Post Type', 'bit-integrations')} + +
+ {__( + 'Select one of the defined WordPress post types Or custom post types for the post', + 'bit-integrations' + )} +
+
+
+
+
+ +
- -
-
- ({ - label: category?.label, - value: category?.value?.toString() - }))} - onChange={val => handleInput('post_categories', val)} - /> - -
-
- {__('Post Status', 'bit-integrations')} - -
- {__( - 'Select the status for the post. If published status is selected and the post date is in the future, it will automatically be changed to scheduled', - 'bit-integrations' - )} -
+
+ {__('Post Categories', 'bit-integrations')} + +
+ {__('Select one or multiple categories for the post', 'bit-integrations')} +
+
+
+
+
+ ({ + label: category?.label, + value: category?.value?.toString() + }))} + onChange={val => handleInput('post_categories', val)} + /> +
- -
- -
- {__('Author', 'bit-integrations')} - -
- {__('Select the user to be assigned to the post', 'bit-integrations')} -
+
+ {__('Post Status', 'bit-integrations')} + +
+ {__( + 'Select the status for the post. If published status is selected and the post date is in the future, it will automatically be changed to scheduled', + 'bit-integrations' + )} +
+
+
- -
-
- handleInput(e.target.name, e.target.value)} + className="btcd-paper-inp w-5 mt-2"> + - ))} - -
+ + + + + + -
- {__('Comment Status', 'bit-integrations')} -
- +
+ {__('Author', 'bit-integrations')} + +
+ {__('Select the user to be assigned to the post', 'bit-integrations')} +
+
+
+
+
+ +
-
- - - +
+ {__('Comment Status', 'bit-integrations')} +
+ + +
+ + + - -
- {__('Use commas to separate multiple tags. Example: tag1, tag2, tag3', 'bit-integrations')} -
+ +
+ {__( + 'Use commas to separate multiple tags. Example: tag1, tag2, tag3', + 'bit-integrations' + )} +
+
+
-
-
- handleInput(e.target.name, e.target.value)} - name="post_tags" - value={postConf.post_tags} - type="text" - placeholder={__('Add Post Tags...', 'bit-integrations')} - disabled={!isPro} - /> + handleInput(e.target.name, e.target.value)} + name="post_tags" + value={postConf.post_tags} + type="text" + placeholder={__('Add Post Tags...', 'bit-integrations')} + disabled={!isPro} + /> + + )}
@@ -346,34 +392,35 @@ function Post({ allIntegURL }) { formFields={formFields} postConf={postConf} setPostConf={setPostConf} - customFields={postFields} + customFields={selectedPostFields} /> ))}
-
- handleInput(e, postConf, setPostConf, formID, setIsLoading, setSnackbar)} - postConf={postConf} - setPostConf={setPostConf} - isLoading={isLoading} - setIsLoading={setIsLoading} - setSnackbar={setSnackbar} - acfFields={acf} - mbFields={mb} - jeCPTFields={jeCPTMeta} - /> -
+ + {isLegacyAction && ( +
+ +
+ )} + !actionType || actionType === 'createNewPost' + +const postCreationActionFields = { + updateExistingPost: [ + { key: 'post_id', name: __('Post ID', 'bit-integrations'), required: true }, + { key: 'post_title', name: __('Post Title', 'bit-integrations'), required: false }, + { key: 'post_content', name: __('Post Content', 'bit-integrations'), required: false }, + { key: 'post_status', name: __('Post Status', 'bit-integrations'), required: false }, + { key: 'post_type', name: __('Post Type', 'bit-integrations'), required: false }, + { key: 'post_author', name: __('Post Author ID', 'bit-integrations'), required: false }, + { key: 'post_date', name: __('Post Date', 'bit-integrations'), required: false }, + { key: 'post_name', name: __('Post Slug', 'bit-integrations'), required: false }, + { key: 'post_excerpt', name: __('Post Excerpt', 'bit-integrations'), required: false }, + { key: 'featured_image_url', name: __('Featured Image URL', 'bit-integrations'), required: false } + ], + updatePostStatus: [ + { key: 'post_id', name: __('Post ID', 'bit-integrations'), required: true }, + { key: 'post_status', name: __('Post Status', 'bit-integrations'), required: true } + ], + deleteExistingPost: [ + { key: 'post_id', name: __('Post ID', 'bit-integrations'), required: true }, + { key: 'force_delete', name: __('Force Delete (true/false)', 'bit-integrations'), required: false } + ], + createNewComment: [ + { key: 'comment_post_ID', name: __('Post ID', 'bit-integrations'), required: true }, + { key: 'comment_content', name: __('Comment Content', 'bit-integrations'), required: true }, + { key: 'comment_author', name: __('Author Name', 'bit-integrations'), required: false }, + { key: 'comment_author_email', name: __('Author Email', 'bit-integrations'), required: false }, + { key: 'comment_author_url', name: __('Author URL', 'bit-integrations'), required: false }, + { key: 'comment_parent', name: __('Parent Comment ID', 'bit-integrations'), required: false } + ], + replyToComment: [ + { key: 'comment_parent', name: __('Parent Comment ID', 'bit-integrations'), required: true }, + { key: 'comment_content', name: __('Comment Content', 'bit-integrations'), required: true }, + { key: 'comment_post_ID', name: __('Post ID', 'bit-integrations'), required: true }, + { key: 'comment_author', name: __('Author Name', 'bit-integrations'), required: false }, + { key: 'comment_author_email', name: __('Author Email', 'bit-integrations'), required: false } + ], + deleteExistingComment: [ + { key: 'comment_id', name: __('Comment ID', 'bit-integrations'), required: true }, + { key: 'force_delete', name: __('Force Delete (true/false)', 'bit-integrations'), required: false } + ] +} + +export const getPostCreationFieldsByAction = actionType => { + if (isLegacyPostCreationAction(actionType)) { + return defaultPostFields + } + + return postCreationActionFields[actionType] || defaultPostFields +} + +export const generatePostCreationFieldMap = actionType => { + const fields = getPostCreationFieldsByAction(actionType) + const requiredFields = fields.filter(field => field.required) + + if (requiredFields.length > 0) { + return requiredFields.map(field => ({ + formField: '', + postField: field.key, + required: true + })) + } + + return [{ formField: '', postField: '' }] +} export const addFieldMap = (fldProp, i, confTmp, setConf) => { const newConf = { ...confTmp } @@ -76,7 +158,7 @@ export const checkMappedJEFields = data => { return true } -export const refreshPostTypes = (postTypes, setPostTypes) => { +export const refreshPostTypes = setPostTypes => { const loadPostTypes = bitsFetch({}, 'post-types/list').then(result => { if (result && result.success) { const { data } = result @@ -102,7 +184,8 @@ export const refreshPostCategories = (postType, setPostCategories) => { if (data) { setPostCategories(data) } - if (data && data.length > 0) return __('Successfully refreshed Post Categories.', 'bit-integrations') + if (data && data.length > 0) + return __('Successfully refreshed Post Categories.', 'bit-integrations') return __('Post Categories not found', 'bit-integrations') } }) diff --git a/frontend/src/components/AllIntegrations/PropovoiceCRM/PropovoiceCrmAuthorization.jsx b/frontend/src/components/AllIntegrations/PropovoiceCRM/PropovoiceCrmAuthorization.jsx index 7e9d18ef6..e084592ef 100644 --- a/frontend/src/components/AllIntegrations/PropovoiceCRM/PropovoiceCrmAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/PropovoiceCRM/PropovoiceCrmAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function PropovoiceCrmAuthorization({ @@ -47,7 +46,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Rapidmail/RapidmailAuthorization.jsx b/frontend/src/components/AllIntegrations/Rapidmail/RapidmailAuthorization.jsx index dff743527..a1057c8ec 100644 --- a/frontend/src/components/AllIntegrations/Rapidmail/RapidmailAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Rapidmail/RapidmailAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { getAllRecipient, handleAuthorize } from './RapidmailCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function RapidmailAuthorization({ @@ -59,7 +58,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Registration/EditRegistration.jsx b/frontend/src/components/AllIntegrations/Registration/EditRegistration.jsx index 82e1e0c6c..733fbf6cd 100644 --- a/frontend/src/components/AllIntegrations/Registration/EditRegistration.jsx +++ b/frontend/src/components/AllIntegrations/Registration/EditRegistration.jsx @@ -1,56 +1,70 @@ /* eslint-disable no-param-reassign */ import { useEffect, useState } from 'react' import 'react-multiple-select-dropdown-lite/dist/index.css' -import { useNavigate, useParams } from 'react-router' +import { useNavigate } from 'react-router' import { useRecoilState, useRecoilValue } from 'recoil' -import bitsFetch from '../../../Utils/bitsFetch' +import { $actionConf, $appConfigState, $formFields, $newFlow } from '../../../GlobalStates' import { __ } from '../../../Utils/i18nwrap' -import SnackMsg from '../../Utilities/SnackMsg' -import { saveActionConf, saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' -import UserFieldMap from './UserFieldMap' -import UserMetaField from './UserMetaField' -import { userFields } from '../../../Utils/StaticData/userField' -import { checkMappedUserFields } from './UserHelperFunction' -import EditFormInteg from '../EditFormInteg' -import SetEditIntegComponents from '../IntegrationHelpers/SetEditIntegComponents' -import LoaderSm from '../../Loaders/LoaderSm' -import { $actionConf, $formFields, $newFlow } from '../../../GlobalStates' -import EditWebhookInteg from '../EditWebhookInteg' -import TableCheckBox from '../../Utilities/TableCheckBox' import ConditionalLogic from '../../ConditionalLogic' -import CheckBox from '../../Utilities/CheckBox' +import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' -import RegistrationActions from './RegistrationActions' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' +import { checkIsPro, getProLabel } from '../../Utilities/ProUtilHelpers' +import SnackMsg from '../../Utilities/SnackMsg' +import TableCheckBox from '../../Utilities/TableCheckBox' import TutorialLink from '../../Utilities/TutorialLink' +import { saveActionConf } from '../IntegrationHelpers/IntegrationHelpers' +import SetEditIntegComponents from '../IntegrationHelpers/SetEditIntegComponents' +import RegistrationActions from './RegistrationActions' +import UserFieldMap from './UserFieldMap' +import { + checkMappedUserFields, + generateRegistrationFieldMap, + getRegistrationFieldsByAction, + isLegacyRegistrationAction, + registrationMainActions +} from './UserHelperFunction' +import UserMetaField from './UserMetaField' export default function EditRegistration({ allIntegURL }) { const navigate = useNavigate() - const { formID } = useParams() const [snack, setSnackbar] = useState({ show: false }) - const [roles, setRoles] = useState([]) const [isLoading, setIsLoading] = useState(false) const [flow, setFlow] = useRecoilState($newFlow) + const { isPro } = useRecoilValue($appConfigState) const formFields = useRecoilValue($formFields) const [userConf, setUserConf] = useRecoilState($actionConf) -useEffect(() => { + useEffect(() => { const tmpConf = { ...userConf } + if (!tmpConf.action_type) { + tmpConf.action_type = 'new_user' + } + if (!tmpConf?.user_map?.[0]?.userField) { - tmpConf.user_map = userFields - .filter(fld => fld.required) - .map(fl => ({ formField: '', userField: fl.key, required: fl.required })) + tmpConf.user_map = generateRegistrationFieldMap(tmpConf.action_type) } setUserConf(tmpConf) }, []) + const setActionType = actionType => { + const nextAction = actionType || 'new_user' + setUserConf(prevConf => ({ + ...prevConf, + action_type: nextAction, + user_map: generateRegistrationFieldMap(nextAction) + })) + } + + const isLegacyAction = isLegacyRegistrationAction(userConf?.action_type) + const selectedUserFields = getRegistrationFieldsByAction(userConf?.action_type || 'new_user') + const saveConfig = () => { if (!userConf.action_type) { setSnackbar({ show: true, msg: __('Please select action type', 'bit-integrations') }) return } - if (!userConf.user_role && userConf.action_type !== 'updated_user') { + if (userConf.action_type === 'new_user' && !userConf.user_role) { setSnackbar({ show: true, msg: __("User Role can't be empty", 'bit-integrations') }) return } @@ -80,58 +94,36 @@ useEffect(() => { setUserConf(tmpConf) } - const actionHandler = e => { - const newConf = { ...userConf } - const { name, value } = e.target - if (e.target.checked) { - newConf[name] = value + const actionTypeHandler = e => { + if (!e.target.value) { + return } - setUserConf({ ...newConf }) + setActionType(e.target.value) } - const userUpdateInstruction = ` -
    -
  • ${__('The user must be logged in when updating profile', 'bit-integrations')}
  • -
  • ${__( - 'The user cannot change the value of the username field when updating the user profile.', - 'bit-integrations' - )}
  • - -
` - const userCreateInstruction = ` -
    -
  • ${__( - 'If the Username and Password fields are blank then the user will take the value of the email field as the field and the password will be auto-generated.', - 'bit-integrations' - )}
  • -
` - return (
- +

-
{__('Action type', 'bit-integrations')}
- - +
+ {__('Action type', 'bit-integrations')} +
+


@@ -139,34 +131,33 @@ useEffect(() => {
-
-
-
-
+ {isLegacyAction && ( + <> +
+ +
+
-
- {__('Utilities', 'bit-integrations')} -
-
- +
+ {__('Utilities', 'bit-integrations')} +
+
+ -
- +
+ + + )} {userConf?.condition && ( <> @@ -198,3 +189,22 @@ useEffect(() => {
) } + + + +const userUpdateInstruction = ` +
    +
  • ${__('The user must be logged in when updating profile', 'bit-integrations')}
  • +
  • ${__( + 'The user cannot change the value of the username field when updating the user profile.', + 'bit-integrations' +)}
  • + +
` +const userCreateInstruction = ` +
    +
  • ${__( + 'If the Username and Password fields are blank then the user will take the value of the email field as the field and the password will be auto-generated.', + 'bit-integrations' +)}
  • +
` \ No newline at end of file diff --git a/frontend/src/components/AllIntegrations/Registration/Registration.jsx b/frontend/src/components/AllIntegrations/Registration/Registration.jsx index a736d9250..4ff7f867f 100644 --- a/frontend/src/components/AllIntegrations/Registration/Registration.jsx +++ b/frontend/src/components/AllIntegrations/Registration/Registration.jsx @@ -1,34 +1,39 @@ /* eslint-disable no-param-reassign */ import { useEffect, useState } from 'react' import 'react-multiple-select-dropdown-lite/dist/index.css' -import { useNavigate, useParams } from 'react-router' -import bitsFetch from '../../../Utils/bitsFetch' +import { useNavigate } from 'react-router' +import { useRecoilValue } from 'recoil' +import { $appConfigState } from '../../../GlobalStates' import { __ } from '../../../Utils/i18nwrap' -import SnackMsg from '../../Utilities/SnackMsg' -import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' -import UserFieldMap from './UserFieldMap' -import UserMetaField from './UserMetaField' -import { userFields } from '../../../Utils/StaticData/userField' -import { checkMappedUserFields } from './UserHelperFunction' -import LoaderSm from '../../Loaders/LoaderSm' import ConditionalLogic from '../../ConditionalLogic' -import TableCheckBox from '../../Utilities/TableCheckBox' -import CheckBox from '../../Utilities/CheckBox' +import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' +import { checkIsPro, getProLabel } from '../../Utilities/ProUtilHelpers' +import SnackMsg from '../../Utilities/SnackMsg' +import TableCheckBox from '../../Utilities/TableCheckBox' import TutorialLink from '../../Utilities/TutorialLink' +import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import RegistrationActions from './RegistrationActions' +import UserFieldMap from './UserFieldMap' +import { + checkMappedUserFields, + generateRegistrationFieldMap, + getRegistrationFieldsByAction, + isLegacyRegistrationAction, + registrationMainActions +} from './UserHelperFunction' +import UserMetaField from './UserMetaField' export default function Registration({ formFields, setFlow, flow, allIntegURL }) { - const { formID } = useParams() const [snack, setSnackbar] = useState({ show: false }) - const [roles, setRoles] = useState([]) const navigate = useNavigate() + const { isPro } = useRecoilValue($appConfigState) const [isLoading, setIsLoading] = useState(false) -const [userConf, setUserConf] = useState({ + const [userConf, setUserConf] = useState({ name: 'WP User Registration', type: 'WP User Registration', - user_map: [{}], + action_type: 'new_user', + user_map: generateRegistrationFieldMap('new_user'), meta_map: [{}], condition: { action_behavior: '', @@ -39,25 +44,35 @@ const [userConf, setUserConf] = useState({ useEffect(() => { const tmpConf = { ...userConf } - bitsFetch({}, 'role/list', null, 'GET').then(res => { - if (res?.success && res !== undefined) { - setRoles(Object.values(res?.data)) - } - }) + + if (!tmpConf.action_type) { + tmpConf.action_type = 'new_user' + } if (!tmpConf?.user_map?.[0]?.userField) { - tmpConf.user_map = userFields - .filter(fld => fld.required) - .map(fl => ({ formField: '', userField: fl.key, required: fl.required })) + tmpConf.user_map = generateRegistrationFieldMap(tmpConf.action_type) } setUserConf(tmpConf) }, []) + + const setActionType = actionType => { + const newAction = actionType || 'new_user' + setUserConf(prevConf => ({ + ...prevConf, + action_type: newAction, + user_map: generateRegistrationFieldMap(newAction) + })) + } + + const isLegacyAction = isLegacyRegistrationAction(userConf?.action_type) + const selectedUserFields = getRegistrationFieldsByAction(userConf?.action_type || 'new_user') + const saveConfig = () => { if (!userConf.action_type) { setSnackbar({ show: true, msg: __('Please select action type', 'bit-integrations') }) return } - if (!userConf.user_role && userConf.action_type !== 'updated_user') { + if (userConf.action_type === 'new_user' && !userConf.user_role) { setSnackbar({ show: true, msg: __("User Role can't be empty", 'bit-integrations') }) return } @@ -79,83 +94,66 @@ const [userConf, setUserConf] = useState({ setUserConf(tmpConf) } - const actionHandler = e => { - const newConf = { ...userConf } - const { name, value } = e.target - if (e.target.checked) { - newConf[name] = value + const actionTypeHandler = e => { + if (!e.target.value) { + return } - setUserConf({ ...newConf }) + setActionType(e.target.value) } - const userUpdateInstruction = ` -
    -
  • ${__('The user must be logged in when updating profile', 'bit-integrations')}
  • -
  • ${__( - 'The user cannot change the value of the username field when updating the user profile.', - 'bit-integrations' - )}
  • - -
` - const userCreateInstruction = ` -
    -
  • ${__( - 'If the Username and Password fields are blank then the user will take the value of the email field as the field and the password will be auto-generated.', - 'bit-integrations' - )}
  • -
` - return (
- +
{' '}
- - +
+ {__('Select Action', 'bit-integrations')} +
+
+ +

-
- -
-
- {__('Utilities', 'bit-integrations')} -
-
- -
- + {isLegacyAction && ( + <> +
+ +
+
+ {__('Utilities', 'bit-integrations')} +
+
+ +
+ + + )} {userConf?.condition && ( <>
@@ -184,3 +182,20 @@ const [userConf, setUserConf] = useState({
) } + +const userUpdateInstruction = ` +
    +
  • ${__('The user must be logged in when updating profile', 'bit-integrations')}
  • +
  • ${__( + 'The user cannot change the value of the username field when updating the user profile.', + 'bit-integrations' +)}
  • + +
` +const userCreateInstruction = ` +
    +
  • ${__( + 'If the Username and Password fields are blank then the user will take the value of the email field as the field and the password will be auto-generated.', + 'bit-integrations' +)}
  • +
` \ No newline at end of file diff --git a/frontend/src/components/AllIntegrations/Registration/UserFieldMap.jsx b/frontend/src/components/AllIntegrations/Registration/UserFieldMap.jsx index 3795c5de4..5c9fa91d1 100644 --- a/frontend/src/components/AllIntegrations/Registration/UserFieldMap.jsx +++ b/frontend/src/components/AllIntegrations/Registration/UserFieldMap.jsx @@ -6,7 +6,7 @@ import TableCheckBox from '../../Utilities/TableCheckBox' import FieldMap from './FieldMap' import { addFieldMap } from './UserHelperFunction' -export default function UserFieldMap({ formFields, userConf, setUserConf, roles, userFields }) { +export default function UserFieldMap({ formFields, userConf, setUserConf, userFields }) { const [snack, setSnackbar] = useState({ show: false }) const handleInput = e => { const tmpConf = { ...userConf } diff --git a/frontend/src/components/AllIntegrations/Registration/UserHelperFunction.js b/frontend/src/components/AllIntegrations/Registration/UserHelperFunction.js index 413e9a396..1be8a613a 100644 --- a/frontend/src/components/AllIntegrations/Registration/UserHelperFunction.js +++ b/frontend/src/components/AllIntegrations/Registration/UserHelperFunction.js @@ -1,6 +1,124 @@ /* eslint-disable no-param-reassign */ import bitsFetch from '../../../Utils/bitsFetch' +import { __ } from '../../../Utils/i18nwrap' +import { userFields as defaultUserFields } from '../../../Utils/StaticData/userField' + +export const registrationMainActions = [ + { value: 'new_user', label: __('New User Create', 'bit-integrations'), is_pro: false }, + { value: 'updated_user', label: __('Updated User', 'bit-integrations'), is_pro: false }, + { value: 'deleteExistingUser', label: __('Delete Existing User', 'bit-integrations'), is_pro: true }, + { value: 'updateUserMetadata', label: __('Update User Metadata', 'bit-integrations'), is_pro: true }, + { value: 'createRole', label: __('Create Role', 'bit-integrations'), is_pro: true }, + { value: 'deleteRole', label: __('Delete Role', 'bit-integrations'), is_pro: true }, + { value: 'addUserRoles', label: __('Add User Roles', 'bit-integrations'), is_pro: true }, + { value: 'removeUserRole', label: __('Remove User Role', 'bit-integrations'), is_pro: true }, + { value: 'updateUserRole', label: __('Update User Role', 'bit-integrations'), is_pro: true }, + { value: 'addRoleCapabilities', label: __('Add Role Capabilities', 'bit-integrations'), is_pro: true }, + { + value: 'removeRoleCapabilities', + label: __('Remove Role Capabilities', 'bit-integrations'), + is_pro: true + }, + { value: 'addUserCapabilities', label: __('Add User Capabilities', 'bit-integrations'), is_pro: true }, + { + value: 'removeUserCapabilities', + label: __('Remove User Capabilities', 'bit-integrations'), + is_pro: true + } +] + +export const isLegacyRegistrationAction = actionType => + actionType === 'new_user' || actionType === 'updated_user' + +const registrationActionFields = { + deleteExistingUser: [ + { key: 'user_email', name: __('User Email', 'bit-integrations'), required: true}, + { key: 'reassign_id', name: __('Reassign ID', 'bit-integrations'), required: false} + ], + updateUserMetadata: [ + { key: 'user_email', name: __('User Email', 'bit-integrations'), required: true }, + { key: 'meta_key', name: __('Meta Key', 'bit-integrations'), required: true }, + { key: 'meta_value', name: __('Meta Value', 'bit-integrations'), required: true } + ], + createRole: [ + { key: 'role_name', name: __('Role Name', 'bit-integrations'), required: true }, + { key: 'role_display_name', name: __('Display Name', 'bit-integrations'), required: true }, + { + key: 'role_capabilities', + name: __('Capabilities (comma separated)', 'bit-integrations'), + required: false + } + ], + deleteRole: [{ key: 'role_name', name: __('Role Name', 'bit-integrations'), required: true }], + addUserRoles: [ + { key: 'user_email', name: __('User Email', 'bit-integrations'), required: true }, + { key: 'user_role', name: __('Role', 'bit-integrations'), required: true } + ], + removeUserRole: [ + { key: 'user_email', name: __('User Email', 'bit-integrations'), required: true }, + { key: 'user_role', name: __('Role', 'bit-integrations'), required: true } + ], + updateUserRole: [ + { key: 'user_email', name: __('User Email', 'bit-integrations'), required: true }, + { key: 'new_role', name: __('New Role', 'bit-integrations'), required: true } + ], + addRoleCapabilities: [ + { key: 'role_name', name: __('Role Name', 'bit-integrations'), required: true }, + { + key: 'role_capabilities', + name: __('Capabilities (comma separated)', 'bit-integrations'), + required: true + } + ], + removeRoleCapabilities: [ + { key: 'role_name', name: __('Role Name', 'bit-integrations'), required: true }, + { + key: 'role_capabilities', + name: __('Capabilities (comma separated)', 'bit-integrations'), + required: true + } + ], + addUserCapabilities: [ + { key: 'user_email', name: __('User Email', 'bit-integrations'), required: true }, + { + key: 'role_capabilities', + name: __('Capabilities (comma separated)', 'bit-integrations'), + required: true + } + ], + removeUserCapabilities: [ + { key: 'user_email', name: __('User Email', 'bit-integrations'), required: true }, + { + key: 'role_capabilities', + name: __('Capabilities (comma separated)', 'bit-integrations'), + required: true + } + ] +} + +export const getRegistrationFieldsByAction = actionType => { + if (isLegacyRegistrationAction(actionType)) { + return defaultUserFields + } + + return registrationActionFields[actionType] || defaultUserFields +} + +export const generateRegistrationFieldMap = actionType => { + const fields = getRegistrationFieldsByAction(actionType) + const requiredFields = fields.filter(field => field.required) + + if (requiredFields.length > 0) { + return requiredFields.map(field => ({ + formField: '', + userField: field.key, + required: true + })) + } + + return [{ formField: '', userField: '' }] +} export const addFieldMap = (fldProp, i, confTmp, setConf) => { const newConf = { ...confTmp } diff --git a/frontend/src/components/AllIntegrations/Registration/UserMetaField.jsx b/frontend/src/components/AllIntegrations/Registration/UserMetaField.jsx index d5b6424b2..1c88be5a4 100644 --- a/frontend/src/components/AllIntegrations/Registration/UserMetaField.jsx +++ b/frontend/src/components/AllIntegrations/Registration/UserMetaField.jsx @@ -1,10 +1,9 @@ -import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import FieldMap from './FieldMap' import { addFieldMap } from './UserHelperFunction' export default function CustomFieldMap({ formFields, userConf, setUserConf }) { - const [metaFields, setMetaFields] = useState([]) + const metaFields = [] return (
diff --git a/frontend/src/components/AllIntegrations/RestrictContent/RestrictContentAuthorization.jsx b/frontend/src/components/AllIntegrations/RestrictContent/RestrictContentAuthorization.jsx index 8ebcfd399..382fad49f 100644 --- a/frontend/src/components/AllIntegrations/RestrictContent/RestrictContentAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/RestrictContent/RestrictContentAuthorization.jsx @@ -6,8 +6,6 @@ import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { getAllLevels } from './RestrictContentCommonFunc' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function RestrictContentAuthorization({ formID, restrictConf, @@ -55,7 +53,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Salesflare/SalesflareAuthorization.jsx b/frontend/src/components/AllIntegrations/Salesflare/SalesflareAuthorization.jsx index 4b1194012..c1bcbed08 100644 --- a/frontend/src/components/AllIntegrations/Salesflare/SalesflareAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Salesflare/SalesflareAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { salesflareAuthentication } from './SalesflareCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SalesflareAuthorization({ @@ -49,7 +48,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Salesforce/SalesforceAuthorization.jsx b/frontend/src/components/AllIntegrations/Salesforce/SalesforceAuthorization.jsx index 5e13bd392..2f10298d3 100644 --- a/frontend/src/components/AllIntegrations/Salesforce/SalesforceAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Salesforce/SalesforceAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleAuthorize } from './SalesforceCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import { $appConfigState } from '../../../GlobalStates' import { useRecoilValue } from 'recoil' @@ -51,7 +50,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Salesmate/SalesmateAuthorization.jsx b/frontend/src/components/AllIntegrations/Salesmate/SalesmateAuthorization.jsx index 1dcc9b7d0..0cf1f0c54 100644 --- a/frontend/src/components/AllIntegrations/Salesmate/SalesmateAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Salesmate/SalesmateAuthorization.jsx @@ -6,7 +6,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import { salesmateAuthentication } from './SalesmateCommonFunc' import Note from '../../Utilities/Note' import { toast } from 'react-hot-toast' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SalesmateAuthorization({ @@ -64,7 +63,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Selzy/SelzyAuthorization.jsx b/frontend/src/components/AllIntegrations/Selzy/SelzyAuthorization.jsx index b83e0f78f..7ad43d1a7 100644 --- a/frontend/src/components/AllIntegrations/Selzy/SelzyAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Selzy/SelzyAuthorization.jsx @@ -6,7 +6,6 @@ import Input from '../../Utilities/Input' import Note from '../../Utilities/Note' import StepPage from '../../Utilities/StepPage' import { getAllTags, handleAuthorize, handleInput } from './SelzyCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import { __ } from '../../../Utils/i18nwrap' @@ -47,7 +46,7 @@ const nextPage = async () => { return ( - +
{/* SelzyAuthorization */} diff --git a/frontend/src/components/AllIntegrations/SendFox/SendFoxAuthorization.jsx b/frontend/src/components/AllIntegrations/SendFox/SendFoxAuthorization.jsx index 33cf5eac8..8764f14e8 100644 --- a/frontend/src/components/AllIntegrations/SendFox/SendFoxAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/SendFox/SendFoxAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleAuthorize } from './SendFoxCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SendFoxAuthorization({ @@ -43,7 +42,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/SendGrid/SendGridAuthorization.jsx b/frontend/src/components/AllIntegrations/SendGrid/SendGridAuthorization.jsx index 5286746c0..b0e0eddb2 100644 --- a/frontend/src/components/AllIntegrations/SendGrid/SendGridAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/SendGrid/SendGridAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { sendGridAuthentication } from './SendGridCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SendGridAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/SendPulse/SendPulseAuthorization.jsx b/frontend/src/components/AllIntegrations/SendPulse/SendPulseAuthorization.jsx index 41a6d7c34..158c60935 100644 --- a/frontend/src/components/AllIntegrations/SendPulse/SendPulseAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/SendPulse/SendPulseAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { refreshSendPulseList } from './SendPulseCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SendPulseAuthorization({ @@ -92,7 +91,7 @@ const handleAuthorize = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/SendinBlue/SendinBlueAuthorization.jsx b/frontend/src/components/AllIntegrations/SendinBlue/SendinBlueAuthorization.jsx index 2da337a14..c0cdd180a 100644 --- a/frontend/src/components/AllIntegrations/SendinBlue/SendinBlueAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/SendinBlue/SendinBlueAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { refreshLists } from './SendinBlueCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SendinBlueAuthorization({ @@ -61,7 +60,7 @@ const handleAuthorize = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Sendy/SendyAuthorization.jsx b/frontend/src/components/AllIntegrations/Sendy/SendyAuthorization.jsx index 1a74c2428..c32d6028e 100644 --- a/frontend/src/components/AllIntegrations/Sendy/SendyAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Sendy/SendyAuthorization.jsx @@ -6,7 +6,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' // import { getAllList } from './ElasticEmailCommonFunc' @@ -56,7 +55,7 @@ const handleAuthorize = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/SeoPress/SeoPressAuthorization.jsx b/frontend/src/components/AllIntegrations/SeoPress/SeoPressAuthorization.jsx index faffd0b3a..9a003c9e9 100644 --- a/frontend/src/components/AllIntegrations/SeoPress/SeoPressAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/SeoPress/SeoPressAuthorization.jsx @@ -2,7 +2,6 @@ import { useState } from 'react' import BackIcn from '../../../Icons/BackIcn' import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' @@ -47,7 +46,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Slack/SlackAuthorization.jsx b/frontend/src/components/AllIntegrations/Slack/SlackAuthorization.jsx index 9ee657ac5..b4ff513ed 100644 --- a/frontend/src/components/AllIntegrations/Slack/SlackAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Slack/SlackAuthorization.jsx @@ -3,7 +3,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { handleAuthorize } from './SlackCommonFunc' import Note from '../../Utilities/Note' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SlackAuthorization({ @@ -57,7 +56,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/SliceWp/SliceWpAuthorization.jsx b/frontend/src/components/AllIntegrations/SliceWp/SliceWpAuthorization.jsx index 1c50452d8..80dd07041 100644 --- a/frontend/src/components/AllIntegrations/SliceWp/SliceWpAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/SliceWp/SliceWpAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SliceWpAuthorization({ @@ -47,7 +46,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Smaily/SmailyAuthorization.jsx b/frontend/src/components/AllIntegrations/Smaily/SmailyAuthorization.jsx index 063739427..e99f8b3f7 100644 --- a/frontend/src/components/AllIntegrations/Smaily/SmailyAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Smaily/SmailyAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { smailyAuthentication } from './SmailyCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SmailyAuthorization({ @@ -63,7 +62,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/SmartSuite/SmartSuiteAuthorization.jsx b/frontend/src/components/AllIntegrations/SmartSuite/SmartSuiteAuthorization.jsx index 19b49633c..c3a39e3d2 100644 --- a/frontend/src/components/AllIntegrations/SmartSuite/SmartSuiteAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/SmartSuite/SmartSuiteAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { smartSuiteAuthentication, getAllSolutions } from './SmartSuiteCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import { create } from 'mutative' @@ -62,7 +61,7 @@ const [error, setError] = useState({ workspaceId: '', apiToken: '' })
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/SperseIO/SperseIO.jsx b/frontend/src/components/AllIntegrations/SperseIO/SperseIO.jsx index 623b70ff8..1deb78032 100644 --- a/frontend/src/components/AllIntegrations/SperseIO/SperseIO.jsx +++ b/frontend/src/components/AllIntegrations/SperseIO/SperseIO.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function SperseIO({ formFields, setFlow, flow, allIntegURL }) { @@ -35,7 +34,7 @@ function SperseIO({ formFields, setFlow, flow, allIntegURL }) {
- + {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/SureCart/SureCartAuthorization.jsx b/frontend/src/components/AllIntegrations/SureCart/SureCartAuthorization.jsx index d0b182f25..d4533a801 100644 --- a/frontend/src/components/AllIntegrations/SureCart/SureCartAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/SureCart/SureCartAuthorization.jsx @@ -2,7 +2,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { handleAuthorize } from './SureCartCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SureCartAuthorization({ @@ -42,7 +41,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/SureMembers/SureMembersAuthorization.jsx b/frontend/src/components/AllIntegrations/SureMembers/SureMembersAuthorization.jsx index 75ab16e77..2e72a02c3 100644 --- a/frontend/src/components/AllIntegrations/SureMembers/SureMembersAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/SureMembers/SureMembersAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { sureMembersAuthentication } from './SureMembersCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SureMembersAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/SureTriggers/SureTriggers.jsx b/frontend/src/components/AllIntegrations/SureTriggers/SureTriggers.jsx index fbe505b47..d6b42fb21 100644 --- a/frontend/src/components/AllIntegrations/SureTriggers/SureTriggers.jsx +++ b/frontend/src/components/AllIntegrations/SureTriggers/SureTriggers.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function SureTriggers({ formFields, setFlow, flow, allIntegURL }) { @@ -34,7 +33,7 @@ const [sureTriggers, setSureTriggers] = useState({
- + - + - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/TeamsForWooCommerceMemberships/TeamsForWooCommerceMembershipsAuthorization.jsx b/frontend/src/components/AllIntegrations/TeamsForWooCommerceMemberships/TeamsForWooCommerceMembershipsAuthorization.jsx index 64806e5e1..0e005c3cd 100644 --- a/frontend/src/components/AllIntegrations/TeamsForWooCommerceMemberships/TeamsForWooCommerceMembershipsAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/TeamsForWooCommerceMemberships/TeamsForWooCommerceMembershipsAuthorization.jsx @@ -2,7 +2,6 @@ import { useState } from 'react' import BackIcn from '../../../Icons/BackIcn' import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' @@ -46,7 +45,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Telegram/TelegramAuthorization.jsx b/frontend/src/components/AllIntegrations/Telegram/TelegramAuthorization.jsx index 69b38c2ac..ea3bef1c7 100644 --- a/frontend/src/components/AllIntegrations/Telegram/TelegramAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Telegram/TelegramAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { refreshGetUpdates } from './TelegramCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function TelegramAuthorization({ @@ -66,7 +65,7 @@ const handleAuthorize = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/TheEventsCalendar/TheEventsCalendarAuthorization.jsx b/frontend/src/components/AllIntegrations/TheEventsCalendar/TheEventsCalendarAuthorization.jsx index 4e31fba0f..9969aca5d 100644 --- a/frontend/src/components/AllIntegrations/TheEventsCalendar/TheEventsCalendarAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/TheEventsCalendar/TheEventsCalendarAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { theEventsCalendarAuthentication } from './theEventsCalendarCommonFunctions' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function TheEventsCalendarAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ThriveAutomator/ThriveAutomator.jsx b/frontend/src/components/AllIntegrations/ThriveAutomator/ThriveAutomator.jsx index 0f79de3f6..a93dfdf94 100644 --- a/frontend/src/components/AllIntegrations/ThriveAutomator/ThriveAutomator.jsx +++ b/frontend/src/components/AllIntegrations/ThriveAutomator/ThriveAutomator.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function ThriveAutomator({ formFields, setFlow, flow, allIntegURL }) { @@ -34,7 +33,7 @@ const [thriveAutomator, setThriveAutomator] = useState({
- + - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/TutorLms/TutorLmsAuthorization.jsx b/frontend/src/components/AllIntegrations/TutorLms/TutorLmsAuthorization.jsx index 77111e67e..9bc30a8d0 100644 --- a/frontend/src/components/AllIntegrations/TutorLms/TutorLmsAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/TutorLms/TutorLmsAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function TutorLmsAuthorization({ @@ -45,7 +44,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Twilio/TwilioAuthorization.jsx b/frontend/src/components/AllIntegrations/Twilio/TwilioAuthorization.jsx index 004b2ca07..70f335e9f 100644 --- a/frontend/src/components/AllIntegrations/Twilio/TwilioAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Twilio/TwilioAuthorization.jsx @@ -3,7 +3,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { handleAuthorize } from './TwilioCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function TwilioAuthorization({ @@ -38,7 +37,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/UltimateAffiliatePro/UltimateAffiliateProAuthorization.jsx b/frontend/src/components/AllIntegrations/UltimateAffiliatePro/UltimateAffiliateProAuthorization.jsx index fe534aefa..09d456bc5 100644 --- a/frontend/src/components/AllIntegrations/UltimateAffiliatePro/UltimateAffiliateProAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/UltimateAffiliatePro/UltimateAffiliateProAuthorization.jsx @@ -4,8 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function UltimateAffiliateProAuthorization({ ultimateAffiliateProConf, setUltimateAffiliateProConf, @@ -56,7 +54,7 @@ export default function UltimateAffiliateProAuthorization({ width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')}
diff --git a/frontend/src/components/AllIntegrations/UncannyAutomator/UncannyAutomator.jsx b/frontend/src/components/AllIntegrations/UncannyAutomator/UncannyAutomator.jsx index 372256d8e..94754a10a 100644 --- a/frontend/src/components/AllIntegrations/UncannyAutomator/UncannyAutomator.jsx +++ b/frontend/src/components/AllIntegrations/UncannyAutomator/UncannyAutomator.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function UncannyAutomator({ formFields, setFlow, flow, allIntegURL }) { @@ -34,7 +33,7 @@ const [uncannyAutomator, setUncannyAutomator] = useState({
- + - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Vbout/VboutAuthorization.jsx b/frontend/src/components/AllIntegrations/Vbout/VboutAuthorization.jsx index 6c0e8e16b..5259edca6 100644 --- a/frontend/src/components/AllIntegrations/Vbout/VboutAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Vbout/VboutAuthorization.jsx @@ -5,7 +5,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { handleAuthorize } from './VboutCommonFunc' import { getAllLists } from './VboutCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function VboutAuthorization({ @@ -58,7 +57,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Voxel/VoxelAuthorization.jsx b/frontend/src/components/AllIntegrations/Voxel/VoxelAuthorization.jsx index d38a18eca..7f7af32ef 100644 --- a/frontend/src/components/AllIntegrations/Voxel/VoxelAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Voxel/VoxelAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { voxelAuthentication } from './VoxelCommonFunctions' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function VoxelAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/WPCafe/WPCafeAuthorization.jsx b/frontend/src/components/AllIntegrations/WPCafe/WPCafeAuthorization.jsx index a5e2b0d95..624d674fc 100644 --- a/frontend/src/components/AllIntegrations/WPCafe/WPCafeAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/WPCafe/WPCafeAuthorization.jsx @@ -1,6 +1,5 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import TutorialLink from '../../Utilities/TutorialLink' @@ -28,7 +27,7 @@ const handleInput = e => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/WPCourseware/WPCoursewareAuthorization.jsx b/frontend/src/components/AllIntegrations/WPCourseware/WPCoursewareAuthorization.jsx index 0e2f323c1..e53e70c6f 100644 --- a/frontend/src/components/AllIntegrations/WPCourseware/WPCoursewareAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/WPCourseware/WPCoursewareAuthorization.jsx @@ -4,7 +4,6 @@ import { __, sprintf } from '../../../Utils/i18nwrap' import bitsFetch from '../../../Utils/bitsFetch' import LoaderSm from '../../Loaders/LoaderSm' import BackIcn from '../../../Icons/BackIcn' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function WPCoursewareAuthorization({ @@ -55,7 +54,7 @@ useEffect(
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/WPForo/WPForoAuthorization.jsx b/frontend/src/components/AllIntegrations/WPForo/WPForoAuthorization.jsx index ee22f37bd..56245d721 100644 --- a/frontend/src/components/AllIntegrations/WPForo/WPForoAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/WPForo/WPForoAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { wpforoAuthentication } from './WPForoCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function WPForoAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/WPFusion/WPFusion.jsx b/frontend/src/components/AllIntegrations/WPFusion/WPFusion.jsx index b76efd82e..95dfe0699 100644 --- a/frontend/src/components/AllIntegrations/WPFusion/WPFusion.jsx +++ b/frontend/src/components/AllIntegrations/WPFusion/WPFusion.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function WPFusion({ formFields, setFlow, flow, allIntegURL }) { @@ -34,7 +33,7 @@ const [wpFusion, setWPFusion] = useState({
- + - + { const newConf = { ...weDocsConf } @@ -29,8 +27,7 @@ export default function WeDocsAuthorization({
- {weDocs?.youTubeLink && } - {weDocs?.docLink && } +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/WebHooks/WebHooks.jsx b/frontend/src/components/AllIntegrations/WebHooks/WebHooks.jsx index 5f8b5465c..fca1f25be 100644 --- a/frontend/src/components/AllIntegrations/WebHooks/WebHooks.jsx +++ b/frontend/src/components/AllIntegrations/WebHooks/WebHooks.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function WebHooks({ formFields, setFlow, flow, allIntegURL }) { @@ -16,7 +15,7 @@ function WebHooks({ formFields, setFlow, flow, allIntegURL }) { const [step, setStep] = useState(1) const [snack, setSnackbar] = useState({ show: false }) const [isLoading, setIsLoading] = useState(false) -const [webHooks, setWebHooks] = useState({ + const [webHooks, setWebHooks] = useState({ name: 'Web Hooks', type: 'Web Hooks', method: 'POST', @@ -34,8 +33,6 @@ const [webHooks, setWebHooks] = useState({
- - {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/WishlistMember/WishlistMemberAuthorization.jsx b/frontend/src/components/AllIntegrations/WishlistMember/WishlistMemberAuthorization.jsx index 78c95f6b7..192f40ed3 100644 --- a/frontend/src/components/AllIntegrations/WishlistMember/WishlistMemberAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/WishlistMember/WishlistMemberAuthorization.jsx @@ -1,7 +1,6 @@ import { useState } from 'react' import BackIcn from '../../../Icons/BackIcn' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' import { handleAuthorize, setIntegrationName } from './WishlistMemberCommonFunc' @@ -20,7 +19,7 @@ return (
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/WooCommerce/WooCommerceAuthorization.jsx b/frontend/src/components/AllIntegrations/WooCommerce/WooCommerceAuthorization.jsx index 8346579b2..5ee3c4ce2 100644 --- a/frontend/src/components/AllIntegrations/WooCommerce/WooCommerceAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/WooCommerce/WooCommerceAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function WooCommerceAuthorization({ @@ -46,7 +45,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Woodpecker/WoodpeckerAuthorization.jsx b/frontend/src/components/AllIntegrations/Woodpecker/WoodpeckerAuthorization.jsx index 51fbf9547..cc7735aa9 100644 --- a/frontend/src/components/AllIntegrations/Woodpecker/WoodpeckerAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Woodpecker/WoodpeckerAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { woodpeckerAuthentication } from './WoodpeckerCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function WoodpeckerAuthorization({ @@ -58,7 +57,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/WordPress/EditWordPress.jsx b/frontend/src/components/AllIntegrations/WordPress/EditWordPress.jsx new file mode 100644 index 000000000..f60aeb47d --- /dev/null +++ b/frontend/src/components/AllIntegrations/WordPress/EditWordPress.jsx @@ -0,0 +1,74 @@ +import { useState } from 'react' +import { useNavigate, useParams } from 'react-router' +import { useRecoilState, useRecoilValue } from 'recoil' +import { $actionConf, $formFields, $newFlow } from '../../../GlobalStates' +import { __ } from '../../../Utils/i18nwrap' +import SnackMsg from '../../Utilities/SnackMsg' +import { saveActionConf } from '../IntegrationHelpers/IntegrationHelpers' +import IntegrationStepThree from '../IntegrationHelpers/IntegrationStepThree' +import SetEditIntegComponents from '../IntegrationHelpers/SetEditIntegComponents' +import { checkMappedFields, handleInput } from './WordPressCommonFunc' +import WordPressIntegLayout from './WordPressIntegLayout' + +export default function EditWordPress({ allIntegURL }) { + const navigate = useNavigate() + const { id, formID } = useParams() + + const [wordPressConf, setWordPressConf] = useRecoilState($actionConf) + const [flow, setFlow] = useRecoilState($newFlow) + const formFields = useRecoilValue($formFields) + const [isLoading, setIsLoading] = useState(false) + const [snack, setSnackbar] = useState({ show: false }) + + return ( +
+ + +
+ {__('Integration Name:', 'bit-integrations')} + handleInput(e, wordPressConf, setWordPressConf)} + name="name" + value={wordPressConf.name} + type="text" + placeholder={__('Integration Name...', 'bit-integrations')} + /> +
+
+ + + + + + + saveActionConf({ + flow, + setFlow, + allIntegURL, + conf: wordPressConf, + navigate, + id, + edit: 1, + setIsLoading, + setSnackbar + }) + } + disabled={!checkMappedFields(wordPressConf)} + isLoading={isLoading} + dataConf={wordPressConf} + setDataConf={setWordPressConf} + formFields={formFields} + /> +
+
+ ) +} diff --git a/frontend/src/components/AllIntegrations/WordPress/WordPress.jsx b/frontend/src/components/AllIntegrations/WordPress/WordPress.jsx new file mode 100644 index 000000000..d45030075 --- /dev/null +++ b/frontend/src/components/AllIntegrations/WordPress/WordPress.jsx @@ -0,0 +1,100 @@ +import { useState } from 'react' +import { useNavigate, useParams } from 'react-router' +import BackIcn from '../../../Icons/BackIcn' +import { __ } from '../../../Utils/i18nwrap' +import SnackMsg from '../../Utilities/SnackMsg' +import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' +import IntegrationStepThree from '../IntegrationHelpers/IntegrationStepThree' +import WordPressAuthorization from './WordPressAuthorization' +import { checkMappedFields } from './WordPressCommonFunc' +import WordPressIntegLayout from './WordPressIntegLayout' + +export default function WordPress({ formFields, setFlow, flow, allIntegURL }) { + const navigate = useNavigate() + const { formID } = useParams() + const [isLoading, setIsLoading] = useState(false) + const [step, setStep] = useState(1) + const [snack, setSnackbar] = useState({ show: false }) + const [wordPressConf, setWordPressConf] = useState({ + name: 'WordPress', + type: 'WordPress', + field_map: [{ formField: '', wordPressField: '' }], + wordPressFields: [], + mainAction: '', + actions: {} + }) + + const nextPage = val => { + setTimeout(() => { + document.getElementById('btcd-settings-wrp').scrollTop = 0 + }, 300) + + if (val === 3) { + if (!wordPressConf.mainAction) { + setSnackbar({ show: true, msg: __('Please select an action to continue.', 'bit-integrations') }) + return + } + if (!checkMappedFields(wordPressConf)) { + setSnackbar({ + show: true, + msg: __('Please map all required fields to continue.', 'bit-integrations') + }) + return + } + } + setStep(val) + } + + return ( +
+ +
+ + {/* STEP 1 */} + + + {/* STEP 2 */} +
+ +
+ +
+ + {/* STEP 3 */} + + saveIntegConfig(flow, setFlow, allIntegURL, wordPressConf, navigate, '', '', setIsLoading) + } + isLoading={isLoading} + /> +
+ ) +} diff --git a/frontend/src/components/AllIntegrations/WordPress/WordPressActions.jsx b/frontend/src/components/AllIntegrations/WordPress/WordPressActions.jsx new file mode 100644 index 000000000..803fd96a9 --- /dev/null +++ b/frontend/src/components/AllIntegrations/WordPress/WordPressActions.jsx @@ -0,0 +1,147 @@ +import { create } from 'mutative' +import { __ } from '../../../Utils/i18nwrap' +import TableCheckBox from '../../Utilities/TableCheckBox' + +const appendOptionMeta = { + addTaxonomyToPost: { + title: __('Append Terms', 'bit-integrations'), + subTitle: __('Append taxonomy terms instead of replacing existing terms.', 'bit-integrations') + }, + addTagsToPost: { + title: __('Append Tags', 'bit-integrations'), + subTitle: __('Append tags instead of replacing existing tags on the post.', 'bit-integrations') + }, + addCategoryToPost: { + title: __('Append Categories', 'bit-integrations'), + subTitle: __( + 'Append categories instead of replacing existing categories on the post.', + 'bit-integrations' + ) + } +} + +const registerPostTypeUtilityOptions = [ + { + key: 'public', + title: __('Public', 'bit-integrations'), + subTitle: __('Make this post type publicly queryable.', 'bit-integrations') + }, + { + key: 'hierarchy', + title: __('Hierarchical', 'bit-integrations'), + subTitle: __('Enable hierarchical behavior for this post type.', 'bit-integrations') + }, + { + key: 'showUI', + title: __('Show UI', 'bit-integrations'), + subTitle: __('Show admin UI for managing this post type.', 'bit-integrations') + }, + { + key: 'showInMenu', + title: __('Show In Menu', 'bit-integrations'), + subTitle: __('Show this post type in the WordPress admin menu.', 'bit-integrations') + }, + { + key: 'showInNavMenu', + title: __('Show In Nav Menu', 'bit-integrations'), + subTitle: __('Allow this post type in navigation menu selection.', 'bit-integrations') + }, + { + key: 'showInAdminBar', + title: __('Show In Admin Bar', 'bit-integrations'), + subTitle: __('Show this post type in the WordPress admin bar.', 'bit-integrations') + } +] + +const registerTaxonomyUtilityOptions = [ + { + key: 'public', + title: __('Public', 'bit-integrations'), + subTitle: __('Make this taxonomy publicly queryable.', 'bit-integrations') + }, + { + key: 'adminUI', + title: __('Admin UI', 'bit-integrations'), + subTitle: __('Show admin UI for managing this taxonomy.', 'bit-integrations') + }, + { + key: 'hierarchy', + title: __('Hierarchical', 'bit-integrations'), + subTitle: __('Enable hierarchical taxonomy behavior.', 'bit-integrations') + }, + { + key: 'restApi', + title: __('Show In REST API', 'bit-integrations'), + subTitle: __('Expose taxonomy in WordPress REST API.', 'bit-integrations') + } +] + +export default function WordPressActions({ wordPressConf, setWordPressConf }) { + const mainAction = wordPressConf?.mainAction + const appendMeta = appendOptionMeta[mainAction] + const isRegisterPostTypeAction = mainAction === 'registerPostType' + const isRegisterTaxonomyAction = mainAction === 'registerTaxonomy' + const utilityOptions = isRegisterPostTypeAction + ? registerPostTypeUtilityOptions + : isRegisterTaxonomyAction + ? registerTaxonomyUtilityOptions + : [] + + if (!appendMeta && mainAction !== 'deleteMedia' && utilityOptions.length === 0) { + return null + } + + const handleOptionChange = (event, type) => { + setWordPressConf(prevConf => + create(prevConf, draftConf => { + if (event.target.checked) { + draftConf[type] = true + } else { + delete draftConf[type] + } + }) + ) + } + + return ( + <> +
+ {__('Utilities', 'bit-integrations')} +
+
+
+ {appendMeta && ( + handleOptionChange(event, 'append')} + className="wdt-200 mt-4 mr-2" + value="append" + title={appendMeta.title} + subTitle={appendMeta.subTitle} + /> + )} + {mainAction === 'deleteMedia' && ( + handleOptionChange(event, 'forceDelete')} + className="wdt-200 mt-4 mr-2" + value="forceDelete" + title={__('Force Delete', 'bit-integrations')} + subTitle={__('Permanently delete media instead of moving it to trash.', 'bit-integrations')} + /> + )} + {utilityOptions.map(utility => ( + handleOptionChange(event, utility.key)} + className="wdt-200 mt-4 mr-2" + value={utility.key} + title={utility.title} + subTitle={utility.subTitle} + /> + ))} +
+ + ) +} diff --git a/frontend/src/components/AllIntegrations/WordPress/WordPressAuthorization.jsx b/frontend/src/components/AllIntegrations/WordPress/WordPressAuthorization.jsx new file mode 100644 index 000000000..6ae9d9f75 --- /dev/null +++ b/frontend/src/components/AllIntegrations/WordPress/WordPressAuthorization.jsx @@ -0,0 +1,76 @@ +import { useState } from 'react' +import BackIcn from '../../../Icons/BackIcn' +import bitsFetch from '../../../Utils/bitsFetch' +import { __ } from '../../../Utils/i18nwrap' +import LoaderSm from '../../Loaders/LoaderSm' +import TutorialLink from '../../Utilities/TutorialLink' + +export default function WordPressAuthorization({ + wordPressConf, + setWordPressConf, + step, + nextPage, + isLoading, + setIsLoading, + setSnackbar +}) { + const [isAuthorized, setIsAuthorized] = useState(false) + + const authorizeHandler = () => { + setIsLoading('auth') + bitsFetch({}, 'wordpress_authorize').then(result => { + if (result?.success) { + setIsAuthorized(true) + setSnackbar({ show: true, msg: __('WordPress connected', 'bit-integrations') }) + } else { + setSnackbar({ show: true, msg: result?.data || __('Authorization failed', 'bit-integrations') }) + } + setIsLoading(false) + }) + } + + const handleInput = e => { + const newConf = { ...wordPressConf } + newConf[e.target.name] = e.target.value + setWordPressConf(newConf) + } + + return ( +
+ + +
+ {__('Integration Name:', 'bit-integrations')} +
+ + + + +
+ +
+ ) +} diff --git a/frontend/src/components/AllIntegrations/WordPress/WordPressCommonFunc.js b/frontend/src/components/AllIntegrations/WordPress/WordPressCommonFunc.js new file mode 100644 index 000000000..7da7b67e9 --- /dev/null +++ b/frontend/src/components/AllIntegrations/WordPress/WordPressCommonFunc.js @@ -0,0 +1,144 @@ +import { create } from 'mutative' +import { + AddCategoryToPostFields, + AddImageFields, + CategoryIdField, + CreateCategoryFields, + CreateProductCategoryFields, + CreateProductTagFields, + CreateProductTypeFields, + CreateTagFields, + CreateTermFields, + EmptyFields, + MediaIdField, + PluginPathField, + PostTypeFeaturesFields, + PostTypeField, + ProductTypeIdField, + RegisterPostTypeFields, + RegisterTaxonomyFields, + RenameMediaFields, + TagIdField, + TagsToPostFields, + TaxonomyField, + TaxonomyToPostFields, + TermIdTaxonomyFields, + UpdateCategoryFields, + UpdateProductCategoryFields, + UpdateProductTagFields, + UpdateProductTypeFields, + UpdateTagFields, + UpdateTermFields +} from './staticData' + +export const handleInput = (e, wordPressConf, setWordPressConf) => { + const { name, value } = e.target + setWordPressConf(prevConf => + create(prevConf, draftConf => { + draftConf[name] = value + }) + ) +} + +export const getFieldsForAction = action => { + switch (action) { + // Post Types + case 'registerPostType': + return RegisterPostTypeFields + case 'unregisterPostType': + return PostTypeField + case 'addPostTypeFeatures': + return PostTypeFeaturesFields + // Post Tags + case 'createPostTag': + return CreateTagFields + case 'updatePostTag': + return UpdateTagFields + case 'deletePostTag': + return TagIdField + case 'addTaxonomyToPost': + return TaxonomyToPostFields + case 'removeTaxonomyFromPost': + return TaxonomyToPostFields + case 'addTagsToPost': + return TagsToPostFields + case 'removeTagsFromPost': + return TagsToPostFields + // Media + case 'addNewImage': + return AddImageFields + case 'deleteMedia': + return MediaIdField + case 'renameMedia': + return RenameMediaFields + // Taxonomies + case 'registerTaxonomy': + return RegisterTaxonomyFields + case 'unregisterTaxonomy': + return TaxonomyField + // Terms + case 'createNewTerm': + return CreateTermFields + case 'updateTerm': + return UpdateTermFields + case 'termDelete': + return TermIdTaxonomyFields + // Categories + case 'createCategory': + return CreateCategoryFields + case 'updateCategory': + return UpdateCategoryFields + case 'deleteCategory': + return CategoryIdField + case 'addCategoryToPost': + return AddCategoryToPostFields + // WooCommerce Product Tags + case 'createProductTag': + return CreateProductTagFields + case 'updateProductTag': + return UpdateProductTagFields + case 'deleteProductTag': + return TagIdField + // WooCommerce Product Categories + case 'createProductCategory': + return CreateProductCategoryFields + case 'updateProductCategory': + return UpdateProductCategoryFields + case 'deleteProductCategory': + return CategoryIdField + // WooCommerce Product Types + case 'createProductType': + return CreateProductTypeFields + case 'updateProductType': + return UpdateProductTypeFields + case 'deleteProductType': + return ProductTypeIdField + // Plugin + case 'checkPluginActivationStatus': + return PluginPathField + case 'activatePlugin': + return PluginPathField + default: + return EmptyFields + } +} + +export const generateMappedField = fields => { + const requiredFlds = fields.filter(fld => fld.required === true) + return requiredFlds.length > 0 + ? requiredFlds.map(field => ({ formField: '', wordPressField: field.key })) + : [{ formField: '', wordPressField: '' }] +} + +export const checkMappedFields = wordPressConf => { + const mappedFields = wordPressConf?.field_map + ? wordPressConf.field_map.filter(mappedField => { + return ( + !mappedField.formField || + !mappedField.wordPressField || + (mappedField.formField === 'custom' && !mappedField.customValue) + ) + }) + : [] + return mappedFields.length === 0 +} diff --git a/frontend/src/components/AllIntegrations/WordPress/WordPressFieldMap.jsx b/frontend/src/components/AllIntegrations/WordPress/WordPressFieldMap.jsx new file mode 100644 index 000000000..89565125d --- /dev/null +++ b/frontend/src/components/AllIntegrations/WordPress/WordPressFieldMap.jsx @@ -0,0 +1,104 @@ +import { useRecoilValue } from 'recoil' +import { $appConfigState } from '../../../GlobalStates' +import { __, sprintf } from '../../../Utils/i18nwrap' +import { SmartTagField } from '../../../Utils/StaticData/SmartTagField' +import TagifyInput from '../../Utilities/TagifyInput' +import { + addFieldMap, + delFieldMap, + handleCustomValue, + handleFieldMapping +} from '../GlobalIntegrationHelper' + +export default function WordPressFieldMap({ i, formFields, field, wordPressConf, setWordPressConf }) { + const btcbi = useRecoilValue($appConfigState) + const { isPro } = btcbi + + const requiredFlds = wordPressConf?.wordPressFields?.filter(fld => fld.required === true) || [] + const nonRequiredFlds = wordPressConf?.wordPressFields?.filter(fld => fld.required === false) || [] + + return ( +
+
+
+ + + {field.formField === 'custom' && ( + handleCustomValue(e, i, wordPressConf, setWordPressConf)} + label={__('Custom Value', 'bit-integrations')} + className="mr-2" + type="text" + value={field.customValue} + placeholder={__('Custom Value', 'bit-integrations')} + formFields={formFields} + /> + )} + + +
+ {i >= requiredFlds.length && ( + <> + + + + )} +
+
+ ) +} diff --git a/frontend/src/components/AllIntegrations/WordPress/WordPressIntegLayout.jsx b/frontend/src/components/AllIntegrations/WordPress/WordPressIntegLayout.jsx new file mode 100644 index 000000000..16e41b179 --- /dev/null +++ b/frontend/src/components/AllIntegrations/WordPress/WordPressIntegLayout.jsx @@ -0,0 +1,122 @@ +import { create } from 'mutative' +import { useRecoilValue } from 'recoil' +import { $appConfigState } from '../../../GlobalStates' +import { __ } from '../../../Utils/i18nwrap' +import Loader from '../../Loaders/Loader' +import { checkIsPro, getProLabel } from '../../Utilities/ProUtilHelpers' +import { addFieldMap } from '../IntegrationHelpers/IntegrationHelpers' +import WordPressActions from './WordPressActions' +import { generateMappedField, getFieldsForAction } from './WordPressCommonFunc' +import WordPressFieldMap from './WordPressFieldMap' +import { modules } from './staticData' + +export default function WordPressIntegLayout({ + formFields, + wordPressConf, + setWordPressConf, + isLoading +}) { + const { isPro } = useRecoilValue($appConfigState) + const displayedFieldMaps = (wordPressConf?.field_map || []).reduce((acc, fieldMap, index) => { + acc.push({ fieldMap, index }) + + return acc + }, []) + + const handleMainAction = value => { + setWordPressConf(prevConf => + create(prevConf, draftConf => { + draftConf.mainAction = value + delete draftConf.append + delete draftConf.forceDelete + delete draftConf.public + delete draftConf.hierarchy + delete draftConf.showUI + delete draftConf.showInMenu + delete draftConf.showInNavMenu + delete draftConf.showInAdminBar + delete draftConf.adminUI + delete draftConf.restApi + const fields = getFieldsForAction(value) + draftConf.wordPressFields = fields + draftConf.field_map = generateMappedField(fields) + }) + ) + } + + return ( + <> +
+
+ {__('Action:', 'bit-integrations')} + +
+ + {isLoading && ( + + )} + + {wordPressConf?.mainAction && !isLoading && ( + <> +
+ {__('Map Fields', 'bit-integrations')} +
+
+
+
+ {__('Form Fields', 'bit-integrations')} +
+
+ {__('WordPress Fields', 'bit-integrations')} +
+
+ + {displayedFieldMaps.map(({ fieldMap, index }) => ( + + ))} + +
+ +
+
+ +
+ + )} +
+
+ + ) +} diff --git a/frontend/src/components/AllIntegrations/WordPress/staticData.js b/frontend/src/components/AllIntegrations/WordPress/staticData.js new file mode 100644 index 000000000..47f32a223 --- /dev/null +++ b/frontend/src/components/AllIntegrations/WordPress/staticData.js @@ -0,0 +1,417 @@ +import { __ } from '../../../Utils/i18nwrap' + +export const modules = [ + // User/Post actions moved to dedicated actions: + // - WP User Registration + // - WP Post Creation + // Post Types + { name: 'registerPostType', label: __('Register Post Type', 'bit-integrations'), is_pro: true }, + { name: 'unregisterPostType', label: __('Unregister Post Type', 'bit-integrations'), is_pro: true }, + { name: 'addPostTypeFeatures', label: __('Add Post Type Features', 'bit-integrations'), is_pro: true }, + // Post Tags + { name: 'createPostTag', label: __('Create Post Tag', 'bit-integrations'), is_pro: true }, + { name: 'updatePostTag', label: __('Update Post Tag', 'bit-integrations'), is_pro: true }, + { name: 'deletePostTag', label: __('Delete Post Tag', 'bit-integrations'), is_pro: true }, + { name: 'addTaxonomyToPost', label: __('Add Taxonomy To Post', 'bit-integrations'), is_pro: true }, + { + name: 'removeTaxonomyFromPost', + label: __('Remove Taxonomy From Post', 'bit-integrations'), + is_pro: true + }, + { name: 'addTagsToPost', label: __('Add Tags To Post', 'bit-integrations'), is_pro: true }, + { name: 'removeTagsFromPost', label: __('Remove Tags From Post', 'bit-integrations'), is_pro: true }, + // Media + { name: 'addNewImage', label: __('Add New Image', 'bit-integrations'), is_pro: true }, + { name: 'deleteMedia', label: __('Delete Media', 'bit-integrations'), is_pro: true }, + { name: 'renameMedia', label: __('Rename Media', 'bit-integrations'), is_pro: true }, + // Taxonomies + { name: 'registerTaxonomy', label: __('Register Taxonomy', 'bit-integrations'), is_pro: true }, + { name: 'unregisterTaxonomy', label: __('Unregister Taxonomy', 'bit-integrations'), is_pro: true }, + // Terms + { name: 'createNewTerm', label: __('Create New Term', 'bit-integrations'), is_pro: true }, + { name: 'updateTerm', label: __('Update Term', 'bit-integrations'), is_pro: true }, + { name: 'termDelete', label: __('Delete Term', 'bit-integrations'), is_pro: true }, + // Categories + { name: 'createCategory', label: __('Create Category', 'bit-integrations'), is_pro: true }, + { name: 'updateCategory', label: __('Update Category', 'bit-integrations'), is_pro: true }, + { name: 'deleteCategory', label: __('Delete Category', 'bit-integrations'), is_pro: true }, + { name: 'addCategoryToPost', label: __('Add Category To Post', 'bit-integrations'), is_pro: true }, + // WooCommerce Product Tags + { name: 'createProductTag', label: __('Create Product Tag', 'bit-integrations'), is_pro: true }, + { name: 'updateProductTag', label: __('Update Product Tag', 'bit-integrations'), is_pro: true }, + { name: 'deleteProductTag', label: __('Delete Product Tag', 'bit-integrations'), is_pro: true }, + // WooCommerce Product Categories + { + name: 'createProductCategory', + label: __('Create Product Category', 'bit-integrations'), + is_pro: true + }, + { + name: 'updateProductCategory', + label: __('Update Product Category', 'bit-integrations'), + is_pro: true + }, + { + name: 'deleteProductCategory', + label: __('Delete Product Category', 'bit-integrations'), + is_pro: true + }, + // WooCommerce Product Types + { name: 'createProductType', label: __('Create Product Type', 'bit-integrations'), is_pro: true }, + { name: 'updateProductType', label: __('Update Product Type', 'bit-integrations'), is_pro: true }, + { name: 'deleteProductType', label: __('Delete Product Type', 'bit-integrations'), is_pro: true }, + // Plugin Management + { + name: 'checkPluginActivationStatus', + label: __('Check Plugin Activation Status', 'bit-integrations'), + is_pro: true + }, + { name: 'activatePlugin', label: __('Activate Plugin', 'bit-integrations'), is_pro: true } +] + +// === User Fields === +export const CreateUserFields = [ + { key: 'user_login', label: __('Username', 'bit-integrations'), required: true }, + { key: 'user_email', label: __('Email', 'bit-integrations'), required: true }, + { key: 'user_pass', label: __('Password', 'bit-integrations'), required: true }, + { key: 'display_name', label: __('Display Name', 'bit-integrations'), required: false }, + { key: 'first_name', label: __('First Name', 'bit-integrations'), required: false }, + { key: 'last_name', label: __('Last Name', 'bit-integrations'), required: false }, + { key: 'user_url', label: __('Website URL', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false }, + { key: 'role', label: __('Role', 'bit-integrations'), required: false } +] + +export const UpdateUserFields = [ + { key: 'user_id', label: __('User ID', 'bit-integrations'), required: true }, + { key: 'user_email', label: __('Email', 'bit-integrations'), required: false }, + { key: 'user_pass', label: __('Password', 'bit-integrations'), required: false }, + { key: 'display_name', label: __('Display Name', 'bit-integrations'), required: false }, + { key: 'first_name', label: __('First Name', 'bit-integrations'), required: false }, + { key: 'last_name', label: __('Last Name', 'bit-integrations'), required: false }, + { key: 'user_url', label: __('Website URL', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false }, + { key: 'role', label: __('Role', 'bit-integrations'), required: false } +] + +export const UserIdField = [{ key: 'user_id', label: __('User ID', 'bit-integrations'), required: true }] + +export const UserEmailField = [ + { key: 'user_email', label: __('Email', 'bit-integrations'), required: true } +] + +export const UserByFieldFields = [ + { key: 'field', label: __('Field Name (login/email/slug/id)', 'bit-integrations'), required: true }, + { key: 'value', label: __('Field Value', 'bit-integrations'), required: true } +] + +export const UserRoleField = [{ key: 'role', label: __('Role', 'bit-integrations'), required: true }] + +export const UserMetaFields = [ + { key: 'user_id', label: __('User ID', 'bit-integrations'), required: true }, + { key: 'meta_key', label: __('Meta Key', 'bit-integrations'), required: true } +] + +export const UpdateUserMetaFields = [ + { key: 'user_id', label: __('User ID', 'bit-integrations'), required: true }, + { key: 'meta_key', label: __('Meta Key', 'bit-integrations'), required: true }, + { key: 'meta_value', label: __('Meta Value', 'bit-integrations'), required: true } +] + +// === Role Fields === +export const CreateRoleFields = [ + { key: 'role_name', label: __('Role Name (slug)', 'bit-integrations'), required: true }, + { key: 'display_name', label: __('Display Name', 'bit-integrations'), required: true }, + { + key: 'capabilities', + label: __('Capabilities (comma separated)', 'bit-integrations'), + required: false + } +] + +export const RoleNameField = [ + { key: 'role_name', label: __('Role Name', 'bit-integrations'), required: true } +] + +export const UserRoleManageFields = [ + { key: 'user_id', label: __('User ID', 'bit-integrations'), required: true }, + { key: 'role', label: __('Role', 'bit-integrations'), required: true } +] + +export const UpdateUserRoleFields = [ + { key: 'user_id', label: __('User ID', 'bit-integrations'), required: true }, + { key: 'old_role', label: __('Old Role', 'bit-integrations'), required: true }, + { key: 'new_role', label: __('New Role', 'bit-integrations'), required: true } +] + +// === Capability Fields === +export const RoleCapabilitiesFields = [ + { key: 'role_name', label: __('Role Name', 'bit-integrations'), required: true }, + { + key: 'capabilities', + label: __('Capabilities (comma separated)', 'bit-integrations'), + required: true + } +] + +export const UserCapabilitiesFields = [ + { key: 'user_id', label: __('User ID', 'bit-integrations'), required: true }, + { + key: 'capabilities', + label: __('Capabilities (comma separated)', 'bit-integrations'), + required: true + } +] + +// === Post Fields === +export const CreatePostFields = [ + { key: 'post_title', label: __('Post Title', 'bit-integrations'), required: true }, + { key: 'post_content', label: __('Post Content', 'bit-integrations'), required: false }, + { key: 'post_status', label: __('Post Status', 'bit-integrations'), required: false }, + { key: 'post_type', label: __('Post Type', 'bit-integrations'), required: false }, + { key: 'post_author', label: __('Post Author ID', 'bit-integrations'), required: false }, + { key: 'post_date', label: __('Post Date', 'bit-integrations'), required: false }, + { key: 'post_name', label: __('Post Slug', 'bit-integrations'), required: false }, + { key: 'post_excerpt', label: __('Post Excerpt', 'bit-integrations'), required: false }, + { key: 'menu_order', label: __('Menu Order', 'bit-integrations'), required: false }, + { + key: 'comment_status', + label: __('Comment Status (open/closed)', 'bit-integrations'), + required: false + }, + { key: 'featured_image_url', label: __('Featured Image URL', 'bit-integrations'), required: false }, + { key: 'post_password', label: __('Post Password', 'bit-integrations'), required: false } +] + +export const UpdatePostFields = [ + { key: 'post_id', label: __('Post ID', 'bit-integrations'), required: true }, + { key: 'post_title', label: __('Post Title', 'bit-integrations'), required: false }, + { key: 'post_content', label: __('Post Content', 'bit-integrations'), required: false }, + { key: 'post_status', label: __('Post Status', 'bit-integrations'), required: false }, + { key: 'post_type', label: __('Post Type', 'bit-integrations'), required: false }, + { key: 'post_author', label: __('Post Author ID', 'bit-integrations'), required: false }, + { key: 'post_date', label: __('Post Date', 'bit-integrations'), required: false }, + { key: 'post_name', label: __('Post Slug', 'bit-integrations'), required: false }, + { key: 'post_excerpt', label: __('Post Excerpt', 'bit-integrations'), required: false }, + { key: 'featured_image_url', label: __('Featured Image URL', 'bit-integrations'), required: false } +] + +export const PostIdField = [{ key: 'post_id', label: __('Post ID', 'bit-integrations'), required: true }] + +export const PostTypeField = [{ key: 'key', label: __('Post Type', 'bit-integrations'), required: true }] + +export const PostsByMetaFields = [ + { key: 'meta_key', label: __('Meta Key', 'bit-integrations'), required: true }, + { key: 'meta_value', label: __('Meta Value', 'bit-integrations'), required: true } +] + +export const PostMetaByKeyFields = [ + { key: 'post_id', label: __('Post ID', 'bit-integrations'), required: true }, + { key: 'meta_key', label: __('Meta Key', 'bit-integrations'), required: true } +] + +export const UpdatePostStatusFields = [ + { key: 'post_id', label: __('Post ID', 'bit-integrations'), required: true }, + { key: 'post_status', label: __('Post Status', 'bit-integrations'), required: true } +] + +// === Comment Fields === +export const CreateCommentFields = [ + { key: 'comment_post_ID', label: __('Post ID', 'bit-integrations'), required: true }, + { key: 'comment_content', label: __('Comment Content', 'bit-integrations'), required: true }, + { key: 'comment_author', label: __('Author Name', 'bit-integrations'), required: false }, + { key: 'comment_author_email', label: __('Author Email', 'bit-integrations'), required: false }, + { key: 'comment_author_url', label: __('Author URL', 'bit-integrations'), required: false }, + { key: 'comment_parent', label: __('Parent Comment ID', 'bit-integrations'), required: false } +] + +export const ReplyCommentFields = [ + { key: 'comment_parent', label: __('Parent Comment ID', 'bit-integrations'), required: true }, + { key: 'comment_content', label: __('Comment Content', 'bit-integrations'), required: true }, + { key: 'comment_post_ID', label: __('Post ID', 'bit-integrations'), required: false }, + { key: 'comment_author', label: __('Author Name', 'bit-integrations'), required: false }, + { key: 'comment_author_email', label: __('Author Email', 'bit-integrations'), required: false } +] + +export const CommentIdField = [ + { key: 'comment_id', label: __('Comment ID', 'bit-integrations'), required: true } +] + +export const CommentMetaByKeyFields = [ + { key: 'comment_id', label: __('Comment ID', 'bit-integrations'), required: true }, + { key: 'meta_key', label: __('Meta Key', 'bit-integrations'), required: true } +] + +// === Post Type Fields === +export const RegisterPostTypeFields = [ + { key: 'key', label: __('Post Type Slug', 'bit-integrations'), required: true }, + { key: 'label', label: __('Label', 'bit-integrations'), required: true }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false }, + { key: 'supports', label: __('Supports (comma separated)', 'bit-integrations'), required: false }, + { key: 'menuPosition', label: __('Menu Position', 'bit-integrations'), required: false }, + { key: 'rewriteSlug', label: __('Rewrite Slug', 'bit-integrations'), required: false } +] + +export const PostTypeFeaturesFields = [ + { key: 'key', label: __('Post Type', 'bit-integrations'), required: true }, + { key: 'supports', label: __('Features (comma separated)', 'bit-integrations'), required: true } +] + +// === Tag / Taxonomy / Term Fields === +export const CreateTagFields = [ + { key: 'name', label: __('Tag Name', 'bit-integrations'), required: true }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false } +] + +export const UpdateTagFields = [ + { key: 'termId', label: __('Tag ID', 'bit-integrations'), required: true }, + { key: 'name', label: __('Tag Name', 'bit-integrations'), required: false }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false } +] + +export const TagIdField = [{ key: 'termId', label: __('Tag ID', 'bit-integrations'), required: true }] + +export const TaxonomyToPostFields = [ + { key: 'postId', label: __('Post ID', 'bit-integrations'), required: true }, + { key: 'taxonomy', label: __('Taxonomy', 'bit-integrations'), required: true }, + { key: 'term', label: __('Term (ID or slug)', 'bit-integrations'), required: true } +] + +export const TagsToPostFields = [ + { key: 'postId', label: __('Post ID', 'bit-integrations'), required: true }, + { key: 'tags', label: __('Tags (comma separated IDs/slugs)', 'bit-integrations'), required: true } +] + +// === Media Fields === +export const AddImageFields = [ + { key: 'image_url', label: __('Image URL', 'bit-integrations'), required: true }, + { key: 'title', label: __('Title', 'bit-integrations'), required: false }, + { key: 'caption', label: __('Caption', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false }, + { key: 'altText', label: __('Alt Text', 'bit-integrations'), required: false } +] + +export const MediaIdField = [{ key: 'id', label: __('Media ID', 'bit-integrations'), required: true }] + +export const RenameMediaFields = [ + { key: 'id', label: __('Media ID', 'bit-integrations'), required: true }, + { key: 'title', label: __('New Title', 'bit-integrations'), required: true } +] + +export const MediaTitleField = [{ key: 'title', label: __('Title', 'bit-integrations'), required: true }] + +// === Taxonomy Fields === +export const TaxonomyField = [{ key: 'slug', label: __('Taxonomy', 'bit-integrations'), required: true }] + +export const RegisterTaxonomyFields = [ + { key: 'slug', label: __('Taxonomy Slug', 'bit-integrations'), required: true }, + { key: 'postTypes', label: __('Post Types (comma separated)', 'bit-integrations'), required: true }, + { key: 'name', label: __('Label', 'bit-integrations'), required: true }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false }, + { key: 'rewriteSlug', label: __('Rewrite Slug', 'bit-integrations'), required: false } +] + +// === Term Fields === +export const TermIdTaxonomyFields = [ + { key: 'termId', label: __('Term ID', 'bit-integrations'), required: true }, + { key: 'taxonomy', label: __('Taxonomy', 'bit-integrations'), required: true } +] + +export const TermByFieldFields = [ + { key: 'field', label: __('Field (id/name/slug)', 'bit-integrations'), required: true }, + { key: 'value', label: __('Value', 'bit-integrations'), required: true }, + { key: 'taxonomy', label: __('Taxonomy', 'bit-integrations'), required: true } +] + +export const CreateTermFields = [ + { key: 'name', label: __('Term Name', 'bit-integrations'), required: true }, + { key: 'taxonomy', label: __('Taxonomy', 'bit-integrations'), required: true }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false } +] + +export const UpdateTermFields = [ + { key: 'termId', label: __('Term ID', 'bit-integrations'), required: true }, + { key: 'taxonomy', label: __('Taxonomy', 'bit-integrations'), required: true }, + { key: 'name', label: __('Term Name', 'bit-integrations'), required: false }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false } +] + +// === Category Fields === +export const CreateCategoryFields = [ + { key: 'name', label: __('Category Name', 'bit-integrations'), required: true }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false } +] + +export const UpdateCategoryFields = [ + { key: 'termId', label: __('Category ID', 'bit-integrations'), required: true }, + { key: 'name', label: __('Category Name', 'bit-integrations'), required: false }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false } +] + +export const CategoryIdField = [ + { key: 'termId', label: __('Category ID', 'bit-integrations'), required: true } +] + +export const AddCategoryToPostFields = [ + { key: 'postId', label: __('Post ID', 'bit-integrations'), required: true }, + { + key: 'categories', + label: __('Category IDs (comma separated)', 'bit-integrations'), + required: true + } +] + +// === WooCommerce Tag/Category/Type Fields === +export const CreateProductTagFields = [ + { key: 'name', label: __('Tag Name', 'bit-integrations'), required: true }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false } +] + +export const UpdateProductTagFields = [ + { key: 'termId', label: __('Tag ID', 'bit-integrations'), required: true }, + { key: 'name', label: __('Tag Name', 'bit-integrations'), required: false }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false } +] + +export const CreateProductCategoryFields = [ + { key: 'name', label: __('Category Name', 'bit-integrations'), required: true }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false } +] + +export const UpdateProductCategoryFields = [ + { key: 'termId', label: __('Category ID', 'bit-integrations'), required: true }, + { key: 'name', label: __('Category Name', 'bit-integrations'), required: false }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false } +] + +export const CreateProductTypeFields = [ + { key: 'name', label: __('Type Name', 'bit-integrations'), required: true }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false } +] + +export const UpdateProductTypeFields = [ + { key: 'termId', label: __('Type ID', 'bit-integrations'), required: true }, + { key: 'name', label: __('Type Name', 'bit-integrations'), required: false }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false } +] + +export const ProductTypeIdField = [ + { key: 'termId', label: __('Type ID', 'bit-integrations'), required: true } +] + +// === Plugin Fields === +export const PluginPathField = [ + { key: 'pluginFile', label: __('Plugin Path (folder/file.php)', 'bit-integrations'), required: true } +] + +export const EmptyFields = [] diff --git a/frontend/src/components/AllIntegrations/ZagoMail/ZagoMailAuthorization.jsx b/frontend/src/components/AllIntegrations/ZagoMail/ZagoMailAuthorization.jsx index 9288dce80..5a5f27ba9 100644 --- a/frontend/src/components/AllIntegrations/ZagoMail/ZagoMailAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ZagoMail/ZagoMailAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { refreshZagoMailList } from './ZagoMailCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZagoMailAuthorization({ @@ -77,7 +76,7 @@ const [isAuthorized, setisAuthorized] = useState(false)
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Zapier/Zapier.jsx b/frontend/src/components/AllIntegrations/Zapier/Zapier.jsx index 8a63514f0..4f68dbb94 100644 --- a/frontend/src/components/AllIntegrations/Zapier/Zapier.jsx +++ b/frontend/src/components/AllIntegrations/Zapier/Zapier.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function Zapier({ formFields, setFlow, flow, allIntegURL }) { @@ -34,7 +33,7 @@ const [zapier, setZapier] = useState({
- + {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ZohoAnalytics/ZohoAnalyticsAuthorization.jsx b/frontend/src/components/AllIntegrations/ZohoAnalytics/ZohoAnalyticsAuthorization.jsx index 68ede7a52..81f8a2a08 100644 --- a/frontend/src/components/AllIntegrations/ZohoAnalytics/ZohoAnalyticsAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ZohoAnalytics/ZohoAnalyticsAuthorization.jsx @@ -5,7 +5,6 @@ import CopyText from '../../Utilities/CopyText' import LoaderSm from '../../Loaders/LoaderSm' import { handleAuthorize, refreshWorkspaces } from './ZohoAnalyticsCommonFunc' import BackIcn from '../../../Icons/BackIcn' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZohoAnalyticsAuthorization({ @@ -56,7 +55,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ZohoBigin/ZohoBiginAuthorization.jsx b/frontend/src/components/AllIntegrations/ZohoBigin/ZohoBiginAuthorization.jsx index 37eb5f680..229a5b4fb 100644 --- a/frontend/src/components/AllIntegrations/ZohoBigin/ZohoBiginAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ZohoBigin/ZohoBiginAuthorization.jsx @@ -7,7 +7,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleAuthorize } from '../IntegrationHelpers/IntegrationHelpers' import { refreshModules } from './ZohoBiginCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZohoBiginAuthorization({ @@ -48,7 +47,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ZohoCRM/ZohoCRMAuthorization.jsx b/frontend/src/components/AllIntegrations/ZohoCRM/ZohoCRMAuthorization.jsx index 849c8cacc..0ae96a010 100644 --- a/frontend/src/components/AllIntegrations/ZohoCRM/ZohoCRMAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ZohoCRM/ZohoCRMAuthorization.jsx @@ -6,7 +6,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import { refreshModules } from './ZohoCRMCommonFunc' import { handleAuthorize } from '../IntegrationHelpers/IntegrationHelpers' import { $appConfigState } from '../../../GlobalStates' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZohoCRMAuthorization({ @@ -46,7 +45,7 @@ const scopes = 'ZohoCRM.modules.ALL,ZohoCRM.settings.ALL,ZohoCRM.users.Read,zoho
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ZohoCampaigns/ZohoCampaignsAuthorization.jsx b/frontend/src/components/AllIntegrations/ZohoCampaigns/ZohoCampaignsAuthorization.jsx index 57f3724b2..11004b841 100644 --- a/frontend/src/components/AllIntegrations/ZohoCampaigns/ZohoCampaignsAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ZohoCampaigns/ZohoCampaignsAuthorization.jsx @@ -7,7 +7,6 @@ import { refreshLists } from './ZohoCampaignsCommonFunc' import BackIcn from '../../../Icons/BackIcn' import { $appConfigState } from '../../../GlobalStates' import { handleAuthorize } from '../IntegrationHelpers/IntegrationHelpers' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZohoCampaignsAuthorization({ @@ -47,7 +46,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ZohoCreator/ZohoCreatorAuthorization.jsx b/frontend/src/components/AllIntegrations/ZohoCreator/ZohoCreatorAuthorization.jsx index a6c5376c1..1763c7a36 100644 --- a/frontend/src/components/AllIntegrations/ZohoCreator/ZohoCreatorAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ZohoCreator/ZohoCreatorAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleAuthorize, refreshApplications } from './ZohoCreatorCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZohoCreatorAuthorization({ @@ -53,7 +52,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ZohoDesk/ZohoDeskAuthorization.jsx b/frontend/src/components/AllIntegrations/ZohoDesk/ZohoDeskAuthorization.jsx index 169b06c62..6e781f1e9 100644 --- a/frontend/src/components/AllIntegrations/ZohoDesk/ZohoDeskAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ZohoDesk/ZohoDeskAuthorization.jsx @@ -7,7 +7,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleAuthorize } from '../IntegrationHelpers/IntegrationHelpers' import { refreshOrganizations } from './ZohoDeskCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZohoDeskAuthorization({ @@ -48,7 +47,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ZohoFlow/ZohoFlow.jsx b/frontend/src/components/AllIntegrations/ZohoFlow/ZohoFlow.jsx index aba308c35..cd19b6e64 100644 --- a/frontend/src/components/AllIntegrations/ZohoFlow/ZohoFlow.jsx +++ b/frontend/src/components/AllIntegrations/ZohoFlow/ZohoFlow.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksLayouts from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function ZohoFlow({ formFields, setFlow, flow, allIntegURL }) { @@ -35,7 +34,7 @@ const [zohoFlow, setZohoFlow] = useState({
- + {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ZohoRecruit/ZohoRecruitAuthorization.jsx b/frontend/src/components/AllIntegrations/ZohoRecruit/ZohoRecruitAuthorization.jsx index 2b4d320bb..f81c23824 100644 --- a/frontend/src/components/AllIntegrations/ZohoRecruit/ZohoRecruitAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ZohoRecruit/ZohoRecruitAuthorization.jsx @@ -7,7 +7,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleAuthorize } from '../IntegrationHelpers/IntegrationHelpers' import { refreshModules } from './ZohoRecruitCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZohoRecruitAuthorization({ @@ -47,7 +46,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ZohoSheet/ZohoSheetAuthorization.jsx b/frontend/src/components/AllIntegrations/ZohoSheet/ZohoSheetAuthorization.jsx index 35622d44b..006d2ba89 100644 --- a/frontend/src/components/AllIntegrations/ZohoSheet/ZohoSheetAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ZohoSheet/ZohoSheetAuthorization.jsx @@ -7,7 +7,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { $appConfigState } from '../../../GlobalStates' import { handleAuthorization } from './ZohoSheetCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZohoSheetAuthorization({ @@ -46,7 +45,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Zoom/ZoomAuthorization.jsx b/frontend/src/components/AllIntegrations/Zoom/ZoomAuthorization.jsx index e9086a353..3a0b38533 100644 --- a/frontend/src/components/AllIntegrations/Zoom/ZoomAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Zoom/ZoomAuthorization.jsx @@ -7,7 +7,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import Note from '../../Utilities/Note' import { handleAuthorize, zoomAllMeeting } from './ZoomCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZoomAuthorization({ @@ -60,7 +59,7 @@ const handleInput = e => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ZoomWebinar/ZoomWebinarAuthorization.jsx b/frontend/src/components/AllIntegrations/ZoomWebinar/ZoomWebinarAuthorization.jsx index a9e2cac0f..ccf6e91be 100644 --- a/frontend/src/components/AllIntegrations/ZoomWebinar/ZoomWebinarAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ZoomWebinar/ZoomWebinarAuthorization.jsx @@ -7,7 +7,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import Note from '../../Utilities/Note' import { handleAuthorize, zoomAllWebinar } from './ZoomCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZoomWebinarAuthorization({ @@ -59,7 +58,7 @@ const handleInput = e => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/Flow/New/SelectAction.jsx b/frontend/src/components/Flow/New/SelectAction.jsx index 0ffdaa1aa..aa9bfebf2 100644 --- a/frontend/src/components/Flow/New/SelectAction.jsx +++ b/frontend/src/components/Flow/New/SelectAction.jsx @@ -44,7 +44,7 @@ export default function SelectAction() { { type: 'Google Calendar' }, { type: 'Pods' }, { type: 'Zoho Flow' }, - { type: 'WP User Registration' }, + { type: 'WP User Registration', logo: 'registration' }, { type: 'Mail Poet' }, { type: 'Brevo(SendinBlue)', logo: 'brevo' }, { type: 'Telegram' }, @@ -177,6 +177,7 @@ export default function SelectAction() { { type: 'MailerPress' }, { type: 'CreatorLms' }, { type: 'FluentCart' }, + { type: 'WordPress' }, { type: 'PeepSo' }, { type: 'Ninja Tables' }, { type: 'WC Affiliate' }, diff --git a/frontend/src/components/Triggers/ActionHook.jsx b/frontend/src/components/Triggers/ActionHook.jsx index 69bd405b9..07f3593fe 100644 --- a/frontend/src/components/Triggers/ActionHook.jsx +++ b/frontend/src/components/Triggers/ActionHook.jsx @@ -37,6 +37,12 @@ const ActionHook = () => { const [snack, setSnackbar] = useState({ show: false }) const [showResponse, setShowResponse] = useState(false) const isFetchingRef = useRef(false) + const actionHookTutorialLinks = { + actionHook: { + docLink: 'https://bitapps.pro/docs/bit-integrations/trigger/action-hook-integrations', + youTubeLink: 'https://youtu.be/pZ-8JuZfIco?si=Xxv857hJjv6p5Tcu' + } + } let controller = new AbortController() const signal = controller.signal @@ -338,14 +344,8 @@ const ActionHook = () => {
)} - - + +
) @@ -386,4 +386,4 @@ const info = `

${sprintf( 'Bit Integrations Trigger Hooks', 'bit-integrations' )} -

` \ No newline at end of file + ` diff --git a/frontend/src/components/Triggers/CustomFormSubmission.jsx b/frontend/src/components/Triggers/CustomFormSubmission.jsx index 7b852ead4..7a5b683bf 100644 --- a/frontend/src/components/Triggers/CustomFormSubmission.jsx +++ b/frontend/src/components/Triggers/CustomFormSubmission.jsx @@ -33,6 +33,15 @@ const CustomFormSubmission = () => { const [snack, setSnackbar] = useState({ show: false }) const [showResponse, setShowResponse] = useState(false) const isFetchingRef = useRef(false) + const triggerLinkKey = newFlow?.triggered_entity + const triggerTutorialLinks = triggerLinkKey + ? { + [triggerLinkKey]: { + docLink: newFlow?.triggerDetail?.documentation_url || '', + youTubeLink: newFlow?.triggerDetail?.tutorial_url || '' + } + } + : undefined let controller = new AbortController() const signal = controller.signal @@ -318,13 +327,11 @@ const CustomFormSubmission = () => { )}
- +
@@ -362,4 +369,3 @@ const info = newFlow => `

${sprintf( ? `

Note

${newFlow?.triggerDetail?.note}` : '' }` - diff --git a/frontend/src/components/Triggers/CustomTrigger.jsx b/frontend/src/components/Triggers/CustomTrigger.jsx index 82fc7a7dc..564a07aba 100644 --- a/frontend/src/components/Triggers/CustomTrigger.jsx +++ b/frontend/src/components/Triggers/CustomTrigger.jsx @@ -30,6 +30,15 @@ const CustomTrigger = () => { const [snack, setSnackbar] = useState({ show: false }) const [showResponse, setShowResponse] = useState(false) const isFetchingRef = useRef(false) + const triggerLinkKey = newFlow?.triggered_entity + const triggerTutorialLinks = triggerLinkKey + ? { + [triggerLinkKey]: { + docLink: newFlow?.triggerDetail?.documentation_url || '', + youTubeLink: newFlow?.triggerDetail?.tutorial_url || '' + } + } + : undefined let controller = new AbortController() const signal = controller.signal @@ -212,8 +221,9 @@ const CustomTrigger = () => {
)} - +
@@ -279,9 +287,9 @@ const info = `

${sprintf( )}

  • ${__( - 'Copy the do action hook snippet and paste it into your form submission function.', - 'bit-integrations' -)}
  • + 'Copy the do action hook snippet and paste it into your form submission function.', + 'bit-integrations' + )}
  • ${__('Click Fetch.', 'bit-integrations')}
  • ${__('Submit the form to send test data.', 'bit-integrations')}
  • ${__('Select the fields you need, then click Set Action.', 'bit-integrations')}
  • diff --git a/frontend/src/components/Triggers/FormPlugin.jsx b/frontend/src/components/Triggers/FormPlugin.jsx index f605b10ed..738884302 100644 --- a/frontend/src/components/Triggers/FormPlugin.jsx +++ b/frontend/src/components/Triggers/FormPlugin.jsx @@ -23,6 +23,15 @@ const FormPlugin = () => { const [isLoad, setIsLoad] = useState(false) const btcbi = useRecoilValue($appConfigState) const { isPro } = btcbi + const triggerLinkKey = newFlow?.triggered_entity + const triggerTutorialLinks = triggerLinkKey + ? { + [triggerLinkKey]: { + docLink: newFlow?.triggerDetail?.documentation_url || '', + youTubeLink: newFlow?.triggerDetail?.tutorial_url || '' + } + } + : undefined const { data, isLoading } = useFetch({ payload: {}, @@ -148,19 +157,16 @@ const FormPlugin = () => { )}
- ) - } -
+ )} +
) } export default FormPlugin @@ -175,7 +181,8 @@ const info = newFlow => `

${sprintf(
  • ${__('Choose the form or task you want to use.', 'bit-integrations')}
  • ${__('Click Next to Go.', 'bit-integrations')}
  • - ${newFlow?.triggerDetail?.note - ? `

    ${__('Note', 'bit-integrations')}

    ${newFlow?.triggerDetail?.note}` - : '' - }` + ${ + newFlow?.triggerDetail?.note + ? `

    ${__('Note', 'bit-integrations')}

    ${newFlow?.triggerDetail?.note}` + : '' + }` diff --git a/frontend/src/components/Triggers/Webhook.jsx b/frontend/src/components/Triggers/Webhook.jsx index a594c68b2..cf2faae07 100644 --- a/frontend/src/components/Triggers/Webhook.jsx +++ b/frontend/src/components/Triggers/Webhook.jsx @@ -26,6 +26,15 @@ const Webhook = () => { const { api } = useRecoilValue($appConfigState) const [showResponse, setShowResponse] = useState(false) const intervalRef = useRef(null) + const triggerLinkKey = newFlow?.triggered_entity + const triggerTutorialLinks = triggerLinkKey + ? { + [triggerLinkKey]: { + docLink: newFlow?.triggerDetail?.documentation_url || '', + youTubeLink: newFlow?.triggerDetail?.tutorial_url || '' + } + } + : undefined let controller = new AbortController() const signal = controller.signal const setTriggerData = () => { @@ -164,13 +173,11 @@ const Webhook = () => {
    - +
    @@ -190,20 +197,20 @@ const info = `${__(

    ${__('Quick Setup', 'bit-integrations')}

    • ${__( - 'Copy the Webhook URL and add it to your form or app.', - 'bit-integrations' -)}
    • + 'Copy the Webhook URL and add it to your form or app.', + 'bit-integrations' + )}
    • ${__( - 'Click Fetch, then submit your form (or send a test request).', - 'bit-integrations' -)}
    • + 'Click Fetch, then submit your form (or send a test request).', + 'bit-integrations' + )}
    • ${__( - 'When response data appears, click Set Action to continue.', - 'bit-integrations' -)}
    • + 'When response data appears, click Set Action to continue.', + 'bit-integrations' + )}

    ${__('Important', 'bit-integrations')}: ${__( - 'The Fetch button will keep spinning until you submit the form/task.', - 'bit-integrations' -)}

    + 'The Fetch button will keep spinning until you submit the form/task.', + 'bit-integrations' + )}

    ` diff --git a/frontend/src/components/Utilities/TutorialLink.jsx b/frontend/src/components/Utilities/TutorialLink.jsx index 6444f2e60..2a90718b9 100644 --- a/frontend/src/components/Utilities/TutorialLink.jsx +++ b/frontend/src/components/Utilities/TutorialLink.jsx @@ -8,6 +8,7 @@ import GrokIcn from '../../Icons/GrokIcn' import PerplexityIcn from '../../Icons/PerplexityIcn' import YoutubeIcn from '../../Icons/YoutubeIcn' import { __, sprintf } from '../../Utils/i18nwrap' +import tutorialLinks from '../../Utils/StaticData/tutorialLinks' const aiTools = [ { @@ -42,7 +43,8 @@ const aiTools = [ } ] -function TutorialLink({ title, subtitle, links, style }) { +function TutorialLink({ subtitle, linkKey, style, linksMap }) { + const links = linkKey ? linksMap?.[linkKey] || tutorialLinks?.[linkKey] || {} : {} const youTubeLink = links?.youTubeLink && links.youTubeLink !== '#' ? links.youTubeLink : undefined const docLink = links?.docLink && links.docLink !== '#' ? links.docLink : undefined const [showAiTools, setShowAiTools] = useState(false) @@ -90,7 +92,7 @@ function TutorialLink({ title, subtitle, links, style }) { const encodedPrompt = encodeURIComponent(aiSummaryPrompt) return ( -
    +
    {youTubeLink && ( diff --git a/frontend/src/resource/img/integ/registration.webp b/frontend/src/resource/img/integ/registration.webp index 5b83ee493..c16b919cf 100644 Binary files a/frontend/src/resource/img/integ/registration.webp and b/frontend/src/resource/img/integ/registration.webp differ diff --git a/frontend/src/resource/img/integ/wordPress.webp b/frontend/src/resource/img/integ/wordPress.webp new file mode 100644 index 000000000..5b83ee493 Binary files /dev/null and b/frontend/src/resource/img/integ/wordPress.webp differ