Fix the issue with incorrect rate_id
authorSteve Sutton <steve@gaslightmedia.com>
Wed, 18 Oct 2017 20:58:45 +0000 (16:58 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Wed, 18 Oct 2017 20:58:45 +0000 (16:58 -0400)
Have to look into the times objects when adding the registrant so as to
get the correct rate_id for adding the registrant properly.

js/frontRegApp.js
js/models/front/regRequestRegistrant.js
js/views/front/regClass.js
js/views/front/regRequestRegistrant.js
models/front/registrations/registration.php
views/front/registrations/registration.html

index d946689..c394bbc 100644 (file)
@@ -256,7 +256,7 @@ app.Models.Front.RegRequestRegistrant = Backbone.Model.extend({
         if ( attribs.lname === undefined || attribs.lname === '' ) {
             return 'Last Name Required';
         }
-        if ( attribs.email !== undefined && attribs.email !== '' ) {
+        if ( attribs.email != '' ) {
             var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
             if ( reg.test( attribs.email ) == false ) {
                 return 'Invalid Email Address';
@@ -805,7 +805,15 @@ app.Views.Front.RegClass = Backbone.View.extend({
         var zip     = this.$('.add_reg_zip').val().trim();
         var country = this.$('.add_reg_country').val().trim();
         if ( this.$('#add_reg-select-time').length ) {
-            var rTime   = this.$('#add_reg-select-time').val().trim();
+            var rTime  = this.$('#add_reg-select-time').val().trim();
+            var times  = this.model.get( 'times' );
+            var rateId = null;
+            // Setup the needed reg_rate
+            _.each( times, function( time ){
+                if ( time.id == rTime ) {
+                    rateId = time.rate_id;
+                }
+            } );
         } else {
             var rTime = null;
         }
@@ -834,7 +842,7 @@ app.Views.Front.RegClass = Backbone.View.extend({
                 reg_event: this.model.get( 'reg_event' ),
                 reg_class: this.model.get( 'id' ),
                 event_name: regEvent.get( 'event_name' ),
-                reg_rate: this.model.get( 'reg_rate_id' ),
+                reg_rate: rateId,
                 email: email,
                 fname: fname,
                 lname: lname,
@@ -984,6 +992,7 @@ app.Views.Front.RegRequestRegistrant = Backbone.View.extend({
     },
 
     update: function(){
+        var modelId = this.model.get( 'id' );
         console.log( 'updating model' );
         var fname   = this.$('.reg_fname').val().trim();
         var lname   = this.$('.reg_lname').val().trim();
@@ -994,8 +1003,8 @@ app.Views.Front.RegRequestRegistrant = Backbone.View.extend({
         var state   = this.$('.reg_state').val().trim();
         var zip     = this.$('.reg_zip').val().trim();
         var country = this.$('.reg_country').val().trim();
-        if ( this.$('#reg-select-time').length ) {
-            var rTime   = this.$('#reg-select-time').val().trim();
+        if ( this.$('#reg-time-' + modelId).length ) {
+            var rTime = this.$('#reg-time-' + modelId).val().trim();
         } else {
             var rTime = null;
         }
@@ -1023,7 +1032,11 @@ app.Views.Front.RegRequestRegistrant = Backbone.View.extend({
             reg_time: rTime
         });
         this.model.save();
+        if ( this.model.validationError ) {
+            console.log( this.model.validationError );
+        }
 
+        this.$('.reg-edit-form').hide();
     },
 
     setCalendar: function(){
index 2e972eb..75863b6 100644 (file)
@@ -36,7 +36,7 @@ app.Models.Front.RegRequestRegistrant = Backbone.Model.extend({
         if ( attribs.lname === undefined || attribs.lname === '' ) {
             return 'Last Name Required';
         }
-        if ( attribs.email !== undefined && attribs.email !== '' ) {
+        if ( attribs.email != '' ) {
             var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
             if ( reg.test( attribs.email ) == false ) {
                 return 'Invalid Email Address';
index ab545cd..66357a5 100644 (file)
@@ -115,7 +115,15 @@ app.Views.Front.RegClass = Backbone.View.extend({
         var zip     = this.$('.add_reg_zip').val().trim();
         var country = this.$('.add_reg_country').val().trim();
         if ( this.$('#add_reg-select-time').length ) {
-            var rTime   = this.$('#add_reg-select-time').val().trim();
+            var rTime  = this.$('#add_reg-select-time').val().trim();
+            var times  = this.model.get( 'times' );
+            var rateId = null;
+            // Setup the needed reg_rate
+            _.each( times, function( time ){
+                if ( time.id == rTime ) {
+                    rateId = time.rate_id;
+                }
+            } );
         } else {
             var rTime = null;
         }
@@ -144,7 +152,7 @@ app.Views.Front.RegClass = Backbone.View.extend({
                 reg_event: this.model.get( 'reg_event' ),
                 reg_class: this.model.get( 'id' ),
                 event_name: regEvent.get( 'event_name' ),
-                reg_rate: this.model.get( 'reg_rate_id' ),
+                reg_rate: rateId,
                 email: email,
                 fname: fname,
                 lname: lname,
index adcfb1e..bfc5c71 100644 (file)
@@ -18,6 +18,7 @@ app.Views.Front.RegRequestRegistrant = Backbone.View.extend({
     },
 
     update: function(){
+        var modelId = this.model.get( 'id' );
         console.log( 'updating model' );
         var fname   = this.$('.reg_fname').val().trim();
         var lname   = this.$('.reg_lname').val().trim();
@@ -28,8 +29,8 @@ app.Views.Front.RegRequestRegistrant = Backbone.View.extend({
         var state   = this.$('.reg_state').val().trim();
         var zip     = this.$('.reg_zip').val().trim();
         var country = this.$('.reg_country').val().trim();
-        if ( this.$('#reg-select-time').length ) {
-            var rTime   = this.$('#reg-select-time').val().trim();
+        if ( this.$('#reg-time-' + modelId).length ) {
+            var rTime = this.$('#reg-time-' + modelId).val().trim();
         } else {
             var rTime = null;
         }
@@ -57,7 +58,11 @@ app.Views.Front.RegRequestRegistrant = Backbone.View.extend({
             reg_time: rTime
         });
         this.model.save();
+        if ( this.model.validationError ) {
+            console.log( this.model.validationError );
+        }
 
+        this.$('.reg-edit-form').hide();
     },
 
     setCalendar: function(){
index 07603b1..7f1ca65 100644 (file)
             }
         }
 
+        echo '<pre>$regEvent: ' . print_r( $regEvent, true ) . '</pre>';
+
         // Build the regClass JSON for the template.
         $regClassJSON = '[' . implode( ',', $jsonClasses ) . ']';
         $regCartJSON = json_encode( $cart );
             } // - End loop through events.
         }
 
-
         // echo '<pre>$registrants: ' . print_r( $registrants, true ) . '</pre>';
 
-        // echo '<pre>$regEvent: ' . print_r( $cart, true ) . '</pre>';
-
         // Compile template data
         $templateData = array(
             'haveCart'          => $haveCart,
index baf75a4..5927d1e 100644 (file)
@@ -234,47 +234,47 @@ var app = {
         return regex.test(email);
     },
     {if $regEvent.time_specific.value}
-    initFullCalendar: function( isNew, idVal ){
-        return false;
-        if ({$regEvent.time_specific.value}) {
-            var calendar = $('#eventCalendar').fullCalendar({
-                {if $regEvent}
-                    events: [
-                        {$sep = ''}
-                        {foreach $regEvent.reg_class.times as $t}
-                            {$sep}{
-                              {if $t.attendee_max == 0}
-                                title : 'unlimited',
-                              {else}
-                                title : '{$t.attendee_max}-{$t.attendee_count}-{$t.attendees_pending}-{$t.attendees_available}',
-                              {/if}
-                                start : '{$t.start_datetime.datetime}',
-                                end   : '{$t.end_datetime.datetime}',
-                                allday : {if $t.all_day.value}true{else}false{/if},
-                                reg_time: {$t.id}
-                            }
-                            {$sep = ','}
-                        {/foreach}
-                    ],
-                    defaultDate : '{$regEventFirstTime.start_time.datetime}',
-                    timeFormat  : 'h:mma',
-                    fixedWeekCount : false,
-                    eventClick: function(calEvent, jsEvent, view) {
-                        $('.fc-event').css('background-color', '#3a67ad');
-                        if ( isNew ) {
-                            jQuery( '#add_reg-select-time' ).val( calEvent.reg_time );
-                            jQuery( '#add_reg-select-time-display' ).html( calEvent.start.format('L LT') );
-                        } else {
-                            jQuery( '#reg-time-' + idVal ).val( calEvent.reg_time );
-                            jQuery( '#reg-time-display-' + idVal ).html( calEvent.start.format('L LT') );
-                        }
-                        $(this).css('background-color', 'red');
-                    }
-                {/if}
-            });
-        }
-        return calendar;
-    },
+    // initFullCalendar: function( isNew, idVal ){
+    //     return false;
+    //     if ({$regEvent.time_specific.value}) {
+    //         var calendar = $('#eventCalendar').fullCalendar({
+    //             {if $regEvent}
+    //                 events: [
+    //                     {$sep = ''}
+    //                     {foreach $regEvent.reg_class.times as $t}
+    //                         {$sep}{
+    //                           {if $t.attendee_max == 0}
+    //                             title : 'unlimited',
+    //                           {else}
+    //                             title : '{$t.attendee_max}-{$t.attendee_count}-{$t.attendees_pending}-{$t.attendees_available}',
+    //                           {/if}
+    //                             start : '{$t.start_datetime.datetime}',
+    //                             end   : '{$t.end_datetime.datetime}',
+    //                             allday : {if $t.all_day.value}true{else}false{/if},
+    //                             reg_time: {$t.id}
+    //                         }
+    //                         {$sep = ','}
+    //                     {/foreach}
+    //                 ],
+    //                 defaultDate : '{$regEventFirstTime.start_time.datetime}',
+    //                 timeFormat  : 'h:mma',
+    //                 fixedWeekCount : false,
+    //                 eventClick: function(calEvent, jsEvent, view) {
+    //                     $('.fc-event').css('background-color', '#3a67ad');
+    //                     if ( isNew ) {
+    //                         jQuery( '#add_reg-select-time' ).val( calEvent.reg_time );
+    //                         jQuery( '#add_reg-select-time-display' ).html( calEvent.start.format('L LT') );
+    //                     } else {
+    //                         jQuery( '#reg-time-' + idVal ).val( calEvent.reg_time );
+    //                         jQuery( '#reg-time-display-' + idVal ).html( calEvent.start.format('L LT') );
+    //                     }
+    //                     $(this).css('background-color', 'red');
+    //                 }
+    //             {/if}
+    //         });
+    //     }
+    //     return calendar;
+    // },
     timeSpecific: true,
     {else}
     timeSpecific: false,