From de939b47f1cd88c06e5d482097efe02b2eec3006 Mon Sep 17 00:00:00 2001 From: MiharyR Date: Sat, 13 Nov 2021 13:35:08 +0100 Subject: [PATCH] commencement de la partie admin --- .../page-ad-list-admin.component.html | 112 ++++++++++++ .../page-ad-list-admin.component.scss | 31 ++++ .../page-ad-list-admin.component.spec.ts | 25 +++ .../page-ad-list-admin.component.ts | 91 +++++++++ .../popup-delete-ad-admin.component.html} | 0 .../popup-delete-ad-admin.component.scss} | 0 .../popup-delete-ad-admin.component.spec.ts | 25 +++ .../popup-delete-ad-admin.component.ts} | 14 +- .../popup-visualize-ad-admin.component.html | 79 ++++++++ .../popup-visualize-ad-admin.component.scss} | 0 ...popup-visualize-ad-admin.component.spec.ts | 25 +++ .../popup-visualize-ad-admin.component.ts} | 20 +- ...pup-visualize-images-admin.component.html} | 0 ...pup-visualize-images-admin.component.scss} | 0 ...p-visualize-images-admin.component.spec.ts | 25 +++ ...popup-visualize-images-admin.component.ts} | 16 +- .../page-user-list.component.html | 137 ++++++++++++++ .../page-user-list.component.scss | 67 +++++++ .../page-user-list.component.spec.ts} | 12 +- .../page-user-list.component.ts | 127 +++++++++++++ .../popup-delete-user.component.html | 1 + .../popup-delete-user.component.scss | 0 .../popup-delete-user.component.spec.ts | 25 +++ .../popup-delete-user.component.ts | 15 ++ .../popup-visualize-user.component.html | 1 + .../popup-visualize-user.component.scss | 0 .../popup-visualize-user.component.spec.ts | 25 +++ .../popup-visualize-user.component.ts | 15 ++ .../drag-and-drop.component.html | 0 .../drag-and-drop.component.scss | 0 .../drag-and-drop.component.spec.ts | 0 .../drag-and-drop/drag-and-drop.component.ts | 0 .../input-tags/input-tags.component.html | 0 .../input-tags/input-tags.component.scss | 0 .../input-tags/input-tags.component.spec.ts | 0 .../input-tags/input-tags.component.ts | 0 .../page-ad-list-advertiser.component.html} | 22 +-- .../page-ad-list-advertiser.component.scss} | 1 - ...page-ad-list-advertiser.component.spec.ts} | 10 +- .../page-ad-list-advertiser.component.ts} | 18 +- .../popup-add-or-update-ad.component.html | 0 .../popup-add-or-update-ad.component.scss | 0 .../popup-add-or-update-ad.component.spec.ts | 0 .../popup-add-or-update-ad.component.ts | 4 +- .../popup-delete-ad-advertiser.component.html | 8 + .../popup-delete-ad-advertiser.component.scss | 0 ...up-delete-ad-advertiser.component.spec.ts} | 10 +- .../popup-delete-ad-advertiser.component.ts | 51 ++++++ ...up-visualize-ad-advertiser.component.html} | 2 +- ...pup-visualize-ad-advertiser.component.scss | 28 +++ ...visualize-ad-advertiser.component.spec.ts} | 10 +- ...popup-visualize-ad-advertiser.component.ts | 48 +++++ ...visualize-images-advertiser.component.html | 13 ++ ...visualize-images-advertiser.component.scss | 14 ++ ...alize-images-advertiser.component.spec.ts} | 10 +- ...p-visualize-images-advertiser.component.ts | 35 ++++ src/app/app-routing.module.ts | 15 +- src/app/app.module.ts | 40 ++-- .../page-my-profil.component.html | 73 -------- .../page-my-profil.component.scss | 67 ------- .../page-my-profil.component.ts | 164 ----------------- .../popup-picture-profil-url.component.html | 9 - .../popup-picture-profil-url.component.scss | 20 -- ...popup-picture-profil-url.component.spec.ts | 25 --- .../popup-picture-profil-url.component.ts | 28 --- src/app/utils/interfaces/advert.ts | 2 +- .../fictitious-datas.service.ts | 172 +++++++++++------- 67 files changed, 1233 insertions(+), 554 deletions(-) create mode 100644 src/app/admin/adList/page-ad-list-admin/page-ad-list-admin.component.html create mode 100644 src/app/admin/adList/page-ad-list-admin/page-ad-list-admin.component.scss create mode 100644 src/app/admin/adList/page-ad-list-admin/page-ad-list-admin.component.spec.ts create mode 100644 src/app/admin/adList/page-ad-list-admin/page-ad-list-admin.component.ts rename src/app/{advertiser/manageAds/popup-delete-ad/popup-delete-ad.component.html => admin/adList/popup-delete-ad-admin/popup-delete-ad-admin.component.html} (100%) rename src/app/{advertiser/manageAds/popup-delete-ad/popup-delete-ad.component.scss => admin/adList/popup-delete-ad-admin/popup-delete-ad-admin.component.scss} (100%) create mode 100644 src/app/admin/adList/popup-delete-ad-admin/popup-delete-ad-admin.component.spec.ts rename src/app/{advertiser/manageAds/popup-delete-ad/popup-delete-ad.component.ts => admin/adList/popup-delete-ad-admin/popup-delete-ad-admin.component.ts} (77%) create mode 100644 src/app/admin/adList/popup-visualize-ad-admin/popup-visualize-ad-admin.component.html rename src/app/{advertiser/manageAds/popup-visualize-ad/popup-visualize-ad.component.scss => admin/adList/popup-visualize-ad-admin/popup-visualize-ad-admin.component.scss} (100%) create mode 100644 src/app/admin/adList/popup-visualize-ad-admin/popup-visualize-ad-admin.component.spec.ts rename src/app/{advertiser/manageAds/popup-visualize-ad/popup-visualize-ad.component.ts => admin/adList/popup-visualize-ad-admin/popup-visualize-ad-admin.component.ts} (68%) rename src/app/{advertiser/manageAds/popup-visualize-images/popup-visualize-images.component.html => admin/adList/popup-visualize-images-admin/popup-visualize-images-admin.component.html} (100%) rename src/app/{advertiser/manageAds/popup-visualize-images/popup-visualize-images.component.scss => admin/adList/popup-visualize-images-admin/popup-visualize-images-admin.component.scss} (100%) create mode 100644 src/app/admin/adList/popup-visualize-images-admin/popup-visualize-images-admin.component.spec.ts rename src/app/{advertiser/manageAds/popup-visualize-images/popup-visualize-images.component.ts => admin/adList/popup-visualize-images-admin/popup-visualize-images-admin.component.ts} (59%) create mode 100644 src/app/admin/userList/page-user-list/page-user-list.component.html create mode 100644 src/app/admin/userList/page-user-list/page-user-list.component.scss rename src/app/{utils/components/myProfil/page-my-profil/page-my-profil.component.spec.ts => admin/userList/page-user-list/page-user-list.component.spec.ts} (53%) create mode 100644 src/app/admin/userList/page-user-list/page-user-list.component.ts create mode 100644 src/app/admin/userList/popup-delete-user/popup-delete-user.component.html create mode 100644 src/app/admin/userList/popup-delete-user/popup-delete-user.component.scss create mode 100644 src/app/admin/userList/popup-delete-user/popup-delete-user.component.spec.ts create mode 100644 src/app/admin/userList/popup-delete-user/popup-delete-user.component.ts create mode 100644 src/app/admin/userList/popup-visualize-user/popup-visualize-user.component.html create mode 100644 src/app/admin/userList/popup-visualize-user/popup-visualize-user.component.scss create mode 100644 src/app/admin/userList/popup-visualize-user/popup-visualize-user.component.spec.ts create mode 100644 src/app/admin/userList/popup-visualize-user/popup-visualize-user.component.ts rename src/app/advertiser/{manageAds => adList}/drag-and-drop/drag-and-drop.component.html (100%) rename src/app/advertiser/{manageAds => adList}/drag-and-drop/drag-and-drop.component.scss (100%) rename src/app/advertiser/{manageAds => adList}/drag-and-drop/drag-and-drop.component.spec.ts (100%) rename src/app/advertiser/{manageAds => adList}/drag-and-drop/drag-and-drop.component.ts (100%) rename src/app/advertiser/{manageAds => adList}/input-tags/input-tags.component.html (100%) rename src/app/advertiser/{manageAds => adList}/input-tags/input-tags.component.scss (100%) rename src/app/advertiser/{manageAds => adList}/input-tags/input-tags.component.spec.ts (100%) rename src/app/advertiser/{manageAds => adList}/input-tags/input-tags.component.ts (100%) rename src/app/advertiser/{manageAds/page-advertiser/page-advertiser.component.html => adList/page-ad-list-advertiser/page-ad-list-advertiser.component.html} (84%) rename src/app/advertiser/{manageAds/page-advertiser/page-advertiser.component.scss => adList/page-ad-list-advertiser/page-ad-list-advertiser.component.scss} (97%) rename src/app/advertiser/{manageAds/page-advertiser/page-advertiser.component.spec.ts => adList/page-ad-list-advertiser/page-ad-list-advertiser.component.spec.ts} (55%) rename src/app/advertiser/{manageAds/page-advertiser/page-advertiser.component.ts => adList/page-ad-list-advertiser/page-ad-list-advertiser.component.ts} (87%) rename src/app/advertiser/{manageAds => adList}/popup-add-or-update-ad/popup-add-or-update-ad.component.html (100%) rename src/app/advertiser/{manageAds => adList}/popup-add-or-update-ad/popup-add-or-update-ad.component.scss (100%) rename src/app/advertiser/{manageAds => adList}/popup-add-or-update-ad/popup-add-or-update-ad.component.spec.ts (100%) rename src/app/advertiser/{manageAds => adList}/popup-add-or-update-ad/popup-add-or-update-ad.component.ts (98%) create mode 100644 src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.html create mode 100644 src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.scss rename src/app/advertiser/{manageAds/popup-delete-ad/popup-delete-ad.component.spec.ts => adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.spec.ts} (54%) create mode 100644 src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.ts rename src/app/advertiser/{manageAds/popup-visualize-ad/popup-visualize-ad.component.html => adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.html} (97%) create mode 100644 src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.scss rename src/app/advertiser/{manageAds/popup-visualize-ad/popup-visualize-ad.component.spec.ts => adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.spec.ts} (52%) create mode 100644 src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.ts create mode 100644 src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.html create mode 100644 src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.scss rename src/app/advertiser/{manageAds/popup-visualize-images/popup-visualize-images.component.spec.ts => adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.spec.ts} (51%) create mode 100644 src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.ts delete mode 100644 src/app/utils/components/myProfil/page-my-profil/page-my-profil.component.html delete mode 100644 src/app/utils/components/myProfil/page-my-profil/page-my-profil.component.scss delete mode 100644 src/app/utils/components/myProfil/page-my-profil/page-my-profil.component.ts delete mode 100644 src/app/utils/components/myProfil/popup-picture-profil-url/popup-picture-profil-url.component.html delete mode 100644 src/app/utils/components/myProfil/popup-picture-profil-url/popup-picture-profil-url.component.scss delete mode 100644 src/app/utils/components/myProfil/popup-picture-profil-url/popup-picture-profil-url.component.spec.ts delete mode 100644 src/app/utils/components/myProfil/popup-picture-profil-url/popup-picture-profil-url.component.ts diff --git a/src/app/admin/adList/page-ad-list-admin/page-ad-list-admin.component.html b/src/app/admin/adList/page-ad-list-admin/page-ad-list-admin.component.html new file mode 100644 index 0000000..ac349b5 --- /dev/null +++ b/src/app/admin/adList/page-ad-list-admin/page-ad-list-admin.component.html @@ -0,0 +1,112 @@ +
+
+ + +

+ + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Titre + {{advert.title}} + Annonceur + {{advert.advertiser}} + Tags + + {{tag}}, + {{tag}} + + Date de création + {{ advert.createdAt | date:'dd/LL/YYYY à HH:mm:ss' }} + Dernière modification + {{ advert.updatedAt | date:'dd/LL/YYYY à HH:mm:ss' }} + Vues + {{advert.views}} + Visible + check + + Supprimer + + Visualisation + +
Aucune vidéo ne correspond au filtre: "{{input.value}}"
+
+ +
+

+ +
+
diff --git a/src/app/admin/adList/page-ad-list-admin/page-ad-list-admin.component.scss b/src/app/admin/adList/page-ad-list-admin/page-ad-list-admin.component.scss new file mode 100644 index 0000000..a832a58 --- /dev/null +++ b/src/app/admin/adList/page-ad-list-admin/page-ad-list-admin.component.scss @@ -0,0 +1,31 @@ +.myContainer { + max-width: 100vw; + height: 100vh; + overflow-x: hidden; + font-size: small; +} + + +// ---------------------------------------------------------- + + +table { + margin: 0 auto; + width: 94%; + font-size: small; +} +.darkTheme table { border: solid 2px white; } + +th.mat-sort-header-sorted { + color: black; +} + +td { + font-size: small; +} + +input { + width: 30%; + font-size: large; + border-radius: 5px; +} diff --git a/src/app/admin/adList/page-ad-list-admin/page-ad-list-admin.component.spec.ts b/src/app/admin/adList/page-ad-list-admin/page-ad-list-admin.component.spec.ts new file mode 100644 index 0000000..5b77dff --- /dev/null +++ b/src/app/admin/adList/page-ad-list-admin/page-ad-list-admin.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PageAdListAdminComponent } from './page-ad-list-admin.component'; + +describe('PageAdListAdminComponent', () => { + let component: PageAdListAdminComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ PageAdListAdminComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(PageAdListAdminComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/admin/adList/page-ad-list-admin/page-ad-list-admin.component.ts b/src/app/admin/adList/page-ad-list-admin/page-ad-list-admin.component.ts new file mode 100644 index 0000000..775d3f7 --- /dev/null +++ b/src/app/admin/adList/page-ad-list-admin/page-ad-list-admin.component.ts @@ -0,0 +1,91 @@ +import {AfterViewInit, Component, ViewChild} from '@angular/core'; +import {MatSort} from "@angular/material/sort"; +import {MatPaginator} from "@angular/material/paginator"; +import {ThemeService} from "../../../utils/services/theme/theme.service"; +import {FictitiousDatasService} from "../../../utils/services/fictitiousDatas/fictitious-datas.service"; +import {MatDialog} from "@angular/material/dialog"; +import {MatSnackBar} from "@angular/material/snack-bar"; +import {MatTableDataSource} from "@angular/material/table"; +import {Advert} from "../../../utils/interfaces/advert"; +import {PopupVisualizeAdAdminComponent} from "../popup-visualize-ad-admin/popup-visualize-ad-admin.component"; +import {PopupDeleteAdAdminComponent} from "../popup-delete-ad-admin/popup-delete-ad-admin.component"; + + + +@Component({ + selector: 'app-page-ad-list-admin', + templateUrl: './page-ad-list-admin.component.html', + styleUrls: ['./page-ad-list-admin.component.scss'] +}) +export class PageAdListAdminComponent implements AfterViewInit +{ + displayedColumns: string[] = [ 'title', 'advertiser', 'tags', 'createdAt', 'updatedAt', 'views', 'isVisible', 'delete', 'visualisation' ]; + dataSource ; + @ViewChild(MatSort) sort: MatSort; + @ViewChild(MatPaginator) paginator: MatPaginator; + + + constructor( public themeService: ThemeService, + private fictitiousDatasService: FictitiousDatasService, + public dialog: MatDialog, + private snackBar: MatSnackBar ) { } + + + ngAfterViewInit(): void + { + // --- FAUX CODE --- + const tabAdvert = this.fictitiousDatasService.getTabAdvert(8); + this.dataSource = new MatTableDataSource(tabAdvert); + this.dataSource.sort = this.sort; + this.dataSource.paginator = this.paginator; + this.dataSource = this.dataSource; + } + + + applyFilter(event: Event): void + { + const filterValue = (event.target as HTMLInputElement).value; + this.dataSource.filter = filterValue.trim().toLowerCase(); + } + + + onVisualize(advert: Advert): void + { + const config = { + width: '50%', + data: { advert: advert } + }; + this.dialog + .open(PopupVisualizeAdAdminComponent, config) + .afterClosed() + .subscribe(retour => {}); + } + + + onDelete(advert: Advert): void + { + const config = { + data: { advert: advert } + }; + this.dialog + .open(PopupDeleteAdAdminComponent, config) + .afterClosed() + .subscribe( retour => { + + const config = { duration: 1000, panelClass: "custom-class" }; + let message = "" ; + if((retour === undefined) || (retour === null)) { + message = "Opération annulée" ; + } + else { + const index = this.dataSource.data.findIndex( elt => (elt._id === advert._id)); + this.dataSource.data.splice(index, 1); + this.dataSource.data = this.dataSource.data; + this.dataSource = this.dataSource; + message = "L'annonce a bien été supprimée ✔" ; + } + this.snackBar.open( message, "", config); + }); + } + +} diff --git a/src/app/advertiser/manageAds/popup-delete-ad/popup-delete-ad.component.html b/src/app/admin/adList/popup-delete-ad-admin/popup-delete-ad-admin.component.html similarity index 100% rename from src/app/advertiser/manageAds/popup-delete-ad/popup-delete-ad.component.html rename to src/app/admin/adList/popup-delete-ad-admin/popup-delete-ad-admin.component.html diff --git a/src/app/advertiser/manageAds/popup-delete-ad/popup-delete-ad.component.scss b/src/app/admin/adList/popup-delete-ad-admin/popup-delete-ad-admin.component.scss similarity index 100% rename from src/app/advertiser/manageAds/popup-delete-ad/popup-delete-ad.component.scss rename to src/app/admin/adList/popup-delete-ad-admin/popup-delete-ad-admin.component.scss diff --git a/src/app/admin/adList/popup-delete-ad-admin/popup-delete-ad-admin.component.spec.ts b/src/app/admin/adList/popup-delete-ad-admin/popup-delete-ad-admin.component.spec.ts new file mode 100644 index 0000000..811eee8 --- /dev/null +++ b/src/app/admin/adList/popup-delete-ad-admin/popup-delete-ad-admin.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PopupDeleteAdAdminComponent } from './popup-delete-ad-admin.component'; + +describe('PopupDeleteAdAdminComponent', () => { + let component: PopupDeleteAdAdminComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ PopupDeleteAdAdminComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(PopupDeleteAdAdminComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/advertiser/manageAds/popup-delete-ad/popup-delete-ad.component.ts b/src/app/admin/adList/popup-delete-ad-admin/popup-delete-ad-admin.component.ts similarity index 77% rename from src/app/advertiser/manageAds/popup-delete-ad/popup-delete-ad.component.ts rename to src/app/admin/adList/popup-delete-ad-admin/popup-delete-ad-admin.component.ts index 2c5acc4..474f60b 100644 --- a/src/app/advertiser/manageAds/popup-delete-ad/popup-delete-ad.component.ts +++ b/src/app/admin/adList/popup-delete-ad-admin/popup-delete-ad-admin.component.ts @@ -1,21 +1,19 @@ import {Component, Inject, OnInit} from '@angular/core'; +import {Advert} from "../../../utils/interfaces/advert"; import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog"; import {MessageService} from "../../../utils/services/message/message.service"; -import {Advert} from "../../../utils/interfaces/advert"; - - @Component({ - selector: 'app-popup-delete-ad', - templateUrl: './popup-delete-ad.component.html', - styleUrls: ['./popup-delete-ad.component.scss'] + selector: 'app-popup-delete-ad-admin', + templateUrl: './popup-delete-ad-admin.component.html', + styleUrls: ['./popup-delete-ad-admin.component.scss'] }) -export class PopupDeleteAdComponent implements OnInit +export class PopupDeleteAdAdminComponent implements OnInit { advert: Advert; - constructor( public dialogRef: MatDialogRef, + constructor( public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data, private messageService: MessageService) { } diff --git a/src/app/admin/adList/popup-visualize-ad-admin/popup-visualize-ad-admin.component.html b/src/app/admin/adList/popup-visualize-ad-admin/popup-visualize-ad-admin.component.html new file mode 100644 index 0000000..9339438 --- /dev/null +++ b/src/app/admin/adList/popup-visualize-ad-admin/popup-visualize-ad-admin.component.html @@ -0,0 +1,79 @@ +
+ +

{{advert.title}}

+ + + + + + + +
+
Annonceur:
+
{{advert.advertiser}}
+
+ + +
+
Images:
+
+ +
+
+ + +
+
Tags:
+
+
• {{tag}}
+
+
+ + +
+
Commentaire:
+
{{advert.comment}}
+
+ + +
+ +
{{advert.views}}
+
+ + +
+ +
+ {{ advert.createdAt | date:'dd/LL/YYYY à HH:mm:ss' }} +
+
+ + +
+ +
+ {{ advert.updatedAt | date:'dd/LL/YYYY à HH:mm:ss' }} +
+
+ + +
+ +
+ checked + close +
+
+ +
+ + + + + + + +
diff --git a/src/app/advertiser/manageAds/popup-visualize-ad/popup-visualize-ad.component.scss b/src/app/admin/adList/popup-visualize-ad-admin/popup-visualize-ad-admin.component.scss similarity index 100% rename from src/app/advertiser/manageAds/popup-visualize-ad/popup-visualize-ad.component.scss rename to src/app/admin/adList/popup-visualize-ad-admin/popup-visualize-ad-admin.component.scss diff --git a/src/app/admin/adList/popup-visualize-ad-admin/popup-visualize-ad-admin.component.spec.ts b/src/app/admin/adList/popup-visualize-ad-admin/popup-visualize-ad-admin.component.spec.ts new file mode 100644 index 0000000..6e58614 --- /dev/null +++ b/src/app/admin/adList/popup-visualize-ad-admin/popup-visualize-ad-admin.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PopupVisualizeAdAdminComponent } from './popup-visualize-ad-admin.component'; + +describe('PopupVisualizeAdAdminComponent', () => { + let component: PopupVisualizeAdAdminComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ PopupVisualizeAdAdminComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(PopupVisualizeAdAdminComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/advertiser/manageAds/popup-visualize-ad/popup-visualize-ad.component.ts b/src/app/admin/adList/popup-visualize-ad-admin/popup-visualize-ad-admin.component.ts similarity index 68% rename from src/app/advertiser/manageAds/popup-visualize-ad/popup-visualize-ad.component.ts rename to src/app/admin/adList/popup-visualize-ad-admin/popup-visualize-ad-admin.component.ts index 28cce22..a06900a 100644 --- a/src/app/advertiser/manageAds/popup-visualize-ad/popup-visualize-ad.component.ts +++ b/src/app/admin/adList/popup-visualize-ad-admin/popup-visualize-ad-admin.component.ts @@ -1,20 +1,22 @@ import {Component, Inject, OnInit} from '@angular/core'; -import {ThemeService} from "../../../utils/services/theme/theme.service"; -import {MAT_DIALOG_DATA, MatDialog, MatDialogRef} from "@angular/material/dialog"; import {Advert} from "../../../utils/interfaces/advert"; -import {PopupVisualizeImagesComponent} from "../popup-visualize-images/popup-visualize-images.component"; +import {MAT_DIALOG_DATA, MatDialog, MatDialogRef} from "@angular/material/dialog"; +import {ThemeService} from "../../../utils/services/theme/theme.service"; +import {PopupVisualizeImagesAdminComponent} from "../popup-visualize-images-admin/popup-visualize-images-admin.component"; + + @Component({ - selector: 'app-popup-visualize-ad', - templateUrl: './popup-visualize-ad.component.html', - styleUrls: ['./popup-visualize-ad.component.scss'] + selector: 'app-popup-visualize-ad-admin', + templateUrl: './popup-visualize-ad-admin.component.html', + styleUrls: ['./popup-visualize-ad-admin.component.scss'] }) -export class PopupVisualizeAdComponent implements OnInit +export class PopupVisualizeAdAdminComponent implements OnInit { advert: Advert; - constructor( public dialogRef: MatDialogRef, + constructor( public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data, public themeService: ThemeService, public dialog: MatDialog ) { } @@ -38,7 +40,7 @@ export class PopupVisualizeAdComponent implements OnInit } }; this.dialog - .open(PopupVisualizeImagesComponent, config) + .open(PopupVisualizeImagesAdminComponent, config) .afterClosed() .subscribe(retour => {}); } diff --git a/src/app/advertiser/manageAds/popup-visualize-images/popup-visualize-images.component.html b/src/app/admin/adList/popup-visualize-images-admin/popup-visualize-images-admin.component.html similarity index 100% rename from src/app/advertiser/manageAds/popup-visualize-images/popup-visualize-images.component.html rename to src/app/admin/adList/popup-visualize-images-admin/popup-visualize-images-admin.component.html diff --git a/src/app/advertiser/manageAds/popup-visualize-images/popup-visualize-images.component.scss b/src/app/admin/adList/popup-visualize-images-admin/popup-visualize-images-admin.component.scss similarity index 100% rename from src/app/advertiser/manageAds/popup-visualize-images/popup-visualize-images.component.scss rename to src/app/admin/adList/popup-visualize-images-admin/popup-visualize-images-admin.component.scss diff --git a/src/app/admin/adList/popup-visualize-images-admin/popup-visualize-images-admin.component.spec.ts b/src/app/admin/adList/popup-visualize-images-admin/popup-visualize-images-admin.component.spec.ts new file mode 100644 index 0000000..24f276f --- /dev/null +++ b/src/app/admin/adList/popup-visualize-images-admin/popup-visualize-images-admin.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PopupVisualizeImagesAdminComponent } from './popup-visualize-images-admin.component'; + +describe('PopupVisualizeImagesAdminComponent', () => { + let component: PopupVisualizeImagesAdminComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ PopupVisualizeImagesAdminComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(PopupVisualizeImagesAdminComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/advertiser/manageAds/popup-visualize-images/popup-visualize-images.component.ts b/src/app/admin/adList/popup-visualize-images-admin/popup-visualize-images-admin.component.ts similarity index 59% rename from src/app/advertiser/manageAds/popup-visualize-images/popup-visualize-images.component.ts rename to src/app/admin/adList/popup-visualize-images-admin/popup-visualize-images-admin.component.ts index e746c57..ab100a5 100644 --- a/src/app/advertiser/manageAds/popup-visualize-images/popup-visualize-images.component.ts +++ b/src/app/admin/adList/popup-visualize-images-admin/popup-visualize-images-admin.component.ts @@ -1,20 +1,21 @@ import {Component, Inject, OnInit} from '@angular/core'; -import {MAT_DIALOG_DATA, MatDialog, MatDialogRef} from "@angular/material/dialog"; -import {ThemeService} from "../../../utils/services/theme/theme.service"; +import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog"; + + @Component({ - selector: 'app-popup-visualize-images', - templateUrl: './popup-visualize-images.component.html', - styleUrls: ['./popup-visualize-images.component.scss'] + selector: 'app-popup-visualize-images-admin', + templateUrl: './popup-visualize-images-admin.component.html', + styleUrls: ['./popup-visualize-images-admin.component.scss'] }) -export class PopupVisualizeImagesComponent implements OnInit +export class PopupVisualizeImagesAdminComponent implements OnInit { tabImages = []; width: number = 0; height: number = 0; - constructor( public dialogRef: MatDialogRef, + constructor( public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data ) { } @@ -31,5 +32,4 @@ export class PopupVisualizeImagesComponent implements OnInit console.log(this.tabImages); } - } diff --git a/src/app/admin/userList/page-user-list/page-user-list.component.html b/src/app/admin/userList/page-user-list/page-user-list.component.html new file mode 100644 index 0000000..7144539 --- /dev/null +++ b/src/app/admin/userList/page-user-list/page-user-list.component.html @@ -0,0 +1,137 @@ +
+
+ + + +

+ + + +
+ +
+ + +
+ + +
+ + + Utilisateur +
+ + Annonceur +
+ + Admin + +
+
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Login + {{user.login}} + Mail + {{user.mail}} + Date de naissance + {{ user.dateOfBirth | date:'dd/LL/YYYY à HH:mm:ss' }} + Centre d'intérêts + + {{interest}}, + {{interest}} + + Date de création + {{ user.createdAt | date:'dd/LL/YYYY à HH:mm:ss' }} + Dernière modification + {{ user.updatedAt | date:'dd/LL/YYYY à HH:mm:ss' }} + Activé + check + + Supprimer + + Visualisation + +
Aucune vidéo ne correspond au filtre: "{{input.value}}"
+
+ +
+

+ +
+
diff --git a/src/app/admin/userList/page-user-list/page-user-list.component.scss b/src/app/admin/userList/page-user-list/page-user-list.component.scss new file mode 100644 index 0000000..8bb87ab --- /dev/null +++ b/src/app/admin/userList/page-user-list/page-user-list.component.scss @@ -0,0 +1,67 @@ +.myContainer { + max-width: 100vw; + height: 100vh; + overflow-x: hidden; + font-size: small; +} + +// ---------------------------------------------------------- + +.matRadioGroupContainer { + float:left; + background-color: white; + width: 15%; + margin-left: 3%; + padding: 10px 10px 10px 10px; + border-bottom: 1px solid #dcdcdc; +} + +.btnAjouterContainer { + float:left; + margin-left: 67%; + padding-top: 20px; +} + +.btnAjouter { + background-color: white; + border: solid 1px black; +} + +// ---------------------------------------------------------- + +input { + width: 30%; + font-size: large; + border-radius: 5px; +} + +// ---------------------------------------------------------- + +table { + margin: 0 auto; + width: 94%; + font-size: small; +} +.darkTheme table { border: solid 2px white; } + +th.mat-sort-header-sorted { + color: black; +} + +td { + font-size: small; +} + +// ------------------------------------------------------------------------- + +::ng-deep .mat-radio-inner-circle { + color: black !important; + background-color: black !important; +} + +::ng-deep .mat-radio-outer-circle{ + color: black !important; + border: solid 1px gray !important; +} + + diff --git a/src/app/utils/components/myProfil/page-my-profil/page-my-profil.component.spec.ts b/src/app/admin/userList/page-user-list/page-user-list.component.spec.ts similarity index 53% rename from src/app/utils/components/myProfil/page-my-profil/page-my-profil.component.spec.ts rename to src/app/admin/userList/page-user-list/page-user-list.component.spec.ts index 3fda6d5..edbbffe 100644 --- a/src/app/utils/components/myProfil/page-my-profil/page-my-profil.component.spec.ts +++ b/src/app/admin/userList/page-user-list/page-user-list.component.spec.ts @@ -1,20 +1,20 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { PageMyProfilComponent } from './page-my-profil.component'; +import { PageUserListComponent } from './page-user-list.component'; -describe('PageMyProfilComponent', () => { - let component: PageMyProfilComponent; - let fixture: ComponentFixture; +describe('PageUserListComponent', () => { + let component: PageUserListComponent; + let fixture: ComponentFixture; beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ PageMyProfilComponent ] + declarations: [ PageUserListComponent ] }) .compileComponents(); }); beforeEach(() => { - fixture = TestBed.createComponent(PageMyProfilComponent); + fixture = TestBed.createComponent(PageUserListComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/src/app/admin/userList/page-user-list/page-user-list.component.ts b/src/app/admin/userList/page-user-list/page-user-list.component.ts new file mode 100644 index 0000000..5713c6e --- /dev/null +++ b/src/app/admin/userList/page-user-list/page-user-list.component.ts @@ -0,0 +1,127 @@ +import {AfterViewInit, Component, ViewChild} from '@angular/core'; +import {MatSort} from "@angular/material/sort"; +import {MatPaginator} from "@angular/material/paginator"; +import {ThemeService} from "../../../utils/services/theme/theme.service"; +import {FictitiousDatasService} from "../../../utils/services/fictitiousDatas/fictitious-datas.service"; +import {MatDialog} from "@angular/material/dialog"; +import {MatSnackBar} from "@angular/material/snack-bar"; +import {MatTableDataSource} from "@angular/material/table"; +import {User} from "../../../utils/interfaces/user"; +import {PopupVisualizeUserComponent} from "../popup-visualize-user/popup-visualize-user.component"; +import {PopupDeleteUserComponent} from "../popup-delete-user/popup-delete-user.component"; + + + +@Component({ + selector: 'app-page-user-list', + templateUrl: './page-user-list.component.html', + styleUrls: ['./page-user-list.component.scss'] +}) +export class PageUserListComponent implements AfterViewInit +{ + displayedColumns: string[]; + displayedColumnsUser: string[] = [ 'login', 'mail', 'dateOfBirth', 'interests', 'createdAt', 'updatedAt', 'delete', 'visualisation' ]; + displayedColumnsAdvertiser: string[] = [ 'login', 'mail', 'createdAt', 'updatedAt', 'isAccepted', 'delete', 'visualisation' ]; + displayedColumnsAdmin: string[] = [ 'login', 'mail', 'createdAt', 'updatedAt', 'delete', 'visualisation' ]; + + tabUser: User[] = []; + tabAdvertiser: User[] = []; + tabAdmin: User[] = []; + + roleName: string = "user" ; + dataSource ; + @ViewChild(MatSort) sort: MatSort; + @ViewChild(MatPaginator) paginator: MatPaginator; + + + constructor( public themeService: ThemeService, + private fictitiousDatasService: FictitiousDatasService, + public dialog: MatDialog, + private snackBar: MatSnackBar ) { } + + + ngAfterViewInit(): void + { + // --- FAUX CODE --- + this.tabUser = this.fictitiousDatasService.getTabUser(32); + this.tabAdvertiser = this.fictitiousDatasService.getTabAdvertiser(8); + this.tabAdmin = this.fictitiousDatasService.getTabAdmin(4); + + this.displayedColumns = this.displayedColumnsUser; + + this.dataSource = new MatTableDataSource(this.tabUser); + this.dataSource.sort = this.sort; + this.dataSource.paginator = this.paginator; + this.dataSource = this.dataSource; + } + + + onChangeRoleSelected(roleName: string): void + { + if(roleName === "user") { + this.displayedColumns = this.displayedColumnsUser; + this.dataSource.data = this.tabUser; + } + else if(roleName === "advertiser") { + this.displayedColumns = this.displayedColumnsAdvertiser; + this.dataSource.data = this.tabAdvertiser; + } + else if(roleName === "admin") { + this.displayedColumns = this.displayedColumnsAdmin; + this.dataSource.data = this.tabAdmin; + } + this.dataSource = this.dataSource; + } + + + applyFilter(event: Event): void + { + const filterValue = (event.target as HTMLInputElement).value; + this.dataSource.filter = filterValue.trim().toLowerCase(); + } + + + onVisualize(user: User): void + { + const config = { + width: '50%', + data: { user: user } + }; + this.dialog + .open(PopupVisualizeUserComponent, config) + .afterClosed() + .subscribe(retour => {}); + } + + + onDelete(user: User): void + { + const config = { + data: { user: user } + }; + this.dialog + .open(PopupDeleteUserComponent, config) + .afterClosed() + .subscribe( retour => { + + const config = { duration: 1000, panelClass: "custom-class" }; + let message = "" ; + if((retour === undefined) || (retour === null)) { + message = "Opération annulée" ; + } + else { + const index = this.dataSource.data.findIndex( elt => (elt._id === user._id)); + this.dataSource.data.splice(index, 1); + this.dataSource.data = this.dataSource.data; + this.dataSource = this.dataSource; + message = "L'annonce a bien été supprimée ✔" ; + } + this.snackBar.open( message, "", config); + }); + } + + onAddAdmin(): void + { + + } +} diff --git a/src/app/admin/userList/popup-delete-user/popup-delete-user.component.html b/src/app/admin/userList/popup-delete-user/popup-delete-user.component.html new file mode 100644 index 0000000..8d801d0 --- /dev/null +++ b/src/app/admin/userList/popup-delete-user/popup-delete-user.component.html @@ -0,0 +1 @@ +

popup-delete-user works!

diff --git a/src/app/admin/userList/popup-delete-user/popup-delete-user.component.scss b/src/app/admin/userList/popup-delete-user/popup-delete-user.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/admin/userList/popup-delete-user/popup-delete-user.component.spec.ts b/src/app/admin/userList/popup-delete-user/popup-delete-user.component.spec.ts new file mode 100644 index 0000000..273cdc6 --- /dev/null +++ b/src/app/admin/userList/popup-delete-user/popup-delete-user.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PopupDeleteUserComponent } from './popup-delete-user.component'; + +describe('PopupDeleteUserComponent', () => { + let component: PopupDeleteUserComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ PopupDeleteUserComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(PopupDeleteUserComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/admin/userList/popup-delete-user/popup-delete-user.component.ts b/src/app/admin/userList/popup-delete-user/popup-delete-user.component.ts new file mode 100644 index 0000000..0c26176 --- /dev/null +++ b/src/app/admin/userList/popup-delete-user/popup-delete-user.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-popup-delete-user', + templateUrl: './popup-delete-user.component.html', + styleUrls: ['./popup-delete-user.component.scss'] +}) +export class PopupDeleteUserComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/app/admin/userList/popup-visualize-user/popup-visualize-user.component.html b/src/app/admin/userList/popup-visualize-user/popup-visualize-user.component.html new file mode 100644 index 0000000..570cf0f --- /dev/null +++ b/src/app/admin/userList/popup-visualize-user/popup-visualize-user.component.html @@ -0,0 +1 @@ +

popup-visualize-user works!

diff --git a/src/app/admin/userList/popup-visualize-user/popup-visualize-user.component.scss b/src/app/admin/userList/popup-visualize-user/popup-visualize-user.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/admin/userList/popup-visualize-user/popup-visualize-user.component.spec.ts b/src/app/admin/userList/popup-visualize-user/popup-visualize-user.component.spec.ts new file mode 100644 index 0000000..2e99b66 --- /dev/null +++ b/src/app/admin/userList/popup-visualize-user/popup-visualize-user.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PopupVisualizeUserComponent } from './popup-visualize-user.component'; + +describe('PopupVisualizeUserComponent', () => { + let component: PopupVisualizeUserComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ PopupVisualizeUserComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(PopupVisualizeUserComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/admin/userList/popup-visualize-user/popup-visualize-user.component.ts b/src/app/admin/userList/popup-visualize-user/popup-visualize-user.component.ts new file mode 100644 index 0000000..53008e1 --- /dev/null +++ b/src/app/admin/userList/popup-visualize-user/popup-visualize-user.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-popup-visualize-user', + templateUrl: './popup-visualize-user.component.html', + styleUrls: ['./popup-visualize-user.component.scss'] +}) +export class PopupVisualizeUserComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/app/advertiser/manageAds/drag-and-drop/drag-and-drop.component.html b/src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.html similarity index 100% rename from src/app/advertiser/manageAds/drag-and-drop/drag-and-drop.component.html rename to src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.html diff --git a/src/app/advertiser/manageAds/drag-and-drop/drag-and-drop.component.scss b/src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.scss similarity index 100% rename from src/app/advertiser/manageAds/drag-and-drop/drag-and-drop.component.scss rename to src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.scss diff --git a/src/app/advertiser/manageAds/drag-and-drop/drag-and-drop.component.spec.ts b/src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.spec.ts similarity index 100% rename from src/app/advertiser/manageAds/drag-and-drop/drag-and-drop.component.spec.ts rename to src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.spec.ts diff --git a/src/app/advertiser/manageAds/drag-and-drop/drag-and-drop.component.ts b/src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.ts similarity index 100% rename from src/app/advertiser/manageAds/drag-and-drop/drag-and-drop.component.ts rename to src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.ts diff --git a/src/app/advertiser/manageAds/input-tags/input-tags.component.html b/src/app/advertiser/adList/input-tags/input-tags.component.html similarity index 100% rename from src/app/advertiser/manageAds/input-tags/input-tags.component.html rename to src/app/advertiser/adList/input-tags/input-tags.component.html diff --git a/src/app/advertiser/manageAds/input-tags/input-tags.component.scss b/src/app/advertiser/adList/input-tags/input-tags.component.scss similarity index 100% rename from src/app/advertiser/manageAds/input-tags/input-tags.component.scss rename to src/app/advertiser/adList/input-tags/input-tags.component.scss diff --git a/src/app/advertiser/manageAds/input-tags/input-tags.component.spec.ts b/src/app/advertiser/adList/input-tags/input-tags.component.spec.ts similarity index 100% rename from src/app/advertiser/manageAds/input-tags/input-tags.component.spec.ts rename to src/app/advertiser/adList/input-tags/input-tags.component.spec.ts diff --git a/src/app/advertiser/manageAds/input-tags/input-tags.component.ts b/src/app/advertiser/adList/input-tags/input-tags.component.ts similarity index 100% rename from src/app/advertiser/manageAds/input-tags/input-tags.component.ts rename to src/app/advertiser/adList/input-tags/input-tags.component.ts diff --git a/src/app/advertiser/manageAds/page-advertiser/page-advertiser.component.html b/src/app/advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component.html similarity index 84% rename from src/app/advertiser/manageAds/page-advertiser/page-advertiser.component.html rename to src/app/advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component.html index 9e1172a..5727386 100644 --- a/src/app/advertiser/manageAds/page-advertiser/page-advertiser.component.html +++ b/src/app/advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component.html @@ -22,7 +22,7 @@ - + + - - - - - - @@ -58,10 +50,10 @@ - + @@ -84,7 +76,7 @@ - + + +
Titre @@ -32,7 +32,7 @@ - Tags Tags {{tag}}, @@ -41,14 +41,6 @@ Commentaire - {{advert.comment}} - Date de création Dernière modification - {{ advert.lastUpdate | date:'dd/LL/YYYY à HH:mm:ss' }} + {{ advert.updatedAt | date:'dd/LL/YYYY à HH:mm:ss' }} Modifier Modifier Supprimer Supprimer Visualisation Visualisation + + diff --git a/src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.scss b/src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/advertiser/manageAds/popup-delete-ad/popup-delete-ad.component.spec.ts b/src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.spec.ts similarity index 54% rename from src/app/advertiser/manageAds/popup-delete-ad/popup-delete-ad.component.spec.ts rename to src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.spec.ts index ae1fb1b..632a177 100644 --- a/src/app/advertiser/manageAds/popup-delete-ad/popup-delete-ad.component.spec.ts +++ b/src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.spec.ts @@ -1,20 +1,20 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { PopupDeleteAdComponent } from './popup-delete-ad.component'; +import { PopupDeleteAdAdvertiserComponent } from './popup-delete-ad-advertiser.component'; describe('PopupDeleteAdComponent', () => { - let component: PopupDeleteAdComponent; - let fixture: ComponentFixture; + let component: PopupDeleteAdAdvertiserComponent; + let fixture: ComponentFixture; beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ PopupDeleteAdComponent ] + declarations: [ PopupDeleteAdAdvertiserComponent ] }) .compileComponents(); }); beforeEach(() => { - fixture = TestBed.createComponent(PopupDeleteAdComponent); + fixture = TestBed.createComponent(PopupDeleteAdAdvertiserComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.ts b/src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.ts new file mode 100644 index 0000000..48a45e1 --- /dev/null +++ b/src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.ts @@ -0,0 +1,51 @@ +import {Component, Inject, OnInit} from '@angular/core'; +import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog"; +import {MessageService} from "../../../utils/services/message/message.service"; +import {Advert} from "../../../utils/interfaces/advert"; + + + +@Component({ + selector: 'app-popup-delete-ad-advertiser', + templateUrl: './popup-delete-ad-advertiser.component.html', + styleUrls: ['./popup-delete-ad-advertiser.component.scss'] +}) +export class PopupDeleteAdAdvertiserComponent implements OnInit +{ + advert: Advert; + + + constructor( public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data, + private messageService: MessageService) { } + + + ngOnInit(): void + { + this.advert = this.data.advert; + } + + + onValidate(): void + { + // --- FAUX CODE --- + this.dialogRef.close(true); + + // --- VRAI CODE --- + /* + this.messageService + .sendMessage("advertiser/delete/ad", {"advert": this.advert}) + .subscribe( retour => { + + if(retour.status === "error") { + console.log(retour); + this.dialogRef.close(); + } + else { + this.dialogRef.close(true); + } + }); + */ + } + +} diff --git a/src/app/advertiser/manageAds/popup-visualize-ad/popup-visualize-ad.component.html b/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.html similarity index 97% rename from src/app/advertiser/manageAds/popup-visualize-ad/popup-visualize-ad.component.html rename to src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.html index 9f9c5ef..460ede0 100644 --- a/src/app/advertiser/manageAds/popup-visualize-ad/popup-visualize-ad.component.html +++ b/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.html @@ -49,7 +49,7 @@
- {{ advert.lastUpdate | date:'dd/LL/YYYY à HH:mm:ss' }} + {{ advert.updatedAt | date:'dd/LL/YYYY à HH:mm:ss' }}
diff --git a/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.scss b/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.scss new file mode 100644 index 0000000..3e00dee --- /dev/null +++ b/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.scss @@ -0,0 +1,28 @@ +.lightTheme, .darkTheme { + background-image: none; +} + + +h1 { + text-align: center; + font-size: xx-large; +} + + +.myRow { + margin: 15px 0px 15px 0px; +} + + +.myLabel { + text-align: right; + padding: 0px 5px 0px 0px; + margin: 0px; + font-weight: bold; +} + +.myValue { + text-align: left; + padding: 0px 0px 0px 5px; + margin: 0px; +} diff --git a/src/app/advertiser/manageAds/popup-visualize-ad/popup-visualize-ad.component.spec.ts b/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.spec.ts similarity index 52% rename from src/app/advertiser/manageAds/popup-visualize-ad/popup-visualize-ad.component.spec.ts rename to src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.spec.ts index b65b924..56aedbc 100644 --- a/src/app/advertiser/manageAds/popup-visualize-ad/popup-visualize-ad.component.spec.ts +++ b/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.spec.ts @@ -1,20 +1,20 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { PopupVisualizeAdComponent } from './popup-visualize-ad.component'; +import { PopupVisualizeAdAdvertiserComponent } from './popup-visualize-ad-advertiser.component'; describe('PopupVisualizeAdComponent', () => { - let component: PopupVisualizeAdComponent; - let fixture: ComponentFixture; + let component: PopupVisualizeAdAdvertiserComponent; + let fixture: ComponentFixture; beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ PopupVisualizeAdComponent ] + declarations: [ PopupVisualizeAdAdvertiserComponent ] }) .compileComponents(); }); beforeEach(() => { - fixture = TestBed.createComponent(PopupVisualizeAdComponent); + fixture = TestBed.createComponent(PopupVisualizeAdAdvertiserComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.ts b/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.ts new file mode 100644 index 0000000..96ab398 --- /dev/null +++ b/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.ts @@ -0,0 +1,48 @@ +import {Component, Inject, OnInit} from '@angular/core'; +import {ThemeService} from "../../../utils/services/theme/theme.service"; +import {MAT_DIALOG_DATA, MatDialog, MatDialogRef} from "@angular/material/dialog"; +import {Advert} from "../../../utils/interfaces/advert"; +import {PopupVisualizeImagesAdvertiserComponent} from "../popup-visualize-images-advertiser/popup-visualize-images-advertiser.component"; + + + +@Component({ + selector: 'app-popup-visualize-ad-advertiser', + templateUrl: './popup-visualize-ad-advertiser.component.html', + styleUrls: ['./popup-visualize-ad-advertiser.component.scss'] +}) +export class PopupVisualizeAdAdvertiserComponent implements OnInit +{ + advert: Advert; + + + constructor( public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data, + public themeService: ThemeService, + public dialog: MatDialog ) { } + + + ngOnInit(): void + { + this.advert = this.data.advert; + } + + + onVisualizeImages(images: any[]) + { + const config = { + width: '400px', + height: '950px', + data: { + images: images, + width: 300, + height: 800, + } + }; + this.dialog + .open(PopupVisualizeImagesAdvertiserComponent, config) + .afterClosed() + .subscribe(retour => {}); + } + +} diff --git a/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.html b/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.html new file mode 100644 index 0000000..c860766 --- /dev/null +++ b/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.html @@ -0,0 +1,13 @@ +
+

+ +
+ +
+ +
diff --git a/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.scss b/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.scss new file mode 100644 index 0000000..eb60d48 --- /dev/null +++ b/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.scss @@ -0,0 +1,14 @@ +carousel { + width: 100%; + margin: 0 auto; + text-align: center; + justify-content: center +} + + + +.dialog-title { + display: flex; + justify-content: space-between; + align-items: center; +} diff --git a/src/app/advertiser/manageAds/popup-visualize-images/popup-visualize-images.component.spec.ts b/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.spec.ts similarity index 51% rename from src/app/advertiser/manageAds/popup-visualize-images/popup-visualize-images.component.spec.ts rename to src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.spec.ts index 3eb7462..25da0db 100644 --- a/src/app/advertiser/manageAds/popup-visualize-images/popup-visualize-images.component.spec.ts +++ b/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.spec.ts @@ -1,20 +1,20 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { PopupVisualizeImagesComponent } from './popup-visualize-images.component'; +import { PopupVisualizeImagesAdvertiserComponent } from './popup-visualize-images-advertiser.component'; describe('PopupVisualizeImagesComponent', () => { - let component: PopupVisualizeImagesComponent; - let fixture: ComponentFixture; + let component: PopupVisualizeImagesAdvertiserComponent; + let fixture: ComponentFixture; beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ PopupVisualizeImagesComponent ] + declarations: [ PopupVisualizeImagesAdvertiserComponent ] }) .compileComponents(); }); beforeEach(() => { - fixture = TestBed.createComponent(PopupVisualizeImagesComponent); + fixture = TestBed.createComponent(PopupVisualizeImagesAdvertiserComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.ts b/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.ts new file mode 100644 index 0000000..dd99e36 --- /dev/null +++ b/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.ts @@ -0,0 +1,35 @@ +import {Component, Inject, OnInit} from '@angular/core'; +import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog"; + + + +@Component({ + selector: 'app-popup-visualize-images-advertiser', + templateUrl: './popup-visualize-images-advertiser.component.html', + styleUrls: ['./popup-visualize-images-advertiser.component.scss'] +}) +export class PopupVisualizeImagesAdvertiserComponent implements OnInit +{ + tabImages = []; + width: number = 0; + height: number = 0; + + + constructor( public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data ) { } + + + ngOnInit(): void + { + this.width = this.data.width; + this.height = this.data.height; + + for(let couple of this.data.images) + { + const elt = { path: "assets/pub/"+couple.url }; + this.tabImages.push(elt); + } + console.log(this.tabImages); + } + +} diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index b80ed68..7fbbe65 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -5,10 +5,12 @@ import {PageRegisterComponent} from "./beforeConnexion/register/page-register/pa import {PageSearchComponent} from "./user/search/page-search/page-search.component"; import {PageMyPlaylistsComponent} from "./user/myPlaylists/page-my-playlists/page-my-playlists.component"; import {PageHistoryUserComponent} from "./user/history/page-history-user/page-history-user.component"; -import {PageAdvertiserComponent} from "./advertiser/manageAds/page-advertiser/page-advertiser.component"; +import {PageAdListAdvertiserComponent} from "./advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component"; import {PageProfilUserComponent} from "./user/myProfil/page-profil-user/page-profil-user.component"; import {PageProfilAdvertiserComponent} from "./advertiser/myProfil/page-profil-advertiser/page-profil-advertiser.component"; import {PageProfilAdminComponent} from "./admin/myProfil/page-profil-admin/page-profil-admin.component"; +import {PageAdListAdminComponent} from "./admin/adList/page-ad-list-admin/page-ad-list-admin.component"; +import {PageUserListComponent} from "./admin/userList/page-user-list/page-user-list.component"; const routes: Routes = [ @@ -26,15 +28,14 @@ const routes: Routes = [ { path: 'user/myProfil', component: PageProfilUserComponent }, // Advertiser - { path: 'advertiser', component: PageAdvertiserComponent }, - { path: 'advertiser/manageAds', component: PageAdvertiserComponent }, + { path: 'advertiser', component: PageAdListAdvertiserComponent }, + { path: 'advertiser/adList', component: PageAdListAdvertiserComponent }, { path: 'advertiser/myProfil', component: PageProfilAdvertiserComponent }, // Admin - // { path: 'admin', component: PageLoginComponent } - // { path: 'admin/userList', component: PageLoginComponent }, - // { path: 'admin/addUser', component: PageLoginComponent }, - // { path: 'admin/adList', component: PageLoginComponent }, + { path: 'admin', component: PageUserListComponent }, + { path: 'admin/userList', component: PageUserListComponent }, + { path: 'admin/adList', component: PageAdListAdminComponent }, { path: 'admin/myProfil', component: PageProfilAdminComponent } ]; diff --git a/src/app/app.module.ts b/src/app/app.module.ts index d787fd6..139ab70 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -31,21 +31,19 @@ import {VideoListComponent} from "./user/myPlaylists/video-list/video-list.compo import { PopupCreatePlaylistComponent } from './utils/components/popup-create-playlist/popup-create-playlist.component'; import { PageHistoryUserComponent } from './user/history/page-history-user/page-history-user.component'; import {MatTableModule} from '@angular/material/table'; -import { PageMyProfilComponent } from './utils/components/myProfil/page-my-profil/page-my-profil.component'; -import { PopupPictureProfilUrlComponent } from './utils/components/myProfil/popup-picture-profil-url/popup-picture-profil-url.component'; import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; import {MatSortModule} from "@angular/material/sort"; -import { PageAdvertiserComponent } from './advertiser/manageAds/page-advertiser/page-advertiser.component'; -import { PopupDeleteAdComponent } from './advertiser/manageAds/popup-delete-ad/popup-delete-ad.component'; -import { PopupAddOrUpdateAdComponent } from './advertiser/manageAds/popup-add-or-update-ad/popup-add-or-update-ad.component'; -import { PopupVisualizeAdComponent } from './advertiser/manageAds/popup-visualize-ad/popup-visualize-ad.component'; -import { InputTagsComponent } from './advertiser/manageAds/input-tags/input-tags.component'; +import { PageAdListAdvertiserComponent } from './advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component'; +import { PopupDeleteAdAdvertiserComponent } from './advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component'; +import { PopupAddOrUpdateAdComponent } from './advertiser/adList/popup-add-or-update-ad/popup-add-or-update-ad.component'; +import { PopupVisualizeAdAdvertiserComponent } from './advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component'; +import { InputTagsComponent } from './advertiser/adList/input-tags/input-tags.component'; import {MatChipsModule} from "@angular/material/chips"; import {MatAutocompleteModule} from "@angular/material/autocomplete"; import {MatSelectModule} from "@angular/material/select"; -import { PopupVisualizeImagesComponent } from './advertiser/manageAds/popup-visualize-images/popup-visualize-images.component'; +import { PopupVisualizeImagesAdvertiserComponent } from './advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component'; import {IvyCarouselModule} from "angular-responsive-carousel"; -import { DragAndDropComponent } from './advertiser/manageAds/drag-and-drop/drag-and-drop.component'; +import { DragAndDropComponent } from './advertiser/adList/drag-and-drop/drag-and-drop.component'; import { DragAndDropDirective } from './utils/directives/dragAndDrop/drag-and-drop.directive'; import { PageProfilUserComponent } from './user/myProfil/page-profil-user/page-profil-user.component'; import { NavbarUserComponent } from './user/navbar-user/navbar-user.component'; @@ -62,6 +60,13 @@ import { PopupUpdateAdminComponent } from './admin/myProfil/popup-update-admin/p import {MatStepperModule} from "@angular/material/stepper"; import { InputInterestsRegisterComponent } from './beforeConnexion/register/input-interests-register/input-interests-register.component'; import {MatPaginatorModule} from "@angular/material/paginator"; +import { PageAdListAdminComponent } from './admin/adList/page-ad-list-admin/page-ad-list-admin.component'; +import { PopupDeleteAdAdminComponent } from './admin/adList/popup-delete-ad-admin/popup-delete-ad-admin.component'; +import { PopupVisualizeAdAdminComponent } from './admin/adList/popup-visualize-ad-admin/popup-visualize-ad-admin.component'; +import { PopupVisualizeImagesAdminComponent } from './admin/adList/popup-visualize-images-admin/popup-visualize-images-admin.component'; +import { PageUserListComponent } from './admin/userList/page-user-list/page-user-list.component'; +import { PopupVisualizeUserComponent } from './admin/userList/popup-visualize-user/popup-visualize-user.component'; +import { PopupDeleteUserComponent } from './admin/userList/popup-delete-user/popup-delete-user.component'; @NgModule({ @@ -82,14 +87,12 @@ import {MatPaginatorModule} from "@angular/material/paginator"; VideoListComponent, PopupCreatePlaylistComponent, PageHistoryUserComponent, - PageMyProfilComponent, - PopupPictureProfilUrlComponent, - PageAdvertiserComponent, - PopupDeleteAdComponent, + PageAdListAdvertiserComponent, + PopupDeleteAdAdvertiserComponent, PopupAddOrUpdateAdComponent, - PopupVisualizeAdComponent, + PopupVisualizeAdAdvertiserComponent, InputTagsComponent, - PopupVisualizeImagesComponent, + PopupVisualizeImagesAdvertiserComponent, DragAndDropComponent, DragAndDropDirective, PageProfilUserComponent, @@ -104,6 +107,13 @@ import {MatPaginatorModule} from "@angular/material/paginator"; PageProfilAdminComponent, PopupUpdateAdminComponent, InputInterestsRegisterComponent, + PageAdListAdminComponent, + PopupDeleteAdAdminComponent, + PopupVisualizeAdAdminComponent, + PopupVisualizeImagesAdminComponent, + PageUserListComponent, + PopupVisualizeUserComponent, + PopupDeleteUserComponent, ], imports: [ BrowserModule, diff --git a/src/app/utils/components/myProfil/page-my-profil/page-my-profil.component.html b/src/app/utils/components/myProfil/page-my-profil/page-my-profil.component.html deleted file mode 100644 index 5d0bd58..0000000 --- a/src/app/utils/components/myProfil/page-my-profil/page-my-profil.component.html +++ /dev/null @@ -1,73 +0,0 @@ -
-
- - -
- - -
- -
- -
-
- - - - Pseudo - - -
- - - - Email - - -
- - - - Type de compte - - - - -
- - - Modifier mot de passe: - -
- - -
- - - Nouveau mot de passe - - -
- - - Confirmation nouveau mot de passe - - -
-
- - -
- -
- - -
- {{errorMessage}} -
- -
-
-
diff --git a/src/app/utils/components/myProfil/page-my-profil/page-my-profil.component.scss b/src/app/utils/components/myProfil/page-my-profil/page-my-profil.component.scss deleted file mode 100644 index 83f3d1a..0000000 --- a/src/app/utils/components/myProfil/page-my-profil/page-my-profil.component.scss +++ /dev/null @@ -1,67 +0,0 @@ -.myContainer { - max-width: 100vw; - height: 100vh; - overflow-x: hidden; -} - - -h1 { - text-align: center; - margin-bottom: 30px; -} - -.boite { - margin-left: auto; - margin-right: auto; - width: 20%; - margin-top: 20px; - border: solid 3px; - border-radius: 10px; - padding: 20px 40px 20px 40px; - background-color: #ffffff; - text-align: center; - box-shadow: 10px 5px 5px black; -} -.lightTheme .boite { - border-color: black; -} -.darkTheme .boite { - border-color: white; -} - -img { - margin: 0px 0px 10px 0px; - width: 5vw; - height: 5vw; - border: solid 2px black; - border-radius: 50%; - font-size: xxx-large; -} - -mat-form-field { - padding: 2px 0px 2px 0px; - width: 70%; -} - -button { - border: solid 1px black; -} - - -// ------------------------------------------------------------------------- - -// aura -::ng-deep .mat-checkbox-ripple .mat-ripple-element { - background-color: grey !important; -} - -// contenu coche -::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-background { - background-color: black !important; -} - -// indeterminate -::ng-deep .mat-checkbox .mat-checkbox-frame { - border-color: black !important; - background-color: white !important; -} diff --git a/src/app/utils/components/myProfil/page-my-profil/page-my-profil.component.ts b/src/app/utils/components/myProfil/page-my-profil/page-my-profil.component.ts deleted file mode 100644 index aa11f16..0000000 --- a/src/app/utils/components/myProfil/page-my-profil/page-my-profil.component.ts +++ /dev/null @@ -1,164 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import {MessageService} from "../../../services/message/message.service"; -import {ThemeService} from "../../../services/theme/theme.service"; -import {FictitiousDatasService} from "../../../services/fictitiousDatas/fictitious-datas.service"; -import {MatDialog} from "@angular/material/dialog"; -import {PopupAddVideoToPlaylistsComponent} from "../../popup-add-video-to-playlists/popup-add-video-to-playlists.component"; -import {PopupPictureProfilUrlComponent} from "../popup-picture-profil-url/popup-picture-profil-url.component"; -import {MatSnackBar} from "@angular/material/snack-bar"; -import {Router} from "@angular/router"; - - - -@Component({ - selector: 'app-page-my-profil', - templateUrl: './page-my-profil.component.html', - styleUrls: ['./page-my-profil.component.scss'] -}) -export class PageMyProfilComponent implements OnInit -{ - model = { - _id: "", - profilePictureUrl: "", - login: "", - mail: "", - role: "", - newPassword: "" - }; - confirmNewPassword: string = "" ; - changePassword: boolean = false ; - hasError: boolean = false; - errorMessage: string = "" ; - forNavbar: string = "" ; - - - constructor( private messageService: MessageService, - public themeService: ThemeService, - private fictitiousDatasService: FictitiousDatasService, - public dialog: MatDialog, - private snackBar: MatSnackBar, - private router: Router ) { } - - - ngOnInit(): void - { - // --- FAUX CODE --- - let profil ; - if(this.router.url.startsWith("/user")) { - profil = this.fictitiousDatasService.getUser(); - this.forNavbar = "user"; - } - else if(this.router.url.startsWith("/advertiser")) { - profil = this.fictitiousDatasService.getAdvertiser(); - this.forNavbar = "advertiser"; - } - else if(this.router.url.startsWith("/admin")) { - profil = this.fictitiousDatasService.getAdmin(); - this.forNavbar = "admin"; - } - this.model._id = profil._id; - this.model.profilePictureUrl = profil.profilePictureUrl; - this.model.login = profil.login; - this.model.mail = profil.mail; - this.model.role = profil.role; - - // --- VRAI CODE --- - /* - this.messageService - .sendMessage("user/get/profil", null) - .subscribe( retour => { - - if(retour.status === "error") console.log(retour); - else { - const profil = retour.data.profil; - this.model._id = profil._id; - this.model.profilePictureUrl = profil.profilePictureUrl; - this.model.pseudo = profil.pseudo; - this.model.email = profil.email; - this.model.role = profil.role; - this.model.newPassword = profil.newPassword; - } - }); - */ - } - - - onEnregistrer() - { - console.log(this.model); - this.checkField(); - - // --- VRAI CODE --- - /* - if(!this.hasError) - { - this.messageService - .sendMessage("user/set/profil", this.model) - .subscribe( retour => {} ); - } - */ - } - - - checkField() - { - if(this.model.login.length === 0) { - this.errorMessage = "Veuillez remplir le champ 'pseudo'" - this.hasError = true; - } - else if(this.model.mail.length === 0) - { - this.errorMessage = "Veuillez remplir le champ 'email'" - this.hasError = true; - } - else if(!this.isValidEmail(this.model.mail)) - { - this.errorMessage = "Email invalide" - this.hasError = true; - } - else if(this.changePassword) - { - if (this.model.newPassword.length === 0) { - this.errorMessage = "Veuillez remplir le champ 'mot de passe'" - this.hasError = true; - } else if (this.model.newPassword !== this.confirmNewPassword) { - this.errorMessage = "Le mot de passe est différent de sa confirmation" - this.hasError = true; - } - } - else { - this.errorMessage = "" ; - this.hasError = false; - } - } - - - isValidEmail(email) - { - let re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; - return re.test(email); - } - - - onChangePP() - { - const config = { - width: '25%', - data: { profilePictureUrl: this.model.profilePictureUrl } - }; - this.dialog - .open(PopupPictureProfilUrlComponent, config ) - .afterClosed() - .subscribe(retour => { - - if((retour === null) || (retour === undefined)) { - const config = { duration: 1000, panelClass: "custom-class" }; - this.snackBar.open( "Opération annulé", "", config); - } - else { - this.model.profilePictureUrl = retour; - } - }); - } - -} diff --git a/src/app/utils/components/myProfil/popup-picture-profil-url/popup-picture-profil-url.component.html b/src/app/utils/components/myProfil/popup-picture-profil-url/popup-picture-profil-url.component.html deleted file mode 100644 index c297d9a..0000000 --- a/src/app/utils/components/myProfil/popup-picture-profil-url/popup-picture-profil-url.component.html +++ /dev/null @@ -1,9 +0,0 @@ -
- ??? -
-
- -
diff --git a/src/app/utils/components/myProfil/popup-picture-profil-url/popup-picture-profil-url.component.scss b/src/app/utils/components/myProfil/popup-picture-profil-url/popup-picture-profil-url.component.scss deleted file mode 100644 index e7e7f82..0000000 --- a/src/app/utils/components/myProfil/popup-picture-profil-url/popup-picture-profil-url.component.scss +++ /dev/null @@ -1,20 +0,0 @@ -.myContainer { - margin: 0px; - padding: 0px; - text-align: center; -} - -img { - margin: 0px 0px 10px 0px; - width: 10vw; - height: 10vw; - border: solid 2px black; - border-radius: 50%; - font-size: xxx-large; -} - -input { - margin: 0px; - margin: 0px 0px 10px 0px; - width: 100%; -} diff --git a/src/app/utils/components/myProfil/popup-picture-profil-url/popup-picture-profil-url.component.spec.ts b/src/app/utils/components/myProfil/popup-picture-profil-url/popup-picture-profil-url.component.spec.ts deleted file mode 100644 index b955bf1..0000000 --- a/src/app/utils/components/myProfil/popup-picture-profil-url/popup-picture-profil-url.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { PopupPictureProfilUrlComponent } from './popup-picture-profil-url.component'; - -describe('PopupPictureProfilUrlComponent', () => { - let component: PopupPictureProfilUrlComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ PopupPictureProfilUrlComponent ] - }) - .compileComponents(); - }); - - beforeEach(() => { - fixture = TestBed.createComponent(PopupPictureProfilUrlComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/utils/components/myProfil/popup-picture-profil-url/popup-picture-profil-url.component.ts b/src/app/utils/components/myProfil/popup-picture-profil-url/popup-picture-profil-url.component.ts deleted file mode 100644 index f9ddb3a..0000000 --- a/src/app/utils/components/myProfil/popup-picture-profil-url/popup-picture-profil-url.component.ts +++ /dev/null @@ -1,28 +0,0 @@ -import {Component, Inject, OnInit} from '@angular/core'; -import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog"; - - - -@Component({ - selector: 'app-popup-picture-profil-url', - templateUrl: './popup-picture-profil-url.component.html', - styleUrls: ['./popup-picture-profil-url.component.scss'] -}) -export class PopupPictureProfilUrlComponent implements OnInit -{ - profilePictureUrl: string = "" ; - - constructor( public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public data ) { } - - ngOnInit(): void - { - this.profilePictureUrl = this.data.profilePictureUrl; - } - - onValider() - { - this.dialogRef.close(this.profilePictureUrl); - } - -} diff --git a/src/app/utils/interfaces/advert.ts b/src/app/utils/interfaces/advert.ts index d33325b..857e239 100644 --- a/src/app/utils/interfaces/advert.ts +++ b/src/app/utils/interfaces/advert.ts @@ -11,6 +11,6 @@ export interface Advert comment: string, views: number, createdAt: Date, - lastUpdate: Date, + updatedAt: Date, isVisible: boolean, } diff --git a/src/app/utils/services/fictitiousDatas/fictitious-datas.service.ts b/src/app/utils/services/fictitiousDatas/fictitious-datas.service.ts index 0a69908..7b6115a 100644 --- a/src/app/utils/services/fictitiousDatas/fictitious-datas.service.ts +++ b/src/app/utils/services/fictitiousDatas/fictitious-datas.service.ts @@ -4,7 +4,7 @@ import {Playlist} from "../../interfaces/playlist"; import {Advert} from "../../interfaces/advert"; import {User} from "../../interfaces/user"; - +// ------------------------------------------------------------------------------------------------------------------------------ const TAB_VIDEO: Video[] = [ { @@ -95,11 +95,11 @@ const TAB_VIDEO: Video[] = [ views: 111, watched: [] }, -] +]; +// ------------------------------------------------------------------------------------------------------------------------------ - -const TAB_ADVERT = [ +const TAB_ADVERT: Advert[] = [ { _id: "idNutella", title: "pot de nutella XXL", @@ -113,7 +113,7 @@ const TAB_ADVERT = [ comment: "pub pour vacances de noêl", views: 5, createdAt: new Date(), - lastUpdate: new Date(), + updatedAt: new Date(), isVisible: true }, { @@ -128,13 +128,71 @@ const TAB_ADVERT = [ comment: "pub pour cette année", views: 2, createdAt: new Date(), - lastUpdate: new Date(), + updatedAt: new Date(), isVisible: true }, -] +]; +// ------------------------------------------------------------------------------------------------------------------------------ +const USER: User = { + _id: "ririId", + login: "Riri", + hashPass: "agourgroou", + mail: "riri@gmail.com", + role: { + name: "user", + permission: 0, + }, + profilePictureUrl: "https://www.figurines-goodies.com/1185-thickbox_default/huey-duck-tales-disney-funko-pop.jpg", + dateOfBirth: new Date(), + gender: "man", + interests: ["foot", "jeux-vidéo"], + isActive: true, + isAccepted: true, + createdAt: new Date(), + updatedAt: new Date(), +}; +const ADVERTISER: User = { + _id: "fifiId", + login: "Fifi", + hashPass: "agourgroou", + mail: "fifi@gmail.com", + role: { + name: "advertiser", + permission: 5, + }, + profilePictureUrl: "https://www.figurines-goodies.com/1188-large_default/dewey-duck-tales-disney-funko-pop.jpg", + dateOfBirth: null, + gender: "", + interests: [], + isActive: true, + isAccepted: true, + createdAt: new Date(), + updatedAt: new Date(), +}; + +const ADMIN: User = { + _id: "loulouId", + login: "Loulou", + hashPass: "agourgroou", + mail: "loulou@gmail.com", + role: { + name: "admin", + permission: 5, + }, + profilePictureUrl: "https://www.reference-gaming.com/assets/media/product/41195/figurine-pop-duck-tales-n-309-loulou.jpg?format=product-cover-large&k=1519639530", + dateOfBirth: null, + gender: "", + interests: [], + isActive: true, + isAccepted: true, + createdAt: new Date(), + updatedAt: new Date(), +}; + +// ------------------------------------------------------------------------------------------------------------------------------ @Injectable({ providedIn: 'root' @@ -158,6 +216,7 @@ export class FictitiousDatasService return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime())); } + // ------------------------------------------------------------------------------------------------ getVideo(): Video { @@ -184,6 +243,7 @@ export class FictitiousDatasService return tabVideo; } + // ------------------------------------------------------------------------------------------------ getTabPlaylist(nbPlaylist: number, nbVideoMax: number) { @@ -203,6 +263,7 @@ export class FictitiousDatasService return tabTabPlaylist } + // ------------------------------------------------------------------------------------------------ getAdvert(): Advert { @@ -221,73 +282,52 @@ export class FictitiousDatasService return tabAdvert; } + // ------------------------------------------------------------------------------------------------ - getUser(): User + private getUserOrAdvertiserOrAdmin(modele: User): User { - return { - _id: "ririId", - login: "Riri", - hashPass: "agourgroou", - mail: "riri@gmail.com", - role: { - name: "user", - permission: 0, - }, - profilePictureUrl: "https://www.figurines-goodies.com/1185-thickbox_default/huey-duck-tales-disney-funko-pop.jpg", - dateOfBirth: new Date(), - gender: "man", - interests: ["foot", "jeux-vidéo"], - isActive: true, - isAccepted: true, - createdAt: new Date(), - updatedAt: new Date(), - } + const res = Object.assign({}, modele); + res._id += this.makeid(5); + res.login += (Math.floor(Math.random() * 1000)).toString(); + res.mail = res.login + "@gmail.com" ; + res.isAccepted = (Math.random() < 0.5); + return res; } - getAdvertiser(): User - { - return { - _id: "fifiId", - login: "Fifi", - hashPass: "agourgroou", - mail: "fifi@gmail.com", - role: { - name: "advertiser", - permission: 5, - }, - profilePictureUrl: "https://www.figurines-goodies.com/1188-large_default/dewey-duck-tales-disney-funko-pop.jpg", - dateOfBirth: null, - gender: "", - interests: [], - isActive: true, - isAccepted: true, - createdAt: new Date(), - updatedAt: new Date(), - } + getUser(): User { + return this.getUserOrAdvertiserOrAdmin(USER); } - getAdmin(): User - { - return { - _id: "loulouId", - login: "Loulou", - hashPass: "agourgroou", - mail: "loulou@gmail.com", - role: { - name: "admin", - permission: 5, - }, - profilePictureUrl: "https://www.reference-gaming.com/assets/media/product/41195/figurine-pop-duck-tales-n-309-loulou.jpg?format=product-cover-large&k=1519639530", - dateOfBirth: null, - gender: "", - interests: [], - isActive: true, - isAccepted: true, - createdAt: new Date(), - updatedAt: new Date(), - } + getAdvertiser(): User { + return this.getUserOrAdvertiserOrAdmin(ADVERTISER); } + getAdmin(): User { + return this.getUserOrAdvertiserOrAdmin(ADMIN); + } + + getTabUser(n: number): User[] + { + const res: User[] = []; + for(let i=0 ; i