From f8be1e584be041b5aa297aa3d08965492ddc03bd Mon Sep 17 00:00:00 2001 From: Andrew Minion Date: Mon, 28 Sep 2020 10:10:52 -0500 Subject: [PATCH 1/7] remove old syntax checker, always build release on tags --- bin/gitlab-ci-lint.sh | 2 -- bin/php-getFilesChanged.sh | 14 -------------- bin/php-syntaxChecker-changed.sh | 20 -------------------- bin/php-syntaxChecker-full.sh | 22 ---------------------- bin/php-syntaxChecker-skipFiles | 1 - 5 files changed, 59 deletions(-) delete mode 100755 bin/gitlab-ci-lint.sh delete mode 100755 bin/php-getFilesChanged.sh delete mode 100755 bin/php-syntaxChecker-changed.sh delete mode 100755 bin/php-syntaxChecker-full.sh delete mode 100644 bin/php-syntaxChecker-skipFiles diff --git a/bin/gitlab-ci-lint.sh b/bin/gitlab-ci-lint.sh deleted file mode 100755 index c93caa6..0000000 --- a/bin/gitlab-ci-lint.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -gitlab-ci-lint diff --git a/bin/php-getFilesChanged.sh b/bin/php-getFilesChanged.sh deleted file mode 100755 index 12b6b8a..0000000 --- a/bin/php-getFilesChanged.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -# What's happening here? -# -# 1. We get names and statuses of files that differ in current branch from their state in origin/master. -# These come in form (multiline) -# 2. The output from git diff is filtered by unix grep utility, we only need files with names ending in .php -# 3. One more filter: filter *out* (grep -v) all lines starting with R or D. -# D means "deleted", R means "renamed" -# 4. The filtered status-name list is passed on to awk command, which is instructed to take only the 2nd part -# of every line, thus just the filename -git fetch origin; -CI_MERGE_REQUEST_TARGET_BRANCH_NAME="develop"; -echo $CI_MERGE_REQUEST_TARGET_BRANCH_NAME; -git diff --name-status origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME | grep '\.php$' | grep -v "^[RD]" | awk '{ print $2 }' diff --git a/bin/php-syntaxChecker-changed.sh b/bin/php-syntaxChecker-changed.sh deleted file mode 100755 index 3a06cfd..0000000 --- a/bin/php-syntaxChecker-changed.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -git fetch origin; -last_status=0 -status=0 - -for f in `git diff --name-status HEAD^ HEAD | grep '\.php$' | grep -v "^[RD]" | awk '{ print $2 }'`; -do - message=`php -l $f` - last_status="$?"; - if [ "$last_status" -ne "0" ]; then - echo $message; - status="$last_status"; - else echo "Scanned $f"; - fi -done - -if [ "$status" -ne "0" ]; then echo "PHP syntax validation failed!" - exit 1 -fi diff --git a/bin/php-syntaxChecker-full.sh b/bin/php-syntaxChecker-full.sh deleted file mode 100755 index 264dc3d..0000000 --- a/bin/php-syntaxChecker-full.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -php_lint_file() -{ - local php_file="$1" - php -l "$php_file" &> /dev/null - if [ "$?" -ne 0 ] - then - echo -e "[FAIL] $php_file" - return 1 - fi -} - -export -f php_lint_file - -find . -name '*.php' $(printf "! -wholename %s " $(cat bin/php-syntaxChecker-skipFiles)) | parallel -j 8 php_lint_file {} - -if [ "$?" -ne 0 ] -then - exit 1 -fi - diff --git a/bin/php-syntaxChecker-skipFiles b/bin/php-syntaxChecker-skipFiles deleted file mode 100644 index 7161e95..0000000 --- a/bin/php-syntaxChecker-skipFiles +++ /dev/null @@ -1 +0,0 @@ -./wp-content/db.php From bdd26392aee4a8faad5b16f0cda5d8f4b5d07405 Mon Sep 17 00:00:00 2001 From: Andrew Minion Date: Mon, 28 Sep 2020 10:12:19 -0500 Subject: [PATCH 2/7] missed the commit --- .gitlab-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6d03fd8..d325a05 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -37,7 +37,6 @@ Build Plugin Package: name: "$PLUGIN_SLUG.$CI_COMMIT_TAG" paths: - $PLUGIN_SLUG.$CI_COMMIT_TAG.zip - when: manual Deploy Documentation: stage: deploy From 6e5ab9fa1801b539ed43309ed9984c299bcb252e Mon Sep 17 00:00:00 2001 From: Andrew Minion Date: Mon, 28 Sep 2020 11:11:23 -0500 Subject: [PATCH 3/7] add frontend styles for invalid input patterns Closes #22 --- assets/css/gravityforms-field-helper.css | 5 +++++ class-gf-input-pattern.php | 12 ++++++++++++ field-helper-for-gravity-forms.php | 18 ++++++++++++++++-- 3 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 assets/css/gravityforms-field-helper.css diff --git a/assets/css/gravityforms-field-helper.css b/assets/css/gravityforms-field-helper.css new file mode 100644 index 0000000..d514e4e --- /dev/null +++ b/assets/css/gravityforms-field-helper.css @@ -0,0 +1,5 @@ +input[pattern]:invalid{ + color: red; + outline: 1px solid red; + border: 1px solid red; +} diff --git a/class-gf-input-pattern.php b/class-gf-input-pattern.php index 5a06783..3e67b29 100644 --- a/class-gf-input-pattern.php +++ b/class-gf-input-pattern.php @@ -125,11 +125,23 @@ public function __construct() { // Frontend. add_filter( 'gform_field_content', array( $this, 'add_input_pattern' ), 15, 5 ); + add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_assets' ) ); // Validation. add_filter( 'gform_field_validation', array( $this, 'validate_input_pattern' ), 10, 4 ); } + /** + * Enqueue frontend styles. + * + * @since 1.2.1 + * + * @return void + */ + public function enqueue_assets() { + wp_enqueue_style( 'gravity-forms-field-helper' ); + } + /** * Render plugin page content. * diff --git a/field-helper-for-gravity-forms.php b/field-helper-for-gravity-forms.php index 936a524..600a1cf 100644 --- a/field-helper-for-gravity-forms.php +++ b/field-helper-for-gravity-forms.php @@ -74,7 +74,10 @@ public static function load_field_helper() { GFAddOn::register( 'GF_Input_Pattern' ); // Backend assets. - add_action( 'admin_enqueue_scripts', 'GF_Field_Helper_Bootstrap::enqueue_assets' ); + add_action( 'admin_enqueue_scripts', 'GF_Field_Helper_Bootstrap::register_backend_assets' ); + + // Frontend assets. + add_action( 'wp_enqueue_scripts', 'GF_Field_Helper_Bootstrap::register_frontend_assets' ); } /** @@ -84,10 +87,21 @@ public static function load_field_helper() { * * @return void */ - public static function enqueue_assets() { + public static function register_backend_assets() { wp_register_script( 'gravity-forms-field-helper-admin', plugin_dir_url( GF_FIELD_HELPER_FILE ) . '/assets/js/gravity-forms-field-helper-admin.js', array( 'jquery' ), GF_FIELD_HELPER_VERSION, true ); } + /** + * Register/enqueue frontend assets. + * + * @since 1.2.1 + * + * @return void + */ + public static function register_frontend_assets() { + wp_register_style( 'gravity-forms-field-helper', plugin_dir_url( GF_FIELD_HELPER_FILE ) . '/assets/css/gravityforms-field-helper.css', array(), GF_FIELD_HELPER_VERSION ); + } + /** * Register custom REST API endpoint. * From f56cd5d0a3ad362b10bdd1d4d591e70d6421d297 Mon Sep 17 00:00:00 2001 From: Andrew Minion Date: Mon, 28 Sep 2020 11:33:32 -0500 Subject: [PATCH 4/7] rename frontend assets --- ...ityforms-field-helper.css => gravity-forms-field-helper.css} | 0 ...ield-helper-admin.js => gravity-forms-field-helper-admin.js} | 0 field-helper-for-gravity-forms.php | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) rename assets/css/{gravityforms-field-helper.css => gravity-forms-field-helper.css} (100%) rename assets/js/{gravityforms-field-helper-admin.js => gravity-forms-field-helper-admin.js} (100%) diff --git a/assets/css/gravityforms-field-helper.css b/assets/css/gravity-forms-field-helper.css similarity index 100% rename from assets/css/gravityforms-field-helper.css rename to assets/css/gravity-forms-field-helper.css diff --git a/assets/js/gravityforms-field-helper-admin.js b/assets/js/gravity-forms-field-helper-admin.js similarity index 100% rename from assets/js/gravityforms-field-helper-admin.js rename to assets/js/gravity-forms-field-helper-admin.js diff --git a/field-helper-for-gravity-forms.php b/field-helper-for-gravity-forms.php index 600a1cf..81ec1a5 100644 --- a/field-helper-for-gravity-forms.php +++ b/field-helper-for-gravity-forms.php @@ -99,7 +99,7 @@ public static function register_backend_assets() { * @return void */ public static function register_frontend_assets() { - wp_register_style( 'gravity-forms-field-helper', plugin_dir_url( GF_FIELD_HELPER_FILE ) . '/assets/css/gravityforms-field-helper.css', array(), GF_FIELD_HELPER_VERSION ); + wp_register_style( 'gravity-forms-field-helper', plugin_dir_url( GF_FIELD_HELPER_FILE ) . '/assets/css/gravity-forms-field-helper.css', array(), GF_FIELD_HELPER_VERSION );\ } /** From 34818532d73ceaa701007814208351ca12c76b8c Mon Sep 17 00:00:00 2001 From: Andrew Minion Date: Mon, 28 Sep 2020 11:36:10 -0500 Subject: [PATCH 5/7] disable submit button for invalid input patterns Closes #23 --- assets/js/gravity-forms-field-helper.js | 19 +++++++++++++++++++ class-gf-input-pattern.php | 1 + field-helper-for-gravity-forms.php | 2 ++ 3 files changed, 22 insertions(+) create mode 100644 assets/js/gravity-forms-field-helper.js diff --git a/assets/js/gravity-forms-field-helper.js b/assets/js/gravity-forms-field-helper.js new file mode 100644 index 0000000..e68f8f8 --- /dev/null +++ b/assets/js/gravity-forms-field-helper.js @@ -0,0 +1,19 @@ +'use strict'; +(function($) { + $(document).ready(function() { + + /** + * Disable submit/next buttons for invalid input patterns. + * + * @since 1.2.1 + */ + $('body').on('change', 'form[id^="gform_"] input[pattern]', function() { + if ($(this).is(':invalid')) { + $('.gform_button, .gform_next_button').attr('disabled', true); + } else { + $('.gform_button, .gform_next_button').attr('disabled', false); + } + }); + + }); +}(jQuery)); diff --git a/class-gf-input-pattern.php b/class-gf-input-pattern.php index 3e67b29..6c91d93 100644 --- a/class-gf-input-pattern.php +++ b/class-gf-input-pattern.php @@ -140,6 +140,7 @@ public function __construct() { */ public function enqueue_assets() { wp_enqueue_style( 'gravity-forms-field-helper' ); + wp_enqueue_script( 'gravity-forms-field-helper' ); } /** diff --git a/field-helper-for-gravity-forms.php b/field-helper-for-gravity-forms.php index 81ec1a5..a380c6e 100644 --- a/field-helper-for-gravity-forms.php +++ b/field-helper-for-gravity-forms.php @@ -99,6 +99,8 @@ public static function register_backend_assets() { * @return void */ public static function register_frontend_assets() { + wp_register_script( 'gravity-forms-field-helper', plugin_dir_url( GF_FIELD_HELPER_FILE ) . '/assets/js/gravity-forms-field-helper.js', array( 'jquery' ), GF_FIELD_HELPER_VERSION, true ); + wp_register_style( 'gravity-forms-field-helper', plugin_dir_url( GF_FIELD_HELPER_FILE ) . '/assets/css/gravity-forms-field-helper.css', array(), GF_FIELD_HELPER_VERSION );\ } From 98061811a73e8a9099e71a100c18e7f7298d4ba8 Mon Sep 17 00:00:00 2001 From: Andrew Minion Date: Mon, 28 Sep 2020 11:38:04 -0500 Subject: [PATCH 6/7] fix syntax error --- field-helper-for-gravity-forms.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/field-helper-for-gravity-forms.php b/field-helper-for-gravity-forms.php index a380c6e..4da663a 100644 --- a/field-helper-for-gravity-forms.php +++ b/field-helper-for-gravity-forms.php @@ -101,7 +101,7 @@ public static function register_backend_assets() { public static function register_frontend_assets() { wp_register_script( 'gravity-forms-field-helper', plugin_dir_url( GF_FIELD_HELPER_FILE ) . '/assets/js/gravity-forms-field-helper.js', array( 'jquery' ), GF_FIELD_HELPER_VERSION, true ); - wp_register_style( 'gravity-forms-field-helper', plugin_dir_url( GF_FIELD_HELPER_FILE ) . '/assets/css/gravity-forms-field-helper.css', array(), GF_FIELD_HELPER_VERSION );\ + wp_register_style( 'gravity-forms-field-helper', plugin_dir_url( GF_FIELD_HELPER_FILE ) . '/assets/css/gravity-forms-field-helper.css', array(), GF_FIELD_HELPER_VERSION ); } /** From ecd981d72b05488fe16bd2e580e58bb6cc1525e0 Mon Sep 17 00:00:00 2001 From: Andrew Minion Date: Mon, 28 Sep 2020 11:38:54 -0500 Subject: [PATCH 7/7] update changelog and plugin version --- documentation/CHANGELOG.md | 7 +++++++ field-helper-for-gravity-forms.php | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/documentation/CHANGELOG.md b/documentation/CHANGELOG.md index 7c53dcf..0f7952f 100644 --- a/documentation/CHANGELOG.md +++ b/documentation/CHANGELOG.md @@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). +# 1.2.1 | 2020-09-28 + +## Features + +- Highlight fields with invalid input patterns. +- Disable form submission when a field has an invalid input pattern. + # 1.2.0 | 2020-09-28 ## Features diff --git a/field-helper-for-gravity-forms.php b/field-helper-for-gravity-forms.php index 4da663a..1cfd43d 100644 --- a/field-helper-for-gravity-forms.php +++ b/field-helper-for-gravity-forms.php @@ -3,7 +3,7 @@ * Plugin Name: Field Helper for Gravity Forms * Plugin URI: https://brilliantplugins.com/ * Description: Enables Gravity Forms users to set consistent, human-friendly field names for use in the Gravity Forms REST API. - * Version: 1.2.0 + * Version: 1.2.1 * Author: BrilliantPlugins * Author URI: https://brilliantplugins.com * License: GPL-2.0+ @@ -30,7 +30,7 @@ * @package gravity-forms-field-helper */ -define( 'GF_FIELD_HELPER_VERSION', '1.2.0' ); +define( 'GF_FIELD_HELPER_VERSION', '1.2.1' ); define( 'GF_FIELD_HELPER_FILE', __FILE__ ); define( 'GF_FIELD_HELPER_SLUG', 'gravity-forms-field-helper' );