From: Steve Sutton Date: Wed, 18 Oct 2017 20:58:45 +0000 (-0400) Subject: Fix the issue with incorrect rate_id X-Git-Tag: v1.0.0^2~338 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/index.cgi?a=commitdiff_plain;h=4b741286abd6fb62563a223249089c5be991f34e;p=WP-Plugins%2Fglm-member-db-registrations.git Fix the issue with incorrect rate_id Have to look into the times objects when adding the registrant so as to get the correct rate_id for adding the registrant properly. --- diff --git a/js/frontRegApp.js b/js/frontRegApp.js index d946689..c394bbc 100644 --- a/js/frontRegApp.js +++ b/js/frontRegApp.js @@ -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(){ diff --git a/js/models/front/regRequestRegistrant.js b/js/models/front/regRequestRegistrant.js index 2e972eb..75863b6 100644 --- a/js/models/front/regRequestRegistrant.js +++ b/js/models/front/regRequestRegistrant.js @@ -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'; diff --git a/js/views/front/regClass.js b/js/views/front/regClass.js index ab545cd..66357a5 100644 --- a/js/views/front/regClass.js +++ b/js/views/front/regClass.js @@ -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, diff --git a/js/views/front/regRequestRegistrant.js b/js/views/front/regRequestRegistrant.js index adcfb1e..bfc5c71 100644 --- a/js/views/front/regRequestRegistrant.js +++ b/js/views/front/regRequestRegistrant.js @@ -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(){ diff --git a/models/front/registrations/registration.php b/models/front/registrations/registration.php index 07603b1..7f1ca65 100644 --- a/models/front/registrations/registration.php +++ b/models/front/registrations/registration.php @@ -203,6 +203,8 @@ } } + echo '
$regEvent: ' . print_r( $regEvent, true ) . '
'; + // Build the regClass JSON for the template. $regClassJSON = '[' . implode( ',', $jsonClasses ) . ']'; $regCartJSON = json_encode( $cart ); @@ -308,11 +310,8 @@ } // - End loop through events. } - // echo '
$registrants: ' . print_r( $registrants, true ) . '
'; - // echo '
$regEvent: ' . print_r( $cart, true ) . '
'; - // Compile template data $templateData = array( 'haveCart' => $haveCart, diff --git a/views/front/registrations/registration.html b/views/front/registrations/registration.html index baf75a4..5927d1e 100644 --- a/views/front/registrations/registration.html +++ b/views/front/registrations/registration.html @@ -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,