From f413a9002a653eb83cc71e726ab6d2d099b9b0f8 Mon Sep 17 00:00:00 2001 From: jbavari Date: Fri, 30 Oct 2015 23:31:25 -0600 Subject: [PATCH] Feature(generators): Add generators for login page and signup page --- tooling/generators/page-login/index.js | 26 ++++++++++++++ .../page-login/page-login.tmpl.html | 22 ++++++++++++ .../generators/page-login/page-login.tmpl.js | 32 +++++++++++++++++ tooling/generators/page-signup/index.js | 27 +++++++++++++++ .../page-signup/page-signup.tmpl.html | 18 ++++++++++ .../page-signup/page-signup.tmpl.js | 34 +++++++++++++++++++ 6 files changed, 159 insertions(+) create mode 100644 tooling/generators/page-login/index.js create mode 100644 tooling/generators/page-login/page-login.tmpl.html create mode 100644 tooling/generators/page-login/page-login.tmpl.js create mode 100644 tooling/generators/page-signup/index.js create mode 100644 tooling/generators/page-signup/page-signup.tmpl.html create mode 100644 tooling/generators/page-signup/page-signup.tmpl.js diff --git a/tooling/generators/page-login/index.js b/tooling/generators/page-login/index.js new file mode 100644 index 0000000000..8d361acd1d --- /dev/null +++ b/tooling/generators/page-login/index.js @@ -0,0 +1,26 @@ +var fs = require('fs'), + Generator = module.exports, + Generate = require('../../generate'), + path = require('path'), + Q = require('q'); +/* + @options + name: Page name + appDirectory: App directory of where to save file +*/ +Generator.run = function run(options) { + options.rootDirectory = options.rootDirectory || path.join('www', 'app'); + var savePath = path.join(options.appDirectory, options.rootDirectory, options.fileAndClassName); + + var templates = Generate.loadGeneratorTemplates(__dirname); + + templates.forEach(function(template) { + var templatePath = path.join(__dirname, template.file); + options.templatePath = templatePath; + var renderedTemplate = Generate.renderTemplateFromFile(options); + var saveFilePath = path.join(savePath, [options.fileAndClassName, template.type].join('')); + // console.log('renderedTemplate', renderedTemplate, 'saving to', saveFilePath); + console.log('√ Create'.blue, path.relative(options.appDirectory, saveFilePath)); + fs.writeFileSync(saveFilePath, renderedTemplate); + }); +}; diff --git a/tooling/generators/page-login/page-login.tmpl.html b/tooling/generators/page-login/page-login.tmpl.html new file mode 100644 index 0000000000..1b65d2ed27 --- /dev/null +++ b/tooling/generators/page-login/page-login.tmpl.html @@ -0,0 +1,22 @@ + + + + <%= javascriptClassName %> + + + + + +
+ + + + + + + +
+ +
+
+
diff --git a/tooling/generators/page-login/page-login.tmpl.js b/tooling/generators/page-login/page-login.tmpl.js new file mode 100644 index 0000000000..8c9f900e95 --- /dev/null +++ b/tooling/generators/page-login/page-login.tmpl.js @@ -0,0 +1,32 @@ +import {FormBuilder, Validators} from 'angular2/angular2'; +import {Log} from 'ionic/util' +import {Page, NavController} from 'ionic/ionic' + +@Page({ + templateUrl: 'app/<%= fileAndClassName %>/<%= fileAndClassName %>.html' +}) +class <%= javascriptClassName %> { + constructor(nav: NavController ) { + + this.nav = nav + Log.log('LOGIN PAGE', this) + + var fb = new FormBuilder() + + this.loginForm = fb.group({ + email: ['', Validators.required], + password: ['', Validators.required], + }); + + } + + doLogin(event) { + Log.log('Doing login') + event.preventDefault(); + console.log(this.loginForm.value); + } + + doSignup(event) { + this.nav.push(SignupPage) + } +} diff --git a/tooling/generators/page-signup/index.js b/tooling/generators/page-signup/index.js new file mode 100644 index 0000000000..70cddd3626 --- /dev/null +++ b/tooling/generators/page-signup/index.js @@ -0,0 +1,27 @@ +var fs = require('fs'), + Generator = module.exports, + Generate = require('../../generate'), + path = require('path'), + Q = require('q'); +/* + @options + name: Page name + appDirectory: App directory of where to save file +*/ +Generator.run = function run(options) { + + options.rootDirectory = options.rootDirectory || path.join('www', 'app'); + var savePath = path.join(options.appDirectory, options.rootDirectory, options.fileAndClassName); + + var templates = Generate.loadGeneratorTemplates(__dirname); + + templates.forEach(function(template) { + var templatePath = path.join(__dirname, template.file); + options.templatePath = templatePath; + var renderedTemplate = Generate.renderTemplateFromFile(options); + var saveFilePath = path.join(savePath, [options.fileAndClassName, template.type].join('')); + // console.log('renderedTemplate', renderedTemplate, 'saving to', saveFilePath); + console.log('√ Create'.blue, path.relative(options.appDirectory, saveFilePath)); + fs.writeFileSync(saveFilePath, renderedTemplate); + }); +}; diff --git a/tooling/generators/page-signup/page-signup.tmpl.html b/tooling/generators/page-signup/page-signup.tmpl.html new file mode 100644 index 0000000000..a6def7e870 --- /dev/null +++ b/tooling/generators/page-signup/page-signup.tmpl.html @@ -0,0 +1,18 @@ + +
+ + + + + + + + + + +
+ +
+
+
+ diff --git a/tooling/generators/page-signup/page-signup.tmpl.js b/tooling/generators/page-signup/page-signup.tmpl.js new file mode 100644 index 0000000000..39cb3bbe86 --- /dev/null +++ b/tooling/generators/page-signup/page-signup.tmpl.js @@ -0,0 +1,34 @@ +import {FormBuilder, Validators} from 'angular2/angular2'; +import {Log} from 'ionic/util' +import {Page, NavController} from 'ionic/ionic' + + +@Page({ + templateUrl: 'app/<%= fileAndClassName %>/<%= fileAndClassName %>.html' +}) +export class <%= javascriptClassName %> { + constructor(nav: NavController) { + this.nav = nav + + Log.log('SIGNUP PAGE') + + var fb = new FormBuilder() + + this.signupForm = fb.group({ + name: ['', Validators.required], + email: ['', Validators.required], + password: ['', Validators.required], + }); + } + + doLogin(event) { + this.nav.pop() + } + doSignup(event) { + Log.log('Doing signup') + event.preventDefault(); + console.log(this.signupForm.value); + + this.nav.push(AppPage) + } +}