Working on the time selection
authorSteve Sutton <steve@gaslightmedia.com>
Wed, 1 Nov 2017 14:11:33 +0000 (10:11 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Wed, 1 Nov 2017 14:11:33 +0000 (10:11 -0400)
Passing the selected time to the new registrant model being created.

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

index 44aeca9..35120d0 100644 (file)
@@ -426,7 +426,13 @@ app.Views.Front.RegClass = Backbone.View.extend({
     },
 
     updateTimeSelection: function(){
-        this.model.set({ selectedTime: this.$('.timeSelection:checked').val() });
+        // Need to remove the newRegModal and views
+        if ( this.newRegAccount ) {
+            this.newRegAccount.destroy();
+            this.newRegAccountView.remove();
+        }
+        this.model.set({ selectedTime: parseInt( this.$('.timeSelection:checked').val() ) });
+        console.log( this.$('.timeSelection:checked').val());
     },
 
     render: function(){
@@ -447,6 +453,16 @@ app.Views.Front.RegClass = Backbone.View.extend({
         if ( loginAccount != '' && this.model.hasMe() ) {
             this.$('.glm-add-account').hide();
         }
+        if ( !app.timeSpecific ) {
+            this.$('.glm-add-new-account').show();
+        } else {
+            var sTime = this.model.get( 'selectedTime' );
+            if ( !sTime ) {
+                this.$('.glm-add-new-account').hide();
+            } else {
+                this.$('.glm-add-new-account').show();
+            }
+        }
         return this;
     },
 
@@ -457,7 +473,7 @@ app.Views.Front.RegClass = Backbone.View.extend({
             var testDate = new Date( time.start_datetime.datetime );
             timeParts.push( {id: time.id,date: testDate} );
         });
-        console.log( timeParts );
+        // console.log( timeParts );
         return timeParts;
     },
 
@@ -540,25 +556,28 @@ app.Views.Front.RegClass = Backbone.View.extend({
         var state   = this.$('.add_reg_state').val().trim();
         var zip     = this.$('.add_reg_zip').val().trim();
         var country = this.$('.add_reg_country').val().trim();
+        if ( app.timeSpecific ) {
+            var sTime = this.model.get( 'selectedTime' );
+        } else {
+            var sTime = null;
+        }
         if ( this.$('#add_reg-select-time').length ) {
-            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 ) {
+                if ( time.id == sTime ) {
                     rateId = time.rate_id;
                 }
             } );
         } else {
-            var rTime  = null;
             var times  = this.model.get( 'times' );
             var rateId = null;
             _.each( times, function( time ){
                 rateId = time.rate_id;
             } );
         }
-        if ( app.timeSpecific && !rTime ) {
+        if ( app.timeSpecific && !sTime ) {
             alert( 'You must select a time!' );
             return;
         }
@@ -579,7 +598,7 @@ app.Views.Front.RegClass = Backbone.View.extend({
             this.model.registrants.create({
                 option: 'add',
                 reg_request: regRequest.id,
-                reg_time: rTime,
+                reg_time: sTime,
                 reg_event: this.model.get( 'reg_event' ),
                 reg_class: this.model.get( 'id' ),
                 event_name: regEvent.get( 'event_name' ),
@@ -597,13 +616,13 @@ app.Views.Front.RegClass = Backbone.View.extend({
         }
         // this.newRegAccount.destroy();
         this.newRegAccountView.remove();
-        app.calendar = false;
+        // app.calendar = false;
     },
 
     cancelAddNew: function(){
         // this.newRegAccount.destroy();
         this.newRegAccountView.remove();
-        app.calendar = false;
+        // app.calendar = false;
         if ( loginAccount != '' && this.model.hasMe() ) {
             this.$('.glm-add-account').hide();
             // console.log('hiding');
@@ -615,12 +634,13 @@ app.Views.Front.RegClass = Backbone.View.extend({
 
     addNewAccount: function(){
         // Create the new Registrant View
-        this.newRegAccount     = new app.Models.Front.RegRequestRegistrant();
-        this.newRegAccountView = new app.Views.Front.RegistrantForm({model: this.newRegAccount});
-        this.$el.append( this.newRegAccountView.render().el );
         if ( app.timeSpecific ) {
-            // this.setCalendar();
+            this.newRegAccount = new app.Models.Front.RegRequestRegistrant({ reg_time: this.model.get( 'selectedTime' ) });
+        } else {
+            this.newRegAccount = new app.Models.Front.RegRequestRegistrant();
         }
+        this.newRegAccountView = new app.Views.Front.RegistrantForm({model: this.newRegAccount});
+        this.$el.append( this.newRegAccountView.render().el );
     },
 
     toggleClassOpen: function(){
index 162fa0a..305954a 100644 (file)
@@ -27,7 +27,13 @@ app.Views.Front.RegClass = Backbone.View.extend({
     },
 
     updateTimeSelection: function(){
-        this.model.set({ selectedTime: this.$('.timeSelection:checked').val() });
+        // Need to remove the newRegModal and views
+        if ( this.newRegAccount ) {
+            this.newRegAccount.destroy();
+            this.newRegAccountView.remove();
+        }
+        this.model.set({ selectedTime: parseInt( this.$('.timeSelection:checked').val() ) });
+        console.log( this.$('.timeSelection:checked').val());
     },
 
     render: function(){
@@ -48,6 +54,16 @@ app.Views.Front.RegClass = Backbone.View.extend({
         if ( loginAccount != '' && this.model.hasMe() ) {
             this.$('.glm-add-account').hide();
         }
+        if ( !app.timeSpecific ) {
+            this.$('.glm-add-new-account').show();
+        } else {
+            var sTime = this.model.get( 'selectedTime' );
+            if ( !sTime ) {
+                this.$('.glm-add-new-account').hide();
+            } else {
+                this.$('.glm-add-new-account').show();
+            }
+        }
         return this;
     },
 
@@ -58,7 +74,7 @@ app.Views.Front.RegClass = Backbone.View.extend({
             var testDate = new Date( time.start_datetime.datetime );
             timeParts.push( {id: time.id,date: testDate} );
         });
-        console.log( timeParts );
+        // console.log( timeParts );
         return timeParts;
     },
 
@@ -141,25 +157,28 @@ app.Views.Front.RegClass = Backbone.View.extend({
         var state   = this.$('.add_reg_state').val().trim();
         var zip     = this.$('.add_reg_zip').val().trim();
         var country = this.$('.add_reg_country').val().trim();
+        if ( app.timeSpecific ) {
+            var sTime = this.model.get( 'selectedTime' );
+        } else {
+            var sTime = null;
+        }
         if ( this.$('#add_reg-select-time').length ) {
-            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 ) {
+                if ( time.id == sTime ) {
                     rateId = time.rate_id;
                 }
             } );
         } else {
-            var rTime  = null;
             var times  = this.model.get( 'times' );
             var rateId = null;
             _.each( times, function( time ){
                 rateId = time.rate_id;
             } );
         }
-        if ( app.timeSpecific && !rTime ) {
+        if ( app.timeSpecific && !sTime ) {
             alert( 'You must select a time!' );
             return;
         }
@@ -180,7 +199,7 @@ app.Views.Front.RegClass = Backbone.View.extend({
             this.model.registrants.create({
                 option: 'add',
                 reg_request: regRequest.id,
-                reg_time: rTime,
+                reg_time: sTime,
                 reg_event: this.model.get( 'reg_event' ),
                 reg_class: this.model.get( 'id' ),
                 event_name: regEvent.get( 'event_name' ),
@@ -198,13 +217,13 @@ app.Views.Front.RegClass = Backbone.View.extend({
         }
         // this.newRegAccount.destroy();
         this.newRegAccountView.remove();
-        app.calendar = false;
+        // app.calendar = false;
     },
 
     cancelAddNew: function(){
         // this.newRegAccount.destroy();
         this.newRegAccountView.remove();
-        app.calendar = false;
+        // app.calendar = false;
         if ( loginAccount != '' && this.model.hasMe() ) {
             this.$('.glm-add-account').hide();
             // console.log('hiding');
@@ -216,12 +235,13 @@ app.Views.Front.RegClass = Backbone.View.extend({
 
     addNewAccount: function(){
         // Create the new Registrant View
-        this.newRegAccount     = new app.Models.Front.RegRequestRegistrant();
-        this.newRegAccountView = new app.Views.Front.RegistrantForm({model: this.newRegAccount});
-        this.$el.append( this.newRegAccountView.render().el );
         if ( app.timeSpecific ) {
-            // this.setCalendar();
+            this.newRegAccount = new app.Models.Front.RegRequestRegistrant({ reg_time: this.model.get( 'selectedTime' ) });
+        } else {
+            this.newRegAccount = new app.Models.Front.RegRequestRegistrant();
         }
+        this.newRegAccountView = new app.Views.Front.RegistrantForm({model: this.newRegAccount});
+        this.$el.append( this.newRegAccountView.render().el );
     },
 
     toggleClassOpen: function(){
index 613afea..5ac79ed 100644 (file)
 
         $registrants = array();
 
-        // echo '<pre>$cart: ' . print_r( $cart, true ) . '</pre>';
+        echo '<pre>$cart: ' . print_r( $cart, true ) . '</pre>';
         // Looping through to grab out registrants from the cart.
         if ( isset( $cart['events'] ) && is_array( $cart['events'] ) ) {
 
             } // - End loop through events.
         }
 
-        // echo '<pre>$registrants: ' . print_r( $registrants, true ) . '</pre>';
+        echo '<pre>$registrants: ' . print_r( $registrants, true ) . '</pre>';
 
         // Compile template data
         $templateData = array(
index d87b032..b556234 100644 (file)
         <div class="glm-columns glm-small-12 glm-large-12">
             <div class="glm-row">
                 <span class="glm-reg-level-title"><%= name %></span>
-                <span class="reg-class-count"><%= reg_count %>  {/literal}{$terms.reg_term_attendee_plur_cap}{literal}</span>
+                <span class="reg-class-count"><%= reg_count %>
+                    <% if ( reg_count == 1 ) { %>
+                        {/literal}{$terms.reg_term_attendee_cap}{literal}
+                    <% } else { %>
+                        {/literal}{$terms.reg_term_attendee_plur_cap}{literal}
+                    <% } %>
+                </span>
                 <div class="glm-columns glm-small-12">
                     <%- descr %>
                 </div>
                     <b>Select a time</b>
                     <% _.each( this.getTimeArray(), function(time){ %>
                     <label>
-                        <input class="timeSelection" type="radio" name="timeOption" value="<%= time.id %>" /> <%= time.date.toLocaleTimeString('en-US', {hour: '2-digit', minute: '2-digit'}) %>
+                        <input class="timeSelection" type="radio" name="timeOption" value="<%= time.id %>"
+                        <% if ( selectedTime == time.id ) { %>
+                            checked
+                        <% } %>
+                        /> <%= time.date.toLocaleTimeString('en-US', {hour: '2-digit', minute: '2-digit'}) %>
                     </label>
                     <% }); %>
                 </div>
@@ -215,7 +225,6 @@ var app = {
     {else}
         timeSpecific: false,
     {/if}
-    calendar: false,
 };
 var regEvent = '';
 var cart = '';