From b7df19e1c0b6acda0852375464cafcfb6f5d552b Mon Sep 17 00:00:00 2001
From: MiharyR <60790872+MiharyR@users.noreply.github.com>
Date: Tue, 21 Dec 2021 13:34:22 +0100
Subject: [PATCH] Delete userAndAdvertiser directory
---
userAndAdvertiser/.browserslistrc | 17 -
userAndAdvertiser/.editorconfig | 16 -
userAndAdvertiser/.gitignore | 45 ---
userAndAdvertiser/README.md | 27 --
userAndAdvertiser/angular.json | 113 -------
userAndAdvertiser/karma.conf.js | 44 ---
userAndAdvertiser/package.json | 45 ---
.../drag-and-drop.component.html | 33 --
.../drag-and-drop.component.scss | 135 --------
.../drag-and-drop.component.spec.ts | 25 --
.../drag-and-drop/drag-and-drop.component.ts | 93 ------
.../input-interests-ad.component.html | 43 ---
.../input-interests-ad.component.scss | 16 -
.../input-interests-ad.component.spec.ts | 25 --
.../input-interests-ad.component.ts | 121 -------
.../page-ad-list-advertiser.component.html | 185 -----------
.../page-ad-list-advertiser.component.scss | 87 -----
.../page-ad-list-advertiser.component.spec.ts | 25 --
.../page-ad-list-advertiser.component.ts | 304 ------------------
.../popup-add-or-update-ad.component.html | 83 -----
.../popup-add-or-update-ad.component.scss | 90 ------
.../popup-add-or-update-ad.component.spec.ts | 25 --
.../popup-add-or-update-ad.component.ts | 220 -------------
.../popup-delete-ad-advertiser.component.html | 8 -
.../popup-delete-ad-advertiser.component.scss | 0
...pup-delete-ad-advertiser.component.spec.ts | 25 --
.../popup-delete-ad-advertiser.component.ts | 47 ---
...pup-visualize-ad-advertiser.component.html | 71 ----
...pup-visualize-ad-advertiser.component.scss | 28 --
...-visualize-ad-advertiser.component.spec.ts | 25 --
...popup-visualize-ad-advertiser.component.ts | 26 --
...visualize-images-advertiser.component.html | 20 --
...visualize-images-advertiser.component.scss | 14 -
...ualize-images-advertiser.component.spec.ts | 25 --
...p-visualize-images-advertiser.component.ts | 38 ---
.../page-profil-advertiser.component.html | 49 ---
.../page-profil-advertiser.component.scss | 61 ----
.../page-profil-advertiser.component.spec.ts | 25 --
.../page-profil-advertiser.component.ts | 89 -----
.../popup-update-advertiser.component.html | 65 ----
.../popup-update-advertiser.component.scss | 33 --
.../popup-update-advertiser.component.spec.ts | 25 --
.../popup-update-advertiser.component.ts | 124 -------
.../pages-popularity.component.html | 94 ------
.../pages-popularity.component.scss | 53 ---
.../pages-popularity.component.spec.ts | 25 --
.../pages-popularity.component.ts | 304 ------------------
.../drag-and-drop.directive.spec.ts | 8 -
.../dragAndDrop/drag-and-drop.directive.ts | 36 ---
.../navbar-advertiser.component.html | 41 ---
.../navbar-advertiser.component.scss | 80 -----
.../navbar-advertiser.component.spec.ts | 25 --
.../navbar-advertiser.component.ts | 41 ---
.../src/app/app-routing.module.ts | 41 ---
userAndAdvertiser/src/app/app.component.html | 2 -
userAndAdvertiser/src/app/app.component.scss | 24 --
.../src/app/app.component.spec.ts | 35 --
userAndAdvertiser/src/app/app.component.ts | 10 -
userAndAdvertiser/src/app/app.module.ts | 131 --------
.../page-login/page-login.component.html | 36 ---
.../page-login/page-login.component.scss | 271 ----------------
.../page-login/page-login.component.spec.ts | 25 --
.../login/page-login/page-login.component.ts | 101 ------
.../popup-forgotten-password.component.html | 24 --
.../popup-forgotten-password.component.scss | 12 -
...popup-forgotten-password.component.spec.ts | 25 --
.../popup-forgotten-password.component.ts | 47 ---
.../input-interests-register.component.html | 43 ---
.../input-interests-register.component.scss | 0
...input-interests-register.component.spec.ts | 25 --
.../input-interests-register.component.ts | 121 -------
.../page-register.component.html | 162 ----------
.../page-register.component.scss | 47 ---
.../page-register.component.spec.ts | 25 --
.../page-register/page-register.component.ts | 134 --------
.../popup-confirmation.component.html | 11 -
.../popup-confirmation.component.scss | 7 -
.../popup-confirmation.component.spec.ts | 25 --
.../popup-confirmation.component.ts | 13 -
.../navbar-before-connexion.component.html | 40 ---
.../navbar-before-connexion.component.scss | 79 -----
.../navbar-before-connexion.component.spec.ts | 25 --
.../navbar-before-connexion.component.ts | 11 -
.../page-history-user.component.html | 70 ----
.../page-history-user.component.scss | 46 ---
.../page-history-user.component.spec.ts | 25 --
.../page-history-user.component.ts | 113 -------
.../page-my-playlists.component.html | 35 --
.../page-my-playlists.component.scss | 48 ---
.../page-my-playlists.component.spec.ts | 25 --
.../page-my-playlists.component.ts | 68 ----
.../playlist-list.component.html | 48 ---
.../playlist-list.component.scss | 94 ------
.../playlist-list.component.spec.ts | 25 --
.../playlist-list/playlist-list.component.ts | 161 ----------
...p-create-or-update-playlist.component.html | 19 --
...p-create-or-update-playlist.component.scss | 0
...reate-or-update-playlist.component.spec.ts | 25 --
...pup-create-or-update-playlist.component.ts | 90 ------
.../popup-delete-playlist.component.html | 8 -
.../popup-delete-playlist.component.scss | 0
.../popup-delete-playlist.component.spec.ts | 25 --
.../popup-delete-playlist.component.ts | 41 ---
.../video-list/video-list.component.html | 91 ------
.../video-list/video-list.component.scss | 83 -----
.../video-list/video-list.component.spec.ts | 25 --
.../video-list/video-list.component.ts | 92 ------
.../input-interests-profil.component.html | 39 ---
.../input-interests-profil.component.scss | 20 --
.../input-interests-profil.component.spec.ts | 25 --
.../input-interests-profil.component.ts | 121 -------
.../page-profil-user.component.html | 92 ------
.../page-profil-user.component.scss | 80 -----
.../page-profil-user.component.spec.ts | 25 --
.../page-profil-user.component.ts | 89 -----
.../popup-update-user.component.html | 125 -------
.../popup-update-user.component.scss | 81 -----
.../popup-update-user.component.spec.ts | 25 --
.../popup-update-user.component.ts | 132 --------
.../page-search/page-search.component.html | 80 -----
.../page-search/page-search.component.scss | 90 ------
.../page-search/page-search.component.spec.ts | 25 --
.../page-search/page-search.component.ts | 118 -------
.../video-grid/video-grid.component.html | 76 -----
.../video-grid/video-grid.component.scss | 84 -----
.../video-grid/video-grid.component.spec.ts | 25 --
.../search/video-grid/video-grid.component.ts | 128 --------
.../components/advert/advert.component.html | 26 --
.../components/advert/advert.component.scss | 41 ---
.../advert/advert.component.spec.ts | 25 --
.../components/advert/advert.component.ts | 40 ---
.../navbar-user/navbar-user.component.html | 41 ---
.../navbar-user/navbar-user.component.scss | 80 -----
.../navbar-user/navbar-user.component.spec.ts | 25 --
.../navbar-user/navbar-user.component.ts | 41 ---
...opup-add-video-to-playlists.component.html | 42 ---
...opup-add-video-to-playlists.component.scss | 39 ---
...p-add-video-to-playlists.component.spec.ts | 25 --
.../popup-add-video-to-playlists.component.ts | 141 --------
.../add-video-to-playlists.service.spec.ts | 16 -
.../add-video-to-playlists.service.ts | 100 ------
.../page-watching-video.component.html | 233 --------------
.../page-watching-video.component.scss | 159 ---------
.../page-watching-video.component.spec.ts | 25 --
.../page-watching-video.component.ts | 258 ---------------
.../app/utils/message/message.service.spec.ts | 16 -
.../src/app/utils/message/message.service.ts | 38 ---
.../app/utils/profil/profil.service.spec.ts | 16 -
.../src/app/utils/profil/profil.service.ts | 29 --
.../src/app/utils/theme/theme.service.spec.ts | 16 -
.../src/app/utils/theme/theme.service.ts | 17 -
userAndAdvertiser/src/assets/.gitkeep | 0
.../src/assets/darkBackground.webp | Bin 712 -> 0 bytes
.../src/assets/lightBackground.jpg | Bin 5902 -> 0 bytes
userAndAdvertiser/src/assets/logo.png | Bin 5798 -> 0 bytes
.../assets/logo_plateforms/dailymotion.png | Bin 6478 -> 0 bytes
.../src/assets/logo_plateforms/youtube.png | Bin 7858 -> 0 bytes
userAndAdvertiser/src/assets/play.png | Bin 3586 -> 0 bytes
userAndAdvertiser/src/assets/profil.png | Bin 18287 -> 0 bytes
userAndAdvertiser/src/assets/uploadFile.png | Bin 8853 -> 0 bytes
.../src/environments/environment.prod.ts | 4 -
.../src/environments/environment.ts | 17 -
userAndAdvertiser/src/favicon.ico | Bin 948 -> 0 bytes
userAndAdvertiser/src/index.html | 13 -
userAndAdvertiser/src/main.ts | 12 -
userAndAdvertiser/src/polyfills.ts | 65 ----
userAndAdvertiser/src/styles.scss | 1 -
userAndAdvertiser/src/test.ts | 27 --
userAndAdvertiser/tsconfig.app.json | 15 -
userAndAdvertiser/tsconfig.json | 23 --
userAndAdvertiser/tsconfig.spec.json | 18 --
171 files changed, 9295 deletions(-)
delete mode 100644 userAndAdvertiser/.browserslistrc
delete mode 100644 userAndAdvertiser/.editorconfig
delete mode 100644 userAndAdvertiser/.gitignore
delete mode 100644 userAndAdvertiser/README.md
delete mode 100644 userAndAdvertiser/angular.json
delete mode 100644 userAndAdvertiser/karma.conf.js
delete mode 100644 userAndAdvertiser/package.json
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.html
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.scss
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/input-interests-ad/input-interests-ad.component.html
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/input-interests-ad/input-interests-ad.component.scss
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/input-interests-ad/input-interests-ad.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/input-interests-ad/input-interests-ad.component.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component.html
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component.scss
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/popup-add-or-update-ad/popup-add-or-update-ad.component.html
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/popup-add-or-update-ad/popup-add-or-update-ad.component.scss
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/popup-add-or-update-ad/popup-add-or-update-ad.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/popup-add-or-update-ad/popup-add-or-update-ad.component.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.html
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.scss
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.html
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.scss
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.html
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.scss
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/myProfil/page-profil-advertiser/page-profil-advertiser.component.html
delete mode 100644 userAndAdvertiser/src/app/advertiser/myProfil/page-profil-advertiser/page-profil-advertiser.component.scss
delete mode 100644 userAndAdvertiser/src/app/advertiser/myProfil/page-profil-advertiser/page-profil-advertiser.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/myProfil/page-profil-advertiser/page-profil-advertiser.component.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/myProfil/popup-update-advertiser/popup-update-advertiser.component.html
delete mode 100644 userAndAdvertiser/src/app/advertiser/myProfil/popup-update-advertiser/popup-update-advertiser.component.scss
delete mode 100644 userAndAdvertiser/src/app/advertiser/myProfil/popup-update-advertiser/popup-update-advertiser.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/myProfil/popup-update-advertiser/popup-update-advertiser.component.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/pages-popularity/pages-popularity.component.html
delete mode 100644 userAndAdvertiser/src/app/advertiser/pages-popularity/pages-popularity.component.scss
delete mode 100644 userAndAdvertiser/src/app/advertiser/pages-popularity/pages-popularity.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/pages-popularity/pages-popularity.component.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/utils/dragAndDrop/drag-and-drop.directive.spec.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/utils/dragAndDrop/drag-and-drop.directive.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/utils/navbar-advertiser/navbar-advertiser.component.html
delete mode 100644 userAndAdvertiser/src/app/advertiser/utils/navbar-advertiser/navbar-advertiser.component.scss
delete mode 100644 userAndAdvertiser/src/app/advertiser/utils/navbar-advertiser/navbar-advertiser.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/advertiser/utils/navbar-advertiser/navbar-advertiser.component.ts
delete mode 100644 userAndAdvertiser/src/app/app-routing.module.ts
delete mode 100644 userAndAdvertiser/src/app/app.component.html
delete mode 100644 userAndAdvertiser/src/app/app.component.scss
delete mode 100644 userAndAdvertiser/src/app/app.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/app.component.ts
delete mode 100644 userAndAdvertiser/src/app/app.module.ts
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/login/page-login/page-login.component.html
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/login/page-login/page-login.component.scss
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/login/page-login/page-login.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/login/page-login/page-login.component.ts
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/login/popup-forgotten-password/popup-forgotten-password.component.html
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/login/popup-forgotten-password/popup-forgotten-password.component.scss
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/login/popup-forgotten-password/popup-forgotten-password.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/login/popup-forgotten-password/popup-forgotten-password.component.ts
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/register/input-interests-register/input-interests-register.component.html
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/register/input-interests-register/input-interests-register.component.scss
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/register/input-interests-register/input-interests-register.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/register/input-interests-register/input-interests-register.component.ts
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/register/page-register/page-register.component.html
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/register/page-register/page-register.component.scss
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/register/page-register/page-register.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/register/page-register/page-register.component.ts
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/register/popup-confirmation/popup-confirmation.component.html
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/register/popup-confirmation/popup-confirmation.component.scss
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/register/popup-confirmation/popup-confirmation.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/register/popup-confirmation/popup-confirmation.component.ts
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/utils/navbar-before-connexion/navbar-before-connexion.component.html
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/utils/navbar-before-connexion/navbar-before-connexion.component.scss
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/utils/navbar-before-connexion/navbar-before-connexion.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/beforeConnexion/utils/navbar-before-connexion/navbar-before-connexion.component.ts
delete mode 100644 userAndAdvertiser/src/app/user/history/page-history-user/page-history-user.component.html
delete mode 100644 userAndAdvertiser/src/app/user/history/page-history-user/page-history-user.component.scss
delete mode 100644 userAndAdvertiser/src/app/user/history/page-history-user/page-history-user.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/user/history/page-history-user/page-history-user.component.ts
delete mode 100644 userAndAdvertiser/src/app/user/myPlaylists/page-my-playlists/page-my-playlists.component.html
delete mode 100644 userAndAdvertiser/src/app/user/myPlaylists/page-my-playlists/page-my-playlists.component.scss
delete mode 100644 userAndAdvertiser/src/app/user/myPlaylists/page-my-playlists/page-my-playlists.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/user/myPlaylists/page-my-playlists/page-my-playlists.component.ts
delete mode 100644 userAndAdvertiser/src/app/user/myPlaylists/playlist-list/playlist-list.component.html
delete mode 100644 userAndAdvertiser/src/app/user/myPlaylists/playlist-list/playlist-list.component.scss
delete mode 100644 userAndAdvertiser/src/app/user/myPlaylists/playlist-list/playlist-list.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/user/myPlaylists/playlist-list/playlist-list.component.ts
delete mode 100644 userAndAdvertiser/src/app/user/myPlaylists/popup-create-or-update-playlist/popup-create-or-update-playlist.component.html
delete mode 100644 userAndAdvertiser/src/app/user/myPlaylists/popup-create-or-update-playlist/popup-create-or-update-playlist.component.scss
delete mode 100644 userAndAdvertiser/src/app/user/myPlaylists/popup-create-or-update-playlist/popup-create-or-update-playlist.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/user/myPlaylists/popup-create-or-update-playlist/popup-create-or-update-playlist.component.ts
delete mode 100644 userAndAdvertiser/src/app/user/myPlaylists/popup-delete-playlist/popup-delete-playlist.component.html
delete mode 100644 userAndAdvertiser/src/app/user/myPlaylists/popup-delete-playlist/popup-delete-playlist.component.scss
delete mode 100644 userAndAdvertiser/src/app/user/myPlaylists/popup-delete-playlist/popup-delete-playlist.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/user/myPlaylists/popup-delete-playlist/popup-delete-playlist.component.ts
delete mode 100644 userAndAdvertiser/src/app/user/myPlaylists/video-list/video-list.component.html
delete mode 100644 userAndAdvertiser/src/app/user/myPlaylists/video-list/video-list.component.scss
delete mode 100644 userAndAdvertiser/src/app/user/myPlaylists/video-list/video-list.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/user/myPlaylists/video-list/video-list.component.ts
delete mode 100644 userAndAdvertiser/src/app/user/myProfil/input-interests-profil/input-interests-profil.component.html
delete mode 100644 userAndAdvertiser/src/app/user/myProfil/input-interests-profil/input-interests-profil.component.scss
delete mode 100644 userAndAdvertiser/src/app/user/myProfil/input-interests-profil/input-interests-profil.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/user/myProfil/input-interests-profil/input-interests-profil.component.ts
delete mode 100644 userAndAdvertiser/src/app/user/myProfil/page-profil-user/page-profil-user.component.html
delete mode 100644 userAndAdvertiser/src/app/user/myProfil/page-profil-user/page-profil-user.component.scss
delete mode 100644 userAndAdvertiser/src/app/user/myProfil/page-profil-user/page-profil-user.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/user/myProfil/page-profil-user/page-profil-user.component.ts
delete mode 100644 userAndAdvertiser/src/app/user/myProfil/popup-update-user/popup-update-user.component.html
delete mode 100644 userAndAdvertiser/src/app/user/myProfil/popup-update-user/popup-update-user.component.scss
delete mode 100644 userAndAdvertiser/src/app/user/myProfil/popup-update-user/popup-update-user.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/user/myProfil/popup-update-user/popup-update-user.component.ts
delete mode 100644 userAndAdvertiser/src/app/user/search/page-search/page-search.component.html
delete mode 100644 userAndAdvertiser/src/app/user/search/page-search/page-search.component.scss
delete mode 100644 userAndAdvertiser/src/app/user/search/page-search/page-search.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/user/search/page-search/page-search.component.ts
delete mode 100644 userAndAdvertiser/src/app/user/search/video-grid/video-grid.component.html
delete mode 100644 userAndAdvertiser/src/app/user/search/video-grid/video-grid.component.scss
delete mode 100644 userAndAdvertiser/src/app/user/search/video-grid/video-grid.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/user/search/video-grid/video-grid.component.ts
delete mode 100644 userAndAdvertiser/src/app/user/utils/components/advert/advert.component.html
delete mode 100644 userAndAdvertiser/src/app/user/utils/components/advert/advert.component.scss
delete mode 100644 userAndAdvertiser/src/app/user/utils/components/advert/advert.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/user/utils/components/advert/advert.component.ts
delete mode 100644 userAndAdvertiser/src/app/user/utils/components/navbar-user/navbar-user.component.html
delete mode 100644 userAndAdvertiser/src/app/user/utils/components/navbar-user/navbar-user.component.scss
delete mode 100644 userAndAdvertiser/src/app/user/utils/components/navbar-user/navbar-user.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/user/utils/components/navbar-user/navbar-user.component.ts
delete mode 100644 userAndAdvertiser/src/app/user/utils/components/popup-add-video-to-playlists/popup-add-video-to-playlists.component.html
delete mode 100644 userAndAdvertiser/src/app/user/utils/components/popup-add-video-to-playlists/popup-add-video-to-playlists.component.scss
delete mode 100644 userAndAdvertiser/src/app/user/utils/components/popup-add-video-to-playlists/popup-add-video-to-playlists.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/user/utils/components/popup-add-video-to-playlists/popup-add-video-to-playlists.component.ts
delete mode 100644 userAndAdvertiser/src/app/user/utils/services/addVideoToPlaylists/add-video-to-playlists.service.spec.ts
delete mode 100644 userAndAdvertiser/src/app/user/utils/services/addVideoToPlaylists/add-video-to-playlists.service.ts
delete mode 100644 userAndAdvertiser/src/app/user/watching/page-watching-video/page-watching-video.component.html
delete mode 100644 userAndAdvertiser/src/app/user/watching/page-watching-video/page-watching-video.component.scss
delete mode 100644 userAndAdvertiser/src/app/user/watching/page-watching-video/page-watching-video.component.spec.ts
delete mode 100644 userAndAdvertiser/src/app/user/watching/page-watching-video/page-watching-video.component.ts
delete mode 100644 userAndAdvertiser/src/app/utils/message/message.service.spec.ts
delete mode 100644 userAndAdvertiser/src/app/utils/message/message.service.ts
delete mode 100644 userAndAdvertiser/src/app/utils/profil/profil.service.spec.ts
delete mode 100644 userAndAdvertiser/src/app/utils/profil/profil.service.ts
delete mode 100644 userAndAdvertiser/src/app/utils/theme/theme.service.spec.ts
delete mode 100644 userAndAdvertiser/src/app/utils/theme/theme.service.ts
delete mode 100644 userAndAdvertiser/src/assets/.gitkeep
delete mode 100644 userAndAdvertiser/src/assets/darkBackground.webp
delete mode 100644 userAndAdvertiser/src/assets/lightBackground.jpg
delete mode 100644 userAndAdvertiser/src/assets/logo.png
delete mode 100644 userAndAdvertiser/src/assets/logo_plateforms/dailymotion.png
delete mode 100644 userAndAdvertiser/src/assets/logo_plateforms/youtube.png
delete mode 100644 userAndAdvertiser/src/assets/play.png
delete mode 100644 userAndAdvertiser/src/assets/profil.png
delete mode 100644 userAndAdvertiser/src/assets/uploadFile.png
delete mode 100644 userAndAdvertiser/src/environments/environment.prod.ts
delete mode 100644 userAndAdvertiser/src/environments/environment.ts
delete mode 100644 userAndAdvertiser/src/favicon.ico
delete mode 100644 userAndAdvertiser/src/index.html
delete mode 100644 userAndAdvertiser/src/main.ts
delete mode 100644 userAndAdvertiser/src/polyfills.ts
delete mode 100644 userAndAdvertiser/src/styles.scss
delete mode 100644 userAndAdvertiser/src/test.ts
delete mode 100644 userAndAdvertiser/tsconfig.app.json
delete mode 100644 userAndAdvertiser/tsconfig.json
delete mode 100644 userAndAdvertiser/tsconfig.spec.json
diff --git a/userAndAdvertiser/.browserslistrc b/userAndAdvertiser/.browserslistrc
deleted file mode 100644
index 427441d..0000000
--- a/userAndAdvertiser/.browserslistrc
+++ /dev/null
@@ -1,17 +0,0 @@
-# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
-# For additional information regarding the format and rule options, please see:
-# https://github.com/browserslist/browserslist#queries
-
-# For the full list of supported browsers by the Angular framework, please see:
-# https://angular.io/guide/browser-support
-
-# You can see what browsers were selected by your queries by running:
-# npx browserslist
-
-last 1 Chrome version
-last 1 Firefox version
-last 2 Edge major versions
-last 2 Safari major versions
-last 2 iOS major versions
-Firefox ESR
-not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.
diff --git a/userAndAdvertiser/.editorconfig b/userAndAdvertiser/.editorconfig
deleted file mode 100644
index 59d9a3a..0000000
--- a/userAndAdvertiser/.editorconfig
+++ /dev/null
@@ -1,16 +0,0 @@
-# Editor configuration, see https://editorconfig.org
-root = true
-
-[*]
-charset = utf-8
-indent_style = space
-indent_size = 2
-insert_final_newline = true
-trim_trailing_whitespace = true
-
-[*.ts]
-quote_type = single
-
-[*.md]
-max_line_length = off
-trim_trailing_whitespace = false
diff --git a/userAndAdvertiser/.gitignore b/userAndAdvertiser/.gitignore
deleted file mode 100644
index de51f68..0000000
--- a/userAndAdvertiser/.gitignore
+++ /dev/null
@@ -1,45 +0,0 @@
-# See http://help.github.com/ignore-files/ for more about ignoring files.
-
-# compiled output
-/dist
-/tmp
-/out-tsc
-# Only exists if Bazel was run
-/bazel-out
-
-# dependencies
-/node_modules
-
-# profiling files
-chrome-profiler-events*.json
-
-# IDEs and editors
-/.idea
-.project
-.classpath
-.c9/
-*.launch
-.settings/
-*.sublime-workspace
-
-# IDE - VSCode
-.vscode/*
-!.vscode/settings.json
-!.vscode/tasks.json
-!.vscode/launch.json
-!.vscode/extensions.json
-.history/*
-
-# misc
-/.sass-cache
-/connect.lock
-/coverage
-/libpeerconnection.log
-npm-debug.log
-yarn-error.log
-testem.log
-/typings
-
-# System Files
-.DS_Store
-Thumbs.db
diff --git a/userAndAdvertiser/README.md b/userAndAdvertiser/README.md
deleted file mode 100644
index d2ab4a3..0000000
--- a/userAndAdvertiser/README.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# UserAndAdvertiser
-
-This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.2.14.
-
-## Development server
-
-Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
-
-## Code scaffolding
-
-Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
-
-## Build
-
-Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory.
-
-## Running unit tests
-
-Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
-
-## Running end-to-end tests
-
-Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.
-
-## Further help
-
-To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
diff --git a/userAndAdvertiser/angular.json b/userAndAdvertiser/angular.json
deleted file mode 100644
index 5e25aaf..0000000
--- a/userAndAdvertiser/angular.json
+++ /dev/null
@@ -1,113 +0,0 @@
-{
- "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
- "version": 1,
- "newProjectRoot": "projects",
- "projects": {
- "userAndAdvertiser": {
- "projectType": "application",
- "schematics": {
- "@schematics/angular:component": {
- "style": "scss"
- },
- "@schematics/angular:application": {
- "strict": true
- }
- },
- "root": "",
- "sourceRoot": "src",
- "prefix": "app",
- "architect": {
- "build": {
- "builder": "@angular-devkit/build-angular:browser",
- "options": {
- "outputPath": "dist/userAndAdvertiser",
- "index": "src/index.html",
- "main": "src/main.ts",
- "polyfills": "src/polyfills.ts",
- "tsConfig": "tsconfig.app.json",
- "inlineStyleLanguage": "scss",
- "assets": [
- "src/favicon.ico",
- "src/assets"
- ],
- "styles": [
- "./node_modules/@angular/material/prebuilt-themes/indigo-pink.css",
- "src/styles.scss",
- "node_modules/bootstrap/scss/bootstrap.scss"
- ],
- "scripts": []
- },
- "configurations": {
- "production": {
- "budgets": [
- {
- "type": "initial",
- "maximumWarning": "500kb",
- "maximumError": "1mb"
- },
- {
- "type": "anyComponentStyle",
- "maximumWarning": "2kb",
- "maximumError": "4kb"
- }
- ],
- "fileReplacements": [
- {
- "replace": "src/environments/environment.ts",
- "with": "src/environments/environment.prod.ts"
- }
- ],
- "outputHashing": "all"
- },
- "development": {
- "buildOptimizer": false,
- "optimization": false,
- "vendorChunk": true,
- "extractLicenses": false,
- "sourceMap": true,
- "namedChunks": true
- }
- },
- "defaultConfiguration": "production"
- },
- "serve": {
- "builder": "@angular-devkit/build-angular:dev-server",
- "configurations": {
- "production": {
- "browserTarget": "userAndAdvertiser:build:production"
- },
- "development": {
- "browserTarget": "userAndAdvertiser:build:development"
- }
- },
- "defaultConfiguration": "development"
- },
- "extract-i18n": {
- "builder": "@angular-devkit/build-angular:extract-i18n",
- "options": {
- "browserTarget": "userAndAdvertiser:build"
- }
- },
- "test": {
- "builder": "@angular-devkit/build-angular:karma",
- "options": {
- "main": "src/test.ts",
- "polyfills": "src/polyfills.ts",
- "tsConfig": "tsconfig.spec.json",
- "karmaConfig": "karma.conf.js",
- "inlineStyleLanguage": "scss",
- "assets": [
- "src/favicon.ico",
- "src/assets"
- ],
- "styles": [
- "src/styles.scss"
- ],
- "scripts": []
- }
- }
- }
- }
- },
- "defaultProject": "userAndAdvertiser"
-}
diff --git a/userAndAdvertiser/karma.conf.js b/userAndAdvertiser/karma.conf.js
deleted file mode 100644
index e82c4ac..0000000
--- a/userAndAdvertiser/karma.conf.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// Karma configuration file, see link for more information
-// https://karma-runner.github.io/1.0/config/configuration-file.html
-
-module.exports = function (config) {
- config.set({
- basePath: '',
- frameworks: ['jasmine', '@angular-devkit/build-angular'],
- plugins: [
- require('karma-jasmine'),
- require('karma-chrome-launcher'),
- require('karma-jasmine-html-reporter'),
- require('karma-coverage'),
- require('@angular-devkit/build-angular/plugins/karma')
- ],
- client: {
- jasmine: {
- // you can add configuration options for Jasmine here
- // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
- // for example, you can disable the random execution with `random: false`
- // or set a specific seed with `seed: 4321`
- },
- clearContext: false // leave Jasmine Spec Runner output visible in browser
- },
- jasmineHtmlReporter: {
- suppressAll: true // removes the duplicated traces
- },
- coverageReporter: {
- dir: require('path').join(__dirname, './coverage/userAndAdvertiser'),
- subdir: '.',
- reporters: [
- { type: 'html' },
- { type: 'text-summary' }
- ]
- },
- reporters: ['progress', 'kjhtml'],
- port: 9876,
- colors: true,
- logLevel: config.LOG_INFO,
- autoWatch: true,
- browsers: ['Chrome'],
- singleRun: false,
- restartOnFileChange: true
- });
-};
diff --git a/userAndAdvertiser/package.json b/userAndAdvertiser/package.json
deleted file mode 100644
index f5a3d69..0000000
--- a/userAndAdvertiser/package.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "name": "user-and-advertiser",
- "version": "0.0.0",
- "scripts": {
- "ng": "ng",
- "start": "ng serve",
- "build": "ng build",
- "watch": "ng build --watch --configuration development",
- "test": "ng test"
- },
- "private": true,
- "dependencies": {
- "@angular/animations": "~12.2.0",
- "@angular/cdk": "^13.1.1",
- "@angular/common": "~12.2.0",
- "@angular/compiler": "~12.2.0",
- "@angular/core": "~12.2.0",
- "@angular/forms": "~12.2.0",
- "@angular/material": "^13.1.1",
- "@angular/platform-browser": "~12.2.0",
- "@angular/platform-browser-dynamic": "~12.2.0",
- "@angular/router": "~12.2.0",
- "bootstrap": "^5.1.3",
- "jquery": "^3.6.0",
- "ng2-charts": "^2.2.3",
- "popper": "^1.0.1",
- "rxjs": "~6.6.0",
- "tslib": "^2.3.0",
- "zone.js": "~0.11.4"
- },
- "devDependencies": {
- "@angular-devkit/build-angular": "~12.2.14",
- "@angular/cli": "~12.2.14",
- "@angular/compiler-cli": "~12.2.0",
- "@types/jasmine": "~3.8.0",
- "@types/node": "^12.11.1",
- "jasmine-core": "~3.8.0",
- "karma": "~6.3.0",
- "karma-chrome-launcher": "~3.1.0",
- "karma-coverage": "~2.0.3",
- "karma-jasmine": "~4.0.0",
- "karma-jasmine-html-reporter": "~1.7.0",
- "typescript": "~4.3.5"
- }
-}
diff --git a/userAndAdvertiser/src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.html b/userAndAdvertiser/src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.html
deleted file mode 100644
index ba7dc4f..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.html
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
Images
-

-
Glisser déposer
-
ou
-
Cliquer pour selectionner
-
-
-
- info
-
-
-
-
-

-
-
- {{ file?.name }}
-
-
- {{ formatBytes(file?.size) }}
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.scss b/userAndAdvertiser/src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.scss
deleted file mode 100644
index 91899f6..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.scss
+++ /dev/null
@@ -1,135 +0,0 @@
-.container {
- width: 450px;
- height: 180px;
- padding: 20px 0px 20px 0px;
- text-align: center;
- border: dashed 1px #979797;
- position: relative;
- margin: 0 auto;
-}
-
-input {
- opacity: 0;
- position: absolute;
- z-index: 2;
- width: 100%;
- height: 100%;
- top: 0;
- left: 0;
-}
-
-
-.fileover {
- animation: shake 1s;
- animation-iteration-count: infinite;
-}
-
-.files-list {
- margin-top: 1.5rem;
-
- .single-file {
- display: flex;
- padding: 0.5rem;
- justify-content: space-between;
- align-items: center;
- border: dashed 1px #979797;
- margin-bottom: 1rem;
-
- img.delete {
- margin-left: 0.5rem;
- cursor: pointer;
- align-self: flex-end;
- }
-
-
- display: flex;
- flex-grow: 1;
-
- .name {
- font-size: 14px;
- font-weight: 500;
- color: #353f4a;
- margin: 0;
- }
-
- .size {
- font-size: 12px;
- font-weight: 500;
- color: #a4a4a4;
- margin: 0;
- margin-bottom: 0.25rem;
- }
-
- .info {
- width: 100%
- }
- }
-}
-
-/* Shake animation */
-@keyframes shake {
- 0% {
- transform: translate(1px, 1px) rotate(0deg);
- }
-
- 10% {
- transform: translate(-1px, -2px) rotate(-1deg);
- }
-
- 20% {
- transform: translate(-3px, 0px) rotate(1deg);
- }
-
- 30% {
- transform: translate(3px, 2px) rotate(0deg);
- }
-
- 40% {
- transform: translate(1px, -1px) rotate(1deg);
- }
-
- 50% {
- transform: translate(-1px, 2px) rotate(-1deg);
- }
-
- 60% {
- transform: translate(-3px, 1px) rotate(0deg);
- }
-
- 70% {
- transform: translate(3px, 1px) rotate(-1deg);
- }
-
- 80% {
- transform: translate(-1px, -1px) rotate(1deg);
- }
-
- 90% {
- transform: translate(1px, 2px) rotate(0deg);
- }
-
- 100% {
- transform: translate(1px, -2px) rotate(-1deg);
- }
-}
-
-
-.progress-cont {
- height: 7px;
- width: 100%;
- border-radius: 4px;
- background-color: #d0d0d0;
- position: relative;
-
- .progress {
- width: 0;
- height: 100%;
- position: absolute;
- z-index: 1;
- top: 0;
- left: 0;
- border-radius: 4px;
- background-color: #4c97cb;
- transition: 0.5s all;
- }
-}
diff --git a/userAndAdvertiser/src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.spec.ts b/userAndAdvertiser/src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.spec.ts
deleted file mode 100644
index e4666b0..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { DragAndDropComponent } from './drag-and-drop.component';
-
-describe('DragAndDropComponent', () => {
- let component: DragAndDropComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ DragAndDropComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(DragAndDropComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.ts b/userAndAdvertiser/src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.ts
deleted file mode 100644
index e626bef..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/drag-and-drop/drag-and-drop.component.ts
+++ /dev/null
@@ -1,93 +0,0 @@
-import {Component, ElementRef, EventEmitter, OnInit, Output, ViewChild} from '@angular/core';
-
-@Component({
- selector: 'app-drag-and-drop',
- templateUrl: './drag-and-drop.component.html',
- styleUrls: ['./drag-and-drop.component.scss']
-})
-export class DragAndDropComponent
-{
- @ViewChild("fileDropRef", { static: false }) fileDropEl: ElementRef;
- info_image = "Vos annonces seront affichées dans un rectangle de rapport 1/5 avec: \n • 1 la largeur du rectangle \n • 5 la hauteur du rectangle" ;
- files: any[] = [];
- @Output() eventEmitter = new EventEmitter();
-
- /**
- * on file drop handler
- */
- onFileDropped($event) {
- this.prepareFilesList($event);
- this.eventEmitter.emit(this.files);
- }
-
- /**
- * handle file from browsing
- */
- fileBrowseHandler(files) {
- this.prepareFilesList(files);
- this.eventEmitter.emit(this.files);
- }
-
- /**
- * Delete file from files list
- * @param index (File index)
- */
- deleteFile(index: number) {
- if (this.files[index].progress < 100) {
- console.log("Upload in progress.");
- return;
- }
- this.files.splice(index, 1);
- this.eventEmitter.emit(this.files);
- }
-
- /**
- * Simulate the upload process
- */
- uploadFilesSimulator(index: number) {
- setTimeout(() => {
- if (index === this.files.length) {
- return;
- } else {
- const progressInterval = setInterval(() => {
- if (this.files[index].progress === 100) {
- clearInterval(progressInterval);
- this.uploadFilesSimulator(index + 1);
- } else {
- this.files[index].progress += 5;
- }
- }, 200);
- }
- }, 1000);
- }
-
- /**
- * Convert Files list to normal array list
- * @param files (Files List)
- */
- prepareFilesList(files: Array) {
- for (const item of files) {
- item.progress = 0;
- this.files.push(item);
- }
- this.fileDropEl.nativeElement.value = "";
- this.uploadFilesSimulator(0);
- }
-
- /**
- * format bytes
- * @param bytes (File size in bytes)
- * @param decimals (Decimals point)
- */
- formatBytes(bytes, decimals = 2) {
- if (bytes === 0) {
- return "0 Bytes";
- }
- const k = 1024;
- const dm = decimals <= 0 ? 0 : decimals;
- const sizes = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
- const i = Math.floor(Math.log(bytes) / Math.log(k));
- return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + " " + sizes[i];
- }
-
-}
diff --git a/userAndAdvertiser/src/app/advertiser/adList/input-interests-ad/input-interests-ad.component.html b/userAndAdvertiser/src/app/advertiser/adList/input-interests-ad/input-interests-ad.component.html
deleted file mode 100644
index 6def6c2..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/input-interests-ad/input-interests-ad.component.html
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
- Sujets
-
-
-
-
-
-
- {{interest}}
-
-
-
-
-
-
-
-
-
-
-
- {{interest}}
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/advertiser/adList/input-interests-ad/input-interests-ad.component.scss b/userAndAdvertiser/src/app/advertiser/adList/input-interests-ad/input-interests-ad.component.scss
deleted file mode 100644
index 2c3a84d..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/input-interests-ad/input-interests-ad.component.scss
+++ /dev/null
@@ -1,16 +0,0 @@
-mat-form-field {
- width: 100%;
- font-size: small;
-}
-
-mat-chip-list {
- font-size: small;
-}
-
-mat-chip {
- font-size: small;
-}
-
-input {
- font-size: small;
-}
diff --git a/userAndAdvertiser/src/app/advertiser/adList/input-interests-ad/input-interests-ad.component.spec.ts b/userAndAdvertiser/src/app/advertiser/adList/input-interests-ad/input-interests-ad.component.spec.ts
deleted file mode 100644
index deae4d3..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/input-interests-ad/input-interests-ad.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { InputInterestsAdComponent } from './input-interests-ad.component';
-
-describe('BarTagsComponent', () => {
- let component: InputInterestsAdComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ InputInterestsAdComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(InputInterestsAdComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/advertiser/adList/input-interests-ad/input-interests-ad.component.ts b/userAndAdvertiser/src/app/advertiser/adList/input-interests-ad/input-interests-ad.component.ts
deleted file mode 100644
index 7ae81aa..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/input-interests-ad/input-interests-ad.component.ts
+++ /dev/null
@@ -1,121 +0,0 @@
-import {Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';
-import {COMMA, ENTER} from "@angular/cdk/keycodes";
-import {FormControl} from "@angular/forms";
-import {Observable} from "rxjs";
-import {map, startWith} from "rxjs/operators";
-import {MatChipInputEvent} from "@angular/material/chips";
-import {MatAutocompleteSelectedEvent} from "@angular/material/autocomplete";
-import {MessageService} from "../../../utils/message/message.service";
-
-
-
-@Component({
- selector: 'app-input-interests-ad',
- templateUrl: './input-interests-ad.component.html',
- styleUrls: ['./input-interests-ad.component.scss']
-})
-export class InputInterestsAdComponent implements OnInit
-{
- selectable = true;
- removable = true;
- separatorKeysCodes: number[] = [ENTER, COMMA];
- formControl = new FormControl();
- filteredInterests: Observable;
- @Input() myInterests: string[] = [];
- allInterests: string[] = [];
- @Output() eventEmitter = new EventEmitter();
- @ViewChild('tagInput') tagInput: ElementRef;
- interestsNotSelected: string[] = [];
-
-
- constructor( private messageService: MessageService ) {}
-
-
- ngOnInit(): void
- {
- this.filteredInterests = this.formControl.valueChanges.pipe(
- startWith(null),
- map((fruit: string | null) => fruit ? this._filter(fruit) : this.interestsNotSelected.slice()));
-
- this.messageService
- .get("misc/getInterests")
- .subscribe( retour => {
-
- if(retour.status !== "success") {
- console.log(retour);
- }
- else {
- this.allInterests = [];
- for(let elt of retour.data)
- {
- this.allInterests.push(elt.interest);
- this.interestsNotSelected.push(elt.interest);
- }
- }
- });
- }
-
-
- add(event: MatChipInputEvent): void
- {
- const value = (event.value || '').trim();
- const index = this.interestsNotSelected.indexOf(value);
- if (value && (index !== -1) && (!this.myInterests.includes(value)))
- {
- this.myInterests.push(value);
- event.chipInput!.clear();
- this.formControl.setValue(null);
- this.eventEmitter.emit(this.myInterests);
- this.interestsNotSelected.splice(index, 1);
- }
- }
-
-
- remove(interest: string): void
- {
- // supprimer 'interest' de 'myInterest'
- const index = this.myInterests.indexOf(interest);
- if (index >= 0) this.myInterests.splice(index, 1);
- this.eventEmitter.emit(this.myInterests);
-
- // remmettre 'interest' dans 'interestsNotSelected'
- if(!this.interestsNotSelected.includes(interest))
- {
- const indexOfAutres = this.interestsNotSelected.indexOf("Autres");
- if(indexOfAutres !== -1)
- {
- this.interestsNotSelected.splice(indexOfAutres, 1);
- if(interest !== "Autres") this.interestsNotSelected.push(interest);
- this.interestsNotSelected.sort();
- this.interestsNotSelected.push("Autres");
- }
- else {
- this.interestsNotSelected.push(interest);
- if(interest !== "Autres") this.interestsNotSelected.sort();
- }
- }
- }
-
-
- selected(event: MatAutocompleteSelectedEvent): void
- {
- const value = event.option.viewValue;
- if(!this.myInterests.includes(value))
- {
- this.myInterests.push(value);
- const index = this.interestsNotSelected.indexOf(value);
- this.interestsNotSelected.splice(index, 1);
- }
- this.tagInput.nativeElement.value = '';
- this.formControl.setValue(null);
- this.eventEmitter.emit(this.myInterests);
- }
-
-
- private _filter(value: string): string[]
- {
- const filterValue = value.toLowerCase();
- return this.interestsNotSelected.filter(fruit => fruit.toLowerCase().includes(filterValue));
- }
-
-}
diff --git a/userAndAdvertiser/src/app/advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component.html b/userAndAdvertiser/src/app/advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component.html
deleted file mode 100644
index 78dd263..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component.html
+++ /dev/null
@@ -1,185 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Filtre
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- visible
- non visible
-
-
-
-
-
-
- Sujets
-
-
- {{formControlInterests.value ? formControlInterests.value[0] : ''}}
- 1">
- (+{{formControlInterests.value.length - 1}} {{formControlInterests.value?.length === 2 ? 'autre' : 'autres'}})
-
-
- {{topping}}
-
-
-
-
-
-
-
-
- Période de création:
-
- Date de début
-
-
- -
-
- Date de fin
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- |
- power_settings_new
- |
-
-
- |
-
-
-
-
- Titre |
-
- {{advert.title}}
- |
-
-
-
-
- Sujets |
-
-
- {{interest}},
- {{interest}}
-
- |
-
-
-
-
- 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.countViews}}
- |
-
-
-
-
- Actions |
-
-
-
-
- |
-
-
-
-
-
-
- | Aucune vidéo ne correspond au filtre: "{{input.value}}" |
-
-
-
-
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component.scss b/userAndAdvertiser/src/app/advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component.scss
deleted file mode 100644
index 370e312..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component.scss
+++ /dev/null
@@ -1,87 +0,0 @@
-.myContainer {
- max-width: 100vw;
- height: 100vh;
- overflow-x: hidden;
- font-size: small;
-}
-
-
-// ----------------------------------------------------------
-
-
-.filtersContainer {
- width: 95%;
- background-color: white;
- padding: 10px 10px 10px 10px;
-}
-
-.myRow {
- margin-left: 1%;
-}
-
-.textFilter {
- width: 50%;
- font-size: medium;
- border-radius: 5px;
-}
-
-.btnAjouter {
- background-color: white;
- border: solid 1px black;
-}
-
-
-// ----------------------------------------------------------
-
-
-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;
-}
-
-
-// --------------------------------------------------------------------
-
-
-// rong gauche
-::ng-deep .mat-slide-toggle-thumb {
- background-color: white !important;
-}
-
-// trait droite
-::ng-deep .mat-slide-toggle-bar {
- background-color: gray !important;
-}
-
-// rond droite
-::ng-deep .mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb {
- background-color: white !important;
-}
-
-// trait gauche
-::ng-deep .mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-bar {
- background-color: cornflowerblue !important;
-}
-
-
-// -------------------------------------------------------------------------
-
-::ng-deep .mat-pseudo-checkbox-checked {
- background-color: black !important;
-}
diff --git a/userAndAdvertiser/src/app/advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component.spec.ts b/userAndAdvertiser/src/app/advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component.spec.ts
deleted file mode 100644
index 9492c6c..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PageAdListAdvertiserComponent } from './page-ad-list-advertiser.component';
-
-describe('PageAdvertiserComponent', () => {
- let component: PageAdListAdvertiserComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PageAdListAdvertiserComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PageAdListAdvertiserComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component.ts b/userAndAdvertiser/src/app/advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component.ts
deleted file mode 100644
index 8797593..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component.ts
+++ /dev/null
@@ -1,304 +0,0 @@
-import {AfterViewInit, Component, OnInit, ViewChild} from '@angular/core';
-import {MatSort} from "@angular/material/sort";
-import {MatTableDataSource} from "@angular/material/table";
-import {MatDialog} from "@angular/material/dialog";
-import {PopupAddOrUpdateAdComponent} from "../popup-add-or-update-ad/popup-add-or-update-ad.component";
-import {MatSnackBar} from "@angular/material/snack-bar";
-import {PopupDeleteAdAdvertiserComponent} from "../popup-delete-ad-advertiser/popup-delete-ad-advertiser.component";
-import {MatPaginator} from "@angular/material/paginator";
-import {PopupVisualizeImagesAdvertiserComponent} from "../popup-visualize-images-advertiser/popup-visualize-images-advertiser.component";
-import {FormControl} from "@angular/forms";
-import {HttpParams} from "@angular/common/http";
-import {ThemeService} from "../../../utils/theme/theme.service";
-import {MessageService} from "../../../utils/message/message.service";
-
-
-
-@Component({
- selector: 'app-page-ad-list-advertiser',
- templateUrl: './page-ad-list-advertiser.component.html',
- styleUrls: ['./page-ad-list-advertiser.component.scss']
-})
-export class PageAdListAdvertiserComponent implements AfterViewInit
-{
- displayedColumns: string[] = [ 'isVisible', 'title', 'interests', 'createdAt', 'updatedAt', 'countViews', 'actions' ];
- tabAdvertWithCountViews: any[] = [];
- dataSource;
- @ViewChild(MatSort) sort: MatSort;
- @ViewChild(MatPaginator) paginator: MatPaginator;
-
- visible: boolean = true;
- noVisible: boolean = true;
- startDate: Date = null;
- endDate: Date = null;
- formControlInterests = new FormControl();
-
- allVideoCategorie = [];
- allInterests: string[] = [];
-
-
- constructor( public themeService: ThemeService,
- public dialog: MatDialog,
- private snackBar: MatSnackBar,
- private messageService: MessageService ) { }
-
-
- ngAfterViewInit(): void
- {
- // Ask interests
- this.messageService
- .get("misc/getInterests")
- .subscribe(ret => this.afterReceivingInterests(ret), err => this.afterReceivingInterests(err) );
-
- // Ask ads
- let params = new HttpParams();
- params = params.append("isActive", true);
- this.messageService
- .get("ad/findAll", params)
- .subscribe(ret => this.afterReceivingAds(ret), err => this.afterReceivingAds(err));
- }
-
-
- afterReceivingInterests(retour: any): void
- {
- if(retour.status !== "success") {
- console.log("afterReceivingInterests");
- console.log(retour);
- }
- else {
- this.allVideoCategorie = retour.data;
- this.allInterests = retour.data.map(x => x.interest);
- this.allInterests.sort();
- }
- }
-
-
- afterReceivingAds(retour: any): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- }
- else {
- if(retour.data.length !== 0)
- {
- for(let advert of retour.data) this.tabAdvertWithCountViews.push(this.advertToAdvertWithCountViews(advert));
- this.dataSource = new MatTableDataSource();
- this.onFilter();
- }
- }
- }
-
-
- applyFilter(event: Event): void
- {
- const filterValue = (event.target as HTMLInputElement).value;
- this.dataSource.filter = filterValue.trim().toLowerCase();
- }
-
-
- onVisualizeImages(advert: any)
- {
- if(advert.images.length !== 0)
- {
- const config = {
- width: '30%',
- height: '90%',
- data: { images: advert.images }
- };
- this.dialog
- .open(PopupVisualizeImagesAdvertiserComponent, config)
- .afterClosed()
- .subscribe(retour => {});
- }
- else {
- const config = { duration: 2000, panelClass: "custom-class" };
- const message = "Cette annonce ne contient aucune image" ;
- this.snackBar.open( message, "", config);
- }
- }
-
-
- onAdd(): void
- {
- const config = {
- width: '75%',
- //height: '80%',
- panelClass: 'custom-dialog-container',
- data: {
- action: "add",
- advert: null,
- allVideoCategorie: this.allVideoCategorie,
- allTitle: this.tabAdvertWithCountViews.map(x => x.title)
- }
- };
- this.dialog
- .open(PopupAddOrUpdateAdComponent, config)
- .afterClosed()
- .subscribe( advertAdded => {
-
- const config = { duration: 1000, panelClass: "custom-class" };
- let message = "" ;
- if((advertAdded === undefined) || (advertAdded === null)) {
- message = "Opération annulée" ;
- }
- else {
- this.tabAdvertWithCountViews.push(this.advertToAdvertWithCountViews(advertAdded));
- this.onFilter();
- message = "L'annonce a bien été ajoutée ✔" ;
- }
- this.snackBar.open( message, "", config);
- });
- }
-
-
- onUpdate(advertToUpdate: any): void
- {
- const config = {
- width: '75%',
- //height: '80%',
- panelClass: 'custom-dialog-container',
- data: {
- action: "update",
- advert: advertToUpdate,
- allVideoCategorie: this.allVideoCategorie,
- allTitle: this.tabAdvertWithCountViews.map(x => x.title)
- }
- };
- this.dialog
- .open(PopupAddOrUpdateAdComponent, config)
- .afterClosed()
- .subscribe( advertUpdated => {
-
- const config = { duration: 1000, panelClass: "custom-class" };
- let message = "" ;
- if((advertUpdated === undefined) || (advertUpdated === null)) {
- message = "Opération annulée" ;
- }
- else {
- const index = this.tabAdvertWithCountViews.findIndex(elt => (elt.id === advertToUpdate.id));
- this.tabAdvertWithCountViews.splice(index, 1, this.advertToAdvertWithCountViews(advertUpdated));
- this.onFilter();
- message = "L'annonce a bien été modifiée ✔" ;
- }
- this.snackBar.open( message, "", config);
- });
- }
-
-
- onDelete(advert: any): void
- {
- const config = {
- data: { advert: advert }
- };
- this.dialog
- .open(PopupDeleteAdAdvertiserComponent, 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 = advert.title + " a bien été supprimée ✔" ;
- }
- this.snackBar.open( message, "", config);
- });
- }
-
-
- onFilter(): void
- {
- if(this.dataSource === null || this.dataSource === undefined) this.dataSource = new MatTableDataSource();
- this.dataSource.data = [];
- for(let advert of this.tabAdvertWithCountViews)
- {
- let valide: boolean = true;
-
- if(advert.isVisible && this.visible) valide = true;
- else if((!advert.isVisible) && this.noVisible) valide = true;
- else valide = false;
-
- if(valide)
- {
- if ((advert.createdAt === null) && (this.startDate !== null)) valide = false;
- else if ((advert.createdAt === null) && (this.endDate !== null)) valide = false;
- else if (this.startDate !== null)
- {
- if(this.startDate.getTime() > advert.createdAt.getTime()) valide = false;
- else if (this.endDate !== null)
- {
- if(this.endDate.getTime() < advert.createdAt.getTime()) valide = false;
- }
- }
- }
-
- if(valide) {
- if(this.formControlInterests.value !== null) {
- for (let interest of this.formControlInterests.value) {
- if (advert.interests.indexOf(interest) === -1) {
- valide = false;
- break;
- }
- }
- }
- }
-
- if(valide) this.dataSource.data.push(advert);
- }
-
- this.dataSource = new MatTableDataSource(this.dataSource.data);
- this.dataSource.sort = this.sort;
- this.dataSource.paginator = this.paginator;
- }
-
-
- onNewStartDate(event): void {
- this.startDate = new Date(event);
- }
-
- onNewEndDate(event): void {
- this.endDate = new Date(event);
- }
-
-
- onSliderIsVisible(advert: any): void
- {
- // il faut envoyer la négation de user.isActive
- this.messageService
- .put("ad/update/"+advert.id, { isVisible: !advert.isVisible })
- .subscribe(
- ret => {},
- err => {
- console.log("onSliderIsVisible");
- console.log(err);
- }
- );
- }
-
-
- advertToAdvertWithCountViews(advert)
- {
- return {
- id: advert.id,
- userId: advert.userId,
- title: advert.title,
- url: advert.url,
- images: advert.images,
- interests: advert.interests.map(x => x.interest),
- comment: advert.comment,
- views: advert.views,
- countViews: advert.views.length,
- isVisible: advert.isVisible,
- isActive: advert.isActive,
- createdAt: advert.createdAt,
- updatedAt: advert.updatedAt,
- }
- }
-
-}
diff --git a/userAndAdvertiser/src/app/advertiser/adList/popup-add-or-update-ad/popup-add-or-update-ad.component.html b/userAndAdvertiser/src/app/advertiser/adList/popup-add-or-update-ad/popup-add-or-update-ad.component.html
deleted file mode 100644
index e3b7986..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/popup-add-or-update-ad/popup-add-or-update-ad.component.html
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
-
{{title}}
-
-
-
-
-
-
-
-
-
-
-
-
-
- Titre annonce
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Visible
-
-
-
-
- Images déjà associées:
-
-
-
-
- {{image.description}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{errorMessage}}
-
-
-
-
-
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/advertiser/adList/popup-add-or-update-ad/popup-add-or-update-ad.component.scss b/userAndAdvertiser/src/app/advertiser/adList/popup-add-or-update-ad/popup-add-or-update-ad.component.scss
deleted file mode 100644
index 3bb2eed..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/popup-add-or-update-ad/popup-add-or-update-ad.component.scss
+++ /dev/null
@@ -1,90 +0,0 @@
-.myContainer1 {
- padding: 10px 10px 0px 25px;
- margin: 0px 0px 0px 0px;
- font-size: small;
-}
-
-
-.myContainer2 {
- padding: 0px 0px 0px 0px;
- margin: 0px 0px 0px 0px;
- overflow-y: hidden;
- overflow-x: hidden;
- -ms-overflow-style: none;
- scrollbar-width: none;
-}
-.myContainer2::-webkit-scrollbar {
- display: none;
-}
-
-
-
-h1 {
- text-align: center;
- font-size: large;
-}
-
-.col-6, .col-8 {
- border-left: solid 1px #a4a4a4;
-}
-
-
-// -------------------------------------------------------------------------
-
-.titleContainer {
- width: 100%;
-}
-
-.commentContainer {
- width: 100%;
-}
-
-.imageContainer {
- border: solid 1px grey;
-}
-
-mat-dialog-actions {
- margin-bottom: 0px;
-}
-
-button {
- font-size: small;
-}
-
-
-// -------------------------------------------------------------------------
-// --- LightTheme ---
-
-// aura
-.lightTheme ::ng-deep .mat-checkbox-ripple .mat-ripple-element {
- background-color: grey !important;
-}
-
-// contenu coche
-.lightTheme ::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-background {
- background-color: black !important;
-}
-
-// indeterminate
-.lightTheme ::ng-deep .mat-checkbox .mat-checkbox-frame {
- border-color: black !important;
- background-color: white !important;
-}
-
-// --- DarkTheme ---
-
-// aura
-.darTheme ::ng-deep .mat-checkbox-ripple .mat-ripple-element {
- background-color: grey !important;
-}
-
-// contenu coche
-.darkTheme ::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-background {
- background-color: black !important;
-}
-
-// indeterminate
-.darkTheme ::ng-deep .mat-checkbox .mat-checkbox-frame {
- border-color: white !important;
- //background-color: white !important;
-}
diff --git a/userAndAdvertiser/src/app/advertiser/adList/popup-add-or-update-ad/popup-add-or-update-ad.component.spec.ts b/userAndAdvertiser/src/app/advertiser/adList/popup-add-or-update-ad/popup-add-or-update-ad.component.spec.ts
deleted file mode 100644
index ba74952..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/popup-add-or-update-ad/popup-add-or-update-ad.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PopupAddOrUpdateAdComponent } from './popup-add-or-update-ad.component';
-
-describe('PopupAddOrUpdateAdComponent', () => {
- let component: PopupAddOrUpdateAdComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PopupAddOrUpdateAdComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PopupAddOrUpdateAdComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/advertiser/adList/popup-add-or-update-ad/popup-add-or-update-ad.component.ts b/userAndAdvertiser/src/app/advertiser/adList/popup-add-or-update-ad/popup-add-or-update-ad.component.ts
deleted file mode 100644
index e927f68..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/popup-add-or-update-ad/popup-add-or-update-ad.component.ts
+++ /dev/null
@@ -1,220 +0,0 @@
-import {Component, Inject, OnInit} from '@angular/core';
-import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog";
-import {MessageService} from "../../../utils/message/message.service";
-import {ThemeService} from "../../../utils/theme/theme.service";
-
-
-
-
-const ADVERT_VIDE = {
- _id: "",
- userId: "",
- title: "",
- url: "",
- images: [],
- interests: [],
- comment: "",
- views: [],
- isVisible: true,
- isActive: true,
- createdAt: new Date(),
- updatedAt: new Date(),
-}
-
-
-@Component({
- selector: 'app-popup-add-or-update-ad',
- templateUrl: './popup-add-or-update-ad.component.html',
- styleUrls: ['./popup-add-or-update-ad.component.scss']
-})
-export class PopupAddOrUpdateAdComponent implements OnInit
-{
- advert: any;
- title: string = "" ;
- allVideoCategorie = [];
- allTitle = [];
-
- tabOfNewImagesBase64 = [];
- tabOfNewImagesName = [];
-
- hasError: boolean = false;
- errorMessage: string = "" ;
-
-
-
- constructor( public dialogRef: MatDialogRef,
- @Inject(MAT_DIALOG_DATA) public data,
- private messageService: MessageService,
- public themeService: ThemeService ) { }
-
-
- ngOnInit(): void
- {
- this.allVideoCategorie = this.data.allVideoCategorie;
- this.allTitle = this.data.allTitle.slice();
- if(this.data.action === "add")
- {
- this.advert = Object.assign({}, ADVERT_VIDE);
- this.advert.images = [];
- this.advert.interests = [];
- this.title = "Ajouter annonce" ;
- }
- else
- {
- this.advert = Object.assign({}, this.data.advert);
- this.advert.interests = this.data.advert.interests.slice();
- this.title = "Modifier annonce" ;
- const indexOldTitle = this.allTitle.findIndex(title => title == this.advert.title);
- this.allTitle.splice(indexOldTitle, 1);
- }
- }
-
-
- onValidate(): void
- {
- this.checkField();
- if(!this.hasError)
- {
- // preparation des donnees
- this.prepareAdvertInterests();
- this.prepareAdvertImages();
-
- // si creation
- if (this.data.action === "add")
- {
- this.messageService
- .post("ad/create", this.advert)
- .subscribe(ret => this.onCreateCallback(ret), err => this.onCreateCallback(err));
- }
- // si update
- else
- {
- const id = this.advert.id;
- Reflect.deleteProperty(this.advert, "id");
- Reflect.deleteProperty(this.advert, "_id");
- this.messageService
- .put("ad/update/" + id, this.advert)
- .subscribe(ret => this.onUpdateCallback(ret, id), err => this.onUpdateCallback(err, id));
- }
- }
- }
-
-
- checkField()
- {
- if(this.advert.title.length === 0) {
- this.errorMessage = "Veuillez remplir le champ 'titre'." ;
- this.hasError = true;
- }
- else if(this.allTitle.includes(this.advert.title)) {
- this.errorMessage = "Ce titre est déjà pris." ;
- this.hasError = true;
- }
- else if((this.advert.images.length === 0) && (this.tabOfNewImagesName.length === 0)) {
- this.errorMessage = "Veuillez uploader au moins une image." ;
- this.hasError = true;
- }
- else {
- this.errorMessage = "";
- this.hasError = false;
- }
- }
-
-
-
- onCreateCallback(retour: any): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- this.dialogRef.close();
- }
- else {
- this.dialogRef.close(retour.data);
- }
- }
-
-
- onUpdateCallback(retour: any, id: string): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- this.dialogRef.close();
- }
- else {
- this.advert.id = id;
- this.dialogRef.close(this.advert);
- }
- }
-
-
- onEventInputTags(myTags: string[]): void
- {
- this.advert.interests = myTags;
- }
-
-
- onRemoveImgAlreadyPresent(image)
- {
- const index = this.advert.images.indexOf(image);
- this.advert.images.splice(index, 1);
- }
-
-
- onReceiveNewImages(files: any): void
- {
- this.tabOfNewImagesBase64 = [];
- this.tabOfNewImagesName = [];
- if(files)
- {
- for(let file of files)
- {
- if(file)
- {
- const reader = new FileReader();
- reader.onload = this.handleReaderLoaded.bind(this);
- this.tabOfNewImagesName.push(file.name)
- reader.readAsBinaryString(file);
- }
- }
- }
- }
- handleReaderLoaded(e)
- {
- this.tabOfNewImagesBase64.push('data:image/png;base64,' + btoa(e.target.result))
- }
-
-
- // Met bien en forme les "images" avant d'être envoyer
- prepareAdvertImages(): void
- {
- for(let i=0; i
- Êtes-vous sûr de vouloir supprimer l'annonce {{advert.title}} ?
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.scss b/userAndAdvertiser/src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.scss
deleted file mode 100644
index e69de29..0000000
diff --git a/userAndAdvertiser/src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.spec.ts b/userAndAdvertiser/src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.spec.ts
deleted file mode 100644
index 632a177..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PopupDeleteAdAdvertiserComponent } from './popup-delete-ad-advertiser.component';
-
-describe('PopupDeleteAdComponent', () => {
- let component: PopupDeleteAdAdvertiserComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PopupDeleteAdAdvertiserComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PopupDeleteAdAdvertiserComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.ts b/userAndAdvertiser/src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.ts
deleted file mode 100644
index c137557..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-import {Component, Inject, OnInit} from '@angular/core';
-import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog";
-import {MessageService} from "../../../utils/message/message.service";
-
-
-
-@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: any;
-
-
- constructor( public dialogRef: MatDialogRef,
- @Inject(MAT_DIALOG_DATA) public data,
- private messageService: MessageService) { }
-
-
- ngOnInit(): void
- {
- this.advert = this.data.advert;
- }
-
-
- onValidate(): void
- {
- this.messageService
- .delete("ad/delete/"+this.advert.id)
- .subscribe(ret => this.onValidateCallback(ret), err => this.onValidateCallback(err));
- }
-
-
- onValidateCallback(retour: any): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- this.dialogRef.close();
- }
- else {
- this.dialogRef.close(true);
- }
- }
-
-}
diff --git a/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.html b/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.html
deleted file mode 100644
index a768258..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.html
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
-
{{advert.title}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
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/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.scss b/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.scss
deleted file mode 100644
index 3e00dee..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.scss
+++ /dev/null
@@ -1,28 +0,0 @@
-.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/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.spec.ts b/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.spec.ts
deleted file mode 100644
index 56aedbc..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PopupVisualizeAdAdvertiserComponent } from './popup-visualize-ad-advertiser.component';
-
-describe('PopupVisualizeAdComponent', () => {
- let component: PopupVisualizeAdAdvertiserComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PopupVisualizeAdAdvertiserComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PopupVisualizeAdAdvertiserComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.ts b/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.ts
deleted file mode 100644
index 80f5e09..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import {Component, Inject, OnInit} from '@angular/core';
-import {MAT_DIALOG_DATA, MatDialog, MatDialogRef} from "@angular/material/dialog";
-import {ThemeService} from "../../../utils/theme/theme.service";
-
-
-
-@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: any;
-
- constructor( public dialogRef: MatDialogRef,
- @Inject(MAT_DIALOG_DATA) public data,
- public themeService: ThemeService,
- public dialog: MatDialog ) { }
-
- ngOnInit(): void
- {
- this.advert = this.data.advert;
- }
-
-}
diff --git a/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.html b/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.html
deleted file mode 100644
index dfbc2fe..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.html
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.scss b/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.scss
deleted file mode 100644
index eb60d48..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-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/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.spec.ts b/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.spec.ts
deleted file mode 100644
index 25da0db..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PopupVisualizeImagesAdvertiserComponent } from './popup-visualize-images-advertiser.component';
-
-describe('PopupVisualizeImagesComponent', () => {
- let component: PopupVisualizeImagesAdvertiserComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PopupVisualizeImagesAdvertiserComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PopupVisualizeImagesAdvertiserComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.ts b/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.ts
deleted file mode 100644
index 59e7c3d..0000000
--- a/userAndAdvertiser/src/app/advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-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 = [];
- index: number = 0;
- nbImage: number = 0;
-
-
- constructor( public dialogRef: MatDialogRef,
- @Inject(MAT_DIALOG_DATA) public data ) { }
-
-
- ngOnInit(): void
- {
- this.tabImages = this.data.images;
- this.nbImage = this.tabImages.length;
- }
-
- onPrecedent(): void
- {
- if(this.index !== 0) this.index -= 1;
- }
-
- onSuivant(): void
- {
- if(this.index !== (this.nbImage-1)) this.index += 1;
- }
-
-}
diff --git a/userAndAdvertiser/src/app/advertiser/myProfil/page-profil-advertiser/page-profil-advertiser.component.html b/userAndAdvertiser/src/app/advertiser/myProfil/page-profil-advertiser/page-profil-advertiser.component.html
deleted file mode 100644
index 9af3317..0000000
--- a/userAndAdvertiser/src/app/advertiser/myProfil/page-profil-advertiser/page-profil-advertiser.component.html
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
![]()
-
-
-
-
-
Entreprise:
-
{{advertiser.company}}
-
-
-
-
-
Pseudo:
-
{{advertiser.login}}
-
-
-
-
-
Mail:
-
{{advertiser.email}}
-
-
-
-
-
Date de création:
-
{{advertiser.createdAt | date:'dd/LL/YYYY'}}
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/advertiser/myProfil/page-profil-advertiser/page-profil-advertiser.component.scss b/userAndAdvertiser/src/app/advertiser/myProfil/page-profil-advertiser/page-profil-advertiser.component.scss
deleted file mode 100644
index 966c9a2..0000000
--- a/userAndAdvertiser/src/app/advertiser/myProfil/page-profil-advertiser/page-profil-advertiser.component.scss
+++ /dev/null
@@ -1,61 +0,0 @@
-.myContainer {
- max-width: 100vw;
- height: 100vh;
- overflow-x: hidden;
-}
-
-
-.boite {
- margin-left: auto;
- margin-right: auto;
- width: 25%;
- margin-top: 10vh;
- 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;
-}
-
-
-.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;
-}
-
-
-.btnContainer {
- text-align: center;
- margin-top: 40px;
-}
-.myBtn {
- border: solid 1px black;
- background-color: white;
-}
diff --git a/userAndAdvertiser/src/app/advertiser/myProfil/page-profil-advertiser/page-profil-advertiser.component.spec.ts b/userAndAdvertiser/src/app/advertiser/myProfil/page-profil-advertiser/page-profil-advertiser.component.spec.ts
deleted file mode 100644
index ebb9617..0000000
--- a/userAndAdvertiser/src/app/advertiser/myProfil/page-profil-advertiser/page-profil-advertiser.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PageProfilAdvertiserComponent } from './page-profil-advertiser.component';
-
-describe('PageProfilAdvertiserComponent', () => {
- let component: PageProfilAdvertiserComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PageProfilAdvertiserComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PageProfilAdvertiserComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/advertiser/myProfil/page-profil-advertiser/page-profil-advertiser.component.ts b/userAndAdvertiser/src/app/advertiser/myProfil/page-profil-advertiser/page-profil-advertiser.component.ts
deleted file mode 100644
index ee16328..0000000
--- a/userAndAdvertiser/src/app/advertiser/myProfil/page-profil-advertiser/page-profil-advertiser.component.ts
+++ /dev/null
@@ -1,89 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import {MatDialog} from "@angular/material/dialog";
-import {MatSnackBar} from "@angular/material/snack-bar";
-import {PopupUpdateAdvertiserComponent} from "../popup-update-advertiser/popup-update-advertiser.component";
-import {ThemeService} from "../../../utils/theme/theme.service";
-import {MessageService} from "../../../utils/message/message.service";
-import {ProfilService} from "../../../utils/profil/profil.service";
-
-
-
-@Component({
- selector: 'app-page-profil-advertiser',
- templateUrl: './page-profil-advertiser.component.html',
- styleUrls: ['./page-profil-advertiser.component.scss']
-})
-export class PageProfilAdvertiserComponent implements OnInit
-{
- advertiser = {
- _id: "",
- login: "",
- hashPass: "",
- email: "",
- role: {
- name: "advertiser",
- permission: 5,
- isAccepted: true,
- },
- profileImageUrl: "",
- dateOfBirth: null,
- gender: "man",
- interests: [],
- company: "",
- isActive: true,
- createdAt: new Date(),
- updatedAt: new Date(),
- lastConnexion: null
- };
-
-
- constructor( public themeService: ThemeService,
- public dialog: MatDialog,
- private snackBar: MatSnackBar,
- private messageService: MessageService,
- private profilService: ProfilService ) { }
-
-
- ngOnInit(): void
- {
- this.messageService
- .get( "user/findOne/"+this.profilService.getId())
- .subscribe( retour => this.ngOnInitCallback(retour), err => this.ngOnInitCallback(err) )
- }
-
-
- ngOnInitCallback(retour: any)
- {
- if(retour.status !== "success") {
- console.log(retour);
- }
- else {
- this.advertiser = retour.data;
- }
- }
-
-
- onModifier()
- {
- const config = {
- width: '25%',
- data: { advertiser: this.advertiser }
- };
- this.dialog
- .open(PopupUpdateAdvertiserComponent, 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.advertiser = retour;
- }
- });
- }
-
-}
diff --git a/userAndAdvertiser/src/app/advertiser/myProfil/popup-update-advertiser/popup-update-advertiser.component.html b/userAndAdvertiser/src/app/advertiser/myProfil/popup-update-advertiser/popup-update-advertiser.component.html
deleted file mode 100644
index 4951e5c..0000000
--- a/userAndAdvertiser/src/app/advertiser/myProfil/popup-update-advertiser/popup-update-advertiser.component.html
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
-
-
-
![]()
-
-
-
-
-
-
-
-
- Entreprise
-
-
-
-
-
- Pseudo
-
-
-
-
-
-
-
-
- Modifier mot de passe:
-
-
-
-
-
-
-
- Nouveau mot de passe
-
-
-
-
-
- Confirmation nouveau mot de passe
-
-
-
-
-
-
-
-
-
-
- {{errorMessage}}
-
-
-
-
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/advertiser/myProfil/popup-update-advertiser/popup-update-advertiser.component.scss b/userAndAdvertiser/src/app/advertiser/myProfil/popup-update-advertiser/popup-update-advertiser.component.scss
deleted file mode 100644
index 1968e90..0000000
--- a/userAndAdvertiser/src/app/advertiser/myProfil/popup-update-advertiser/popup-update-advertiser.component.scss
+++ /dev/null
@@ -1,33 +0,0 @@
-.boite {
- font-size: small;
-}
-
-button {
- font-size: small;
-}
-
-img {
- margin: 0px 0px 10px 0px;
- width: 5vw;
- height: 5vw;
- border: solid 2px black;
- border-radius: 50%;
- font-size: xxx-large;
-}
-
-// -------------------------------------------------------------------------
-
-// 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 {
- background-color: white !important;
-}
diff --git a/userAndAdvertiser/src/app/advertiser/myProfil/popup-update-advertiser/popup-update-advertiser.component.spec.ts b/userAndAdvertiser/src/app/advertiser/myProfil/popup-update-advertiser/popup-update-advertiser.component.spec.ts
deleted file mode 100644
index dde7ef9..0000000
--- a/userAndAdvertiser/src/app/advertiser/myProfil/popup-update-advertiser/popup-update-advertiser.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PopupUpdateAdvertiserComponent } from './popup-update-advertiser.component';
-
-describe('PopupUpdateAdvertiserComponent', () => {
- let component: PopupUpdateAdvertiserComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PopupUpdateAdvertiserComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PopupUpdateAdvertiserComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/advertiser/myProfil/popup-update-advertiser/popup-update-advertiser.component.ts b/userAndAdvertiser/src/app/advertiser/myProfil/popup-update-advertiser/popup-update-advertiser.component.ts
deleted file mode 100644
index b93fdef..0000000
--- a/userAndAdvertiser/src/app/advertiser/myProfil/popup-update-advertiser/popup-update-advertiser.component.ts
+++ /dev/null
@@ -1,124 +0,0 @@
-import {Component, Inject, OnInit} from '@angular/core';
-import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog";
-import {MessageService} from "../../../utils/message/message.service";
-import {ProfilService} from "../../../utils/profil/profil.service";
-
-
-
-@Component({
- selector: 'app-popup-update-advertiser',
- templateUrl: './popup-update-advertiser.component.html',
- styleUrls: ['./popup-update-advertiser.component.scss']
-})
-export class PopupUpdateAdvertiserComponent implements OnInit
-{
- advertiserCopy;
- newPassword: string = "";
- confirmNewPassword: string = "" ;
- changePassword: boolean = false ;
- hasError: boolean = false;
- errorMessage: string = "" ;
-
-
- constructor( public dialogRef: MatDialogRef,
- @Inject(MAT_DIALOG_DATA) public data,
- private messageService: MessageService,
- private profilService: ProfilService ) { }
-
-
- ngOnInit(): void
- {
- const advertiser0 = this.data.advertiser;
- this.advertiserCopy = {
- _id: advertiser0._id,
- login: advertiser0.login,
- hashPass: advertiser0.hashPass,
- email: advertiser0.email,
- role: {
- name: advertiser0.role.name,
- permission: advertiser0.role.permission,
- isAccepted: advertiser0.role.isAccepted,
- },
- profileImageUrl: advertiser0.profileImageUrl,
- dateOfBirth: advertiser0.dateOfBirth,
- gender: advertiser0.gender,
- interests: [],
- company: advertiser0.company,
- isActive: advertiser0.isActive,
- createdAt: advertiser0.createdAt,
- updatedAt: advertiser0.updatedAt,
- lastConnexion: new Date()
- };
- for(let interest of advertiser0.interests) this.advertiserCopy.interests.push(interest);
- }
-
-
- onValider()
- {
- this.checkField();
- if(!this.hasError)
- {
- if(this.changePassword) this.advertiserCopy.hashPass = this.newPassword;
- const data = {
- login: this.advertiserCopy.login,
- hashPass: this.advertiserCopy.hashPass,
- email: this.advertiserCopy.email,
- profileImageUrl: this.advertiserCopy.profileImageUrl,
- company: this.advertiserCopy.company
- };
- this.messageService
- .put("user/update/"+this.profilService.getId(), data)
- .subscribe( ret => this.onValiderCallback(ret), err => this.onValiderCallback(err) );
- }
- }
-
-
- onValiderCallback(retour: any)
- {
- if(retour.status !== "success") {
- console.log(retour);
- this.dialogRef.close(null);
- }
- else {
- this.profilService.setProfileImageUrl(this.advertiserCopy.profileImageUrl);
- this.dialogRef.close(this.advertiserCopy);
- }
- }
-
-
- checkField()
- {
- if(this.advertiserCopy.login.length === 0) {
- this.errorMessage = "Veuillez remplir le champ 'pseudo'" ;
- this.hasError = true;
- }
- else if(this.advertiserCopy.email.length === 0) {
- this.errorMessage = "Veuillez remplir le champ 'email'" ;
- this.hasError = true;
- }
- else if(!this.isValidEmail(this.advertiserCopy.email)) {
- this.errorMessage = "Email invalide" ;
- this.hasError = true;
- }
- else if((this.changePassword) && (this.newPassword.length === 0)) {
- this.errorMessage = "Veuillez remplir le champ 'mot de passe'" ;
- this.hasError = true;
- }
- else if((this.changePassword) && (this.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);
- }
-
-}
diff --git a/userAndAdvertiser/src/app/advertiser/pages-popularity/pages-popularity.component.html b/userAndAdvertiser/src/app/advertiser/pages-popularity/pages-popularity.component.html
deleted file mode 100644
index 62ae0e1..0000000
--- a/userAndAdvertiser/src/app/advertiser/pages-popularity/pages-popularity.component.html
+++ /dev/null
@@ -1,94 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
Filtre
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- début
-
-
- -
-
-
-
- fin
-
-
- -
-
-
-
- pas d'affichage
-
-
- -
-
-
-
- unité du pas d'affichage
-
- jour
- semaine
- mois
-
-
-
-
-
-
-
- 0">
- {{coupleNameViews.name}},
-
-
- {{coupleNameViews.name}}
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/advertiser/pages-popularity/pages-popularity.component.scss b/userAndAdvertiser/src/app/advertiser/pages-popularity/pages-popularity.component.scss
deleted file mode 100644
index 00fb9e3..0000000
--- a/userAndAdvertiser/src/app/advertiser/pages-popularity/pages-popularity.component.scss
+++ /dev/null
@@ -1,53 +0,0 @@
-.myContainer {
- font-size: small;
- max-width: 100vw;
- height: 100vh;
- overflow-x: hidden;
- overflow-y: scroll;
-}
-
-input {
- font-size: small;
- width: 140px;
-}
-
-.filtersContainer {
- background-color: white;
- width: 60%;
- margin: 50px 50px 50px 50px;
- padding: 20px 20px 20px 20px;
-}
-
-.chartContainer {
- background-color: white;
- border: solid 1px black;
- padding: 10px 10px 10px 10px;
- margin: 50px 50px 50px 50px;
-}
-
-
-// ---------------------------------------------
-// periode
-
-.periode {
- padding: 10px 10px 0px 10px;
-}
-
-.periode .titleContainer {
- text-align: right;
- border-right: solid 1px #dcdcdc;
- font-weight: bold;
-}
-
-.btnToutSelectionner {
- font-size: small;
-}
-.btnToutDeselectionner {
- font-size: small;
-}
-
-// -------------------------------------------------------------------------
-
-::ng-deep .mat-pseudo-checkbox-checked {
- background-color: black !important;
-}
diff --git a/userAndAdvertiser/src/app/advertiser/pages-popularity/pages-popularity.component.spec.ts b/userAndAdvertiser/src/app/advertiser/pages-popularity/pages-popularity.component.spec.ts
deleted file mode 100644
index f9ff236..0000000
--- a/userAndAdvertiser/src/app/advertiser/pages-popularity/pages-popularity.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PagesPopularityComponent } from './pages-popularity.component';
-
-describe('SubjectsPopularityComponent', () => {
- let component: PagesPopularityComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PagesPopularityComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PagesPopularityComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/advertiser/pages-popularity/pages-popularity.component.ts b/userAndAdvertiser/src/app/advertiser/pages-popularity/pages-popularity.component.ts
deleted file mode 100644
index 298ec8d..0000000
--- a/userAndAdvertiser/src/app/advertiser/pages-popularity/pages-popularity.component.ts
+++ /dev/null
@@ -1,304 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import {FormControl} from "@angular/forms";
-import {ChartDataSets} from "chart.js";
-import {Label} from "ng2-charts";
-import { Router} from "@angular/router";
-import {HttpParams} from "@angular/common/http";
-import {ThemeService} from "../../utils/theme/theme.service";
-import {MessageService} from "../../utils/message/message.service";
-
-
-
-interface CoupleNameViews {
- name: string,
- views: Date[],
-}
-
-
-
-@Component({
- selector: 'app-subjects-popularity',
- templateUrl: './pages-popularity.component.html',
- styleUrls: ['./pages-popularity.component.scss']
-})
-export class PagesPopularityComponent implements OnInit
-{
- formControl: FormControl = new FormControl();
- allCoupleNameViews: CoupleNameViews[] = [];
-
- allInterests: string[] = [];
-
- startDate: Date = null;
- endDate: Date = null;
- step: number = 1;
- stepUnity: string = "jour" ;
-
- oneDay: number = 24*60*60*1000;
- oneWeek: number = 7*24*60*60*1000;
-
- lineChartData: ChartDataSets[] = [];
- lineChartLabels: Label[] = [];
- chartOptions: any = {
- responsive: true,
- scales: {
- yAxes: [{ display: true, scaleLabel: { display: true, labelString: "vues" } }],
- xAxes: [{ scaleLabel: { display: true, labelString: "temps" } }],
- }
- };
-
- isDisplayable: boolean = false;
-
-
- constructor( private router: Router,
- public themeService: ThemeService,
- private messageService: MessageService ) {}
-
-
- // -----------------------------------------------------------------------------------------------------
-
-
- ngOnInit(): void
- {
- // Sera excuté si on est sur la page 'adsPopularity'
- // Remplie l'attribut 'allCoupleNameViews'
- if(this.router.url.includes("ads"))
- {
- let params = new HttpParams();
- params = params.append("isActive", true);
- this.messageService
- .get("ad/findAll", params )
- .subscribe(ret => this.afterReceivingAds(ret), err => this.afterReceivingAds(err));
- }
-
- // Sera excuté si on est sur la page 'subjectsPopularity'
- // Remplie l'attribut 'allCoupleNameViews'
- else if(this.router.url.includes("subjects"))
- {
- this.messageService
- .get("misc/getInterests")
- .subscribe( retour => {
-
- if(retour.status !== "success") {
- console.log(retour);
- }
- else {
- this.allInterests = retour.data.map(x => x.interest);
- this.allInterests.sort();
- this.messageService
- .get("video/findAll")
- .subscribe(ret => this.afterReceivingVideos(ret), err => this.afterReceivingVideos(err));
- }
- });
- }
- }
-
-
- // Callback: Sera excuté si on est sur la page 'adsPopularity'
- afterReceivingAds(retour: any): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- }
- else {
- const allAdverts = retour.data;
- for(let advert of allAdverts)
- {
- let couple = {name: advert.title, views: advert.views }
- this.allCoupleNameViews.push(couple);
- }
-
- this.formControl = new FormControl(this.allCoupleNameViews);
- this.onApplyFilter();
- }
- }
-
-
- // Callback: Sera excuté si on est sur la page 'subjectsPopularity'
- afterReceivingVideos(retour: any): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- }
- else {
- const allVideos = retour.data;
- let myMap: Map = new Map();
-
- // parcours des interest de chaque video
- for(let video of allVideos)
- {
- const key = video.interest;
- if(!myMap.has(key)) myMap.set(key, video.watchedDates);
- else {
- let tabDate = myMap.get(key);
- for(let date0 of video.watchedDates) tabDate = this.insertInOrder(tabDate, date0);
- myMap.set(key, tabDate);
- }
- }
-
- // parcours les interest qui n'ont pas p été vu dans les videos
- for(let interest of this.allInterests)
- {
- if(!myMap.has(interest)) myMap.set(interest, []);
- }
-
- // parcours de la map pour remplir 'allCoupleNameViews'
- for(const [key, value] of myMap.entries())
- {
- let couple = {name: key, views: value }
- this.allCoupleNameViews.push(couple);
- }
-
- this.formControl = new FormControl(this.allCoupleNameViews);
- this.onApplyFilter();
- }
- }
-
-
- // -----------------------------------------------------------------------------------------------------
-
-
- // Applique le filtre
- onApplyFilter(): void
- {
- // --- initialisation ---
- this.lineChartData = [];
- this.lineChartLabels = [];
-
- if(this.step <= 0) this.step = 0;
- if((this.endDate === null) || (this.endDate === undefined)) this.endDate = new Date();
- if((this.startDate === null) || (this.startDate === undefined)) this.startDate = new Date(this.endDate.getTime() - this.oneWeek); // date d'il y a une semaine
-
- const startTime = this.startDate.getTime();
- const endTime = this.endDate.getTime();
-
-
- // --- remplissage de 'lineChartLabels' ---
- let dataWithZeros = [];
- let time = startTime;
- const intervals = [];
- while(time <= endTime)
- {
- dataWithZeros.push(0);
- this.lineChartLabels.push(this.getLabel(new Date(time)));
- intervals.push(time);
- time = this.addStep(time);
- }
- intervals.push(time);
-
-
- // --- remplissage de 'lineChartLabels' ---
- for(let coupleNameViews of this.formControl.value)
- {
- let data = dataWithZeros.slice();
- let label = coupleNameViews.name;
- let index = 0;
-
- for(let date0 of coupleNameViews.views)
- {
- const time0 = (new Date(date0)).getTime();
-
- if(time0 > endTime) break;
-
- if((startTime <= time0) && (time0 <= endTime))
- {
- while((index < intervals.length) && (time0 >= intervals[index])) index += 1;
- index = index - 1;
- data[index] += 1;
- }
- }
-
- this.lineChartData.push({"data": data.slice(), "label": label});
- }
- this.isDisplayable = true;
- }
-
-
- onNewStartDate(event): void {
- this.startDate = new Date(event);
- }
-
-
- onNewEndDate(event): void {
- this.endDate = new Date(event);
- }
-
-
- // Renvoie le bon label pour le graph
- getLabel(date0: Date): string
- {
- if((this.stepUnity === 'jour') && (this.step === 1))
- {
- return date0.toLocaleDateString();
- }
- else {
- const time2 = this.addStep((new Date(date0)).getTime()) - this.oneDay;
- let date2 = new Date(time2);
- return date0.toLocaleDateString() + " à " + date2.toLocaleDateString();
- }
- }
-
-
- // Ajoute le bon pas à la date 'new Date(time)'
- addStep(time: number): number
- {
- let newDate;
-
- if(this.stepUnity === 'jour') {
- newDate = new Date(time + this.step*this.oneDay);
- }
- else if(this.stepUnity === 'semaine') {
- newDate = new Date(time + this.step*this.oneWeek);
- }
- else
- {
- const oldDate = new Date(time);
-
- let newMonth = oldDate.getMonth() + this.step;
- const newYear = oldDate.getFullYear() + (newMonth / 12);
- newMonth = newMonth % 12;
- const day = this.startDate.getDate();
-
- if((newMonth === 1) && ([29, 30, 31].includes(day))) { // si fevrier et si jour n'existe pas
- newDate = new Date(newYear, newMonth, 28);
- }
- else if((day === 31) && ([3, 5, 9, 10].includes(newMonth))) { // si 31 et mois à 30 jours
- newDate = new Date(newYear, newMonth, 30);
- }
- else {
- newDate = new Date(newYear, newMonth, day);
- }
- }
-
- const _1h = 60*60*1000;
- if(newDate.getHours() === 23) return newDate.getTime() + _1h;
- else if(newDate.getHours() === 1) return newDate.getTime() - _1h;
- else return newDate.getTime();
- }
-
-
- // Insere la date0 dans le tableau tabDate par ordre croissant
- insertInOrder(tabDate: Date[], date0: Date): Date[]
- {
- let i = 0;
- let n = tabDate.length;
- let time0 = (new Date(date0)).getTime();
-
- while((i (new Date(tabDate[i])).getTime())) i++;
- if(i === n) tabDate.push(date0);
- else tabDate.splice(i, 0, date0);
-
- return tabDate;
- }
-
-
- onSelectAll(): void
- {
- this.formControl = new FormControl(this.allCoupleNameViews);
- }
-
- onDeSelectAll(): void
- {
- this.formControl = new FormControl([]);
- }
-
-}
diff --git a/userAndAdvertiser/src/app/advertiser/utils/dragAndDrop/drag-and-drop.directive.spec.ts b/userAndAdvertiser/src/app/advertiser/utils/dragAndDrop/drag-and-drop.directive.spec.ts
deleted file mode 100644
index 60cf3d6..0000000
--- a/userAndAdvertiser/src/app/advertiser/utils/dragAndDrop/drag-and-drop.directive.spec.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { DragAndDropDirective } from './drag-and-drop.directive';
-
-describe('DragAndDropDirective', () => {
- it('should create an instance', () => {
- const directive = new DragAndDropDirective();
- expect(directive).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/advertiser/utils/dragAndDrop/drag-and-drop.directive.ts b/userAndAdvertiser/src/app/advertiser/utils/dragAndDrop/drag-and-drop.directive.ts
deleted file mode 100644
index b3d1162..0000000
--- a/userAndAdvertiser/src/app/advertiser/utils/dragAndDrop/drag-and-drop.directive.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import {Directive, EventEmitter, HostBinding, HostListener, Output} from '@angular/core';
-
-@Directive({
- selector: '[appDragAndDrop]'
-})
-export class DragAndDropDirective
-{
- @HostBinding('class.fileover') fileOver: boolean;
- @Output() fileDropped = new EventEmitter();
-
- // Dragover listener
- @HostListener('dragover', ['$event']) onDragOver(evt) {
- evt.preventDefault();
- evt.stopPropagation();
- this.fileOver = true;
- }
-
- // Dragleave listener
- @HostListener('dragleave', ['$event']) public onDragLeave(evt) {
- evt.preventDefault();
- evt.stopPropagation();
- this.fileOver = false;
- }
-
- // Drop listener
- @HostListener('drop', ['$event']) public ondrop(evt) {
- evt.preventDefault();
- evt.stopPropagation();
- this.fileOver = false;
- let files = evt.dataTransfer.files;
- if (files.length > 0) {
- this.fileDropped.emit(files);
- }
- }
-
-}
diff --git a/userAndAdvertiser/src/app/advertiser/utils/navbar-advertiser/navbar-advertiser.component.html b/userAndAdvertiser/src/app/advertiser/utils/navbar-advertiser/navbar-advertiser.component.html
deleted file mode 100644
index da5e898..0000000
--- a/userAndAdvertiser/src/app/advertiser/utils/navbar-advertiser/navbar-advertiser.component.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
diff --git a/userAndAdvertiser/src/app/advertiser/utils/navbar-advertiser/navbar-advertiser.component.scss b/userAndAdvertiser/src/app/advertiser/utils/navbar-advertiser/navbar-advertiser.component.scss
deleted file mode 100644
index 285d629..0000000
--- a/userAndAdvertiser/src/app/advertiser/utils/navbar-advertiser/navbar-advertiser.component.scss
+++ /dev/null
@@ -1,80 +0,0 @@
-.navbar {
- background-color: black;
- height: 60px;
- font-size: medium;
- color: white;
-}
-
-
-.navbar-expand-lg {
- border-bottom: solid;
- border-color: white;
- border-bottom-width: 2px;
-}
-
-
-// PolyNotFound
-.navbar-brand {
- font-family: cursive;
- font-weight: bold;
- font-size: x-large;
- margin-left: 15px;
- color: white;
-}
-
-
-.monLi {
- margin: 0px 10px 0px 10px;
-}
-
-
-.nav-link {
- color: white;
-}
-.nav-link:hover {
- color: grey;
-}
-.myActiveLink {
- text-decoration: underline;
-}
-
-
-.btnDeconnexion {
- font-size: medium;
- margin: 0px 10px 0px 10px
-}
-.btnDeconnexion:hover {
- color: grey;
-}
-
-
-img {
- border: solid 2px white;
- border-radius: 50px;
- margin: 0px 10px 0px 15px;
- width: 40px;
- height: 40px;
-}
-img:hover {
- cursor: pointer;
-}
-
-
-// --------------------------------------------------------------------
-
-
-::ng-deep .mat-slide-toggle-thumb {
- background-color: #c8c8c8;
-}
-
-::ng-deep .mat-slide-toggle-bar {
- background-color: #ffffff;
-}
-
-::ng-deep .mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb {
- background-color: #ffffff;
-}
-
-::ng-deep .mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-bar {
- background-color: #646464;
-}
diff --git a/userAndAdvertiser/src/app/advertiser/utils/navbar-advertiser/navbar-advertiser.component.spec.ts b/userAndAdvertiser/src/app/advertiser/utils/navbar-advertiser/navbar-advertiser.component.spec.ts
deleted file mode 100644
index fb00a09..0000000
--- a/userAndAdvertiser/src/app/advertiser/utils/navbar-advertiser/navbar-advertiser.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { NavbarAdvertiserComponent } from './navbar-advertiser.component';
-
-describe('NavbarAdvertiserComponent', () => {
- let component: NavbarAdvertiserComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ NavbarAdvertiserComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(NavbarAdvertiserComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/advertiser/utils/navbar-advertiser/navbar-advertiser.component.ts b/userAndAdvertiser/src/app/advertiser/utils/navbar-advertiser/navbar-advertiser.component.ts
deleted file mode 100644
index c65b5fe..0000000
--- a/userAndAdvertiser/src/app/advertiser/utils/navbar-advertiser/navbar-advertiser.component.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import { Component } from '@angular/core';
-import {Router} from "@angular/router";
-import {ProfilService} from "../../../utils/profil/profil.service";
-import {MessageService} from "../../../utils/message/message.service";
-
-
-
-@Component({
- selector: 'app-navbar-advertiser',
- templateUrl: './navbar-advertiser.component.html',
- styleUrls: ['./navbar-advertiser.component.scss']
-})
-export class NavbarAdvertiserComponent
-{
- routes: string[] = [
- "/advertiser", // 0
- "/advertiser/adList", // 1
- "/advertiser/adsPopularity", // 2
- "/advertiser/subjectsPopularity", // 3
- "/advertiser/myProfil" // 4
- ];
-
- url = this.router.url;
-
- constructor( private router: Router,
- public profilService: ProfilService,
- private messageService: MessageService ) { }
-
- onDeconnexion(): void
- {
- this.messageService
- .delete('user/logout')
- .subscribe(retour => this.onDeconnexionCallback(retour), err => this.onDeconnexionCallback(err));
- }
-
- onDeconnexionCallback(retour: any): void
- {
- if(retour.status !== "success") console.log(retour);
- }
-
-}
diff --git a/userAndAdvertiser/src/app/app-routing.module.ts b/userAndAdvertiser/src/app/app-routing.module.ts
deleted file mode 100644
index d1888ec..0000000
--- a/userAndAdvertiser/src/app/app-routing.module.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import { NgModule } from '@angular/core';
-import { RouterModule, Routes } from '@angular/router';
-import {PageLoginComponent} from "./beforeConnexion/login/page-login/page-login.component";
-import {PageRegisterComponent} from "./beforeConnexion/register/page-register/page-register.component";
-import {PageSearchComponent} from "./user/search/page-search/page-search.component";
-import {PageMyPlaylistsComponent} from "./user/myPlaylists/page-my-playlists/page-my-playlists.component";
-import {PageProfilUserComponent} from "./user/myProfil/page-profil-user/page-profil-user.component";
-import {PageWatchingVideoComponent} from "./user/watching/page-watching-video/page-watching-video.component";
-import {PageHistoryUserComponent} from "./user/history/page-history-user/page-history-user.component";
-import {PageAdListAdvertiserComponent} from "./advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component";
-import {PagesPopularityComponent} from "./advertiser/pages-popularity/pages-popularity.component";
-import {PageProfilAdvertiserComponent} from "./advertiser/myProfil/page-profil-advertiser/page-profil-advertiser.component";
-
-
-const routes: Routes = [
- // Before connexion
- { path: '', component: PageLoginComponent },
- { path: 'login', component: PageLoginComponent },
- { path: 'register', component: PageRegisterComponent },
-
- // User
- { path: 'user', component: PageSearchComponent },
- { path: 'user/search', component: PageSearchComponent },
- { path: 'user/myPlaylists', component: PageMyPlaylistsComponent },
- { path: 'user/history', component: PageHistoryUserComponent },
- { path: 'user/myProfil', component: PageProfilUserComponent },
- { path: 'user/watching', component: PageWatchingVideoComponent },
-
- // Advertiser
- { path: 'advertiser', component: PageAdListAdvertiserComponent },
- { path: 'advertiser/adList', component: PageAdListAdvertiserComponent },
- { path: 'advertiser/myProfil', component: PageProfilAdvertiserComponent },
- { path: 'advertiser/adsPopularity', component: PagesPopularityComponent },
- { path: 'advertiser/subjectsPopularity', component: PagesPopularityComponent },
-];
-
-@NgModule({
- imports: [RouterModule.forRoot(routes)],
- exports: [RouterModule]
-})
-export class AppRoutingModule { }
diff --git a/userAndAdvertiser/src/app/app.component.html b/userAndAdvertiser/src/app/app.component.html
deleted file mode 100644
index d5d92f3..0000000
--- a/userAndAdvertiser/src/app/app.component.html
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
diff --git a/userAndAdvertiser/src/app/app.component.scss b/userAndAdvertiser/src/app/app.component.scss
deleted file mode 100644
index 22a5665..0000000
--- a/userAndAdvertiser/src/app/app.component.scss
+++ /dev/null
@@ -1,24 +0,0 @@
-::ng-deep snack-bar-container.custom-class {
- //background: yellow;
-}
-::ng-deep .custom-class .mat-simple-snackbar {
- //color: green;
- justify-content: center;
-}
-
-
-// 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: solid 1px black !important;
- background-color: white !important;
-}
diff --git a/userAndAdvertiser/src/app/app.component.spec.ts b/userAndAdvertiser/src/app/app.component.spec.ts
deleted file mode 100644
index ab837bf..0000000
--- a/userAndAdvertiser/src/app/app.component.spec.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-import { TestBed } from '@angular/core/testing';
-import { RouterTestingModule } from '@angular/router/testing';
-import { AppComponent } from './app.component';
-
-describe('AppComponent', () => {
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- imports: [
- RouterTestingModule
- ],
- declarations: [
- AppComponent
- ],
- }).compileComponents();
- });
-
- it('should create the app', () => {
- const fixture = TestBed.createComponent(AppComponent);
- const app = fixture.componentInstance;
- expect(app).toBeTruthy();
- });
-
- it(`should have as title 'userAndAdvertiser'`, () => {
- const fixture = TestBed.createComponent(AppComponent);
- const app = fixture.componentInstance;
- expect(app.title).toEqual('userAndAdvertiser');
- });
-
- it('should render title', () => {
- const fixture = TestBed.createComponent(AppComponent);
- fixture.detectChanges();
- const compiled = fixture.nativeElement as HTMLElement;
- expect(compiled.querySelector('.content span')?.textContent).toContain('userAndAdvertiser app is running!');
- });
-});
diff --git a/userAndAdvertiser/src/app/app.component.ts b/userAndAdvertiser/src/app/app.component.ts
deleted file mode 100644
index 945afdf..0000000
--- a/userAndAdvertiser/src/app/app.component.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Component } from '@angular/core';
-
-@Component({
- selector: 'app-root',
- templateUrl: './app.component.html',
- styleUrls: ['./app.component.scss']
-})
-export class AppComponent {
- title = 'userAndAdvertiser';
-}
diff --git a/userAndAdvertiser/src/app/app.module.ts b/userAndAdvertiser/src/app/app.module.ts
deleted file mode 100644
index dc1e214..0000000
--- a/userAndAdvertiser/src/app/app.module.ts
+++ /dev/null
@@ -1,131 +0,0 @@
-import { NgModule } from '@angular/core';
-import { BrowserModule } from '@angular/platform-browser';
-
-import { AppRoutingModule } from './app-routing.module';
-import { AppComponent } from './app.component';
-import {BrowserAnimationsModule} from "@angular/platform-browser/animations";
-import {MatSlideToggleModule} from "@angular/material/slide-toggle";
-import {FormsModule, ReactiveFormsModule} from "@angular/forms";
-import {HttpClientModule} from "@angular/common/http";
-import {MatIconModule} from "@angular/material/icon";
-import {MatDialogModule} from "@angular/material/dialog";
-import {MatButtonModule} from "@angular/material/button";
-import {MatInputModule} from "@angular/material/input";
-import {MatCheckboxModule} from "@angular/material/checkbox";
-import {MatFormFieldModule} from "@angular/material/form-field";
-import {MatDividerModule} from "@angular/material/divider";
-import {MatSnackBarModule} from "@angular/material/snack-bar";
-import {MatGridListModule} from "@angular/material/grid-list";
-import {MatTableModule} from "@angular/material/table";
-import {MatSortModule} from "@angular/material/sort";
-import {MatChipsModule} from "@angular/material/chips";
-import {MatSelectModule} from "@angular/material/select";
-import {MatAutocompleteModule} from "@angular/material/autocomplete";
-import {MatRadioModule} from "@angular/material/radio";
-import {MatPaginatorModule} from "@angular/material/paginator";
-import {MatDatepickerModule} from "@angular/material/datepicker";
-import { ChartsModule } from 'ng2-charts';
-import {DragAndDropComponent} from "./advertiser/adList/drag-and-drop/drag-and-drop.component";
-import {InputInterestsAdComponent} from "./advertiser/adList/input-interests-ad/input-interests-ad.component";
-import {PageAdListAdvertiserComponent} from "./advertiser/adList/page-ad-list-advertiser/page-ad-list-advertiser.component";
-import {PopupAddOrUpdateAdComponent} from "./advertiser/adList/popup-add-or-update-ad/popup-add-or-update-ad.component";
-import {PopupDeleteAdAdvertiserComponent} from "./advertiser/adList/popup-delete-ad-advertiser/popup-delete-ad-advertiser.component";
-import {PopupVisualizeAdAdvertiserComponent} from "./advertiser/adList/popup-visualize-ad-advertiser/popup-visualize-ad-advertiser.component";
-import {PopupVisualizeImagesAdvertiserComponent} from "./advertiser/adList/popup-visualize-images-advertiser/popup-visualize-images-advertiser.component";
-import {NavbarAdvertiserComponent} from "./advertiser/utils/navbar-advertiser/navbar-advertiser.component";
-import {DragAndDropDirective} from "./advertiser/utils/dragAndDrop/drag-and-drop.directive";
-import {PageProfilAdvertiserComponent} from "./advertiser/myProfil/page-profil-advertiser/page-profil-advertiser.component";
-import {PopupUpdateAdvertiserComponent} from "./advertiser/myProfil/popup-update-advertiser/popup-update-advertiser.component";
-import {PagesPopularityComponent} from "./advertiser/pages-popularity/pages-popularity.component";
-import {NavbarUserComponent} from "./user/utils/components/navbar-user/navbar-user.component";
-import {PageHistoryUserComponent} from "./user/history/page-history-user/page-history-user.component";
-import {PageMyPlaylistsComponent} from "./user/myPlaylists/page-my-playlists/page-my-playlists.component";
-import {PlaylistListComponent} from "./user/myPlaylists/playlist-list/playlist-list.component";
-import {PopupCreateOrUpdatePlaylistComponent} from "./user/myPlaylists/popup-create-or-update-playlist/popup-create-or-update-playlist.component";
-import {PopupDeletePlaylistComponent} from "./user/myPlaylists/popup-delete-playlist/popup-delete-playlist.component";
-import {VideoListComponent} from "./user/myPlaylists/video-list/video-list.component";
-import {InputInterestsProfilComponent} from "./user/myProfil/input-interests-profil/input-interests-profil.component";
-import {PageProfilUserComponent} from "./user/myProfil/page-profil-user/page-profil-user.component";
-import {PopupUpdateUserComponent} from "./user/myProfil/popup-update-user/popup-update-user.component";
-import {PageSearchComponent} from "./user/search/page-search/page-search.component";
-import {VideoGridComponent} from "./user/search/video-grid/video-grid.component";
-import {PageWatchingVideoComponent} from "./user/watching/page-watching-video/page-watching-video.component";
-import {AdvertComponent} from "./user/utils/components/advert/advert.component";
-import {PopupAddVideoToPlaylistsComponent} from "./user/utils/components/popup-add-video-to-playlists/popup-add-video-to-playlists.component";
-import {PageLoginComponent} from "./beforeConnexion/login/page-login/page-login.component";
-import {PopupForgottenPasswordComponent} from "./beforeConnexion/login/popup-forgotten-password/popup-forgotten-password.component";
-import {InputInterestsRegisterComponent} from "./beforeConnexion/register/input-interests-register/input-interests-register.component";
-import {PageRegisterComponent} from "./beforeConnexion/register/page-register/page-register.component";
-import {PopupConfirmationComponent} from "./beforeConnexion/register/popup-confirmation/popup-confirmation.component";
-import {NavbarBeforeConnexionComponent} from "./beforeConnexion/utils/navbar-before-connexion/navbar-before-connexion.component";
-import {MatStepperModule} from "@angular/material/stepper";
-
-@NgModule({
- declarations: [
- AppComponent,
- DragAndDropDirective,
- NavbarBeforeConnexionComponent,
- PageLoginComponent,
- PopupForgottenPasswordComponent,
- InputInterestsRegisterComponent,
- PageRegisterComponent,
- PopupConfirmationComponent,
- NavbarAdvertiserComponent,
- DragAndDropComponent,
- InputInterestsAdComponent,
- PageAdListAdvertiserComponent,
- PopupAddOrUpdateAdComponent,
- PopupDeleteAdAdvertiserComponent,
- PopupVisualizeAdAdvertiserComponent,
- PopupVisualizeImagesAdvertiserComponent,
- PageProfilAdvertiserComponent,
- PopupUpdateAdvertiserComponent,
- PagesPopularityComponent,
- NavbarUserComponent,
- PageHistoryUserComponent,
- PageMyPlaylistsComponent,
- PlaylistListComponent,
- PopupCreateOrUpdatePlaylistComponent,
- PopupDeletePlaylistComponent,
- VideoListComponent,
- InputInterestsProfilComponent,
- PageProfilUserComponent,
- PopupUpdateUserComponent,
- PageSearchComponent,
- VideoGridComponent,
- PageWatchingVideoComponent,
- AdvertComponent,
- PopupAddVideoToPlaylistsComponent
- ],
- imports: [
- BrowserModule,
- AppRoutingModule,
- BrowserAnimationsModule,
- MatSlideToggleModule,
- FormsModule,
- HttpClientModule,
- MatDialogModule,
- MatButtonModule,
- MatIconModule,
- MatInputModule,
- MatDividerModule,
- MatCheckboxModule,
- MatFormFieldModule,
- MatSnackBarModule,
- MatGridListModule,
- MatTableModule,
- MatSortModule,
- MatChipsModule,
- ReactiveFormsModule,
- MatAutocompleteModule,
- MatSelectModule,
- MatRadioModule,
- MatPaginatorModule,
- MatDatepickerModule,
- ChartsModule,
- MatStepperModule
- ],
- providers: [],
- bootstrap: [AppComponent]
-})
-export class AppModule { }
diff --git a/userAndAdvertiser/src/app/beforeConnexion/login/page-login/page-login.component.html b/userAndAdvertiser/src/app/beforeConnexion/login/page-login/page-login.component.html
deleted file mode 100644
index 675270e..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/login/page-login/page-login.component.html
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
StreamNotFound
-

-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/beforeConnexion/login/page-login/page-login.component.scss b/userAndAdvertiser/src/app/beforeConnexion/login/page-login/page-login.component.scss
deleted file mode 100644
index 8924202..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/login/page-login/page-login.component.scss
+++ /dev/null
@@ -1,271 +0,0 @@
-html {
- background-color: #56baed;
-}
-
-body {
- font-family: "Poppins", sans-serif;
- height: 100vh;
-}
-
-a {
- color: #5E89FF;
- display:inline-block;
- text-decoration: none;
- font-weight: 400;
-}
-
-h2 {
- text-align: center;
- font-size: 16px;
- font-weight: 600;
- text-transform: uppercase;
- display:inline-block;
- margin: 40px 8px 10px 8px;
- color: #cccccc;
-}
-
-
-
-/* STRUCTURE */
-
-.wrapper {
- display: flex;
- align-items: center;
- flex-direction: column;
- justify-content: center;
- width: 100%;
- min-height: 80%;
- padding: 20px;
-}
-
-#formContent {
- -webkit-border-radius: 10px 10px 10px 10px;
- border-radius: 10px 10px 10px 10px;
- background: #fff;
- padding: 30px;
- width: 90%;
- max-width: 450px;
- position: relative;
- padding: 0px;
- -webkit-box-shadow: 0 30px 60px 0 rgba(0,0,0,0.3);
- box-shadow: 0 30px 60px 0 rgba(0,0,0,0.3);
- text-align: center;
-}
-
-#formFooter {
- background-color: #f6f6f6;
- border-top: 1px solid #dce8f1;
- padding: 25px;
- text-align: center;
- -webkit-border-radius: 0 0 10px 10px;
- border-radius: 0 0 10px 10px;
-}
-
-
-
-/* TABS */
-
-h2.inactive {
- color: #cccccc;
-}
-
-h2.active {
- color: #0d0d0d;
- border-bottom: 2px solid #5fbae9;
-}
-
-
-
-/* FORM TYPOGRAPHY*/
-
-input[type=button], input[type=submit], input[type=reset] {
- background-color: #5E89FF;
- border: none;
- color: white;
- padding: 15px 80px;
- text-align: center;
- text-decoration: none;
- display: inline-block;
- text-transform: uppercase;
- font-size: 13px;
- -webkit-box-shadow: 0 10px 30px 0 rgba(95,186,233,0.4);
- box-shadow: 0 10px 30px 0 rgba(95,186,233,0.4);
- -webkit-border-radius: 5px 5px 5px 5px;
- border-radius: 5px 5px 5px 5px;
- margin: 5px 20px 40px 20px;
- -webkit-transition: all 0.3s ease-in-out;
- -moz-transition: all 0.3s ease-in-out;
- -ms-transition: all 0.3s ease-in-out;
- -o-transition: all 0.3s ease-in-out;
- transition: all 0.3s ease-in-out;
-}
-
-input[type=button]:hover, input[type=submit]:hover, input[type=reset]:hover {
- background-color: #39ace7;
-}
-
-input[type=button]:active, input[type=submit]:active, input[type=reset]:active {
- -moz-transform: scale(0.95);
- -webkit-transform: scale(0.95);
- -o-transform: scale(0.95);
- -ms-transform: scale(0.95);
- transform: scale(0.95);
-}
-
-input[type=text], input[type=password] {
- background-color: #f6f6f6;
- border: none;
- color: #0d0d0d;
- padding: 15px 32px;
- text-align: center;
- text-decoration: none;
- display: inline-block;
- font-size: 16px;
- margin: 5px;
- width: 85%;
- border: 2px solid #f6f6f6;
- -webkit-transition: all 0.5s ease-in-out;
- -moz-transition: all 0.5s ease-in-out;
- -ms-transition: all 0.5s ease-in-out;
- -o-transition: all 0.5s ease-in-out;
- transition: all 0.5s ease-in-out;
- -webkit-border-radius: 5px 5px 5px 5px;
- border-radius: 5px 5px 5px 5px;
-}
-
-
-
-input[type=text]:focus, input[type=password]:focus {
- background-color: #fff;
- border-bottom: 2px solid #5fbae9;
-}
-
-input[type=text]::placeholder, input[type=password]::placeholder {
- color: #cccccc;
-}
-
-.bg{
- margin: 0;
- padding: 0;
- height: 100vh;
- width: 100vw;
- overflow-y: hidden;
- overflow-x: hidden;
-}
-
-/* ANIMATIONS */
-
-/* Simple CSS3 Fade-in-down Animation */
-.fadeInDown {
- -webkit-animation-name: fadeInDown;
- animation-name: fadeInDown;
- -webkit-animation-duration: 1s;
- animation-duration: 1s;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
-}
-
-@-webkit-keyframes fadeInDown {
- 0% {
- opacity: 0;
- -webkit-transform: translate3d(0, -100%, 0);
- transform: translate3d(0, -100%, 0);
- }
- 100% {
- opacity: 1;
- -webkit-transform: none;
- transform: none;
- }
-}
-
-@keyframes fadeInDown {
- 0% {
- opacity: 0;
- -webkit-transform: translate3d(0, -100%, 0);
- transform: translate3d(0, -100%, 0);
- }
- 100% {
- opacity: 1;
- -webkit-transform: none;
- transform: none;
- }
-}
-
-/* Simple CSS3 Fade-in Animation */
-@-webkit-keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
-@-moz-keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
-@keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
-
-.fadeIn {
- opacity:0;
- -webkit-animation:fadeIn ease-in 1;
- -moz-animation:fadeIn ease-in 1;
- animation:fadeIn ease-in 1;
-
- -webkit-animation-fill-mode:forwards;
- -moz-animation-fill-mode:forwards;
- animation-fill-mode:forwards;
-
- -webkit-animation-duration:1s;
- -moz-animation-duration:1s;
- animation-duration:1s;
-}
-
-.fadeIn.first {
- -webkit-animation-delay: 0.4s;
- -moz-animation-delay: 0.4s;
- animation-delay: 0.4s;
-}
-
-.fadeIn.second {
- -webkit-animation-delay: 0.6s;
- -moz-animation-delay: 0.6s;
- animation-delay: 0.6s;
-}
-
-.fadeIn.third {
- -webkit-animation-delay: 0.8s;
- -moz-animation-delay: 0.8s;
- animation-delay: 0.8s;
-}
-
-.fadeIn.fourth {
- -webkit-animation-delay: 1s;
- -moz-animation-delay: 1s;
- animation-delay: 1s;
-}
-
-/* Simple CSS3 Fade-in Animation */
-.underlineHover:after {
- display: block;
- left: 0;
- bottom: -10px;
- width: 0;
- height: 2px;
- //background-color: #5E89FF;
- background-color: #5E89FF;
- content: "";
- transition: width 0.2s;
-}
-
-.underlineHover:hover {
- color: #0d0d0d;
-}
-
-.underlineHover:hover:after{
- width: 100%;
-}
-
-h1{
- color: black;
-}
-
-/* OTHERS */
-
-*:focus {
- outline: none;
-}
-
-#icon {
- width:30%;
-}
diff --git a/userAndAdvertiser/src/app/beforeConnexion/login/page-login/page-login.component.spec.ts b/userAndAdvertiser/src/app/beforeConnexion/login/page-login/page-login.component.spec.ts
deleted file mode 100644
index a4ee677..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/login/page-login/page-login.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PageLoginComponent } from './page-login.component';
-
-describe('PageLoginComponent', () => {
- let component: PageLoginComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PageLoginComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PageLoginComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/beforeConnexion/login/page-login/page-login.component.ts b/userAndAdvertiser/src/app/beforeConnexion/login/page-login/page-login.component.ts
deleted file mode 100644
index 555e496..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/login/page-login/page-login.component.ts
+++ /dev/null
@@ -1,101 +0,0 @@
-import {Component, OnInit} from '@angular/core';
-import {Router} from "@angular/router";
-import {MatDialog} from "@angular/material/dialog";
-import {PopupForgottenPasswordComponent} from "../popup-forgotten-password/popup-forgotten-password.component";
-import {MatSnackBar} from "@angular/material/snack-bar";
-import {ProfilService} from "../../../utils/profil/profil.service";
-import {MessageService} from "../../../utils/message/message.service";
-import {ThemeService} from "../../../utils/theme/theme.service";
-
-
-
-@Component({
- selector: 'app-page-login',
- templateUrl: './page-login.component.html',
- styleUrls: ['./page-login.component.scss']
-})
-export class PageLoginComponent implements OnInit
-{
- email: string = "" ;
- password: string = "" ;
- hasError: boolean = false;
- errorMessage: string = "";
-
-
- constructor( private messageService: MessageService,
- private router: Router,
- public themeService: ThemeService,
- public dialog: MatDialog,
- private snackBar: MatSnackBar,
- private profilService: ProfilService) { }
-
-
- ngOnInit(): void {}
-
-
- onSeConnecter(): void
- {
- this.checkError();
-
- if(!this.hasError)
- {
- let data = {
- email: this.email,
- hashPass: this.password
- };
- this.messageService
- .post('user/auth', data)
- .subscribe( retour => this.onSeConnecterCallback(retour), err => this.onSeConnecterCallback(err));
- }
- }
-
-
- onSeConnecterCallback(retour: any): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- this.errorMessage = retour.error.reason;
- this.hasError = true;
- }
- else {
- this.profilService.setId(retour.data.id);
- this.profilService.setProfileImageUrl(retour.data.profileImageUrl);
- if(retour.data.role.name === "user") this.router.navigateByUrl( '/user/search');
- else if(retour.data.role.name === "advertiser") this.router.navigateByUrl( '/advertiser/adList');
- else if(retour.data.role.name === "admin" || retour.data.role.name === "superAdmin") this.router.navigateByUrl( '/admin/userList');
- }
- }
-
-
- onForgottenPassword(): void
- {
- this.dialog
- .open(PopupForgottenPasswordComponent, {width: '30%'})
- .afterClosed()
- .subscribe(result => {
- if((result !== null) && (result !== undefined))
- {
- const config = { duration: 5000, panelClass: "custom-class" };
- this.snackBar.open( "Un mail de réinitialisation de mot de passe vous a été envoyé.", "", config);
- }
- });
- }
-
-
- checkError(): void
- {
- if(this.email === "") {
- this.errorMessage = "Veuillez remplir le champ email" ;
- this.hasError = true;
- }
- else if(this.password === "") {
- this.errorMessage = "Veuillez remplir le champ mot de passe" ;
- this.hasError = true;
- }
- else {
- this.errorMessage = "" ;
- this.hasError = false;
- }
- }
-
-}
diff --git a/userAndAdvertiser/src/app/beforeConnexion/login/popup-forgotten-password/popup-forgotten-password.component.html b/userAndAdvertiser/src/app/beforeConnexion/login/popup-forgotten-password/popup-forgotten-password.component.html
deleted file mode 100644
index c34b58e..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/login/popup-forgotten-password/popup-forgotten-password.component.html
+++ /dev/null
@@ -1,24 +0,0 @@
-Récupération du mot de passe
-
-
-
-
-
-
- Email
-
-
-
-
-
-
- {{errorMessage}}
-
-
-
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/beforeConnexion/login/popup-forgotten-password/popup-forgotten-password.component.scss b/userAndAdvertiser/src/app/beforeConnexion/login/popup-forgotten-password/popup-forgotten-password.component.scss
deleted file mode 100644
index fa75013..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/login/popup-forgotten-password/popup-forgotten-password.component.scss
+++ /dev/null
@@ -1,12 +0,0 @@
-h4 {
- text-align: center;
-}
-
-.myDiv {
- text-align: center;
- font-size: small;
-}
-
-.myError {
- text-align: center;
-}
diff --git a/userAndAdvertiser/src/app/beforeConnexion/login/popup-forgotten-password/popup-forgotten-password.component.spec.ts b/userAndAdvertiser/src/app/beforeConnexion/login/popup-forgotten-password/popup-forgotten-password.component.spec.ts
deleted file mode 100644
index ebf101c..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/login/popup-forgotten-password/popup-forgotten-password.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PopupForgottenPasswordComponent } from './popup-forgotten-password.component';
-
-describe('PopupForgottenPasswordComponent', () => {
- let component: PopupForgottenPasswordComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PopupForgottenPasswordComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PopupForgottenPasswordComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/beforeConnexion/login/popup-forgotten-password/popup-forgotten-password.component.ts b/userAndAdvertiser/src/app/beforeConnexion/login/popup-forgotten-password/popup-forgotten-password.component.ts
deleted file mode 100644
index 1ff70ce..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/login/popup-forgotten-password/popup-forgotten-password.component.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-import { Component } from '@angular/core';
-import {MatDialogRef} from "@angular/material/dialog";
-
-
-
-@Component({
- selector: 'app-popup-forgotten-password',
- templateUrl: './popup-forgotten-password.component.html',
- styleUrls: ['./popup-forgotten-password.component.scss']
-})
-export class PopupForgottenPasswordComponent
-{
- email: string;
- hasError: boolean = false;
- errorMessage: string = "";
-
-
- constructor(public dialogRef: MatDialogRef) {}
-
-
- // Click sur valider
- onValidate()
- {
- if(this.email.length === 0) {
- this.errorMessage = "Veuillez remplir le champ 'email'." ;
- this.hasError = true;
- }
- else if(!this.isValidEmail(this.email)) {
- this.errorMessage = "Email invalide." ;
- this.hasError = true;
- }
- else {
- this.errorMessage = "" ;
- this.hasError = false;
- this.dialogRef.close(true);
- }
- }
-
-
- // Indique si email a bien le format d'un email
- isValidEmail(email): boolean
- {
- 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);
- }
-
-}
diff --git a/userAndAdvertiser/src/app/beforeConnexion/register/input-interests-register/input-interests-register.component.html b/userAndAdvertiser/src/app/beforeConnexion/register/input-interests-register/input-interests-register.component.html
deleted file mode 100644
index 2a7c484..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/register/input-interests-register/input-interests-register.component.html
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
- Centres d'intérêt
-
-
-
-
-
-
- {{interest}}
-
-
-
-
-
-
-
-
-
-
-
- {{interest}}
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/beforeConnexion/register/input-interests-register/input-interests-register.component.scss b/userAndAdvertiser/src/app/beforeConnexion/register/input-interests-register/input-interests-register.component.scss
deleted file mode 100644
index e69de29..0000000
diff --git a/userAndAdvertiser/src/app/beforeConnexion/register/input-interests-register/input-interests-register.component.spec.ts b/userAndAdvertiser/src/app/beforeConnexion/register/input-interests-register/input-interests-register.component.spec.ts
deleted file mode 100644
index 9917b1a..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/register/input-interests-register/input-interests-register.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { InputInterestsRegisterComponent } from './input-interests-register.component';
-
-describe('InputInterestsRegisterComponent', () => {
- let component: InputInterestsRegisterComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ InputInterestsRegisterComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(InputInterestsRegisterComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/beforeConnexion/register/input-interests-register/input-interests-register.component.ts b/userAndAdvertiser/src/app/beforeConnexion/register/input-interests-register/input-interests-register.component.ts
deleted file mode 100644
index 8dba84e..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/register/input-interests-register/input-interests-register.component.ts
+++ /dev/null
@@ -1,121 +0,0 @@
-import {Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';
-import {COMMA, ENTER} from "@angular/cdk/keycodes";
-import {FormControl} from "@angular/forms";
-import {Observable} from "rxjs";
-import {map, startWith} from "rxjs/operators";
-import {MatChipInputEvent} from "@angular/material/chips";
-import {MatAutocompleteSelectedEvent} from "@angular/material/autocomplete";
-import {MessageService} from "../../../utils/message/message.service";
-
-
-
-@Component({
- selector: 'app-input-interests-register',
- templateUrl: './input-interests-register.component.html',
- styleUrls: ['./input-interests-register.component.scss']
-})
-export class InputInterestsRegisterComponent implements OnInit
-{
- selectable = true;
- removable = true;
- separatorKeysCodes: number[] = [ENTER, COMMA];
- formControl = new FormControl();
- filteredInterests: Observable;
- @Input() myInterests: string[] = [];
- allInterests: string[] = [];
- @Output() eventEmitter = new EventEmitter();
- @ViewChild('tagInput') tagInput: ElementRef;
- interestsNotSelected: string[] = [];
-
-
- constructor( private messageService: MessageService ) {}
-
-
- ngOnInit(): void
- {
- this.filteredInterests = this.formControl.valueChanges.pipe(
- startWith(null),
- map((fruit: string | null) => fruit ? this._filter(fruit) : this.interestsNotSelected.slice()));
-
- this.messageService
- .get("misc/getInterests")
- .subscribe( retour => {
-
- if(retour.status !== "success") {
- console.log(retour);
- }
- else {
- this.allInterests = [];
- for(let elt of retour.data)
- {
- this.allInterests.push(elt.interest);
- this.interestsNotSelected.push(elt.interest);
- }
- }
- });
- }
-
-
- add(event: MatChipInputEvent): void
- {
- const value = (event.value || '').trim();
- const index = this.interestsNotSelected.indexOf(value);
- if (value && (index !== -1) && (!this.myInterests.includes(value)))
- {
- this.myInterests.push(value);
- event.chipInput!.clear();
- this.formControl.setValue(null);
- this.eventEmitter.emit(this.myInterests);
- this.interestsNotSelected.splice(index, 1);
- }
- }
-
-
- remove(interest: string): void
- {
- // supprimer 'interest' de 'myInterest'
- const index = this.myInterests.indexOf(interest);
- if (index >= 0) this.myInterests.splice(index, 1);
- this.eventEmitter.emit(this.myInterests);
-
- // remmettre 'interest' dans 'interestsNotSelected'
- if(!this.interestsNotSelected.includes(interest))
- {
- const indexOfAutres = this.interestsNotSelected.indexOf("Autres");
- if(indexOfAutres !== -1)
- {
- this.interestsNotSelected.splice(indexOfAutres, 1);
- if(interest !== "Autres") this.interestsNotSelected.push(interest);
- this.interestsNotSelected.sort();
- this.interestsNotSelected.push("Autres");
- }
- else {
- this.interestsNotSelected.push(interest);
- if(interest !== "Autres") this.interestsNotSelected.sort();
- }
- }
- }
-
-
- selected(event: MatAutocompleteSelectedEvent): void
- {
- const value = event.option.viewValue;
- if(!this.myInterests.includes(value))
- {
- this.myInterests.push(value);
- const index = this.interestsNotSelected.indexOf(value);
- this.interestsNotSelected.splice(index, 1);
- }
- this.tagInput.nativeElement.value = '';
- this.formControl.setValue(null);
- this.eventEmitter.emit(this.myInterests);
- }
-
-
- private _filter(value: string): string[]
- {
- const filterValue = value.toLowerCase();
- return this.interestsNotSelected.filter(fruit => fruit.toLowerCase().includes(filterValue));
- }
-
-}
diff --git a/userAndAdvertiser/src/app/beforeConnexion/register/page-register/page-register.component.html b/userAndAdvertiser/src/app/beforeConnexion/register/page-register/page-register.component.html
deleted file mode 100644
index fb6e3ac..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/register/page-register/page-register.component.html
+++ /dev/null
@@ -1,162 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Entreprise
-
-
-
-
-
-
- Pseudo
-
-
-
-
-
-
- Email
-
-
-
-
-
-
- Mot de passe
-
-
-
-
-
-
- Confirmation mot de passe
-
-
-
-
diff --git a/userAndAdvertiser/src/app/beforeConnexion/register/page-register/page-register.component.scss b/userAndAdvertiser/src/app/beforeConnexion/register/page-register/page-register.component.scss
deleted file mode 100644
index 5f0dc53..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/register/page-register/page-register.component.scss
+++ /dev/null
@@ -1,47 +0,0 @@
-.myContainer {
- width: 100vw;
- height: 100vh;
-}
-
-
-mat-stepper {
- width: 60%;
- margin: 10vh auto;
- border: solid 1px black;
- border-radius: 20px;
-}
-
-
-.leftCol {
- border-right: solid 1px #dcdcdc;
-}
-
-
-.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;
-}
-
-
-// -------------------------------------------------------------------------
-
-
-::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/userAndAdvertiser/src/app/beforeConnexion/register/page-register/page-register.component.spec.ts b/userAndAdvertiser/src/app/beforeConnexion/register/page-register/page-register.component.spec.ts
deleted file mode 100644
index 5cff194..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/register/page-register/page-register.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PageRegisterComponent } from './page-register.component';
-
-describe('PageRegisterComponent', () => {
- let component: PageRegisterComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PageRegisterComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PageRegisterComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/beforeConnexion/register/page-register/page-register.component.ts b/userAndAdvertiser/src/app/beforeConnexion/register/page-register/page-register.component.ts
deleted file mode 100644
index 788c8be..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/register/page-register/page-register.component.ts
+++ /dev/null
@@ -1,134 +0,0 @@
-import { Component } from '@angular/core';
-import {PopupConfirmationComponent} from "../popup-confirmation/popup-confirmation.component";
-import {MessageService} from "../../../utils/message/message.service";
-import {Router} from "@angular/router";
-import {MatDialog} from "@angular/material/dialog";
-import {ThemeService} from "../../../utils/theme/theme.service";
-
-
-
-@Component({
- selector: 'app-page-register',
- templateUrl: './page-register.component.html',
- styleUrls: ['./page-register.component.scss']
-})
-export class PageRegisterComponent
-{
- password: string = "";
- confirmPassword: string = "";
- hasError: boolean = false;
- errorMessage: string = "";
- user = {
- _id: "",
- login: "",
- hashPass: "",
- email: "",
- role: {
- name: "user",
- permission: 0,
- isAccepted: false,
- },
- profileImageUrl: "",
- dateOfBirth: null,
- gender: "man",
- interests: [],
- company: "",
- isActive: true,
- createdAt: new Date(),
- updatedAt: new Date(),
- lastConnexion: null
- };
-
-
- constructor( private messageService: MessageService,
- private router: Router,
- public dialog: MatDialog,
- public themeService: ThemeService ) { }
-
-
- // Envoie de l'utilisateur au backend
- onEnregistrer(): void
- {
- this.checkField();
- if(!this.hasError)
- {
- let data: any = Object.assign({}, this.user);
- if(this.user.role.name === "user") data.role = "user" ;
- else data.role = "advertiser";
- data.hashPass = this.password;
- this.messageService
- .post('user/create', data)
- .subscribe(retour => this.onEnregistrerCallback(retour), err => this.onEnregistrerCallback(err));
- }
- }
-
-
- // Gestion de la réponse du backend
- onEnregistrerCallback(retour): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- }
- else
- {
- const config = {
- width: '25%',
- data: {roleName: this.user.role.name}
- };
- this.dialog
- .open(PopupConfirmationComponent, config)
- .afterClosed()
- .subscribe(result => this.router.navigateByUrl( '/login' ));
- }
- }
-
-
- // Check les champs saisies par l'utilisateur
- checkField(): void
- {
- if((this.user.role.name === 'advertiser') && (this.user.company.length === 0)) {
- this.errorMessage = "Veuillez remplir le champ 'entreprise'.";
- this.hasError = true;
- }
- else if(this.user.login.length === 0) {
- this.errorMessage = "Veuillez remplir le champ 'pseudo'.";
- this.hasError = true;
- }
- else if(this.user.email.length === 0) {
- this.errorMessage = "Veuillez remplir le champ 'email'.";
- this.hasError = true;
- }
- else if(!this.isValidEmail(this.user.email)) {
- this.errorMessage = "Email invalide.";
- this.hasError = true;
- }
- else if(this.password.length === 0) {
- this.errorMessage = "Veuillez remplir le champ 'mot de passe'.";
- this.hasError = true;
- }
- else if(this.password !== this.confirmPassword) {
- this.errorMessage = "Le mot de passe est différent de sa confirmation.";
- this.hasError = true;
- }
- else {
- this.errorMessage = "" ;
- this.hasError = false;
- }
- }
-
-
- // Indique si email a bien le format d'un email
- isValidEmail(email): boolean
- {
- 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);
- }
-
-
- // Récupère la liste des centres d'intérets (car celle-ci est remplie à l'aide d'un component intermédiaire)
- onEventInputInterests(myInterets: string[]): void
- {
- this.user.interests = myInterets;
- }
-
-}
diff --git a/userAndAdvertiser/src/app/beforeConnexion/register/popup-confirmation/popup-confirmation.component.html b/userAndAdvertiser/src/app/beforeConnexion/register/popup-confirmation/popup-confirmation.component.html
deleted file mode 100644
index 1cd51fe..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/register/popup-confirmation/popup-confirmation.component.html
+++ /dev/null
@@ -1,11 +0,0 @@
-
- Votre inscription a bien été effectuée.
-
-
-
- Votre inscription est en cours de validation.
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/beforeConnexion/register/popup-confirmation/popup-confirmation.component.scss b/userAndAdvertiser/src/app/beforeConnexion/register/popup-confirmation/popup-confirmation.component.scss
deleted file mode 100644
index 85730e0..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/register/popup-confirmation/popup-confirmation.component.scss
+++ /dev/null
@@ -1,7 +0,0 @@
-p {
- font-size: small;
-}
-
-div {
- font-size: small;
-}
diff --git a/userAndAdvertiser/src/app/beforeConnexion/register/popup-confirmation/popup-confirmation.component.spec.ts b/userAndAdvertiser/src/app/beforeConnexion/register/popup-confirmation/popup-confirmation.component.spec.ts
deleted file mode 100644
index d6f9908..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/register/popup-confirmation/popup-confirmation.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PopupConfirmationComponent } from './popup-confirmation.component';
-
-describe('PopupConfirmationComponent', () => {
- let component: PopupConfirmationComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PopupConfirmationComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PopupConfirmationComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/beforeConnexion/register/popup-confirmation/popup-confirmation.component.ts b/userAndAdvertiser/src/app/beforeConnexion/register/popup-confirmation/popup-confirmation.component.ts
deleted file mode 100644
index 59e3325..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/register/popup-confirmation/popup-confirmation.component.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import {Component, Inject} from '@angular/core';
-import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog";
-
-@Component({
- selector: 'app-popup-confirmation',
- templateUrl: './popup-confirmation.component.html',
- styleUrls: ['./popup-confirmation.component.scss']
-})
-export class PopupConfirmationComponent
-{
- constructor( public dialogRef: MatDialogRef,
- @Inject(MAT_DIALOG_DATA) public data) {}
-}
diff --git a/userAndAdvertiser/src/app/beforeConnexion/utils/navbar-before-connexion/navbar-before-connexion.component.html b/userAndAdvertiser/src/app/beforeConnexion/utils/navbar-before-connexion/navbar-before-connexion.component.html
deleted file mode 100644
index d4ad9f5..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/utils/navbar-before-connexion/navbar-before-connexion.component.html
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/beforeConnexion/utils/navbar-before-connexion/navbar-before-connexion.component.scss b/userAndAdvertiser/src/app/beforeConnexion/utils/navbar-before-connexion/navbar-before-connexion.component.scss
deleted file mode 100644
index e1fefaa..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/utils/navbar-before-connexion/navbar-before-connexion.component.scss
+++ /dev/null
@@ -1,79 +0,0 @@
-.navbar {
- background-color: black;
- height: 60px;
- font-size: medium;
- color: white;
-}
-
-
-.navbar-expand-lg {
- border-bottom: solid;
- border-color: white;
- border-bottom-width: 2px;
-}
-
-
-// PolyNotFound
-.navbar-brand {
- font-family: cursive;
- font-weight: bold;
- font-size: x-large;
- margin-left: 15px;
- color: white;
-}
-
-
-// Recherche, Mes Playlists, Historique
-.nav-link {
- color: white;
-}
-.nav-link:hover {
- color: grey;
-}
-
-
-// Bonton deconnexion
-.btnDeconnexion {
- font-size: medium;
- margin: 0px 10px 0px 10px
-}
-.btnDeconnexion:hover {
- color: grey;
-}
-
-
-.monLi {
- margin: 0px 10px 0px 10px;
-}
-
-
-img {
- border: solid 2px white;
- border-radius: 50px;
- margin: 0px 10px 0px 15px;
- width: 40px;
- height: 40px;
-}
-img:hover {
- cursor: pointer;
-}
-
-
-// --------------------------------------------------------------------
-
-
-::ng-deep .mat-slide-toggle-thumb {
- background-color: #c8c8c8;
-}
-
-::ng-deep .mat-slide-toggle-bar {
- background-color: #ffffff;
-}
-
-::ng-deep .mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb {
- background-color: #ffffff;
-}
-
-::ng-deep .mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-bar {
- background-color: #646464;
-}
diff --git a/userAndAdvertiser/src/app/beforeConnexion/utils/navbar-before-connexion/navbar-before-connexion.component.spec.ts b/userAndAdvertiser/src/app/beforeConnexion/utils/navbar-before-connexion/navbar-before-connexion.component.spec.ts
deleted file mode 100644
index f3f7f27..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/utils/navbar-before-connexion/navbar-before-connexion.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { NavbarBeforeConnexionComponent } from './navbar-before-connexion.component';
-
-describe('NavbarBeforeConnexionComponent', () => {
- let component: NavbarBeforeConnexionComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ NavbarBeforeConnexionComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(NavbarBeforeConnexionComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/beforeConnexion/utils/navbar-before-connexion/navbar-before-connexion.component.ts b/userAndAdvertiser/src/app/beforeConnexion/utils/navbar-before-connexion/navbar-before-connexion.component.ts
deleted file mode 100644
index 4a3f05e..0000000
--- a/userAndAdvertiser/src/app/beforeConnexion/utils/navbar-before-connexion/navbar-before-connexion.component.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {Component, Input} from '@angular/core';
-
-@Component({
- selector: 'app-navbar-before-connexion',
- templateUrl: './navbar-before-connexion.component.html',
- styleUrls: ['./navbar-before-connexion.component.scss']
-})
-export class NavbarBeforeConnexionComponent
-{
- @Input() pour = "login";
-}
diff --git a/userAndAdvertiser/src/app/user/history/page-history-user/page-history-user.component.html b/userAndAdvertiser/src/app/user/history/page-history-user/page-history-user.component.html
deleted file mode 100644
index 97f7344..0000000
--- a/userAndAdvertiser/src/app/user/history/page-history-user/page-history-user.component.html
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- | Aperçu |
-
-
- 
- ![]()
-
- |
-
-
-
-
- Titre |
- {{video.title}} |
-
-
-
-
- Date |
-
- {{video.date | date:'dd/LL/YYYY à HH:mm:ss'}}
- |
-
-
-
-
- Source |
- {{video.source}} |
-
-
-
-
- Action |
-
-
- |
-
-
-
-
-
- | Aucune vidéo ne correspond au filtre: "{{input.value}}" |
-
-
-
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/user/history/page-history-user/page-history-user.component.scss b/userAndAdvertiser/src/app/user/history/page-history-user/page-history-user.component.scss
deleted file mode 100644
index bbd894d..0000000
--- a/userAndAdvertiser/src/app/user/history/page-history-user/page-history-user.component.scss
+++ /dev/null
@@ -1,46 +0,0 @@
-.myContainer {
- max-width: 100vw;
- height: 100vh;
- overflow-x: hidden;
-}
-
-table {
- width: 80%;
- margin: 0 auto;
-}
-
-
-th.mat-sort-header-sorted {
- color: black;
-}
-
-
-input {
- width: 35%;
- font-size: large;
-}
-
-// -------------------------------------------------------
-
-.imgsContainer {
- position: relative;
- width: 20vw;
- height: 15vh;
- cursor: pointer;
-}
-
-.imgPlay {
- position: absolute;
- margin-left: 9vw;
- width: 3vw;
- margin-top: 5vh;
- height: 6vh;
- padding: 0px 0px 0px 0px;
-}
-
-.imgVideo {
- border: solid 1px black;
- width: 20vw;
- height: 15vh;
- padding: 0px 0px 0px 0px;
-}
diff --git a/userAndAdvertiser/src/app/user/history/page-history-user/page-history-user.component.spec.ts b/userAndAdvertiser/src/app/user/history/page-history-user/page-history-user.component.spec.ts
deleted file mode 100644
index 9fd31c3..0000000
--- a/userAndAdvertiser/src/app/user/history/page-history-user/page-history-user.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PageHistoryUserComponent } from './page-history-user.component';
-
-describe('PageHistoriqueComponent', () => {
- let component: PageHistoryUserComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PageHistoryUserComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PageHistoryUserComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/user/history/page-history-user/page-history-user.component.ts b/userAndAdvertiser/src/app/user/history/page-history-user/page-history-user.component.ts
deleted file mode 100644
index 5485ec1..0000000
--- a/userAndAdvertiser/src/app/user/history/page-history-user/page-history-user.component.ts
+++ /dev/null
@@ -1,113 +0,0 @@
-import {AfterViewInit, Component, ViewChild} from '@angular/core';
-import {MatTableDataSource} from "@angular/material/table";
-import {MatSort} from "@angular/material/sort";
-import {MatPaginator} from "@angular/material/paginator";
-import {Router} from "@angular/router";
-import {MessageService} from "../../../utils/message/message.service";
-import {ThemeService} from "../../../utils/theme/theme.service";
-
-
-
-@Component({
- selector: 'app-page-history-user',
- templateUrl: './page-history-user.component.html',
- styleUrls: ['./page-history-user.component.scss']
-})
-export class PageHistoryUserComponent implements AfterViewInit
-{
- displayedColumns: string[] = [ 'aperçu', 'title', 'date', 'source', 'action' ];
- dataSource ;
- @ViewChild(MatSort) sort: MatSort;
- @ViewChild(MatPaginator) paginator: MatPaginator;
-
-
- constructor( public themeService: ThemeService,
- private messageService: MessageService,
- private router: Router ) { }
-
-
- // charge la page
- ngAfterViewInit(): void
- {
- this.messageService
- .get("user/history")
- .subscribe(ret => this.ngAfterViewInitCallback(ret), err => this.ngAfterViewInitCallback(err));
- }
-
-
- ngAfterViewInitCallback(retour: any): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- }
- else {
- const tabVideoHistory = retour.data.map( video => {
- return {
- _id: video._id,
- videoId: video.videoId,
- imageUrl: video.imageUrl,
- title: video.title,
- date: video.watchedDate,
- source: video.source,
- }
- });
- this.dataSource = new MatTableDataSource(tabVideoHistory);
- this.dataSource.sort = this.sort;
- this.dataSource.paginator = this.paginator;
- this.dataSource = this.dataSource;
- }
- }
-
-
- // Applique le filtre
- applyFilter(event: Event): void
- {
- const filterValue = (event.target as HTMLInputElement).value;
- this.dataSource.filter = filterValue.trim().toLowerCase();
- }
-
-
- // Supprime la video
- onDelete(video: any): void
- {
- this.messageService
- .put("video/update/"+video._id, { watchedDates: []})
- .subscribe(ret => this.onDeleteCallback(ret, video), err => this.onDeleteCallback(err, video))
- }
-
-
- onDeleteCallback(retour: any, video: any): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- }
- else {
- const index = this.dataSource.data.indexOf(video);
- this.dataSource.data.splice(index, 1);
- this.dataSource.data = this.dataSource.data;
- this.dataSource = this.dataSource;
- }
- }
-
-
- onVideo(video): void
- {
- this.messageService
- .put("video/update/"+video._id, {watchedDate: true})
- .subscribe(ret => this.onVideoCallback(ret), err => this.onVideoCallback(err));
-
- const params = {
- videoId: video.videoId,
- source: video.source,
- from: "history",
- };
- this.router.navigate(['/user/watching'], { queryParams: params });
- }
-
-
- onVideoCallback(retour: any): void
- {
- if(retour.status !== "success") console.log(retour);
- }
-
-}
diff --git a/userAndAdvertiser/src/app/user/myPlaylists/page-my-playlists/page-my-playlists.component.html b/userAndAdvertiser/src/app/user/myPlaylists/page-my-playlists/page-my-playlists.component.html
deleted file mode 100644
index c92a060..0000000
--- a/userAndAdvertiser/src/app/user/myPlaylists/page-my-playlists/page-my-playlists.component.html
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/user/myPlaylists/page-my-playlists/page-my-playlists.component.scss b/userAndAdvertiser/src/app/user/myPlaylists/page-my-playlists/page-my-playlists.component.scss
deleted file mode 100644
index fad665f..0000000
--- a/userAndAdvertiser/src/app/user/myPlaylists/page-my-playlists/page-my-playlists.component.scss
+++ /dev/null
@@ -1,48 +0,0 @@
-.lightTheme {
- border-color: black;
-}
-.darkTheme {
- border-color: white;
-}
-.myContainer {
- text-align: center;
- max-width: 100vw;
- height: 100vh;
- overflow-x: hidden;
-}
-
-// Liste des vidéos -------------------------------------------------
-
-.celluleListeVideo {
- margin: 0px 0px 0px 0px;
-}
-
-// Liste des playlists ---------------------------------------------
-
-.celluleListePlaylist {
- margin: 0px 0px 0px 0px;
-}
-
-// Pub -------------------------------------------------------------
-
-.cellulePub {
- padding: 0px 10px 0px 10px;
- width: 100%;
- text-align: center;
- justify-content: center;
-}
-
-.conteneurPub {
- //height: 85vh;
- text-align: center;
- justify-content: center;
- vertical-align: middle;
- display: block;
- width: 75%;
- margin-left: auto;
- margin-right: auto;
- position: absolute;
- top: 50%;
- -ms-transform: translateY(-50%);
- transform: translateY(-50%);
-}
diff --git a/userAndAdvertiser/src/app/user/myPlaylists/page-my-playlists/page-my-playlists.component.spec.ts b/userAndAdvertiser/src/app/user/myPlaylists/page-my-playlists/page-my-playlists.component.spec.ts
deleted file mode 100644
index 2dba23b..0000000
--- a/userAndAdvertiser/src/app/user/myPlaylists/page-my-playlists/page-my-playlists.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PageMyPlaylistsComponent } from './page-my-playlists.component';
-
-describe('PageMesPlaylistsComponent', () => {
- let component: PageMyPlaylistsComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PageMyPlaylistsComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PageMyPlaylistsComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/user/myPlaylists/page-my-playlists/page-my-playlists.component.ts b/userAndAdvertiser/src/app/user/myPlaylists/page-my-playlists/page-my-playlists.component.ts
deleted file mode 100644
index 0b94523..0000000
--- a/userAndAdvertiser/src/app/user/myPlaylists/page-my-playlists/page-my-playlists.component.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import {HttpParams} from "@angular/common/http";
-import {ThemeService} from "../../../utils/theme/theme.service";
-import {MessageService} from "../../../utils/message/message.service";
-
-
-
-@Component({
- selector: 'app-page-my-playlists',
- templateUrl: './page-my-playlists.component.html',
- styleUrls: ['./page-my-playlists.component.scss']
-})
-export class PageMyPlaylistsComponent implements OnInit
-{
- ad; // pub
- playlist: any; // la playlist sélectionnée
-
-
- constructor( public themeService: ThemeService,
- private messageService: MessageService ) { }
-
-
- ngOnInit(): void
- {
- let params = new HttpParams();
- params = params.append("quantity", 1);
- this.messageService
- .get("user/ad", params)
- .subscribe(ret => this.adCallback(ret), err => this.adCallback(err));
- }
-
-
- adCallback(retour: any): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- }
- else {
- this.ad = retour.data[0];
- }
- }
-
-
- transmitPlaylistToVideoList(playlist): void
- {
- if ((playlist === null) || (playlist === undefined)) {
- this.playlist = playlist;
- }
- else {
- this.messageService
- .get("playlist/findOne/" + playlist.id)
- .subscribe(ret => this.afterReceivingPlaylistWithVideo(ret, playlist), err => this.afterReceivingPlaylistWithVideo(err, playlist));
- }
- }
-
-
- afterReceivingPlaylistWithVideo(retour: any, playlist): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- this.playlist = playlist;
- }
- else {
- this.playlist = retour.data;
- }
- }
-
-}
diff --git a/userAndAdvertiser/src/app/user/myPlaylists/playlist-list/playlist-list.component.html b/userAndAdvertiser/src/app/user/myPlaylists/playlist-list/playlist-list.component.html
deleted file mode 100644
index 2185a77..0000000
--- a/userAndAdvertiser/src/app/user/myPlaylists/playlist-list/playlist-list.component.html
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{playlist.name}}
- {{playlist.videoIds.length}} vidéo
- 1"> {{playlist.videoIds.length}} vidéos
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/user/myPlaylists/playlist-list/playlist-list.component.scss b/userAndAdvertiser/src/app/user/myPlaylists/playlist-list/playlist-list.component.scss
deleted file mode 100644
index 0376ee3..0000000
--- a/userAndAdvertiser/src/app/user/myPlaylists/playlist-list/playlist-list.component.scss
+++ /dev/null
@@ -1,94 +0,0 @@
-.myContainer {
- background-color: white ;
- text-align: center;
- width: 35vw;
- margin: 1vh 0vh 3vh 0vh;
- padding: 0px;
- border: solid 2px black;
- border-radius: 10px;
- box-shadow: 10px 5px 5px black;
-}
-
-// SearchBar -----------------------------------------------------------
-
-.searchBarContainer {
- text-align: center;
- margin: 0px 0px 0px 0px;
- padding: 10px 0px 10px 0px;
- //background-color: #dcdcdc;
- background: linear-gradient(top, rgba(38,38,38,0.8), #e6e6e6 25%, #fff 38%, #c5c5c5 87%, rgba(38,38,38,0.8));
- background: -webkit-linear-gradient(top, #c5c5c5, #e6e6e6 25%, #fff 38%, #c5c5c5 87%, #c5c5c5);
- font-size: large;
- border-bottom: solid 1px black;
- border-top-left-radius: 10px;
- border-top-right-radius: 10px;
-}
-
-.inputSearchBar {
- width: 70%;
- border-radius: 5px;
-}
-
-
-// Liste des playlists -------------------------------------------------
-
-.playlistListContainer {
- max-width: 100%;
- height: 60vh;
- overflow-y: scroll;
- padding: 0px;
- overflow-x: hidden;
-}
-
-.playlistContainer {
- max-width: 100%;
- padding: 0px;
- overflow-x: hidden;
-}
-
-
-.btnPlaylist {
- background-color: white;
- padding: 20px;
- border-bottom: solid 1px black;
- //width: 100%;
- width: 35vw;
- overflow-x: hidden;
-}
-.btnPlaylist:hover {
- background-color: #f0f0f0;
-}
-
-.btnPlaylistFocus {
- background-color: #e6e6e6;
-}
-.btnPlaylistFocus:hover {
- background-color: #e6e6e6;
-}
-
-
-.playListCount {
- color: gray;
- font-style: italic;
-}
-
-// Bouton creer playlist -------------------------------------------------
-
-.btnCreerPlaylistContainer {
- margin: 0px 0px 0px 0px;
- background-color: #dcdcdc;
- font-size: large;
- border-top: solid 1px black;
- border-bottom-left-radius: 10px;
- border-bottom-right-radius: 10px;
-}
-
-.btnCreerPlaylist {
- margin: 0px 0px 0px 0px;
- border-bottom-left-radius: 10px;
- border-bottom-right-radius: 10px;
- background: linear-gradient(top, rgba(38,38,38,0.8), #e6e6e6 25%, #fff 38%, #c5c5c5 87%, rgba(38,38,38,0.8));
- background: -webkit-linear-gradient(top, #c5c5c5, #e6e6e6 25%, #fff 38%, #c5c5c5 87%, #c5c5c5);
- //background: linear-gradient(180deg, #e6e6e6 0%, rgba(0,0,0,0.25) 49%, rgba(38,38,38,0.6) 51%, rgba(0,0,0,0.25) 100%);
-}
-
diff --git a/userAndAdvertiser/src/app/user/myPlaylists/playlist-list/playlist-list.component.spec.ts b/userAndAdvertiser/src/app/user/myPlaylists/playlist-list/playlist-list.component.spec.ts
deleted file mode 100644
index 9308f2c..0000000
--- a/userAndAdvertiser/src/app/user/myPlaylists/playlist-list/playlist-list.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PlaylistListComponent } from './playlist-list.component';
-
-describe('PlaylistListComponent', () => {
- let component: PlaylistListComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PlaylistListComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PlaylistListComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/user/myPlaylists/playlist-list/playlist-list.component.ts b/userAndAdvertiser/src/app/user/myPlaylists/playlist-list/playlist-list.component.ts
deleted file mode 100644
index 9d9dbc2..0000000
--- a/userAndAdvertiser/src/app/user/myPlaylists/playlist-list/playlist-list.component.ts
+++ /dev/null
@@ -1,161 +0,0 @@
-import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
-import {MatDialog} from "@angular/material/dialog";
-import {MatSnackBar} from "@angular/material/snack-bar";
-import {PopupCreateOrUpdatePlaylistComponent} from "../popup-create-or-update-playlist/popup-create-or-update-playlist.component";
-import {PopupDeletePlaylistComponent} from "../popup-delete-playlist/popup-delete-playlist.component";
-import {ThemeService} from "../../../utils/theme/theme.service";
-import {MessageService} from "../../../utils/message/message.service";
-
-
-
-@Component({
- selector: 'app-playlist-list',
- templateUrl: './playlist-list.component.html',
- styleUrls: ['./playlist-list.component.scss']
-})
-export class PlaylistListComponent implements OnInit
-{
- allPlaylists: any[] = []; // toutes les playlists
- @Output() eventEmitter = new EventEmitter(); // pour envoyer au parent la playlist selectionner
- search: string = "" ; // contenu de la barre de recherche
- tabPlaylist: any[] = []; // playlist affichées
- playlistFocusedOn: any;
-
-
- constructor( public themeService: ThemeService,
- public dialog: MatDialog,
- public snackBar: MatSnackBar,
- private messageService: MessageService ) { }
-
-
- ngOnInit(): void
- {
- this.messageService
- .get("playlist/findAll")
- .subscribe( retour => this.ngOnInitCallback(retour), err => this.ngOnInitCallback(err) );
- }
-
-
- ngOnInitCallback(retour: any): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- } else {
- const aux = retour.data.filter( x => x.isActive === true);
- this.allPlaylists = aux.map(x => {
- x["_id"] = x.id ;
- return x;
- });
- this.tabPlaylist = [].concat(this.allPlaylists);
- }
- }
-
-
- // s'execute lorsqu'on écrit sur la barre de recherche
- whileSearch()
- {
- this.tabPlaylist = [];
- for(let playlist of this.allPlaylists)
- {
- if(playlist.name.includes(this.search)) this.tabPlaylist.push(playlist);
- }
- }
-
-
- // click sur créer playlist
- onCreatePlaylist(): void
- {
- const config = {
- data: {
- action: "create",
- tabPlaylist: this.tabPlaylist,
- }
- };
- this.dialog
- .open(PopupCreateOrUpdatePlaylistComponent, config )
- .afterClosed()
- .subscribe(playlist => {
-
- const config = { duration: 1500, panelClass: "custom-class" };
- if((playlist === null) || (playlist === undefined)) {
- this.snackBar.open("Opération annulée", "", config);
- }
- else {
- playlist["_id"] = playlist.id;
- this.allPlaylists.push(playlist);
- this.tabPlaylist.push(playlist);
- this.snackBar.open(`La playlist '${playlist.name}' a bien été créée ✔`, "", config);
- }
- });
- }
-
-
- // click sur update playlist
- onUpdatePlaylist(playlistToUpdate): void
- {
- const config = {
- data: {
- action: "update",
- tabPlaylist: this.tabPlaylist,
- playlistName: playlistToUpdate.name,
- playlistId: playlistToUpdate._id
- }
- };
- this.dialog
- .open(PopupCreateOrUpdatePlaylistComponent, config)
- .afterClosed()
- .subscribe(newName => {
-
- const config = { duration: 1500, panelClass: "custom-class" };
- if((newName === null) || (newName === undefined)) {
- this.snackBar.open("Opération annulée", "", config);
- }
- else {
- let index = this.allPlaylists.findIndex( elt => (elt._id === playlistToUpdate._id));
- this.allPlaylists[index].name = newName;
- index = this.tabPlaylist.findIndex( elt => (elt._id === playlistToUpdate._id));
- this.tabPlaylist[index].name = newName;
- this.snackBar.open(`La playlist '${playlistToUpdate.name}' a bien été mise à jour ✔`, "", config);
- this.eventEmitter.emit(this.tabPlaylist[index]);
- this.playlistFocusedOn = this.tabPlaylist[index]
- }
- });
- }
-
-
- // click sur supprimer playlist
- onDeletePlaylist(playlist): void
- {
- const config = {data: playlist};
- this.dialog
- .open(PopupDeletePlaylistComponent, config)
- .afterClosed()
- .subscribe(retour => {
-
- const config = { duration: 1500, panelClass: "custom-class" };
- if((retour === null) || (retour === undefined)) {
- this.snackBar.open("Opération annulée", "", config);
- }
- else {
- let index = this.allPlaylists.indexOf(playlist);
- if(index >= 0) this.allPlaylists.splice(index, 1);
-
- index = this.tabPlaylist.indexOf(playlist);
- if(index >= 0) this.tabPlaylist.splice(index, 1);
-
- this.eventEmitter.emit(null);
- this.playlistFocusedOn = null;
- this.snackBar.open(`La playlist '${playlist.name}' a bien été suprimée ✔`, "", config);
- }
- });
- }
-
-
- // retourne la class CSS de conteneur de playlist
- getClassOfPlaylistContainer(playlist): string
- {
- if(playlist === this.playlistFocusedOn) return "row btnPlaylist btnPlaylistFocus" ;
- else return "row btnPlaylist" ;
- }
-
-}
diff --git a/userAndAdvertiser/src/app/user/myPlaylists/popup-create-or-update-playlist/popup-create-or-update-playlist.component.html b/userAndAdvertiser/src/app/user/myPlaylists/popup-create-or-update-playlist/popup-create-or-update-playlist.component.html
deleted file mode 100644
index d88fa34..0000000
--- a/userAndAdvertiser/src/app/user/myPlaylists/popup-create-or-update-playlist/popup-create-or-update-playlist.component.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
- Nom de la playlist
-
-
- {{errorMessage}}
-
-
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/user/myPlaylists/popup-create-or-update-playlist/popup-create-or-update-playlist.component.scss b/userAndAdvertiser/src/app/user/myPlaylists/popup-create-or-update-playlist/popup-create-or-update-playlist.component.scss
deleted file mode 100644
index e69de29..0000000
diff --git a/userAndAdvertiser/src/app/user/myPlaylists/popup-create-or-update-playlist/popup-create-or-update-playlist.component.spec.ts b/userAndAdvertiser/src/app/user/myPlaylists/popup-create-or-update-playlist/popup-create-or-update-playlist.component.spec.ts
deleted file mode 100644
index 640bdbc..0000000
--- a/userAndAdvertiser/src/app/user/myPlaylists/popup-create-or-update-playlist/popup-create-or-update-playlist.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PopupCreateOrUpdatePlaylistComponent } from './popup-create-or-update-playlist.component';
-
-describe('PopupCreatePlaylistComponent', () => {
- let component: PopupCreateOrUpdatePlaylistComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PopupCreateOrUpdatePlaylistComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PopupCreateOrUpdatePlaylistComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/user/myPlaylists/popup-create-or-update-playlist/popup-create-or-update-playlist.component.ts b/userAndAdvertiser/src/app/user/myPlaylists/popup-create-or-update-playlist/popup-create-or-update-playlist.component.ts
deleted file mode 100644
index 1be479b..0000000
--- a/userAndAdvertiser/src/app/user/myPlaylists/popup-create-or-update-playlist/popup-create-or-update-playlist.component.ts
+++ /dev/null
@@ -1,90 +0,0 @@
-import {Component, Inject, OnInit} from '@angular/core';
-import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog";
-import {MessageService} from "../../../utils/message/message.service";
-
-
-
-@Component({
- selector: 'app-popup-create-or-update-playlist',
- templateUrl: './popup-create-or-update-playlist.component.html',
- styleUrls: ['./popup-create-or-update-playlist.component.scss']
-})
-export class PopupCreateOrUpdatePlaylistComponent implements OnInit
-{
- name: string = "" ;
- hasError: boolean = false;
- tabNomPlaylist: string[] = [];
- errorMessage: string = "" ;
- action: string = "";
-
-
- constructor( public dialogRef: MatDialogRef,
- @Inject(MAT_DIALOG_DATA) public data,
- private messageService: MessageService) { }
-
-
- ngOnInit(): void
- {
- this.action = this.data.action;
- this.tabNomPlaylist = this.data.tabPlaylist.map( playlist0 => playlist0.name );
- if(this.action === "update") this.name = this.data.playlistName;
- }
-
-
- onValider(): void
- {
- this.checkError();
- if(!this.hasError)
- {
- if(this.action === "create")
- {
- this.messageService
- .post("playlist/create", {name: this.name})
- .subscribe(retour => this.onValiderCallback(retour), err => this.onValiderCallback(err));
- }
- else if(this.action === "update")
- {
- this.messageService
- .put("playlist/update/"+this.data.playlistId, {name: this.name})
- .subscribe(retour => this.onValiderCallback(retour), err => this.onValiderCallback(err));
- }
- }
- }
-
-
- onValiderCallback(retour): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- this.dialogRef.close(null);
- }
- else {
- if(this.action === "create") this.dialogRef.close(retour.data);
- else if(this.action === "update") this.dialogRef.close(this.name);
- }
- }
-
-
- checkError(): void
- {
- if(this.name === "") {
- this.errorMessage = "Le nom ne peut pas être vide" ;
- this.hasError = true;
- }
- else if(this.tabNomPlaylist.includes(this.name)){
- this.errorMessage = "Ce nom est déjà utilisé" ;
- this.hasError = true;
- }
- else {
- this.hasError = false;
- this.errorMessage = "" ;
- }
- }
-
-
- onAnnuler(): void
- {
- this.dialogRef.close(null);
- }
-
-}
diff --git a/userAndAdvertiser/src/app/user/myPlaylists/popup-delete-playlist/popup-delete-playlist.component.html b/userAndAdvertiser/src/app/user/myPlaylists/popup-delete-playlist/popup-delete-playlist.component.html
deleted file mode 100644
index 0335139..0000000
--- a/userAndAdvertiser/src/app/user/myPlaylists/popup-delete-playlist/popup-delete-playlist.component.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
- Êtes-vous sûr de vouloir supprimer {{playlist.name}} ?
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/user/myPlaylists/popup-delete-playlist/popup-delete-playlist.component.scss b/userAndAdvertiser/src/app/user/myPlaylists/popup-delete-playlist/popup-delete-playlist.component.scss
deleted file mode 100644
index e69de29..0000000
diff --git a/userAndAdvertiser/src/app/user/myPlaylists/popup-delete-playlist/popup-delete-playlist.component.spec.ts b/userAndAdvertiser/src/app/user/myPlaylists/popup-delete-playlist/popup-delete-playlist.component.spec.ts
deleted file mode 100644
index 83d1cf7..0000000
--- a/userAndAdvertiser/src/app/user/myPlaylists/popup-delete-playlist/popup-delete-playlist.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PopupDeletePlaylistComponent } from './popup-delete-playlist.component';
-
-describe('PopupDeletePlaylistComponent', () => {
- let component: PopupDeletePlaylistComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PopupDeletePlaylistComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PopupDeletePlaylistComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/user/myPlaylists/popup-delete-playlist/popup-delete-playlist.component.ts b/userAndAdvertiser/src/app/user/myPlaylists/popup-delete-playlist/popup-delete-playlist.component.ts
deleted file mode 100644
index dda9f5b..0000000
--- a/userAndAdvertiser/src/app/user/myPlaylists/popup-delete-playlist/popup-delete-playlist.component.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import {Component, Inject, OnInit} from '@angular/core';
-import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog";
-import {MessageService} from "../../../utils/message/message.service";
-
-@Component({
- selector: 'app-popup-delete-playlist',
- templateUrl: './popup-delete-playlist.component.html',
- styleUrls: ['./popup-delete-playlist.component.scss']
-})
-export class PopupDeletePlaylistComponent implements OnInit
-{
- playlist;
-
- constructor( public dialogRef: MatDialogRef,
- @Inject(MAT_DIALOG_DATA) public data,
- private messageService: MessageService ) { }
-
- ngOnInit(): void
- {
- this.playlist = this.data;
- }
-
- onValidate(): void
- {
- this.messageService
- .delete("playlist/delete/"+this.playlist._id)
- .subscribe( retour => this.onValidateCallback(retour), err => this.onValidateCallback(err));
- }
-
- onValidateCallback(retour: any): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- this.dialogRef.close(null);
- }
- else {
- this.dialogRef.close(true);
- }
- }
-
-}
diff --git a/userAndAdvertiser/src/app/user/myPlaylists/video-list/video-list.component.html b/userAndAdvertiser/src/app/user/myPlaylists/video-list/video-list.component.html
deleted file mode 100644
index 1954fee..0000000
--- a/userAndAdvertiser/src/app/user/myPlaylists/video-list/video-list.component.html
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- {{playlist.name}}
-
-
-
-
- Aucune playlist selectionnée
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

-
![]()
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{video.title}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/user/myPlaylists/video-list/video-list.component.scss b/userAndAdvertiser/src/app/user/myPlaylists/video-list/video-list.component.scss
deleted file mode 100644
index e3af7ce..0000000
--- a/userAndAdvertiser/src/app/user/myPlaylists/video-list/video-list.component.scss
+++ /dev/null
@@ -1,83 +0,0 @@
-.myContainer {
- //background-color: white ;
- background: linear-gradient(top, rgba(38,38,38,0.8), #e6e6e6 25%, #fff 38%, #c5c5c5 87%, rgba(38,38,38,0.8));
- background: -webkit-linear-gradient(top, #c5c5c5, #e6e6e6 25%, #fff 38%, #c5c5c5 87%, #c5c5c5);
- text-align: center;
- width: 35vw;
- margin: 1vh 0vh 3vh 0vh;
- padding: 0px;
- border: solid 2px black;
- border-radius: 10px;
- box-shadow: 10px 5px 5px black;
-}
-
-// TopBorder --------------------------------------------------------
-
-.topBorder {
- margin: 0px 0px 0px 0px;
- //background-color: #dcdcdc;
- background: linear-gradient(top, rgba(38,38,38,0.8), #e6e6e6 25%, #fff 38%, #c5c5c5 87%, rgba(38,38,38,0.8));
- background: -webkit-linear-gradient(top, #c5c5c5, #e6e6e6 25%, #fff 38%, #c5c5c5 87%, #c5c5c5);
- text-align: left;
- padding: 5px 0px 5px 5px;
- border-bottom: solid 1px black;
- border-top-left-radius: 10px;
- border-top-right-radius: 10px;
-}
-
-.spanPlayListTitle {
- font-size: large;
- font-weight: bold;
-}
-
-// Liste des videos ------------------------------------------------
-
-.listVideoContainer {
- height: 65vh;
- background-color: white;
- padding: 0px;
- overflow-y: scroll;
-}
-
-.videoContainer {
- border-bottom: solid 1px black;
- padding: 15px 0px 15px 0px;
- width: 100%;
-}
-
-.imgsContainer {
- position: relative;
- width: 20vw;
- height: 15vh;
- cursor: pointer;
-}
-
-.imgPlay {
- position: absolute;
- margin-left: 9vw;
- width: 3vw;
- margin-top: 5vh;
- height: 6vh;
- padding: 0px 0px 0px 0px;
-}
-
-.imgVideo {
- border: solid 1px black;
- width: 20vw;
- height: 15vh;
- padding: 0px 0px 0px 0px;
-}
-
-// BottomBorder --------------------------------------------------------
-
-.bottomBorder {
- margin: 0px 0px 0px 0px;
- //background-color: #dcdcdc;
- background: linear-gradient(top, rgba(38,38,38,0.8), #e6e6e6 25%, #fff 38%, #c5c5c5 87%, rgba(38,38,38,0.8));
- background: -webkit-linear-gradient(top, #c5c5c5, #e6e6e6 25%, #fff 38%, #c5c5c5 87%, #c5c5c5);
- border-top: solid 1px black;
- border-bottom: solid 1px black;
- font-size: large;
- border-bottom-left-radius: 10px;
- border-bottom-right-radius: 10px;
-}
diff --git a/userAndAdvertiser/src/app/user/myPlaylists/video-list/video-list.component.spec.ts b/userAndAdvertiser/src/app/user/myPlaylists/video-list/video-list.component.spec.ts
deleted file mode 100644
index 403cc76..0000000
--- a/userAndAdvertiser/src/app/user/myPlaylists/video-list/video-list.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { VideoListComponent } from './video-list.component';
-
-describe('VideoListComponent', () => {
- let component: VideoListComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ VideoListComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(VideoListComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/user/myPlaylists/video-list/video-list.component.ts b/userAndAdvertiser/src/app/user/myPlaylists/video-list/video-list.component.ts
deleted file mode 100644
index 25c4edb..0000000
--- a/userAndAdvertiser/src/app/user/myPlaylists/video-list/video-list.component.ts
+++ /dev/null
@@ -1,92 +0,0 @@
-import {Component, Input, OnChanges, SimpleChanges} from '@angular/core';
-import {AddVideoToPlaylistsService} from "../../utils/services/addVideoToPlaylists/add-video-to-playlists.service";
-import {MatSnackBar} from "@angular/material/snack-bar";
-import {Router} from "@angular/router";
-import {MessageService} from "../../../utils/message/message.service";
-import {ThemeService} from "../../../utils/theme/theme.service";
-import {ProfilService} from "../../../utils/profil/profil.service";
-
-
-
-@Component({
- selector: 'app-video-list',
- templateUrl: './video-list.component.html',
- styleUrls: ['./video-list.component.scss']
-})
-export class VideoListComponent implements OnChanges
-{
- @Input() playlist: any;
- videosInPlaylist: any[] = [];
-
-
- constructor( private messageService: MessageService,
- public themeService: ThemeService,
- private addVideoToPlaylistsService: AddVideoToPlaylistsService,
- private snackBar: MatSnackBar,
- private profilService: ProfilService,
- private router: Router ) { }
-
-
- ngOnChanges(changes: SimpleChanges): void
- {
- if((this.playlist !== null) && (this.playlist !== undefined)) this.videosInPlaylist = this.playlist.videos;
- }
-
-
- onAddToPlaylist(video: any): void
- {
- this.addVideoToPlaylistsService.run(video.videoId, video.source, video.interest);
- }
-
-
- onDelete(video0: any, indexVideo: number): void
- {
- const data = {
- videoId: {
- id: video0._id,
- action: "delete"
- }
- }
- this.messageService
- .put("playlist/update/"+this.playlist._id, data)
- .subscribe( ret => this.onDeleteCallback(ret, indexVideo), err => this.onDeleteCallback(err, indexVideo));
- }
-
-
- onDeleteCallback(retour: any, indexVideo: number): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- }
- else {
- this.playlist.videos.splice(indexVideo, 1);
- this.videosInPlaylist.splice(indexVideo, 1);
- let message = "La video a bien été supprimé de la playlist";
- const config = { duration: 1000, panelClass: "custom-class" };
- this.snackBar.open( message, "", config);
- }
- }
-
-
- onVideo(video: any): void
- {
- this.messageService
- .put("video/update/"+video._id, {watchedDate: true})
- .subscribe(ret => this.onVideoCallback(ret), err => this.onVideoCallback(err));
-
- const params = {
- videoId: video.videoId,
- source: video.source,
- _idPlaylist: this.playlist._id,
- from: "myPlaylists",
- };
- this.router.navigate(['/user/watching'], { queryParams: params });
- }
-
-
- onVideoCallback(retour: any): void
- {
- if(retour.status !== "success") console.log(retour);
- }
-
-}
diff --git a/userAndAdvertiser/src/app/user/myProfil/input-interests-profil/input-interests-profil.component.html b/userAndAdvertiser/src/app/user/myProfil/input-interests-profil/input-interests-profil.component.html
deleted file mode 100644
index be2bd07..0000000
--- a/userAndAdvertiser/src/app/user/myProfil/input-interests-profil/input-interests-profil.component.html
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
- {{interest}}
-
-
-
-
-
-
-
-
-
-
-
- {{interest}}
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/user/myProfil/input-interests-profil/input-interests-profil.component.scss b/userAndAdvertiser/src/app/user/myProfil/input-interests-profil/input-interests-profil.component.scss
deleted file mode 100644
index 7628dd4..0000000
--- a/userAndAdvertiser/src/app/user/myProfil/input-interests-profil/input-interests-profil.component.scss
+++ /dev/null
@@ -1,20 +0,0 @@
-mat-form-field {
- width: 100%;
- font-size: small;
-}
-
-mat-chip-list {
- font-size: small;
-}
-
-mat-chip {
- font-size: small;
-}
-
-input {
- font-size: small;
-}
-
-mat-option {
- font-size: small;
-}
diff --git a/userAndAdvertiser/src/app/user/myProfil/input-interests-profil/input-interests-profil.component.spec.ts b/userAndAdvertiser/src/app/user/myProfil/input-interests-profil/input-interests-profil.component.spec.ts
deleted file mode 100644
index 0dd8314..0000000
--- a/userAndAdvertiser/src/app/user/myProfil/input-interests-profil/input-interests-profil.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { InputInterestsProfilComponent } from './input-interests-profil.component';
-
-describe('InputInterestsComponent', () => {
- let component: InputInterestsProfilComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ InputInterestsProfilComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(InputInterestsProfilComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/user/myProfil/input-interests-profil/input-interests-profil.component.ts b/userAndAdvertiser/src/app/user/myProfil/input-interests-profil/input-interests-profil.component.ts
deleted file mode 100644
index 873052a..0000000
--- a/userAndAdvertiser/src/app/user/myProfil/input-interests-profil/input-interests-profil.component.ts
+++ /dev/null
@@ -1,121 +0,0 @@
-import {Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';
-import {COMMA, ENTER} from "@angular/cdk/keycodes";
-import {FormControl} from "@angular/forms";
-import {Observable} from "rxjs";
-import {map, startWith} from "rxjs/operators";
-import {MatChipInputEvent} from "@angular/material/chips";
-import {MatAutocompleteSelectedEvent} from "@angular/material/autocomplete";
-import {MessageService} from "../../../utils/message/message.service";
-
-
-
-@Component({
- selector: 'app-input-interests-profil',
- templateUrl: './input-interests-profil.component.html',
- styleUrls: ['./input-interests-profil.component.scss']
-})
-export class InputInterestsProfilComponent implements OnInit
-{
- selectable = true;
- removable = true;
- separatorKeysCodes: number[] = [ENTER, COMMA];
- formControl = new FormControl();
- filteredInterests: Observable;
- @Input() myInterests: string[] = [];
- allInterests: string[] = [];
- @Output() eventEmitter = new EventEmitter();
- @ViewChild('tagInput') tagInput: ElementRef;
- interestsNotSelected: string[] = [];
-
-
- constructor( private messageService: MessageService ) {}
-
-
- ngOnInit(): void
- {
- this.filteredInterests = this.formControl.valueChanges.pipe(
- startWith(null),
- map((fruit: string | null) => fruit ? this._filter(fruit) : this.interestsNotSelected.slice()));
-
- this.messageService
- .get("misc/getInterests")
- .subscribe( retour => {
-
- if(retour.status !== "success") {
- console.log(retour);
- }
- else {
- this.allInterests = [];
- for(let elt of retour.data)
- {
- this.allInterests.push(elt.interest);
- this.interestsNotSelected.push(elt.interest);
- }
- }
- });
- }
-
-
- add(event: MatChipInputEvent): void
- {
- const value = (event.value || '').trim();
- const index = this.interestsNotSelected.indexOf(value);
- if (value && (index !== -1) && (!this.myInterests.includes(value)))
- {
- this.myInterests.push(value);
- event.chipInput!.clear();
- this.formControl.setValue(null);
- this.eventEmitter.emit(this.myInterests);
- this.interestsNotSelected.splice(index, 1);
- }
- }
-
-
- remove(interest: string): void
- {
- // supprimer 'interest' de 'myInterest'
- const index = this.myInterests.indexOf(interest);
- if (index >= 0) this.myInterests.splice(index, 1);
- this.eventEmitter.emit(this.myInterests);
-
- // remmettre 'interest' dans 'interestsNotSelected'
- if(!this.interestsNotSelected.includes(interest))
- {
- const indexOfAutres = this.interestsNotSelected.indexOf("Autres");
- if(indexOfAutres !== -1)
- {
- this.interestsNotSelected.splice(indexOfAutres, 1);
- if(interest !== "Autres") this.interestsNotSelected.push(interest);
- this.interestsNotSelected.sort();
- this.interestsNotSelected.push("Autres");
- }
- else {
- this.interestsNotSelected.push(interest);
- if(interest !== "Autres") this.interestsNotSelected.sort();
- }
- }
- }
-
-
- selected(event: MatAutocompleteSelectedEvent): void
- {
- const value = event.option.viewValue;
- if(!this.myInterests.includes(value))
- {
- this.myInterests.push(value);
- const index = this.interestsNotSelected.indexOf(value);
- this.interestsNotSelected.splice(index, 1);
- }
- this.tagInput.nativeElement.value = '';
- this.formControl.setValue(null);
- this.eventEmitter.emit(this.myInterests);
- }
-
-
- private _filter(value: string): string[]
- {
- const filterValue = value.toLowerCase();
- return this.interestsNotSelected.filter(fruit => fruit.toLowerCase().includes(filterValue));
- }
-
-}
diff --git a/userAndAdvertiser/src/app/user/myProfil/page-profil-user/page-profil-user.component.html b/userAndAdvertiser/src/app/user/myProfil/page-profil-user/page-profil-user.component.html
deleted file mode 100644
index 7e69ded..0000000
--- a/userAndAdvertiser/src/app/user/myProfil/page-profil-user/page-profil-user.component.html
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
![]()
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Pseudo:
-
{{user.login}}
-
-
-
-
-
Mail:
-
{{user.email}}
-
-
-
-
-
Sexe:
-
- Homme
- Femme
-
-
-
-
-
-
Date de création:
-
{{ user.createdAt | date:'dd/LL/YYYY' }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Date de naissance:
-
{{ user.dateOfBirth | date:'dd/LL/YYYY' }}
-
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/user/myProfil/page-profil-user/page-profil-user.component.scss b/userAndAdvertiser/src/app/user/myProfil/page-profil-user/page-profil-user.component.scss
deleted file mode 100644
index ae34d41..0000000
--- a/userAndAdvertiser/src/app/user/myProfil/page-profil-user/page-profil-user.component.scss
+++ /dev/null
@@ -1,80 +0,0 @@
-.myContainer {
- max-width: 100vw;
- height: 100vh;
- overflow-x: hidden;
-}
-
-
-.boite {
- margin-left: auto;
- margin-right: auto;
- width: 70%;
- margin-top: 10vh;
- 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;
-}
-
-// --------------------------------------------------------------------------------------------
-
-.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;
-}
-
-// --------------------------------------------------------------------------------------------
-
-.interestsContainer {
- width: 70%;
- height: 15vh;
- overflow-y: scroll;
- border: 1px solid black;
-}
-
-.interest {
- border-bottom: 1px solid #dcdcdc;
- padding: 5px 5px 5px 5px;
-}
-
-// --------------------------------------------------------------------------------------------
-
-.btnContainer {
- text-align: center;
- margin-top: 40px;
-}
-.myBtn {
- border: solid 1px black;
- background-color: white;
-}
-
-
diff --git a/userAndAdvertiser/src/app/user/myProfil/page-profil-user/page-profil-user.component.spec.ts b/userAndAdvertiser/src/app/user/myProfil/page-profil-user/page-profil-user.component.spec.ts
deleted file mode 100644
index e8722af..0000000
--- a/userAndAdvertiser/src/app/user/myProfil/page-profil-user/page-profil-user.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PageProfilUserComponent } from './page-profil-user.component';
-
-describe('PageProfilUserComponent', () => {
- let component: PageProfilUserComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PageProfilUserComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PageProfilUserComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/user/myProfil/page-profil-user/page-profil-user.component.ts b/userAndAdvertiser/src/app/user/myProfil/page-profil-user/page-profil-user.component.ts
deleted file mode 100644
index be4615f..0000000
--- a/userAndAdvertiser/src/app/user/myProfil/page-profil-user/page-profil-user.component.ts
+++ /dev/null
@@ -1,89 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import {MatDialog} from "@angular/material/dialog";
-import {MatSnackBar} from "@angular/material/snack-bar";
-import {PopupUpdateUserComponent} from "../popup-update-user/popup-update-user.component";
-import {ThemeService} from "../../../utils/theme/theme.service";
-import {MessageService} from "../../../utils/message/message.service";
-import {ProfilService} from "../../../utils/profil/profil.service";
-
-
-
-@Component({
- selector: 'app-page-profil-user',
- templateUrl: './page-profil-user.component.html',
- styleUrls: ['./page-profil-user.component.scss']
-})
-export class PageProfilUserComponent implements OnInit
-{
- user = {
- _id: "",
- login: "",
- hashPass: "",
- email: "",
- role: {
- name: "user",
- permission: 0,
- isAccepted: false,
- },
- profileImageUrl: "",
- dateOfBirth: null,
- gender: "man",
- interests: [],
- company: "",
- isActive: true,
- createdAt: new Date(),
- updatedAt: new Date(),
- lastConnexion: null
- };
-
-
- constructor( public themeService: ThemeService,
- public dialog: MatDialog,
- private snackBar: MatSnackBar,
- private messageService: MessageService,
- private profilService: ProfilService ) { }
-
-
- ngOnInit(): void
- {
- this.messageService
- .get( "user/findOne/"+this.profilService.getId())
- .subscribe( retour => this.ngOnInitCallback(retour), err => this.ngOnInitCallback(err) )
- }
-
-
- ngOnInitCallback(retour: any)
- {
- if(retour.status !== "success") {
- console.log(retour);
- }
- else {
- this.user = retour.data;
- }
- }
-
-
- onModifier()
- {
- const config = {
- width: '70%',
- data: { user: this.user }
- };
- this.dialog
- .open(PopupUpdateUserComponent, 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.user = retour;
- }
- });
- }
-
-}
diff --git a/userAndAdvertiser/src/app/user/myProfil/popup-update-user/popup-update-user.component.html b/userAndAdvertiser/src/app/user/myProfil/popup-update-user/popup-update-user.component.html
deleted file mode 100644
index 1e583c7..0000000
--- a/userAndAdvertiser/src/app/user/myProfil/popup-update-user/popup-update-user.component.html
+++ /dev/null
@@ -1,125 +0,0 @@
-
-
-
-
-
![]()
-
-
-
-
-
-
-
-
-
-
-
-
{{errorMessage}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Homme
- Femme
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/user/myProfil/popup-update-user/popup-update-user.component.scss b/userAndAdvertiser/src/app/user/myProfil/popup-update-user/popup-update-user.component.scss
deleted file mode 100644
index 636928e..0000000
--- a/userAndAdvertiser/src/app/user/myProfil/popup-update-user/popup-update-user.component.scss
+++ /dev/null
@@ -1,81 +0,0 @@
-.myContainer {
- font-size: small;
-}
-
-button {
- font-size: small;
-}
-
-img {
- margin: 0px 0px 10px 0px;
- width: 5vw;
- height: 5vw;
- border: solid 2px black;
- border-radius: 50%;
- font-size: xxx-large;
-}
-
-.inputUrlImage {
- width: 80%;
- text-align: center;
- margin-left: 10%;
- margin-right: 10%;
- font-size: small;
- border-radius: 5px;
-}
-
-input {
- font-size: small;
-}
-
-// -------------------------------------------------------------------------
-
-.myRow {
- margin: 15px 0px 15px 0px;
-}
-.myLeftLabel {
- text-align: right;
- padding: 0px 0px 0px 0px;
- margin: 0px 0px 0px 0px;
- font-weight: bold;
-}
-.myRightLabel {
- text-align: left;
- padding: 0px 0px 0px 0px;
- margin: 0px 0px 0px 0px;
- font-weight: bold;
-}
-.myValue {
- text-align: left;
- padding: 0px 0px 0px 0px;
- margin: 0px 0px 0px 0px;
-}
-
-// -------------------------------------------------------------------------
-
-// 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 {
- background-color: white !important;
-}
-
-// -------------------------------------------------------------------------
-
-::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/userAndAdvertiser/src/app/user/myProfil/popup-update-user/popup-update-user.component.spec.ts b/userAndAdvertiser/src/app/user/myProfil/popup-update-user/popup-update-user.component.spec.ts
deleted file mode 100644
index a5126ad..0000000
--- a/userAndAdvertiser/src/app/user/myProfil/popup-update-user/popup-update-user.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PopupUpdateUserComponent } from './popup-update-user.component';
-
-describe('PopupUpdateUserComponent', () => {
- let component: PopupUpdateUserComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PopupUpdateUserComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PopupUpdateUserComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/user/myProfil/popup-update-user/popup-update-user.component.ts b/userAndAdvertiser/src/app/user/myProfil/popup-update-user/popup-update-user.component.ts
deleted file mode 100644
index 4c91d19..0000000
--- a/userAndAdvertiser/src/app/user/myProfil/popup-update-user/popup-update-user.component.ts
+++ /dev/null
@@ -1,132 +0,0 @@
-import {Component, Inject, OnInit} from '@angular/core';
-import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog";
-import {MessageService} from "../../../utils/message/message.service";
-import {ProfilService} from "../../../utils/profil/profil.service";
-
-
-
-@Component({
- selector: 'app-popup-update-user',
- templateUrl: './popup-update-user.component.html',
- styleUrls: ['./popup-update-user.component.scss']
-})
-export class PopupUpdateUserComponent implements OnInit
-{
- userCopy;
- newPassword: string = "";
- confirmNewPassword: string = "" ;
- changePassword: boolean = false ;
- hasError: boolean = false;
- errorMessage: string = "" ;
-
-
- constructor( public dialogRef: MatDialogRef,
- @Inject(MAT_DIALOG_DATA) public data,
- private messageService: MessageService,
- private profilService: ProfilService ) { }
-
-
- ngOnInit(): void
- {
- const user0 = this.data.user;
- this.userCopy = {
- _id: user0._id,
- login: user0.login,
- hashPass: user0.hashPass,
- email: user0.email,
- role: {
- name: user0.role.name,
- permission: user0.role.permission,
- isAccepted: user0.role.isAccepted,
- },
- profileImageUrl: user0.profileImageUrl,
- dateOfBirth: user0.dateOfBirth,
- gender: user0.gender,
- interests: [],
- company: "",
- isActive: user0.isActive,
- createdAt: user0.createdAt,
- updatedAt: user0.updatedAt,
- lastConnexion: new Date()
- };
- for(let interest of user0.interests) this.userCopy.interests.push(interest);
- }
-
-
- onValider()
- {
- this.checkField();
- if(!this.hasError)
- {
- if(this.changePassword) this.userCopy.hashPass = this.newPassword;
- const data = {
- login: this.userCopy.login,
- hashPass: this.userCopy.hashPass,
- email: this.userCopy.email,
- profileImageUrl: this.userCopy.profileImageUrl,
- dateOfBirth: this.userCopy.dateOfBirth,
- gender: this.userCopy.gender,
- interests: this.userCopy.interests,
- };
- this.messageService
- .put("user/update/"+this.profilService.getId(), data)
- .subscribe( ret => this.onValiderCallback(ret), err => this.onValiderCallback(err) );
- }
- }
-
-
- onValiderCallback(retour: any)
- {
- if(retour.status !== "success") {
- console.log(retour);
- this.dialogRef.close(null);
- }
- else {
- this.profilService.setProfileImageUrl(this.userCopy.profileImageUrl);
- this.dialogRef.close(this.userCopy);
- }
- }
-
-
- checkField()
- {
- if(this.userCopy.login.length === 0) {
- this.errorMessage = "Veuillez remplir le champ 'pseudo'." ;
- this.hasError = true;
- }
- else if(this.userCopy.email.length === 0) {
- this.errorMessage = "Veuillez remplir le champ 'email'." ;
- this.hasError = true;
- }
- else if(!this.isValidEmail(this.userCopy.email)) {
- this.errorMessage = "Email invalide." ;
- this.hasError = true;
- }
- else if((this.changePassword) && (this.newPassword.length === 0)) {
- this.errorMessage = "Veuillez remplir le champ 'mot de passe'" ;
- this.hasError = true;
- }
- else if((this.changePassword) && (this.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);
- }
-
-
- onEventInputInterests(myInterets: string[])
- {
- this.userCopy.interests = myInterets;
- }
-
-}
diff --git a/userAndAdvertiser/src/app/user/search/page-search/page-search.component.html b/userAndAdvertiser/src/app/user/search/page-search/page-search.component.html
deleted file mode 100644
index 0039bdd..0000000
--- a/userAndAdvertiser/src/app/user/search/page-search/page-search.component.html
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/user/search/page-search/page-search.component.scss b/userAndAdvertiser/src/app/user/search/page-search/page-search.component.scss
deleted file mode 100644
index f80fc45..0000000
--- a/userAndAdvertiser/src/app/user/search/page-search/page-search.component.scss
+++ /dev/null
@@ -1,90 +0,0 @@
-.lightTheme {
- color: black;
- border-color: black;
-}
-.darkTheme {
- color: white;
- border-color: white;
-}
-.myContainer {
- text-align: center;
- max-width: 100vw;
- height: 100vh;
- overflow-x: hidden;
- overflow-y: scroll;
-}
-
-//--------------------------------------------------------------------------------------------
-
-.inputSearchBar {
- width: 40%;
- font-size: large;
- border-bottom: 10px;
- border-radius: 5px;
-}
-
-//--------------------------------------------------------------------------------------------
-
-.celluleGrilleVideo {
- border: solid 2px;
- border-radius: 5px;
- width: 100%;
-}
-.lightTheme .celluleGrilleVideo{
- border-color: black;
- background-color: #f0f0f0;
-}
-.darkTheme .celluleGrilleVideo{
- border-color: white;
- background-color: #646464;
-}
-
-.conteneurVideosGrid {
- height: 75vh;
- width: 100%;
-}
-
-//--------------------------------------------------------------------------------------------
-
-.cellulePub {
- padding: 0px 10px 0px 10px;
- width: 100%;
- text-align: center;
- justify-content: center;
-}
-
-.conteneurPub {
- height: 75vh;
- text-align: center;
- justify-content: center;
- vertical-align: middle;
- display: block;
- width: 75%;
- margin-left: auto;
- margin-right: auto;
- position: absolute;
- top: 50%;
- -ms-transform: translateY(-50%);
- transform: translateY(-50%);
-}
-
-
-
-// -------------------------------------------------------------------------
-
-
-// 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: solid 1px black !important;
- background-color: white !important;
-}
diff --git a/userAndAdvertiser/src/app/user/search/page-search/page-search.component.spec.ts b/userAndAdvertiser/src/app/user/search/page-search/page-search.component.spec.ts
deleted file mode 100644
index 79e1a03..0000000
--- a/userAndAdvertiser/src/app/user/search/page-search/page-search.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PageSearchComponent } from './page-search.component';
-
-describe('PageSearchComponent', () => {
- let component: PageSearchComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PageSearchComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PageSearchComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/user/search/page-search/page-search.component.ts b/userAndAdvertiser/src/app/user/search/page-search/page-search.component.ts
deleted file mode 100644
index 60b9826..0000000
--- a/userAndAdvertiser/src/app/user/search/page-search/page-search.component.ts
+++ /dev/null
@@ -1,118 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import {HttpParams} from "@angular/common/http";
-import {ActivatedRoute} from "@angular/router";
-import {MessageService} from "../../../utils/message/message.service";
-import {ThemeService} from "../../../utils/theme/theme.service";
-
-
-
-let TAB_PLATEFORM = [
- { name: "Youtube", isSelected: true },
- { name: "Dailymotion", isSelected: true }
-];
-
-
-
-@Component({
- selector: 'app-page-search',
- templateUrl: './page-search.component.html',
- styleUrls: ['./page-search.component.scss']
-})
-export class PageSearchComponent implements OnInit
-{
- tabPlateform = TAB_PLATEFORM;
- tabVideo: any[] = [];
- search: string = "";
- ad1: any;
- ad2: any;
- sources: string = "" ;
- indexPage: number = 0;
-
-
- constructor( private messageService: MessageService,
- public themeService: ThemeService,
- private activatedRoute: ActivatedRoute ) { }
-
-
- ngOnInit(): void
- {
- // parametre de la route
- this.activatedRoute
- .queryParams
- .subscribe(paramsFromOldPage => {
- if(paramsFromOldPage.hasOwnProperty("search")) this.search = paramsFromOldPage.search;
- if(paramsFromOldPage.hasOwnProperty("sources"))
- {
- this.sources = paramsFromOldPage.sources;
- if(this.sources === "yt") {
- this.tabPlateform[0].isSelected = true;
- this.tabPlateform[1].isSelected = false;
- }
- else if(this.sources === "dm") {
- this.tabPlateform[0].isSelected = false;
- this.tabPlateform[1].isSelected = true;
- }
- else if(this.sources === "yt,dm") {
- this.tabPlateform[0].isSelected = true;
- this.tabPlateform[1].isSelected = true;
- }
- }
- if(paramsFromOldPage.hasOwnProperty("indexPage")) this.indexPage = parseInt(paramsFromOldPage.indexPage, 10);
- this.onSearch();
- });
-
- // Ask for ads
- let params = new HttpParams();
- params = params.append("quantity", 2);
- this.messageService
- .get("user/ad", params)
- .subscribe(ret => this.adCallback(ret), err => this.adCallback(err));
- }
-
-
- adCallback(retour: any): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- }
- else {
- this.ad1 = retour.data[0];
- this.ad2 = retour.data[1];
- }
- }
-
-
- onSearch()
- {
- let params = new HttpParams();
- params = params.append('q', this.search);
-
- if(this.tabPlateform[0].isSelected && this.tabPlateform[1].isSelected) this.sources = "yt,dm" ;
- else if((!this.tabPlateform[0].isSelected) && this.tabPlateform[1].isSelected) this.sources = "dm" ;
- else if(this.tabPlateform[0].isSelected && (!this.tabPlateform[1].isSelected)) this.sources = "yt" ;
- else this.sources = "" ;
- params = params.append('sources', this.sources);
-
- this.messageService
- .get("video/search", params)
- .subscribe(ret => this.onSearchCallback(ret), err => this.onSearchCallback(err));
- }
-
-
- onSearchCallback(retour: any): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- }
- else {
- this.tabVideo = retour.data;
- }
- }
-
-
- onEnterOnSearchBar(event)
- {
- if(event.key === 'Enter') this.onSearch();
- }
-
-}
diff --git a/userAndAdvertiser/src/app/user/search/video-grid/video-grid.component.html b/userAndAdvertiser/src/app/user/search/video-grid/video-grid.component.html
deleted file mode 100644
index 841d5c3..0000000
--- a/userAndAdvertiser/src/app/user/search/video-grid/video-grid.component.html
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-

-
![]()
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{tronquage(tabVideo[indexPage+k].title)}}
-
-
- {{tabVideo[indexPage+k].views | number: '1.0-0'}} vues.
- Il y a {{dateToElapsedTime(tabVideo[indexPage+k].publishedAt)}}.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{page}}
-
-
- {{page}}
-
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/user/search/video-grid/video-grid.component.scss b/userAndAdvertiser/src/app/user/search/video-grid/video-grid.component.scss
deleted file mode 100644
index 6819fd8..0000000
--- a/userAndAdvertiser/src/app/user/search/video-grid/video-grid.component.scss
+++ /dev/null
@@ -1,84 +0,0 @@
-mat-grid-list {
- margin: 0px 0px 0px 0px;
- padding: 0px 0px 0px 0px;
- border: none;
-}
-
-mat-grid-tile {
- margin: 0px 0px 0px 0px;
- padding: 0px 0px 0px 0px;
-}
-
-.myCell {
- margin: 7px 0px 0px 0px;
- padding: 0px 0px 0px 0px;
- background-color: white;
- border: solid 1px black;
- border-bottom-left-radius: 2px;
- border-bottom-right-radius: 2px;
- cursor: pointer;
-}
-.myCell:hover {
- background-color: #d2d2d2;
-}
-
-
-// ---------------------------------------------------------------------------------------------
-
-
-.imgsContainer {
- //width: 20vw;
- width: 18vw;
- height: 15vh;
-}
-
-.imgPlay {
- position: absolute;
- margin-left: 8vw;
- width: 2.5vw;
- margin-top: 5vh;
- height: 5vh;
- padding: 0px 0px 0px 0px;
-}
-
-.imgVideo {
- width: 18vw;
- height: 15vh;
- padding: 0px 0px 0px 0px;
-}
-
-
-// ---------------------------------------------------------------------------------------------
-
-
-.mat-grid-list-info-video {
- margin: 0px 0px 0px 0px;
- font-size: small;
-}
-
-.mat-grid-tile-info-video {
- border: none;
- font-size: x-small;
- //background: linear-gradient(top, rgba(38,38,38,0.8), #e6e6e6 25%, #fff 38%, #c5c5c5 87%, rgba(38,38,38,0.8));
- //background: -webkit-linear-gradient(top, #c5c5c5, #e6e6e6 25%, #fff 38%, #c5c5c5 87%, #c5c5c5);
-}
-
-mat-icon {
- text-align: right;
-}
-
-
-// ---------------------------------------------------------------------------------------------
-
-
-.paginatorContainer {
- margin: 0px 0px 0px 0px;
- padding: 5px 0px 0px 0px;
- text-align: center;
- background-color: white;
-}
-
-.btnPaginator {
- margin: 0px 0px 0px 0px;
- padding: 0px 0px 0px 0px;
-}
diff --git a/userAndAdvertiser/src/app/user/search/video-grid/video-grid.component.spec.ts b/userAndAdvertiser/src/app/user/search/video-grid/video-grid.component.spec.ts
deleted file mode 100644
index 17cea62..0000000
--- a/userAndAdvertiser/src/app/user/search/video-grid/video-grid.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { VideoGridComponent } from './video-grid.component';
-
-describe('VideoGridComponent', () => {
- let component: VideoGridComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ VideoGridComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(VideoGridComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/user/search/video-grid/video-grid.component.ts b/userAndAdvertiser/src/app/user/search/video-grid/video-grid.component.ts
deleted file mode 100644
index 11dea65..0000000
--- a/userAndAdvertiser/src/app/user/search/video-grid/video-grid.component.ts
+++ /dev/null
@@ -1,128 +0,0 @@
-import {Component, Input, OnChanges, SimpleChanges} from '@angular/core';
-import {AddVideoToPlaylistsService} from "../../utils/services/addVideoToPlaylists/add-video-to-playlists.service";
-import {Router} from "@angular/router";
-import {MessageService} from "../../../utils/message/message.service";
-
-
-
-@Component({
- selector: 'app-video-grid',
- templateUrl: './video-grid.component.html',
- styleUrls: ['./video-grid.component.scss']
-})
-export class VideoGridComponent implements OnChanges
-{
- @Input() tabVideo: any[] = [];
- @Input() search: string = "";
- @Input() sources: string = "";
- @Input() indexPage: number = 0;
- tabPage: number[] = [];
-
-
- constructor( private addVideoToPlaylistsService: AddVideoToPlaylistsService,
- private router: Router,
- private messageService: MessageService ) {}
-
-
- ngOnChanges(changes: SimpleChanges): void
- {
- if(this.tabVideoExists())
- {
- const nbVideo = this.tabVideo.length;
- let nbPage = Math.floor(nbVideo/9);
- if((nbVideo%9) !== 0) nbPage += 1;
- this.tabPage = [];
- for(let i=1 ; i<=nbPage ; i++) this.tabPage.push(i);
- }
- }
-
-
- onAddToPlaylist(video): void
- {
- this.addVideoToPlaylistsService.run(video.videoId, video.source, video.interest);
- }
-
-
- tronquage(str: string)
- {
- if(str.length < 30) return str;
- else return str.substring(0, 27) + "..." ;
- }
-
-
- onVideo(video): void
- {
- const data = { source: video.source, interest: video.interest };
- this.messageService
- .post("video/create/"+video.videoId, data)
- .subscribe(ret => this.onVideoCallback(ret,video), err => this.onVideoCallback(err,video));
- }
-
-
- onVideoCallback(retour: any, video): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- }
- else {
- const params = {
- videoId: video.videoId,
- source: video.source,
- from: "search",
- search: this.search,
- sources: this.sources,
- indexPage: this.indexPage
- };
- this.router.navigate(['/user/watching'], { queryParams: params });
- }
- }
-
-
- dateToElapsedTime(date0): string
- {
- const ellapsedTimeInMilliSeconds = (new Date()).getTime() - (new Date(date0)).getTime();
-
- // seconde
- const ellapsedTimeInSeconds = Math.trunc(ellapsedTimeInMilliSeconds / 1000);
- if(ellapsedTimeInSeconds < 60) {
- if(ellapsedTimeInSeconds <= 1)return ellapsedTimeInSeconds + " seconde" ;
- else return ellapsedTimeInSeconds + " secondes" ;
- }
- // minute
- const ellapsedTimeInMinutes = Math.trunc(ellapsedTimeInSeconds / 60);
- if(ellapsedTimeInMinutes < 60) {
- if(ellapsedTimeInMinutes <= 1) return ellapsedTimeInMinutes + " minute" ;
- else return ellapsedTimeInMinutes + " minutes" ;
- }
- // heure
- const ellapsedTimeInHours = Math.trunc(ellapsedTimeInMinutes / 60);
- if(ellapsedTimeInHours < 24) {
- if(ellapsedTimeInHours <= 1) return ellapsedTimeInHours + " heure" ;
- else return ellapsedTimeInHours + " heures" ;
- }
- // jour
- const ellapsedTimeInDays = Math.trunc(ellapsedTimeInHours / 24);
- if(ellapsedTimeInDays < 31) {
- if(ellapsedTimeInDays <= 1) return ellapsedTimeInDays + " jour" ;
- else return ellapsedTimeInDays + " jours" ;
- }
- // mois
- const ellapsedTimeInMonths = Math.trunc(ellapsedTimeInDays / 31);
- if(ellapsedTimeInMonths < 12) {
- return ellapsedTimeInMonths + " mois" ;
- }
- // an
- const ellapsedTimeInYears = Math.trunc(ellapsedTimeInMonths / 12);
- if(ellapsedTimeInYears <= 1) return ellapsedTimeInYears + " an" ;
- else return ellapsedTimeInYears + " ans" ;
- }
-
-
- tabVideoExists(): boolean
- {
- if((this.tabVideo === null) || (this.tabVideo === undefined)) return false;
- else if(this.tabVideo.length === 0) return false;
- else return true;
- }
-
-}
diff --git a/userAndAdvertiser/src/app/user/utils/components/advert/advert.component.html b/userAndAdvertiser/src/app/user/utils/components/advert/advert.component.html
deleted file mode 100644
index b1c034a..0000000
--- a/userAndAdvertiser/src/app/user/utils/components/advert/advert.component.html
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
![]()
-
-
-
-
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/user/utils/components/advert/advert.component.scss b/userAndAdvertiser/src/app/user/utils/components/advert/advert.component.scss
deleted file mode 100644
index ab03155..0000000
--- a/userAndAdvertiser/src/app/user/utils/components/advert/advert.component.scss
+++ /dev/null
@@ -1,41 +0,0 @@
-.myContainer {
- margin: 0;
- position: absolute;
- top: 50%;
- -ms-transform: translateY(-50%);
- transform: translateY(-50%);
-}
-
-#imgFromSearchOrMyPlaylists {
- max-width: 100%;
- max-height: 100%;
- border: solid 3px black;
- vertical-align: middle;
- cursor: pointer;
-}
-
-.helper {
- display: inline-block;
- height: 100%;
- vertical-align: middle;
-}
-
-// ------------------------------------------------------------------------------
-
-#imgFromWatchingLeft {
- width: 14vw;
- height: 70vh;
- border: solid 3px black;
- position: fixed;
- left: 1vw;
- cursor: pointer;
-}
-
-#imgFromWatchingRight {
- width: 15vw;
- height: 70vh;
- border: solid 3px black;
- position: fixed;
- right: 1vw;
- cursor: pointer;
-}
diff --git a/userAndAdvertiser/src/app/user/utils/components/advert/advert.component.spec.ts b/userAndAdvertiser/src/app/user/utils/components/advert/advert.component.spec.ts
deleted file mode 100644
index 08b7e86..0000000
--- a/userAndAdvertiser/src/app/user/utils/components/advert/advert.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { AdvertComponent } from './advert.component';
-
-describe('PubComponent', () => {
- let component: AdvertComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ AdvertComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(AdvertComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/user/utils/components/advert/advert.component.ts b/userAndAdvertiser/src/app/user/utils/components/advert/advert.component.ts
deleted file mode 100644
index 00b8b44..0000000
--- a/userAndAdvertiser/src/app/user/utils/components/advert/advert.component.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import {Component, Input, OnChanges, SimpleChanges} from '@angular/core';
-
-
-
-@Component({
- selector: 'app-advert',
- templateUrl: './advert.component.html',
- styleUrls: ['./advert.component.scss']
-})
-export class AdvertComponent implements OnChanges
-{
- @Input() ad: any;
- @Input() from: string = "search";
- image: any;
- imageExist: boolean = false;
-
-
- constructor() { }
-
-
- ngOnChanges(changes: SimpleChanges): void
- {
- if((this.ad !== null) && (this.ad !== undefined))
- {
- const nbImages = this.ad.images.length;
- const indexImage = Math.floor(Math.random() * nbImages);
- this.image = this.ad.images[indexImage];
- this.imageExist = true;
- }
- }
-
-
- onClick(): void
- {
- if((this.ad.url !== "") && (this.ad.url !== null) && (this.ad.url !== undefined)) {
- document.location.href = this.ad.url;
- }
- }
-
-}
diff --git a/userAndAdvertiser/src/app/user/utils/components/navbar-user/navbar-user.component.html b/userAndAdvertiser/src/app/user/utils/components/navbar-user/navbar-user.component.html
deleted file mode 100644
index 605e192..0000000
--- a/userAndAdvertiser/src/app/user/utils/components/navbar-user/navbar-user.component.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
diff --git a/userAndAdvertiser/src/app/user/utils/components/navbar-user/navbar-user.component.scss b/userAndAdvertiser/src/app/user/utils/components/navbar-user/navbar-user.component.scss
deleted file mode 100644
index 285d629..0000000
--- a/userAndAdvertiser/src/app/user/utils/components/navbar-user/navbar-user.component.scss
+++ /dev/null
@@ -1,80 +0,0 @@
-.navbar {
- background-color: black;
- height: 60px;
- font-size: medium;
- color: white;
-}
-
-
-.navbar-expand-lg {
- border-bottom: solid;
- border-color: white;
- border-bottom-width: 2px;
-}
-
-
-// PolyNotFound
-.navbar-brand {
- font-family: cursive;
- font-weight: bold;
- font-size: x-large;
- margin-left: 15px;
- color: white;
-}
-
-
-.monLi {
- margin: 0px 10px 0px 10px;
-}
-
-
-.nav-link {
- color: white;
-}
-.nav-link:hover {
- color: grey;
-}
-.myActiveLink {
- text-decoration: underline;
-}
-
-
-.btnDeconnexion {
- font-size: medium;
- margin: 0px 10px 0px 10px
-}
-.btnDeconnexion:hover {
- color: grey;
-}
-
-
-img {
- border: solid 2px white;
- border-radius: 50px;
- margin: 0px 10px 0px 15px;
- width: 40px;
- height: 40px;
-}
-img:hover {
- cursor: pointer;
-}
-
-
-// --------------------------------------------------------------------
-
-
-::ng-deep .mat-slide-toggle-thumb {
- background-color: #c8c8c8;
-}
-
-::ng-deep .mat-slide-toggle-bar {
- background-color: #ffffff;
-}
-
-::ng-deep .mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb {
- background-color: #ffffff;
-}
-
-::ng-deep .mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-bar {
- background-color: #646464;
-}
diff --git a/userAndAdvertiser/src/app/user/utils/components/navbar-user/navbar-user.component.spec.ts b/userAndAdvertiser/src/app/user/utils/components/navbar-user/navbar-user.component.spec.ts
deleted file mode 100644
index 5d03960..0000000
--- a/userAndAdvertiser/src/app/user/utils/components/navbar-user/navbar-user.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { NavbarUserComponent } from './navbar-user.component';
-
-describe('NavbarUserComponent', () => {
- let component: NavbarUserComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ NavbarUserComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(NavbarUserComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/user/utils/components/navbar-user/navbar-user.component.ts b/userAndAdvertiser/src/app/user/utils/components/navbar-user/navbar-user.component.ts
deleted file mode 100644
index ec8576e..0000000
--- a/userAndAdvertiser/src/app/user/utils/components/navbar-user/navbar-user.component.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import {Component} from '@angular/core';
-import {Router} from "@angular/router";
-import {ProfilService} from "../../../../utils/profil/profil.service";
-import {MessageService} from "../../../../utils/message/message.service";
-
-
-
-@Component({
- selector: 'app-navbar-user',
- templateUrl: './navbar-user.component.html',
- styleUrls: ['./navbar-user.component.scss']
-})
-export class NavbarUserComponent
-{
- routes: string[] = [
- "/user", // 0
- "/user/search", // 1
- "/user/myPlaylists", // 2
- "/user/history", // 3
- "/user/myProfil" // 4
- ];
-
- url = this.router.url;
-
- constructor( private router: Router,
- public profilService: ProfilService,
- private messageService: MessageService ) { }
-
- onDeconnexion(): void
- {
- this.messageService
- .delete('user/logout')
- .subscribe(retour => this.onDeconnexionCallback(retour), err => this.onDeconnexionCallback(err));
- }
-
- onDeconnexionCallback(retour: any): void
- {
- if(retour.status !== "success") console.log(retour);
- }
-
-}
diff --git a/userAndAdvertiser/src/app/user/utils/components/popup-add-video-to-playlists/popup-add-video-to-playlists.component.html b/userAndAdvertiser/src/app/user/utils/components/popup-add-video-to-playlists/popup-add-video-to-playlists.component.html
deleted file mode 100644
index 115b281..0000000
--- a/userAndAdvertiser/src/app/user/utils/components/popup-add-video-to-playlists/popup-add-video-to-playlists.component.html
+++ /dev/null
@@ -1,42 +0,0 @@
- Ajouter dans
-
-
-
-
-
-
-
- {{playlist.name}}
-
-
-
-
-
-
-
-
-
-
-
-
-
- Nom playlist
-
-
-
-
-
-
-
-
-
- {{errorMessage}}
-
-
-
-
diff --git a/userAndAdvertiser/src/app/user/utils/components/popup-add-video-to-playlists/popup-add-video-to-playlists.component.scss b/userAndAdvertiser/src/app/user/utils/components/popup-add-video-to-playlists/popup-add-video-to-playlists.component.scss
deleted file mode 100644
index a6f9d32..0000000
--- a/userAndAdvertiser/src/app/user/utils/components/popup-add-video-to-playlists/popup-add-video-to-playlists.component.scss
+++ /dev/null
@@ -1,39 +0,0 @@
-h3 {
- text-align: center;
- margin-bottom: 10px
-}
-
-.conteneurPlaylists {
- margin-top: 10px;
- margin-bottom: 10px;
-}
-
-.conteneurBtnCreerPlaylist {
- margin-top: 10px;
- margin-bottom: 10px;
-}
-
-.conteneurInputNewPlaylist {
- margin-top: 10px;
- margin-bottom: 10px;
-}
-
-
-// -------------------------------------------------------------------------
-
-
-// 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/userAndAdvertiser/src/app/user/utils/components/popup-add-video-to-playlists/popup-add-video-to-playlists.component.spec.ts b/userAndAdvertiser/src/app/user/utils/components/popup-add-video-to-playlists/popup-add-video-to-playlists.component.spec.ts
deleted file mode 100644
index 5ace846..0000000
--- a/userAndAdvertiser/src/app/user/utils/components/popup-add-video-to-playlists/popup-add-video-to-playlists.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PopupAddVideoToPlaylistsComponent } from './popup-add-video-to-playlists.component';
-
-describe('PopupAddVideoToPlaylistsComponent', () => {
- let component: PopupAddVideoToPlaylistsComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PopupAddVideoToPlaylistsComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PopupAddVideoToPlaylistsComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/user/utils/components/popup-add-video-to-playlists/popup-add-video-to-playlists.component.ts b/userAndAdvertiser/src/app/user/utils/components/popup-add-video-to-playlists/popup-add-video-to-playlists.component.ts
deleted file mode 100644
index cfa0119..0000000
--- a/userAndAdvertiser/src/app/user/utils/components/popup-add-video-to-playlists/popup-add-video-to-playlists.component.ts
+++ /dev/null
@@ -1,141 +0,0 @@
-import {Component, Inject, OnInit} from '@angular/core';
-import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog";
-import {MessageService} from "../../../../utils/message/message.service";
-
-
-
-@Component({
- selector: 'app-popup-add-video-to-playlists',
- templateUrl: './popup-add-video-to-playlists.component.html',
- styleUrls: ['./popup-add-video-to-playlists.component.scss']
-})
-export class PopupAddVideoToPlaylistsComponent implements OnInit
-{
- _idVideo: string = "";
- videoId: string = "";
- source: string = "";
- interest: string = "";
-
- tabPlaylistAndBool = [];
-
- goToCreatePlaylist = false;
- newPlaylistName = "";
- hasError: boolean = false;
- tabNomPlaylist: string[] = [];
- errorMessage: string = "" ;
-
-
- constructor( public dialogRef: MatDialogRef,
- @Inject(MAT_DIALOG_DATA) public data,
- private messageService: MessageService) { }
-
-
- ngOnInit(): void
- {
- this._idVideo = this.data._idVideo;
- this.videoId = this.data.videoId;
- this.source = this.data.source;
- this.interest = this.data.interest;
-
- for(let playlist of this.data.playlists)
- {
- if(playlist.videoIds.includes(this._idVideo)) playlist["isSelected"] = true;
- else playlist["isSelected"] = false;
- this.tabPlaylistAndBool.push(playlist);
- this.tabNomPlaylist.push(playlist.name);
- }
- }
-
-
- onValider(): void
- {
- this.checkError();
- if(!this.hasError)
- {
- // --- Existing playlists ---
- let listeDesPlaylistsSelected = "" ;
- let listeDesPlaylistsNotSelected = "" ;
- for(let playlist of this.tabPlaylistAndBool)
- {
- if(playlist.isSelected) listeDesPlaylistsSelected += playlist.id + "," ;
- else listeDesPlaylistsNotSelected += playlist.id + "," ;
- }
- if(listeDesPlaylistsSelected.endsWith(",")) listeDesPlaylistsSelected = listeDesPlaylistsSelected.slice(0, listeDesPlaylistsSelected.length-1);
- if(listeDesPlaylistsNotSelected.endsWith(",")) listeDesPlaylistsNotSelected = listeDesPlaylistsNotSelected.slice(0, listeDesPlaylistsNotSelected.length-1);
-
- if(listeDesPlaylistsSelected !== "")
- {
- const data1 = { videoId: { id: this._idVideo, action: "add" } };
- this.messageService
- .put( "playlist/update/"+listeDesPlaylistsSelected, data1)
- .subscribe( ret => this.callbackForExistingPlaylists(ret), err => this.callbackForExistingPlaylists(err));
- }
- if(listeDesPlaylistsNotSelected !== "")
- {
- const data2 = { videoId: { id: this._idVideo, action: "delete" } };
- this.messageService
- .put( "playlist/update/"+listeDesPlaylistsNotSelected, data2)
- .subscribe( ret => this.callbackForExistingPlaylists(ret), err => this.callbackForExistingPlaylists(err));
- }
-
-
- // --- New playlists ---
- if(this.goToCreatePlaylist)
- {
- const data3 = {
- name: this.newPlaylistName,
- video: {videoId: this.videoId, interest: this.interest, source: this.source}
- };
- this.messageService
- .post("playlist/create", data3)
- .subscribe( ret => this.callbackForNewPlaylist(ret), err => this.callbackForNewPlaylist(err));
- }
-
-
- // --- Finalement ---
- this.dialogRef.close("success");
- }
- }
-
-
- callbackForExistingPlaylists(retour: any): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- this.dialogRef.close(null);
- }
- }
-
-
- callbackForNewPlaylist(retour: any): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- this.dialogRef.close(null);
- }
- }
-
-
- onAnnuler(): void
- {
- this.dialogRef.close("annulation");
- }
-
-
- checkError(): void
- {
- if(this.goToCreatePlaylist && (this.newPlaylistName === "")) {
- this.errorMessage = "Le nom ne peut pas être vide" ;
- this.hasError = true;
- }
- else if(this.goToCreatePlaylist && this.tabNomPlaylist.includes(this.newPlaylistName)){
- this.errorMessage = "Ce nom est déjà utilisé" ;
- this.hasError = true;
- }
- else {
- this.hasError = false;
- this.errorMessage = "" ;
- }
- }
-
-}
diff --git a/userAndAdvertiser/src/app/user/utils/services/addVideoToPlaylists/add-video-to-playlists.service.spec.ts b/userAndAdvertiser/src/app/user/utils/services/addVideoToPlaylists/add-video-to-playlists.service.spec.ts
deleted file mode 100644
index 6097218..0000000
--- a/userAndAdvertiser/src/app/user/utils/services/addVideoToPlaylists/add-video-to-playlists.service.spec.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { TestBed } from '@angular/core/testing';
-
-import { AddVideoToPlaylistsService } from './add-video-to-playlists.service';
-
-describe('PlaylistService', () => {
- let service: AddVideoToPlaylistsService;
-
- beforeEach(() => {
- TestBed.configureTestingModule({});
- service = TestBed.inject(AddVideoToPlaylistsService);
- });
-
- it('should be created', () => {
- expect(service).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/user/utils/services/addVideoToPlaylists/add-video-to-playlists.service.ts b/userAndAdvertiser/src/app/user/utils/services/addVideoToPlaylists/add-video-to-playlists.service.ts
deleted file mode 100644
index e9df3c4..0000000
--- a/userAndAdvertiser/src/app/user/utils/services/addVideoToPlaylists/add-video-to-playlists.service.ts
+++ /dev/null
@@ -1,100 +0,0 @@
-import { Injectable } from '@angular/core';
-import {MatDialog} from "@angular/material/dialog";
-import {PopupAddVideoToPlaylistsComponent} from "../../components/popup-add-video-to-playlists/popup-add-video-to-playlists.component";
-import {MatSnackBar} from "@angular/material/snack-bar";
-import {MessageService} from "../../../../utils/message/message.service";
-
-
-
-@Injectable({
- providedIn: 'root'
-})
-export class AddVideoToPlaylistsService
-{
- private _idVideo: string = "" ;
- private videoId: string = "" ;
- private source: string = "" ;
- private interest: string = "" ;
-
-
- constructor( private messageService: MessageService,
- public dialog: MatDialog,
- private snackBar: MatSnackBar ) { }
-
-
- run(videoId: string, source: string, interest: string): void
- {
- this.videoId = videoId;
- this.source = source;
- this.interest = interest;
-
- const data = { source: this.source, interest: this.interest };
- this.messageService
- .post("video/create/"+this.videoId, data)
- .subscribe(ret => this.afterCreatingVideo(ret), err => this.afterCreatingVideo(err));
- }
-
-
- private afterCreatingVideo(retour: any): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- }
- else {
- this._idVideo = retour.data.id;
- this.messageService
- .get('playlist/findAll')
- .subscribe( ret => this.afterReceivingPlaylists(ret), ret => this.afterReceivingPlaylists(ret) );
- }
- }
-
-
-
- private afterReceivingPlaylists(retour: any): void
- {
- if(retour.status !== "success") {
- console.log(retour);
- }
- else
- {
- const config = {
- width: '30%',
- data: {
- _idVideo: this._idVideo,
- videoId: this.videoId,
- source: this.source,
- interest: this.interest,
- playlists: retour.data.filter(x => x.isActive === true)
- }
- };
- this.dialog
- .open(PopupAddVideoToPlaylistsComponent, config)
- .afterClosed()
- .subscribe(retour => this.afterClosingDialog(retour));
- }
- }
-
-
-
- private afterClosingDialog(retour): void
- {
- let message = "" ;
- switch (retour)
- {
- case "error":
- message = "Echec de l'opération ❌" ;
- break;
- case "success":
- message = "La vidéo a bien été ajoutée ✔" ;
- break;
- case "annulation":
- case null:
- case undefined:
- message = "Opération annulée" ;
- break;
- }
- const config = { duration: 1000, panelClass: "custom-class" };
- this.snackBar.open( message, "", config);
- }
-
-}
diff --git a/userAndAdvertiser/src/app/user/watching/page-watching-video/page-watching-video.component.html b/userAndAdvertiser/src/app/user/watching/page-watching-video/page-watching-video.component.html
deleted file mode 100644
index 9cf8392..0000000
--- a/userAndAdvertiser/src/app/user/watching/page-watching-video/page-watching-video.component.html
+++ /dev/null
@@ -1,233 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

-

-
{{video.title}}
-
-
-
-
-
-
-
-
-
- Vues:
- {{video.views | number: '1.0-0'}}
-
-
-
-
- Date de publication:
- {{ video.publishedAt | date:'dd/LL/YYYY à HH:mm:ss' }}
-
-
-
-
-
- Description
- expand_more
- expand_less
-
-
- {{video.description}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{playlist.name}}
-
-
-
-
-
-
-
-
-

-
![]()
-
-
-
{{video0.title}}
-
-
- {{video.views | number: '1.0-0'}} vues
-
-
- Publiée le {{ video.publishedAt | date:'dd/LL/YYYY à HH:mm:ss' }}
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/userAndAdvertiser/src/app/user/watching/page-watching-video/page-watching-video.component.scss b/userAndAdvertiser/src/app/user/watching/page-watching-video/page-watching-video.component.scss
deleted file mode 100644
index d3f10e8..0000000
--- a/userAndAdvertiser/src/app/user/watching/page-watching-video/page-watching-video.component.scss
+++ /dev/null
@@ -1,159 +0,0 @@
-.lightTheme {
- color: black;
- border-color: black;
-}
-.darkTheme {
- color: white;
- border-color: white;
-}
-.myContainer {
- text-align: center;
- max-width: 100vw;
- height: 100vh;
- overflow-x: hidden;
- overflow-y: scroll;
-}
-
-//--------------------------------------------------------------------------------------------
-
-.inputSearchBar {
- width: 40%;
- font-size: large;
- border-bottom: 10px;
- border-radius: 5px;
-}
-
-//--------------------------------------------------------------------------------------------
-// --- Playlist ---
-
-.playlistContainer {
- border: solid 1px black;
- width: 98%;
- border-top-right-radius: 10px;
- border-top-left-radius: 10px;
-}
-
-.topBorder {
- margin: 0px 0px 0px 0px;
- //background-color: #dcdcdc;
- background: linear-gradient(top, rgba(38,38,38,0.8), #e6e6e6 25%, #fff 38%, #c5c5c5 87%, rgba(38,38,38,0.8));
- background: -webkit-linear-gradient(top, #c5c5c5, #e6e6e6 25%, #fff 38%, #c5c5c5 87%, #c5c5c5);
- text-align: left;
- padding: 5px 0px 5px 5px;
- border-bottom: solid 1px black;
- border-top-right-radius: 10px;
- border-top-left-radius: 10px;
-}
-
-.listVideoContainer {
- height: 70vh;
- background-color: white;
- overflow-y: scroll;
-}
-
-.videoCell {
- margin: 0px 0px 0px 0px;
- padding: 10px 0px 10px 10px;
- border-bottom: solid 1px black;
- cursor: pointer;
-}
-.videoCell:hover {
- background-color: #f0f0f0;
-}
-
-.videoCellFocus {
- background-color: #e6e6e6;
-}
-.videoCellFocus:hover {
- background-color: #e6e6e6;
-}
-
-
-// ----
-
-.imgsContainer {
- position: relative;
- width: 13vw;
- height: 10vh;
- float: left;
-}
-
-.imgVideo {
- border: solid 1px black;
- width: 13vw;
- height: 10vh;
- padding: 0px 0px 0px 0px;
-}
-
-.imgPlay {
- position: absolute;
- margin-left: 6vw;
- width: 2vw;
- margin-top: 3vh;
- height: 4vh;
- padding: 0px 0px 0px 0px;
-}
-
-// ----
-
-.infoContainer {
- display: table-cell;
- margin-left: 13vw;
- height: 10vh;
- padding-left: 5px;
- vertical-align: middle;
-}
-
-.titleContainer {
- font-weight: bold;
- text-align: left;
-}
-
-.viewsContainer {
- text-align: left;
- display: flex;
- align-items: center;
- font-size: x-small;
- color: grey;
-}
-mat-icon {
- vertical-align: middle;
- //font-size: x-small;
-}
-
-.publishedAtContainer {
- text-align: left;
- font-size: x-small;
- color: grey;
-}
-
-
-// ----
-
-.bottomBorder {
- margin: 0px 0px 0px 0px;
- background-color: #dcdcdc;
- border-top: solid 1px black;
- border-bottom: solid 1px black;
- font-size: large;
-}
-
-
-// -------------------------------------------------------------------------
-
-
-// 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: solid 1px black !important;
- background-color: white !important;
-}
diff --git a/userAndAdvertiser/src/app/user/watching/page-watching-video/page-watching-video.component.spec.ts b/userAndAdvertiser/src/app/user/watching/page-watching-video/page-watching-video.component.spec.ts
deleted file mode 100644
index 6790456..0000000
--- a/userAndAdvertiser/src/app/user/watching/page-watching-video/page-watching-video.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PageWatchingVideoComponent } from './page-watching-video.component';
-
-describe('PageWatchingVideoComponent', () => {
- let component: PageWatchingVideoComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ PageWatchingVideoComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PageWatchingVideoComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/user/watching/page-watching-video/page-watching-video.component.ts b/userAndAdvertiser/src/app/user/watching/page-watching-video/page-watching-video.component.ts
deleted file mode 100644
index 4115a7a..0000000
--- a/userAndAdvertiser/src/app/user/watching/page-watching-video/page-watching-video.component.ts
+++ /dev/null
@@ -1,258 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import {ActivatedRoute, Router} from "@angular/router";
-import {AddVideoToPlaylistsService} from "../../utils/services/addVideoToPlaylists/add-video-to-playlists.service";
-import {DomSanitizer, SafeResourceUrl} from "@angular/platform-browser";
-import {HttpParams} from "@angular/common/http";
-import {MessageService} from "../../../utils/message/message.service";
-import {ThemeService} from "../../../utils/theme/theme.service";
-
-
-
-let TAB_PLATEFORM = [
- { name: "youtube", isSelected: false },
- { name: "dailymotion", isSelected: false }
-];
-
-
-
-@Component({
- selector: 'app-page-watching-video',
- templateUrl: './page-watching-video.component.html',
- styleUrls: ['./page-watching-video.component.scss']
-})
-export class PageWatchingVideoComponent implements OnInit
-{
- tabPlateform = TAB_PLATEFORM;
- sources: string = "";
- video = {
- title: "",
- videoId: "",
- views: 0,
- publishedAt: null,
- description: "",
- source: "",
- interest: ""
- };
- search: string = "";
-
- ad1: any;
- ad2: any;
- from: string = "";
-
- playlist: any;
- videosInPlaylist: any[] = [];
-
- paramsFromOldPage ;
-
- hiddenDescription: boolean = true;
- iframeStyle: string = "";
- containerStyle: string = "";
-
-
- constructor( private messageService: MessageService,
- public themeService: ThemeService,
- private activatedRoute: ActivatedRoute,
- private router: Router,
- private _sanitizer: DomSanitizer,
- private addVideoToPlaylistsService: AddVideoToPlaylistsService ) { }
-
-
-
- ngOnInit(): void
- {
- // Ask for videos
- this.activatedRoute
- .queryParams
- .subscribe(paramsFromOldPage => {
-
- this.paramsFromOldPage = paramsFromOldPage;
- const videoId = paramsFromOldPage.videoId;
- let source = paramsFromOldPage.source;
-
- let params = new HttpParams();
- if(source === "Youtube") source = "yt";
- else if(source === "Dailymotion") source = "dm" ;
- params = params.append("source", source);
- this.messageService
- .get("video/get/"+videoId, params)
- .subscribe(ret => this.findVideoCallback(ret), err => this.findVideoCallback(err));
- });
-
-
- // Ask for adverts
- let params = new HttpParams();
- params = params.append("quantity", 2);
- this.messageService
- .get("user/ad", params)
- .subscribe(ret => this.findAdCallback(ret), err => this.findAdCallback(err));
-
-
- // Si on vient de la page "search"
- if(this.router.url.includes("search"))
- {
- this.from = "search" ;
- this.activatedRoute
- .queryParams
- .subscribe(paramsFromOldPage => {
- if(paramsFromOldPage.hasOwnProperty("search")) this.search = paramsFromOldPage.search;
- if(paramsFromOldPage.hasOwnProperty("sources")) {
- this.sources = paramsFromOldPage.sources;
- if(this.sources === "yt") {
- this.tabPlateform[0].isSelected = true;
- this.tabPlateform[1].isSelected = false;
- }
- else if(this.sources === "dm") {
- this.tabPlateform[0].isSelected = false;
- this.tabPlateform[1].isSelected = true;
- }
- else if(this.sources === "yt,dm") {
- this.tabPlateform[0].isSelected = true;
- this.tabPlateform[1].isSelected = true;
- }
- }
- });
- }
- // si on vient de la page "myPlaylists"
- else if(this.router.url.includes("myPlaylists"))
- {
- this.from = "myPlaylists";
- this.activatedRoute
- .queryParams
- .subscribe(paramsFromOldPage => {
- const _idPlaylist = paramsFromOldPage._idPlaylist;
- this.messageService
- .get("playlist/findOne/"+_idPlaylist)
- .subscribe(ret => this.afterReceivingPlaylistWithVideo(ret), err => this.afterReceivingPlaylistWithVideo(err));
- });
-
- }
- // si on vient de la page "history"
- else if(this.router.url.includes("history")) this.from = "history";
-
-
- // style
- if(this.from === 'search' || this.from === 'history') {
- this.containerStyle = "margin: 0 auto; width: 64vw;" ;
- this.iframeStyle = "width: 64vw; height: 60vh;" ;
- }
- else {
- this.containerStyle = "margin: 0 auto; width: 48vw;" ;
- this.iframeStyle = "width: 48vw; height: 45vh;" ;
- }
- }
-
-
-
- findVideoCallback(retour: any): void
- {
- if(retour.status !== "success") {
- console.log("findVideoCallback: ");
- console.log(retour);
- }
- else {
- this.video = retour.data;
- }
- }
-
-
- findAdCallback(retour: any): void
- {
- if(retour.status !== "success") {
- console.log("findAdCallback: ");
- console.log(retour);
- }
- else {
- this.ad1 = retour.data[0];
- this.ad2 = retour.data[1];
- }
- }
-
-
- afterReceivingPlaylistWithVideo(retour: any): void
- {
- if(retour.status !== "success") {
- console.log("afterReceivingPlaylistWithVideo");
- console.log(retour);
- }
- else {
- this.playlist = retour.data;
- this.videosInPlaylist = retour.data.videos;
- }
- }
-
-
- onSearch()
- {
- if(this.tabPlateform[0].isSelected && this.tabPlateform[1].isSelected) this.sources = "yt,dm" ;
- else if((!this.tabPlateform[0].isSelected) && this.tabPlateform[1].isSelected) this.sources = "dm" ;
- else if(this.tabPlateform[0].isSelected && (!this.tabPlateform[1].isSelected)) this.sources = "yt" ;
- else this.sources = "" ;
- let options = {
- queryParams: {
- search: this.search,
- sources: this.sources,
- indexPage: 0,
- }
- };
- this.router.navigate(['/user/search'], options);
- }
-
-
- onAddToPlaylist(): void
- {
- this.addVideoToPlaylistsService.run(this.video.videoId, this.video.source, this.video.interest);
- }
-
-
- onRetour(): void
- {
- let url: string[] = [];
- let options = {};
-
- if(this.from === 'search')
- {
- url = ['/user/search'];
- options = {
- queryParams: {
- search: this.paramsFromOldPage.search,
- sources: this.paramsFromOldPage.sources,
- indexPage: this.paramsFromOldPage.indexPage,
- }
- };
- }
- else if(this.from === 'myPlaylists') url = ["/user/myPlaylists"];
- else if(this.from === 'history') url = ["/user/history"];
-
- this.router.navigate(url, options);
- }
-
-
- safeUrl(videoId: string, source: string): SafeResourceUrl
- {
- let videoUrl = "" ;
- if(source === 'Youtube') videoUrl = "https://www.youtube.com/embed/" + videoId + "?autoplay=1";
- else if(source === 'Dailymotion') videoUrl = "https://www.dailymotion.com/embed/video/" + videoId + "?autoplay=true";
- return this._sanitizer.bypassSecurityTrustResourceUrl(videoUrl);
- }
-
-
- // retourne la classe CSS de videoCell
- getClassOfVideoCell(video0): string
- {
- if(video0 === this.video) return "videoCell videoCellFocus" ;
- else return "videoCell" ;
- }
-
-
- onEnterOnSearchBar(event)
- {
- if(event.key === 'Enter') this.onSearch();
- }
-
-
- playlistExists(): boolean
- {
- return ((this.playlist !== null) && (this.playlist !== undefined));
- }
-
-}
diff --git a/userAndAdvertiser/src/app/utils/message/message.service.spec.ts b/userAndAdvertiser/src/app/utils/message/message.service.spec.ts
deleted file mode 100644
index 1db761b..0000000
--- a/userAndAdvertiser/src/app/utils/message/message.service.spec.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { TestBed } from '@angular/core/testing';
-
-import { MessageService } from './message.service';
-
-describe('MessageService', () => {
- let service: MessageService;
-
- beforeEach(() => {
- TestBed.configureTestingModule({});
- service = TestBed.inject(MessageService);
- });
-
- it('should be created', () => {
- expect(service).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/utils/message/message.service.ts b/userAndAdvertiser/src/app/utils/message/message.service.ts
deleted file mode 100644
index c20d5b1..0000000
--- a/userAndAdvertiser/src/app/utils/message/message.service.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import { Injectable } from '@angular/core';
-import {HttpClient, HttpParams} from "@angular/common/http";
-import {Observable} from "rxjs";
-import {environment} from "../../../environments/environment";
-
-@Injectable({
- providedIn: 'root'
-})
-export class MessageService
-{
-
- constructor( private http: HttpClient ) { }
-
- post(url: string, data: any): Observable
- {
- const urlComplete = environment.debutUrl + url ;
- return this.http.post(urlComplete, data, {withCredentials: true});
- }
-
- get(url: string, params:HttpParams = new HttpParams()): Observable
- {
- const urlComplete = environment.debutUrl + url ;
- return this.http.get(urlComplete,{ withCredentials: true, params: params });
- }
-
- put(url: string, data: any): Observable
- {
- const urlComplete = environment.debutUrl + url ;
- return this.http.put(urlComplete, data, {withCredentials: true});
- }
-
- delete(url: string): Observable
- {
- const urlComplete = environment.debutUrl + url ;
- return this.http.delete(urlComplete,{withCredentials: true});
- }
-
-}
diff --git a/userAndAdvertiser/src/app/utils/profil/profil.service.spec.ts b/userAndAdvertiser/src/app/utils/profil/profil.service.spec.ts
deleted file mode 100644
index 5cee000..0000000
--- a/userAndAdvertiser/src/app/utils/profil/profil.service.spec.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { TestBed } from '@angular/core/testing';
-
-import { ProfilService } from './profil.service';
-
-describe('ProfilService', () => {
- let service: ProfilService;
-
- beforeEach(() => {
- TestBed.configureTestingModule({});
- service = TestBed.inject(ProfilService);
- });
-
- it('should be created', () => {
- expect(service).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/utils/profil/profil.service.ts b/userAndAdvertiser/src/app/utils/profil/profil.service.ts
deleted file mode 100644
index 4bbe5ea..0000000
--- a/userAndAdvertiser/src/app/utils/profil/profil.service.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { Injectable } from '@angular/core';
-
-@Injectable({
- providedIn: 'root'
-})
-export class ProfilService
-{
-
- getId(): string
- {
- return localStorage.getItem('id');
- }
-
- getProfileImageUrl(): string
- {
- return localStorage.getItem('profileImageUrl');
- }
-
- setId(id: string): void
- {
- localStorage.setItem('id', id);
- }
-
- setProfileImageUrl(profileImageUrl: string): void
- {
- localStorage.setItem('profileImageUrl', profileImageUrl);
- }
-
-}
diff --git a/userAndAdvertiser/src/app/utils/theme/theme.service.spec.ts b/userAndAdvertiser/src/app/utils/theme/theme.service.spec.ts
deleted file mode 100644
index 1c2957b..0000000
--- a/userAndAdvertiser/src/app/utils/theme/theme.service.spec.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { TestBed } from '@angular/core/testing';
-
-import { ThemeService } from './theme.service';
-
-describe('ThemeService', () => {
- let service: ThemeService;
-
- beforeEach(() => {
- TestBed.configureTestingModule({});
- service = TestBed.inject(ThemeService);
- });
-
- it('should be created', () => {
- expect(service).toBeTruthy();
- });
-});
diff --git a/userAndAdvertiser/src/app/utils/theme/theme.service.ts b/userAndAdvertiser/src/app/utils/theme/theme.service.ts
deleted file mode 100644
index 00768e5..0000000
--- a/userAndAdvertiser/src/app/utils/theme/theme.service.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { Injectable } from '@angular/core';
-
-@Injectable({
- providedIn: 'root'
-})
-export class ThemeService
-{
-
- isLightTheme = true;
-
- getClassTheme(): string
- {
- if(this.isLightTheme) return "lightTheme" ;
- else return "darkTheme"
- }
-
-}
diff --git a/userAndAdvertiser/src/assets/.gitkeep b/userAndAdvertiser/src/assets/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/userAndAdvertiser/src/assets/darkBackground.webp b/userAndAdvertiser/src/assets/darkBackground.webp
deleted file mode 100644
index 0d0692b8c331ccbacf8631b679686525fbb5c85a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 712
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
C8Oa_1
diff --git a/userAndAdvertiser/src/assets/logo.png b/userAndAdvertiser/src/assets/logo.png
deleted file mode 100644
index 93b93755e49963d09c63cbd0df33669376c8f90d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 5798
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
diff --git a/userAndAdvertiser/src/assets/logo_plateforms/dailymotion.png b/userAndAdvertiser/src/assets/logo_plateforms/dailymotion.png
deleted file mode 100644
index d35ee8a8b0e209615e57966d3d6f108844b2135d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 6478
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
diff --git a/userAndAdvertiser/src/assets/play.png b/userAndAdvertiser/src/assets/play.png
deleted file mode 100644
index 194f73beb22f040cf7ef156fe3f6403c1b5323e0..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 3586
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