Updating the Add your event form for required fields.
authorSteve Sutton <steve@gaslightmedia.com>
Tue, 10 Jan 2017 13:53:13 +0000 (08:53 -0500)
committerSteve Sutton <steve@gaslightmedia.com>
Tue, 10 Jan 2017 13:53:13 +0000 (08:53 -0500)
Requiring fields on the Add even form
Intro Text
Description
Contact Name
Contact Phone
Contact Email
Some of these had required in them but if they put in a space it would
go through. Added pattern to look for something besides only spaces.

index.php
views/front/events/frontAdd.html

index 3336fb5..ead1451 100644 (file)
--- a/index.php
+++ b/index.php
@@ -3,7 +3,7 @@
  * Plugin Name: GLM Members Database Events
  * Plugin URI: http://www.gaslightmedia.com/
  * Description: Gaslight Media Members Database.
- * Version: 1.6.0
+ * Version: 1.6.1
  * Author: Chuck Scott
  * Author URI: http://www.gaslightmedia.com/
  * License: GPL2
@@ -20,7 +20,7 @@
  * @package glmMembersDatabaseEventsAddOn
  * @author Chuck Scott <cscott@gaslightmedia.com>
  * @license http://www.gaslightmedia.com Gaslightmedia
- * @version 1.6.0
+ * @version 1.6.1
  */
 
 /*
@@ -38,7 +38,7 @@
  *  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.0');
+define('GLM_MEMBERS_EVENTS_PLUGIN_VERSION', '1.6.1');
 define('GLM_MEMBERS_EVENTS_PLUGIN_DB_VERSION', '0.1.1');
 
 // This is the minimum version of the GLM Members DB plugin require for this plugin.
index 733d159..472a915 100644 (file)
@@ -40,7 +40,7 @@
         <div class="glm-add-event-form-item">
             <div class="glm-add-event-form-label"><label style="color: red;">Event Name: </label></div>
             <div class="glm-add-event-form-data">
-                <input type="text" name="event_name" value="" class="glm-form-text-input-medium glm-required" placeholder="Name of this event" required>
+                <input type="text" name="event_name" value="" class="glm-form-text-input-medium glm-required" placeholder="Name of this event" pattern=".*\S+.*" title="This field is required"  required>
             </div>
         </div>
         {if $memberOnly && $settings.use_event_amenities}
         <div class="glm-add-event-form-item">
             <div class="glm-add-event-form-label{if $event.fieldRequired.intro} glm-required{/if}"><label style="color: red;">Intro Text:</label></div>
             <div class="glm-add-event-form-data{if $event.fieldFail.intro} glm-form-bad-input" data-tabid="glm-event-descr{/if}">
-                <textarea name="intro" class="glm-form-textarea" required>{$event.fieldData.intro}</textarea>
+                <textarea id="glm-intro" name="intro" class="glm-form-textarea" pattern=".*\S+.*" title="This field is required"  required>{$event.fieldData.intro}</textarea>
             </div>
         </div>
 
                 <input type="text" name="cost" value="{$event.fieldData.cost}" class="glm-form-text-input-medium">
             </div>
         </div>
-        <div class="glm-add-event-form-item">
+        <div class="glm-add-event-form-item" id="glm-descr">
             <div class="glm-add-event-form-label"><label{if $event.fieldRequired.descr} style="color: red;"{/if}>Description:</label></div>
             <div class="glm-add-event-form-data{if $event.fieldFail.descr} glm-form-bad-input" data-tabid="glm-event-descr{/if}">
                 {php}
                     <input type="hidden" id="glm-add-event-lon" name="lon" />
                 </div>
                 <div class="glm-add-event-form-data">
-                    <input class="glm-required" name="place" maxlength="100" type="text" required>
+                    <input class="glm-required" name="place" maxlength="100" type="text" pattern=".*\S+.*" title="This field is required"  required>
                 </div>
             </div>
             <div class="glm-add-event-form-item">
                     <label style="color: red;">City</label>
                 </div>
                 <div class="glm-add-event-form-data">
-                    <input name="city" maxlength="100" type="text" class="glm-required" required>
+                    <input name="city" maxlength="100" type="text" class="glm-required" pattern=".*\S+.*" title="This field is required"  required>
                 </div>
             </div>
             <div class="glm-add-event-form-item">
                 <label style="color: red;">Contact Phone<br>(published on Web site)</label>
             </div>
             <div class="glm-add-event-form-data">
-                <input name="contact_phone" maxlength="100" type="text" class="glm-required" required>
+                <input name="contact_phone" maxlength="100" type="tel" class="glm-required" pattern="{literal}\d{3}[ \-]\d{3}[\-]\d{4}{/literal}" title="(XXX-XXX-XXXX) This field is required"  required>
             </div>
         </div>
         <div class="glm-add-event-form-item">
                 <label style="color: red;">Organization Contact Name Submitting Event</label>
             </div>
             <div class="glm-add-event-form-data">
-                <input name="admin_name" maxlength="100" type="text" class="glm-required">
+                <input name="admin_name" maxlength="100" type="text" class="glm-required" pattern="{literal}.*\S+.*{/literal}" title="This field is required"  required>
             </div>
         </div>
         <div class="glm-add-event-form-item">
                 <label style="color: red;"> Name of Organization </label>
             </div>
             <div class="glm-add-event-form-data">
-                <input name="admin_org" maxlength="100" type="text" class="glm-required">
+                <input name="admin_org" maxlength="100" type="text" class="glm-required" pattern="{literal}.*\S+.*{/literal}" title="This field is required"  required>
             </div>
         </div>
         <div class="glm-add-event-form-item">
                 <label style="color: red;">Organization Phone</label>
             </div>
             <div class="glm-add-event-form-data">
-                <input name="admin_phone" maxlength="100" type="text" class="glm-required" required>
+                <input name="admin_phone" maxlength="100" type="tel" class="glm-required" pattern="{literal}\d{3}[ \-]\d{3}[\-]\d{4}{/literal}" title="(XXX-XXX-XXXX) This field is required"  required>
             </div>
         </div>
         <div class="glm-add-event-form-item">
                 <label style="color: red;">Organization Email Address</label>
             </div>
             <div class="glm-add-event-form-data">
-                <input name="admin_email" maxlength="100" type="text" class="glm-required" required>
+                <input name="admin_email" maxlength="100" type="email" class="glm-required" pattern="{literal}[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}${/literal}" title="This field is required" required>
             </div>
         </div>
         <div class="glm-add-event-form-item">
     </div>
     <input class="button radius" id="newEvent" name='newEvent' type="submit" value="Add Event">
 </form>
+<script>
+jQuery(document).ready(function($) {
+    // function used to get everything out of the visual and text editors
+    function get_tinymce_content(){
+        tinyMCE.triggerSave();
+        return $('#glm_descr').val();
+    }
+    // Double check the form for valid entries before allowing it to be submitted.
+    $('#frontForm').submit(function(){
+        var introText = $('textarea[name=intro]').val();
+        var descrText = get_tinymce_content();
+        if ( introText.trim() === '' ) {
+            alert( 'Intro Text is empty' );
+            location.href = '#glm-intro';
+            return false;
+        }
+        if ( descrText.trim() === '' ) {
+            alert( 'Description is empty' );
+            location.href = '#glm-descr';
+            return false;
+        }
+        return true;
+    });
+});
+</script>
 {if $settings.use_venue_locations}
 <script>
 jQuery(document).ready(function($) {
@@ -439,7 +464,7 @@ jQuery(document).ready(function($) {
         if ( $(this).is(':checked') ) {
             $('#otherRefDest').val(memberId);
             // lock the venue
-            $('#otherRefDest option:not(:selected)').prop('disabled', true);;
+            $('#otherRefDest option:not(:selected)').prop('disabled', true);
         } else {
             $('#otherRefDest option').removeAttr('disabled');
         }