Files
2015-05-16 20:57:07 +02:00

192 lines
3.8 KiB
JavaScript

//import {Router} from 'ionic/routing/router'
import {For, Parent, bootstrap} from 'angular2/angular2'
import {Component, Directive} from 'angular2/src/core/annotations_impl/annotations';
import {View} from 'angular2/src/core/annotations_impl/view';
import {FormBuilder, Validators, FormDirectives, ControlGroup} from 'angular2/forms';
import {Log} from 'ionic/util'
import {
Router, Routable, List, Item, HeaderTemplate, Nav, NavController,
Toolbar, Button, Input, Tabs,
Tab, Content, Aside
} from 'ionic/ionic'
@Component({selector: 'ion-view'})
@View({
templateUrl: 'pages/login.html',
directives: [FormDirectives, Button, Input, Content, HeaderTemplate, Toolbar]
})
export class LoginPage {
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);
//this.viewport.push(SecondPage)
}
doSignup(event) {
this.nav.push(SignupPage)
}
}
new Routable(LoginPage, {
url: '/login',
tag: 'login'
})
@Component({selector: 'ion-view'})
@View({
templateUrl: 'pages/signup.html',
directives: [FormDirectives, Button, Input]
})
export class SignupPage {
constructor( nav: NavController ) { //, fb: FormBuilder ) {
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)
//this.viewport.push(SecondPage)
}
}
@Component({selector: 'ion-view'})
@View({
templateUrl: 'pages/app.html',
directives: [FormDirectives, Button, Input, Tabs, Tab]
})
export class AppPage {
constructor( nav: NavController ) { //, fb: FormBuilder ) {
this.nav = nav;
this.streamTab = StreamTab
}
}
@Component({selector: 'ion-view'})
@View({
templateUrl: 'pages/tabs/home.html',
directives: [For, Content, List, Item]
})
class StreamTab {
constructor(nav: NavController) {
this.nav = nav;
this.posts = [
{'title': 'Just barked my first bark'},
{'title': 'Went poopy' }
];
}
selectPost(post) {
console.log('Select post', post);
this.nav.push(PostDetail, {
post
}, {
transition: '3dflip'
})
}
}
@Component({selector: 'ion-view'})
@View({
templateUrl: 'pages/post/detail.html',
directives: [Content]
})
class PostDetail {
constructor(nav: NavController) {
this.nav = nav;
this.title = 'Hello'
}
selectItem() {
this.nav.push(PostDetailTab)
}
}
@Component({selector: 'ion-view'})
@View({
templateUrl: 'pages/splash.html',
directives: [Content, Button]
})
class SplashPage {
constructor(nav: NavController) {
this.nav = nav;
window.nav = nav;
}
doLogin() {
this.nav.push(LoginPage);
}
}
/**
* Main app entry point
*/
@Component({ selector: 'ion-app' })
@View({
directives: [Nav],
templateUrl: 'main.html'
})
class IonicApp {
constructor() {
this.firstPage = SplashPage//AppPage//LoginPage
/*
setTimeout(() => {
var nav = window.nav;
var route = Router;//new Router()
route.on('/login', (data) => {
nav.push(LoginPage);
})
route.on('/post/:id', (data) => {
console.log('ROUTE: Post page', data)
nav.push(PostDetail, data);
})
route.otherwise('/login');
}, 200);
*/
}
}
export function main() {
bootstrap(IonicApp);
}