diff --git a/src/app/routes/my-profile/my-profile.component.spec.ts b/src/app/routes/my-profile/my-profile.component.spec.ts index a1328b8..59f5295 100644 --- a/src/app/routes/my-profile/my-profile.component.spec.ts +++ b/src/app/routes/my-profile/my-profile.component.spec.ts @@ -6,7 +6,7 @@ import { ProfileRepository } from '@app/domain/profiles/profile.repository'; import { PROFILE_REPOSITORY_TOKEN } from '@app/infrastructure/profiles/profile-repository.token'; import { of } from 'rxjs'; import { Profile } from '@app/domain/profiles/profile.model'; -import {ToastrService} from "ngx-toastr"; +import { ToastrService } from 'ngx-toastr'; describe('MyProfileComponent', () => { let component: MyProfileComponent; diff --git a/src/app/routes/profile/profile-detail/profile-detail.component.html b/src/app/routes/profile/profile-detail/profile-detail.component.html index 1cc8354..cf76607 100644 --- a/src/app/routes/profile/profile-detail/profile-detail.component.html +++ b/src/app/routes/profile/profile-detail/profile-detail.component.html @@ -236,19 +236,29 @@
-

- +
+
- - - Projets -

+ + + +
+
+

+ Explorer les projets +

+

+ Découvrez les réalisations de la communauté +

+
+ diff --git a/src/app/shared/components/my-profile-project-list/my-profile-project-list.component.html b/src/app/shared/components/my-profile-project-list/my-profile-project-list.component.html index 90bfd62..c5b4952 100644 --- a/src/app/shared/components/my-profile-project-list/my-profile-project-list.component.html +++ b/src/app/shared/components/my-profile-project-list/my-profile-project-list.component.html @@ -1,33 +1,124 @@ -
-
-

Mes projets

- - @if (projects()) { -
- + + + + - } - -
- } -
- @if (projectIdSelected() != null) { + @for (project of projects(); track project.id) { + + } + + + +
+ + + +
+
+ + +

+ + + + Vous avez {{ projects().length }} projet(s) enregistré(s) +

+
+
+ + + @if (projectIdSelected() != null) { +
- } -
- + + } @else { + +
+
+ + + +
+

+ Aucun projet sélectionné +

+

+ Sélectionnez un projet existant ou créez-en un nouveau pour commencer +

+
+ } + } diff --git a/src/app/shared/components/my-profile-update-project-form/my-profile-update-project-form.component.html b/src/app/shared/components/my-profile-update-project-form/my-profile-update-project-form.component.html index 080bdcf..2fdd243 100644 --- a/src/app/shared/components/my-profile-update-project-form/my-profile-update-project-form.component.html +++ b/src/app/shared/components/my-profile-update-project-form/my-profile-update-project-form.component.html @@ -1,98 +1,189 @@ @if (projectId) { - @if (projectId == 'add'.toLowerCase()) { - - } @else { - - } +
+ +
+
+
+ + + +
+

Image du projet

+
-

- Information du projet -

- - @if (loading().isLoading) { - @switch (loading().action) { - @case (ActionType.NONE || ActionType.CREATE || ActionType.DELETE) {} - @default { -

Chargement...

+ @if (projectId == 'add'.toLowerCase()) { + + } @else { + } - } - } @else { -
- -
- +
-
+ +
+
+
+ + fill-rule="evenodd" + d="M4 5a2 2 0 012-2 3 3 0 003 3h2a3 3 0 003-3 2 2 0 012 2v11a2 2 0 01-2 2H6a2 2 0 01-2-2V5zm3 4a1 1 0 000 2h.01a1 1 0 100-2H7zm3 0a1 1 0 000 2h3a1 1 0 100-2h-3zm-3 4a1 1 0 100 2h.01a1 1 0 100-2H7zm3 0a1 1 0 100 2h3a1 1 0 100-2h-3z" + clip-rule="evenodd" + />
+

Informations du projet

- -
- + @if (loading().isLoading) { + @switch (loading().action) { + @case (ActionType.NONE || ActionType.CREATE || ActionType.DELETE) {} + @default { + + + } + } + } @else { + + + +
+ +
+
+ + + +
+ +
+
-
- - - -
-
+ +
+ +
+
+ + + +
+ +
+
- -
- -
+ +
+ + +
- + +
+ - - - } + +
+ + } +
+
} diff --git a/src/app/shared/components/my-profile-update-project-form/my-profile-update-project-form.component.scss b/src/app/shared/components/my-profile-update-project-form/my-profile-update-project-form.component.scss index e69de29..fc1cc26 100644 --- a/src/app/shared/components/my-profile-update-project-form/my-profile-update-project-form.component.scss +++ b/src/app/shared/components/my-profile-update-project-form/my-profile-update-project-form.component.scss @@ -0,0 +1,30 @@ +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.animate-fade-in { + animation: fadeIn 0.6s ease-out; +} + +.animation-delay-100 { + animation-delay: 0.1s; + opacity: 0; + animation-fill-mode: forwards; +} + +@media (prefers-reduced-motion: reduce) { + *, + *::before, + *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + } +} diff --git a/src/app/shared/components/my-profile-update-project-form/my-profile-update-project-form.component.ts b/src/app/shared/components/my-profile-update-project-form/my-profile-update-project-form.component.ts index 4acb6da..9a814c7 100644 --- a/src/app/shared/components/my-profile-update-project-form/my-profile-update-project-form.component.ts +++ b/src/app/shared/components/my-profile-update-project-form/my-profile-update-project-form.component.ts @@ -17,11 +17,18 @@ import { AuthService } from '@app/core/services/authentication/auth.service'; import { ProjectFacade } from '@app/ui/projects/project.facade'; import { CreateProjectDto } from '@app/domain/projects/dto/create-project.dto'; import { ActionType } from '@app/domain/action-type.util'; +import { LoadingComponent } from '@app/shared/components/loading/loading.component'; @Component({ selector: 'app-my-profile-update-project-form', standalone: true, - imports: [PaginatorModule, ReactiveFormsModule, NgClass, ProjectPictureFormComponent], + imports: [ + PaginatorModule, + ReactiveFormsModule, + NgClass, + ProjectPictureFormComponent, + LoadingComponent, + ], templateUrl: './my-profile-update-project-form.component.html', styleUrl: './my-profile-update-project-form.component.scss', }) diff --git a/src/app/shared/components/project-item/project-item.component.html b/src/app/shared/components/project-item/project-item.component.html index 5f4f89e..fba895c 100644 --- a/src/app/shared/components/project-item/project-item.component.html +++ b/src/app/shared/components/project-item/project-item.component.html @@ -1,32 +1,56 @@ @if (project) { -
- @if (project.fichier) { - {{ project.nom }} - } @else { - nouveau-projet - } +
+ +
+ @if (project.fichier) { + {{ project.nom }} + } @else { + {{ project.nom }} + } -
-

{{ project.nom }}

-

{{ project.description }}

-
+ +
+
+ + + + }
+ + +
} diff --git a/src/app/shared/components/project-item/project-item.component.scss b/src/app/shared/components/project-item/project-item.component.scss index e69de29..1922bd8 100644 --- a/src/app/shared/components/project-item/project-item.component.scss +++ b/src/app/shared/components/project-item/project-item.component.scss @@ -0,0 +1,39 @@ +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.animate-fade-in { + animation: fadeIn 0.6s ease-out; +} + +/* Line clamp pour limiter le texte */ +.line-clamp-2 { + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; +} + +.line-clamp-3 { + display: -webkit-box; + -webkit-line-clamp: 3; + -webkit-box-orient: vertical; + overflow: hidden; +} + +@media (prefers-reduced-motion: reduce) { + *, + *::before, + *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + } +} diff --git a/src/app/shared/components/project-list/project-list.component.html b/src/app/shared/components/project-list/project-list.component.html index 9a0b0a3..000848a 100644 --- a/src/app/shared/components/project-list/project-list.component.html +++ b/src/app/shared/components/project-list/project-list.component.html @@ -1,12 +1,41 @@ -
-
-

