Changeset 2245732
- Timestamp:
- 02/17/2020 04:29:05 PM (6 years ago)
- Location:
- gf-prevent-duplicates/trunk
- Files:
-
- 3 edited
-
gf-prevent-duplicates.php (modified) (3 diffs)
-
js/gfpreventduplicates.js (modified) (1 diff)
-
readme.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
gf-prevent-duplicates/trunk/gf-prevent-duplicates.php
r1889707 r2245732 4 4 * Plugin URI: https://wordpress.org/plugins/gf-prevent-duplicates/ 5 5 * Description: Prevent duplicate submissions for all GF forms on your site. 6 * Version: 1.2. 06 * Version: 1.2.1 7 7 * Author: MaxiCharts 8 8 * Author URI: https://maxicharts.com … … 14 14 } 15 15 16 $path_to_class = sprintf ( "%s/admin/gfpd_admin_settings.php", dirname ( __FILE__ ));16 $path_to_class = sprintf("%s/admin/gfpd_admin_settings.php", dirname(__FILE__)); 17 17 include_once ($path_to_class); 18 18 19 20 19 if (! class_exists('GF_Prevent_Duplicates')) { 21 20 22 21 class GF_Prevent_Duplicates 23 22 { 24 23 25 24 function __construct() 26 25 { … … 30 29 )); 31 30 32 add_action ( 'admin_menu', array(31 add_action('admin_menu', array( 33 32 $this, 34 33 'add_admin_menus' 35 ) );34 )); 36 35 } 37 36 38 37 function gfpd_load_scripts() 39 38 { 40 if (! is_admin() ) {39 if (! is_admin()) { 41 40 $jsScript = plugins_url("js/gfpreventduplicates.js", __FILE__); 42 41 // wp_register_script( string $handle, string $src, array $deps = array(), string|bool|null $ver = false, bool $in_footer = false ) 43 42 44 wp_register_script('gfpd-js', $jsScript, null, array('jquery') ); 43 wp_register_script('gfpd-js', $jsScript, array( 44 'jquery' 45 )); 45 46 46 47 // Localize the script with new data 47 48 $translation_array = array( 48 'button_message' => esc_html__( 'Processing, please wait...', 'gf-prevent-duplicates'),49 'currently_uploading' => esc_html__( 'Please wait for the uploading to complete', 'gf-prevent-duplicates'),50 'excluded_form_ids' => get_option('gfpd_excluded_ids') ,51 // 'a_value' => '10'49 'button_message' => esc_html__('Processing, please wait...', 'gf-prevent-duplicates'), 50 'currently_uploading' => esc_html__('Please wait for the uploading to complete', 'gf-prevent-duplicates'), 51 'excluded_form_ids' => get_option('gfpd_excluded_ids') 52 // 'a_value' => '10' 52 53 ); 53 54 wp_localize_script( 'gfpd-js', 'gfpd_strings', $translation_array ); 54 55 55 wp_enqueue_script('gfpd-js'); 56 wp_enqueue_script('gfpd-js'); 56 57 } 57 58 } 58 function add_admin_menus() { 59 function add_admin_menus() { 59 60 add_options_page ( 'GF Prevent Duplicates', 'GFPD', 'delete_others_pages', 'gfpd_settings', array ( 60 61 $this, -
gf-prevent-duplicates/trunk/js/gfpreventduplicates.js
r1889707 r2245732 1 jQuery( function($) {1 jQuery(document).ready(function($) { 2 2 3 //4 // prevent Gravity Forms form being submitted twice++5 //3 // 4 // prevent Gravity Forms form being submitted twice++ 5 // 6 6 7 var gformSubmitted = false; 8 var gformFormId = -1; 9 var currentFormExcluded = false; 10 jQuery(document).bind('gform_post_render', 11 function (event, form_id, current_page) { 12 console.log('gform_post_render: ' + form_id); 13 console.log($(this)); 14 gformFormId = form_id; 15 16 console.log(gfpd_strings.excluded_form_ids); 17 var excluded = gfpd_strings.excluded_form_ids.split(','); 18 console.log(excluded); 19 var excludedInts = excluded.map(function (x) { 20 return parseInt(x, 10); 21 }); 22 var idxCurrentFormId = excludedInts.indexOf(gformFormId); 23 console.log("prevent dupplicates "+idxCurrentFormId); 24 currentFormExcluded = idxCurrentFormId >= 0; 25 console.log("prevent dupplicates "+currentFormExcluded); 26 if (currentFormExcluded){ 27 console.warn('gfpd: form ' + form_id+' EXcluded from process'); 28 } else { 29 console.log('gfpd: form ' + form_id+' included from process') 30 } 31 32 }); 7 var gformSubmitted = false; 8 var gformFormId = -1; 9 var currentFormExcluded = false; 10 jQuery(document).bind('gform_post_render', function(event, form_id, current_page) { 11 console.log('gform_post_render: ' + form_id); 12 console.log($(this)); 13 gformFormId = form_id; 33 14 34 $(".gform_wrapper form").submit(function (event) { 15 console.log(gfpd_strings.excluded_form_ids); 16 var excluded = gfpd_strings.excluded_form_ids.split(','); 17 console.log(excluded); 18 var excludedInts = excluded.map(function(x) { 19 return parseInt(x, 10); 20 }); 21 var idxCurrentFormId = excludedInts.indexOf(gformFormId); 22 console.log("prevent dupplicates " + idxCurrentFormId); 23 currentFormExcluded = idxCurrentFormId >= 0; 24 console.log("prevent dupplicates " + currentFormExcluded); 25 if (currentFormExcluded) { 26 console.warn('gfpd: form ' + form_id + ' EXcluded from process'); 27 } else { 28 console.log('gfpd: form ' + form_id + ' included from process') 29 } 35 30 36 console.log("prevent dupplicates "+currentFormExcluded); 37 38 if (currentFormExcluded) { 39 // idle 40 console.log("currentExcluded: "+currentFormExcluded); 41 return; 42 } else { 43 console.log(currentFormExcluded+" current form to be processed by prevent duplicates"); 44 if (gformSubmitted) { 45 event.preventDefault(); 46 } else { 47 var pendingUploads = false; 48 $.each(gfMultiFileUploader.uploaders, function (i, uploader) { 49 if (uploader.total.queued > 0) { 50 pendingUploads = true; 51 return false; 52 } 53 }); 31 }); 54 32 55 if (pendingUploads) { 56 57 return false; 58 } else { 59 gformSubmitted = true; 60 var outputText = gfpd_strings.button_message; 61 $("input[type='submit']", this).val(outputText); 62 } 33 $(".gform_wrapper form").submit(function(event) { 63 34 64 } 65 } 35 console.log("prevent dupplicates " + currentFormExcluded); 66 36 67 }); 37 if (currentFormExcluded) { 38 // idle 39 console.log("currentExcluded: " + currentFormExcluded); 40 return; 41 } else { 42 console.log(currentFormExcluded + " current form to be processed by prevent duplicates"); 43 if (gformSubmitted) { 44 event.preventDefault(); 45 } else { 46 var pendingUploads = false; 47 if (typeof gfMultiFileUploader !== 'undefined') { 48 49 $.each(gfMultiFileUploader.uploaders, function(i, uploader) { 50 if (uploader.total.queued > 0) { 51 pendingUploads = true; 52 return false; 53 } 54 }); 55 } else { 56 console.warn("No gfMultiFileUploader"); 57 } 58 59 if (pendingUploads) { 60 61 return false; 62 } else { 63 gformSubmitted = true; 64 var outputText = gfpd_strings.button_message; 65 $("input[type='submit']", this).val(outputText); 66 } 67 68 } 69 } 70 71 }); 68 72 69 73 }); -
gf-prevent-duplicates/trunk/readme.txt
r2177324 r2245732 25 25 == Changelog == 26 26 27 1.2.1 - bugfix on jquery dependance 28 27 29 1.2.0 - manage form ids exclusions from settings 28 30
Note: See TracChangeset
for help on using the changeset viewer.