Reorganizing the js files.
authorSteve Sutton <steve@gaslightmedia.com>
Fri, 8 Sep 2017 16:59:55 +0000 (12:59 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Fri, 8 Sep 2017 16:59:55 +0000 (12:59 -0400)
Setting up with admin and front directories.

37 files changed:
gulpfile.js
js/collections/accounts.js [deleted file]
js/collections/front/accounts.js [new file with mode: 0644]
js/collections/front/regClasses.js [new file with mode: 0644]
js/collections/front/regRates.js [new file with mode: 0644]
js/collections/regClasses.js [deleted file]
js/collections/regRates.js [deleted file]
js/models/account.js [deleted file]
js/models/accountDetail.js [deleted file]
js/models/admin/regAdminClass.js [new file with mode: 0644]
js/models/admin/regAdminEvent.js [new file with mode: 0644]
js/models/front/account.js [new file with mode: 0644]
js/models/front/accountDetail.js [new file with mode: 0644]
js/models/front/login.js [new file with mode: 0644]
js/models/front/regClass.js [new file with mode: 0644]
js/models/front/regEvent.js [new file with mode: 0644]
js/models/front/regRate.js [new file with mode: 0644]
js/models/login.js [deleted file]
js/models/regClass.js [deleted file]
js/models/regEvent.js [deleted file]
js/models/regRate.js [deleted file]
js/regApp.js
js/views/account.js [deleted file]
js/views/admin/adminRegClass.js [new file with mode: 0644]
js/views/admin/adminRegEvent.js [new file with mode: 0644]
js/views/admin/eventEditLevels.js [new file with mode: 0644]
js/views/app.js [deleted file]
js/views/front/account.js [new file with mode: 0644]
js/views/front/app.js [new file with mode: 0644]
js/views/front/login.js [new file with mode: 0644]
js/views/front/regClass.js [new file with mode: 0644]
js/views/front/regEvent.js [new file with mode: 0644]
js/views/login.js [deleted file]
js/views/regClass.js [deleted file]
js/views/regEvent.js [deleted file]
models/admin/registrations/events.php
views/admin/registrations/eventEditLevels.html

index dd8074b..5545412 100644 (file)
@@ -5,7 +5,14 @@ var gulp    = require('gulp'),
     plumber = require('gulp-plumber');
 
 gulp.task('scripts', function(){
-    gulp.src(['js/models/*.js', './js/collections/*.js', './js/views/*.js'])
+    gulp.src([
+            'js/models/front/*.js',
+            'js/models/admin/*.js',
+            'js/collections/front/*.js',
+            'js/collections/admin/*.js',
+            'js/views/front/*.js',
+            'js/views/admin/*.js'
+        ])
         .pipe(plumber())
         .pipe(concat('regApp.js'))
         .pipe(uglify())
diff --git a/js/collections/accounts.js b/js/collections/accounts.js
deleted file mode 100644 (file)
index b98ec57..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-// js/collections/accounts.js
-
-// Event Registrant collection
-app.Collections.Accounts = Backbone.Collection.extend({
-    model: app.Models.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/accounts.js b/js/collections/front/accounts.js
new file mode 100644 (file)
index 0000000..b98ec57
--- /dev/null
@@ -0,0 +1,24 @@
+// js/collections/accounts.js
+
+// Event Registrant collection
+app.Collections.Accounts = Backbone.Collection.extend({
+    model: app.Models.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
new file mode 100644 (file)
index 0000000..2e11e2b
--- /dev/null
@@ -0,0 +1,7 @@
+// js/collections/classes.js
+
+// Classes Collection
+app.Collections.RegClasses = Backbone.Collection.extend({
+    model: app.Models.RegClass,
+
+});
diff --git a/js/collections/front/regRates.js b/js/collections/front/regRates.js
new file mode 100644 (file)
index 0000000..e66fc01
--- /dev/null
@@ -0,0 +1,8 @@
+// js/collections/regRates.js
+
+// Registration Rate Collection
+app.Collections.RegRates = Backbone.Collection.extend({
+    model: app.Models.RegRate,
+
+    // localStorage
+});
diff --git a/js/collections/regClasses.js b/js/collections/regClasses.js
deleted file mode 100644 (file)
index 2e11e2b..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-// js/collections/classes.js
-
-// Classes Collection
-app.Collections.RegClasses = Backbone.Collection.extend({
-    model: app.Models.RegClass,
-
-});
diff --git a/js/collections/regRates.js b/js/collections/regRates.js
deleted file mode 100644 (file)
index e66fc01..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-// js/collections/regRates.js
-
-// Registration Rate Collection
-app.Collections.RegRates = Backbone.Collection.extend({
-    model: app.Models.RegRate,
-
-    // localStorage
-});
diff --git a/js/models/account.js b/js/models/account.js
deleted file mode 100644 (file)
index 979d9d2..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-// js/models/account.js
-
-// Event Registrant Model
-app.Models.Account = Backbone.Model.extend({
-
-    // Default registrant values
-    defaults: {
-        id: '',
-        email: '',
-        parent: '',
-    },
-
-    initialize: function(){
-        this.on( 'invalid', function( model, error ){
-            console.log( error );
-        });
-    },
-
-    validate: function( attribs, options ){
-        if ( attribs.email === undefined || attribs.email === '' ) {
-            return 'Need an email address!';
-        }
-    },
-
-});
diff --git a/js/models/accountDetail.js b/js/models/accountDetail.js
deleted file mode 100644 (file)
index e07c243..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-// js/models/accountDetail.js
-
-// Event Registrant Detail Model
-app.Models.AccountDetail = app.Models.Account.extend({
-    // Default registrant values
-    defaults: {
-        id: '',
-        fname: '',
-        lname: '',
-        org: '',
-        title: '',
-        addr1: '',
-        addr2: '',
-        city: '',
-        state: '',
-        zip: '',
-        country: '',
-        phone: '',
-        fax: '',
-        email_ok: false,
-        is_member: false,
-        date_created: '',
-        email: '',
-        parent: '',
-    }
-});
diff --git a/js/models/admin/regAdminClass.js b/js/models/admin/regAdminClass.js
new file mode 100644 (file)
index 0000000..56ec5fa
--- /dev/null
@@ -0,0 +1,17 @@
+// js/models/regAdminClass.js
+
+// Admin Registration Class model
+app.Models.AdminRegClass = Backbone.Model.extend({
+
+    // Defaults
+    defaults: {
+        reg_event: 0,
+        name: '',
+        descr: '',
+    },
+
+    initialize: function(){
+        this.rates = new app.Collections.Rates;
+    },
+
+});
diff --git a/js/models/admin/regAdminEvent.js b/js/models/admin/regAdminEvent.js
new file mode 100644 (file)
index 0000000..666ebe9
--- /dev/null
@@ -0,0 +1,28 @@
+// js/models/regAdminEvent.js
+
+// Event Reg model
+app.Models.AdminRegEvent = Backbone.Model.extend({
+
+    // Default regEvent values
+    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(){
+        // for setting up classes
+        this.classes = new app.Collections.RegClasses;
+    },
+
+    setClasses: function( regClasses ){
+        this.classes.reset( regClasses );
+    },
+
+});
diff --git a/js/models/front/account.js b/js/models/front/account.js
new file mode 100644 (file)
index 0000000..979d9d2
--- /dev/null
@@ -0,0 +1,25 @@
+// js/models/account.js
+
+// Event Registrant Model
+app.Models.Account = Backbone.Model.extend({
+
+    // Default registrant values
+    defaults: {
+        id: '',
+        email: '',
+        parent: '',
+    },
+
+    initialize: function(){
+        this.on( 'invalid', function( model, error ){
+            console.log( error );
+        });
+    },
+
+    validate: function( attribs, options ){
+        if ( attribs.email === undefined || attribs.email === '' ) {
+            return 'Need an email address!';
+        }
+    },
+
+});
diff --git a/js/models/front/accountDetail.js b/js/models/front/accountDetail.js
new file mode 100644 (file)
index 0000000..e07c243
--- /dev/null
@@ -0,0 +1,26 @@
+// js/models/accountDetail.js
+
+// Event Registrant Detail Model
+app.Models.AccountDetail = app.Models.Account.extend({
+    // Default registrant values
+    defaults: {
+        id: '',
+        fname: '',
+        lname: '',
+        org: '',
+        title: '',
+        addr1: '',
+        addr2: '',
+        city: '',
+        state: '',
+        zip: '',
+        country: '',
+        phone: '',
+        fax: '',
+        email_ok: false,
+        is_member: false,
+        date_created: '',
+        email: '',
+        parent: '',
+    }
+});
diff --git a/js/models/front/login.js b/js/models/front/login.js
new file mode 100644 (file)
index 0000000..1098f07
--- /dev/null
@@ -0,0 +1,28 @@
+// js/models/login.js
+
+// Login Model
+app.Models.Login = Backbone.Model.extend({
+
+    defaults:  {
+        username: '',
+        password: ''
+    },
+
+    urlRoot: appLoginUrl,
+
+    initialize: function(){
+        this.on( 'invalid', function( model, error ){
+            console.log( error );
+        });
+    },
+
+    validate: function( attribs, options ){
+        if ( attribs.username === undefined || attribs.username === '' ){
+            return 'Username required!';
+        }
+        if ( attribs.password === undefined || attribs.password === '' ){
+            return 'Password required!';
+        }
+    },
+
+});
diff --git a/js/models/front/regClass.js b/js/models/front/regClass.js
new file mode 100644 (file)
index 0000000..b5fceba
--- /dev/null
@@ -0,0 +1,22 @@
+// js/models/regClass.js
+
+// Registration Class Model
+app.Models.RegClass = Backbone.Model.extend({
+
+    // Defaults
+    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;
+        //this.accounts.fetch();
+    },
+
+});
diff --git a/js/models/front/regEvent.js b/js/models/front/regEvent.js
new file mode 100644 (file)
index 0000000..fc654cb
--- /dev/null
@@ -0,0 +1,28 @@
+// js/models/regEvent.js
+
+// Event Reg model
+app.Models.RegEvent = Backbone.Model.extend({
+
+    // Default regEvent values
+    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(){
+        // for setting up classes
+        this.classes = new app.Collections.RegClasses;
+    },
+
+    setClasses: function( regClasses ){
+        this.classes.reset( regClasses );
+    },
+
+});
diff --git a/js/models/front/regRate.js b/js/models/front/regRate.js
new file mode 100644 (file)
index 0000000..59f7ef2
--- /dev/null
@@ -0,0 +1,23 @@
+// js/models/regRate.js
+
+// Event Reg model
+
+app.Models.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/login.js b/js/models/login.js
deleted file mode 100644 (file)
index 1098f07..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-// js/models/login.js
-
-// Login Model
-app.Models.Login = Backbone.Model.extend({
-
-    defaults:  {
-        username: '',
-        password: ''
-    },
-
-    urlRoot: appLoginUrl,
-
-    initialize: function(){
-        this.on( 'invalid', function( model, error ){
-            console.log( error );
-        });
-    },
-
-    validate: function( attribs, options ){
-        if ( attribs.username === undefined || attribs.username === '' ){
-            return 'Username required!';
-        }
-        if ( attribs.password === undefined || attribs.password === '' ){
-            return 'Password required!';
-        }
-    },
-
-});
diff --git a/js/models/regClass.js b/js/models/regClass.js
deleted file mode 100644 (file)
index b5fceba..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-// js/models/regClass.js
-
-// Registration Class Model
-app.Models.RegClass = Backbone.Model.extend({
-
-    // Defaults
-    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;
-        //this.accounts.fetch();
-    },
-
-});
diff --git a/js/models/regEvent.js b/js/models/regEvent.js
deleted file mode 100644 (file)
index fc654cb..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-// js/models/regEvent.js
-
-// Event Reg model
-app.Models.RegEvent = Backbone.Model.extend({
-
-    // Default regEvent values
-    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(){
-        // for setting up classes
-        this.classes = new app.Collections.RegClasses;
-    },
-
-    setClasses: function( regClasses ){
-        this.classes.reset( regClasses );
-    },
-
-});
diff --git a/js/models/regRate.js b/js/models/regRate.js
deleted file mode 100644 (file)
index 59f7ef2..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-// js/models/regRate.js
-
-// Event Reg model
-
-app.Models.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
-    },
-
-});
index 3fd3f5b..ab86387 100644 (file)
@@ -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.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($("#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),$("#appLogin").hide()}}),app.Views.Login=Backbone.View.extend({tagName:"div",className:"glm-reg-login",template:_.template($("#eventReg-account-login").html()),events:{"click .accountLogin":"loginToAccount","click #loginCancel":"closeLoginForm"},initialize:function(){return this},closeLoginForm:function(){this.remove(),$("#appLogin").show()},loginToAccount:function(){$.ajax({url:ajaxUrl})},render:function(){return this.$el.html(this.template(this.model.toJSON())),this.$userInput=this.$(".login"),this.$pwdInput=this.$(".password"),this}}),app.Views.RegClass=Backbone.View.extend({tagName:"div",className:"glm-reg-level",template:_.template($("#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()&&$.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(){this.$(".glm-reg-level").html("")}}),app.Views.RegEvent=Backbone.View.extend({tagName:"div",className:"glm-reg-event-item clearfix",template:_.template($("#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}});
\ No newline at end of file
+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
diff --git a/js/views/account.js b/js/views/account.js
deleted file mode 100644 (file)
index 2371b3d..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-// js/views/account.js
-
-// Event Registrant View
-app.Views.Account = Backbone.View.extend({
-    tagName: 'div',
-
-    className: 'glm-reg-level-registrant clearfix',
-
-    template: _.template( $('#account-template').html() ),
-
-    events: {
-        'click label': 'edit',
-        'click .glm-reg-level-registrant-delete': 'deleteOne',
-        'click .saveRegistrant': 'close',
-    },
-
-    initialize: function(){
-        this.listenTo( this.model, 'change', this.render );
-        this.listenTo( this.model, 'destroy', this.remove );
-        return this;
-    },
-
-    render: function(){
-        this.$el.html( this.template( this.model.toJSON() ) );
-        this.$nameInput = this.$('.editName');
-        this.$emailInput = this.$('.editEmail');
-        return this;
-    },
-
-    deleteOne: function(){
-        this.model.destroy();
-    },
-
-    edit: function(){
-        this.$el.addClass( 'editing' );
-        this.$nameInput.focus();
-    },
-
-    close: function(){
-        var regname = this.$nameInput.val().trim();
-        var regemail = this.$emailInput.val().trim();
-
-        if ( regname && regemail ) {
-            this.model.save({ name: regname, email: regemail  });
-        } else {
-            this.clear(); // NEW
-        }
-
-        this.$el.removeClass('editing');
-    },
-
-});
diff --git a/js/views/admin/adminRegClass.js b/js/views/admin/adminRegClass.js
new file mode 100644 (file)
index 0000000..cb38cab
--- /dev/null
@@ -0,0 +1,86 @@
+// 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/adminRegEvent.js b/js/views/admin/adminRegEvent.js
new file mode 100644 (file)
index 0000000..4fbe663
--- /dev/null
@@ -0,0 +1,25 @@
+// js/views/adminRegEvent.js
+
+// Admin reg view
+app.Views.AdminRegEvent = Backbone.View.extend({
+
+    tagName: 'div',
+
+    className: 'glm-reg-event-item clearfix',
+
+    template: _.template( jQuery('#regEvent-template').html() ),
+
+    // Called when the view is first created
+    initialize: function(){
+        this.listenTo( this.model, 'change', this.render );
+    },
+    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;
+        });
+        this.$el.append(view);
+        return this;
+    },
+
+});
diff --git a/js/views/admin/eventEditLevels.js b/js/views/admin/eventEditLevels.js
new file mode 100644 (file)
index 0000000..b964fc9
--- /dev/null
@@ -0,0 +1,35 @@
+// js/views/app.js
+Backbone.emulateJSON = true;
+Backbone.emulateHTTP = true;
+
+// Event Registrant List View
+app.Views.EventEditLevels = Backbone.View.extend({
+
+    el: '#regApp',
+
+    initialize: function(){
+        this.event = new app.Views.RegEvent({ model: app.Models.regEvent });
+        this.render();
+    },
+
+    render: function(){
+        this.$el.append( this.event.render().el );
+        return 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();
+    },
+
+    // start: function( bootstrap ){
+    //     app.Models.regEvent  = new app.Models.RegEvent( bootstrap.regEvent );
+    //     app.Models.regEvent.setClasses( bootstrap.regEventClasses );
+    // },
+
+});
diff --git a/js/views/app.js b/js/views/app.js
deleted file mode 100644 (file)
index d73159e..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// js/views/app.js
-Backbone.emulateJSON = true;
-Backbone.emulateHTTP = true;
-
-// Event Registrant List View
-app.Views.App = Backbone.View.extend({
-
-    el: '#regApp',
-
-    initialize: function(){
-        this.event = new app.Views.RegEvent({ model: app.Models.regEvent });
-        this.render();
-    },
-
-    render: function(){
-        this.$el.append( this.event.render().el );
-        return 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 );
-        $('#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/account.js b/js/views/front/account.js
new file mode 100644 (file)
index 0000000..33fd7d4
--- /dev/null
@@ -0,0 +1,52 @@
+// js/views/account.js
+
+// Event Registrant View
+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(){
+        this.listenTo( this.model, 'change', this.render );
+        this.listenTo( this.model, 'destroy', this.remove );
+        return this;
+    },
+
+    render: function(){
+        this.$el.html( this.template( this.model.toJSON() ) );
+        this.$nameInput = this.$('.editName');
+        this.$emailInput = this.$('.editEmail');
+        return this;
+    },
+
+    deleteOne: function(){
+        this.model.destroy();
+    },
+
+    edit: function(){
+        this.$el.addClass( 'editing' );
+        this.$nameInput.focus();
+    },
+
+    close: function(){
+        var regname = this.$nameInput.val().trim();
+        var regemail = this.$emailInput.val().trim();
+
+        if ( regname && regemail ) {
+            this.model.save({ name: regname, email: regemail  });
+        } else {
+            this.clear(); // NEW
+        }
+
+        this.$el.removeClass('editing');
+    },
+
+});
diff --git a/js/views/front/app.js b/js/views/front/app.js
new file mode 100644 (file)
index 0000000..b9f2645
--- /dev/null
@@ -0,0 +1,35 @@
+// js/views/app.js
+Backbone.emulateJSON = true;
+Backbone.emulateHTTP = true;
+
+// Event Registrant List View
+app.Views.App = Backbone.View.extend({
+
+    el: '#regApp',
+
+    initialize: function(){
+        this.event = new app.Views.RegEvent({ model: app.Models.regEvent });
+        this.render();
+    },
+
+    render: function(){
+        this.$el.append( this.event.render().el );
+        return 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();
+    },
+
+    // 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
new file mode 100644 (file)
index 0000000..f7ce8f6
--- /dev/null
@@ -0,0 +1,40 @@
+// js/views/login.js
+
+// Login View
+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();
+        return;
+    },
+
+    loginToAccount: function(){
+        // Send data to login ajax and verify user login
+        jQuery.ajax({
+            url: ajaxUrl
+        });
+    },
+
+    render: function(){
+        this.$el.html( this.template( this.model.toJSON() ) );
+        this.$userInput = jQuery('.login');
+        this.$pwdInput = jQuery('.password');
+        return this;
+    },
+
+});
diff --git a/js/views/front/regClass.js b/js/views/front/regClass.js
new file mode 100644 (file)
index 0000000..f42af05
--- /dev/null
@@ -0,0 +1,86 @@
+// js/views/regClass.js
+
+app.Views.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: {
+        '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 = jQuery('.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/front/regEvent.js b/js/views/front/regEvent.js
new file mode 100644 (file)
index 0000000..b7ca426
--- /dev/null
@@ -0,0 +1,26 @@
+// js/views/regEvent.js
+
+// Reg Event View
+app.Views.RegEvent = Backbone.View.extend({
+
+    tagName: 'div',
+
+    className: 'glm-reg-event-item clearfix',
+
+    template: _.template( jQuery('#regEvent-template').html() ),
+
+    // Called when the view is first created
+    initialize: function(){
+        this.listenTo( this.model, 'change', this.render );
+    },
+
+    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;
+        });
+        this.$el.append(view);
+        return this;
+    },
+
+});
diff --git a/js/views/login.js b/js/views/login.js
deleted file mode 100644 (file)
index 2a07efc..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-// js/views/login.js
-
-// Login View
-app.Views.Login = Backbone.View.extend({
-    tagName: 'div',
-
-    className: 'glm-reg-login',
-
-    template: _.template( $('#eventReg-account-login').html() ),
-
-    events: {
-        'click .accountLogin': 'loginToAccount',
-        'click #loginCancel': 'closeLoginForm'
-    },
-
-    initialize: function(){
-        return this;
-    },
-
-    closeLoginForm: function(){
-        this.remove();
-        $('#appLogin').show();
-        return;
-    },
-
-    loginToAccount: function(){
-        // Send data to login ajax and verify user login
-        $.ajax({
-            url: ajaxUrl
-        });
-    },
-
-    render: function(){
-        this.$el.html( this.template( this.model.toJSON() ) );
-        this.$userInput = this.$('.login');
-        this.$pwdInput = this.$('.password');
-        return this;
-    },
-
-});
diff --git a/js/views/regClass.js b/js/views/regClass.js
deleted file mode 100644 (file)
index e86bda0..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-// js/views/regClass.js
-
-app.Views.RegClass = Backbone.View.extend({
-    tagName: 'div',
-
-    className: 'glm-reg-level',
-
-    template: _.template( $('#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
-        $.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(){
-        this.$('.glm-reg-level').html('');
-        //this.model.accounts.each( this.addOne, this );
-    },
-
-});
diff --git a/js/views/regEvent.js b/js/views/regEvent.js
deleted file mode 100644 (file)
index 9b5cd6c..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-// js/views/regEvent.js
-
-// Reg Event View
-app.Views.RegEvent = Backbone.View.extend({
-
-    tagName: 'div',
-
-    className: 'glm-reg-event-item clearfix',
-
-    template: _.template( $('#regEvent-template').html() ),
-
-    // Called when the view is first created
-    initialize: function(){
-        this.listenTo( this.model, 'change', this.render );
-    },
-
-    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;
-        });
-        this.$el.append(view);
-        return this;
-    },
-
-});
index 8f8cc2a..1c17294 100644 (file)
@@ -79,8 +79,8 @@ class GlmMembersAdmin_registrations_events extends GlmDataRegistrationsRegEvent
     }
 
     public function modelAction($actionData = false)
