From: Steve Sutton Date: Fri, 16 Feb 2018 15:26:23 +0000 (-0500) Subject: Update add /edit form to require fields before submit with js. X-Git-Tag: v1.6.75^2 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=85db7b8259b937438c89d8056ea2a0284db94343;p=WP-Plugins%2Fglm-member-db-events.git Update add /edit form to require fields before submit with js. Use javascript to check the required fields when submitting an event. This helps when adding an event so users won't loose dates and times. --- diff --git a/index.php b/index.php index e3a077c..da49542 100644 --- a/index.php +++ b/index.php @@ -4,7 +4,7 @@ * Plugin URI: http://www.gaslightmedia.com/ * Description: Gaslight Media Members Database. - * Version: 1.6.74 + * Version: 1.6.75 * Author: Chuck Scott * Author URI: http://www.gaslightmedia.com/ @@ -22,7 +22,7 @@ * @author Chuck Scott * @license http://www.gaslightmedia.com Gaslightmedia - * @version 1.6.74 + * @version 1.6.75 */ @@ -47,7 +47,7 @@ if (!defined('ABSPATH')) { * so that we're sure the other add-ons see an up to date * version from this plugin. */ -define('GLM_MEMBERS_EVENTS_PLUGIN_VERSION', '1.6.74'); +define('GLM_MEMBERS_EVENTS_PLUGIN_VERSION', '1.6.75'); define('GLM_MEMBERS_EVENTS_PLUGIN_DB_VERSION', '0.1.4'); // This is the minimum version of the GLM Members DB plugin require for this plugin. diff --git a/readme.txt b/readme.txt index 2cfd84f..0d4786a 100644 --- a/readme.txt +++ b/readme.txt @@ -25,6 +25,9 @@ e.g. 1. Activate the plugin through the 'Plugins' menu in WordPress == Changelog == += 1.6.75 = +* Add javascript for required fields on the admin add/edit event form. + = 1.6.70 = * Fix time output for events with no time. Doesn't display the glm-event-times div. diff --git a/views/admin/events/edit.html b/views/admin/events/edit.html index 54859d9..13a5e66 100644 --- a/views/admin/events/edit.html +++ b/views/admin/events/edit.html @@ -34,14 +34,14 @@ {/if} {if $haveMember && !$lockedToMember} -
+ {else} {if $lockedToMember} - + {else} - + {/if} @@ -140,6 +140,57 @@ var recurrencesInited = false; var locationsInited = false; + // function used to get everything out of the visual and text editors + function get_tinymce_content(){ + if (jQuery("#wp-glm_descr-wrap").hasClass("tmce-active")){ + + tinyMCE.triggerSave(); + + return $('#glm_descr').val(); + } else { + // get the shortcode from the editor with [ ] as the delimiter + return $("#glm_descr").val(); + } + } + // Check for required fields + $('#glm-event-admin-form').submit(function(){ + var formErrors = []; + {foreach $event.fieldRequired as $fieldName => $fValue} + {if $fieldName != 'status' && $fieldName != 'descr'} + if ( {if $fValue}true{else}false{/if} ) { + console.log('{$fieldName}', $('input[name="{$fieldName}"]')); + console.log('{$fieldName}.val()', $('input[name="{$fieldName}"]').val()); + if ( !$('input[name="{$fieldName}"]').val() ) { + formErrors.push('{$fieldName}'); + } + } + {else if $fieldName == 'descr'} + if ( {if $fValue}true{else}false{/if} ) { + descr = get_tinymce_content(); + console.log( 'descr', descr ); + if ( !descr ) { + formErrors.push('{$fieldName}'); + } + } + {/if} + + {/foreach} + var numErrors = formErrors.length; + if ( numErrors > 0 ) { + console.log('formErrors: ', formErrors); + var msg = "The following fields are required for this Event:\n"; + for ( var i = 0; i < numErrors; i++ ) { + msg += formErrors[i] + "\n"; + } + alert(msg); + // move to first tab + $('#glm-event-descr').trigger('click'); + return false; + } else { + return true; + } + }); + /* * Edit area tabs */