Skip to content

Instantly share code, notes, and snippets.

@orlando-c-h
Last active December 4, 2017 14:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save orlando-c-h/77a78d55963d780b68d0fe66770e143b to your computer and use it in GitHub Desktop.
Save orlando-c-h/77a78d55963d780b68d0fe66770e143b to your computer and use it in GitHub Desktop.
import { Component, OnInit } from '@angular/core';
import { DatePipe } from '@angular/common';
import { FormBuilder, FormGroup } from '@angular/forms';
import {Todo} from './to-do';
import { TodoService } from './to-do.service';
export enum SaveMode {
None,
New,
Edit
}
@Component({
selector: 'app-to-do',
templateUrl: './to-do.component.html',
styleUrls: ['./to-do.component.css']
})
export class ToDoComponent implements OnInit {
formGroup: FormGroup;
todos: Todo[];
saveMode: SaveMode = SaveMode.None;
headerText: string;
constructor(private _todoService: TodoService, private _formBuilder: FormBuilder) {
this.formGroup = _formBuilder.group({
'id': '',
'name': '',
'due': '',
'done': '',
'notes': ''});
}
ngOnInit() {
this.getTodos();
}
getTodos() {
this.todos = this._todoService.getTodosFromData();
}
saveTodo(todo: Todo) {
if (todo.id) {
this._todoService.updateTodo(todo);
} else {
this._todoService.addTodo(todo);
}
this.saveMode = SaveMode.None;
}
removeToDo(todo: Todo) {
this._todoService.deleteTodo(todo);
}
cancelEditTodo() {
this.formGroup.reset();
this.saveMode = SaveMode.None;
}
showEditForm(todo: Todo) {
if (!todo) {
return;
}
this.saveMode = SaveMode.Edit;
this.headerText = 'Edit To-Do';
const editedTodo = Object.assign({}, todo, { due: this.applyLocale(todo.due) });
this.formGroup.setValue(editedTodo);
}
showNewForm() {
this.formGroup.reset();
this.saveMode = SaveMode.New;
this.headerText = 'New To-Do';
}
showForm() {
return this.saveMode !== SaveMode.None;
}
applyLocale(due) {
return new DatePipe(navigator.language).transform(due, 'y-MM-dd');
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment