Plugin Directory

Changeset 2010226


Ignore:
Timestamp:
01/10/2019 09:09:14 PM (7 years ago)
Author:
georgemandis
Message:

Fixes bug where calculations and parantheses within MIN/MAX created errors

Location:
gf-minmax-calculation/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • gf-minmax-calculation/trunk/gravityforms-minmax.js

    r2009634 r2010226  
    11/**
    22 * Gravity Forms MIN/MAX Calculations
    3  * Version 0.3.0
     3 * Version 0.3.1
    44 *
    55 * Add MIN/MAX functions to Gravity Forms calculation
     
    4747         */     
    4848
    49         const pattern = /(MIN|MAX)\(([\d\+\-\*\/\.\,\ ]+)\s*\)/gi,
     49        const pattern = /(MIN|MAX)\(([\d\s\W]+)\s*\)/gi,
    5050            matches = fieldFormula.match(pattern);
    51 
     51       
    5252        let replaces = [];     
    5353
    5454        for(let i in matches) {         
    55             let components = /(MIN|MAX)\(([\d\+\-\*\/\.,\ ]+)\s*\)/gi.exec(matches[i]);
     55            let components = /(MIN|MAX)\(([\d\s\W]+)\s*\)/gi.exec(matches[i]);
    5656            let values = components[2].split(',').map((value,index,array) => {
    5757                return parseFloat(eval(value.trim()));
  • gf-minmax-calculation/trunk/gravityforms-minmax.min.js

    r2009634 r2010226  
    1 gform.addFilter("gform_calculation_result",function(result,formulaField,formId,calcObj){if(formulaField.formula.indexOf("MIN")>-1||formulaField.formula.indexOf("MAX")>-1){let fieldFormula=calcObj.replaceFieldTags(formId,formulaField.formula,formulaField);const pattern=/(MIN|MAX)\(([\d\+\-\*\/\.\,\ ]+)\s*\)/gi,matches=fieldFormula.match(pattern);let replaces=[];for(let i in matches){let components=/(MIN|MAX)\(([\d\+\-\*\/\.,\ ]+)\s*\)/gi.exec(matches[i]),values=components[2].split(",").map((value,index,array)=>parseFloat(eval(value.trim())));"MIN"==components[1]&&replaces.push([matches[i],,Math.min(...values)]),"MAX"==components[1]&&replaces.push([matches[i],,Math.max(...values)])}for(let e in replaces)fieldFormula=fieldFormula.replace(replaces[e][0],replaces[e][2]);fieldFormula=fieldFormula.replace(/[^0-9\s\n\r\+\-\*\/\^\(\)\.](MIN|MAX)/g,""),result=eval(fieldFormula)}return result});
     1gform.addFilter("gform_calculation_result",function(result,formulaField,formId,calcObj){if(formulaField.formula.indexOf("MIN")>-1||formulaField.formula.indexOf("MAX")>-1){let fieldFormula=calcObj.replaceFieldTags(formId,formulaField.formula,formulaField);const pattern=/(MIN|MAX)\(([\d\s\W]+)\s*\)/gi,matches=fieldFormula.match(pattern);let replaces=[];for(let i in matches){let components=/(MIN|MAX)\(([\d\s\W]+)\s*\)/gi.exec(matches[i]),values=components[2].split(",").map((value,index,array)=>parseFloat(eval(value.trim())));"MIN"==components[1]&&replaces.push([matches[i],,Math.min(...values)]),"MAX"==components[1]&&replaces.push([matches[i],,Math.max(...values)])}for(let e in replaces)fieldFormula=fieldFormula.replace(replaces[e][0],replaces[e][2]);fieldFormula=fieldFormula.replace(/[^0-9\s\n\r\+\-\*\/\^\(\)\.](MIN|MAX)/g,""),result=eval(fieldFormula)}return result});
  • gf-minmax-calculation/trunk/gravityforms-minmax.php

    r2009634 r2010226  
    44 * Plugin URI: https://snaptortoise.com?wp-gf-minmax
    55 * Description: Adds MIN/MAX function support for calculations in number fields
    6  * Version: 0.3.0
     6 * Version: 0.3.1
    77 * Author: SnapTortoise Web Development
    88 * Author URI: https://snaptortoise.com
     
    2929         *       
    3030         */
    31         $formula = preg_replace( '@[^0-9\s\n\r\+\-\*\/\^\(\)\.](MIN|MAX)@is', '', $formula );
     31        $formula = preg_replace( '@[^0-9\s\n\r\s\W](MIN|MAX)@is', '', $formula );
    3232
    3333        /**
    3434         * Filter just the MIN/MAX function calls within the formula
    3535         */
    36         preg_match_all( '@((MIN|MAX)\(([\d\+\-\*\/\.\,\ ]+)\s*\))@is', $formula, $matches );       
     36        preg_match_all( '@((MIN|MAX)\(([\d\s\W]+)\s*\))@is', $formula, $matches );     
    3737       
    3838        $search = $matches[0];
  • gf-minmax-calculation/trunk/readme.txt

    r2009635 r2010226  
    3232== Changelog ==
    3333
     340.3.1: January 10, 2019
     35
     36- Fixes bug where calculations and parantheses within MIN/MAX created errors.
     37
     38
    34390.3.0: January 9, 2019
    3540
Note: See TracChangeset for help on using the changeset viewer.