Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • web-et-numerique/factory/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client
1 result
Show changes
Commits on Source (9)
Showing
with 185 additions and 38 deletions
......@@ -2,6 +2,96 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
## [2.0.0-beta2.1](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/compare/v1.17.2...v2.0.0-beta2.1) (2022-05-31)
### Features
* **icons:** change assets ([b8be705](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/b8be7054ce2747538d206298892538100288fc0c))
### Bug Fixes
* **carto:** add format for member's names and surnames ([ecb8de1](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/ecb8de104490b4edda78c96ce0e5f1976bd957a6))
* **carto:** lockdown display ([f0f9994](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/f0f9994d95c3431bfd48276c913b247989e95143))
* **design:** members alignment ([167feb5](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/167feb5dd68b45abd7e602b50ae818487723d499))
* **design:** various return on alignments and icons ([c388f2c](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/c388f2c8c539488d753a494a963ca505a8c33178))
* **form:** checkbox issue and remove unecessary title ([c01a8c3](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/c01a8c30130a395b7048b0323cf624a75530fcf4))
* **form:** hover style for structure-choice ([4872a42](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/4872a42457a51c9a52448f0a329c518abed94e48))
* **onboarding:** various small design fix ([83cc1c7](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/83cc1c769829257be82466bac1ea73d85bb4940e))
* resote icon after bad merge ([ea53b2b](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/ea53b2bd5e091d4ba8f9f8b719e94c12265bbeaf))
* **toastr:** design feedbacks ([d661d05](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/d661d051ae505c6cc3ae11f2cd36df046793adef))
## [2.0.0-beta2](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/compare/v2.0.0-beta1.1...v2.0.0-beta2) (2022-05-24)
### Features
* **admin:** administration panel for jobs and employers ([04d4296](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/04d4296b55b72bfd7f0ca0a1496030cbe178caff))
* **carto:** structure-details component refactor on animation and display. Addition of avatar on form. ([e36c8f7](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/e36c8f7eb0f070ec8e5e67384724695237b7da5b))
* **carto:** updated behavior to join structure from structure details page ([4852abb](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/4852abb8284b971fedab2c4c4ded802523405f5a))
* **clickable eye:** eye closed when showing password ([4cbbb64](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/4cbbb64be6fce757d20f320a1f4c6b96b8586b1b))
* **edit-profile:** edit profile page ([0adf2df](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/0adf2df148cc65f932696d77c1c50698321f4965))
* **form:** Remove old form components ([471712a](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/471712a383d235e4da9be00efa19315dcf3918b6))
* **forms:** standardize layout ([a9a9211](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/a9a92114cb96e0fe3cc7a374b1f5005598db07ed))
* **onboarding:** Add edit mode ([09123af](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/09123af605b5bf67f2b16a7241b5a0a72597aa29))
* **onboarding:** update onboarding images with V2 versions ([1b8cd13](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/1b8cd1387e260b81d8df08b04fa7138937da7366))
* **pin-structures:** pin already selected structures in search ([5ae8924](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/5ae89245fba84e2571124e548045e90b4379bf8e))
* **progress:** Add global progress bar percentage ([6100d89](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/6100d8935084d626d9bace649a08c4507e5bf396))
* rework of profile page ([201b18d](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/201b18dee9db7115253da8edf835f05c9da4942f))
* **structure:** Add structure members in details ([cfb968e](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/cfb968e325bb9d183f2158a95473588f94084f57))
* **toastr:** New toastr design ([53ec5e6](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/53ec5e623a23ecd62fc4ac1fc4c2a8f9b3e03244))
### Bug Fixes
* **carto:** structure-details missing display placeholder and correct link for profile ([f3f6968](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/f3f6968876698e25ef143b9252a0978f41c192f8))
* **cicd:** job orders ([9e86390](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/9e86390f46e20d4acd0269a2899aa60c310ac937))
* **cicd:** update deploy dev to deploy V2 only ([212a6d5](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/212a6d5d7e099e0dfb32d930f9b09f12a0afae89))
* **deps:** update dependency leaflet.locatecontrol to ^0.76.0 ([f2f8b09](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/f2f8b099c2922aec29d6429282b272464e137051))
* **design sprint1:** login page, onboarding ([fb4438e](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/fb4438e33915c749faa8ae273af5e8709e873d7d))
* font-size small for forms ([3149082](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/3149082fb9c3a02a9dbc8d06c99b5ec89133abe4))
* **form:** layout and progress-bar status ([21fc2d2](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/21fc2d218079ab9087ad35f0045859b45587f513))
* **profile:** conditional display of the job and the employer in profile ([bf5db27](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/bf5db27cd8f3c3110a6194837e06a420869ac4be))
* remove unused component ([22c6f92](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/22c6f92007f179cf998374ae8b1d99c523ce241d))
* **style:** correct duplicated values ([4b03965](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/4b0396529362ea92ab0dd57a65b3f290f9c1ed49))
## [2.0.0-beta1.1](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/compare/v1.16.3...v2.0.0-beta1.1) (2022-04-04)
### Bug Fixes
* V2.0.0-beta1 various design returns for onboarding, carto ans structures ([a9b2386](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/a9b2386538bdbf731660a71bee86dfb19a240906))
## [2.0.0-beta1](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/compare/v1.16.1...v2.0.0-beta1) (2022-03-29)
### ⚠ BREAKING CHANGES
* **onboarding:** Some fileds are now added to user structure, there is no coming back
### Features
* **carto:** rework carto, search bar and structure detail screen ([aa058b5](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/aa058b5d18fb3d90aa77d0aab700424babeff93e))
* **cicd:** update deploy for V2.0 ([4440154](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/4440154a4bac74f32da1f79178acab19ba89b83a))
* **cicd:** update wrong prop ([d311dd9](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/d311dd9f5539f9187672d6e5dbc350d121d00729))
* **onboarding:** form refactor for structure and account creation. Add new onboarding cases for profile and personal offer. ([bb89936](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/bb89936f2869564cfa6bc0e1de239aac53315c0a))
* **style:** add tertiary and icon onlybutton. Update logo and header. Button refacto with enum ([276dc59](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/276dc594376cf4054490ccea327323e391bd1571))
* **style:** change colors, buttons, header, typo ([38629d8](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/38629d8ca71eaaa831109b101f71971bb94f53c4))
### Bug Fixes
* add missing layout import ([621d77d](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/621d77d1610e02a47bc4e6b29d8c973e68d6cebe))
* **carto:** review icons and font ([60d23c3](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/60d23c3c00c0f957aad6eaea627f3196fa9d9361))
* **cicd:** change to branches ([79bf80f](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/79bf80f4bb377e3910b9f04e952c814ecbba3ca4))
* **cicd:** wrong job targeted ([0237564](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/0237564284901f584a122d69f5815836a4acca41))
* **filters:** review more filter background ([da44d38](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/da44d38716db680299a27c46a60a4cff79098b9b))
* **gitalb-ci:** autodeploy for V2.0 ([cd1d43d](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/cd1d43d0da89798a175d77179b0a72d346ee520c))
* secondary button width ([375adfe](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/375adfe94efa04e5e1d193e669a75f3d805d9f34))
* **style:** button hover ([122fcfc](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/122fcfc1412282af29734f33985f375b83606b30))
* **style:** update button style ([c8ade31](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/c8ade31b7d4f187a2c9cb0db321dd5355e7ebb88))
## [2.0.0-beta2](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/compare/v2.0.0-beta1.1...v2.0.0-beta2) (2022-05-24)
### Features
......
{
"name": "pamn",
"version": "2.0.0-beta2",
"version": "2.0.0-beta2.1",
"scripts": {
"ng": "ng",
"start": "ng serve --configuration=fr --proxy-config proxy.conf.json",
......
......@@ -7,6 +7,8 @@ import { StructureListPrintComponent } from './form/orientation-form/component/s
import { OrientationFormComponent } from './form/orientation-form/orientation-form.component';
import { AdminGuard } from './guards/admin.guard';
import { AuthGuard } from './guards/auth.guard';
import { LoginGuard } from './guards/login.guard';
import { DeactivateGuard } from './guards/deactivate.guard';
import { LegalNoticeComponent } from './legal-notice/legal-notice.component';
import { LoginComponent } from './login/login.component';
import { NewsletterSubscriptionComponent } from './newsletter-subscription/newsletter-subscription.component';
......@@ -16,9 +18,10 @@ import { ResetEmailComponent } from './reset-email/reset-email.component';
import { ResetPasswordComponent } from './reset-password/reset-password.component';
import { StructureResolver } from './resolvers/structure.resolver';
import { PasswordFormComponent } from './shared/components';
import { StructureJoinComponent } from './structure-join/structure-join.component';
import { StructureJoinComponent } from './structure/structure-join/structure-join.component';
import { StructureDetailsComponent } from './structure-list/components/structure-details/structure-details.component';
import { StructureListComponent } from './structure-list/structure-list.component';
import { StructureExcludeComponent } from './structure/structure-exclude/structure-exclude.component';
const footerOutletRoute: Route = {
path: '',
......@@ -154,27 +157,28 @@ const routes: Routes = [
],
},
{
path: 'join',
path: 'join/:id',
children: [
{
path: '',
canActivate: [AuthGuard],
component: StructureJoinComponent,
resolve: {
structure: StructureResolver,
},
},
footerOutletRoute,
],
},
{
path: 'join/:id',
path: 'exclude',
children: [
{
path: '',
canActivate: [AuthGuard],
component: StructureJoinComponent,
resolve: {
structure: StructureResolver,
},
canActivate: [LoginGuard],
component: StructureExcludeComponent,
},
footerOutletRoute,
],
},
{
......
......@@ -22,13 +22,14 @@ import { LegalNoticeComponent } from './legal-notice/legal-notice.component';
import { PageComponent } from './page/page.component';
import { ContactComponent } from './contact/contact.component';
import { AuthGuard } from './guards/auth.guard';
import { LoginGuard } from './guards/login.guard';
import { CustomHttpInterceptor } from './config/http-interceptor';
import { ResetEmailComponent } from './reset-email/reset-email.component';
import { ResetPasswordComponent } from './reset-password/reset-password.component';
import { AdminGuard } from './guards/admin.guard';
import { DeactivateGuard } from './guards/deactivate.guard';
import { TempUserResolver } from './resolvers/temp-user.resolver';
import { StructureJoinComponent } from './structure-join/structure-join.component';
import { StructureJoinComponent } from './structure/structure-join/structure-join.component';
import { RouterListenerService } from './services/routerListener.service';
import { NewsletterSubscriptionComponent } from './newsletter-subscription/newsletter-subscription.component';
import { OrientationFormComponent } from './form/orientation-form/orientation-form.component';
......@@ -44,6 +45,7 @@ import { UpdateService } from './services/update.service';
import { DataShareConsentComponent } from './shared/components/data-share-consent/data-share-consent.component';
import { FormViewModule } from './form/form-view/form-view.module';
import { LoginComponent } from './login/login.component';
import { StructureExcludeComponent } from './structure/structure-exclude/structure-exclude.component';
@NgModule({
declarations: [
......@@ -70,6 +72,7 @@ import { LoginComponent } from './login/login.component';
DataShareConsentComponent,
OrientationComponent,
LoginComponent,
StructureExcludeComponent,
],
imports: [
BrowserModule,
......@@ -91,6 +94,7 @@ import { LoginComponent } from './login/login.component';
AuthGuard,
AdminGuard,
RoleGuard,
LoginGuard,
DeactivateGuard,
TempUserResolver,
StructureResolver,
......
......@@ -67,7 +67,7 @@ export class FooterFormComponent implements OnChanges {
if (this.currentForm === formType.structure && this.currentStep === structureFormStep.mailSentInfo) {
const user: User = await this.profileService.getProfile();
if (!user.job.hasPersonalOffer) {
if (!user.job || !user.job.hasPersonalOffer) {
this.isLastFormStep = true;
}
}
......
......@@ -245,10 +245,20 @@ export class FormViewComponent implements OnInit {
}
public linkStructureToUser(): void {
this.structureService.joinStructure(this.structureForm.value._id, this.profile.email).subscribe((data) => {
this.currentPage = structureFormStep.mailSentInfo;
this.structure._id = this.structureForm.value._id;
this.structure.structureName = this.structureForm.value.structureName;
this.structure._id = this.structureForm.value._id;
this.structure.structureName = this.structureForm.value.structureName;
this.structureService.isClaimed(this.structure._id, this.profile).subscribe((isClaimed) => {
this.structure.isClaimed = isClaimed;
if (isClaimed) {
this.structureService.joinStructure(this.structureForm.value._id, this.profile.email).subscribe(() => {
this.currentPage = structureFormStep.mailSentInfo;
});
} else {
this.structureService.claimStructureWithAccount(this.structure._id, this.profile.email).subscribe(() => {
this.currentPage = structureFormStep.mailSentInfo;
});
}
});
}
......@@ -265,7 +275,7 @@ export class FormViewComponent implements OnInit {
case formType.structure:
if (type.formStep === structureFormStep.mailSentInfo) {
const user = await this.profileService.getProfile();
if (user.job.hasPersonalOffer) {
if (user.job && user.job.hasPersonalOffer) {
this.router.navigateByUrl('form/personaloffer');
} else {
this.router.navigateByUrl('/');
......
......@@ -23,9 +23,9 @@
<ng-container *ngIf="formType === formTypeEnum.structure && step === structureFormStepEnum.mailSentInfo">
<div class="information-step-container structure-display">
<img src="../../assets/form/emailVerification.svg" alt="Image message envoyé" />
<p>
Un message a été envoyé aux membres<br />
de la structure :<br />
<p *ngIf="isClaimed">Un message a été envoyé aux membres de la structure :</p>
<p *ngIf="!isClaimed">
Un message a été envoyé aux administrateurs Rés'IN pour valider l'affectation de votre compte à la structure :
</p>
<span>{{ structureName }}</span>
</div>
......@@ -61,11 +61,7 @@
<ng-container *ngIf="formType === formTypeEnum.structure && step === structureFormStepEnum.noStructure">
<div class="information-step-container profile-updated no-max-width">
<img src="../../assets/form/profileUpdated.svg" alt="image profil" />
<h3 class="centered">
Votre structure ne disposant ni d’accompagnement,&nbsp;ni&nbsp;de formation,&nbsp;elle&nbsp;n’apparaitra pas sur
Rés’in.
</h3>
<p>Votre profil a bien été mis à jour.</p>
<p class="no-margin-top">Votre profil a bien été mis à jour.</p>
<div class="btn">
<app-button
[style]="buttonTypeEnum.Primary"
......@@ -84,8 +80,8 @@
"
>
<div class="information-step-container profile-updated no-max-width">
<h3>Merci, les informations de votre profil ont été mises à jour</h3>
<img src="../../assets/form/profileUpdated.svg" alt="image profil" />
<h3>Merci, les informations de votre profil ont été mises à jour</h3>
<div class="btn">
<app-button
[style]="buttonTypeEnum.Primary"
......
......@@ -33,14 +33,15 @@
&.structure-display {
height: unset;
max-width: unset;
gap: 16px;
p {
@include lato-regular-18;
margin: 0;
margin-bottom: 0;
margin-top: 1em;
}
span {
@include lato-bold-24;
margin-top: 16px;
text-align: center;
}
svg {
......@@ -86,6 +87,7 @@
&.profile-updated {
.centered {
text-align: center;
font-weight: normal;
}
.btn {
margin-top: 17px;
......@@ -116,3 +118,7 @@
height: 180px;
}
}
.no-margin-top {
margin-top: unset !important;
}
......@@ -17,6 +17,7 @@ export class InformationStepComponent {
@Input() formType: formType;
@Input() structureName?: string;
@Input() hasPersonalOffer?: boolean;
@Input() isClaimed?: boolean;
@Output() goNext = new EventEmitter<any>();
public formTypeEnum = formType;
......
......@@ -6,7 +6,7 @@
.progressBar {
height: #{$progressBar-height};
max-width: 980px;
margin: 16px auto;
margin: 16px auto 8px auto;
@media #{$tablet} {
margin: 0px 4px;
......
......@@ -60,9 +60,11 @@
border-width: 2px;
border-style: solid;
border-color: $white;
&:hover {
background: $primary-color-light;
border-color: $primary-color-light;
.name {
text-decoration: underline;
}
}
&.item-selected {
......
......@@ -16,7 +16,7 @@
<app-svg-icon [iconClass]="'icon-26'" [type]="'form'" [icon]="'notValidate'" class="validationIcon"></app-svg-icon>
<span>Il faut renseigner au moins un champ</span>
</p>
<div *ngIf="accessModality" fxLayout="row wrap" fxLayoutGap="16px" fxLayoutAlign="flex-start" class="welcomingTerms">
<div *ngIf="accessModality" fxLayout="column wrap" fxLayoutAlign="flex-start" class="welcomingTerms">
<app-checkbox-form
*ngFor="let module of accessModality.modules"
[isChecked]="isInArray('accessModality', module.id)"
......
......@@ -8,8 +8,7 @@
?
</h3>
</div>
<app-checkbox-form [isChecked]="userAcceptSavedDate" [text]="'J\'accepte'" (checkEvent)="acceptDataBeSaved($event)">
</app-checkbox-form>
<app-checkbox-form [text]="'J\'accepte'" (checkEvent)="acceptDataBeSaved($event)"> </app-checkbox-form>
</div>
<div class="section">
<div class="title" [ngClass]="{ editTitle: isEditMode }">
......@@ -33,6 +32,7 @@
*ngIf="!isEditMode"
[text]="'J\'accepte'"
(checkEvent)="acceptOpenData($event)"
[isChecked]="false"
></app-checkbox-form>
<div class="dataShareConsent">
<app-radio-form
......
......@@ -21,6 +21,7 @@
[structureName]="structureForm.value.structureName"
(goNext)="setValidationsForm()"
[formType]="formTypeEnum.structure"
[isClaimed]="structure.isClaimed"
></app-information-step>
</ng-container>
<div *ngIf="currentStep == structureFormStep.structureNameAndAddress">
......
......@@ -2,6 +2,7 @@ import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChange
import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';
import { ActivatedRoute } from '@angular/router';
import { Address } from '../../../models/address.model';
import { Structure } from '../../../models/structure.model';
import { User } from '../../../models/user.model';
import { ProfileService } from '../../../profile/services/profile.service';
import { CategoryEnum } from '../../../shared/enum/category.enum';
......@@ -18,6 +19,7 @@ import { structureFormStep } from './structureFormStep.enum';
export class StructureFormComponent implements OnChanges, OnInit {
@Input() nbSteps: number;
@Input() currentStep: structureFormStep;
@Input() structure: Structure;
@Input() structureForm: FormGroup;
@Input() hoursForm: FormGroup;
@Input() isEditMode: boolean;
......
import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';
import { Injectable } from '@angular/core';
import { AuthService } from '../services/auth.service';
/**
* Guard to assert that we are logged in. Otherwise redirect to home
*/
@Injectable()
export class LoginGuard implements CanActivate {
constructor(private authService: AuthService, private router: Router) {}
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
if (this.authService.isLoggedIn()) {
return true;
}
this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });
return false;
}
}
export class Owner {
email: string;
id: string;
_id: string;
}
......@@ -64,6 +64,7 @@ export class Structure {
public personalOffers: PersonalOffer[] = [];
public alreadySelected? = false;
public isClaimed?: boolean = null;
constructor(obj?: any) {
Object.assign(this, obj, {
......
......@@ -58,10 +58,6 @@ export class StructureService {
return this.http.get<Structure>(`${this.baseUrl}/${id}`);
}
public validateStructureJoin(id: string, userId: string, state: boolean): Observable<Structure> {
return this.http.post<any>(`${this.baseUrl}/${id}/join/${userId}/${state}`, null);
}
public joinStructure(id: string, email: string): Observable<Structure> {
return this.http.post<any>(`${this.baseUrl}/${id}/join`, { email });
}
......
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { User } from '../models/user.model';
@Injectable({
providedIn: 'root',
})
export class UserService {
private readonly baseUrl = 'api/users';
constructor(private http: HttpClient) {}
public getUser(userId: string): Observable<User> {
return this.http.get<User>(`${this.baseUrl}/${userId}`);
}
}