Explorer les projets

-
- @for (project of projects(); track project) { - - } @empty { -

Aucun projet

- } -
+
+ +
+ @for (project of projects(); track project.id) { + + } @empty { + +
+
+
+ + + +
+

+ Aucun projet disponible +

+

+ Il n'y a pas encore de projets à explorer. Revenez plus tard pour découvrir de nouvelles + réalisations ! +

+
+
+ }
diff --git a/src/app/shared/components/project-list/project-list.component.scss b/src/app/shared/components/project-list/project-list.component.scss index e69de29..597967c 100644 --- a/src/app/shared/components/project-list/project-list.component.scss +++ b/src/app/shared/components/project-list/project-list.component.scss @@ -0,0 +1,24 @@ +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.animate-fade-in { + animation: fadeIn 0.6s ease-out; +} + +@media (prefers-reduced-motion: reduce) { + *, + *::before, + *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + } +} diff --git a/src/app/shared/components/user-form/user-form.component.html b/src/app/shared/components/user-form/user-form.component.html index 05b75a3..37c4b80 100644 --- a/src/app/shared/components/user-form/user-form.component.html +++ b/src/app/shared/components/user-form/user-form.component.html @@ -1,35 +1,107 @@
-

Mon Identité

- -
- - + +
+
+ + + +
+

Mon identité

