Setting up with admin and front directories.
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())
+++ /dev/null
-// 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 );
- },
-
-});
-
-
--- /dev/null
+// 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 );
+ },
+
+});
+
+
--- /dev/null
+// js/collections/classes.js
+
+// Classes Collection
+app.Collections.RegClasses = Backbone.Collection.extend({
+ model: app.Models.RegClass,
+
+});
--- /dev/null
+// js/collections/regRates.js
+
+// Registration Rate Collection
+app.Collections.RegRates = Backbone.Collection.extend({
+ model: app.Models.RegRate,
+
+ // localStorage
+});
+++ /dev/null
-// js/collections/classes.js
-
-// Classes Collection
-app.Collections.RegClasses = Backbone.Collection.extend({
- model: app.Models.RegClass,
-
-});
+++ /dev/null
-// js/collections/regRates.js
-
-// Registration Rate Collection
-app.Collections.RegRates = Backbone.Collection.extend({
- model: app.Models.RegRate,
-
- // localStorage
-});
+++ /dev/null
-// 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!';
- }
- },
-
-});
+++ /dev/null
-// 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: '',
- }
-});
--- /dev/null
+// 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;
+ },
+
+});
--- /dev/null
+// 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 );
+ },
+
+});
--- /dev/null
+// 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!';
+ }
+ },
+
+});
--- /dev/null
+// 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: '',
+ }
+});
--- /dev/null
+// 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!';
+ }
+ },
+
+});
--- /dev/null
+// 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();
+ },
+
+});
--- /dev/null
+// 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 );
+ },
+
+});
--- /dev/null
+// 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
+ },
+
+});
+++ /dev/null
-// 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!';
- }
- },
-
-});
+++ /dev/null
-// 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();
- },
-
-});
+++ /dev/null
-// 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 );
- },
-
-});
+++ /dev/null
-// 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
- },
-
-});
-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
+++ /dev/null
-// 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');
- },
-
-});
--- /dev/null
+// 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 );
+ },
+
+});
--- /dev/null
+// 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;
+ },
+
+});
--- /dev/null
+// 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 );
+ // },
+
+});
+++ /dev/null
-// 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 );
- // },
-
-});
--- /dev/null
+// 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');
+ },
+
+});
--- /dev/null
+// 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 );
+ // },
+
+});
--- /dev/null
+// 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;
+ },
+
+});
--- /dev/null
+// 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 );
+ },
+
+});
--- /dev/null
+// 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;
+ },
+
+});
+++ /dev/null
-// 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;
- },
-
-});
+++ /dev/null
-// 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 );
- },
-
-});
+++ /dev/null
-// 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;
- },
-
-});
}
public function modelAction($actionData = false)
- {
-
+ {
+
$option = 'dashboard';
$view = false;
$where = ' true ';
$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',
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."
;";
$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) {
}
}
}
-
+
$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;
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",
'%f' // total_payments
)
);
-
+
} // If time isn't in reg_times
} // each recurrence times
} // have times for recurrence
} // 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'];
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,
'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,
{include file='admin/registrations/eventHeader.html'}
-
+
<h2>
Registrations Event Edit
-
+
{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®EventID={$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'}