import { Component, NgModule, ViewChild, EventEmitter } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { Http } from '@angular/http';
import { CrudModule } from './crud.module'
import { CrudComponent } from './crud.component'
import {TranslateService} from 'ng2-translate';
import { Scheduling } from './examples/scheduling'
import { Login } from './examples/login'
import * as moment from 'moment';
import { TranslateModule, TranslateStaticLoader, TranslateLoader } from 'ng2-translate';
import { getI18nPath } from './decorators';
import { PrimeNgModule } from './primeng.module';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'
@Component({
selector: 'my-app',
template: `
`,
})
export class App {
broadcast: EventEmitter = new EventEmitter();
onTableLoaded: EventEmitter = new EventEmitter();
onTableRowSelected: EventEmitter = new EventEmitter();
@ViewChild(CrudComponent) crudComponent : CrudComponent;
login : Login = new Login();
displayLogin : boolean = false;
scheduling : Scheduling = new Scheduling();
constructor(public translate: TranslateService) {
translate.addLangs(["en-en", "pt-br"]);
translate.setDefaultLang('en-en');
translate.use('en-en');
this.onTableLoaded.subscribe(() => {
console.log('table loaded');
});
this.onTableRowSelected.subscribe((event : any) => {
console.log(event);
});
}
handleOnSave(login : Login) {
console.log('Save');
console.log(login);
}
handleOnRemove(login : Login) {
console.log('Remove');
console.log(login);
}
handleOnCancel() {
console.log('Cancel');
}
handleOnOk(login : Login) {
console.log(login);
}
i18n() {
this.translate.use('pt-br');
this.crudComponent.notify();
}
refresh() {
this.broadcast.emit('{"url": "/data/login.json"}');
}
changeLogin() {
this.login.email = 'cmargulhano@gmail.com';
this.broadcast.emit(this.login);
}
removeRequired() {
this.crudComponent.hideMsgError();
this.crudComponent.getComponent('Login', 'Email').required=false;
}
setSelectValue() {
this.scheduling.period = '3';
this.crudComponent.broadcast.emit(this.scheduling);
}
}
export function createTranslateLoader(http: Http) {
return new TranslateStaticLoader(http, getI18nPath(), '.json');
}
@NgModule({
imports: [BrowserAnimationsModule, BrowserModule, CrudModule, PrimeNgModule.forRoot(),
TranslateModule.forRoot({
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [Http]
})
],
declarations: [App],
bootstrap: [App],
providers: [Scheduling, Login]
})
export class AppModule {
}