diff --git a/package-lock.json b/package-lock.json index 145d580..364c900 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "organizee-front", "version": "0.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, "packages": { "": { @@ -13371,7 +13371,8 @@ "version": "13.1.4", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.1.4.tgz", "integrity": "sha512-s8gzjG2nYHawFhlkHMkQWYrocHkBI1nF6T9K/oCSTIsq6kvTv//Ahno2VdBSgVq8uMnpv1TymvX0nFC4Dgn1HA==", - "dev": true + "dev": true, + "requires": {} }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -13774,7 +13775,8 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true + "dev": true, + "requires": {} }, "adjust-sourcemap-loader": { "version": "4.0.0", @@ -13854,7 +13856,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "ansi-colors": { "version": "4.1.1", @@ -14173,7 +14176,13 @@ "bootstrap": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", - "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==" + "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", + "requires": {} + }, + "bootstrap-icons": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.8.1.tgz", + "integrity": "sha512-IXUqislddPJfwq6H+2nTkHyr9epO9h6u1AG0OZCx616w+TgzeoCjfmI3qJMQqt1J586gN2IxzB4M99Ip4sTZ1w==" }, "bootstrap-icons": { "version": "1.8.1", @@ -14371,7 +14380,8 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", - "dev": true + "dev": true, + "requires": {} }, "clean-stack": { "version": "2.2.0", @@ -14855,7 +14865,8 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.2.tgz", "integrity": "sha512-gv0KQBEM+q/XdoKyznovq3KW7ocO7k+FhPP+hQR1MenJdu0uPGS6IZa9PzlbqBeS6XcZJNAoqoFxlAUW461CrA==", - "dev": true + "dev": true, + "requires": {} }, "css-select": { "version": "4.2.1", @@ -15199,7 +15210,8 @@ "version": "8.2.3", "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", - "dev": true + "dev": true, + "requires": {} } } }, @@ -16120,7 +16132,8 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true + "dev": true, + "requires": {} }, "ieee754": { "version": "1.2.1", @@ -16810,7 +16823,8 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.7.0.tgz", "integrity": "sha512-pzum1TL7j90DTE86eFt48/s12hqwQuiD+e5aXx2Dc9wDEn2LfGq6RoAxEZZjFiN0RDSCOnosEKRZWxbQ+iMpQQ==", - "dev": true + "dev": true, + "requires": {} }, "karma-source-map-support": { "version": "1.4.0", @@ -18015,7 +18029,8 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", - "dev": true + "dev": true, + "requires": {} }, "postcss-custom-properties": { "version": "12.1.3", @@ -18084,13 +18099,15 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "dev": true + "dev": true, + "requires": {} }, "postcss-gap-properties": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.2.tgz", "integrity": "sha512-EaMy/pbxtQnKDsnbEjdqlkCkROTQZzolcLKgIE+3b7EuJfJydH55cZeHfm+MtIezXRqhR80VKgaztO/vHq94Fw==", - "dev": true + "dev": true, + "requires": {} }, "postcss-image-set-function": { "version": "4.0.4", @@ -18116,7 +18133,8 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-lab-function": { "version": "4.0.3", @@ -18142,19 +18160,22 @@ "version": "5.0.3", "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.3.tgz", "integrity": "sha512-P5NcHWYrif0vK8rgOy/T87vg0WRIj3HSknrvp1wzDbiBeoDPVmiVRmkown2eSQdpPveat/MC1ess5uhzZFVnqQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-media-minmax": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-modules-extract-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true + "dev": true, + "requires": {} }, "postcss-modules-local-by-default": { "version": "4.0.0", @@ -18198,13 +18219,15 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.2.tgz", "integrity": "sha512-odBMVt6PTX7jOE9UNvmnLrFzA9pXS44Jd5shFGGtSHY80QCuJF+14McSy0iavZggRZ9Oj//C9vOKQmexvyEJMg==", - "dev": true + "dev": true, + "requires": {} }, "postcss-page-break": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-place": { "version": "7.0.3", @@ -18269,7 +18292,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "dev": true + "dev": true, + "requires": {} }, "postcss-selector-not": { "version": "5.0.0", @@ -19182,17 +19206,6 @@ } } }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -19210,6 +19223,17 @@ } } }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -19940,7 +19964,8 @@ "version": "8.4.2", "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz", "integrity": "sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==", - "dev": true + "dev": true, + "requires": {} }, "y18n": { "version": "5.0.8", diff --git a/src/app/app.module.ts b/src/app/app.module.ts index acaba73..c90348e 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -32,7 +32,7 @@ import { FicheContactComponent } from './components/fiche-contact/fiche-contact. import { PaginationComponent } from './components/pagination/pagination.component'; import { CreneauComponent } from './components/creneau/creneau.component'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { HttpClientModule } from '@angular/common/http'; +import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http'; import { PageAjoutContactComponent } from './pages/page-ajout-contact/page-ajout-contact.component'; import { PageModifierContactComponent } from './pages/page-modifier-contact/page-modifier-contact.component'; import { PageCreationTeamComponent } from './pages/page-creation-team/page-creation-team.component'; @@ -89,7 +89,9 @@ import { EmoticonComponent } from './emoticon/emoticon.component'; FormsModule, AutofocusFixModule.forRoot(), ], - providers: [], + providers: [ + + ], bootstrap: [AppComponent], }) export class AppModule {} diff --git a/src/app/components/card-menu/card-menu.component.html b/src/app/components/card-menu/card-menu.component.html index 884dc88..4b546ec 100644 --- a/src/app/components/card-menu/card-menu.component.html +++ b/src/app/components/card-menu/card-menu.component.html @@ -1 +1,5 @@ -

card-menu works!

+ diff --git a/src/app/components/card-menu/card-menu.component.scss b/src/app/components/card-menu/card-menu.component.scss index e69de29..26b0670 100644 --- a/src/app/components/card-menu/card-menu.component.scss +++ b/src/app/components/card-menu/card-menu.component.scss @@ -0,0 +1,3 @@ +.menu { + margin-left: 500px; +} diff --git a/src/app/components/card-menu/card-menu.component.ts b/src/app/components/card-menu/card-menu.component.ts index bf4eadc..3b9e09a 100644 --- a/src/app/components/card-menu/card-menu.component.ts +++ b/src/app/components/card-menu/card-menu.component.ts @@ -1,4 +1,9 @@ import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { Menu } from 'src/app/models/menu'; +import { MenusService } from 'src/app/services/menus.service'; + + @Component({ selector: 'app-card-menu', @@ -6,10 +11,23 @@ import { Component, OnInit } from '@angular/core'; styleUrls: ['./card-menu.component.scss'] }) export class CardMenuComponent implements OnInit { +public listMenus:any[]; - constructor() { } + constructor( + private menusService: MenusService, + private router: Router, + private route: ActivatedRoute + ) { + this.listMenus=[]; + } ngOnInit(): void { +//affichage des menus d'une team +this.menusService.getMenu()?.subscribe((listMenus: any[])=>{ + console.log(listMenus); + this.listMenus=listMenus; +}); + } } 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 2b17875..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 @@ -1,40 +1,55 @@ + +
+ +
-
+{{todo}} + +
- {{ todo.title }} + {{ tache.texte }}
-
×
+
×
+ + +
-
+ -
- -
diff --git a/src/app/components/to-do-list/to-do-list.component.scss b/src/app/components/to-do-list/to-do-list.component.scss index f0dac87..9ff8f30 100644 --- a/src/app/components/to-do-list/to-do-list.component.scss +++ b/src/app/components/to-do-list/to-do-list.component.scss @@ -1,5 +1,15 @@ +.todo-title { + width: 25%; + padding: 10px 18px; + font-size: xx-large; + margin-bottom: 16px; + &:focus { + outline: 0; + } +} + .todo-input { - width: 100%; + width: 20%; padding: 10px 18px; font-size: 18px; margin-bottom: 16px; @@ -7,6 +17,8 @@ outline: 0; } } + + .element { margin-bottom: 12px; display: flex; @@ -16,6 +28,7 @@ } .deleteTache { + width: 75%; cursor: pointer; margin-left: 14px; &:hover { @@ -40,11 +53,12 @@ margin-left: 12px; width: 100%; padding: 10px; - border: 1px solid #ccc; //override defaults + border: 1px solid rgb(204, 204, 204); //override defaults font-family: 'Avenir', Helvetica, Arial, sans-serif; &:focus { outline: none; + background-color:aquamarine; } } @@ -53,15 +67,6 @@ color: grey; } -.extra-container { - display: flex; - align-items: center; - justify-content: space-between; - font-size: 16px; - border-top: 1px solid lightgrey; - padding-top: 14px; - margin-bottom: 14px; -} button { font-size: 14px; 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 fb23768..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,5 +1,9 @@ -import { Component, OnInit } from '@angular/core'; -import { Todo } from 'src/app/interfaces/todo'; +import { Component, Input, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; +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', @@ -7,54 +11,72 @@ import { Todo } from 'src/app/interfaces/todo'; styleUrls: ['./to-do-list.component.scss'], }) export class ToDoListComponent implements OnInit { + @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() { + 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 { + //this.refreshTodo(); this.beforeEditCache = ''; this.casesRestantes=true; 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 - addTitle(): void { - if (this.todoTitle.trim().length === 0) { + + 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; } @@ -65,55 +87,65 @@ export class ToDoListComponent implements OnInit { editing: false, }); this.todoTitle = ''; - this.idTodo++; + this.idTodo++; */ } + /* if (contact.nom !== '') { + this.repertoireService.addContact(contact).subscribe((resp) => { + this.router.navigate(['repertoire/']); + }); */ + //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 - deleteTodo(id: number): void { - this.todos = this.todos.filter((todo) => todo.id !== id); - } + deleteTodo(id: number) { + this.TodoService.deleteTacheById(id).subscribe( + resp =>{ + window.location.reload(); + } + );} + + //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(); } @@ -123,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/menu.ts b/src/app/models/menu.ts index 990f122..8956d5d 100644 --- a/src/app/models/menu.ts +++ b/src/app/models/menu.ts @@ -6,5 +6,4 @@ export interface Menu { dateMenu: Date; membre: Membre; team: Team; - validationProposition: boolean; } 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/pages/page-dashboard/page-dashboard.component.html b/src/app/pages/page-dashboard/page-dashboard.component.html index 9e86f29..ae435d6 100644 --- a/src/app/pages/page-dashboard/page-dashboard.component.html +++ b/src/app/pages/page-dashboard/page-dashboard.component.html @@ -2,3 +2,8 @@ + +
+ +
diff --git a/src/app/pages/page-dashboard/page-dashboard.component.scss b/src/app/pages/page-dashboard/page-dashboard.component.scss index e69de29..10a274f 100644 --- a/src/app/pages/page-dashboard/page-dashboard.component.scss +++ b/src/app/pages/page-dashboard/page-dashboard.component.scss @@ -0,0 +1,5 @@ +.meteo { + display: flex; + margin-left: 300px; + margin-top: -60px; +} diff --git a/src/app/pages/page-menu-semaine/page-menu-semaine.component.html b/src/app/pages/page-menu-semaine/page-menu-semaine.component.html index 2d3d7d1..6923040 100644 --- a/src/app/pages/page-menu-semaine/page-menu-semaine.component.html +++ b/src/app/pages/page-menu-semaine/page-menu-semaine.component.html @@ -1,2 +1,3 @@ - \ No newline at end of file + + diff --git a/src/app/pages/page-signup/page-signup.component.html b/src/app/pages/page-signup/page-signup.component.html index 1b2145b..6cfe0bf 100644 --- a/src/app/pages/page-signup/page-signup.component.html +++ b/src/app/pages/page-signup/page-signup.component.html @@ -126,10 +126,10 @@ +
diff --git a/src/app/pages/page-to-do-list/page-to-do-list.component.html b/src/app/pages/page-to-do-list/page-to-do-list.component.html index 9eed39a..f58dc34 100644 --- a/src/app/pages/page-to-do-list/page-to-do-list.component.html +++ b/src/app/pages/page-to-do-list/page-to-do-list.component.html @@ -1,5 +1,9 @@ -
- +
+
+
+ +
+
diff --git a/src/app/pages/page-to-do-list/page-to-do-list.component.ts b/src/app/pages/page-to-do-list/page-to-do-list.component.ts index c7240b0..81ebd86 100644 --- a/src/app/pages/page-to-do-list/page-to-do-list.component.ts +++ b/src/app/pages/page-to-do-list/page-to-do-list.component.ts @@ -1,4 +1,7 @@ import { Component, OnInit } from '@angular/core'; +import { TodoService } from 'src/app/services/todo.service'; + + @Component({ selector: 'app-page-to-do-list', @@ -6,10 +9,18 @@ import { Component, OnInit } from '@angular/core'; styleUrls: ['./page-to-do-list.component.scss'] }) export class PageToDoListComponent implements OnInit { + public result : any; - constructor() { } + constructor(private TodoService : TodoService) { } ngOnInit(): void { + this.TodoService.getToDoListByTeamId().subscribe((data :any)=>{ + + this.result = data; + console.log(data); + }); + + } } diff --git a/src/app/services/auth.service.ts b/src/app/services/auth.service.ts index 7075133..cb305fc 100644 --- a/src/app/services/auth.service.ts +++ b/src/app/services/auth.service.ts @@ -41,9 +41,9 @@ export class AuthService { return this.http.post(`${this.apiUrl}/membres/sign-in`, body).pipe( map((x: any) => { - console.log('Service : ', x.accessToken); + console.log('Service : ', x.token); // Modification à faire ici - localStorage.setItem(this.tokenKey, x.accessToken); + localStorage.setItem(this.tokenKey, x.token); return x; // permet de renvoyer la réponse à l'initiateur (page Signin) après le traitement du map }) ); diff --git a/src/app/services/menus.service.spec.ts b/src/app/services/menus.service.spec.ts new file mode 100644 index 0000000..def27f5 --- /dev/null +++ b/src/app/services/menus.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { MenusService } from './menus.service'; + +describe('MenusService', () => { + let service: MenusService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(MenusService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/menus.service.ts b/src/app/services/menus.service.ts new file mode 100644 index 0000000..a762025 --- /dev/null +++ b/src/app/services/menus.service.ts @@ -0,0 +1,51 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { map, Observable } from 'rxjs'; +import { environment } from 'src/environments/environment'; +import { Menu } from '../models/menu'; +import { Router } from '@angular/router'; +import { TokenService } from './token.service'; + +@Injectable({ + providedIn: 'root' +}) +export class MenusService { + +apiUrl: string; + + + constructor(private http: HttpClient, private router: Router, private tokenService: TokenService) { + // On se sert des variables d'environnement de notre application + this.apiUrl = environment.apiUrl; + } + + //on affiche les menus d'une team + getMenu(): Observable | void { + const teamId = this.tokenService.getCurrentTeamId(); + if (teamId){ + return this.http.get(`${this.apiUrl}/menus/team/${teamId}`); + }else { + this.router.navigate(['accueil']); + } + } + + getMenuById(id: any): Observable { + return this.http.get(`${this.apiUrl}/menus/` + id); + } + + addMenu(menu: Menu): Observable { + console.log(menu); + + return this.http.post(`${this.apiUrl}/menus/add`, menu); + } + + deleteMenu(id: any): Observable { + return this.http.delete(`${this.apiUrl}/menus/delete/`+ id); + } + + updateMenu(menu: Menu): Observable { + return this.http.put(`${this.apiUrl}/contacts/update/`, menu); + } +} + + diff --git a/src/app/services/todo-service.service.ts b/src/app/services/todo-service.service.ts deleted file mode 100644 index e0d597a..0000000 --- a/src/app/services/todo-service.service.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { HttpClient } from '@angular/common/http'; -import { Injectable } from '@angular/core'; -import { environment } from 'src/environments/environment'; - -@Injectable({ - providedIn: 'root' -}) -export class TodoServiceService { - private toDoList: any; - private apiUrl: string; - - - constructor(private http: HttpClient) { - this.apiUrl = environment.apiUrl; - } - - //consulter toDoList - getToDoList(){ - this.toDoList = this.http.get(`${this.apiUrl}/todolist/team/{team_id}`); - return this.toDoList; - console.log(this.toDoList) -} - -//ajouter une tache - addTitle(title:string){ - this.toDoList.push({ - title:title, - isChecked: false - }); - } -// cocher et décocher la checkbox - checkOrUnCheckTitle($key: string,flag: boolean){ - this.toDoList.update($key,{isChecked:flag}); - } - -//supprimer la tache -removeTitle($key : string){ - this.toDoList.remove($key); -} - - - -} diff --git a/src/app/services/todo.service.spec.ts b/src/app/services/todo.service.spec.ts new file mode 100644 index 0000000..41eb649 --- /dev/null +++ b/src/app/services/todo.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { TodoService } from './todo.service'; + +describe('TodoService', () => { + let service: TodoService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(TodoService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/todo.service.ts b/src/app/services/todo.service.ts new file mode 100644 index 0000000..f208bdd --- /dev/null +++ b/src/app/services/todo.service.ts @@ -0,0 +1,31 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { environment } from 'src/environments/environment'; +import { Tache } from '../models/tache'; +import { ToDoList } from '../models/to-do-list'; + +@Injectable({ + providedIn: 'root', +}) +export class TodoService { + private toDoList: any; + private apiUrl: string; + + constructor(private http: HttpClient) { + this.apiUrl = environment.apiUrl; + } + + getToDoListByTeamId(): Observable { + return this.http.get(`${this.apiUrl}/todolist/team/1`); + } + + deleteTacheById(idTache: any): Observable { + return this.http.delete(`${this.apiUrl}/taches/delete/${idTache}`,{responseType:'text'}); + } + + addTache(newtache: Tache,idTodoList:number): Observable { + console.log(newtache); + return this.http.post(`${this.apiUrl}/taches/add/${idTodoList}`, newtache); + } +} diff --git a/src/app/services/token.service.spec.ts b/src/app/services/token.service.spec.ts new file mode 100644 index 0000000..7930902 --- /dev/null +++ b/src/app/services/token.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { TokenService } from './token.service'; + +describe('TokenService', () => { + let service: TokenService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(TokenService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/token.service.ts b/src/app/services/token.service.ts new file mode 100644 index 0000000..ef13ff6 --- /dev/null +++ b/src/app/services/token.service.ts @@ -0,0 +1,45 @@ +import { Injectable } from '@angular/core'; +import { environment } from 'src/environments/environment'; +import jwt_decode from 'jwt-decode'; + +@Injectable({ + providedIn: 'root' +}) +export class TokenService { +tokenKey = environment.tokenKey; + + constructor() { } + + public getToken(): string | null { + const token = localStorage.getItem(this.tokenKey); + if(token) { + return token; + } else { + return null; + } + } + + public getCurrentMembreId(): number | null { + const token = this.getToken(); + if(token) { + const decodedToken = jwt_decode(token); + const userId = decodedToken.sub; + return userId; + } else { + return null; + } + } + + public getCurrentTeamId(): number | null { + const token = this.getToken(); + if(token){ + const decodedToken = jwt_decode(token); + const teamId = decodedToken.teamId; + return teamId ; + + }else { +return null; + } + + } +} 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 { +}