diff --git a/assets/css/admin.scss b/assets/css/admin.scss index 088b26c26..0feaaf131 100644 --- a/assets/css/admin.scss +++ b/assets/css/admin.scss @@ -9274,6 +9274,7 @@ &--field { flex: 2; } + } } @@ -9532,7 +9533,7 @@ .ps__rail { &-x { - display: none; + display: none; } } } @@ -9583,13 +9584,13 @@ display: flex; align-items: center; gap: 6px; - + .evf-toggle-section { .everest-forms-toggle-form { margin: 0; } } - + .everest-forms-toggle-text { font-size: 14px; line-height: 24px; @@ -9697,6 +9698,8 @@ } } + + fieldset { > label { font-size: 14px; @@ -9960,6 +9963,74 @@ height: 14px; } } + .everest-forms-custom-image-delete , .evf-image-container { + + object-fit: cover; + display: inline-flex; + position: relative; + border-radius: 8px; + height: 100px; + width: auto; + overflow: hidden; + object-fit: cover; + object-position: center; + margin:auto; + display: inline-flex; + position: relative; + justify-content: center; + cursor: pointer; + user-select: none; + + i { + display: none; + } + + &:hover { + &::before { + content: ""; + background: #000; + position: absolute; + width: 100%; + height: 100%; + opacity: 0.6; + } + + i { + position: absolute; + display: contents; + + &:hover { + &::before, + &::after { + transform: translate(-50%, -50%) scale(1.1); + } + } + + &::before { + content: ""; + background: #d52626; + width: 42px; + height: 42px; + position: absolute; + border-radius: 50%; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + } + + &::after { + content: "\e907"; + position: absolute; + font-size: 22px; + color: #fff; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + } + } + } + + } } } } @@ -10148,4 +10219,4 @@ left: 435px !important; } } -} \ No newline at end of file +} diff --git a/assets/extensions-json/sections/all_extensions.json b/assets/extensions-json/sections/all_extensions.json index 46f043a6b..3a0d51240 100644 --- a/assets/extensions-json/sections/all_extensions.json +++ b/assets/extensions-json/sections/all_extensions.json @@ -288,23 +288,6 @@ "demo_video_url": "WCsHC7NQ2QQ", "popular_rank": 16 }, - { - "title": "ConvertKit", - "slug": "everest-forms-convertkit", - "name": "Everest Forms ConvertKit", - "image": "extensions-json/sections/images/convertkit.png", - "excerpt": "Allows you to efficiently grow your business by generating more leads with ConvertKit. It also helps increase automated emails for better lead generation.", - "link": "https://docs.everestforms.net/docs/convertkit/?utm_source=dashboard-all-feature&utm_medium=card-documentation-link", - "released_date": "10/08/2018", - "plan": [ - "personal", - "agency", - "themegrill agency" - ], - "setting_url": "admin.php?page=evf-settings&tab=integration§ion=convertkit", - "demo_video_url": "GvqPVCK7Ws8", - "popular_rank": 17 - }, { "title": "Post Submissions", "slug": "everest-forms-post-submissions", @@ -389,7 +372,6 @@ "setting_url": "admin.php?page=evf-settings&tab=integration§ion=sms_notifications", "demo_video_url": "tz4UKBX9WxM", "popular_rank": 22 - }, { "title": "Cloud Storage", @@ -425,23 +407,6 @@ "demo_video_url": "GSYQIiyntW0", "popular_rank": 24 }, - { - "title": "Sendinblue", - "slug": "everest-forms-sendinblue", - "name": "Everest Forms Sendinblue", - "image": "extensions-json/sections/images/sendinblue.png", - "excerpt": "Allows your users to subscribe to Sendinblue through form submissions. Users filling up the forms can be directly added to your subscribers list in Sendinblue.", - "link": "https://docs.everestforms.net/docs/sendinblue/?utm_source=dashboard-all-feature&utm_medium=card-documentation-link", - "released_date": "26/09/2022", - "plan": [ - "personal", - "agency", - "themegrill agency" - ], - "setting_url": "admin.php?page=evf-settings&tab=integration§ion=sendinblue", - "demo_video_url": "NRRDY1ag6Sk", - "popular_rank": 26 - }, { "title": "ActiveCampaign", "slug": "everest-forms-activecampaign", @@ -543,23 +508,6 @@ "demo_video_url": "1VsyUu4NAhk", "popular_rank": 30 }, - { - "title": "Pipedrive", - "slug": "everest-forms-pipedrive", - "name": "Everest Forms Pipedrive", - "image": "extensions-json/sections/images/pipedrive.png", - "excerpt": "Everest Forms Pipedrive CRM add-on is a WordPress Pipedrive CRM integration plugin that allows you to easily send Everest Forms entries directly to your Pipedrive CRM account. ", - "link": "https://docs.everestforms.net/docs/pipedrive/?utm_source=dashboard-all-feature&utm_medium=card-documentation-link", - "released_date": "15/06/2022", - "plan": [ - "personal", - "agency", - "themegrill agency" - ], - "setting_url": "admin.php?page=evf-settings&tab=integration§ion=pipedrive", - "demo_video_url": "wJPX0EJ2OiI", - "popular_rank": 32 - }, { "title": "Authorize.Net", "slug": "everest-forms-authorize-net", @@ -577,23 +525,6 @@ "demo_video_url": "a5EcKjwWD1A", "popular_rank": 31 }, - { - "title": "Constant Contact", - "slug": "everest-forms-constant-contact", - "name": "Everest Forms Constant Contact", - "image": "extensions-json/sections/images/constant-contact.png", - "excerpt": "Everest Forms Constant Contact add-on is a WordPress Constant Contact integration plugin that allows you to easily send Everest Forms entries directly to your Constant Contact account. ", - "link": "https://docs.everestforms.net/docs/constant-contact/?utm_source=dashboard-all-feature&utm_medium=card-documentation-link", - "released_date": "31/08/2022", - "plan": [ - "personal", - "agency", - "themegrill agency" - ], - "setting_url": "admin.php?page=evf-settings&tab=integration§ion=constant_contact", - "demo_video_url": "dCeW1GW6-YI", - "popular_rank": 33 - }, { "title": "Drip", "slug": "everest-forms-drip", @@ -644,23 +575,6 @@ "setting_url": "admin.php?page=evf-settings&tab=integration§ion=zoho", "demo_video_url": "sfHFiUIHpg0", "popular_rank": 34 - }, - { - "title": "GetResponse", - "slug": "everest-forms-getresponse", - "name": "Everest Forms GetResponse", - "image": "extensions-json/sections/images/getresponse.png", - "excerpt": "Allows your users to subscribe to GetResponse through form submissions. Users filling up the forms can be directly added to your subscribers list in GetResponse.", - "link": "https://docs.everestforms.net/docs/getresponse/?utm_source=dashboard-all-feature&utm_medium=card-documentation-link", - "released_date": "26/09/2022", - "plan": [ - "personal", - "agency", - "themegrill agency" - ], - "setting_url": "admin.php?page=evf-settings&tab=integration§ion=getresponse", - "demo_video_url": "Jhq1dOFXV-I", - "popular_rank": 37 } ], "features": [ @@ -747,7 +661,7 @@ { "title": "OnePageCRM", "slug": "everest-forms-onepagecrm", - "name": "Everest Forms- Mailpoet", + "name": "Everest Forms- OnePageCRM", "image": "extensions-json/sections/images/onepagecrm.webp", "excerpt": "OnePageCRM for Everest Forms helps you to easily send Everest Forms entries directly to your OnePageCRM customer relation account.", "link": "https://docs.everestforms.net/docs/onepagecrm/?utm_source=dashboard-all-features&utm_medium=card-documentation-link", @@ -760,6 +674,139 @@ "setting_url": "admin.php?page=evf-settings&tab=integration§ion=onepagecrm", "demo_video_url": "42EUj-Dlnr0" }, + { + "title": "Telegram", + "slug": "everest-forms-telegram", + "name": "Everest Forms Telegram", + "image": "extensions-json/sections/images/telegram.webp", + "excerpt": "Telegram integration for Everest Forms! Easily integrate this popular messaging platform with Everest Forms to offer your users a smooth and efficient interaction experience.", + "link": "https://docs.everestforms.net/docs/telegram/?utm_source=dashboard-all-feature&utm_medium=card-documentation-link", + "released_date": "xx/xx/2024", + "plan": [ + "personal", + "agency", + "themegrill agency" + ], + "setting_url": "admin.php?page=evf-settings&tab=integration§ion=telegram", + "demo_video_url": "" + }, + { + "title": "Brevo", + "slug": "everest-forms-brevo", + "name": "Everest Forms Brevo", + "image": "extensions-json/sections/images/brevo.webp", + "excerpt": "Connect newsletters, SMTP, marketing automation, and all your CRM tools in one place with Brevo integration (formerly Sendinblue) for Everest Forms.", + "link": "https://docs.everestforms.net/docs/sendinblue/?utm_source=dashboard-all-feature&utm_medium=card-documentation-link", + "released_date": "26/09/2022", + "plan": [ + "personal", + "agency", + "themegrill agency" + ], + "setting_url": "admin.php?page=evf-settings&tab=integration§ion=sendinblue", + "demo_video_url": "NRRDY1ag6Sk", + "popular_rank": 26 + }, + { + "title": "Drip", + "slug": "everest-forms-drip", + "name": "Everest Forms Drip", + "image": "extensions-json/sections/images/drip.png", + "excerpt": "With the Everest Forms Drip add-on, you can effortlessly create an unlimited number of newsletter signup forms and connect them to Drip.", + "link": "https://docs.everestforms.net/docs/drip/?utm_source=dashboard-all-feature&utm_medium=card-documentation-link", + "released_date": "15/06/2022", + "plan": [ + "personal", + "agency", + "themegrill agency" + ], + "setting_url": "admin.php?page=evf-settings&tab=integration§ion=drip", + "demo_video_url": "ODRxkfX6y9Q", + "popular_rank": 35 + }, + { + "title": "ConvertKit", + "slug": "everest-forms-convertkit", + "name": "Everest Forms ConvertKit", + "image": "extensions-json/sections/images/convertkit.png", + "excerpt": "Allows you to efficiently grow your business by generating more leads with ConvertKit. It also helps increase automated emails for better lead generation.", + "link": "https://docs.everestforms.net/docs/convertkit/?utm_source=dashboard-all-feature&utm_medium=card-documentation-link", + "released_date": "10/08/2018", + "plan": [ + "personal", + "agency", + "themegrill agency" + ], + "setting_url": "admin.php?page=evf-settings&tab=integration§ion=convertkit", + "demo_video_url": "GvqPVCK7Ws8", + "popular_rank": 17 + }, + { + "title": "GetResponse", + "slug": "everest-forms-getresponse", + "name": "Everest Forms GetResponse", + "image": "extensions-json/sections/images/getresponse.png", + "excerpt": "Allows your users to subscribe to GetResponse through form submissions. Users filling up the forms can be directly added to your subscribers list in GetResponse.", + "link": "https://docs.everestforms.net/docs/getresponse/?utm_source=dashboard-all-feature&utm_medium=card-documentation-link", + "released_date": "26/09/2022", + "plan": [ + "personal", + "agency", + "themegrill agency" + ], + "setting_url": "admin.php?page=evf-settings&tab=integration§ion=getresponse", + "demo_video_url": "Jhq1dOFXV-I" + }, + { + "title": "Salesflare", + "slug": "everest-forms-salesflare", + "name": "Everest Forms- Salesflare", + "image": "extensions-json/sections/images/Salesflare.webp", + "excerpt": "Boost your B2B business efficiency with Salesflare's simple and powerful CRM solution, now fully integrated with Everest Forms.", + "link": "https://docs.everestforms.net/docs/salesflare/?utm_source=dashboard-all-features&utm_medium=card-documentation-link", + "released_date": "20/05/2024", + "plan": [ + "personal", + "agency", + "themegrill agency" + ], + "setting_url": "admin.php?page=evf-settings&tab=integration§ion=salesflare", + "demo_video_url": "" + }, + { + "title": "Constant Contact", + "slug": "everest-forms-constant-contact", + "name": "Everest Forms Constant Contact", + "image": "extensions-json/sections/images/constant-contact.png", + "excerpt": "Everest Forms Constant Contact add-on is a WordPress Constant Contact integration plugin that allows you to easily send Everest Forms entries directly to your Constant Contact account. ", + "link": "https://docs.everestforms.net/docs/constant-contact/?utm_source=dashboard-all-feature&utm_medium=card-documentation-link", + "released_date": "31/08/2022", + "plan": [ + "personal", + "agency", + "themegrill agency" + ], + "setting_url": "admin.php?page=evf-settings&tab=integration§ion=constant_contact", + "demo_video_url": "dCeW1GW6-YI", + "popular_rank": 33 + }, + { + "title": "Pipedrive", + "slug": "everest-forms-pipedrive", + "name": "Everest Forms Pipedrive", + "image": "extensions-json/sections/images/pipedrive.png", + "excerpt": "Everest Forms Pipedrive CRM add-on is a WordPress Pipedrive CRM integration plugin that allows you to easily send Everest Forms entries directly to your Pipedrive CRM account. ", + "link": "https://docs.everestforms.net/docs/pipedrive/?utm_source=dashboard-all-feature&utm_medium=card-documentation-link", + "released_date": "15/06/2022", + "plan": [ + "personal", + "agency", + "themegrill agency" + ], + "setting_url": "admin.php?page=evf-settings&tab=integration§ion=pipedrive", + "demo_video_url": "wJPX0EJ2OiI", + "popular_rank": 32 + }, { "title": "Square", "slug": "everest-forms-square", @@ -774,7 +821,7 @@ "themegrill agency" ], "setting_url": "admin.php?page=evf-settings&tab=payment", - "demo_video_url": "42EUj-Dlnr0" + "demo_video_url": "" } ] } diff --git a/assets/extensions-json/sections/images/Salesflare.webp b/assets/extensions-json/sections/images/Salesflare.webp new file mode 100644 index 000000000..01af54175 Binary files /dev/null and b/assets/extensions-json/sections/images/Salesflare.webp differ diff --git a/assets/extensions-json/sections/images/brevo.webp b/assets/extensions-json/sections/images/brevo.webp new file mode 100644 index 000000000..0a2562066 Binary files /dev/null and b/assets/extensions-json/sections/images/brevo.webp differ diff --git a/assets/extensions-json/sections/images/convertkit.png b/assets/extensions-json/sections/images/convertkit.png index 033d75925..ca5edd82b 100644 Binary files a/assets/extensions-json/sections/images/convertkit.png and b/assets/extensions-json/sections/images/convertkit.png differ diff --git a/assets/extensions-json/sections/images/telegram.webp b/assets/extensions-json/sections/images/telegram.webp new file mode 100644 index 000000000..5e90a234b Binary files /dev/null and b/assets/extensions-json/sections/images/telegram.webp differ diff --git a/assets/js/admin/evf-file-uploader.js b/assets/js/admin/evf-file-uploader.js index 0a22bfebe..ba7cbcad2 100644 --- a/assets/js/admin/evf-file-uploader.js +++ b/assets/js/admin/evf-file-uploader.js @@ -11,11 +11,8 @@ jQuery(document).ready(function($){ multiple: false }).open() .on('select', function(e){ - // This will return the selected image from the Media Uploader, the result is an object var uploaded_image = image.state().get('selection').first(); - // We convert uploaded_image to a JSON object to make accessing it easier var image_url = uploaded_image.toJSON().url; - // Let's assign the url value to the input field evf_uploader.attr('src', image_url); if( evf_uploader.hasClass( 'evf-button' ) ) { evf_uploader.prev().removeClass( 'everest-forms-hidden' ); @@ -30,7 +27,7 @@ jQuery(document).ready(function($){ }); //Custom upload and delete image. - $('.evf-custom-image-uploader-button').click(function(e) { + $('.evf-custom-image-uploader-button,.evf-button-for-image-upload').click(function(e) { evf_uploader = $(this); e.preventDefault(); var image = wp.media({ @@ -38,13 +35,10 @@ jQuery(document).ready(function($){ type: [ 'image' ] }, title: evf_uploader.upload_file, - // multiple: true if you want to upload multiple files at once multiple: false }).open() .on('select', function(e){ - // This will return the selected image from the Media Uploader, the result is an object var uploaded_image = image.state().get('selection').first(); - // We convert uploaded_image to a JSON object to make accessing it easier var image_url = uploaded_image.toJSON().url; // Let's assign the url value to the input field evf_uploader.addClass('everest-forms-hidden').removeClass('button-secondary'); @@ -53,8 +47,13 @@ jQuery(document).ready(function($){ evf_uploader.parent().prev().removeClass( 'everest-forms-hidden' ); evf_uploader.parent().prev().find('img.evf-custom-image-uploader').attr('src', image_url); evf_uploader.next().val(image_url); - - } else { + } else if( evf_uploader.hasClass( 'evf-button' ) ){ + evf_uploader.next().val(image_url); + evf_uploader.addClass('everest-form-hidden'); + evf_uploader.css('display' , 'none'); + evf_uploader.prev().css('display' , 'inline-block'); + evf_uploader.prev().find('img').removeClass('everest-forms-hidden').attr('src' , image_url); + } else { evf_uploader.attr('src', image_url); evf_uploader.next().next().val(image_url); } @@ -70,4 +69,12 @@ jQuery(document).ready(function($){ evf_uploader_remove.parent().addClass( 'everest-forms-hidden' ); }); + + $('.evf-image-container').click(function(e){ + evf_image_container_delete = $(this); + e.preventDefault(); + evf_image_container_delete.css('display' , 'none'); + evf_image_container_delete.next().css('display' , 'block'); + evf_image_container_delete.parent().find('input').val(''); + }); }); diff --git a/assets/js/admin/form-builder.js b/assets/js/admin/form-builder.js index 359d53d22..665003fb3 100644 --- a/assets/js/admin/form-builder.js +++ b/assets/js/admin/form-builder.js @@ -201,16 +201,18 @@ }); // Live effect for Rating field icon color option. - $( '.everest-forms-field-option-row-icon_color input.colorpicker' ).wpColorPicker({ - change: function( event ) { - var $this = $( this ), - value = $this.val(), - id = $this.closest( '.everest-forms-field-option-row' ).data( 'field-id' ), - $icons = $( '#everest-forms-field-'+id +' .rating-icon svg' ); - - $icons.css( 'fill', value ); - } - }); + $( document ).ready( function( $ ) { + $( '.everest-forms-field-option-row-icon_color input.colorpicker' ).wpColorPicker({ + change: function( event ) { + var $this = $( this ), + value = $this.val(), + id = $this.closest( '.everest-forms-field-option-row' ).data( 'field-id' ), + $icons = $( '#everest-forms-field-'+id +' .rating-icon svg' ); + + $icons.css( 'fill', value ); + } + }); + }); }, /** @@ -540,6 +542,7 @@ EVFPanelBuilder.init_datepickers(); EVFPanelBuilder.bindBulkOptionActions(); EVFPanelBuilder.bindAkismetInit(); + EVFPanelBuilder.bindFormSubmissionMinWaitingTime(); // Fields Panel. EVFPanelBuilder.bindUIActionsFields(); @@ -3202,6 +3205,32 @@ $(document).find('.everest-forms-akismet-protection-type').hide(); } }, + + /** + * Form Submission minimum waiting time. + * + * @since 3.0.2 + */ + bindFormSubmissionMinWaitingTime:function(){ + var submissionWaitingTimeEnabler = $(document).find('#everest-forms-panel-field-settings-form_submission_min_waiting_time'); + EVFPanelBuilder.formSubmissionMinTimeToggler(submissionWaitingTimeEnabler); + $(document).on('change', '#everest-forms-panel-field-settings-form_submission_min_waiting_time', function(){ + EVFPanelBuilder.formSubmissionMinTimeToggler($(this)); + }) + }, + /** + * Form Submission waiting time Toggler. + * + * @param {object} submissionWaitingTimeEnabler + */ + formSubmissionMinTimeToggler:function(submissionWaitingTimeEnabler){ + if($(submissionWaitingTimeEnabler).is(':checked')){ + $(document).find('.everest-forms-form-submission-minimum-waiting-time').show(); + }else{ + $(document).find('.everest-forms-form-submission-minimum-waiting-time').hide(); + } + }, + bindPrivacyPolicyActions: function() { // Consent message change handler. $( document.body ).on( 'input', '.everest-forms-field-option .evf-privacy-policy-consent-message', function ( e ) { @@ -3875,13 +3904,10 @@ jQuery( function ( $ ) { jQuery(function ($) { $(document).ready(function () { - - /** - * Custom CSS - */ + // Custom CSS const customCssElement = $('#everest-forms-panel-field-settings-evf-custom-css'); - var cssEditor = wp.CodeMirror.fromTextArea(customCssElement[0], - { + if (customCssElement.length && typeof wp.CodeMirror !== 'undefined') { + var cssEditor = wp.CodeMirror.fromTextArea(customCssElement[0], { "indentUnit": 2, "indentWithTabs": true, "inputStyle": "contenteditable", @@ -3914,14 +3940,12 @@ jQuery(function ($) { cssEditor.on('change', function () { customCssElement.html(cssEditor.getValue().replace(/<\s*script/gi, '').replace(/\s+on\w+\s*=/gi, ' ')); }); + } - - /** - * Custom JS - */ + // Custom JS const customJsElement = $('#everest-forms-panel-field-settings-evf-custom-js'); - var jsEditor = wp.CodeMirror.fromTextArea(customJsElement[0], - { + if (customJsElement.length && typeof wp.CodeMirror !== 'undefined') { + var jsEditor = wp.CodeMirror.fromTextArea(customJsElement[0], { "indentUnit": 2, "indentWithTabs": true, "inputStyle": "contenteditable", @@ -3953,6 +3977,7 @@ jQuery(function ($) { jsEditor.on('change', function () { customJsElement.html(jsEditor.getValue().replace(/<\s*script/gi, '').replace(/\s+on\w+\s*=/gi, ' ')); }); + } $('#everest-forms-panel-field-settings-evf-enable-custom-css, #everest-forms-panel-field-settings-evf-enable-custom-js').on('change', e => { showHideEditors(); @@ -3960,9 +3985,7 @@ jQuery(function ($) { showHideEditors(); - /** - * Show/Hide the custom css and js input boxes based on the enabled/disabled state. - */ + // Show/Hide the custom CSS and JS input boxes based on the enabled/disabled state. function showHideEditors() { if ($('#everest-forms-panel-field-settings-evf-enable-custom-css').is(':checked')) { $('#everest-forms-panel-field-settings-evf-custom-css-wrap').show(500); @@ -3977,4 +4000,5 @@ jQuery(function ($) { } } }); + }); diff --git a/assets/js/frontend/everest-forms.js b/assets/js/frontend/everest-forms.js index 5065dd088..991301744 100644 --- a/assets/js/frontend/everest-forms.js +++ b/assets/js/frontend/everest-forms.js @@ -35,7 +35,7 @@ jQuery( function ( $ ) { this.loadPhoneField(); this.loadCountryFlags(); this.ratingInit(); - + this.FormSubmissionWaitingTime(); // Inline validation. this.$everest_form.on( 'input validate change', '.input-text, select, input:checkbox, input:radio', this.validate_field ); @@ -47,6 +47,8 @@ jQuery( function ( $ ) { $(this).removeClass('everest-forms-field-active'); }); + ; + $( document.body ).trigger( 'everest_forms_loaded' ); @@ -597,6 +599,7 @@ jQuery( function ( $ ) { var recaptchaID = $submit.get( 0 ).recaptchaID; var razorpayForms = $form.find( "[data-gateway='razorpay']" ); var stripeForms = $form.find( "[data-gateway*='stripe']" ); + // Process form. if ( processText ) { $submit.text( processText ).prop( 'disabled', true ); @@ -948,7 +951,50 @@ jQuery( function ( $ ) { } return $( '