Plugin Directory

Changeset 2245732


Ignore:
Timestamp:
02/17/2020 04:29:05 PM (6 years ago)
Author:
munger41
Message:

1.2.1 - bugfix on jquery dependance

Location:
gf-prevent-duplicates/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • gf-prevent-duplicates/trunk/gf-prevent-duplicates.php

    r1889707 r2245732  
    44 * Plugin URI: https://wordpress.org/plugins/gf-prevent-duplicates/
    55 * Description: Prevent duplicate submissions for all GF forms on your site.
    6  * Version: 1.2.0
     6 * Version: 1.2.1
    77 * Author: MaxiCharts
    88 * Author URI: https://maxicharts.com
     
    1414}
    1515
    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__));
    1717include_once ($path_to_class);
    1818
    19 
    2019if (! class_exists('GF_Prevent_Duplicates')) {
    21 
     20   
    2221    class GF_Prevent_Duplicates
    2322    {
    24 
     23       
    2524        function __construct()
    2625        {
     
    3029            ));
    3130           
    32             add_action ( 'admin_menu', array (
     31            add_action('admin_menu', array(
    3332                $this,
    3433                'add_admin_menus'
    35             ) );
     34            ));
    3635        }
    37 
     36       
    3837        function gfpd_load_scripts()
    3938        {
    40             if (! is_admin() ) {
     39            if (! is_admin()) {
    4140                $jsScript = plugins_url("js/gfpreventduplicates.js", __FILE__);
    4241                // wp_register_script( string $handle, string $src, array $deps = array(), string|bool|null $ver = false, bool $in_footer = false )
    4342               
    44                 wp_register_script('gfpd-js', $jsScript,  null, array('jquery') );                             
     43                wp_register_script('gfpd-js', $jsScript, array(
     44                    'jquery'
     45                ));
    4546               
    4647                // Localize the script with new data
    4748                $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'
    5253                );
    5354                wp_localize_script( 'gfpd-js', 'gfpd_strings', $translation_array );
    5455               
    55                 wp_enqueue_script('gfpd-js');               
     56                wp_enqueue_script('gfpd-js');
    5657            }
    5758        }
    58         function add_admin_menus() {     
     59        function add_admin_menus() {
    5960            add_options_page ( 'GF Prevent Duplicates', 'GFPD', 'delete_others_pages', 'gfpd_settings', array (
    6061                $this,
  • gf-prevent-duplicates/trunk/js/gfpreventduplicates.js

    r1889707 r2245732  
    1 jQuery(function ($) {
     1jQuery(document).ready(function($) {
    22
    3     //
    4     // prevent Gravity Forms form being submitted twice++
    5     //
     3    //
     4    // prevent Gravity Forms form being submitted twice++
     5    //
    66
    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;
    3314
    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        }
    3530
    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    });
    5432
    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) {
    6334
    64             }
    65         }
     35        console.log("prevent dupplicates " + currentFormExcluded);
    6636
    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    });
    6872
    6973});
  • gf-prevent-duplicates/trunk/readme.txt

    r2177324 r2245732  
    2525== Changelog ==
    2626
     271.2.1 - bugfix on jquery dependance
     28
    27291.2.0 - manage form ids exclusions from settings
    2830
Note: See TracChangeset for help on using the changeset viewer.