From 507edc6151086e5f6370d0d167b3eb2b6e27ab3a Mon Sep 17 00:00:00 2001 From: HarmandI Date: Tue, 15 Feb 2022 15:03:35 +0100 Subject: [PATCH] Add tache ok --- package-lock.json | 6 +- package.json | 2 +- .../to-do-list/to-do-list.component.html | 8 +- .../to-do-list/to-do-list.component.ts | 87 +++++++++++-------- src/app/interfaces/todo.ts | 6 +- src/app/models/tache.ts | 10 +++ src/app/models/to-do-list.ts | 6 +- src/app/services/todo.service.ts | 9 +- src/app/todo-list.ts | 2 + 9 files changed, 83 insertions(+), 53 deletions(-) create mode 100644 src/app/models/tache.ts create mode 100644 src/app/todo-list.ts diff --git a/package-lock.json b/package-lock.json index 11d31e8..46ec9e1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2645,9 +2645,9 @@ "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==" }, "bootstrap-icons": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.7.2.tgz", - "integrity": "sha512-NiR2PqC73AQOPdVSu6GJfnk+hN2z6powcistXk1JgPnKuoV2FSdSl26w931Oz9HYbKCcKUSB6ncZTYJAYJl3QQ==" + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.8.1.tgz", + "integrity": "sha512-IXUqislddPJfwq6H+2nTkHyr9epO9h6u1AG0OZCx616w+TgzeoCjfmI3qJMQqt1J586gN2IxzB4M99Ip4sTZ1w==" }, "brace-expansion": { "version": "1.1.11", diff --git a/package.json b/package.json index f135ddb..6568a98 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "@angular/platform-browser-dynamic": "~13.0.0", "@angular/router": "~13.0.0", "bootstrap": "^5.1.3", - "bootstrap-icons": "^1.7.2", + "bootstrap-icons": "^1.8.1", "jwt-decode": "^3.1.2", "ngx-autofocus-fix": "^1.0.4", "rxjs": "~7.4.0", diff --git a/src/app/components/to-do-list/to-do-list.component.html b/src/app/components/to-do-list/to-do-list.component.html index 9c94a23..ffef4f0 100644 --- a/src/app/components/to-do-list/to-do-list.component.html +++ b/src/app/components/to-do-list/to-do-list.component.html @@ -12,10 +12,10 @@ class="todo-input" placeholder="+ Nouvelle Tâche" [(ngModel)]="todoTitle" - (keyup.enter)="addTache()" + (keyup.enter)="addTache(todo.id)" /> - +{{todo}}
@@ -63,7 +63,7 @@
{{ toDoRest() }} tâches
-
+
diff --git a/src/app/components/to-do-list/to-do-list.component.ts b/src/app/components/to-do-list/to-do-list.component.ts index 361390e..fd23fb9 100644 --- a/src/app/components/to-do-list/to-do-list.component.ts +++ b/src/app/components/to-do-list/to-do-list.component.ts @@ -1,7 +1,9 @@ import { Component, Input, OnInit } from '@angular/core'; import { Router } from '@angular/router'; -import { Todo } from 'src/app/interfaces/todo'; +import { Tache} from 'src/app/models/tache'; +import { ToDoList} from 'src/app/models/to-do-list'; import { TodoService } from 'src/app/services/todo.service'; +import { TodoList } from 'src/app/todo-list'; @Component({ selector: 'app-to-do-list', @@ -9,25 +11,26 @@ import { TodoService } from 'src/app/services/todo.service'; styleUrls: ['./to-do-list.component.scss'], }) export class ToDoListComponent implements OnInit { - @Input() todo : any; + @Input() todo!: ToDoList; public beforeEditCache: string; - public todos: Todo[]; + //public todos: ToDoList[]; public todoTitle: string; public idTodo: number; public filter : string; public casesRestantes : boolean; public masterSelected: boolean; public result : any; + public tache : Tache []; constructor(private TodoService : TodoService, private router: Router ) { this.beforeEditCache = ''; - this.todos = []; + //this.todos = []; this.todoTitle = ''; this.idTodo = 0; this.filter =''; this.casesRestantes=true; this.masterSelected= false; - + this.tache = []; } ngOnInit(): void { @@ -37,31 +40,41 @@ export class ToDoListComponent implements OnInit { this.filter='tous'; this.idTodo = 4; this.todoTitle = ''; - this.todos = [ + /* this.todos = [ { id: 1, - title: 'Finish Angular Screencast', - completed: false, + texte: 'Finish Angular Screencast', + etat: false, editing: false, }, { id: 2, - title: 'Take over world', - completed: false, + texte: 'Take over world', + etat: false, editing: false, }, { id: 3, - title: 'One more thing', - completed: false, + texte: 'One more thing', + etat: false, editing: false, }, - ]; + ]; */ } //ajouter tache - addTache(): void { - this.TodoService.addTache(todo).subscribe((resp)=>{ - this.router.navigate(['to-do-list']) + + addTache(idTodoList : number) {//idTodoList id que la todoList que l'on récupère +console.log(idTodoList); + const tache: Tache = { + id : 0, + texte: this.todoTitle, + etat : false, + editing : false, + + } + console.log(this.tache); + this.TodoService.addTache(tache,idTodoList).subscribe((resp)=>{ + window.location.reload(); }) /* if (this.todoTitle.trim().length === 0) { return; @@ -83,24 +96,24 @@ export class ToDoListComponent implements OnInit { //modifier la tâche - modifier(todo: Todo): void { - this.beforeEditCache = todo.title; - todo.editing = true; + modifier(tache: Tache): void { + this.beforeEditCache = tache.texte; + tache.editing = true; } // modifier l'apparence focus - doneEdit(todo: Todo): void { - if (todo.title.trim().length === 0) { - todo.title = this.beforeEditCache; + doneEdit(tache: Tache): void { + if (tache.texte.trim().length === 0) { + tache.texte = this.beforeEditCache; } this.casesRestantes= this.casesQuiRestes(); - todo.editing = false; + tache.editing = false; } // annuler la modification - cancelEdit(todo: Todo): void { - todo.title = this.beforeEditCache; - todo.editing = false; + cancelEdit(tache: Tache): void { + tache.texte = this.beforeEditCache; + tache.editing = false; } //supprimer la tache @@ -115,24 +128,24 @@ export class ToDoListComponent implements OnInit { //nombre de tâches restantes toDoRest(): number{ - return this.todos.filter(todo=> !todo.completed).length; + return this.todo.taches.filter((tache: Tache)=> !tache.etat).length; } //Cocher toutes les tâches de la liste listComplete(): boolean { - return this.todos.filter(todo=> todo.completed).length>0; + return this.todo.taches.filter((tache: Tache)=> tache).length>0; } //Effacer la to do list effacerList(): void { - this.todos = []; + //this.todo = []; } //cocher toutes les cases de la todoList cocherAllTodoList(): void { - for (var i = 0; i < this.todos.length; i++) { - this.todos[i].completed = this.masterSelected; + for (var i = 0; i < this.todo.taches.length; i++) { + this.todo.taches[i].etat = this.masterSelected; } this.cocherAllTodoList(); } @@ -142,16 +155,16 @@ export class ToDoListComponent implements OnInit { } //barre de filtre des tâches - todosFilter(): Todo[] { + /* todosFilter(): ToDoList[] { if(this.filter === 'tous'){ - return this.todos + return this.todo.taches }else if (this.filter === 'active'){ - return this.todos.filter(todo=> !todo.completed) + return this.todo.taches.filter((tache: Tache)=> !tache.etat) }else if (this.filter === 'complete'){ - return this.todos.filter(todo=>todo.completed) - } - return this.todos + return this.todo.taches.filter((tache: Tache)=>tache.etat) } + return this.todo + } */ } diff --git a/src/app/interfaces/todo.ts b/src/app/interfaces/todo.ts index 29efff7..c210431 100644 --- a/src/app/interfaces/todo.ts +++ b/src/app/interfaces/todo.ts @@ -1,7 +1,7 @@ export interface Todo { id : number, - title : string, - completed: boolean, - editing: boolean + texte : string, + etat: boolean, + // todoListId: number // FK } diff --git a/src/app/models/tache.ts b/src/app/models/tache.ts new file mode 100644 index 0000000..4326f65 --- /dev/null +++ b/src/app/models/tache.ts @@ -0,0 +1,10 @@ + +import { ToDoList } from './to-do-list'; + + +export interface Tache { + id : number, + texte: string, + etat : boolean, + editing : boolean +} diff --git a/src/app/models/to-do-list.ts b/src/app/models/to-do-list.ts index 48fba0f..ec149d4 100644 --- a/src/app/models/to-do-list.ts +++ b/src/app/models/to-do-list.ts @@ -1,7 +1,11 @@ +import { Tache } from './tache'; import { Team } from './team'; export interface ToDoList { nom: string; team: Team; - tache: string; + taches: Tache []; + id:number; } + + diff --git a/src/app/services/todo.service.ts b/src/app/services/todo.service.ts index 7202261..f208bdd 100644 --- a/src/app/services/todo.service.ts +++ b/src/app/services/todo.service.ts @@ -2,7 +2,8 @@ import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; import { environment } from 'src/environments/environment'; -import { Todo } from '../interfaces/todo'; +import { Tache } from '../models/tache'; +import { ToDoList } from '../models/to-do-list'; @Injectable({ providedIn: 'root', @@ -23,8 +24,8 @@ export class TodoService { return this.http.delete(`${this.apiUrl}/taches/delete/${idTache}`,{responseType:'text'}); } - addTache(todo:Todo): Observable { - console.log(todo); - return this.http.post(`${this.apiUrl}/taches/add`, todo); + addTache(newtache: Tache,idTodoList:number): Observable { + console.log(newtache); + return this.http.post(`${this.apiUrl}/taches/add/${idTodoList}`, newtache); } } diff --git a/src/app/todo-list.ts b/src/app/todo-list.ts new file mode 100644 index 0000000..f99121f --- /dev/null +++ b/src/app/todo-list.ts @@ -0,0 +1,2 @@ +export interface TodoList { +}