--- /dev/null
+node_modules/
--- /dev/null
+var gulp = require('gulp'),
+ watch = require('gulp-watch'),
+ concat = require('gulp-concat'),
+ uglify = require('gulp-uglify');
+
+gulp.task('scripts', function(){
+ gulp.src(['./js/models/*.js', './js/collections/*.js', './js/views/*.js'])
+ .pipe(concat('glmApp.js'))
+ .pipe(uglify())
+ .pipe(gulp.dest('./js/'));
+});
+
+gulp.task('watch', function(){
+ gulp.watch('js/**/*.js', ['scripts']);
+});
+
+gulp.task('default', ['scripts', 'watch']);
--- /dev/null
+var app=app||{};app.Account=Backbone.Model.extend({defaults:{name:"",email:""},initialize:function(){this.on("invalid",function(e,t){console.log(t)})},validate:function(e,t){return void 0===e.name||""===e.name?"Need a name!":void 0===e.email||""===e.email?"Need an email address!":void 0}}),(app=app||{}).Login=Backbone.Model.extend({defaults:{username:"",password:""},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=app||{}).RegClass=Backbone.Model.extend({defaults:{reg_event:0,name:"",descr:""},initialize:function(){this.accounts=new app.Accounts}}),(app=app||{}).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.RegClasses},setClasses:function(e){this.classes.reset(e)}}),(app=app||{}).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=app||{}).Accounts=Backbone.Collection.extend({model:app.Account,localStorage:new Backbone.LocalStorage("Accounts_"+this.id)}),(app=app||{}).RegClasses=Backbone.Collection.extend({model:app.RegClass}),(app=app||{}).RegRates=Backbone.Collection.extend({model:app.RegRate}),(app=app||{}).AccountView=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")}}),(app=app||{}).AppView=Backbone.View.extend({el:"#regApp",initialize:function(){this.event=new app.RegEventView({model:app.regEvent}),this.render()},render:function(){return this.$el.append(this.event.render().el),this},events:{"click #appLogin":"login"},login:function(){console.log("login called"),view=new app.LoginView({model:new app.Login}),this.$el.append(view.render().el)},start:function(e){app.regEvent=new app.RegEvent(e.revEvent),app.regEvent.setClasses(e.regEventClasses)}}),(app=app||{}).LoginView=Backbone.View.extend({tagName:"div",className:"glm-reg-login",template:_.template($("#eventReg-account-login").html()),events:{"click .accountLogin":"loginToAccount"},initialize:function(){return this},loginToAccount:function(){console.log("user: "+this.$userInput.val().trim()),console.log("password: "+this.$pwdInput.val().trim())},render:function(){return this.$el.html(this.template(this.model.toJSON())),this.$userInput=this.$(".login"),this.$pwdInput=this.$(".password"),this}}),(app=app||{}).RegClassView=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},events:{"click .addRegistrant":"newEntry"},newEntry:function(){this.$newName=this.$(".addName"),this.$newEmail=this.$(".addEmail"),this.$newName.val().trim()&&this.$newEmail.val().trim()&&(this.model.accounts.create({name:this.$newName.val().trim(),email:this.$newEmail.val().trim()}),this.$newName.val(""),this.$newEmail.val(""))},render:function(){return this.$el.html(this.template(this.model.toJSON())),this},addOne:function(e){if(e.isValid()){var t=new app.AccountView({model:e});this.$el.append(t.render().el)}},addAll:function(){this.$(".glm-reg-level").html(""),this.model.classes.each(this.addOne,this)}}),(app=app||{}).RegEventView=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.regEvent.classes.map(function(e){return new app.RegClassView({model:e}).render().el});return this.$el.append(e),this}});
\ No newline at end of file
{
$scripts = array(
'backbone-local' => 'js/lib/backbone.localStorage.min.js',
- 'account' => 'js/models/account.js',
- 'regClass' => 'js/models/regClass.js',
- 'regEvent' => 'js/models/regEvent.js',
- 'regRate' => 'js/models/regRate.js',
- 'login' => 'js/models/login.js',
- 'accounts' => 'js/collections/accounts.js',
- 'regClasses' => 'js/collections/regClasses.js',
- 'regRates' => 'js/collections/regRates.js',
- 'registrantView' => 'js/views/account.js',
- 'regEventView' => 'js/views/regEvent.js',
- 'regClassView' => 'js/views/regClass.js',
- 'regLoginView' => 'js/views/login.js',
- 'appView' => 'js/views/app.js',
+ 'regApp' => 'js/glmApp.js',
+ // 'account' => 'js/models/account.js',
+ // 'regClass' => 'js/models/regClass.js',
+ // 'regEvent' => 'js/models/regEvent.js',
+ // 'regRate' => 'js/models/regRate.js',
+ // 'login' => 'js/models/login.js',
+ // 'accounts' => 'js/collections/accounts.js',
+ // 'regClasses' => 'js/collections/regClasses.js',
+ // 'regRates' => 'js/collections/regRates.js',
+ // 'registrantView' => 'js/views/account.js',
+ // 'regEventView' => 'js/views/regEvent.js',
+ // 'regClassView' => 'js/views/regClass.js',
+ // 'regLoginView' => 'js/views/login.js',
+ // 'appView' => 'js/views/app.js',
);
foreach ( $scripts as $scriptName => $scriptPath ) {
wp_register_script(
--- /dev/null
+{
+ "name": "glm-member-db-registrations",
+ "version": "0.1.0",
+ "description": "Gulp setup for registrations",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git@cvs2:WP-Plugins/glm-member-db-registrations.git"
+ },
+ "author": "Steve Sutton",
+ "license": "MIT",
+ "devDependencies": {
+ "gulp": "^3.9.1",
+ "gulp-concat": "^2.6.1",
+ "gulp-uglify": "^3.0.0",
+ "gulp-watch": "^4.3.11"
+ }
+}