Ceci est un espace d'échange entre vous et l’association.
@@ -24,7 +24,7 @@
diff --git a/src/app/features/activity/components/activity-messages-card/activity-messages-card.component.scss b/src/app/features/activity/components/activity-messages-card/activity-messages-card.component.scss
index 9dec8ff4..741c7b34 100644
--- a/src/app/features/activity/components/activity-messages-card/activity-messages-card.component.scss
+++ b/src/app/features/activity/components/activity-messages-card/activity-messages-card.component.scss
@@ -22,9 +22,9 @@ p-card {
}
.intro {
- background-color: var(--primary-light-color);
- color: var(--background-color-white);
- padding: 12px 16px;
+ font-style: italic;
+ padding: 2px 16px;
+ border: 1px dashed grey;
border-radius: var(--border-radius) var(--border-radius) 0 0;
margin-bottom: 8px;
text-align: center;
diff --git a/src/app/features/activity/components/activity-messages-card/activity-messages-card.component.ts b/src/app/features/activity/components/activity-messages-card/activity-messages-card.component.ts
index a7dae73c..b66c0645 100644
--- a/src/app/features/activity/components/activity-messages-card/activity-messages-card.component.ts
+++ b/src/app/features/activity/components/activity-messages-card/activity-messages-card.component.ts
@@ -1,5 +1,5 @@
import { AsyncPipe, NgClass } from '@angular/common';
-import { Component, inject, Input, OnInit } from '@angular/core';
+import { Component, ElementRef, inject, Input, OnInit, ViewChild } from '@angular/core';
import { FormBuilder, ReactiveFormsModule } from '@angular/forms';
import { Store } from '@ngrx/store';
import { MenuItem } from 'primeng/api';
@@ -24,6 +24,7 @@ export class ActivityMessagesCardComponent implements OnInit {
private _activityFacadeService: ActivityFacadeService = inject(ActivityFacadeService);
private _fb: FormBuilder = new FormBuilder();
@Input() activityId!: string;
+ @ViewChild('messageContainer') messageContainer!: ElementRef;
messages$!: Observable;
emojis: MenuItem[] = [
@@ -69,5 +70,14 @@ export class ActivityMessagesCardComponent implements OnInit {
this._activityFacadeService.postActivityMessage(newMessage);
this.messageForm.reset();
+ setTimeout(() => this._scrollToBottom(), 100);
+ }
+
+ private _scrollToBottom(): void {
+ try {
+ this.messageContainer.nativeElement.scrollTop = this.messageContainer.nativeElement.scrollHeight;
+ } catch (err) {
+ console.error('Scroll failed:', err);
+ }
}
}
diff --git a/src/app/features/activity/components/inscription-badge/inscription-badge.component.scss b/src/app/features/activity/components/inscription-badge/inscription-badge.component.scss
index e247a39e..87bd4884 100644
--- a/src/app/features/activity/components/inscription-badge/inscription-badge.component.scss
+++ b/src/app/features/activity/components/inscription-badge/inscription-badge.component.scss
@@ -11,7 +11,7 @@
text-align: center;
width: 75px;
height: 30px;
- background-color: var(--secondary-validate-color);
+ background-color: var(--ternary-validate-color);
color: var(--background-color-white);
font-size: var(--font-size-p-mini);
font-family: var(--font-family-p);
diff --git a/src/app/features/activity/pages/activities-home/activities-home.component.html b/src/app/features/activity/pages/activities-home/activities-home.component.html
index fc2f1ca8..58b7cb68 100644
--- a/src/app/features/activity/pages/activities-home/activities-home.component.html
+++ b/src/app/features/activity/pages/activities-home/activities-home.component.html
@@ -8,12 +8,14 @@ Des activités bénévoles près de chez vous
-
+
@@ -29,10 +31,9 @@
Des activités bénévoles près de chez vous
} @else {
@for (activity of filteredActivities$ | async; track activity.id) {
-
+
} @empty {
-
Aucun résultat ne correspond à votre recherche
diff --git a/src/app/features/activity/pages/activities-home/activities-home.component.scss b/src/app/features/activity/pages/activities-home/activities-home.component.scss
index 5639e0ff..3f5f18d2 100644
--- a/src/app/features/activity/pages/activities-home/activities-home.component.scss
+++ b/src/app/features/activity/pages/activities-home/activities-home.component.scss
@@ -104,6 +104,22 @@
font-size: 18px;
font-style: italic;
color: var(--dai-secondary, #888);
+ margin-bottom: 5rem;
+
+ .btn-reset {
+ margin-top: 1rem;
+ padding: 0.5rem 1rem;
+ border: none;
+ border-radius: 6px;
+ background-color: var(--primary-light-color);
+ color: #fff;
+ cursor: pointer;
+ font-weight: 500;
+ }
+
+ .btn-reset:hover {
+ background-color: var(--primary-dark-color);
+ }
.btn-reset {
margin-top: 1rem;
@@ -183,6 +199,7 @@
.cards-and-map {
.cards-activities {
grid-template-columns: repeat(1, 1fr);
+ min-height: 20vh;
}
}
}
diff --git a/src/app/features/activity/pages/activities-home/activities-home.component.ts b/src/app/features/activity/pages/activities-home/activities-home.component.ts
index e1cdab32..6c4aa723 100644
--- a/src/app/features/activity/pages/activities-home/activities-home.component.ts
+++ b/src/app/features/activity/pages/activities-home/activities-home.component.ts
@@ -55,6 +55,7 @@ export class ActivitiesHomeComponent implements OnInit {
);
searchFilters: ActivitySearchFilters = { search: '', date: '', location: '' };
+ resetFormTrigger: boolean = false;
selectedThemesName: ThemeName[] = [];
navigationItems: NavigationItems[] = [{ name: 'Liste' }, { name: 'Carte' }];
chosenNavigation: string = 'Liste';
@@ -121,6 +122,7 @@ export class ActivitiesHomeComponent implements OnInit {
}
resetFiltersAndShowAll(): void {
+ this.resetFormTrigger = !this.resetFormTrigger;
this.searchFilters = { search: '', date: '', location: '' };
this.selectedThemesName = [];
diff --git a/src/app/features/activity/pages/activity-creation/activity-creation.component.html b/src/app/features/activity/pages/activity-creation/activity-creation.component.html
index d68765c7..2d30a000 100644
--- a/src/app/features/activity/pages/activity-creation/activity-creation.component.html
+++ b/src/app/features/activity/pages/activity-creation/activity-creation.component.html
@@ -31,7 +31,8 @@
Informations générales
[useIftaLabel]="true"
[fieldConfig]="activityField"
[formGroup]="activityForm"
- [submitted]="submitted">
+ [submitted]="submitted"
+ dateMode="future">
@@ -86,7 +87,7 @@
Thème(s) de l'activité
type="button"
label="Annuler"
ariaLabel="annuler la création de l'activité"
- (buttonClicked)="navigateToHomePage()"
+ (buttonClicked)="navigateToPreviousPage()"
[styleClass]="ButtonStyleClass.defaultWhite">
(`${this._apiUrl}/themes`);
}
+ getDraftActivities(): Observable {
+ return this._http.get(`${this._apiUrl}/activities/draft`);
+ }
+
getFutureActivities(): Observable {
return this._http.get(`${this._apiUrl}/activities/future`);
}
diff --git a/src/app/features/activity/services/activity-facade.service.ts b/src/app/features/activity/services/activity-facade.service.ts
index dd9ed246..ef603a7a 100644
--- a/src/app/features/activity/services/activity-facade.service.ts
+++ b/src/app/features/activity/services/activity-facade.service.ts
@@ -46,6 +46,13 @@ export class ActivityFacadeService {
);
}
+ getDraftActivitiesFromApi(): void {
+ this._fetchActivities(
+ () => this._activitiesApi.getDraftActivities(),
+ (a, b) => new Date(a.date).getTime() - new Date(b.date).getTime()
+ );
+ }
+
getPastActivitiesFromApi(): void {
this._activitiesApi
.getPastActivities()
@@ -130,12 +137,6 @@ export class ActivityFacadeService {
isSaved: isFollowApiResponse,
})
);
-
- if (isFollowApiResponse) {
- showSuccessToast(this._toast);
- } else {
- showInfoToast(this._toast, 'Activité retirée de vos favoris.');
- }
},
})
)
@@ -225,7 +226,6 @@ export class ActivityFacadeService {
.pipe(
tap((postedMessage: Message) => {
this._store.dispatch(MessagesActions.addMessage({ message: postedMessage }));
- showSuccessToast(this._toast);
})
)
.subscribe();
diff --git a/src/app/features/association/pages/association-details/association-details.component.html b/src/app/features/association/pages/association-details/association-details.component.html
index ccd27207..ebe39fb4 100644
--- a/src/app/features/association/pages/association-details/association-details.component.html
+++ b/src/app/features/association/pages/association-details/association-details.component.html
@@ -10,15 +10,18 @@ Détails de l'association
@if (!navigationItems.length) {
-
- @for (activity of activities$ | async; track activity.id) {
-
- } @empty {
-
-
- Aucune activité proposée pour l’instant.
-
- }
+
+
+
+ @for (activity of activities$ | async; track activity.id) {
+
+ } @empty {
+
+
+ Aucune activité proposée pour l’instant.
+
+ }
+
@@ -28,15 +31,17 @@
Détails de l'association
@if (navigationItems.length && chosenNavigation === 'Activités') {
-
- @for (activity of activities$ | async; track activity.id) {
-
- } @empty {
-
-
- Aucune activité proposée pour l’instant.
-
- }
+
+
+ @for (activity of activities$ | async; track activity.id) {
+
+ } @empty {
+
+
+ Aucune activité proposée pour l’instant.
+
+ }
+
}
@if (navigationItems.length && chosenNavigation === 'Association') {
diff --git a/src/app/features/association/pages/association-details/association-details.component.scss b/src/app/features/association/pages/association-details/association-details.component.scss
index 5a726f1f..b5c67006 100644
--- a/src/app/features/association/pages/association-details/association-details.component.scss
+++ b/src/app/features/association/pages/association-details/association-details.component.scss
@@ -12,6 +12,7 @@
overflow: hidden;
.page-title {
+ color: var(--primary-light-color);
text-align: center;
margin-bottom: 1rem;
font-size: 1.5rem;
@@ -34,46 +35,59 @@
gap: 2vw;
min-height: 0;
- .cards-activities {
+ .cards-activities-container {
flex: 1;
- display: grid;
- grid-template-columns: repeat(2, 1fr);
- gap: 1rem;
- overflow-y: auto;
- overflow-x: hidden;
- padding-right: 0.5rem;
-
- scrollbar-width: thin;
- scrollbar-color: var(--primary-light-color) transparent;
-
- &::-webkit-scrollbar {
- width: 6px;
- }
- &::-webkit-scrollbar-thumb {
- background-color: var(--primary-light-color);
- border-radius: 4px;
- }
- &::-webkit-scrollbar-track {
- background: transparent;
- }
+ display: flex;
+ flex-direction: column;
+ min-height: 0;
- .empty {
- grid-column: 1 / -1;
- text-align: center;
- font-style: italic;
- color: var(--dai-secondary, #888);
+ .cards-activities-header {
+ color: var(--primary-light-color);
+ margin-top: 2rem;
+ margin-bottom: 3rem;
}
- @media (max-width: 1500px) {
- grid-template-columns: 1fr;
- }
+ .cards-activities {
+ flex: 1;
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ gap: 1rem;
+ overflow-y: auto;
+ overflow-x: hidden;
+ padding-right: 0.5rem;
- @media (max-width: 1300px) {
- overflow-y: visible;
- }
+ scrollbar-width: thin;
+ scrollbar-color: var(--primary-light-color) transparent;
+
+ &::-webkit-scrollbar {
+ width: 6px;
+ }
+ &::-webkit-scrollbar-thumb {
+ background-color: var(--primary-light-color);
+ border-radius: 4px;
+ }
+ &::-webkit-scrollbar-track {
+ background: transparent;
+ }
+
+ .empty {
+ grid-column: 1 / -1;
+ text-align: center;
+ font-style: italic;
+ color: var(--dai-secondary, #888);
+ }
+
+ @media (max-width: 1500px) {
+ grid-template-columns: 1fr;
+ }
+
+ @media (max-width: 1300px) {
+ overflow-y: visible;
+ }
- @media (max-width: 768px) {
- grid-template-columns: 1fr;
+ @media (max-width: 768px) {
+ grid-template-columns: 1fr;
+ }
}
}
diff --git a/src/app/features/association/pages/association-details/association-details.component.ts b/src/app/features/association/pages/association-details/association-details.component.ts
index f00fba00..426f6f52 100644
--- a/src/app/features/association/pages/association-details/association-details.component.ts
+++ b/src/app/features/association/pages/association-details/association-details.component.ts
@@ -30,6 +30,7 @@ export class AssociationDetailsComponent implements OnInit {
ngOnInit(): void {
this._initializeAssociationData();
+ this._updateNavigationItems(this.screenWidth);
}
@HostListener('window:resize', ['$event'])
diff --git a/src/app/features/authentication/components/login-modal/login-modal.component.html b/src/app/features/authentication/components/login-modal/login-modal.component.html
index 2b5349cd..615d8bb1 100644
--- a/src/app/features/authentication/components/login-modal/login-modal.component.html
+++ b/src/app/features/authentication/components/login-modal/login-modal.component.html
@@ -9,7 +9,7 @@
[header]="'SE CONNECTER'"
styleClass="login-modal">
} @else {
@if (reportSelected.status === StatusReportEnum.InProgress) {
-
+
Sauvegarder
diff --git a/src/app/features/report/components/report-details-action-admin/report-details-action-admin.component.ts b/src/app/features/report/components/report-details-action-admin/report-details-action-admin.component.ts
index 77b944ec..d638b8cb 100644
--- a/src/app/features/report/components/report-details-action-admin/report-details-action-admin.component.ts
+++ b/src/app/features/report/components/report-details-action-admin/report-details-action-admin.component.ts
@@ -82,6 +82,7 @@ export class ReportDetailsActionAdminComponent implements OnInit {
rejectLabel: 'Annuler',
acceptButtonStyleClass: 'p-button-danger',
rejectButtonStyleClass: 'p-button-secondary',
+ dismissableMask: true,
accept: () => {
const updatedReport: Report = {
...this.reportSelected,
@@ -110,6 +111,7 @@ export class ReportDetailsActionAdminComponent implements OnInit {
rejectLabel: 'Annuler',
acceptButtonStyleClass: 'p-button-danger',
rejectButtonStyleClass: 'p-button-secondary',
+ dismissableMask: true,
accept: () => {
switch (userBan) {
case 'reporter':
diff --git a/src/app/features/report/components/report-modal/report-modal.component.html b/src/app/features/report/components/report-modal/report-modal.component.html
index b09317bd..c496eaab 100644
--- a/src/app/features/report/components/report-modal/report-modal.component.html
+++ b/src/app/features/report/components/report-modal/report-modal.component.html
@@ -20,7 +20,7 @@ Commentaire libre
diff --git a/src/styles.scss b/src/styles.scss
index 41e81d38..a0cd4066 100644
--- a/src/styles.scss
+++ b/src/styles.scss
@@ -42,6 +42,7 @@ body {
--primary-dark-color: #13678a;
--primary-light-color: #1385a8;
+ --ternary-validate-color: #2a9d13;
--secondary-validate-color: #36c919;
--secondary-complete-color: #fa8d12;
--secondary-error-color: #d4412d;