-    {  
-        
+    {
+
         $option                    = 'dashboard';
         $view                      = false;
         $where                     = ' true ';
@@ -115,36 +115,36 @@ class GlmMembersAdmin_registrations_events extends GlmDataRegistrationsRegEvent
         $regEventSample            = false;
         $regEventJason             = false;
         $regClassJSON              = false;
-        
+
         // Get any provided option
         if (isset($_REQUEST['option'])) {
             $option = $_REQUEST['option'];
         }
-        
+
         // Get registration event ID if supplied
         if (isset($_REQUEST['regEventID'])) {
-            
+
             // Make sure it's numeric
             $regEventID = ($_REQUEST['regEventID'] - 0);
-            
+
         } else {
-            
+
             // Try to get saved
             $regEventID = get_option('glmMembersDatabaseRegistrationsRegEventID');
-            
+
         }
-        
+
         if (!$regEventID || $regEventID <= 0) {
             $regEventID = false;
         }
-        
-        
-        
+
+
+
         switch ($option) {
-        
+
             case 'configureEvent':
-                
-// This obviously still needs work - not really updated since stolen from front-end code                
+
+// This obviously still needs work - not really updated since stolen from front-end code
                 $scripts = array(
                 'backbone-local' => 'js/lib/backbone.localStorage.min.js',
                 'regApp'         => 'js/regApp.js',
@@ -158,50 +158,50 @@ class GlmMembersAdmin_registrations_events extends GlmDataRegistrationsRegEvent
                         true
                         );
                 }
-                wp_enqueue_script( array( 'backbone', 'jquery' ) );
+                wp_enqueue_script( array( 'jquery', 'backbone' ) );
                 wp_enqueue_script( array_keys( $scripts ) );
                 $regEvent = array();
-                
+
                 // including test data for now
                 include GLM_MEMBERS_REGISTRATIONS_PLUGIN_PATH . '/data/event_setup.php';
-                
+
                 $regClass = $regEventSample['reg_class'];
-                         
+
                 // Find the regClass rate to be used
                 // There will only be one as this is based on the date.
                 //$regClassRate
-                
+
                 $eventData = array();
-                
+
                 unset($regClass['reg_rate']);
-                
+
                 // Build the Class array of json objects for the classes.
                 $jsonClasses = array();
                 foreach ( $regClass as $rClass ) {
                     $jsonClasses[] = json_encode( $rClass );
                 }
                 $regClassJSON = '[' . implode( ',', $jsonClasses ) . ']';
+
                 $view = 'eventEditLevels';
-                
+
                 break;
-            
+
             case 'add':
             case 'edit':
-                
+
                 // If we're adding a new reg event
                 if ($option == 'add') {
-                    
+
                     // Verify that event is not already listed
                     $regEvent = $this->getEntry($regEventID, 'event');
                     if (!$regEvent) {
-                        
+
                         // Get data on this event from events add-on
                         $eventData = apply_filters('glm-member-db-events-get-event', $regEventID);
-                        
+
                         // Did we get event data?
                         if ($eventData) {
-                            
+
                             // Add event to registrations
                             $sql = "
                                 INSERT INTO ".$this->table."
@@ -243,19 +243,19 @@ class GlmMembersAdmin_registrations_events extends GlmDataRegistrationsRegEvent
                             ;";
                             $this->wpdb->query($sql);
                             $regEventID = $this->wpdb->insert_id;
-                            
+
                             if ($regEventID) {
                                 $regEventUpdated = true;
                             }
-                            
+
                         }
-                        
+
                     } else {
                         $reason = "Trying to add an event that is already listed in Registrations.";
                     }
-                    
+
                 }
-                
+
                 // If there's no problem yet, try to get the regEvent data for edit
                 if ($reason == '') {
                     if ($regEventID) {
@@ -265,69 +265,69 @@ class GlmMembersAdmin_registrations_events extends GlmDataRegistrationsRegEvent
                         }
                     }
                 }
-                
+
                 $view = 'eventEdit';
-                
+
                 break;
-                
+
             case 'update':
-                
+
                 // Try to update the reg event
                 $regEvent = $this->updateEntry($regEventID);
-                
+
                 // If there's some type of failure, flag that for the view file
                 if ($regEvent['status']) {
                     $regEventUpdated = true;
                 } else {
                     $regEventUpdateError = true;
                 }
-                
+
                 $view = 'eventEdit';
-                
+
                 break;
-                
-                
+
+
             case 'eventDashboard':
-                
+
                 // If we have an event ID
                 if ($regEventID) {
-                    
+
                     $regEvent = $this->getEntry($regEventID);
                     if ($regEvent) {
 
                         $haveRegEvent = true;
-                        
+
                         // Try to get the event configuration including recurrences and times
                         $this->postProcAddedEventData = true;
                         $regEvent = $this->getEventConfig($regEventID, true, true, true);
-                        
+
                         // If we have the event data
                         if ($regEvent) {
-                            
+
                             $haveRegEvent = true;
-                            
+
                             // If event is time_specific and we have recurrences for the event
                             if ($regEvent['time_specific']['value'] && is_array($regEvent['recurrences']) && count($regEvent['recurrences']) > 0) {
-                                
+
                                 $haveRegEventRecurrences = true;
-                                
+
                                 // For each recurrence
                                 foreach ($regEvent['recurrences'] as $k=>$v) {
-                                    
+
                                     $regEvent['recurrences'][$k]['haveTimes'] = false;
-                                    
+
                                     // If we have times for this recurrence
                                     if ($v['times'] && count($v['times']) > 0) {
-                                        
+
                                         $regEvent['recurrences'][$k]['haveTimes'] = false;
                                         $haveRegEventTimes = true;
-                                        
+
                                         // Get the first event date/time
                                         $first = current($v['times']);
                                         $last = end($v['times']);
                                         $regEvent['recurrences'][$k]['first_time'] = $first;
                                         $regEvent['recurrences'][$k]['lastTime'] = $last;
-                                        
+
                                         // Set event first and last times
                                         if (!$regEventFirstTime || $regEventFirstTime['timestamp'] < $first ) {
                                             $regEventFirstTime = $first;
@@ -335,16 +335,16 @@ class GlmMembersAdmin_registrations_events extends GlmDataRegistrationsRegEvent
                                         if (!$regEventLastTime || $regEventLastTime['timestamp'] > $last ) {
                                             $regEventLastTime = $last;
                                         }
-                                        
+
                                         // Check all event times for matching reg event times
                                         foreach ($v['times'] as $tk=>$tv) {
-                                            
+
                                             // If time doesn't exist in reg_times
                                             if (!isset($regEvent['reg_times'][$tk])) {
-                                                
+
                                                 $sTime = date('Y-m-d H:i:s',strtotime($tv['start_time']['datetime']));
                                                 $eTime = date('Y-m-d H:i:s',strtotime($tv['end_time']['datetime']));
-                                                
+
                                                 // Add reg event time
                                                 $this->wpdb->insert(
                                                     GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX."reg_time",
@@ -387,7 +387,7 @@ class GlmMembersAdmin_registrations_events extends GlmDataRegistrationsRegEvent
                                                         '%f'    // total_payments
                                                     )
                                                 );
-                                                
+
                                             } // If time isn't in reg_times
                                         } // each recurrence times
                                     } // have times for recurrence
@@ -395,45 +395,45 @@ class GlmMembersAdmin_registrations_events extends GlmDataRegistrationsRegEvent
                             } // Time specific and have times
                         } // have event data
                     } // have reg event ID
-                    
+
                 } else {
                     $reason = 'Unable to load registration event data or registration event not selected.';
                 }
-                
+
                 $view = 'eventDashboard';
-                
+
                 break;
-                
+
             case 'dashboard':
             default:
-                
+
                 // If doing alpha list
                 if (isset($_REQUEST['alpha'])) {
                     $actionData['request']['alpha'] = $_REQUEST['alpha'];
                 }
-                        
+
                 // If user clicked a page request then we need to check the savedAlpha value
                 if (isset($_REQUEST['savedAlpha']) && isset($_REQUEST['pageSelect'])) {
                     $actionData['request']['alpha'] = $_REQUEST['savedAlpha'];
                 }
-                
+
                 if ($actionData['request']['alpha'] && strlen($actionData['request']['alpha']) == 1) {
                     $alphaSelected = strtoupper($actionData['request']['alpha']);
                     $alphaWhere .= " AND T.event_name LIKE '$alphaSelected%'";
                 }
-        
+
                 // Get full list for all other filters, but not filtered by alpha (that would be silly)
                 $alphaList = $this->getAlphaList(' AND '.$where, $alphaSelected);
-                
+
                 // Get count of reg event listed
                 $regEventsCount = $this->getStats($where);
-                
+
                 // Get stats for number of registration events found matching current selection criteria (includes alpha selection)
                 $filteredRegEventsFound = $this->getStats(str_replace('T.', '', $where.$alphaWhere));
-                
+
                 // Get a current list of reg events
                 $listResult = $this->getSimpleRegEventsList($where.$alphaWhere, 'event_name', true, 'id', $start, $limit, true);
-        
+
                 // Get paging results
                 $numbDisplayed = $listResult['returned'];
                 $lastDisplayed = $listResult['last'];
@@ -448,38 +448,38 @@ class GlmMembersAdmin_registrations_events extends GlmDataRegistrationsRegEvent
                 if ($listResult['returned'] == $limit) {
                     $nextStart = $start + $limit;
                 }
-                
+
                 // since we're doing paging, we have to break out just the event data
                 $list = $listResult['list'];
                 unset($listResult);
-                
+
                 // If we have list entries - even if it's an empty list
                 $success = true;
                 $haveRegEvents = false;
                 if ($list !== false) {
-               
+
                     $success = true;
-                    
+
                     // If we have any entries
                     if (count($list) > 0) {
                         $haveRegEvents = true;
                     }
                 }
-                
+
                 // Get full list of event names matching the current where clause for text search box
-                $namesList = $this->getSimpleRegEventsList($where);        
-       
+                $namesList = $this->getSimpleRegEventsList($where);
+
                 $view = 'eventsDashboard';
-                
+
                 break;
 
         }
-        
+
         // If we have a valid account ID, save that for future use
         if ($regEventID > 0) {
             update_option('glmMembersDatabaseRegistrationsRegEventID', $regEventID);
         }
-        
+
         // Compile template data
         $templateData = array(
             'option'                  => $option,
@@ -508,14 +508,14 @@ class GlmMembersAdmin_registrations_events extends GlmDataRegistrationsRegEvent
             'regEventUpdateError'     => $regEventUpdateError,
             'regEventAdded'           => $regEventAdded,
             'reason'                  => $reason,
-            
+
             'entry'          => $regEventSample,
             'thisJsUrl'      => GLM_MEMBERS_REGISTRATIONS_PLUGIN_URL . '/js',
             'regEventJSON'   => json_encode( $regEventSample['reg_event'] ),
             'regClassJSON' => $regClassJSON,
-            
+
         );
-                
+
         // Return status, any suggested view, and any data to controller
         return array(
             'status'        => true,
index a2c93ca..4b4f77b 100644 (file)
@@ -1,13 +1,13 @@
 {include file='admin/registrations/eventHeader.html'}
-    
+
     <h2>
         Registrations Event Edit
-        
+
         &nbsp;&nbsp;&nbsp;
         {if $regEventUpdated}<span class="glm-notice glm-flash-updated">Registration Event Updated</span>{/if}
         {if $regEventUpdateError}<span class="glm-error glm-flash-updated">Registration Event Update Error</span>{/if}
         {if $regEventAdded}<span class="glm-notice glm-flash-updated">Registration Event Added</span>{/if}
-        
+
     </h2>
 
 {if $reason}
     <h2 class="nav-tab-wrapper" style="margin-bottom: 1em;">
         <a href="{$thisUrl}?page=glm-members-admin-menu-registrations-events&option=edit&regEventID={$regEventID}" class="nav-tab">Edit Registration Settings</a>
         <a onClick="return false;" class="nav-tab nav-tab-active">Registration Levels & Charges</a>
-    </h2>       
-    
-    
-    
-    
+    </h2>
     {* Event Registration App - Backbone.js *}
     {* Underscore Templates for the Event Registration App *}
     {literal}
     <script type="text/template" id="regEvent-template">
     <h2><%= event_name %></h2>
-    <div class="glm-reg-compcode-entry">
-        <input type="text" placeholder="Enter Comp Code Here" />
-    </div>
-    <div>
-        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
-        <p>Maximum Registrants: <%- attendee_max %></p>
-    </div>
-
-    <div class="glm-reg-entryforms clearfix">
-        <div class="glm-reg-dates">
-            <h4>Pick your registration dates</h4>
-            <input type="date" placeholder="Enter Date" />
-            <input type="text" placeholder="Enter Time" />
-        </div>
-        <div class="glm-reg-submit">
-            <input type="submit" value="Continue to Cart" />
-        </div>
-    </div>
     </script>
     <script type="text/template" id="account-template">
     <a class="glm-reg-level-registrant-delete">Delete</a>
     </div>
     </script>
     <script type="text/template" id="regClass-template">
-    <h3><%= name %> Count: <%= reg_count %></h3>
+    <h3><%= name %></h3>
     <p><%= descr %></p>
-    <div>
-        <div>Current Rate: <%= reg_rate_name %></div>
-        <div>Base Price: $<%= reg_rate_base_price %></div>
-        <div>Per Registrant: $<%= reg_rate_per_reg %></div>
-    </div>
-    <div class="registrant-add clearfix">
-        <input type="text" class="addEmail" placeholder="Enter Email Address">
-        <input type="submit" class="addRegistrant" value="Add">
-    </div>
     </script>
     <script type="text/template" id="eventReg-account-login">
     <h4>Login</h4>
     </script>
     {/literal}
     <div class="glm-reg-event-list" id="regApp">
-        <div class="glm-reg-account">
-            <a class="glm-reg-account-login" id="appLogin">Login</a>
-        </div>
     </div>
     {* Bootstrap the models needed on page load *}
     {* Need to have RegEvent model created *}
     {* And create the RegClasses collection *}
     <script>
+    //var $=jQuery.noConflict();
     var appLoginUrl = '{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=login';
     var ajaxUrl = '{$ajaxUrl}?action=glm_members_admin_ajax';
     var app = {
         app.Models.regEvent = new app.Models.RegEvent;
         app.Models.regEvent.set( {$regEventJSON} );
         app.Models.regEvent.setClasses( {$regClassJSON} );
-        new app.Views.App();
+        //new app.Views.App();
+        new app.Views.EventEditLevels();
     });
     </script>
-    
-    
+
+
 
 
 
 {/if} <!-- no problem reasons -->
 
-    
+
 {include file='admin/footer.html'}