diff --git a/src/app/add-task/add-task.component.html b/src/app/add-task/add-task.component.html
index 7cdaad3..42963b2 100644
--- a/src/app/add-task/add-task.component.html
+++ b/src/app/add-task/add-task.component.html
@@ -1,3 +1,6 @@
- add
-
\ No newline at end of file
+
+
+
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 93d6c0b..52d96cd 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -7,19 +7,23 @@ import { AppComponent } from './app.component';
import { MainPageComponent } from './main-page/main-page.component';
import { AddTaskComponent } from './add-task/add-task.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
-import {MatIconModule} from '@angular/material/icon';
+import {MatIconModule} from '@angular/material/icon';
+import {MatInputModule} from '@angular/material/input';
+import { DisplayTaskComponent } from './display-task/display-task.component';
@NgModule({
declarations: [
AppComponent,
MainPageComponent,
- AddTaskComponent
+ AddTaskComponent,
+ DisplayTaskComponent
],
imports: [
BrowserModule,
AppRoutingModule,
BrowserAnimationsModule,
- MatIconModule
+ MatIconModule,
+ MatInputModule
],
providers: [
CookieService,
diff --git a/src/app/core/service/task.service.ts b/src/app/core/service/task.service.ts
index bd8b24f..87c8046 100644
--- a/src/app/core/service/task.service.ts
+++ b/src/app/core/service/task.service.ts
@@ -7,7 +7,7 @@ import { TaskPersistenceService } from './task-persistence.service';
providedIn: 'root'
})
export class TaskService {
- _tasks: BehaviorSubject = new BehaviorSubject([]);
+ private _tasks: BehaviorSubject = new BehaviorSubject([]);
constructor(
private _taskPersistenceService: TaskPersistenceService
@@ -24,9 +24,15 @@ export class TaskService {
const tasks = this._tasks.value;
tasks.push(task);
this._tasks.next(tasks);
+ this._saveTasks();
}
- _saveTasks(): void {
+ private _saveTasks(): void {
this._taskPersistenceService.save(this._tasks.value);
}
+
+ refresh() {
+ const tasks = this._taskPersistenceService.getAll();
+ this._tasks.next(tasks);
+ }
}
diff --git a/src/app/display-task/display-task.component.html b/src/app/display-task/display-task.component.html
new file mode 100644
index 0000000..232a4e0
--- /dev/null
+++ b/src/app/display-task/display-task.component.html
@@ -0,0 +1,9 @@
+
+
{{ task.title }}
+
+
+ Saisissez le titre de la tâche.
+
+
+
{{ task.description }}
+
diff --git a/src/app/display-task/display-task.component.scss b/src/app/display-task/display-task.component.scss
new file mode 100644
index 0000000..056cfe9
--- /dev/null
+++ b/src/app/display-task/display-task.component.scss
@@ -0,0 +1,11 @@
+.component {
+ min-height: 50px;
+ width: 90%;
+ margin: auto;
+
+}
+
+.placeholder {
+ font-style: italic;
+ color: #AAAAAA;
+}
diff --git a/src/app/display-task/display-task.component.spec.ts b/src/app/display-task/display-task.component.spec.ts
new file mode 100644
index 0000000..4f8e791
--- /dev/null
+++ b/src/app/display-task/display-task.component.spec.ts
@@ -0,0 +1,25 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { DisplayTaskComponent } from './display-task.component';
+
+describe('DisplayTaskComponent', () => {
+ let component: DisplayTaskComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ declarations: [ DisplayTaskComponent ]
+ })
+ .compileComponents();
+ });
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(DisplayTaskComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/display-task/display-task.component.ts b/src/app/display-task/display-task.component.ts
new file mode 100644
index 0000000..0d4befc
--- /dev/null
+++ b/src/app/display-task/display-task.component.ts
@@ -0,0 +1,15 @@
+import { Component, Input, OnInit } from '@angular/core';
+import { Task } from '../core/entity/task';
+
+@Component({
+ selector: 'app-display-task',
+ templateUrl: './display-task.component.html',
+ styleUrls: ['./display-task.component.scss']
+})
+export class DisplayTaskComponent {
+ @Input() task: Task = {} as Task;
+
+ getTitle(): string {
+ return `Créé le ${this.task.creationDate?.toLocaleString()}`;
+ }
+}
diff --git a/src/app/main-page/main-page.component.html b/src/app/main-page/main-page.component.html
index d7ce6fa..b2a0180 100644
--- a/src/app/main-page/main-page.component.html
+++ b/src/app/main-page/main-page.component.html
@@ -1,12 +1,8 @@
Todo List
-
-
{{ task.title }}
-
{{ task.description }}
-
-
+
+
add
Ajouter une nouvelle tâche...
-
-
\ No newline at end of file
+
diff --git a/src/app/main-page/main-page.component.ts b/src/app/main-page/main-page.component.ts
index d99bb79..b679361 100644
--- a/src/app/main-page/main-page.component.ts
+++ b/src/app/main-page/main-page.component.ts
@@ -1,4 +1,4 @@
-import { Component, OnInit } from '@angular/core';
+import { AfterViewInit, Component, OnInit } from '@angular/core';
import { Task } from '../core/entity/task';
import { TaskService } from '../core/service/task.service';
@@ -7,7 +7,7 @@ import { TaskService } from '../core/service/task.service';
templateUrl: './main-page.component.html',
styleUrls: ['./main-page.component.scss']
})
-export class MainPageComponent implements OnInit {
+export class MainPageComponent implements OnInit, AfterViewInit {
tasks: Task[] = [];
isAddingATask = false;
@@ -19,7 +19,15 @@ export class MainPageComponent implements OnInit {
this._taskService.tasks.subscribe(tasks => this.tasks = tasks);
}
- startTaskAddition(): void {
- this.isAddingATask = true;
+ ngAfterViewInit(): void {
+ this._taskService.refresh();
+ }
+
+ createTask(): void {
+ const newTask = {
+ creationDate: new Date()
+ } as Task;
+
+ this._taskService.add(newTask);
}
}