From: Steve Sutton Date: Sun, 27 Aug 2017 16:22:35 +0000 (-0400) Subject: Adding gulp to combine and minify all js files for the app. X-Git-Tag: v1.0.0^2~441 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=5be6e95c799cbbae23168d07dcf2cdd11a2c9080;p=WP-Plugins%2Fglm-member-db-registrations.git Adding gulp to combine and minify all js files for the app. Adding gulp to the registration project. The default task will combine and uglify the js files and then watch the js folders models collections and views for any file changes. --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..8009dc1 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,17 @@ +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']); diff --git a/js/glmApp.js b/js/glmApp.js new file mode 100644 index 0000000..f7f66d4 --- /dev/null +++ b/js/glmApp.js @@ -0,0 +1 @@ +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 diff --git a/models/front/registrations/registration.php b/models/front/registrations/registration.php index a5c411b..fa5aa30 100644 --- a/models/front/registrations/registration.php +++ b/models/front/registrations/registration.php @@ -39,19 +39,20 @@ { $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( diff --git a/package.json b/package.json new file mode 100644 index 0000000..cb0c0e5 --- /dev/null +++ b/package.json @@ -0,0 +1,21 @@ +{ + "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" + } +}