From: Steve Sutton Date: Tue, 12 Sep 2017 18:15:54 +0000 (-0400) Subject: Working on the add class to admin reg level X-Git-Tag: v1.0.0^2~416 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/index.cgi?a=commitdiff_plain;h=dea3bec53b96fd34a88e7b98a9e55d9f5bcc35c4;p=WP-Plugins%2Fglm-member-db-registrations.git Working on the add class to admin reg level It is adding the class level into the regEvent classes collection. I have it setup for localStorage right now. --- diff --git a/js/adminRegApp.js b/js/adminRegApp.js index 4833fb9..c0a020f 100644 --- a/js/adminRegApp.js +++ b/js/adminRegApp.js @@ -1 +1 @@ -app.Models.Admin.RegClass=Backbone.Model.extend({defaults:{id:"new",reg_event:0,name:"",descr:""},initialize:function(){this.rates=new app.Collections.Admin.RegRates}}),app.Models.Admin.RegEvent=Backbone.Model.extend({defaults:{name:"regEvent",event_name:"",event_code:"",notify_email:"",attendees_max:0,attendees_max_per_reg:0,reg_hold_minutes:0,cart_hold_days:0,terms:""},initialize:function(){this.classes=new app.Collections.Admin.RegClasses},setClasses:function(e){this.classes.reset(e)}}),app.Models.Admin.RegRate=Backbone.Model.extend({defaults:{reg_event:0,reg_class:"",name:"",start_days:0,end_days:0,base_rate:0,per_registrant:0,registrant_credits:0},initialize:function(){}}),app.Collections.Admin.RegClasses=Backbone.Collection.extend({model:app.Models.Admin.RegClass}),app.Collections.Admin.RegRates=Backbone.Collection.extend({model:app.Models.Admin.RegRate}),Backbone.emulateJSON=!0,Backbone.emulateHTTP=!0,app.Views.Admin.EventEditLevels=Backbone.View.extend({el:"#regApp",initialize:function(){this.event=new app.Views.Admin.RegEvent({model:regEvent}),this.render()},render:function(){return this.$el.append(this.event.render().el),this},events:{}}),app.Views.Admin.RegClass=Backbone.View.extend({tagName:"div",className:"glm-reg-level",template:_.template(jQuery("#regClass-template").html()),initialize:function(){return this.listenTo(this.model,"change",this.updateCount),this},events:{"click .edit-level":"editLevel"},editLevel:function(){this.$(".class-edit-form").show(),this.$(".class-label").hide(),this.$(".class-name").focus()},render:function(){return this.$el.html(this.template(this.model.toJSON())),this},addOne:function(e){if(e.isValid()){var t=new app.Views.Admin.Account({model:e});this.$el.append(t.render().el)}},addAll:function(){jQuery(".glm-reg-level").html("")}}),app.Views.Admin.RegEvent=Backbone.View.extend({tagName:"div",className:"glm-reg-event-item clearfix",template:_.template(jQuery("#regEvent-template").html()),initialize:function(){this.listenTo(this.model,"change",this.render)},events:{"click .add-reg-level":"addLevel"},addLevel:function(){console.log("Add Level Called");var e=new app.Views.Admin.RegClass({model:new app.Models.Admin.RegClass});this.$el.append(e.render().el)},render:function(){this.$el.html(this.template(this.model.toJSON()));var e=regEvent.classes.map(function(e){return new app.Views.Admin.RegClass({model:e}).render().el});return this.$el.append(e),this}}); \ No newline at end of file +app.Models.Admin.RegClass=Backbone.Model.extend({defaults:{id:null,parent:0,reg_event:0,name:"",descr:""},initialize:function(){this.rates=new app.Collections.Admin.RegRates}}),app.Models.Admin.RegEvent=Backbone.Model.extend({defaults:{name:"regEvent",event_name:"",event_code:"",notify_email:"",attendees_max:0,attendees_max_per_reg:0,reg_hold_minutes:0,cart_hold_days:0,terms:""},initialize:function(){this.classes=new app.Collections.Admin.RegClasses},setClasses:function(e){this.classes.reset(e)}}),app.Models.Admin.RegRate=Backbone.Model.extend({defaults:{reg_event:0,reg_class:"",name:"",start_days:0,end_days:0,base_rate:0,per_registrant:0,registrant_credits:0},initialize:function(){}}),app.Collections.Admin.RegClasses=Backbone.Collection.extend({model:app.Models.Admin.RegClass,localStorage:new Backbone.LocalStorage("Classes")}),app.Collections.Admin.RegRates=Backbone.Collection.extend({model:app.Models.Admin.RegRate}),Backbone.emulateJSON=!0,Backbone.emulateHTTP=!0,app.Views.Admin.EventEditLevels=Backbone.View.extend({el:"#regApp",initialize:function(){this.event=new app.Views.Admin.RegEvent({model:regEvent}),this.render()},render:function(){return this.$el.append(this.event.render().el),this},events:{}}),app.Views.Admin.RegClass=Backbone.View.extend({tagName:"div",className:"glm-reg-level",template:_.template(jQuery("#regClass-template").html()),initialize:function(){return this.listenTo(this.model,"change",this.render),this},events:{"click .edit-level":"editLevel","click .class-update":"update","click .class-add":"add","click .class-cancel":"cancel"},update:function(){console.log("Update called");var e=this.$(".class-name").val().trim(),t=this.$(".class-descr").val().trim();this.model.save({name:e,descr:t}),this.$(".class-edit-form").hide(),this.$(".class-label").show()},add:function(){console.log("Add called");var e=this.$(".class-name").val().trim(),t=this.$(".class-descr").val().trim();this.model.set({name:e,descr:t}),this.model.get("parent").classes.create(this.model)},cancel:function(){console.log("Cancel called"),this.remove()},editLevel:function(){this.$(".class-edit-form").show(),this.$(".class-label").hide(),this.$(".class-name").focus()},render:function(){return this.$el.html(this.template(this.model.toJSON())),this},addOne:function(e){if(e.isValid()){var t=new app.Views.Admin.RegClasses({model:e});this.$el.append(t.render().el)}},addAll:function(){jQuery(".glm-reg-level").html("")}}),app.Views.Admin.RegEvent=Backbone.View.extend({tagName:"div",className:"glm-reg-event-item clearfix",template:_.template(jQuery("#regEvent-template").html()),initialize:function(){this.listenTo(this.model,"change",this.render),this.listenTo(this.model.classes,"add",this.addOne),this.listenTo(this.model.classes,"create",this.addOne),this.listenTo(this.model.classes,"reset",this.addAll)},events:{"click .add-reg-level":"addLevel"},addLevel:function(){console.log("Add Level Called");var e=new app.Models.Admin.RegClass({parent:this.model}),t=new app.Views.Admin.RegClass({model:e});this.$el.append(t.render().el)},render:function(){this.$el.html(this.template(this.model.toJSON()));var e=regEvent.classes.map(function(e){return new app.Views.Admin.RegClass({model:e}).render().el});return this.$el.append(e),this}}); \ No newline at end of file diff --git a/js/collections/admin/regClasses.js b/js/collections/admin/regClasses.js index 7c25470..5c226b3 100644 --- a/js/collections/admin/regClasses.js +++ b/js/collections/admin/regClasses.js @@ -4,4 +4,6 @@ app.Collections.Admin.RegClasses = Backbone.Collection.extend({ model: app.Models.Admin.RegClass, + localStorage: new Backbone.LocalStorage( 'Classes' ), + }); diff --git a/js/models/admin/regClass.js b/js/models/admin/regClass.js index 53d2e29..1ba7314 100644 --- a/js/models/admin/regClass.js +++ b/js/models/admin/regClass.js @@ -5,7 +5,8 @@ app.Models.Admin.RegClass = Backbone.Model.extend({ // Defaults defaults: { - id: 'new', + id: null, + parent: 0, reg_event: 0, name: '', descr: '', diff --git a/js/views/admin/regClass.js b/js/views/admin/regClass.js index 6abc32a..c93331d 100644 --- a/js/views/admin/regClass.js +++ b/js/views/admin/regClass.js @@ -8,12 +8,39 @@ app.Views.Admin.RegClass = Backbone.View.extend({ template: _.template( jQuery('#regClass-template').html() ), initialize: function(){ - this.listenTo( this.model, 'change', this.updateCount ); + this.listenTo( this.model, 'change', this.render ); return this; }, events: { - 'click .edit-level': 'editLevel' + 'click .edit-level': 'editLevel', + 'click .class-update': 'update', + 'click .class-add': 'add', + 'click .class-cancel': 'cancel', + }, + + update: function(){ + console.log('Update called'); + var cName = this.$('.class-name').val().trim(); + var cDescr = this.$('.class-descr').val().trim(); + this.model.save({ name: cName, descr: cDescr }); + this.$('.class-edit-form').hide(); + this.$('.class-label').show(); + }, + + add: function(){ + console.log('Add called'); + var cName = this.$('.class-name').val().trim(); + var cDescr = this.$('.class-descr').val().trim(); + this.model.set({ name: cName, descr: cDescr }); + // Add this new model to the collection. + var parentEvent = this.model.get( 'parent' ); + parentEvent.classes.create( this.model ); + }, + + cancel: function(){ + console.log('Cancel called'); + this.remove(); }, editLevel: function(){ @@ -29,7 +56,7 @@ app.Views.Admin.RegClass = Backbone.View.extend({ addOne: function( item ){ if ( item.isValid() ) { - var view = new app.Views.Admin.Account({ model: item }); + var view = new app.Views.Admin.RegClasses({ model: item }); this.$el.append( view.render().el ); } }, diff --git a/js/views/admin/regEvent.js b/js/views/admin/regEvent.js index cfec333..e1ca8e7 100644 --- a/js/views/admin/regEvent.js +++ b/js/views/admin/regEvent.js @@ -12,16 +12,23 @@ app.Views.Admin.RegEvent = Backbone.View.extend({ // Called when the view is first created initialize: function(){ this.listenTo( this.model, 'change', this.render ); + this.listenTo( this.model.classes, 'add', this.addOne ); + this.listenTo( this.model.classes, 'create', this.addOne ); + this.listenTo( this.model.classes, 'reset', this.addAll ); }, events: { 'click .add-reg-level': 'addLevel', + //'click .class-add': 'add', }, addLevel: function(){ console.log( 'Add Level Called' ); // create a new view and model and add it to classes and call render. - var view = new app.Views.Admin.RegClass({ model: new app.Models.Admin.RegClass }); + // Create the model for the view and add it to the collection + var regClass = new app.Models.Admin.RegClass({ parent: this.model }); + //this.model.classes.add( regClass ); + var view = new app.Views.Admin.RegClass({ model: regClass }); this.$el.append(view.render().el); }, diff --git a/js/views/front/account.js b/js/views/front/account.js index 335e360..6567c71 100644 --- a/js/views/front/account.js +++ b/js/views/front/account.js @@ -41,7 +41,7 @@ app.Views.Front.Account = Backbone.View.extend({ var regemail = this.$emailInput.val().trim(); if ( regemail ) { - this.model.save({ email: regemail }); + this.model.save({ email: regemail }); } else { this.clear(); // NEW } diff --git a/views/admin/registrations/eventEditLevels.html b/views/admin/registrations/eventEditLevels.html index b9a6883..6fdb4f9 100644 --- a/views/admin/registrations/eventEditLevels.html +++ b/views/admin/registrations/eventEditLevels.html @@ -29,35 +29,29 @@

Registration Levels

Add Level - - {/literal}