-
- - + +
+ +
+
+ + + +
+ +
+ +
+ +
+
+ + + +
+ +
+
+ + diff --git a/src/app/shared/components/user-form/user-form.component.scss b/src/app/shared/components/user-form/user-form.component.scss index e69de29..597967c 100644 --- a/src/app/shared/components/user-form/user-form.component.scss +++ b/src/app/shared/components/user-form/user-form.component.scss @@ -0,0 +1,24 @@ +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.animate-fade-in { + animation: fadeIn 0.6s ease-out; +} + +@media (prefers-reduced-motion: reduce) { + *, + *::before, + *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + } +} diff --git a/src/app/shared/components/vertical-profile-item/vertical-profile-item.component.html b/src/app/shared/components/vertical-profile-item/vertical-profile-item.component.html index 4f58ba3..60fd723 100644 --- a/src/app/shared/components/vertical-profile-item/vertical-profile-item.component.html +++ b/src/app/shared/components/vertical-profile-item/vertical-profile-item.component.html @@ -2,59 +2,97 @@ -
+ +
+ @if (profile.estVerifier) { - - - - } - @if (user.avatar) { - {{ user.username }} - } @else { - {{ user.username }} +
+
+ + + +
+
} -
+ +
+ +
+
+ @if (user.avatar) { + {{ user.username }} + } @else { + {{ user.username }} + } +
+
+ + @if (user.name) { -

+

{{ user.name }}

} @else if (user.username) { -

+

{{ user.username }}

} @else { -

- Non mentionné -

+

Non mentionné

} -

{{ profile.profession }}

- - + + +

+ {{ profile.profession || 'Profession non renseignée' }} +

+ + +
+ +
+ +
+ + + @if (profile.reseaux) { +
+ +
+ } +
+ + +
} diff --git a/src/app/shared/components/vertical-profile-item/vertical-profile-item.component.scss b/src/app/shared/components/vertical-profile-item/vertical-profile-item.component.scss index e69de29..1ac15f2 100644 --- a/src/app/shared/components/vertical-profile-item/vertical-profile-item.component.scss +++ b/src/app/shared/components/vertical-profile-item/vertical-profile-item.component.scss @@ -0,0 +1,23 @@ +@keyframes pulseSlow { + 0%, + 100% { + opacity: 1; + } + 50% { + opacity: 0.8; + } +} + +.animate-pulse-slow { + animation: pulseSlow 3s ease-in-out infinite; +} + +@media (prefers-reduced-motion: reduce) { + *, + *::before, + *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + } +} diff --git a/src/app/shared/components/vertical-profile-list/vertical-profile-list.component.html b/src/app/shared/components/vertical-profile-list/vertical-profile-list.component.html index edf49a3..30166f4 100644 --- a/src/app/shared/components/vertical-profile-list/vertical-profile-list.component.html +++ b/src/app/shared/components/vertical-profile-list/vertical-profile-list.component.html @@ -1,10 +1,41 @@ -
-
-
+
+
+ +
@for (profile of profiles; track profile.id) { } @empty { -

Aucun profile trouvée

+ +
+
+
+ + + +
+

+ Aucun profil trouvé +

+

+ Aucun profil ne correspond à votre recherche. Essayez de modifier vos critères. +

+
+
}
diff --git a/src/app/shared/components/vertical-profile-list/vertical-profile-list.component.scss b/src/app/shared/components/vertical-profile-list/vertical-profile-list.component.scss index e69de29..597967c 100644 --- a/src/app/shared/components/vertical-profile-list/vertical-profile-list.component.scss +++ b/src/app/shared/components/vertical-profile-list/vertical-profile-list.component.scss @@ -0,0 +1,24 @@ +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.animate-fade-in { + animation: fadeIn 0.6s ease-out; +} + +@media (prefers-reduced-motion: reduce) { + *, + *::before, + *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + } +} diff --git a/src/app/shared/features/pdf-viewer/pdf-viewer.component.html b/src/app/shared/features/pdf-viewer/pdf-viewer.component.html index 4d0d452..9f03c21 100644 --- a/src/app/shared/features/pdf-viewer/pdf-viewer.component.html +++ b/src/app/shared/features/pdf-viewer/pdf-viewer.component.html @@ -1,18 +1,101 @@ @if (cv_link()) { - + +
+ +
+
+
+ + + +
+

Mon CV

+
+ + + + + + + + +
+ + +
+ +
+
} @else { -

Aucun curriculum vitae (CV) n'a été rajouté.

+ +
+
+ + + +
+

Aucun CV disponible

+

+ Aucun curriculum vitae n'a été ajouté pour le moment. Veuillez télécharger votre CV pour le + visualiser ici. +

+
} diff --git a/src/app/shared/features/update-user/update-user.component.html b/src/app/shared/features/update-user/update-user.component.html index 669fbec..a4f03e6 100644 --- a/src/app/shared/features/update-user/update-user.component.html +++ b/src/app/shared/features/update-user/update-user.component.html @@ -28,25 +28,6 @@
-
-
- - - -
-

Informations personnelles

-