From e9907ac79054aeedef9ef63ed697c6baef1a3d8d Mon Sep 17 00:00:00 2001 From: Steve Sutton Date: Fri, 8 Sep 2017 14:50:24 -0400 Subject: [PATCH] More re-organizing the javascript files. Setting up a global eventReg instead of trying to use app.Models.eventReg. --- js/collections/admin/regClasses.js | 7 ++ js/collections/admin/regRates.js | 8 ++ js/collections/front/accounts.js | 13 +-- js/collections/front/regClasses.js | 4 +- js/collections/front/regRates.js | 4 +- .../admin/{regAdminClass.js => regClass.js} | 4 +- .../admin/{regAdminEvent.js => regEvent.js} | 4 +- js/models/admin/regRate.js | 23 +++++ js/models/front/account.js | 2 +- js/models/front/accountDetail.js | 2 +- js/models/front/login.js | 2 +- js/models/front/regClass.js | 4 +- js/models/front/regEvent.js | 4 +- js/models/front/regRate.js | 2 +- js/regApp.js | 2 +- js/views/admin/adminRegClass.js | 86 ------------------- js/views/admin/eventEditLevels.js | 16 +--- js/views/admin/regClass.js | 40 +++++++++ .../admin/{adminRegEvent.js => regEvent.js} | 6 +- js/views/front/account.js | 2 +- js/views/front/app.js | 11 +-- js/views/front/login.js | 2 +- js/views/front/regClass.js | 4 +- js/views/front/regEvent.js | 6 +- .../admin/registrations/eventEditLevels.html | 16 ++-- views/front/registrations/registration.html | 15 ++-- 26 files changed, 128 insertions(+), 161 deletions(-) create mode 100644 js/collections/admin/regClasses.js create mode 100644 js/collections/admin/regRates.js rename js/models/admin/{regAdminClass.js => regClass.js} (65%) rename js/models/admin/{regAdminEvent.js => regEvent.js} (81%) create mode 100644 js/models/admin/regRate.js delete mode 100644 js/views/admin/adminRegClass.js create mode 100644 js/views/admin/regClass.js rename js/views/admin/{adminRegEvent.js => regEvent.js} (71%) diff --git a/js/collections/admin/regClasses.js b/js/collections/admin/regClasses.js new file mode 100644 index 0000000..7c25470 --- /dev/null +++ b/js/collections/admin/regClasses.js @@ -0,0 +1,7 @@ +// js/collections/classes.js + +// Classes Collection +app.Collections.Admin.RegClasses = Backbone.Collection.extend({ + model: app.Models.Admin.RegClass, + +}); diff --git a/js/collections/admin/regRates.js b/js/collections/admin/regRates.js new file mode 100644 index 0000000..aaaf8e2 --- /dev/null +++ b/js/collections/admin/regRates.js @@ -0,0 +1,8 @@ +// js/collections/regRates.js + +// Registration Rate Collection +app.Collections.Admin.RegRates = Backbone.Collection.extend({ + model: app.Models.Admin.RegRate, + + // localStorage +}); diff --git a/js/collections/front/accounts.js b/js/collections/front/accounts.js index b98ec57..5055e74 100644 --- a/js/collections/front/accounts.js +++ b/js/collections/front/accounts.js @@ -1,20 +1,11 @@ // js/collections/accounts.js // Event Registrant collection -app.Collections.Accounts = Backbone.Collection.extend({ - model: app.Models.Account, +app.Collections.Front.Accounts = Backbone.Collection.extend({ + model: app.Models.Front.Account, localStorage: new Backbone.LocalStorage( 'Accounts' ), - // create: function( item ) { - // console.log( item ); - // localStorage.setItem( - // 'Account_' + item.colName, - // JSON.stringify( item ) - // ); - // return item.save(); - // }, - sync: function( method, model, options ){ console.log('sync called on collection. method: ' + method ); }, diff --git a/js/collections/front/regClasses.js b/js/collections/front/regClasses.js index 2e11e2b..3878513 100644 --- a/js/collections/front/regClasses.js +++ b/js/collections/front/regClasses.js @@ -1,7 +1,7 @@ // js/collections/classes.js // Classes Collection -app.Collections.RegClasses = Backbone.Collection.extend({ - model: app.Models.RegClass, +app.Collections.Front.RegClasses = Backbone.Collection.extend({ + model: app.Models.Front.RegClass, }); diff --git a/js/collections/front/regRates.js b/js/collections/front/regRates.js index e66fc01..ef101ce 100644 --- a/js/collections/front/regRates.js +++ b/js/collections/front/regRates.js @@ -1,8 +1,8 @@ // js/collections/regRates.js // Registration Rate Collection -app.Collections.RegRates = Backbone.Collection.extend({ - model: app.Models.RegRate, +app.Collections.Front.RegRates = Backbone.Collection.extend({ + model: app.Models.Front.RegRate, // localStorage }); diff --git a/js/models/admin/regAdminClass.js b/js/models/admin/regClass.js similarity index 65% rename from js/models/admin/regAdminClass.js rename to js/models/admin/regClass.js index 56ec5fa..31ec135 100644 --- a/js/models/admin/regAdminClass.js +++ b/js/models/admin/regClass.js @@ -1,7 +1,7 @@ // js/models/regAdminClass.js // Admin Registration Class model -app.Models.AdminRegClass = Backbone.Model.extend({ +app.Models.Admin.RegClass = Backbone.Model.extend({ // Defaults defaults: { @@ -11,7 +11,7 @@ app.Models.AdminRegClass = Backbone.Model.extend({ }, initialize: function(){ - this.rates = new app.Collections.Rates; + this.rates = new app.Collections.Admin.RegRates; }, }); diff --git a/js/models/admin/regAdminEvent.js b/js/models/admin/regEvent.js similarity index 81% rename from js/models/admin/regAdminEvent.js rename to js/models/admin/regEvent.js index 666ebe9..f276af3 100644 --- a/js/models/admin/regAdminEvent.js +++ b/js/models/admin/regEvent.js @@ -1,7 +1,7 @@ // js/models/regAdminEvent.js // Event Reg model -app.Models.AdminRegEvent = Backbone.Model.extend({ +app.Models.Admin.RegEvent = Backbone.Model.extend({ // Default regEvent values defaults: { @@ -18,7 +18,7 @@ app.Models.AdminRegEvent = Backbone.Model.extend({ initialize: function(){ // for setting up classes - this.classes = new app.Collections.RegClasses; + this.classes = new app.Collections.Admin.RegClasses; }, setClasses: function( regClasses ){ diff --git a/js/models/admin/regRate.js b/js/models/admin/regRate.js new file mode 100644 index 0000000..be92467 --- /dev/null +++ b/js/models/admin/regRate.js @@ -0,0 +1,23 @@ +// js/models/regRate.js + +// Event Reg model + +app.Models.Admin.RegRate = Backbone.Model.extend({ + + // Default regRate values + defaults: { + reg_event: 0, + reg_class: '', + name: '', + start_days: 0, + end_days: 0, + base_rate: 0.0, + per_registrant: 0.0, + registrant_credits: 0 + }, + + initialize: function(){ + // for setting up classes + }, + +}); diff --git a/js/models/front/account.js b/js/models/front/account.js index 979d9d2..b9f0771 100644 --- a/js/models/front/account.js +++ b/js/models/front/account.js @@ -1,7 +1,7 @@ // js/models/account.js // Event Registrant Model -app.Models.Account = Backbone.Model.extend({ +app.Models.Front.Account = Backbone.Model.extend({ // Default registrant values defaults: { diff --git a/js/models/front/accountDetail.js b/js/models/front/accountDetail.js index e07c243..d59d4cb 100644 --- a/js/models/front/accountDetail.js +++ b/js/models/front/accountDetail.js @@ -1,7 +1,7 @@ // js/models/accountDetail.js // Event Registrant Detail Model -app.Models.AccountDetail = app.Models.Account.extend({ +app.Models.Front.AccountDetail = app.Models.Front.Account.extend({ // Default registrant values defaults: { id: '', diff --git a/js/models/front/login.js b/js/models/front/login.js index 1098f07..270ad76 100644 --- a/js/models/front/login.js +++ b/js/models/front/login.js @@ -1,7 +1,7 @@ // js/models/login.js // Login Model -app.Models.Login = Backbone.Model.extend({ +app.Models.Front.Login = Backbone.Model.extend({ defaults: { username: '', diff --git a/js/models/front/regClass.js b/js/models/front/regClass.js index b5fceba..1dc6450 100644 --- a/js/models/front/regClass.js +++ b/js/models/front/regClass.js @@ -1,7 +1,7 @@ // js/models/regClass.js // Registration Class Model -app.Models.RegClass = Backbone.Model.extend({ +app.Models.Front.RegClass = Backbone.Model.extend({ // Defaults defaults: { @@ -15,7 +15,7 @@ app.Models.RegClass = Backbone.Model.extend({ }, initialize: function(){ - this.accounts = new app.Collections.Accounts; + this.accounts = new app.Collections.Front.Accounts; //this.accounts.fetch(); }, diff --git a/js/models/front/regEvent.js b/js/models/front/regEvent.js index fc654cb..6a6ed67 100644 --- a/js/models/front/regEvent.js +++ b/js/models/front/regEvent.js @@ -1,7 +1,7 @@ // js/models/regEvent.js // Event Reg model -app.Models.RegEvent = Backbone.Model.extend({ +app.Models.Front.RegEvent = Backbone.Model.extend({ // Default regEvent values defaults: { @@ -18,7 +18,7 @@ app.Models.RegEvent = Backbone.Model.extend({ initialize: function(){ // for setting up classes - this.classes = new app.Collections.RegClasses; + this.classes = new app.Collections.Front.RegClasses; }, setClasses: function( regClasses ){ diff --git a/js/models/front/regRate.js b/js/models/front/regRate.js index 59f7ef2..6a59b49 100644 --- a/js/models/front/regRate.js +++ b/js/models/front/regRate.js @@ -2,7 +2,7 @@ // Event Reg model -app.Models.regRate = Backbone.Model.extend({ +app.Models.Front.regRate = Backbone.Model.extend({ // Default regRate values defaults: { diff --git a/js/regApp.js b/js/regApp.js index ab86387..0884735 100644 --- a/js/regApp.js +++ b/js/regApp.js @@ -1 +1 @@ -app.Models.Account=Backbone.Model.extend({defaults:{id:"",email:"",parent:""},initialize:function(){this.on("invalid",function(e,t){console.log(t)})},validate:function(e,t){if(void 0===e.email||""===e.email)return"Need an email address!"}}),app.Models.AccountDetail=app.Models.Account.extend({defaults:{id:"",fname:"",lname:"",org:"",title:"",addr1:"",addr2:"",city:"",state:"",zip:"",country:"",phone:"",fax:"",email_ok:!1,is_member:!1,date_created:"",email:"",parent:""}}),app.Models.Login=Backbone.Model.extend({defaults:{username:"",password:""},urlRoot:appLoginUrl,initialize:function(){this.on("invalid",function(e,t){console.log(t)})},validate:function(e,t){return void 0===e.username||""===e.username?"Username required!":void 0===e.password||""===e.password?"Password required!":void 0}}),app.Models.RegClass=Backbone.Model.extend({defaults:{reg_event:0,name:"",descr:"",reg_rate_name:"",reg_rate_base_price:"",reg_rate_per_reg:"",reg_count:0},initialize:function(){this.accounts=new app.Collections.Accounts}}),app.Models.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.RegClasses},setClasses:function(e){this.classes.reset(e)}}),app.Models.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.Models.AdminRegClass=Backbone.Model.extend({defaults:{reg_event:0,name:"",descr:""},initialize:function(){this.rates=new app.Collections.Rates}}),app.Models.AdminRegEvent=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.RegClasses},setClasses:function(e){this.classes.reset(e)}}),app.Collections.Accounts=Backbone.Collection.extend({model:app.Models.Account,localStorage:new Backbone.LocalStorage("Accounts"),sync:function(e,t,i){console.log("sync called on collection. method: "+e)}}),app.Collections.RegClasses=Backbone.Collection.extend({model:app.Models.RegClass}),app.Collections.RegRates=Backbone.Collection.extend({model:app.Models.RegRate}),app.Views.Account=Backbone.View.extend({tagName:"div",className:"glm-reg-level-registrant clearfix",template:_.template(jQuery("#account-template").html()),events:{"click label":"edit","click .glm-reg-level-registrant-delete":"deleteOne","click .saveRegistrant":"close"},initialize:function(){return this.listenTo(this.model,"change",this.render),this.listenTo(this.model,"destroy",this.remove),this},render:function(){return this.$el.html(this.template(this.model.toJSON())),this.$nameInput=this.$(".editName"),this.$emailInput=this.$(".editEmail"),this},deleteOne:function(){this.model.destroy()},edit:function(){this.$el.addClass("editing"),this.$nameInput.focus()},close:function(){var e=this.$nameInput.val().trim(),t=this.$emailInput.val().trim();e&&t?this.model.save({name:e,email:t}):this.clear(),this.$el.removeClass("editing")}}),Backbone.emulateJSON=!0,Backbone.emulateHTTP=!0,app.Views.App=Backbone.View.extend({el:"#regApp",initialize:function(){this.event=new app.Views.RegEvent({model:app.Models.regEvent}),this.render()},render:function(){return this.$el.append(this.event.render().el),this},events:{"click #appLogin":"login"},login:function(){this.loginView=new app.Views.Login({model:new app.Models.Login}),this.$el.append(this.loginView.render().el),jQuery("#appLogin").hide()}}),app.Views.Login=Backbone.View.extend({tagName:"div",className:"glm-reg-login",template:_.template(jQuery("#eventReg-account-login").html()),events:{"click .accountLogin":"loginToAccount","click #loginCancel":"closeLoginForm"},initialize:function(){return this},closeLoginForm:function(){this.remove(),jQuery("#appLogin").show()},loginToAccount:function(){jQuery.ajax({url:ajaxUrl})},render:function(){return this.$el.html(this.template(this.model.toJSON())),this.$userInput=jQuery(".login"),this.$pwdInput=jQuery(".password"),this}}),app.Views.RegClass=Backbone.View.extend({tagName:"div",className:"glm-reg-level",template:_.template(jQuery("#regClass-template").html()),initialize:function(){return this.listenTo(this.model.accounts,"add",this.addOne),this.listenTo(this.model.accounts,"create",this.addOne),this.listenTo(this.model.accounts,"reset",this.addAll),this.listenTo(this.model,"change",this.updateCount),this},events:{"click .addRegistrant":"newEntry"},newEntry:function(){this.$newEmail=jQuery(".addEmail"),this.$newEmail.val().trim()&&jQuery.ajax({context:this,url:ajaxUrl+"&glm_action=account&option=checkEmail",dataType:"json",data:"email="+this.$newEmail.val().trim()}).done(function(e){!0!==e.validEmail?alert("Must be a valid email address!"):!0!==e.valid?alert("No account matched that email address!"):void 0!==e.id&&void 0!==e.email&&(this.model.accounts.create({id:e.id,email:e.email,parent:this.model.id}),this.model.trigger("change"),this.$newEmail.val(""))}).fail(function(e){console.log("Fail: "+e)})},render:function(){return this.$el.html(this.template(this.model.toJSON())),this},updateCount:function(){return this.model.reg_count=this.model.accounts.length,console.log("Updating Count: "+this.model.reg_count),this.render,this},addOne:function(e){if(e.isValid()){var t=new app.Views.Account({model:e});this.$el.append(t.render().el)}},addAll:function(){jQuery(".glm-reg-level").html("")}}),app.Views.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)},render:function(){this.$el.html(this.template(this.model.toJSON()));var e=app.Models.regEvent.classes.map(function(e){return new app.Views.RegClass({model:e}).render().el});return this.$el.append(e),this}}),app.Views.AdminRegClass=Backbone.View.extend({tagName:"div",className:"glm-reg-level",template:_.template(jQuery("#regClass-template").html()),initialize:function(){return this.listenTo(this.model.accounts,"add",this.addOne),this.listenTo(this.model.accounts,"create",this.addOne),this.listenTo(this.model.accounts,"reset",this.addAll),this.listenTo(this.model,"change",this.updateCount),this},events:{"click .addRegistrant":"newEntry"},newEntry:function(){this.$newEmail=this.$(".addEmail"),this.$newEmail.val().trim()&&jQuery.ajax({context:this,url:ajaxUrl+"&glm_action=account&option=checkEmail",dataType:"json",data:"email="+this.$newEmail.val().trim()}).done(function(e){!0!==e.validEmail?alert("Must be a valid email address!"):!0!==e.valid?alert("No account matched that email address!"):void 0!==e.id&&void 0!==e.email&&(this.model.accounts.create({id:e.id,email:e.email,parent:this.model.id}),this.model.trigger("change"),this.$newEmail.val(""))}).fail(function(e){console.log("Fail: "+e)})},render:function(){return this.$el.html(this.template(this.model.toJSON())),this},updateCount:function(){return this.model.reg_count=this.model.accounts.length,console.log("Updating Count: "+this.model.reg_count),this.render,this},addOne:function(e){if(e.isValid()){var t=new app.Views.Account({model:e});this.$el.append(t.render().el)}},addAll:function(){jQuery(".glm-reg-level").html("")}}),app.Views.AdminRegEvent=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)},render:function(){this.$el.html(this.template(this.model.toJSON()));var e=app.Models.regEvent.classes.map(function(e){return new app.Views.AdminRegClass({model:e}).render().el});return this.$el.append(e),this}}),Backbone.emulateJSON=!0,Backbone.emulateHTTP=!0,app.Views.EventEditLevels=Backbone.View.extend({el:"#regApp",initialize:function(){this.event=new app.Views.RegEvent({model:app.Models.regEvent}),this.render()},render:function(){return this.$el.append(this.event.render().el),this},events:{"click #appLogin":"login"},login:function(){this.loginView=new app.Views.Login({model:new app.Models.Login}),this.$el.append(this.loginView.render().el),jQuery("#appLogin").hide()}}); \ No newline at end of file +app.Models.Front.Account=Backbone.Model.extend({defaults:{id:"",email:"",parent:""},initialize:function(){this.on("invalid",function(e,t){console.log(t)})},validate:function(e,t){if(void 0===e.email||""===e.email)return"Need an email address!"}}),app.Models.Front.AccountDetail=app.Models.Front.Account.extend({defaults:{id:"",fname:"",lname:"",org:"",title:"",addr1:"",addr2:"",city:"",state:"",zip:"",country:"",phone:"",fax:"",email_ok:!1,is_member:!1,date_created:"",email:"",parent:""}}),app.Models.Front.Login=Backbone.Model.extend({defaults:{username:"",password:""},urlRoot:appLoginUrl,initialize:function(){this.on("invalid",function(e,t){console.log(t)})},validate:function(e,t){return void 0===e.username||""===e.username?"Username required!":void 0===e.password||""===e.password?"Password required!":void 0}}),app.Models.Front.RegClass=Backbone.Model.extend({defaults:{reg_event:0,name:"",descr:"",reg_rate_name:"",reg_rate_base_price:"",reg_rate_per_reg:"",reg_count:0},initialize:function(){this.accounts=new app.Collections.Front.Accounts}}),app.Models.Front.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.Front.RegClasses},setClasses:function(e){this.classes.reset(e)}}),app.Models.Front.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.Models.Admin.RegClass=Backbone.Model.extend({defaults:{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.Front.Accounts=Backbone.Collection.extend({model:app.Models.Front.Account,localStorage:new Backbone.LocalStorage("Accounts"),sync:function(e,t,n){console.log("sync called on collection. method: "+e)}}),app.Collections.Front.RegClasses=Backbone.Collection.extend({model:app.Models.Front.RegClass}),app.Collections.Front.RegRates=Backbone.Collection.extend({model:app.Models.Front.RegRate}),app.Collections.Admin.RegClasses=Backbone.Collection.extend({model:app.Models.Admin.RegClass}),app.Collections.Admin.RegRates=Backbone.Collection.extend({model:app.Models.Admin.RegRate}),app.Views.Front.Account=Backbone.View.extend({tagName:"div",className:"glm-reg-level-registrant clearfix",template:_.template(jQuery("#account-template").html()),events:{"click label":"edit","click .glm-reg-level-registrant-delete":"deleteOne","click .saveRegistrant":"close"},initialize:function(){return this.listenTo(this.model,"change",this.render),this.listenTo(this.model,"destroy",this.remove),this},render:function(){return this.$el.html(this.template(this.model.toJSON())),this.$nameInput=this.$(".editName"),this.$emailInput=this.$(".editEmail"),this},deleteOne:function(){this.model.destroy()},edit:function(){this.$el.addClass("editing"),this.$nameInput.focus()},close:function(){var e=this.$nameInput.val().trim(),t=this.$emailInput.val().trim();e&&t?this.model.save({name:e,email:t}):this.clear(),this.$el.removeClass("editing")}}),Backbone.emulateJSON=!0,Backbone.emulateHTTP=!0,app.Views.Front.App=Backbone.View.extend({el:"#regApp",initialize:function(){this.event=new app.Views.Front.RegEvent({model:regEvent}),this.render()},render:function(){return this.$el.append(this.event.render().el),this},events:{"click #appLogin":"login"},login:function(){this.loginView=new app.Views.Front.Login({model:new app.Models.Front.Login}),this.$el.append(this.loginView.render().el),jQuery("#appLogin").hide()}}),app.Views.Front.Login=Backbone.View.extend({tagName:"div",className:"glm-reg-login",template:_.template(jQuery("#eventReg-account-login").html()),events:{"click .accountLogin":"loginToAccount","click #loginCancel":"closeLoginForm"},initialize:function(){return this},closeLoginForm:function(){this.remove(),jQuery("#appLogin").show()},loginToAccount:function(){jQuery.ajax({url:ajaxUrl})},render:function(){return this.$el.html(this.template(this.model.toJSON())),this.$userInput=jQuery(".login"),this.$pwdInput=jQuery(".password"),this}}),app.Views.Front.RegClass=Backbone.View.extend({tagName:"div",className:"glm-reg-level",template:_.template(jQuery("#regClass-template").html()),initialize:function(){return this.listenTo(this.model.accounts,"add",this.addOne),this.listenTo(this.model.accounts,"create",this.addOne),this.listenTo(this.model.accounts,"reset",this.addAll),this.listenTo(this.model,"change",this.updateCount),this},events:{"click .addRegistrant":"newEntry"},newEntry:function(){this.$newEmail=jQuery(".addEmail"),this.$newEmail.val().trim()&&jQuery.ajax({context:this,url:ajaxUrl+"&glm_action=account&option=checkEmail",dataType:"json",data:"email="+this.$newEmail.val().trim()}).done(function(e){!0!==e.validEmail?alert("Must be a valid email address!"):!0!==e.valid?alert("No account matched that email address!"):void 0!==e.id&&void 0!==e.email&&(this.model.accounts.create({id:e.id,email:e.email,parent:this.model.id}),this.model.trigger("change"),this.$newEmail.val(""))}).fail(function(e){console.log("Fail: "+e)})},render:function(){return this.$el.html(this.template(this.model.toJSON())),this},updateCount:function(){return this.model.reg_count=this.model.accounts.length,console.log("Updating Count: "+this.model.reg_count),this.render,this},addOne:function(e){if(e.isValid()){var t=new app.Views.Front.Account({model:e});this.$el.append(t.render().el)}},addAll:function(){jQuery(".glm-reg-level").html("")}}),app.Views.Front.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)},render:function(){this.$el.html(this.template(this.model.toJSON()));var e=regEvent.classes.map(function(e){return new app.Views.Front.RegClass({model:e}).render().el});return this.$el.append(e),this}}),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.accounts,"add",this.addOne),this.listenTo(this.model.accounts,"create",this.addOne),this.listenTo(this.model.accounts,"reset",this.addAll),this.listenTo(this.model,"change",this.updateCount),this},events:{},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)},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/views/admin/adminRegClass.js b/js/views/admin/adminRegClass.js deleted file mode 100644 index cb38cab..0000000 --- a/js/views/admin/adminRegClass.js +++ /dev/null @@ -1,86 +0,0 @@ -// js/views/regClass.js - -app.Views.AdminRegClass = Backbone.View.extend({ - tagName: 'div', - - className: 'glm-reg-level', - - template: _.template( jQuery('#regClass-template').html() ), - - initialize: function(){ - this.listenTo( this.model.accounts, 'add', this.addOne ); - this.listenTo( this.model.accounts, 'create', this.addOne ); - this.listenTo( this.model.accounts, 'reset', this.addAll ); - this.listenTo( this.model, 'change', this.updateCount ); - //this.listenTo( this.model, 'change:accounts', this.render ); - - //this.model.accounts.fetch(); - return this; - }, - - events: { - 'click .addRegistrant': 'newEntry', - }, - - // For the new entry check the email from the server and see - // if there's already an account setup. - newEntry: function(){ - this.$newEmail = this.$('.addEmail'); - - if ( !this.$newEmail.val().trim() ) { - return; - } - // Check for this email address - jQuery.ajax({ - context: this, - url: ajaxUrl + '&glm_action=account&option=checkEmail', - dataType: 'json', - data: 'email=' + this.$newEmail.val().trim() - }) - .done(function(account){ - // Check for id and email - if ( account.validEmail !== true ) { - // If not found then nothing was found for that email. - alert('Must be a valid email address!'); - } else if ( account.valid !== true ) { - alert( 'No account matched that email address!' ); - } else if ( account.id !== undefined && account.email !== undefined ) { - this.model.accounts.create({ - id: account.id, - email: account.email, - parent: this.model.id - }); - this.model.trigger('change'); - this.$newEmail.val(''); - } - }) - .fail(function(msg){ - console.log('Fail: ' + msg); - }); - }, - - render: function(){ - this.$el.html( this.template( this.model.toJSON() ) ); - return this; - }, - - updateCount: function(){ - this.model.reg_count = this.model.accounts.length; - console.log( 'Updating Count: ' + this.model.reg_count ); - this.render; - return this; - }, - - addOne: function( item ){ - if ( item.isValid() ) { - var view = new app.Views.Account({ model: item }); - this.$el.append( view.render().el ); - } - }, - - addAll: function(){ - jQuery('.glm-reg-level').html(''); - //this.model.accounts.each( this.addOne, this ); - }, - -}); diff --git a/js/views/admin/eventEditLevels.js b/js/views/admin/eventEditLevels.js index b964fc9..768c6c1 100644 --- a/js/views/admin/eventEditLevels.js +++ b/js/views/admin/eventEditLevels.js @@ -3,12 +3,12 @@ Backbone.emulateJSON = true; Backbone.emulateHTTP = true; // Event Registrant List View -app.Views.EventEditLevels = Backbone.View.extend({ +app.Views.Admin.EventEditLevels = Backbone.View.extend({ el: '#regApp', initialize: function(){ - this.event = new app.Views.RegEvent({ model: app.Models.regEvent }); + this.event = new app.Views.Admin.RegEvent({ model: regEvent }); this.render(); }, @@ -18,18 +18,6 @@ app.Views.EventEditLevels = Backbone.View.extend({ }, events: { - 'click #appLogin': 'login' }, - login: function(){ - this.loginView = new app.Views.Login({ model: new app.Models.Login() }); - this.$el.append( this.loginView.render().el ); - jQuery('#appLogin').hide(); - }, - - // start: function( bootstrap ){ - // app.Models.regEvent = new app.Models.RegEvent( bootstrap.regEvent ); - // app.Models.regEvent.setClasses( bootstrap.regEventClasses ); - // }, - }); diff --git a/js/views/admin/regClass.js b/js/views/admin/regClass.js new file mode 100644 index 0000000..30eb68d --- /dev/null +++ b/js/views/admin/regClass.js @@ -0,0 +1,40 @@ +// js/views/regClass.js + +app.Views.Admin.RegClass = Backbone.View.extend({ + tagName: 'div', + + className: 'glm-reg-level', + + template: _.template( jQuery('#regClass-template').html() ), + + initialize: function(){ + this.listenTo( this.model.accounts, 'add', this.addOne ); + this.listenTo( this.model.accounts, 'create', this.addOne ); + this.listenTo( this.model.accounts, 'reset', this.addAll ); + this.listenTo( this.model, 'change', this.updateCount ); + //this.listenTo( this.model, 'change:accounts', this.render ); + + //this.model.accounts.fetch(); + return this; + }, + + events: { + }, + + render: function(){ + this.$el.html( this.template( this.model.toJSON() ) ); + return this; + }, + + addOne: function( item ){ + if ( item.isValid() ) { + var view = new app.Views.Admin.Account({ model: item }); + this.$el.append( view.render().el ); + } + }, + + addAll: function(){ + jQuery('.glm-reg-level').html(''); + }, + +}); diff --git a/js/views/admin/adminRegEvent.js b/js/views/admin/regEvent.js similarity index 71% rename from js/views/admin/adminRegEvent.js rename to js/views/admin/regEvent.js index 4fbe663..33c1821 100644 --- a/js/views/admin/adminRegEvent.js +++ b/js/views/admin/regEvent.js @@ -1,7 +1,7 @@ // js/views/adminRegEvent.js // Admin reg view -app.Views.AdminRegEvent = Backbone.View.extend({ +app.Views.Admin.RegEvent = Backbone.View.extend({ tagName: 'div', @@ -15,8 +15,8 @@ app.Views.AdminRegEvent = Backbone.View.extend({ }, render: function(){ this.$el.html( this.template( this.model.toJSON() ) ); - var view = app.Models.regEvent.classes.map(function(item){ - return (new app.Views.AdminRegClass({ model: item })).render().el; + var view = regEvent.classes.map(function(item){ + return (new app.Views.Admin.RegClass({ model: item })).render().el; }); this.$el.append(view); return this; diff --git a/js/views/front/account.js b/js/views/front/account.js index 33fd7d4..ba7cfc2 100644 --- a/js/views/front/account.js +++ b/js/views/front/account.js @@ -1,7 +1,7 @@ // js/views/account.js // Event Registrant View -app.Views.Account = Backbone.View.extend({ +app.Views.Front.Account = Backbone.View.extend({ tagName: 'div', className: 'glm-reg-level-registrant clearfix', diff --git a/js/views/front/app.js b/js/views/front/app.js index b9f2645..fc0a947 100644 --- a/js/views/front/app.js +++ b/js/views/front/app.js @@ -3,12 +3,12 @@ Backbone.emulateJSON = true; Backbone.emulateHTTP = true; // Event Registrant List View -app.Views.App = Backbone.View.extend({ +app.Views.Front.App = Backbone.View.extend({ el: '#regApp', initialize: function(){ - this.event = new app.Views.RegEvent({ model: app.Models.regEvent }); + this.event = new app.Views.Front.RegEvent({ model: regEvent }); this.render(); }, @@ -22,14 +22,9 @@ app.Views.App = Backbone.View.extend({ }, login: function(){ - this.loginView = new app.Views.Login({ model: new app.Models.Login() }); + this.loginView = new app.Views.Front.Login({ model: new app.Models.Front.Login() }); this.$el.append( this.loginView.render().el ); jQuery('#appLogin').hide(); }, - // start: function( bootstrap ){ - // app.Models.regEvent = new app.Models.RegEvent( bootstrap.regEvent ); - // app.Models.regEvent.setClasses( bootstrap.regEventClasses ); - // }, - }); diff --git a/js/views/front/login.js b/js/views/front/login.js index f7ce8f6..3fbdbd9 100644 --- a/js/views/front/login.js +++ b/js/views/front/login.js @@ -1,7 +1,7 @@ // js/views/login.js // Login View -app.Views.Login = Backbone.View.extend({ +app.Views.Front.Login = Backbone.View.extend({ tagName: 'div', className: 'glm-reg-login', diff --git a/js/views/front/regClass.js b/js/views/front/regClass.js index f42af05..d399bb7 100644 --- a/js/views/front/regClass.js +++ b/js/views/front/regClass.js @@ -1,6 +1,6 @@ // js/views/regClass.js -app.Views.RegClass = Backbone.View.extend({ +app.Views.Front.RegClass = Backbone.View.extend({ tagName: 'div', className: 'glm-reg-level', @@ -73,7 +73,7 @@ app.Views.RegClass = Backbone.View.extend({ addOne: function( item ){ if ( item.isValid() ) { - var view = new app.Views.Account({ model: item }); + var view = new app.Views.Front.Account({ model: item }); this.$el.append( view.render().el ); } }, diff --git a/js/views/front/regEvent.js b/js/views/front/regEvent.js index b7ca426..7d180e6 100644 --- a/js/views/front/regEvent.js +++ b/js/views/front/regEvent.js @@ -1,7 +1,7 @@ // js/views/regEvent.js // Reg Event View -app.Views.RegEvent = Backbone.View.extend({ +app.Views.Front.RegEvent = Backbone.View.extend({ tagName: 'div', @@ -16,8 +16,8 @@ app.Views.RegEvent = Backbone.View.extend({ render: function(){ this.$el.html( this.template( this.model.toJSON() ) ); - var view = app.Models.regEvent.classes.map(function(item){ - return (new app.Views.RegClass({ model: item })).render().el; + var view = regEvent.classes.map(function(item){ + return (new app.Views.Front.RegClass({ model: item })).render().el; }); this.$el.append(view); return this; diff --git a/views/admin/registrations/eventEditLevels.html b/views/admin/registrations/eventEditLevels.html index 4b4f77b..4df6b19 100644 --- a/views/admin/registrations/eventEditLevels.html +++ b/views/admin/registrations/eventEditLevels.html @@ -56,16 +56,16 @@ var appLoginUrl = '{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=login'; var ajaxUrl = '{$ajaxUrl}?action=glm_members_admin_ajax'; var app = { - Models: {}, - Collections: {}, - Views: {}, + Models: { Front: {}, Admin: {} }, + Collections: { Front: {}, Admin: {} }, + Views: { Front: {}, Admin: {} }, }; + var regEvent = ''; jQuery(function($){ - app.Models.regEvent = new app.Models.RegEvent; - app.Models.regEvent.set( {$regEventJSON} ); - app.Models.regEvent.setClasses( {$regClassJSON} ); - //new app.Views.App(); - new app.Views.EventEditLevels(); + regEvent = new app.Models.Admin.RegEvent; + regEvent.set( {$regEventJSON} ); + regEvent.setClasses( {$regClassJSON} ); + new app.Views.Admin.EventEditLevels(); }); diff --git a/views/front/registrations/registration.html b/views/front/registrations/registration.html index 372d2af..6423115 100644 --- a/views/front/registrations/registration.html +++ b/views/front/registrations/registration.html @@ -65,14 +65,15 @@ var appLoginUrl = '{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=login'; var ajaxUrl = '{$ajaxUrl}?action=glm_members_admin_ajax'; var app = { - Models: {}, - Collections: {}, - Views: {}, + Models: { Front: {}, Admin: {} }, + Collections: { Front: {}, Admin: {} }, + Views: { Front: {}, Admin: {} }, }; +var regEvent = ''; jQuery(function($){ - app.Models.regEvent = new app.Models.RegEvent; - app.Models.regEvent.set( {$regEventJSON} ); - app.Models.regEvent.setClasses( {$regClassesJSON} ); - new app.Views.App(); + regEvent = new app.Models.Front.RegEvent; + regEvent.set( {$regEventJSON} ); + regEvent.setClasses( {$regClassesJSON} ); + new app.Views.Front.App(); }); -- 2.17.1