{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/core/core.module.ts","./src/app/core/guards/auth.guard.ts","./src/app/core/guards/can-access-admin.guard.ts","./src/app/core/guards/not-auth.guard.ts","./src/app/core/interceptors/api.interceptor.ts","./src/app/core/services/alert/alert.service.ts","./src/app/core/services/api/api.service.ts","./src/app/core/services/authentication/authentication.service.ts","./src/app/core/services/session/session.service.ts","./src/app/modules/admin/admin-routing.module.ts","./src/app/modules/admin/admin.module.ts","./src/app/modules/admin/components/agencies-list/agencies-list.component.ts","./src/app/modules/admin/components/agencies-list/agencies-list.component.html","./src/app/modules/admin/components/agency-infos/agency-infos.component.ts","./src/app/modules/admin/components/agency-infos/agency-infos.component.html","./src/app/modules/admin/components/create-agency-dialog/create-agency-dialog.component.ts","./src/app/modules/admin/components/create-agency-dialog/create-agency-dialog.component.html","./src/app/modules/admin/components/create-user-dialog/create-user-dialog.component.ts","./src/app/modules/admin/components/create-user-dialog/create-user-dialog.component.html","./src/app/modules/admin/components/edit-agency-dialog/edit-agency-dialog.component.ts","./src/app/modules/admin/components/edit-agency-dialog/edit-agency-dialog.component.html","./src/app/modules/admin/components/users-list/users-list.component.ts","./src/app/modules/admin/components/users-list/users-list.component.html","./src/app/modules/admin/pages/admin/admin.component.ts","./src/app/modules/admin/pages/admin/admin.component.html","./src/app/modules/auth/auth-routing.module.ts","./src/app/modules/auth/auth.module.ts","./src/app/modules/auth/pages/first-login/first-login.component.ts","./src/app/modules/auth/pages/first-login/first-login.component.html","./src/app/modules/auth/pages/forget-password/forget-password.component.ts","./src/app/modules/auth/pages/forget-password/forget-password.component.html","./src/app/modules/auth/pages/login/login.component.ts","./src/app/modules/auth/pages/login/login.component.html","./src/app/modules/auth/pages/reset-password/reset-password.component.ts","./src/app/modules/auth/pages/reset-password/reset-password.component.html","./src/app/modules/main/main-routing.module.ts","./src/app/modules/main/main.module.ts","./src/app/modules/main/pages/home/home.component.ts","./src/app/modules/main/pages/home/home.component.html","./src/app/modules/main/pages/page-not-found/page-not-found.component.ts","./src/app/modules/main/pages/page-not-found/page-not-found.component.html","./src/app/modules/profile/components/profile-infos/profile-infos.component.ts","./src/app/modules/profile/components/profile-infos/profile-infos.component.html","./src/app/modules/profile/components/profile-update-password/profile-update-password.component.ts","./src/app/modules/profile/components/profile-update-password/profile-update-password.component.html","./src/app/modules/profile/pages/profile/profile.component.ts","./src/app/modules/profile/pages/profile/profile.component.html","./src/app/modules/profile/profile-routing.module.ts","./src/app/modules/profile/profile.module.ts","./src/app/modules/properties/components/create-property/create-property.component.ts","./src/app/modules/properties/components/create-property/create-property.component.html","./src/app/modules/properties/components/display-history-dialog/display-history-dialog.component.ts","./src/app/modules/properties/components/display-history-dialog/display-history-dialog.component.html","./src/app/modules/properties/components/key-infos/key-infos.component.ts","./src/app/modules/properties/components/key-infos/key-infos.component.html","./src/app/modules/properties/components/keyring-infos/keyring-infos.component.ts","./src/app/modules/properties/components/keyring-infos/keyring-infos.component.html","./src/app/modules/properties/components/properties-list/properties-list.component.ts","./src/app/modules/properties/components/properties-list/properties-list.component.html","./src/app/modules/properties/components/property-infos/property-infos.component.ts","./src/app/modules/properties/components/property-infos/property-infos.component.html","./src/app/modules/properties/components/update-key-states-dialog/update-key-states-dialog.component.ts","./src/app/modules/properties/components/update-key-states-dialog/update-key-states-dialog.component.html","./src/app/modules/properties/components/update-property-dialog/update-property-dialog.component.ts","./src/app/modules/properties/components/update-property-dialog/update-property-dialog.component.html","./src/app/modules/properties/components/update-state-away-dialog/update-state-away-dialog.component.ts","./src/app/modules/properties/components/update-state-away-dialog/update-state-away-dialog.component.html","./src/app/modules/properties/pages/create-property-page/create-property-page.component.ts","./src/app/modules/properties/pages/create-property-page/create-property-page.component.html","./src/app/modules/properties/pages/properties/properties.component.ts","./src/app/modules/properties/pages/properties/properties.component.html","./src/app/modules/properties/pages/property/property.component.ts","./src/app/modules/properties/pages/property/property.component.html","./src/app/modules/properties/properties-routing.module.ts","./src/app/modules/properties/properties.module.ts","./src/app/shared/components/alert/alert.component.ts","./src/app/shared/components/alert/alert.component.html","./src/app/shared/components/auth-image/auth-image.component.ts","./src/app/shared/components/auth-image/auth-image.component.html","./src/app/shared/components/contacts-display-dialog/contacts-display-dialog.component.ts","./src/app/shared/components/contacts-display-dialog/contacts-display-dialog.component.html","./src/app/shared/components/create-contact-dialog/create-contact-dialog.component.ts","./src/app/shared/components/create-contact-dialog/create-contact-dialog.component.html","./src/app/shared/components/create-tenant-dialog/create-tenant-dialog.component.ts","./src/app/shared/components/create-tenant-dialog/create-tenant-dialog.component.html","./src/app/shared/components/tenants-display-dialog/tenants-display-dialog.component.ts","./src/app/shared/components/tenants-display-dialog/tenants-display-dialog.component.html","./src/app/shared/components/validation-dialog/validation-dialog.component.ts","./src/app/shared/components/validation-dialog/validation-dialog.component.html","./src/app/shared/models/contacts/contacts-display-dialog-data.ts","./src/app/shared/models/tenants/tenants-display-dialog-data.ts","./src/app/shared/pipes/auth-image.pipe.ts","./src/app/shared/shared.module.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","import {NgModule} from '@angular/core';\nimport {Routes, RouterModule} from '@angular/router';\n\nconst routes: Routes = [];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule {\n}\n","import {Component, OnInit} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport {map, shareReplay} from 'rxjs/operators';\nimport {AuthenticationService} from './core/services/authentication/authentication.service';\nimport {ApiService} from './core/services/api/api.service';\nimport {AlertService} from './core/services/alert/alert.service';\nimport {Router} from '@angular/router';\nimport {GenericUser} from './shared/models/api/users/generic-user';\nimport {MatDialog} from '@angular/material/dialog';\nimport {ValidationDialogData} from './shared/models/validation-dialog-data';\nimport {ValidationDialogComponent} from './shared/components/validation-dialog/validation-dialog.component';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent implements OnInit {\n user?: GenericUser = undefined;\n isRefreshingUser = false;\n title = 'rayagir-key-manager';\n\n dashboardLinkList = [\n /* {\n icon: 'account_box',\n route: '/profile',\n title: 'Profil',\n shouldDisplay: () => {\n return true;\n }\n }, */\n {\n icon: 'description',\n route: '/properties',\n title: 'Fiches',\n shouldDisplay: () => {\n return true;\n }\n },\n {\n icon: 'admin_panel_settings',\n route: '/admin',\n title: 'Admin',\n shouldDisplay: () => {\n return this.isUserAdmin();\n }\n }\n ];\n\n isHandset$: Observable = this.breakpointObserver.observe(Breakpoints.Handset)\n .pipe(\n map(result => result.matches),\n shareReplay()\n );\n\n constructor(\n private breakpointObserver: BreakpointObserver,\n private authenticationService: AuthenticationService,\n private apiService: ApiService,\n private alertService: AlertService,\n public router: Router,\n public validationDialog: MatDialog,\n ) {}\n\n ngOnInit(): void {\n if (this.isLoggedIn()) {\n this.refreshUser();\n }\n }\n\n public isLoggedIn(): boolean {\n if (this.authenticationService.isAuth() && !this.user) {\n this.refreshUser();\n }\n return this.authenticationService.isAuth();\n }\n\n refreshUser(): void {\n if (this.isRefreshingUser) {\n return;\n }\n this.isRefreshingUser = true;\n this.user = undefined;\n this.apiService.getUserMe().subscribe(\n (me) => {\n setTimeout(() => {\n this.user = me;\n this.isRefreshingUser = false;\n this.dashboardLinkList = [...this.dashboardLinkList];\n });\n }, () => {\n this.alertService.error('Une erreur est survenue lors de la récupération de l\\'utilisateur actuel');\n }\n );\n }\n\n isUserAdmin(): boolean {\n return this.user && this.user.type !== 'manager';\n }\n\n public signOut(): void {\n this.user = undefined;\n this.authenticationService.signOut();\n this.alertService.success('Vous vous êtes déconnecté', true);\n this.router.navigate(['/login']);\n }\n\n public onProfileButtonClick(): void {\n this.router.navigate(['/profile']);\n }\n\n public onSignOutButtonClick(): void {\n const data: ValidationDialogData = {\n title: 'Déconnexion ?',\n text: 'Êtes vous sûr de vouloir vous déconnecter ?',\n onValidate: () => {\n this.signOut();\n },\n onDiscard: () => {}\n };\n this.validationDialog.open(ValidationDialogComponent, {\n data\n });\n }\n}\n","\n \n \n Menu\n \n keyboard_arrow_left\n \n \n \n \n
\n \n
\n loginSe connecter\n
\n
\n \n \n
\n
\n \n menu\n \n \n arrow_back_ios\n \n
\n
\n \n \"Logo\"\n \n
\n
\n \n \n \n
\n
\n
\n \n \n
\n
\n","import {BrowserModule} from '@angular/platform-browser';\nimport {NgModule} from '@angular/core';\n\nimport {AppRoutingModule} from './app-routing.module';\nimport {AppComponent} from './app.component';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport {CoreModule} from './core/core.module';\nimport {SharedModule} from './shared/shared.module';\nimport {MainModule} from './modules/main/main.module';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport { LayoutModule } from '@angular/cdk/layout';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport {AuthModule} from './modules/auth/auth.module';\nimport {MatMenuModule} from '@angular/material/menu';\nimport {MatDividerModule} from '@angular/material/divider';\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\nimport {MatTableModule} from '@angular/material/table';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatCardModule} from '@angular/material/card';\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\nimport {MatSelectModule} from '@angular/material/select';\nimport {MAT_DATE_LOCALE, MatOptionModule} from '@angular/material/core';\nimport {ApiInterceptor} from './core/interceptors/api.interceptor';\nimport {ProfileModule} from './modules/profile/profile.module';\nimport {PropertiesModule} from './modules/properties/properties.module';\nimport {MatSortModule} from '@angular/material/sort';\nimport {AdminModule} from './modules/admin/admin.module';\n\n@NgModule({\n declarations: [\n AppComponent\n ],\n imports: [\n BrowserModule,\n HttpClientModule,\n AppRoutingModule,\n NgbModule,\n BrowserAnimationsModule,\n LayoutModule,\n MatToolbarModule,\n MatButtonModule,\n MatSidenavModule,\n MatSortModule,\n MatIconModule,\n MatListModule,\n MatMenuModule,\n MatTableModule,\n MatDividerModule,\n MatProgressSpinnerModule,\n MatInputModule,\n MatCardModule,\n MatSlideToggleModule,\n MatSelectModule,\n MatOptionModule,\n CoreModule,\n SharedModule,\n AuthModule,\n PropertiesModule,\n ProfileModule,\n AdminModule,\n\n MainModule,\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ApiInterceptor,\n multi: true\n },\n { provide: MAT_DATE_LOCALE, useValue: 'fr-FR' }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule\n ]\n})\nexport class CoreModule { }\n","import { Injectable } from '@angular/core';\nimport {CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router} from '@angular/router';\nimport { Observable } from 'rxjs';\nimport {AuthenticationService} from '../services/authentication/authentication.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuard implements CanActivate {\n constructor(\n private router: Router,\n private authenticationService: AuthenticationService\n ) {\n }\n\n canActivate(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n if (this.authenticationService.isAuth()) {\n return true;\n }\n this.router.navigate(['/login']);\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router} from '@angular/router';\nimport { Observable } from 'rxjs';\nimport {AuthenticationService} from '../services/authentication/authentication.service';\nimport {ApiService} from '../services/api/api.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CanAccessAdminGuard implements CanActivate {\n constructor(\n private router: Router,\n private authenticationService: AuthenticationService,\n private apiService: ApiService\n ) {\n }\n\n async canActivate(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Promise {\n if (this.authenticationService.isAuth()) {\n const me = await this.apiService.getUserMe().toPromise();\n if (me.type !== 'manager') {\n return true;\n }\n this.router.navigate(['/']);\n return false;\n }\n this.router.navigate(['/login']);\n return false;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport {CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router} from '@angular/router';\nimport { Observable } from 'rxjs';\nimport {AuthenticationService} from '../services/authentication/authentication.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotAuthGuard implements CanActivate {\n constructor(\n private router: Router,\n private authenticationService: AuthenticationService\n ) {\n }\n\n canActivate(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n if (!this.authenticationService.isAuth()) {\n return true;\n }\n this.router.navigate(['/']);\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor\n} from '@angular/common/http';\nimport {BehaviorSubject, Observable, throwError} from 'rxjs';\nimport {AuthenticationService} from '../services/authentication/authentication.service';\nimport {ApiService} from '../services/api/api.service';\nimport {catchError, filter, switchMap, take} from 'rxjs/operators';\nimport {environment} from '../../../environments/environment';\nimport {RefreshResponse} from '../../shared/models/api/auth/refresh-response';\n\nconst API_URL = environment.API_URL;\n\n@Injectable()\nexport class ApiInterceptor implements HttpInterceptor {\n private refreshTokenInProgress = false;\n private refreshTokenSubject: BehaviorSubject = new BehaviorSubject(null);\n\n constructor(\n private authService: AuthenticationService,\n private apiService: ApiService\n ) {}\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n if (!request.url.startsWith(API_URL)) {\n return next.handle(request);\n }\n\n const isAuthRequest = request.url.startsWith(`${API_URL}/auth/`);\n\n return next.handle(isAuthRequest ? request : this.addAuthenticationToken(request)).pipe(catchError((err) => {\n if (isAuthRequest) {\n this.authService.signOut();\n return throwError(err);\n }\n if (err.status !== 401) {\n return throwError(err);\n }\n if (this.refreshTokenInProgress) {\n return this.refreshTokenSubject\n .pipe(\n filter(result => result !== null),\n take(1),\n switchMap(() => next.handle(this.addAuthenticationToken(request)))\n );\n } else {\n this.refreshTokenInProgress = true;\n this.refreshTokenSubject.next(null);\n return this.apiService.authRefresh({token: this.getRefreshToken()})\n .pipe(\n catchError((error) => {\n this.refreshTokenInProgress = false;\n this.authService.signOut();\n return throwError(error);\n }),\n switchMap((token: RefreshResponse) => {\n this.authService.setAccessToken(token.access_token, this.getRefreshToken());\n this.refreshTokenInProgress = false;\n this.refreshTokenSubject.next(token.access_token);\n return next.handle(this.addAuthenticationToken(request));\n })\n );\n }\n }));\n }\n\n getRefreshToken(): string {\n return this.authService.getRefreshToken();\n }\n\n addAuthenticationToken(request: HttpRequest): HttpRequest {\n const accessToken = this.authService.getAccessToken();\n if (accessToken) {\n return request.clone({\n setHeaders: {\n Authorization: `Bearer ${accessToken}`\n }\n });\n }\n return request;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\nimport { Alert } from '../../../shared/models/alert';\nimport { Router, NavigationStart } from '@angular/router';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AlertService {\n private subject: Subject;\n private keepAfterRouteChange: boolean;\n\n constructor(private router: Router) {\n this.subject = new Subject();\n this.keepAfterRouteChange = false;\n\n router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n if (this.keepAfterRouteChange) {\n this.keepAfterRouteChange = false;\n } else {\n this.clear();\n }\n }\n });\n }\n\n getAlert(): Observable {\n return this.subject.asObservable();\n }\n\n success(message: string, keepAfterRouteChange = false): void {\n this.alert('success', message, keepAfterRouteChange);\n }\n\n error(message: string, keepAfterRouteChange = false): void {\n this.alert('danger', message, keepAfterRouteChange);\n }\n\n info(message: string, keepAfterRouteChange = false): void {\n this.alert('info', message, keepAfterRouteChange);\n }\n\n warn(message: string, keepAfterRouteChange = false): void {\n this.alert('warning', message, keepAfterRouteChange);\n }\n\n alert(type: string, message: string, keepAfterRouteChange: boolean): void {\n this.keepAfterRouteChange = keepAfterRouteChange;\n this.subject.next({ type, message } as Alert);\n }\n\n clear(): void {\n this.subject.next();\n }\n}\n","import { Injectable } from '@angular/core';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {Observable, throwError} from 'rxjs';\nimport {LoginPayload} from '../../../shared/models/api/auth/login-payload';\nimport {LoginResponse} from '../../../shared/models/api/auth/login-response';\nimport {catchError, map} from 'rxjs/operators';\nimport {environment} from '../../../../environments/environment';\nimport {RefreshPayload} from '../../../shared/models/api/auth/refresh-payload';\nimport {RefreshResponse} from '../../../shared/models/api/auth/refresh-response';\nimport {RevokePayload} from '../../../shared/models/api/auth/revoke-payload';\nimport {ResetPasswordAskPayload} from '../../../shared/models/api/auth/reset-password-ask-payload';\nimport {ResetPasswordResetPayload} from '../../../shared/models/api/auth/reset-password-reset-payload';\nimport {GetUserMeResponse} from '../../../shared/models/api/users/get-user-me-response';\nimport {PatchUserPayload} from '../../../shared/models/api/users/patch-user-payload';\nimport {PatchUserResponse} from '../../../shared/models/api/users/patch-user-response';\nimport {GetPropertiesResponse} from '../../../shared/models/api/properties/get-properties-response';\nimport {GetPropertyResponse} from '../../../shared/models/api/properties/get-property-response';\nimport {PostHistoryPayload} from '../../../shared/models/api/history/post-history-payload';\nimport {PostHistoryResponse} from '../../../shared/models/api/history/post-history-response';\nimport {GetContactsResponse} from '../../../shared/models/api/contacts/get-contacts-response';\nimport {PostContactsPayload} from '../../../shared/models/api/contacts/post-contacts-payload';\nimport {PostContactsResponse} from '../../../shared/models/api/contacts/post-contacts-response';\nimport {GetUsersResponse} from '../../../shared/models/api/users/get-users-response';\nimport {UploadImageResponse} from '../../../shared/models/api/images/upload-image-response';\nimport {PostPropertyPayload} from '../../../shared/models/api/properties/post-property-payload';\nimport {PostPropertyResponse} from '../../../shared/models/api/properties/post-property-response';\nimport {PatchPropertyPayload} from '../../../shared/models/api/properties/patch-property-payload';\nimport {PatchPropertyResponse} from '../../../shared/models/api/properties/patch-property-response';\nimport {GetKeysResponse} from '../../../shared/models/api/keys/get-keys-response';\nimport {PostKeyResponse} from '../../../shared/models/api/keys/post-key-response';\nimport {PostKeyPayload} from '../../../shared/models/api/keys/post-key-payload';\nimport {PatchKeyPayload} from '../../../shared/models/api/keys/patch-key-payload';\nimport {PatchKeyResponse} from '../../../shared/models/api/keys/patch-key-response';\nimport {GetKeyringsResponse} from '../../../shared/models/api/keyrings/get-keyrings-response';\nimport {PostKeyringPayload} from '../../../shared/models/api/keyrings/post-keyring-payload';\nimport {PatchKeyringPayload} from '../../../shared/models/api/keyrings/patch-keyring-payload';\nimport {PostKeyringResponse} from '../../../shared/models/api/keyrings/post-keyring-response';\nimport {PatchKeyringResponse} from '../../../shared/models/api/keyrings/patch-keyring-response';\nimport {PostUserPayload} from '../../../shared/models/api/users/post-user-payload';\nimport {PostUserResponse} from '../../../shared/models/api/users/post-user-response';\nimport {GetAgenciesResponse} from '../../../shared/models/api/agencies/get-agencies-response';\nimport {PostAgencyPayload} from '../../../shared/models/api/agencies/post-agency-payload';\nimport {PostAgencyResponse} from '../../../shared/models/api/agencies/post-agency-response';\nimport {GetAgencyResponse} from '../../../shared/models/api/agencies/get-agency-response';\nimport {PatchAgencyPayload} from '../../../shared/models/api/agencies/patch-agency-payload';\nimport {PatchAgencyResponse} from '../../../shared/models/api/agencies/patch-agency-response';\nimport {PatchContactsResponse} from '../../../shared/models/api/contacts/patch-contacts-response';\nimport {PatchContactsPayload} from '../../../shared/models/api/contacts/patch-contacts-payload';\nimport {PostTenantPayload} from '../../../shared/models/api/tenants/post-tenant-payload';\nimport {PostTenantResponse} from '../../../shared/models/api/tenants/post-tenant-response';\nimport {PatchTenantPayload} from '../../../shared/models/api/tenants/patch-tenant-payload';\nimport {PatchTenantResponse} from '../../../shared/models/api/tenants/patch-tenant-response';\nimport {GetTenantsResponse} from '../../../shared/models/api/tenants/get-tenants-response';\n\nconst API_URL = environment.API_URL;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n\n private static handleError(error: Response | any): Observable {\n console.error('ApiService::handleError', error);\n return throwError(error);\n }\n\n private getHeaders(): HttpHeaders {\n return new HttpHeaders({\n 'Access-Control-Allow-Origin': '*',\n });\n }\n\n constructor(private http: HttpClient) { }\n\n /* Without tokens routes */\n public authLogin(payload: LoginPayload): Observable {\n return this.http\n .post(`${API_URL}/auth/login`, payload, { headers: this.getHeaders() })\n .pipe(map((res) => res as LoginResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public authRefresh(payload: RefreshPayload): Observable {\n return this.http\n .post(`${API_URL}/auth/refresh`, payload, { headers: this.getHeaders() })\n .pipe(map((res) => res as RefreshResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public authRevoke(payload: RevokePayload): Observable {\n return this.http\n .post(`${API_URL}/auth/revoke`, payload, { headers: this.getHeaders() })\n .pipe(map((res) => {}))\n .pipe(catchError(ApiService.handleError));\n }\n\n public authResetPasswordAsk(payload: ResetPasswordAskPayload): Observable {\n return this.http\n .post(`${API_URL}/auth/resetPassword/ask`, payload, { headers: this.getHeaders() })\n .pipe(map((res) => {}))\n .pipe(catchError(ApiService.handleError));\n }\n\n public authResetPasswordReset(payload: ResetPasswordResetPayload): Observable {\n return this.http\n .post(`${API_URL}/auth/resetPassword/reset`, payload, { headers: this.getHeaders() })\n .pipe(map((res) => res as RefreshResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n /* With token routes */\n public getUsers(): Observable {\n return this.http\n .get(`${API_URL}/users`, { headers: this.getHeaders() })\n .pipe(map((res) => res as GetUsersResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public getUserMe(): Observable {\n return this.http\n .get(`${API_URL}/users/me`, { headers: this.getHeaders() })\n .pipe(map((res) => res as GetUserMeResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public postUser(payload: PostUserPayload): Observable {\n return this.http\n .post(`${API_URL}/users`, payload, {headers: this.getHeaders()})\n .pipe(map((res) => res as PostUserResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public patchUser(id: number, payload: PatchUserPayload): Observable {\n return this.http\n .patch(`${API_URL}/users/${id}`, payload, { headers: this.getHeaders() })\n .pipe(map((res) => res as PatchUserResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public getProperties(): Observable {\n return this.http\n .get(`${API_URL}/properties`, { headers: this.getHeaders() })\n .pipe(map((res) => res as GetPropertiesResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public getProperty(id: number): Observable {\n return this.http\n .get(`${API_URL}/properties/${id}`, { headers: this.getHeaders() })\n .pipe(map((res) => res as GetPropertyResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public postProperties(payload: PostPropertyPayload): Observable {\n return this.http\n .post(`${API_URL}/properties`, payload, { headers: this.getHeaders() })\n .pipe(map((res) => res as PostPropertyResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public patchProperty(id: number, payload: PatchPropertyPayload): Observable {\n return this.http\n .patch(`${API_URL}/properties/${id}`, payload, { headers: this.getHeaders() })\n .pipe(map((res) => res as PatchPropertyResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public deleteProperty(id: number): Observable {\n return this.http\n .delete(`${API_URL}/properties/${id}`, {headers: this.getHeaders()})\n .pipe(map(() => true))\n .pipe(catchError(ApiService.handleError));\n }\n\n public getContacts(): Observable {\n return this.http\n .get(`${API_URL}/contacts`, { headers: this.getHeaders() })\n .pipe(map((res) => res as GetContactsResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public postContacts(payload: PostContactsPayload): Observable {\n return this.http\n .post(`${API_URL}/contacts`, payload, { headers: this.getHeaders() })\n .pipe(map((res) => res as PostContactsResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public patchContact(id: number, payload: PatchContactsPayload): Observable {\n return this.http\n .patch(`${API_URL}/contacts/${id}`, payload, { headers: this.getHeaders() })\n .pipe(map((res) => res as PatchContactsResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public deleteContact(id: number): Observable {\n return this.http\n .delete(`${API_URL}/contacts/${id}`, {headers: this.getHeaders()})\n .pipe(map(() => true))\n .pipe(catchError(ApiService.handleError));\n }\n\n public postHistory(payload: PostHistoryPayload): Observable {\n return this.http\n .post(`${API_URL}/history`, payload, { headers: this.getHeaders() })\n .pipe(map((res) => res as PostHistoryResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public downloadImage(id: number): Observable {\n return this.http\n .get(`${API_URL}/images/${id}/download`, { headers: this.getHeaders(), responseType: 'blob'})\n .pipe(catchError(ApiService.handleError));\n }\n\n public uploadImage(file: File): Observable {\n const formData: FormData = new FormData();\n formData.append('file', file, file.name);\n return this.http\n .post(`${API_URL}/images`, formData, { headers: this.getHeaders() })\n .pipe(map((res) => res as UploadImageResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public deleteImage(id: number): Observable {\n return this.http\n .delete(`${API_URL}/images/${id}`, {headers: this.getHeaders()})\n .pipe(map(() => true))\n .pipe(catchError(ApiService.handleError));\n }\n\n public getKeys(propertyId: number): Observable {\n return this.http\n .get(`${API_URL}/keys?propertyId=${propertyId}`, {headers: this.getHeaders()})\n .pipe(map((res) => res as GetKeysResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public postKey(payload: PostKeyPayload): Observable {\n return this.http\n .post(`${API_URL}/keys`, payload, {headers: this.getHeaders()})\n .pipe(map((res) => res as PostKeyResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public patchKey(id: number, payload: PatchKeyPayload): Observable {\n return this.http\n .patch(`${API_URL}/keys/${id}`, payload, {headers: this.getHeaders()})\n .pipe(map((res) => res as PatchKeyResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public deleteKey(id: number): Observable {\n return this.http\n .delete(`${API_URL}/keys/${id}`, {headers: this.getHeaders()})\n .pipe(map(() => true))\n .pipe(catchError(ApiService.handleError));\n }\n\n public getKeyrings(propertyId: number): Observable {\n return this.http\n .get(`${API_URL}/keyrings?propertyId=${propertyId}`, {headers: this.getHeaders()})\n .pipe(map((res) => res as GetKeyringsResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public postKeyring(payload: PostKeyringPayload): Observable {\n return this.http\n .post(`${API_URL}/keyrings`, payload, {headers: this.getHeaders()})\n .pipe(map((res) => res as PostKeyringResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public patchKeyring(id: number, payload: PatchKeyringPayload): Observable {\n return this.http\n .patch(`${API_URL}/keyrings/${id}`, payload, {headers: this.getHeaders()})\n .pipe(map((res) => res as PatchKeyringResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public deleteKeyring(id: number): Observable {\n return this.http\n .delete(`${API_URL}/keyrings/${id}`, {headers: this.getHeaders()})\n .pipe(map(() => true))\n .pipe(catchError(ApiService.handleError));\n }\n\n public getAgencies(): Observable {\n return this.http\n .get(`${API_URL}/agencies`, {headers: this.getHeaders()})\n .pipe(map((res) => res as GetAgenciesResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public postAgency(payload: PostAgencyPayload): Observable {\n return this.http\n .post(`${API_URL}/agencies`, payload, {headers: this.getHeaders()})\n .pipe(map((res) => res as PostAgencyResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public getAgency(id: number): Observable {\n return this.http\n .get(`${API_URL}/agencies/${id}`, {headers: this.getHeaders()})\n .pipe(map((res) => res as GetAgencyResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public patchAgency(id: number, payload: PatchAgencyPayload): Observable {\n return this.http\n .patch(`${API_URL}/agencies/${id}`, payload, {headers: this.getHeaders()})\n .pipe(map((res) => res as PatchAgencyResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public deleteAgency(id: number): Observable {\n return this.http\n .delete(`${API_URL}/agencies/${id}`, {headers: this.getHeaders()})\n .pipe(map(() => true))\n .pipe(catchError(ApiService.handleError));\n }\n\n public getTenants(propertyId: number): Observable {\n return this.http\n .get(`${API_URL}/tenants?propertyId=${propertyId}`, {headers: this.getHeaders()})\n .pipe(map((res) => res as GetTenantsResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public postTenant(payload: PostTenantPayload): Observable {\n return this.http\n .post(`${API_URL}/tenants`, payload, {headers: this.getHeaders()})\n .pipe(map((res) => res as PostTenantResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public patchTenant(id: number, payload: PatchTenantPayload): Observable {\n return this.http\n .patch(`${API_URL}/tenants/${id}`, payload, {headers: this.getHeaders()})\n .pipe(map((res) => res as PatchTenantResponse))\n .pipe(catchError(ApiService.handleError));\n }\n\n public deleteTenant(id: number): Observable {\n return this.http\n .delete(`${API_URL}/tenants/${id}`, {headers: this.getHeaders()})\n .pipe(map(() => true))\n .pipe(catchError(ApiService.handleError));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SessionService } from '../session/session.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthenticationService {\n\n constructor(\n private session: SessionService\n ) {}\n\n public isAuth(): boolean {\n return !!this.session.getAccessToken();\n }\n\n public signIn(accessToken: string, refreshToken: string): void {\n this.setAccessToken(accessToken, refreshToken);\n }\n\n public setAccessToken(accessToken: string, refreshToken: string): void {\n this.session.setAccessToken(accessToken);\n this.session.setRefreshToken(refreshToken);\n }\n\n public getAccessToken(): string {\n return this.session.getAccessToken();\n }\n\n public getRefreshToken(): string {\n return this.session.getRefreshToken();\n }\n\n public signOut(): void {\n this.session.destroy();\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { CookieService } from 'ngx-cookie-service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SessionService {\n constructor(private cookies: CookieService) {}\n\n public setAccessToken(token: string): void {\n this.cookies.set('accessToken', token, undefined, '/');\n }\n\n public setRefreshToken(token: string): void {\n this.cookies.set('refreshToken', token, undefined, '/');\n }\n\n public getAccessToken(): string | null {\n return this.cookies.get('accessToken');\n }\n\n public getRefreshToken(): string | null {\n return this.cookies.get('refreshToken');\n }\n\n public destroy(): void {\n this.cookies.delete('accessToken', '/');\n this.cookies.delete('refreshToken', '/');\n this.cookies.deleteAll();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport {AdminComponent} from './pages/admin/admin.component';\nimport {AuthGuard} from '../../core/guards/auth.guard';\nimport {CanAccessAdminGuard} from '../../core/guards/can-access-admin.guard';\n\nconst routes: Routes = [\n {\n path: 'admin',\n component: AdminComponent,\n canActivate: [AuthGuard, CanAccessAdminGuard]\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class AdminRoutingModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AdminRoutingModule } from './admin-routing.module';\nimport { AdminComponent } from './pages/admin/admin.component';\nimport {MatDividerModule} from '@angular/material/divider';\nimport { UsersListComponent } from './components/users-list/users-list.component';\nimport {MatCardModule} from '@angular/material/card';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatPaginatorModule} from '@angular/material/paginator';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {MatCheckboxModule} from '@angular/material/checkbox';\nimport {MatTableModule} from '@angular/material/table';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatSortModule} from '@angular/material/sort';\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\nimport {BrowserModule} from '@angular/platform-browser';\nimport {MatButtonToggleModule} from '@angular/material/button-toggle';\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\nimport { CreateUserDialogComponent } from './components/create-user-dialog/create-user-dialog.component';\nimport {MatDialogModule} from '@angular/material/dialog';\nimport { AgencyInfosComponent } from './components/agency-infos/agency-infos.component';\nimport {SharedModule} from '../../shared/shared.module';\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\nimport { AgenciesListComponent } from './components/agencies-list/agencies-list.component';\nimport {MatIconModule} from '@angular/material/icon';\nimport { CreateAgencyDialogComponent } from './components/create-agency-dialog/create-agency-dialog.component';\nimport {MaterialFileInputModule} from 'ngx-material-file-input';\nimport { EditAgencyDialogComponent } from './components/edit-agency-dialog/edit-agency-dialog.component';\nimport {MatSelectModule} from '@angular/material/select';\n\n\n@NgModule({\n declarations: [AdminComponent, UsersListComponent, CreateUserDialogComponent, AgencyInfosComponent, AgenciesListComponent, CreateAgencyDialogComponent, EditAgencyDialogComponent],\n exports: [\n AgencyInfosComponent\n ],\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n CommonModule,\n AdminRoutingModule,\n MatDividerModule,\n MatCardModule,\n MatButtonModule,\n MatPaginatorModule,\n MatFormFieldModule,\n MatCheckboxModule,\n MatTableModule,\n FormsModule,\n MatInputModule,\n MatSortModule,\n MatButtonToggleModule,\n MatSlideToggleModule,\n MatDialogModule,\n ReactiveFormsModule,\n SharedModule,\n MatProgressSpinnerModule,\n MatIconModule,\n MaterialFileInputModule,\n MatSelectModule\n ]\n})\nexport class AdminModule { }\n","import {Component, EventEmitter, OnInit, Output, ViewChild} from '@angular/core';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\nimport {MatDialog} from '@angular/material/dialog';\nimport {GenericAgency} from '../../../../shared/models/api/agencies/generic-agency';\nimport {MatTableDataSource} from '@angular/material/table';\nimport {MatPaginator, MatPaginatorIntl} from '@angular/material/paginator';\nimport {MatSort} from '@angular/material/sort';\nimport {ValidationDialogData} from '../../../../shared/models/validation-dialog-data';\nimport {ValidationDialogComponent} from '../../../../shared/components/validation-dialog/validation-dialog.component';\nimport {CreateAgencyDialogComponent} from '../create-agency-dialog/create-agency-dialog.component';\nimport {EditAgencyDialogComponent} from '../edit-agency-dialog/edit-agency-dialog.component';\nimport {CustomPaginator} from '../users-list/users-list.component';\nimport {GenericProperty} from '../../../../shared/models/api/properties/generic-property';\n\nexport interface TableAgency {\n id: number;\n name: string;\n description: string;\n nbProperties: number;\n director: string;\n}\n\n@Component({\n selector: 'app-agencies-list',\n templateUrl: './agencies-list.component.html',\n styleUrls: ['./agencies-list.component.scss'],\n providers: [\n { provide: MatPaginatorIntl, useValue: CustomPaginator('Agence par page: ')}\n ]\n})\nexport class AgenciesListComponent implements OnInit {\n\n displayedColumns: string[] = ['name', 'description', 'director', 'nbProperties', 'edit'];\n agencies: GenericAgency[] = [];\n properties: GenericProperty[] = [];\n datasource: MatTableDataSource;\n\n // tslint:disable-next-line:no-output-on-prefix\n @Output() onAgencyUpdate = new EventEmitter();\n\n @ViewChild(MatPaginator, {static: true}) paginator: MatPaginator;\n @ViewChild(MatSort, {static: true}) sort: MatSort;\n\n static filterPredicate(data: TableAgency, filterStr: string): boolean {\n if (!filterStr) {\n return true;\n }\n const filters = filterStr.split(';');\n const aggregatedString = `${data.id}${data.name}${data.description}${data.director}}`.trim().toLowerCase();\n for (const filter of filters) {\n if (!aggregatedString.includes(filter)) {\n return false;\n }\n }\n return true;\n }\n\n constructor(\n private apiService: ApiService,\n private alertService: AlertService,\n public createAgencyDialog: MatDialog,\n public updateAgencyDialog: MatDialog,\n public deleteAgencyDialog: MatDialog\n ) { }\n\n ngOnInit(): void {\n this.refreshAgencies();\n }\n\n refreshAgencies(): void {\n this.apiService.getAgencies().subscribe(\n (agencies) => {\n this.agencies = agencies;\n this.apiService.getProperties().subscribe(\n (properties) => {\n this.properties = properties;\n this.refreshDatasource();\n }\n );\n }, () => {\n this.alertService.error(`Une erreur est survenue lors de la récupération des agences`);\n }\n );\n }\n\n refreshDatasource(): void {\n const data: TableAgency[] = this.agencies.map((agency) => {\n const agencyProperties = this.properties.filter((property) => property.agency.id === agency.id);\n return {\n id: agency.id,\n name: agency.name,\n description: agency.description,\n nbProperties: agencyProperties.length,\n director: `${agency.agencyDirector.firstname} ${agency.agencyDirector.lastname} (${agency.agencyDirector.email})`\n };\n });\n this.datasource = new MatTableDataSource(data);\n this.datasource.paginator = this.paginator;\n this.datasource.sort = this.sort;\n this.datasource.filterPredicate = AgenciesListComponent.filterPredicate;\n }\n\n applyFilter(event: Event): void {\n const filterValue = (event.target as HTMLInputElement).value;\n this.datasource.filter = filterValue.trim().toLowerCase();\n\n if (this.datasource.paginator) {\n this.datasource.paginator.firstPage();\n }\n }\n\n editAgency(id: number): void {\n const dialogRef = this.updateAgencyDialog.open(EditAgencyDialogComponent, {\n width: '85%',\n data: {agency: this.agencies.find((agency) => agency.id === id)}\n });\n dialogRef.afterClosed().subscribe(() => {\n this.refreshAgencies();\n });\n }\n\n deleteAgency(id: number): void {\n const data: ValidationDialogData = {\n title: 'Supprimer l\\'agence ?',\n text: 'Êtes vous sûr de vouloir supprimer l\\'agence ? (toutes les fiches, utilisateurs, clés, trousseaux liés à l\\'agence seront aussi supprimés, cette action est irréversible)',\n onValidate: () => {\n this.apiService.deleteAgency(id).subscribe(\n () => {\n this.alertService.success('L\\'agence a bien été supprimée', true);\n this.onAgencyUpdate.emit();\n this.refreshAgencies();\n }, () => {\n this.alertService.error('Une erreur est survenue lors de la suppression de l\\'agence.');\n }\n );\n },\n onDiscard: () => {}\n };\n this.deleteAgencyDialog.open(ValidationDialogComponent, {\n data\n });\n }\n\n createAgency(): void {\n const dialogRef = this.createAgencyDialog.open(CreateAgencyDialogComponent, {\n width: '85%'\n });\n dialogRef.afterClosed().subscribe(() => {\n this.refreshAgencies();\n this.onAgencyUpdate.emit();\n });\n }\n}\n","\n Agences\n \n \n searchRecherche\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n
Nom {{row.name}} Description {{row.description}} Directeur {{row.director}} Nombre de fiches {{row.nbProperties}} Modifier \n \n \n
Aucune donnée ne correspond au filtre {{input.value}}
\n \n
\n \n \n \n
\n","import { Component, OnInit } from '@angular/core';\nimport {GenericAgency} from '../../../../shared/models/api/agencies/generic-agency';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\nimport {GetPropertiesResponse} from '../../../../shared/models/api/properties/get-properties-response';\n\n@Component({\n selector: 'app-agency-infos',\n templateUrl: './agency-infos.component.html',\n styleUrls: ['./agency-infos.component.scss']\n})\nexport class AgencyInfosComponent implements OnInit {\n agency?: GenericAgency | null = undefined;\n nbFiles = '...';\n\n constructor(\n private apiService: ApiService,\n private alertService: AlertService\n ) { }\n\n ngOnInit(): void {\n this.refreshAgency();\n }\n\n refreshAgency(): void {\n this.apiService.getUserMe().subscribe(\n (me) => {\n if (!me.agency) {\n this.agency = null;\n return;\n }\n this.apiService.getAgency(me.agency.id).subscribe(\n (agency) => {\n this.agency = agency;\n }, () => {\n this.alertService.error('Une erreur est survenue lors de la récupération de l\\'agence actuelle');\n }\n );\n this.apiService.getProperties().subscribe(\n (properties: GetPropertiesResponse) => {\n const myProperties = properties.filter((property) => {\n return property.manager.id === me.id || property.assistantManager?.id === me.id;\n });\n this.nbFiles = `${myProperties.length} / ${properties.length}`;\n }, () => {\n this.alertService.error('Une erreur est survenue lors de la récupération du nombre de fiches');\n }\n );\n }, () => {\n this.alertService.error('Une erreur est survenue lors de la récupération de l\\'utilisateur actuel');\n }\n );\n }\n\n}\n","\n Mon agence\n \n
\n \n
\n
\n
\n
\n

{{agency.name}}

\n

{{agency.description}}

\n
\n
\n

Nombre de fiches

\n

{{nbFiles}}

\n
\n
\n
\n
\n \n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport {AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators} from '@angular/forms';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\nimport {PostAgencyPayload} from '../../../../shared/models/api/agencies/post-agency-payload';\nimport {MatDialogRef} from '@angular/material/dialog';\nimport {parsePhoneNumberFromString} from 'libphonenumber-js';\n\n@Component({\n selector: 'app-create-agency-dialog',\n templateUrl: './create-agency-dialog.component.html',\n styleUrls: ['./create-agency-dialog.component.scss']\n})\nexport class CreateAgencyDialogComponent implements OnInit {\n formGroup: FormGroup;\n fileToUpload: File = null;\n\n constructor(\n private fb: FormBuilder,\n private apiService: ApiService,\n private alertService: AlertService,\n public dialogRef: MatDialogRef,\n ) {\n this.formGroup = fb.group({\n image: ['', Validators.required],\n name: ['', Validators.required],\n description: ['', Validators.required],\n firstname: ['', Validators.required],\n lastname: ['', Validators.required],\n email: ['', Validators.compose([\n Validators.required,\n Validators.pattern('^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$')\n ])],\n phone: ['', this.validatePhone()],\n });\n }\n\n ngOnInit(): void {\n }\n\n onSubmit(): void {\n this.formGroup.updateValueAndValidity();\n if (!this.formGroup.valid) {\n return;\n }\n const payload: PostAgencyPayload = {\n name: this.formGroup.get('name').value,\n description: this.formGroup.get('description').value,\n email: this.formGroup.get('email').value,\n firstname: this.formGroup.get('firstname').value,\n lastname: this.formGroup.get('lastname').value,\n phone: this.formGroup.get('phone').value || null\n };\n this.apiService.postAgency(payload).subscribe(\n (agency) => {\n this.apiService.uploadImage(this.fileToUpload).subscribe(\n (image) => {\n this.apiService.patchAgency(agency.id, {\n agencyImageId: image.id\n }).subscribe(\n (updatedAgency) => {\n this.alertService.success(`L'agence a bien été créée`);\n this.dialogRef.close(updatedAgency);\n }, () => {\n this.alertService.error(`Une erreur est survenue lors de l'association de l'image, veuillez l'ajouter plus tard en modifiant l'agence`);\n this.dialogRef.close(agency);\n }\n );\n }, () => {\n this.alertService.error(`Une erreur est survenue lors de la création de l'image, veuillez l'ajouter plus tard en modifiant l'agence`);\n this.dialogRef.close(agency);\n }\n );\n }, () => {\n this.alertService.error(`Une erreur est survenue lors de la création de l'agence`);\n }\n );\n }\n\n validatePhone(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n const input = control.value;\n if (!input) {\n return null;\n }\n const phoneNumber = parsePhoneNumberFromString(input);\n return (!phoneNumber || !phoneNumber.isValid()) ? {phone: {phone: false}} : null;\n };\n }\n\n onFileChange(files: FileList): void {\n this.fileToUpload = files.item(0);\n }\n}\n","
\n
\n

Créer une nouvelle agence

\n \n
\n
\n
\n
\n \n Image\n \n \n Une image de l'agence\n folder\n \n L'image de l'agence est requise\n \n \n
\n
\n \n Nom de l'agence\n \n \n Le nom est requis\n \n \n
\n
\n
\n
\n
\n \n Description de l'agence\n \n \n La description est requise\n \n \n
\n
\n
\n
\n
\n \n Prénom\n \n Prénom du directeur d'agence\n \n Le prénom est requis\n \n \n
\n
\n \n Nom de famille\n \n Nom de famille du directeur d'agence\n \n Le nom est requis\n \n \n
\n
\n
\n
\n
\n \n Email\n \n Adresse email du directeur d'agence\n \n L'adresse email est requise\n \n \n L'adresse email indiqué n'est pas valide\n \n \n
\n
\n \n Téléphone\n \n Numéro de téléphone du directeur d'agence\n \n Le numéro de téléphone n'est pas valide (avez vous bien indiqué le numéro international ?)\n \n \n
\n
\n
\n
\n \n
\n
\n","import {Component, Inject, OnInit} from '@angular/core';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\nimport {AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators} from '@angular/forms';\nimport {parsePhoneNumberFromString} from 'libphonenumber-js';\nimport {PostUserPayload} from '../../../../shared/models/api/users/post-user-payload';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\n\n@Component({\n selector: 'app-create-user-dialog',\n templateUrl: './create-user-dialog.component.html',\n styleUrls: ['./create-user-dialog.component.scss']\n})\nexport class CreateUserDialogComponent implements OnInit {\n formGroup: FormGroup;\n\n constructor(\n private alertService: AlertService,\n private apiService: ApiService,\n private fb: FormBuilder,\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: {type: 'admin' | 'manager'}\n ) {\n this.formGroup = fb.group({\n firstname: ['', Validators.required],\n lastname: ['', Validators.required],\n email: ['', Validators.compose([\n Validators.required,\n Validators.pattern('^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$')\n ])],\n phone: ['', this.validatePhone()],\n managerType: ['manager']\n });\n }\n\n ngOnInit(): void {\n }\n\n onSubmit(): void {\n this.formGroup.updateValueAndValidity();\n if (!this.formGroup.valid) {\n return;\n }\n const payload: PostUserPayload = {\n email: this.formGroup.get('email').value,\n firstname: this.formGroup.get('firstname').value,\n lastname: this.formGroup.get('lastname').value,\n phone: this.formGroup.get('phone').value || null,\n managerType: this.formGroup.get('managerType').value || null\n };\n this.apiService.postUser(payload).subscribe(\n (user) => {\n this.alertService.success('Utilisateur créé');\n this.dialogRef.close(user);\n }, () => {\n this.alertService.error('Une erreur est survenue lors de la création de l\\'utilisateur');\n this.dialogRef.close(null);\n }\n );\n }\n\n validatePhone(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n const input = control.value;\n if (!input) {\n return null;\n }\n const phoneNumber = parsePhoneNumberFromString(input);\n return (!phoneNumber || !phoneNumber.isValid()) ? {phone: {phone: false}} : null;\n };\n }\n}\n","
\n
\n

Créer un {{data.type === 'admin' ? 'administrateur' : 'gestionnaire'}}

\n \n
\n
\n
\n
\n \n Prénom\n \n Le prénom de l'utilisateur\n \n Le prénom est requis\n \n \n
\n
\n \n Nom\n \n Le nom de l'utilisateur\n \n Le nom est requis\n \n \n
\n
\n
\n
\n
\n \n Email\n \n L'adresse email de l'utilisateur\n \n L'adresse email est requise\n \n \n L'adresse email indiqué n'est pas valide\n \n \n
\n
\n \n Téléphone\n \n Le numéro de téléphone de l'utilisateur (optionnel)\n \n Le numéro de téléphone n'est pas valide (avez vous bien indiqué le numéro international ?)\n \n \n
\n
\n
\n
\n
\n \n Type\n \n Gestionnaire\n Assistant\n Accueil\n \n \n
\n
\n
\n
\n \n
\n
\n","import {Component, Inject, OnInit} from '@angular/core';\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\nimport {GenericAgency} from '../../../../shared/models/api/agencies/generic-agency';\n\nexport interface EditAgencyDialogData {\n agency: GenericAgency;\n}\n\n@Component({\n selector: 'app-edit-agency-dialog',\n templateUrl: './edit-agency-dialog.component.html',\n styleUrls: ['./edit-agency-dialog.component.scss']\n})\nexport class EditAgencyDialogComponent implements OnInit {\n formGroup: FormGroup;\n fileToUpload: File = null;\n\n constructor(\n private fb: FormBuilder,\n private apiService: ApiService,\n private alertService: AlertService,\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: EditAgencyDialogData,\n ) {\n this.formGroup = fb.group({\n image: [''],\n name: [data.agency.name],\n description: [data.agency.description],\n });\n }\n\n ngOnInit(): void {\n }\n\n async onSubmit(): Promise {\n this.formGroup.updateValueAndValidity();\n if (!this.formGroup.valid) {\n return;\n }\n let agencyImage;\n let oldImageId;\n if (this.fileToUpload) {\n try {\n agencyImage = await this.apiService.uploadImage(this.fileToUpload).toPromise();\n } catch {\n this.alertService.error(`Une erreur est survenue lors de l'envoi de l'image`);\n this.dialogRef.close();\n return;\n }\n if (this.data.agency.agencyImage) {\n oldImageId = this.data.agency.agencyImage.id;\n }\n }\n try {\n const agency = await this.apiService.patchAgency(this.data.agency.id, {\n name: this.formGroup.get('name').value || undefined,\n description: this.formGroup.get('description').value || undefined,\n agencyImageId: agencyImage ? agencyImage.id : undefined\n }).toPromise();\n this.alertService.success(`L'agence à bien été mise à jour`);\n if (oldImageId) {\n try {\n await this.apiService.deleteImage(oldImageId).toPromise();\n } catch {\n this.alertService.error(`Une erreur est survenue lors de la suppression de l'ancienne image`);\n }\n }\n this.dialogRef.close(agency);\n } catch {\n this.alertService.error(`Une erreur est survenue lors de la mise à jour de l'agence`);\n this.dialogRef.close();\n }\n }\n\n onFileChange(files: FileList): void {\n this.fileToUpload = files.item(0);\n }\n\n}\n","
\n
\n

Éditer une agence

\n \n
\n
\n
\n
\n \n Image\n \n \n La nouvelle image de l'agence (laisser vide pour ne pas la changer)\n folder\n \n
\n
\n \n Nom de l'agence\n \n Le nouveau nom de l'agence\n \n
\n
\n
\n
\n
\n \n Description de l'agence\n \n La nouvelle description de l'agence\n \n
\n
\n
\n
\n \n
\n
\n","import {Component, OnInit, ViewChild} from '@angular/core';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\nimport {GenericUser} from '../../../../shared/models/api/users/generic-user';\nimport {MatTableDataSource} from '@angular/material/table';\nimport {MatPaginator, MatPaginatorIntl} from '@angular/material/paginator';\nimport {MatSort} from '@angular/material/sort';\nimport {MatSlideToggleChange} from '@angular/material/slide-toggle';\nimport {MatDialog} from '@angular/material/dialog';\nimport {CreateUserDialogComponent} from '../create-user-dialog/create-user-dialog.component';\nimport {MatSelectChange} from '@angular/material/select';\n\nexport function CustomPaginator(label: string): MatPaginatorIntl {\n const customPaginatorIntl = new MatPaginatorIntl();\n\n customPaginatorIntl.itemsPerPageLabel = label;\n\n return customPaginatorIntl;\n}\n\n@Component({\n selector: 'app-users-list',\n templateUrl: './users-list.component.html',\n styleUrls: ['./users-list.component.scss'],\n providers: [\n { provide: MatPaginatorIntl, useValue: CustomPaginator('Utilisateur par page: ')}\n ]\n})\nexport class UsersListComponent implements OnInit {\n\n constructor(\n private apiService: ApiService,\n private alertService: AlertService,\n public createUserDialog: MatDialog\n ) { }\n displayedColumns: string[] = ['firstname', 'lastname', 'email', 'phone', 'type', 'isActive'];\n user?: GenericUser;\n users: GenericUser[] = [];\n dataSource: MatTableDataSource;\n\n @ViewChild(MatPaginator, {static: true}) paginator: MatPaginator;\n @ViewChild(MatSort, {static: true}) sort: MatSort;\n onlyActive = true;\n\n static filterPredicate(data: GenericUser, filterStr: string): boolean {\n if (!filterStr) {\n return true;\n }\n const filters = filterStr.split(';');\n const aggregatedString = `${data.agency?.name || ''}${data.firstname}${data.lastname}${data.email}${data.phone}${UsersListComponent.getDisplayType(data.type, data.managerType)}`.trim().toLowerCase();\n for (const filter of filters) {\n if (!aggregatedString.includes(filter)) {\n return false;\n }\n }\n return true;\n }\n\n static getDisplayType(type: 'admin' | 'manager' | 'agency_director', managerType?: 'manager' | 'assistant' | 'reception' | null): string {\n switch (type) {\n case 'agency_director': return 'Directeur d\\'agence';\n case 'admin': return 'Administrateur';\n case 'manager':\n switch (managerType) {\n case 'manager': return 'Gestionnaire';\n case 'assistant': return 'Assistant';\n case 'reception': return 'Accueil';\n default: return 'Gestionnaire';\n }\n default: return 'Chargement...';\n }\n }\n\n ngOnInit(): void {\n this.refreshUser();\n this.refreshUsers();\n }\n\n refreshUser(): void {\n this.user = undefined;\n this.apiService.getUserMe().subscribe(\n (me) => {\n this.user = me;\n if (this.user.type === 'admin') {\n setTimeout(() => {\n this.displayedColumns = ['agency', 'firstname', 'lastname', 'email', 'phone', 'type', 'isActive'];\n this.refreshDataSource();\n });\n }\n }, () => {\n this.alertService.error('Une erreur est survenue lors de la récupération de l\\'utilisateur actuel');\n }\n );\n }\n\n refreshDataSource(): void {\n const dataUsers = this.users?.filter((user) => {\n if (this.user && this.user.type === 'admin') {\n if (this.onlyActive) {\n return user.isActive && user.type !== 'manager';\n }\n return user.type !== 'manager';\n }\n if (this.onlyActive) {\n return user.isActive;\n }\n return true;\n });\n this.dataSource = new MatTableDataSource(dataUsers);\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n this.dataSource.filterPredicate = UsersListComponent.filterPredicate;\n }\n\n refreshUsers(): void {\n this.users = [];\n this.apiService.getUsers().subscribe(\n (users) => {\n this.users = users;\n this.refreshDataSource();\n }, () => {\n this.alertService.error('Une erreur est survenue lors de la récupération des utilisateurs');\n }\n );\n }\n\n applyFilter(event: Event): void {\n const filterValue = (event.target as HTMLInputElement).value;\n this.dataSource.filter = filterValue.trim().toLowerCase();\n\n if (this.dataSource.paginator) {\n this.dataSource.paginator.firstPage();\n }\n }\n\n onCheckboxUpdated(event: Event): void {\n this.refreshDataSource();\n }\n\n updateUserActive(event: MatSlideToggleChange, user: GenericUser): void {\n this.apiService.patchUser(user.id, {\n isActive: event.checked\n }).subscribe(() => {\n this.refreshUsers();\n this.alertService.success('Utilisateur ' + (event.checked ? 'activé' : 'désactivé'));\n }, () => {\n this.refreshUsers();\n this.alertService.error('Une erreur est survenue lors de la mise à jour de l\\'utilisateur');\n });\n }\n\n getDisplayType(type: 'admin' | 'manager' | 'agency_director', managerType?: 'manager' | 'assistant' | 'reception' | null): string {\n return UsersListComponent.getDisplayType(type, managerType);\n }\n\n createUser(): void {\n if (!this.user) {\n return;\n }\n const data = {\n type: this.user.type === 'admin' ? 'admin' : 'manager',\n };\n const dialogRef = this.createUserDialog.open(CreateUserDialogComponent, {\n width: '85%',\n data\n });\n dialogRef.afterClosed().subscribe(() => {\n this.refreshUsers();\n });\n }\n\n updateUserManagerType(event: MatSelectChange, user: GenericUser): void {\n this.apiService.patchUser(user.id, {\n managerType: event.value\n }).subscribe((patchedUser) => {\n this.refreshUsers();\n this.alertService.success(`Le type de l'utilisateur ${patchedUser.firstname} ${patchedUser.lastname} est maintenant ${UsersListComponent.getDisplayType(patchedUser.type, patchedUser.managerType)}`);\n }, () => {\n this.refreshUsers();\n this.alertService.error('Une erreur est survenue lors de la mise à jour de l\\'utilisateur (il est impossible de placer à l\\'accueil un utilisateur qui a des propriétés)');\n });\n }\n\n updateUserFirstName(row: any, value: string): void {\n const user = row as GenericUser;\n if (!value) {\n this.refreshUsers();\n return;\n }\n if (value !== user.firstname) {\n row.updateRunning = true;\n this.apiService.patchUser(user.id, {\n firstname: value\n }).subscribe((patchedUser) => {\n this.refreshUsers();\n this.alertService.success(`Le prénom de l'utilisateur est maintenant ${value}`);\n row.updateRunning = false;\n }, () => {\n this.refreshUsers();\n this.alertService.error('Une erreur est survenue lors de la mise à jour du prénom l\\'utilisateur');\n row.updateRunning = false;\n });\n }\n }\n\n updateUserLastName(row: any, value: string): void {\n const user = row as GenericUser;\n if (!value) {\n this.refreshUsers();\n return;\n }\n if (value !== user.lastname) {\n row.updateRunning = true;\n this.apiService.patchUser(user.id, {\n lastname: value\n }).subscribe((patchedUser) => {\n this.refreshUsers();\n this.alertService.success(`Le nom de l'utilisateur est maintenant ${value}`);\n row.updateRunning = false;\n }, () => {\n this.refreshUsers();\n this.alertService.error('Une erreur est survenue lors de la mise à jour du nom l\\'utilisateur');\n row.updateRunning = false;\n });\n }\n }\n\n updateUserEmail(row: any, value: string): void {\n const user = row as GenericUser;\n if (value !== user.email) {\n row.updateRunning = true;\n this.apiService.patchUser(user.id, {\n email: value\n }).subscribe((patchedUser) => {\n this.refreshUsers();\n this.alertService.success(`L'email de l'utilisateur est maintenant ${value}`);\n row.updateRunning = false;\n }, (err) => {\n this.refreshUsers();\n if (err.status === 400) {\n this.alertService.error('L\\'adresse email n\\'est pas valide');\n } else if (err.status === 500) {\n this.alertService.error('L\\'adresse email est déjà utilisée');\n } else {\n this.alertService.error('Une erreur est survenue lors de la mise à jour de l\\'email de l\\'utilisateur');\n }\n row.updateRunning = false;\n });\n }\n }\n\n updateUserPhone(row: any, value: string): void {\n const user = row as GenericUser;\n if (value !== user.phone) {\n row.updateRunning = true;\n this.apiService.patchUser(user.id, {\n phone: value\n }).subscribe((patchedUser) => {\n this.refreshUsers();\n this.alertService.success(`Le téléphone de l'utilisateur est maintenant ${value}`);\n row.updateRunning = false;\n }, (err) => {\n this.refreshUsers();\n if (err.status === 400) {\n this.alertService.error('Le téléphone renseigné n\\'est pas valide, avez vous pensé au numéro international? (+33 pour la france)');\n } else {\n this.alertService.error('Une erreur est survenue lors de la mise à jour du téléphone de l\\'utilisateur');\n }\n row.updateRunning = false;\n });\n }\n }\n}\n","\n Utilisateurs\n \n \n searchRecherche\n \n \n Seulement actifs\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n
Agence {{row.agency?.name || ''}} Prénom \n \n \n \n Nom \n \n \n \n Email \n \n \n \n Téléphone \n \n \n \n Fonction \n
{{getDisplayType(row.type, row.managerType)}}
\n
\n \n Gestionnaire\n Assistant\n Accueil\n \n
\n
Actif \n \n
Aucune donnée ne correspond au filtre {{input.value}}
\n \n
\n \n \n \n
\n","import { Component, OnInit } from '@angular/core';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {GenericUser} from '../../../../shared/models/api/users/generic-user';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\n\n@Component({\n selector: 'app-admin',\n templateUrl: './admin.component.html',\n styleUrls: ['./admin.component.scss']\n})\nexport class AdminComponent implements OnInit {\n user?: GenericUser = undefined;\n\n constructor(\n private alertService: AlertService,\n private apiService: ApiService\n ) { }\n\n ngOnInit(): void {\n this.refreshUser();\n }\n\n refreshUser(): void {\n this.user = undefined;\n this.apiService.getUserMe().subscribe(\n (me) => {\n this.user = me;\n }, () => {\n this.alertService.error('Une erreur est survenue lors de la récupération de l\\'utilisateur actuel');\n }\n );\n }\n\n isAdmin(): boolean {\n return this.user && this.user.type === 'admin';\n }\n\n isAgencyDirector(): boolean {\n return this.user && this.user.type === 'agency_director';\n }\n}\n","
\n
\n
\n

Espace administrateur

\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport {LoginComponent} from './pages/login/login.component';\nimport {ForgetPasswordComponent} from './pages/forget-password/forget-password.component';\nimport {FirstLoginComponent} from './pages/first-login/first-login.component';\nimport {ResetPasswordComponent} from './pages/reset-password/reset-password.component';\nimport {NotAuthGuard} from '../../core/guards/not-auth.guard';\n\nconst routes: Routes = [\n {\n path: 'login',\n component: LoginComponent,\n canActivate: [NotAuthGuard]\n },\n {\n path: 'forgetPassword',\n component: ForgetPasswordComponent,\n canActivate: [NotAuthGuard]\n },\n {\n path: 'firstLogin',\n component: FirstLoginComponent\n },\n {\n path: 'resetPassword',\n component: ResetPasswordComponent\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class AuthRoutingModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AuthRoutingModule } from './auth-routing.module';\nimport { LoginComponent } from './pages/login/login.component';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatButtonModule} from '@angular/material/button';\nimport {SharedModule} from '../../shared/shared.module';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatCardModule} from '@angular/material/card';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport { ForgetPasswordComponent } from './pages/forget-password/forget-password.component';\nimport { FirstLoginComponent } from './pages/first-login/first-login.component';\nimport { ResetPasswordComponent } from './pages/reset-password/reset-password.component';\n\n\n@NgModule({\n declarations: [LoginComponent, ForgetPasswordComponent, FirstLoginComponent, ResetPasswordComponent],\n imports: [\n CommonModule,\n AuthRoutingModule,\n MatFormFieldModule,\n MatIconModule,\n MatButtonModule,\n SharedModule,\n MatInputModule,\n MatCardModule,\n ReactiveFormsModule,\n ]\n})\nexport class AuthModule { }\n","import { Component, OnInit } from '@angular/core';\nimport {Router, ActivatedRoute, ParamMap} from '@angular/router';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {AuthenticationService} from '../../../../core/services/authentication/authentication.service';\nimport {AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators} from '@angular/forms';\nimport {LoginPayload} from '../../../../shared/models/api/auth/login-payload';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\n\n@Component({\n selector: 'app-first-login',\n templateUrl: './first-login.component.html',\n styleUrls: ['./first-login.component.scss']\n})\nexport class FirstLoginComponent implements OnInit {\n private user: string = null;\n private token: string = null;\n passwordForm: FormGroup;\n hide = true;\n submitted = false;\n\n constructor(\n private fb: FormBuilder,\n private router: Router,\n private route: ActivatedRoute,\n private apiService: ApiService,\n private authService: AuthenticationService,\n private alertService: AlertService,\n ) {\n this.passwordForm = fb.group({\n password: ['', [Validators.required, Validators.minLength(8)]],\n passwordValidation: ['', [Validators.required, this.passwordMatch('password')]],\n });\n this.passwordForm.controls.password.valueChanges.subscribe(() => {\n setTimeout(() => {\n this.passwordForm.controls.passwordValidation.updateValueAndValidity();\n });\n });\n }\n\n ngOnInit(): void {\n this.route.queryParams.subscribe(params => {\n this.user = params.user;\n this.token = params.token;\n\n this.authService.signOut();\n const payload: LoginPayload = {\n email: this.user,\n password: this.token\n };\n this.apiService.authLogin(payload).subscribe(\n (response) => {\n this.authService.signIn(response.access_token, response.refresh_token);\n }, (error) => {\n this.router.navigate(['/login']);\n this.alertService.error('Utilisateur non trouvé, si vous avez copié collé le lien vérifiez qu\\'il soit bien entier');\n }\n );\n });\n }\n\n onSubmit(): void {\n this.submitted = true;\n\n this.apiService.getUserMe().subscribe((user) => {\n this.apiService.patchUser(user.id, {password: this.passwordForm.get('password').value}).subscribe((updatedUser) => {\n this.router.navigate(['/']);\n this.alertService.success('Le mot de passe à bien été mis à jour!');\n }, (updateError) => {\n this.alertService.error(`${updateError.name}: ${updateError.message}`);\n });\n });\n }\n\n passwordMatch(fieldName: string): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n const input = control.value;\n const passwordMatch = control.root.value[fieldName] !== input;\n return passwordMatch ? {passwordMatch: {passwordMatch}} : null;\n };\n }\n}\n","
\n
\n
\n

Choisir un mot de passe

\n
\n
\n
\n \n Mot de passe\n \n Entrez ici votre nouveau mot de passe\n \n \n Le mot de passe doit faire au moins 8 caractères\n \n \n Le mot de passe est requis\n \n \n
\n
\n
\n
\n \n Mot de passe (validation)\n \n Entrez de nouveau ici votre nouveau mot de passe\n \n \n Les mots de passe ne sont pas identiques\n \n \n Le mot de passe est requis\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\nimport {Router} from '@angular/router';\nimport {AuthenticationService} from '../../../../core/services/authentication/authentication.service';\nimport {ResetPasswordAskPayload} from '../../../../shared/models/api/auth/reset-password-ask-payload';\n\n@Component({\n selector: 'app-forget-password',\n templateUrl: './forget-password.component.html',\n styleUrls: ['./forget-password.component.scss']\n})\nexport class ForgetPasswordComponent implements OnInit {\n hide = true;\n forgotPasswordForm: FormGroup;\n submitted = false;\n\n constructor(\n private fb: FormBuilder,\n private apiService: ApiService,\n private alertService: AlertService,\n private authService: AuthenticationService\n ) {\n this.forgotPasswordForm = fb.group({\n email: ['', Validators.compose([\n Validators.required,\n Validators.pattern('^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$')\n ])]\n });\n }\n\n ngOnInit(): void {\n }\n\n onSubmit(): void {\n this.submitted = true;\n const payload: ResetPasswordAskPayload = {\n email: this.forgotPasswordForm.get('email').value,\n };\n\n this.apiService.authResetPasswordAsk(payload).subscribe(\n () => {\n this.alertService.success('Si l\\'adresse email est valide vous recevrez un lien dans quelques instants');\n }\n );\n }\n}\n","
\n
\n
\n

Mot de passe oublié

\n
\n
\n
\n \n Email\n \n Entrez ici votre adresse email\n \n L'adresse email est requise\n \n \n L'adresse email indiqué n'est pas valide\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\nimport {Router} from '@angular/router';\nimport {AuthenticationService} from '../../../../core/services/authentication/authentication.service';\nimport {LoginPayload} from '../../../../shared/models/api/auth/login-payload';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss']\n})\nexport class LoginComponent implements OnInit {\n hide = true;\n loginForm: FormGroup;\n submitted = false;\n\n constructor(\n private fb: FormBuilder,\n private apiService: ApiService,\n private alertService: AlertService,\n private router: Router,\n private authService: AuthenticationService\n ) {\n this.loginForm = fb.group({\n email: ['', Validators.compose([\n Validators.required,\n Validators.pattern('^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$')\n ])],\n password: ['', Validators.required]\n });\n\n }\n\n ngOnInit(): void {\n }\n\n onSubmit(): void {\n this.submitted = true;\n const payload: LoginPayload = {\n email: this.loginForm.get('email').value,\n password: this.loginForm.get('password').value\n };\n\n this.apiService.authLogin(payload).subscribe(\n (response) => {\n this.authService.signIn(response.access_token, response.refresh_token);\n this.router.navigate(['/properties']);\n }, (error) => {\n if (error.status === 401) {\n this.alertService.error('Adresse email ou mot de passe incorrect');\n } else {\n this.alertService.error(`${error.name}: ${error.message}`);\n }\n }\n );\n }\n}\n","
\n
\n
\n

Bienvenue, veuillez vous connecter

\n
\n
\n
\n \n Email\n \n Entrez ici votre adresse email\n \n L'adresse email est requise\n \n \n L'adresse email indiqué n'est pas valide\n \n \n
\n
\n
\n
\n \n Mot de passe\n \n Entrez ici votre mot de passe\n \n \n Le mot de passe est requis\n \n \n
\n
\n\n \n
\n
\n \n
\n
\n
\n\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport {AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators} from '@angular/forms';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {AuthenticationService} from '../../../../core/services/authentication/authentication.service';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\nimport {ResetPasswordResetPayload} from '../../../../shared/models/api/auth/reset-password-reset-payload';\n\n@Component({\n selector: 'app-reset-password',\n templateUrl: './reset-password.component.html',\n styleUrls: ['./reset-password.component.scss']\n})\nexport class ResetPasswordComponent implements OnInit {\n private user: string = null;\n private token: string = null;\n passwordForm: FormGroup;\n hide = true;\n submitted = false;\n\n constructor(\n private fb: FormBuilder,\n private router: Router,\n private route: ActivatedRoute,\n private apiService: ApiService,\n private authService: AuthenticationService,\n private alertService: AlertService,\n ) {\n this.passwordForm = fb.group({\n password: ['', [Validators.required, Validators.minLength(8)]],\n passwordValidation: ['', [Validators.required, this.passwordMatch('password')]],\n });\n this.passwordForm.controls.password.valueChanges.subscribe(() => {\n setTimeout(() => {\n this.passwordForm.controls.passwordValidation.updateValueAndValidity();\n });\n });\n }\n\n ngOnInit(): void {\n this.route.queryParams.subscribe(params => {\n this.user = params.user;\n this.token = params.token;\n });\n }\n\n onSubmit(): void {\n this.submitted = true;\n\n this.authService.signOut();\n const payload: ResetPasswordResetPayload = {\n email: this.user,\n token: this.token\n };\n this.apiService.authResetPasswordReset(payload).subscribe(\n (response) => {\n this.authService.signIn(response.access_token, null);\n this.apiService.getUserMe().subscribe((user) => {\n this.apiService.patchUser(user.id, {password: this.passwordForm.get('password').value}).subscribe((updatedUser) => {\n this.authService.signOut();\n this.router.navigate(['/login']);\n this.alertService.success('Le mot de passe à bien été mis à jour!');\n }, (updateError) => {\n this.alertService.error(`${updateError.name}: ${updateError.message}`);\n });\n });\n }, (error) => {\n this.router.navigate(['/forgetPassword']);\n this.alertService.error('Token invalide, le lien à peut être expiré veuillez en générer un autre');\n }\n );\n }\n\n passwordMatch(fieldName: string): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n const input = control.value;\n const passwordMatch = control.root.value[fieldName] !== input;\n return passwordMatch ? {passwordMatch: {passwordMatch}} : null;\n };\n }\n\n}\n","
\n
\n
\n

Changement de mot de passe

\n
\n
\n
\n \n Mot de passe\n \n Entrez ici votre nouveau mot de passe\n \n \n Le mot de passe doit faire au moins 8 caractères\n \n \n Le mot de passe est requis\n \n \n
\n
\n
\n
\n \n Mot de passe (validation)\n \n Entrez de nouveau ici votre nouveau mot de passe\n \n \n Les mots de passe ne sont pas identiques\n \n \n Le mot de passe est requis\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport {HomeComponent} from './pages/home/home.component';\nimport {PageNotFoundComponent} from './pages/page-not-found/page-not-found.component';\n\nconst routes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n component: HomeComponent\n },\n {\n path: '**',\n component: PageNotFoundComponent\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class MainRoutingModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MainRoutingModule } from './main-routing.module';\nimport { HomeComponent } from './pages/home/home.component';\nimport { PageNotFoundComponent } from './pages/page-not-found/page-not-found.component';\nimport {SharedModule} from '../../shared/shared.module';\nimport {MatDividerModule} from '@angular/material/divider';\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\nimport {MatButtonModule} from '@angular/material/button';\n\n\n@NgModule({\n declarations: [HomeComponent, PageNotFoundComponent],\n imports: [\n CommonModule,\n MainRoutingModule,\n SharedModule,\n MatDividerModule,\n MatProgressSpinnerModule,\n MatButtonModule\n ]\n})\nexport class MainModule { }\n","import { Component, OnInit } from '@angular/core';\nimport {AuthenticationService} from '../../../../core/services/authentication/authentication.service';\nimport {GenericUser} from '../../../../shared/models/api/users/generic-user';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\n\n@Component({\n selector: 'app-home',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.scss']\n})\nexport class HomeComponent implements OnInit {\n user?: GenericUser = undefined;\n\n constructor(\n private alertService: AlertService,\n private apiService: ApiService,\n private authenticationService: AuthenticationService\n ) { }\n\n ngOnInit(): void {\n if (this.isAuth()) {\n this.refreshUser();\n }\n }\n\n refreshUser(): void {\n this.user = undefined;\n this.apiService.getUserMe().subscribe(\n (me) => {\n this.user = me;\n }, () => {\n this.alertService.error('Une erreur est survenue lors de la récupération de l\\'utilisateur actuel');\n }\n );\n }\n\n isUserAdmin(): boolean {\n return this.user && this.user.type !== 'manager';\n }\n\n isAuth(): boolean {\n return this.authenticationService.isAuth();\n }\n}\n","
\n
\n
\n

Accueil

\n
\n
\n \n
\n
\n
\n
\n

Bienvenue {{user.firstname}} {{user.lastname}}

\n \n
\n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n

Bienvenue, veuillez vous connecter

\n Se connecter\n
\n
\n
\n
\n

Nous contacter: contact@suividecles.com

\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-page-not-found',\n templateUrl: './page-not-found.component.html',\n styleUrls: ['./page-not-found.component.scss']\n})\nexport class PageNotFoundComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","

404

\n","import { Component, OnInit } from '@angular/core';\nimport {AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators} from '@angular/forms';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\nimport {GenericUser} from '../../../../shared/models/api/users/generic-user';\nimport {PatchUserPayload} from '../../../../shared/models/api/users/patch-user-payload';\nimport { parsePhoneNumberFromString } from 'libphonenumber-js';\n\n@Component({\n selector: 'app-profile-infos',\n templateUrl: './profile-infos.component.html',\n styleUrls: ['./profile-infos.component.scss']\n})\nexport class ProfileInfosComponent implements OnInit {\n profileInfos: FormGroup;\n user: GenericUser;\n\n constructor(\n private fb: FormBuilder,\n private apiService: ApiService,\n private alertService: AlertService,\n ) {\n this.profileInfos = fb.group({\n email: ['', Validators.compose([\n Validators.required,\n Validators.pattern('^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$')\n ])],\n firstname: ['', Validators.required],\n lastname: ['', Validators.required],\n phone: ['', this.validatePhone()],\n });\n }\n\n ngOnInit(): void {\n this.apiService.getUserMe().subscribe((user) => {\n this.user = user;\n this.profileInfos.setValue({\n email: user.email,\n firstname: user.firstname,\n lastname: user.lastname,\n phone: user.phone\n });\n });\n }\n\n validatePhone(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n const input = control.value;\n if (!input) {\n return null;\n }\n const phoneNumber = parsePhoneNumberFromString(input);\n return (!phoneNumber || !phoneNumber.isValid()) ? {phone: {phone: false}} : null;\n };\n }\n\n onSubmitProfileInfos(): void {\n const phoneField = this.profileInfos.get('phone').value;\n const phone = phoneField && phoneField.length ? phoneField : null;\n const payload: PatchUserPayload = {\n email: this.profileInfos.get('email').value,\n firstname: this.profileInfos.get('firstname').value,\n lastname: this.profileInfos.get('lastname').value,\n phone\n };\n\n this.apiService.patchUser(this.user.id, payload).subscribe(\n (patchedUser) => {\n this.alertService.success('Le profil à bien été mis à jour');\n }, (error) => {\n this.alertService.error(`Erreur lors de la mise à jour du profil.`);\n }\n );\n }\n}\n","
\n \n Mes informations\n \n
\n
\n \n Email\n \n Votre adresse email\n \n L'adresse email est requise\n \n \n L'adresse email indiqué n'est pas valide\n \n \n
\n
\n
\n
\n
\n \n Prénom\n \n Votre prénom\n \n Le prénom est requis\n \n \n
\n
\n \n Nom\n \n Votre nom\n \n Le nom est requis\n \n \n
\n
\n \n Téléphone\n \n Votre numéro de téléphone\n \n Le numéro de téléphone n'est pas valide (avez vous bien indiqué le numéro international ?)\n \n \n
\n
\n
\n \n \n \n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport {AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators} from '@angular/forms';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\n\n@Component({\n selector: 'app-profile-update-password',\n templateUrl: './profile-update-password.component.html',\n styleUrls: ['./profile-update-password.component.scss']\n})\nexport class ProfileUpdatePasswordComponent implements OnInit {\n updatePasswordForm: FormGroup;\n hide = true;\n\n constructor(\n private fb: FormBuilder,\n private apiService: ApiService,\n private alertService: AlertService,\n ) {\n this.updatePasswordForm = fb.group({\n password: ['', [Validators.required, Validators.minLength(8)]],\n passwordValidation: ['', [Validators.required, this.passwordMatch('password')]],\n });\n this.updatePasswordForm.controls.password.valueChanges.subscribe(() => {\n setTimeout(() => {\n this.updatePasswordForm.controls.passwordValidation.updateValueAndValidity();\n });\n });\n }\n\n ngOnInit(): void {\n }\n\n onSubmitUpdatePassword(): void {\n this.apiService.getUserMe().subscribe((user) => {\n this.apiService.patchUser(user.id, {password: this.updatePasswordForm.get('password').value}).subscribe(\n () => {\n this.alertService.success('Mot de passe mis à jours');\n },\n () => {\n this.alertService.error('Le mot de passe n\\'est pas valide');\n }\n );\n }, () => {\n this.alertService.error('Une erreur est survenue lors de la récupération de l\\'utilisateur actuel. Veuillez réessayer');\n });\n }\n\n passwordMatch(fieldName: string): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n const input = control.value;\n const passwordMatch = control.root.value[fieldName] !== input;\n return passwordMatch ? {passwordMatch: {passwordMatch}} : null;\n };\n }\n}\n","
\n \n Changer de mot de passe\n \n
\n
\n \n Mot de passe\n \n Entrez ici votre nouveau mot de passe\n \n \n Le mot de passe doit faire au moins 8 caractères\n \n \n Le mot de passe est requis\n \n \n
\n
\n \n Mot de passe (validation)\n \n Entrez de nouveau ici votre nouveau mot de passe\n \n \n Les mots de passe ne sont pas identiques\n \n \n Le mot de passe est requis\n \n \n
\n
\n
\n \n \n \n
\n
\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-profile',\n templateUrl: './profile.component.html',\n styleUrls: ['./profile.component.scss']\n})\nexport class ProfileComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n
\n
\n

Mon profil

\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport {ProfileComponent} from './pages/profile/profile.component';\nimport {AuthGuard} from '../../core/guards/auth.guard';\n\nconst routes: Routes = [\n {\n path: 'profile',\n component: ProfileComponent,\n canActivate: [AuthGuard]\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class ProfileRoutingModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ProfileRoutingModule } from './profile-routing.module';\nimport { ProfileComponent } from './pages/profile/profile.component';\nimport { ProfileInfosComponent } from './components/profile-infos/profile-infos.component';\nimport { ProfileUpdatePasswordComponent } from './components/profile-update-password/profile-update-password.component';\nimport {MatCardModule} from '@angular/material/card';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatDividerModule} from '@angular/material/divider';\nimport {MatIconModule} from '@angular/material/icon';\nimport {AdminModule} from '../admin/admin.module';\n\n\n@NgModule({\n declarations: [ProfileComponent, ProfileInfosComponent, ProfileUpdatePasswordComponent],\n imports: [\n CommonModule,\n ProfileRoutingModule,\n MatCardModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatButtonModule,\n MatDividerModule,\n MatIconModule,\n AdminModule\n ]\n})\nexport class ProfileModule { }\n","import {Component, OnInit, EventEmitter, Output} from '@angular/core';\nimport {AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators} from '@angular/forms';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\nimport {GenericContact} from '../../../../shared/models/api/contacts/generic-contact';\nimport {CreateContactDialogData} from '../../../../shared/models/contacts/create-contact-dialog-data';\nimport {CreateContactDialogComponent} from '../../../../shared/components/create-contact-dialog/create-contact-dialog.component';\nimport {MatDialog} from '@angular/material/dialog';\nimport {GenericUser} from '../../../../shared/models/api/users/generic-user';\nimport {PostPropertyPayload} from '../../../../shared/models/api/properties/post-property-payload';\nimport {Router} from '@angular/router';\nimport {GenericProperty} from '../../../../shared/models/api/properties/generic-property';\nimport {UpdatePropertyDialogComponent} from '../update-property-dialog/update-property-dialog.component';\nimport {parsePhoneNumberFromString} from 'libphonenumber-js';\n\n@Component({\n selector: 'app-create-property',\n templateUrl: './create-property.component.html',\n styleUrls: ['./create-property.component.scss']\n})\nexport class CreatePropertyComponent implements OnInit {\n trusteeSelected = false;\n managementSelected = false;\n trusteeFormGroup: FormGroup;\n managementFormGroup: FormGroup;\n\n fileToUpload: File = null;\n contacts: GenericContact[];\n users: GenericUser[];\n\n // tslint:disable-next-line:no-output-on-prefix\n @Output() onPropertyCreated = new EventEmitter();\n\n constructor(\n private router: Router,\n private fb: FormBuilder,\n private apiService: ApiService,\n private alertService: AlertService,\n public createContactDialog: MatDialog,\n public updatePropertyDialog: MatDialog\n ) {\n this.trusteeFormGroup = fb.group({\n image: ['', Validators.required],\n name: ['', Validators.required],\n internalCode: ['', Validators.required],\n building: [''],\n digitalCode: [''],\n streetNumber: [''],\n street: ['', Validators.required],\n zipcode: ['', Validators.compose([Validators.required, Validators.pattern('^[0-9]+$')])],\n city: ['', Validators.required],\n assistant: ['']\n });\n this.managementFormGroup = fb.group({\n internalCode: ['', Validators.required],\n digitalCode: [''],\n streetNumber: [''],\n street: ['', Validators.required],\n zipcode: ['', Validators.compose([Validators.required, Validators.pattern('^[0-9]+$')])],\n city: ['', Validators.required],\n assistant: [''],\n ownerName: ['', Validators.required],\n ownerEmail: ['', this.validateOptionalEmail()],\n ownerPhone: ['', this.validatePhone()],\n batchNumber: [''],\n store: [''],\n door: ['']\n });\n }\n\n ngOnInit(): void {\n this.refreshContacts();\n this.refreshUsers();\n }\n\n onSubmitTrusteeForm(): void {\n this.trusteeFormGroup.updateValueAndValidity();\n if (!this.trusteeFormGroup.valid) {\n this.alertService.warn('La fiche n\\'est pas valide');\n return;\n }\n const assistantManagerId = this.trusteeFormGroup.get('assistant').value ? this.trusteeFormGroup.get('assistant').value.id : undefined;\n const payload: PostPropertyPayload = {\n name: this.trusteeFormGroup.get('name').value || undefined,\n type: 'trustee',\n internalCode: this.trusteeFormGroup.get('internalCode').value || undefined,\n building: this.trusteeFormGroup.get('building').value || undefined,\n digitalCode: this.trusteeFormGroup.get('digitalCode').value || undefined,\n streetNumber: this.trusteeFormGroup.get('streetNumber').value || undefined,\n street: this.trusteeFormGroup.get('street').value || undefined,\n zipcode: parseInt(this.trusteeFormGroup.get('zipcode').value, 10),\n city: this.trusteeFormGroup.get('city').value || undefined,\n assistantManagerId,\n propertyImageId: 0\n };\n this.apiService.uploadImage(this.fileToUpload).subscribe(\n (image) => {\n payload.propertyImageId = image.id;\n this.apiService.postProperties(payload).subscribe(\n (property) => {\n this.alertService.success('La fiche a bien été créée', true);\n this.onPropertyCreated.emit(property);\n const dialogRef = this.updatePropertyDialog.open(UpdatePropertyDialogComponent, {\n width: '90%',\n maxWidth: '90%',\n data: {property}\n });\n dialogRef.afterClosed().subscribe(() => {\n this.router.navigate(['/properties']);\n });\n }, () => {\n this.alertService.error('Une erreur est survenue lors de la création de la fiche');\n }\n );\n }, () => {\n this.alertService.error('Une erreur est survenue lors de l\\'envoi de l\\'image');\n }\n );\n }\n\n onSubmitManagementForm(): void {\n this.managementFormGroup.updateValueAndValidity();\n if (!this.managementFormGroup.valid) {\n this.alertService.warn('La fiche n\\'est pas valide');\n return;\n }\n const assistantManagerId = this.managementFormGroup.get('assistant').value ? this.managementFormGroup.get('assistant').value.id : undefined;\n const payload: PostPropertyPayload = {\n type: 'management',\n internalCode: this.managementFormGroup.get('internalCode').value || undefined,\n ownerName: this.managementFormGroup.get('ownerName').value || undefined,\n ownerEmail: this.managementFormGroup.get('ownerEmail').value || undefined,\n ownerPhone: this.managementFormGroup.get('ownerPhone').value || undefined,\n digitalCode: this.managementFormGroup.get('digitalCode').value || undefined,\n streetNumber: this.managementFormGroup.get('streetNumber').value || undefined,\n street: this.managementFormGroup.get('street').value || undefined,\n zipcode: parseInt(this.managementFormGroup.get('zipcode').value, 10),\n city: this.managementFormGroup.get('city').value || undefined,\n batchNumber: this.managementFormGroup.get('batchNumber').value || undefined,\n store: this.managementFormGroup.get('store').value || undefined,\n door: this.managementFormGroup.get('door').value || undefined,\n assistantManagerId\n };\n this.apiService.postProperties(payload).subscribe(\n (property) => {\n this.alertService.success('La fiche a bien été créée', true);\n this.onPropertyCreated.emit(property);\n const dialogRef = this.updatePropertyDialog.open(UpdatePropertyDialogComponent, {\n width: '90%',\n maxWidth: '90%',\n data: {property}\n });\n dialogRef.afterClosed().subscribe(() => {\n this.router.navigate(['/properties']);\n });\n }, () => {\n this.alertService.error('Une erreur est survenue lors de la création de la fiche');\n }\n );\n }\n\n onFileChange(files: FileList): void {\n this.fileToUpload = files.item(0);\n }\n\n newContact(): void {\n const data: CreateContactDialogData = {\n type: 'syndicate_contact'\n };\n const dialogRef = this.createContactDialog.open(CreateContactDialogComponent, {\n width: '80%',\n data\n });\n dialogRef.afterClosed().subscribe(() => {\n this.refreshContacts();\n });\n }\n\n refreshContacts(): void {\n this.apiService.getContacts().subscribe(\n (contacts) => {\n this.contacts = contacts.filter((contact) => {\n return contact.type === 'syndicate_contact';\n }).sort((a, b) => {\n if (a.name < b.name) { return -1; }\n if (a.name > b.name) { return 1; }\n return 0;\n });\n }, () => {\n this.alertService.warn('Une erreur est survenue lors de la récupération des contacts');\n }\n );\n }\n\n refreshUsers(): void {\n this.apiService.getUserMe().subscribe(\n (me) => {\n this.apiService.getUsers().subscribe(\n (users) => {\n this.users = users.filter((user) => {\n return user.isActive && user.id !== me.id && user.managerType !== 'reception';\n }).sort((a, b) => {\n if (a.lastname < b.lastname) { return -1; }\n if (a.lastname > b.lastname) { return 1; }\n return 0;\n });\n }, () => {\n this.alertService.warn('Une erreur est survenue lors de la récupération des utilisateurs');\n }\n );\n }, () => {\n this.alertService.warn('Une erreur est survenue lors de la récupération de l\\'utilisateur actuel');\n }\n );\n }\n\n validateOptionalEmail(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n const input = control.value;\n if (!input) {\n return null;\n }\n return (Validators.pattern('^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$'))(control);\n };\n }\n\n validatePhone(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n const input = control.value;\n if (!input) {\n return null;\n }\n const phoneNumber = parsePhoneNumberFromString(input);\n return (!phoneNumber || !phoneNumber.isValid()) ? {phone: {phone: false}} : null;\n };\n }\n}\n","\n Créer une fiche\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n Image\n \n \n Une image du bien\n folder\n \n L'image de la propriété est requise\n \n \n
\n
\n \n Nom\n \n Le nom de la résidence\n \n Le nom de la propriété est requis\n \n \n
\n
\n \n Code interne\n \n Le code du bien\n \n Le code interne est requis\n \n \n
\n
\n\n
\n
\n \n Numéro\n \n \n
\n
\n \n Rue\n \n \n La rue est requise\n \n \n
\n\n
\n \n Code postal\n \n \n Le code postal est requis\n \n \n Le code postal indiqué n'est pas valide\n \n \n
\n
\n \n Ville\n \n \n La ville est requise\n \n \n
\n
\n \n Bâtiment\n \n \n
\n
\n \n Digicode\n \n \n
\n
\n\n
\n
\n \n Assistant\n \n -- Aucun --\n \n {{user.lastname}} {{user.firstname}}\n \n \n \n
\n
\n
\n
\n Vous pourrez ajouter des contacts après la création de la fiche\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n Nom de la gérance\n \n Le nom du propriétaire du bien\n \n Le nom du propriétaire est requis\n \n \n
\n
\n \n Code interne\n \n Le code du bien\n \n Le code interne est requis\n \n \n
\n
\n\n
\n
\n \n Email propriétaire\n \n L'email du propriétaire du bien\n \n L'adresse email indiqué n'est pas valide\n \n \n
\n
\n \n Téléphone propriétaire\n \n Le téléphone du propriétaire du bien (avec numéro international)\n \n Le numéro de téléphone n'est pas valide (avez vous bien indiqué le numéro international ?)\n \n \n
\n
\n\n
\n
\n \n Numéro\n \n \n
\n
\n \n Rue\n \n \n La rue est requise\n \n \n
\n\n
\n \n Code postal\n \n \n Le code postal est requis\n \n \n Le code postal indiqué n'est pas valide\n \n \n
\n
\n \n Ville\n \n \n La ville est requise\n \n \n
\n
\n \n Digicode\n \n \n
\n
\n\n
\n
\n \n Lot N°\n \n \n
\n
\n \n Étage\n \n \n
\n
\n \n Porte\n \n \n
\n
\n\n
\n
\n \n Assistant\n \n -- Aucun --\n \n {{user.lastname}} {{user.firstname}}\n \n \n \n
\n
\n
\n
\n Vous pourrez ajouter des contacts et locataires après la création de la fiche\n
\n
\n
\n \n \n \n
\n
\n
\n","import {Component, Inject, OnInit, ViewChild} from '@angular/core';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\nimport {DisplayHistoryDialogData} from '../../../../shared/models/properties/display-history-dialog-data';\nimport {MatTableDataSource} from '@angular/material/table';\nimport {MatPaginator, MatPaginatorIntl} from '@angular/material/paginator';\nimport {MatSort, Sort} from '@angular/material/sort';\nimport {CustomPaginator} from '../../../admin/components/users-list/users-list.component';\n\ninterface TableRow {\n type: string;\n name: string;\n date: number;\n state: string;\n contact: string;\n origin: string;\n}\n\n@Component({\n selector: 'app-display-history-dialog',\n templateUrl: './display-history-dialog.component.html',\n styleUrls: ['./display-history-dialog.component.scss'],\n providers: [\n { provide: MatPaginatorIntl, useValue: CustomPaginator('Taille de l\\'historique: ')}\n ]\n})\nexport class DisplayHistoryDialogComponent implements OnInit {\n displayedColumns: string[] = ['type', 'name', 'date', 'state', 'contact', 'origin'];\n dataSource: MatTableDataSource;\n\n @ViewChild(MatSort, {static: true}) sort: MatSort;\n @ViewChild(MatPaginator, {static: true}) paginator: MatPaginator;\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: DisplayHistoryDialogData\n ) { }\n\n ngOnInit(): void {\n this.refreshDataSource();\n\n const sortState: Sort = {active: 'date', direction: 'desc'};\n this.sort.active = sortState.active;\n this.sort.direction = sortState.direction;\n this.sort.sortChange.emit(sortState);\n }\n\n refreshDataSource(): void {\n this.dataSource = new MatTableDataSource(this.computeHistoryToTableRow());\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n }\n\n computeHistoryToTableRow(): TableRow[] {\n return this.data.property.history.map((entry) => {\n if (entry.type === 'key') {\n const relatedKey = this.data.property.keys.find((key) => {\n return key.id === entry.relatedId;\n });\n return {\n type: 'Clé',\n name: `${relatedKey.name} (${relatedKey.tag})`,\n date: new Date(entry.time).getTime(),\n state: this.computeStateDisplay(entry.state),\n contact: entry.contact ? `${entry.contact.name}${entry.contact.office ? ', ' + entry.contact.office + ' ' : ''}(${entry.contact.email}${entry.contact.phone ? ', ' + entry.contact.phone : ''})` : '',\n origin: `${entry.origin.firstname} ${entry.origin.lastname} (${entry.origin.email})`\n };\n } else {\n const relatedKeyring = this.data.property.keyrings.find((keyring) => {\n return keyring.id === entry.relatedId;\n });\n return {\n type: 'Trousseau',\n name: `${relatedKeyring.name}`,\n date: new Date(entry.time).getTime(),\n state: this.computeStateDisplay(entry.state),\n contact: entry.contact ? `${entry.contact.name}${entry.contact.office ? ', ' + entry.contact.office + ' ' : ''}(${entry.contact.email}${entry.contact.phone ? ', ' + entry.contact.phone : ''})` : '',\n origin: `${entry.origin.firstname} ${entry.origin.lastname} (${entry.origin.email})`\n };\n }\n });\n }\n\n computeDateDisplay(date: number): string {\n return `${new Date(date).toLocaleDateString('fr-FR')} ${new Date(date).toLocaleTimeString('fr-FR')}`;\n }\n\n computeStateDisplay(state: 'away' | 'returned' | 'lost'): string {\n switch (state) {\n case 'away':\n return 'sorti';\n case 'lost':\n return 'perdu';\n case 'returned':\n return 'rentré';\n }\n }\n}\n","
\n

Historique de {{data.property.type === 'trustee' ? data.property.name : data.property.ownerName}} ({{data.property.internalCode}})

\n \n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n
Type {{row.type}} Nom {{row.name}} Date {{computeDateDisplay(row.date)}} État {{row.state}} Contact {{row.contact}} Origine {{row.origin}}
\n \n
\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {GenericHistoryEntry} from '../../../../shared/models/api/history/generic-history-entry';\nimport {GenericKey} from '../../../../shared/models/api/keys/generic-key';\nimport {GenericAgency} from '../../../../shared/models/api/agencies/generic-agency';\nimport {ValidationDialogData} from '../../../../shared/models/validation-dialog-data';\nimport {PostHistoryPayload} from '../../../../shared/models/api/history/post-history-payload';\nimport {ValidationDialogComponent} from '../../../../shared/components/validation-dialog/validation-dialog.component';\nimport {\n UpdateStateAwayDialogComponent,\n UpdateStateAwayDialogData\n} from '../update-state-away-dialog/update-state-away-dialog.component';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\nimport {MatDialog} from '@angular/material/dialog';\n\n@Component({\n selector: 'app-key-infos',\n templateUrl: './key-infos.component.html',\n styleUrls: ['./key-infos.component.scss']\n})\nexport class KeyInfosComponent implements OnInit {\n @Input() key: GenericKey;\n @Input() state: GenericHistoryEntry;\n @Input() agency: GenericAgency;\n\n // tslint:disable-next-line:no-output-on-prefix\n @Output() onKeyStateUpdated = new EventEmitter();\n\n isOpen = false;\n\n constructor(\n private apiService: ApiService,\n private alertService: AlertService,\n public validationDialog: MatDialog,\n ) { }\n\n ngOnInit(): void {\n }\n\n getHumanReadableDate(reminder: string): string {\n const date = new Date(reminder);\n return date.toLocaleDateString('fr-FR');\n }\n\n onOpen(): void {\n this.isOpen = true;\n }\n\n onClose(): void {\n this.isOpen = false;\n }\n\n onReturnedButtonClick(): void {\n const data: ValidationDialogData = {\n title: `Changer la clé ${this.key.name}`,\n text: `Êtes vous sûr de vouloir indiquer que la clé ${this.key.name} est rentrée ?`,\n onValidate: () => {\n const payload: PostHistoryPayload = {\n type: 'key',\n relatedId: this.key.id,\n state: 'returned',\n propertyId: this.key.property.id\n };\n this.apiService.postHistory(payload).subscribe(\n (entry) => {\n this.onKeyStateUpdated.emit(entry);\n this.alertService.success('Le changement a bien été effectué');\n }, () => {\n this.alertService.error('Une erreur est survenue lors du changement d\\'état, veuillez réessayer');\n }\n );\n },\n onDiscard: () => {}\n };\n this.validationDialog.open(ValidationDialogComponent, {\n data\n });\n }\n\n onAwayButtonClick(): void {\n const data: UpdateStateAwayDialogData = {\n type: 'key',\n propertyId: this.key.property.id,\n relatedId: this.key.id,\n name: this.key.name,\n agencyId: this.agency.id\n };\n const dialogRef = this.validationDialog.open(UpdateStateAwayDialogComponent, {\n data\n });\n dialogRef.afterClosed().subscribe((entry) => {\n if (entry) {\n this.onKeyStateUpdated.emit(entry);\n }\n });\n }\n\n onLostButtonClick(): void {\n const data: ValidationDialogData = {\n title: `Changer la clé ${this.key.name}`,\n text: `Êtes vous sûr de vouloir indiquer que la clé ${this.key.name} est perdue ?`,\n onValidate: () => {\n const payload: PostHistoryPayload = {\n type: 'key',\n relatedId: this.key.id,\n state: 'lost',\n propertyId: this.key.property.id\n };\n this.apiService.postHistory(payload).subscribe(\n (entry) => {\n this.onKeyStateUpdated.emit(entry);\n this.alertService.success('Le changement a bien été effectué');\n }, () => {\n this.alertService.error('Une erreur est survenue lors du changement d\\'état, veuillez réessayer');\n }\n );\n },\n onDiscard: () => {}\n };\n this.validationDialog.open(ValidationDialogComponent, {\n data\n });\n }\n}\n","\n \n
{{key.name}}
\n \n
\n
\n
Rentré
\n radio_button_checked\n radio_button_unchecked\n
\n
\n
Sorti
\n radio_button_checked\n radio_button_unchecked\n
\n
\n
Perdu
\n radio_button_checked\n radio_button_unchecked\n
\n
\n
\n
\n
\n
\n
Informations
\n
\n
Repère
\n
Désignation
\n
Description
\n
\n
\n
{{key.tag}}
\n
{{key.name}}
\n
{{key.description}}
\n
\n
\n \n
\n
Prestataire
\n
\n
Nom: {{state.contact.name}}
\n
Fonction: {{state.contact.office}}
\n
email: {{state.contact.email}}
\n
téléphone: {{state.contact.phone}}
\n
\n
\n
Rappel le {{getHumanReadableDate(state.reminder)}}
\n
\n
\n \n
\n
État
\n
\n
\n
Rentré
\n \n \n
\n
\n
Sorti
\n \n \n
\n
\n
Perdu
\n \n \n
\n
\n
\n
\n
\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {GenericKeyring} from '../../../../shared/models/api/keyrings/generic-keyring';\nimport {GenericHistoryEntry} from '../../../../shared/models/api/history/generic-history-entry';\nimport {ValidationDialogData} from '../../../../shared/models/validation-dialog-data';\nimport {ValidationDialogComponent} from '../../../../shared/components/validation-dialog/validation-dialog.component';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\nimport {MatDialog} from '@angular/material/dialog';\nimport {PostHistoryPayload} from '../../../../shared/models/api/history/post-history-payload';\nimport {\n UpdateStateAwayDialogComponent,\n UpdateStateAwayDialogData\n} from '../update-state-away-dialog/update-state-away-dialog.component';\nimport {GenericAgency} from '../../../../shared/models/api/agencies/generic-agency';\n\n@Component({\n selector: 'app-keyring-infos',\n templateUrl: './keyring-infos.component.html',\n styleUrls: ['./keyring-infos.component.scss']\n})\nexport class KeyringInfosComponent implements OnInit {\n @Input() keyring: GenericKeyring;\n @Input() state: GenericHistoryEntry;\n @Input() agency: GenericAgency;\n\n // tslint:disable-next-line:no-output-on-prefix\n @Output() onKeyringStateUpdated = new EventEmitter();\n\n isOpen = false;\n\n constructor(\n private apiService: ApiService,\n private alertService: AlertService,\n public validationDialog: MatDialog,\n ) { }\n\n ngOnInit(): void {\n }\n\n getHumanReadableDate(reminder: string): string {\n const date = new Date(reminder);\n return date.toLocaleDateString('fr-FR');\n }\n\n onOpen(): void {\n this.isOpen = true;\n }\n\n onClose(): void {\n this.isOpen = false;\n }\n\n onReturnedButtonClick(): void {\n const data: ValidationDialogData = {\n title: `Changer le trousseau ${this.keyring.name}`,\n text: `Êtes vous sûr de vouloir indiquer que le trousseau ${this.keyring.name} est rentré ?`,\n onValidate: () => {\n const payload: PostHistoryPayload = {\n type: 'keyring',\n relatedId: this.keyring.id,\n state: 'returned',\n propertyId: this.keyring.property.id\n };\n this.apiService.postHistory(payload).subscribe(\n (entry) => {\n this.onKeyringStateUpdated.emit(entry);\n this.alertService.success('Le changement a bien été effectué');\n }, () => {\n this.alertService.error('Une erreur est survenue lors du changement d\\'état, veuillez réessayer');\n }\n );\n },\n onDiscard: () => {}\n };\n this.validationDialog.open(ValidationDialogComponent, {\n data\n });\n }\n\n onAwayButtonClick(): void {\n const data: UpdateStateAwayDialogData = {\n type: 'keyring',\n propertyId: this.keyring.property.id,\n relatedId: this.keyring.id,\n name: this.keyring.name,\n agencyId: this.agency.id\n };\n const dialogRef = this.validationDialog.open(UpdateStateAwayDialogComponent, {\n data\n });\n dialogRef.afterClosed().subscribe((entry) => {\n if (entry) {\n this.onKeyringStateUpdated.emit(entry);\n }\n });\n }\n\n onLostButtonClick(): void {\n const data: ValidationDialogData = {\n title: `Changer le trousseau ${this.keyring.name}`,\n text: `Êtes vous sûr de vouloir indiquer que le trousseau ${this.keyring.name} est perdu ?`,\n onValidate: () => {\n const payload: PostHistoryPayload = {\n type: 'keyring',\n relatedId: this.keyring.id,\n state: 'lost',\n propertyId: this.keyring.property.id\n };\n this.apiService.postHistory(payload).subscribe(\n (entry) => {\n this.onKeyringStateUpdated.emit(entry);\n this.alertService.success('Le changement a bien été effectué');\n }, () => {\n this.alertService.error('Une erreur est survenue lors du changement d\\'état, veuillez réessayer');\n }\n );\n },\n onDiscard: () => {}\n };\n this.validationDialog.open(ValidationDialogComponent, {\n data\n });\n }\n}\n","\n \n
{{keyring.name}}
\n \n
\n
\n
Rentré
\n radio_button_checked\n radio_button_unchecked\n
\n
\n
Sorti
\n radio_button_checked\n radio_button_unchecked\n
\n
\n
Perdu
\n radio_button_checked\n radio_button_unchecked\n
\n
\n
\n
\n
\n
\n
Clés
\n
\n
Repère
\n
Désignation
\n
Description
\n
\n
\n
{{key.tag}}
\n
{{key.name}}
\n
{{key.description}}
\n
\n
\n \n
\n
Prestataire
\n
\n
Nom: {{state.contact.name}}
\n
Fonction: {{state.contact.office}}
\n
email: {{state.contact.email}}
\n
téléphone: {{state.contact.phone}}
\n
\n
\n
Rappel le {{getHumanReadableDate(state.reminder)}}
\n
\n
\n \n
\n
État
\n
\n
\n
Rentré
\n \n \n
\n
\n
Sorti
\n \n \n
\n
\n
Perdu
\n \n \n
\n
\n
\n
\n
\n","import {Component, OnInit, ViewChild} from '@angular/core';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\nimport {GenericProperty} from '../../../../shared/models/api/properties/generic-property';\nimport {MatTableDataSource} from '@angular/material/table';\nimport {MatPaginator, MatPaginatorIntl} from '@angular/material/paginator';\nimport {MatSort} from '@angular/material/sort';\nimport {GenericUser} from '../../../../shared/models/api/users/generic-user';\nimport {Router} from '@angular/router';\nimport {CustomPaginator} from '../../../admin/components/users-list/users-list.component';\nimport {MatSelectChange} from '@angular/material/select';\nimport {GenericKey} from '../../../../shared/models/api/keys/generic-key';\nimport {GenericKeyring} from '../../../../shared/models/api/keyrings/generic-keyring';\nimport {GenericTenant} from '../../../../shared/models/api/tenants/generic-tenant';\n\nexport interface AddressRowValues {\n id: number;\n type: 'trustee' | 'management';\n name: string;\n ownerName: string;\n internalCode: string;\n address: string;\n managerName: string;\n managerId: number;\n state: 'returned' | 'away' | 'lost' | 'no_key' | 'unknown';\n hasLostKey: boolean;\n keys: GenericKey[];\n keyrings: GenericKeyring[];\n tenants: GenericTenant[];\n}\n\n@Component({\n selector: 'app-properties-list',\n templateUrl: './properties-list.component.html',\n styleUrls: ['./properties-list.component.scss'],\n providers: [\n { provide: MatPaginatorIntl, useValue: CustomPaginator('Fiche par page: ')}\n ]\n})\nexport class PropertiesListComponent implements OnInit {\n\n constructor(\n public router: Router,\n private apiService: ApiService,\n private alertService: AlertService\n ) {\n this.refreshDataSource();\n }\n displayedColumns: string[] = ['name', 'internalCode', 'address', 'state'];\n properties: GenericProperty[] = [];\n myProperties: GenericProperty[] = [];\n propertiesState: Map =\n new Map();\n dataSource: MatTableDataSource;\n\n @ViewChild(MatPaginator, {static: true}) paginator: MatPaginator;\n @ViewChild(MatSort, {static: true}) sort: MatSort;\n onlyMyFiles = true;\n\n user?: GenericUser;\n managers: GenericUser[];\n\n static filterPredicate(data: AddressRowValues, filterStr: string): boolean {\n if (!filterStr) {\n return true;\n }\n const filters = filterStr.split(';');\n let aggregatedString = `${data.managerName}|${data.name}|${data.ownerName}|${data.internalCode}|${data.address}`.trim().toLowerCase();\n for (const key of data.keys) {\n aggregatedString += `|${key.name}|${key.tag}`.trim().toLowerCase();\n }\n for (const keyrings of data.keyrings) {\n aggregatedString += `|${keyrings.name}`.trim().toLowerCase();\n }\n for (const tenant of data.tenants) {\n aggregatedString += `|${tenant.name}`.trim().toLowerCase();\n }\n if (data.hasLostKey) {\n aggregatedString += '|perdu';\n }\n switch (data.state) {\n case 'returned': aggregatedString += '|rentre|rentré'; break;\n case 'away': aggregatedString += '|sorti'; break;\n case 'lost': aggregatedString += '|perdu'; break;\n default: break;\n }\n for (const filter of filters) {\n if (!aggregatedString.includes(filter)) {\n return false;\n }\n }\n return true;\n }\n\n ngOnInit(): void {\n this.refreshProperties();\n this.refreshUser();\n this.refreshManagers();\n }\n\n refreshProperties(): void {\n this.apiService.getUserMe().subscribe(\n (me) => {\n this.apiService.getProperties().subscribe(\n (properties) => {\n this.properties = properties;\n this.myProperties = properties.filter((property) => {\n return property.manager.id === me.id || property.assistantManager?.id === me.id;\n });\n this.computePropertyStates();\n this.refreshDataSource();\n },\n (error) => {\n this.alertService.error('Error lors de la récupération des fiches, veuillez réessayer');\n }\n );\n }, () => {\n this.alertService.error('Error lors de la récupération de l\\'utilisateur actuel, veuillez réessayer');\n }\n );\n }\n\n computePropertyStates(): void {\n for (const property of this.properties) {\n this.propertiesState.set(property.id, this.computeState(property));\n }\n }\n\n computeState(property: GenericProperty): {state: 'returned' | 'away' | 'lost' | 'no_key', hasLostKey: boolean} {\n let nbReturned = 0;\n let nbAway = 0;\n let nbLost = 0;\n for (const key of property.keys) {\n if (key.keyring) {\n continue;\n }\n const relatedEntries = property.history.filter((entry) => {\n return entry.type === 'key' && entry.relatedId === key.id;\n });\n relatedEntries.sort((a, b) => {\n return new Date(b.time).getTime() - new Date(a.time).getTime();\n });\n if (relatedEntries && relatedEntries.length) {\n switch (relatedEntries[0].state) {\n case 'away': nbAway++; break;\n case 'lost': nbLost++; break;\n case 'returned': nbReturned++; break;\n }\n } else {\n nbReturned++;\n }\n }\n for (const keyring of property.keyrings) {\n const relatedEntries = property.history.filter((entry) => {\n return entry.type === 'keyring' && entry.relatedId === keyring.id;\n });\n relatedEntries.sort((a, b) => {\n return new Date(b.time).getTime() - new Date(a.time).getTime();\n });\n if (relatedEntries && relatedEntries.length) {\n switch (relatedEntries[0].state) {\n case 'away': nbAway++; break;\n case 'lost': nbLost++; break;\n case 'returned': nbReturned++; break;\n }\n } else {\n nbReturned++;\n }\n }\n if (nbAway === 0 && nbReturned === 0 && nbLost === 0) {\n return {\n state: 'no_key',\n hasLostKey: false\n };\n }\n return {\n state: nbAway > 0 ? 'away' : (nbReturned > 0 ? 'returned' : 'lost'),\n hasLostKey: nbLost > 0\n };\n }\n\n refreshDataSource(): void {\n this.dataSource = new MatTableDataSource((this.onlyMyFiles ? this.myProperties : this.properties).map((property: GenericProperty) => {\n const propState = this.propertiesState.has(property.id) ? this.propertiesState.get(property.id) : null;\n return {\n id: property.id,\n type: property.type,\n name: property.name || '',\n ownerName: property.ownerName || '',\n internalCode: property.internalCode,\n address: `${property.address.streetNumber ? property.address.streetNumber + ' ' : ''}${property.address.street}, ${property.address.zipcode} ${property.address.city}`,\n managerName: `${property.manager.firstname} ${property.manager.lastname}`,\n managerId: property.manager.id,\n state: propState ? propState.state : 'unknown',\n hasLostKey: propState ? propState.hasLostKey : false,\n keys: property.keys,\n keyrings: property.keyrings,\n tenants: property.tenants\n };\n }));\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n this.dataSource.filterPredicate = PropertiesListComponent.filterPredicate;\n }\n\n refreshUser(): void {\n this.apiService.getUserMe().subscribe(\n (me) => {\n this.user = me;\n this.onlyMyFiles = me.managerType !== 'reception';\n if (this.user.type === 'agency_director') {\n setTimeout(() => {\n this.displayedColumns = ['manager', 'name', 'internalCode', 'address', 'state'];\n this.refreshDataSource();\n });\n }\n }, () => {\n this.alertService.error(`Une erreur est survenue lors de la récupération de l'utilisateur actuel`);\n }\n );\n }\n\n refreshManagers(): void {\n this.managers = [];\n this.apiService.getUsers().subscribe(\n (users) => {\n this.managers = users.filter((user: GenericUser) => {\n return (user.type === 'manager' && user.managerType !== 'reception') || user.type === 'agency_director';\n }).sort((a, b) => {\n if (`${a.firstname} ${a.lastname}` < `${b.firstname} ${b.lastname}`) { return -1; }\n if (`${a.firstname} ${a.lastname}` > `${b.firstname} ${b.lastname}`) { return 1; }\n return 0;\n });\n this.refreshDataSource();\n }, () => {\n this.alertService.error('Une erreur est survenue lors de la récupération des gestionnaires');\n }\n );\n }\n\n applyFilter(event: Event): void {\n const filterValue = (event.target as HTMLInputElement).value;\n this.dataSource.filter = filterValue.trim().toLowerCase();\n\n if (this.dataSource.paginator) {\n this.dataSource.paginator.firstPage();\n }\n }\n\n onCheckboxUpdated(event: Event): void {\n this.refreshDataSource();\n }\n\n shouldDisplayPropertyCreate(): boolean {\n return this.user && this.user.type !== 'admin' && this.user.managerType !== 'reception';\n }\n\n updateManagerForProperty(propertyId: number, event: MatSelectChange): void {\n const managerId = event.value;\n this.apiService.patchProperty(propertyId, {\n managerId\n }).subscribe(() => {\n this.refreshProperties();\n this.alertService.success(`Le gestionnaire a bien été changé.`);\n }, () => {\n this.alertService.error(`Une erreur est survenue lors du changement de gestionnaire`);\n });\n }\n}\n","\n Trouver une fiche\n \n \n searchRecherche\n \n \n Afficher seulement mes fiches\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n\n \n \n \n \n
Gestionnaire \n \n \n {{manager.firstname}} {{manager.lastname}}\n \n \n Nom de la résidence ou gérance {{row.type === 'trustee' ? row.name : row.ownerName}} Nom du locataire {{row.type === 'trustee' ? '' : row.name}} Code {{row.internalCode}} Adresse {{row.address}} État \n radio_button_checked\n radio_button_unchecked\n report\n
Aucune donnée ne correspond au filtre {{input.value}}
\n \n
\n \n \n \n
\n","import { Component, OnInit } from '@angular/core';\nimport {GenericProperty} from '../../../../shared/models/api/properties/generic-property';\nimport {FormBuilder} from '@angular/forms';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\nimport {GenericKeyring} from '../../../../shared/models/api/keyrings/generic-keyring';\nimport {GenericKey} from '../../../../shared/models/api/keys/generic-key';\nimport {GenericHistoryEntry} from '../../../../shared/models/api/history/generic-history-entry';\nimport {MatDialog} from '@angular/material/dialog';\nimport {DisplayHistoryDialogComponent} from '../display-history-dialog/display-history-dialog.component';\nimport {DisplayHistoryDialogData} from '../../../../shared/models/properties/display-history-dialog-data';\nimport {UpdateKeyStatesDialogData} from '../../../../shared/models/properties/update-key-states-dialog-data';\nimport {UpdateKeyStatesDialogComponent} from '../update-key-states-dialog/update-key-states-dialog.component';\nimport {ValidationDialogComponent} from '../../../../shared/components/validation-dialog/validation-dialog.component';\nimport {ValidationDialogData} from '../../../../shared/models/validation-dialog-data';\nimport {UpdatePropertyDialogComponent} from '../update-property-dialog/update-property-dialog.component';\nimport {UpdatePropertyDialogData} from '../../../../shared/models/properties/update-property-dialog-data';\nimport {ContactsDisplayDialogData} from '../../../../shared/models/contacts/contacts-display-dialog-data';\nimport {ContactsDisplayDialogComponent} from '../../../../shared/components/contacts-display-dialog/contacts-display-dialog.component';\nimport {TenantsDisplayDialogData} from '../../../../shared/models/tenants/tenants-display-dialog-data';\nimport {TenantsDisplayDialogComponent} from '../../../../shared/components/tenants-display-dialog/tenants-display-dialog.component';\nimport {jsPDF} from 'jspdf';\nimport autoTable from 'jspdf-autotable';\n\n@Component({\n selector: 'app-property-infos',\n templateUrl: './property-infos.component.html',\n styleUrls: ['./property-infos.component.scss']\n})\nexport class PropertyInfosComponent implements OnInit {\n id: number;\n property: GenericProperty;\n keyrings: GenericKeyring[] = [];\n keys: GenericKey[] = [];\n canManageProperty = false;\n\n constructor(\n private fb: FormBuilder,\n private router: Router,\n private route: ActivatedRoute,\n private apiService: ApiService,\n private alertService: AlertService,\n public historyDisplayDialog: MatDialog,\n public contactsDisplayDialog: MatDialog,\n public deletePropertyValidationDialog: MatDialog,\n public updatePropertyDialog: MatDialog,\n ) {\n }\n\n ngOnInit(): void {\n this.id = parseInt(this.route.snapshot.paramMap.get('id'), 10);\n this.refreshProperty();\n }\n\n refreshProperty(): void {\n this.apiService.getUserMe().subscribe(\n (me) => {\n this.apiService.getProperty(this.id).subscribe(\n (property) => {\n this.property = property;\n this.keyrings = property.keyrings || [];\n this.keys = property.keys?.filter((key) => {\n return !key.keyring;\n }) || [];\n this.canManageProperty = (property.manager.id === me.id ||\n property.assistantManager?.id === me.id || me.type === 'admin' || me.type === 'agency_director');\n },\n () => {\n this.router.navigate(['/properties']);\n this.alertService.error(`La propriété n'a pas été trouvée ou vous n'avez pas l'autorisation d'y accéder`);\n }\n );\n },\n () => {\n this.router.navigate(['/properties']);\n this.alertService.error(`Une erreur est survenue lors de la récupération de l'utilisateur, veuillez réessayer`);\n }\n );\n }\n\n displayHistory(): void {\n const data: DisplayHistoryDialogData = {\n property: this.property\n };\n this.historyDisplayDialog.open(DisplayHistoryDialogComponent, {\n width: '90%',\n maxWidth: '90%',\n data\n });\n }\n\n deleteProperty(): void {\n const data: ValidationDialogData = {\n title: 'Supprimer la fiche ?',\n text: 'Êtes vous sûr de vouloir supprimer la fiche ? (toutes les clés, tous les trousseaux et l\\'historique de la fiche seront aussi supprimés)',\n onValidate: () => {\n this.apiService.deleteProperty(this.id).subscribe(\n () => {\n this.alertService.success('La fiche a bien été supprimée', true);\n this.router.navigate(['/properties']);\n }, () => {\n this.alertService.error('Une erreur est survenue lors de la suppression de la fiche.');\n }\n );\n },\n onDiscard: () => {}\n };\n this.deletePropertyValidationDialog.open(ValidationDialogComponent, {\n data\n });\n }\n\n changeKeysState(): void {\n const data: UpdateKeyStatesDialogData = {\n property: this.property,\n keys: this.keys,\n keyrings: this.keyrings\n };\n const dialogRef = this.historyDisplayDialog.open(UpdateKeyStatesDialogComponent, {\n width: '90%',\n maxWidth: '90%',\n data\n });\n dialogRef.afterClosed().subscribe(() => {\n this.refreshProperty();\n });\n }\n\n updateProperty(): void {\n const data: UpdatePropertyDialogData = {\n property: this.property\n };\n const dialogRef = this.updatePropertyDialog.open(UpdatePropertyDialogComponent, {\n width: '90%',\n maxWidth: '90%',\n data\n });\n dialogRef.afterClosed().subscribe((property) => {\n if (property !== null) {\n this.refreshProperty();\n }\n });\n }\n\n capitalize(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();\n }\n\n computeState(type: 'key' | 'keyring', id: number): GenericHistoryEntry {\n const relatedEntries = this.property.history.filter((entry) => {\n return entry.type === type && entry.relatedId === id;\n });\n relatedEntries.sort((a, b) => {\n return new Date(b.time).getTime() - new Date(a.time).getTime();\n });\n if (relatedEntries && relatedEntries.length) {\n return relatedEntries[0];\n }\n return {\n id: 0,\n type,\n relatedId: id,\n state: 'returned',\n contact: null,\n reminder: null,\n origin: null,\n property: this.property,\n time: new Date().toISOString(),\n };\n }\n\n displayContacts(): void {\n const data: ContactsDisplayDialogData = {\n contacts: this.property.syndicateContacts\n };\n const dialogRef = this.contactsDisplayDialog.open(ContactsDisplayDialogComponent, {\n width: '90%',\n maxWidth: '90%',\n data\n });\n }\n\n displayTenants(): void {\n const data: TenantsDisplayDialogData = {\n tenants: this.property.tenants\n };\n const dialogRef = this.contactsDisplayDialog.open(TenantsDisplayDialogComponent, {\n width: '90%',\n maxWidth: '90%',\n data\n });\n }\n\n displayPDF(): void {\n const propertyName = this.property.type === 'trustee' ? this.property.name : this.property.ownerName;\n const propertyAddress = `${this.property.address.streetNumber || ''} ${this.property.address.street || ''}, ${this.property.address.zipcode || ''} ${this.property.address.city || ''}`;\n let currentXOffset = 10;\n let currentYOffset = 20;\n\n const doc = new jsPDF();\n doc.setProperties({\n title: `${propertyName}`\n });\n doc.setFontSize(18);\n doc.text(propertyName, currentXOffset, currentYOffset);\n currentYOffset += 10;\n doc.setFontSize(14);\n doc.text(`Adresse: ${propertyAddress}`, currentXOffset, currentYOffset);\n currentYOffset += 20;\n\n if (this.keyrings && this.keyrings.length) {\n doc.setFontSize(14);\n doc.text('Trousseaux:', currentXOffset, currentYOffset);\n currentYOffset += 10;\n currentXOffset += 5;\n for (const keyring of this.keyrings) {\n doc.setFontSize(12);\n doc.text(`${keyring.name}`, currentXOffset, currentYOffset);\n currentYOffset += 5;\n const generatedKeys = [];\n for (const key of keyring.keys) {\n generatedKeys.push([key.tag, key.name, key.description]);\n }\n autoTable(doc, {\n head: [['Repère', 'Désignation', 'Description']],\n body: generatedKeys,\n startY: currentYOffset,\n theme: 'plain'\n });\n // @ts-ignore\n currentYOffset = doc.lastAutoTable.finalY + 14;\n }\n currentXOffset -= 5;\n }\n if (this.keys && this.keys.length) {\n doc.setFontSize(14);\n doc.text('Clés supplémentaires:', currentXOffset, currentYOffset);\n currentYOffset += 5;\n const generatedKeys = [];\n for (const key of this.keys) {\n generatedKeys.push([key.tag, key.name, key.description]);\n }\n autoTable(doc, {\n head: [['Repère', 'Désignation', 'Description']],\n body: generatedKeys,\n startY: currentYOffset,\n theme: 'plain'\n });\n }\n\n window.open(doc.output('bloburl').toString());\n }\n}\n","\n \n
{{ property.name }}
\n
{{ property.ownerName }}
\n
{{ property.internalCode }}
\n
\n \n
Chargement...
\n
Chargement...
\n
\n \n
\n \n
\n
\n
\n

Gérance:

\n
\n
Nom de la gérance: {{property.ownerName}}
\n
Email: {{property.ownerEmail}}
\n
Téléphone: {{property.ownerPhone}}
\n
Locataires:
\n
\n
\n
\n

Adresse:

\n
\n
{{ property.address?.streetNumber}} {{property.address?.street}}
\n
{{ property.address?.zipcode}}, {{property.address?.city}}
\n
Bâtiment: {{property.building}}
\n
Digicode: {{property.digitalCode}}
\n
\n {{property.batchNumber ? 'Lot: ' + property.batchNumber : ''}}{{property.batchNumber && property.store ? ', ' : ''}}{{property.store ? 'Étage: ' + property.store : ''}}{{(property.batchNumber || property.store) && property.door ? ', ' : ''}}{{property.door ? 'Porte: ' + property.door : ''}}\n
\n
\n
\n
\n

Contacts:

\n
\n
Gestionnaire: {{capitalize(property.manager.firstname)}} {{property.manager.lastname.toUpperCase()}}
\n
Assistant(e): {{capitalize(property.assistantManager.firstname)}} {{property.assistantManager.lastname.toUpperCase()}}
\n
Autre:
\n
\n
\n
\n
\n \n
\n \n \n \n
\n
\n

Clés supplémentaires

\n \n \n \n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n
\n","import {Component, Inject, OnInit} from '@angular/core';\nimport {MAT_DIALOG_DATA, MatDialog, MatDialogRef} from '@angular/material/dialog';\nimport {UpdateKeyStatesDialogData} from '../../../../shared/models/properties/update-key-states-dialog-data';\nimport {AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators} from '@angular/forms';\nimport {GenericHistoryEntry} from '../../../../shared/models/api/history/generic-history-entry';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {GenericContact} from '../../../../shared/models/api/contacts/generic-contact';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\nimport {CreateContactDialogComponent} from '../../../../shared/components/create-contact-dialog/create-contact-dialog.component';\nimport {CreateContactDialogData} from '../../../../shared/models/contacts/create-contact-dialog-data';\nimport {PostHistoryPayload} from '../../../../shared/models/api/history/post-history-payload';\n\n@Component({\n selector: 'app-update-key-states-dialog',\n templateUrl: './update-key-states-dialog.component.html',\n styleUrls: ['./update-key-states-dialog.component.scss']\n})\nexport class UpdateKeyStatesDialogComponent implements OnInit {\n minDate = new Date();\n updateElementStateFormGroup: FormGroup;\n disabledState: 'away' | 'returned' | 'none';\n isContactRequired = false;\n\n contacts: GenericContact[] = [];\n\n get formArray(): AbstractControl | null { return this.updateElementStateFormGroup.get('formArray'); }\n\n constructor(\n private alertService: AlertService,\n private apiService: ApiService,\n private fb: FormBuilder,\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: UpdateKeyStatesDialogData,\n public createContactDialog: MatDialog\n ) {\n this.updateElementStateFormGroup = fb.group({\n formArray: fb.array([\n fb.group({\n element: ['', Validators.required]\n }),\n fb.group({\n state: ['', [Validators.required, this.isNotDisabledStateValidatorFn()]],\n contact: [{value: '', disabled: true}],\n reminder: [{value: null, disabled: true}]\n }),\n ]),\n });\n }\n\n ngOnInit(): void {\n this.refreshContacts();\n }\n\n refreshContacts(): void {\n this.apiService.getContacts().subscribe(\n (contacts) => {\n this.contacts = contacts.filter((contact) => {\n return contact.type === 'service_provider' && contact.agency.id === this.data.property.agency.id;\n }).sort((a, b) => {\n if (a.name < b.name) { return -1; }\n if (a.name > b.name) { return 1; }\n return 0;\n });\n }, () => {\n this.alertService.warn('Une erreur est survenue lors de la récupération des contacts');\n }\n );\n }\n\n getLastState(type: 'key' | 'keyring', id: number): GenericHistoryEntry | undefined {\n const validEntries = this.data.property.history.filter((entry) => {\n return entry.type === type && entry.relatedId === id;\n });\n validEntries.sort((a, b) => {\n return new Date(b.time).getTime() - new Date(a.time).getTime();\n });\n if (validEntries && validEntries.length) {\n return validEntries[0];\n }\n return undefined;\n }\n\n computeDisabledState(): void {\n setTimeout(() => {\n const selectedElement = this.formArray.get([0]).get('element').value;\n const lastState = this.getLastState(selectedElement.type, selectedElement.relatedId);\n if (!lastState || lastState.state === 'returned') {\n this.disabledState = 'returned';\n } else if (lastState && lastState.state === 'away') {\n this.disabledState = 'away';\n } else {\n this.disabledState = 'none';\n }\n this.formArray.get([1]).get('state').updateValueAndValidity();\n });\n }\n\n computeIsContactRequired(): void {\n setTimeout(() => {\n this.isContactRequired = this.formArray.get([1]).get('state').value === 'away';\n if (this.isContactRequired) {\n this.formArray.get([1]).get('contact').enable();\n this.formArray.get([1]).get('reminder').enable();\n } else {\n this.formArray.get([1]).get('contact').disable();\n this.formArray.get([1]).get('reminder').disable();\n }\n });\n }\n\n computeStateDisplay(state: 'away' | 'returned' | 'lost'): string {\n switch (state) {\n case 'returned':\n return 'Rentré';\n case 'lost':\n return 'Perdu';\n case 'away':\n return 'Sorti';\n default:\n return 'Aucune';\n }\n }\n\n isNotDisabledStateValidatorFn(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n const input = control.value;\n if (!input) {\n return null;\n }\n return input === this.disabledState ? {isNotDisabledStateValidatorFn: {isNotDisabledStateValidatorFn: false}} : null;\n };\n }\n\n newContact(): void {\n const data: CreateContactDialogData = {\n type: 'service_provider'\n };\n const dialogRef = this.createContactDialog.open(CreateContactDialogComponent, {\n width: '80%',\n data\n });\n dialogRef.afterClosed().subscribe(() => {\n this.refreshContacts();\n });\n }\n\n onSubmit(): void {\n this.updateElementStateFormGroup.updateValueAndValidity();\n if (this.updateElementStateFormGroup.valid) {\n const contactId = this.isContactRequired ? this.formArray.get([1]).get('contact').value.id : undefined;\n const reminderValue = this.formArray.get([1]).get('reminder').value;\n const reminder = reminderValue ? new Date(reminderValue.toISOString()) : undefined;\n const payload: PostHistoryPayload = {\n type: this.formArray.get([0]).get('element').value.type,\n relatedId: this.formArray.get([0]).get('element').value.relatedId,\n state: this.formArray.get([1]).get('state').value,\n contactId,\n reminder,\n propertyId: this.data.property.id\n };\n this.apiService.postHistory(payload).subscribe(\n () => {\n this.dialogRef.close();\n this.alertService.success('Le changement a bien été effectué');\n }, () => {\n this.alertService.error('Une erreur est survenue lors du changement d\\'état, veuillez réessayer');\n }\n );\n }\n }\n}\n","
\n

Changer l'état d'un élément

\n \n
\n\n
\n \n\n \n Sélectionnez un élément à mettre à jour\n \n Élément\n \n -- Aucun --\n \n \n {{keyring.name}}\n \n \n \n \n {{key.name}}\n \n \n \n \n
\n \n
\n
\n\n \n Sélectionnez le nouvel état\n
\n
\n \n Élément\n \n -- Aucun --\n \n Rentré\n \n \n Sorti\n \n \n Perdu\n \n \n \n
\n
\n \n Contact\n \n -- Aucun --\n -- Nouveau --\n \n {{contact.name}}\n \n \n \n
\n
\n \n Rappel\n \n \n \n \n
\n
\n
\n \n
\n
\n\n \n Vérification\n
\n
Élément: {{element.value.name}}
\n
Nouvel état:
{{computeStateDisplay(state.value).toLowerCase()}}
\n
Contact: {{contact.value.name}} ({{contact.value.email}}{{contact.value.phone ? ', ' : ''}}{{contact.value.phone}})
\n
Adresse: {{contact.value.address.streetNumber}} {{contact.value.address.street}}, {{contact.value.address.zipcode}} {{contact.value.address.city}}
\n
Rappel automatique programmé le: {{datePicker.value}}
\n
\n
\n
\n \n
\n
\n\n
\n
\n
\n","import {ChangeDetectorRef, Component, Inject, OnInit} from '@angular/core';\nimport {MAT_DIALOG_DATA, MatDialog, MatDialogRef} from '@angular/material/dialog';\nimport {UpdatePropertyDialogData} from '../../../../shared/models/properties/update-property-dialog-data';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators} from '@angular/forms';\nimport {CreateContactDialogData} from '../../../../shared/models/contacts/create-contact-dialog-data';\nimport {CreateContactDialogComponent} from '../../../../shared/components/create-contact-dialog/create-contact-dialog.component';\nimport {GenericContact} from '../../../../shared/models/api/contacts/generic-contact';\nimport {catchError, map} from 'rxjs/operators';\nimport {Observable, throwError} from 'rxjs';\nimport {GenericUser} from '../../../../shared/models/api/users/generic-user';\nimport {GenericKey} from '../../../../shared/models/api/keys/generic-key';\nimport {GenericKeyring} from '../../../../shared/models/api/keyrings/generic-keyring';\nimport {ValidationDialogData} from '../../../../shared/models/validation-dialog-data';\nimport {ValidationDialogComponent} from '../../../../shared/components/validation-dialog/validation-dialog.component';\nimport {PostKeyPayload} from '../../../../shared/models/api/keys/post-key-payload';\nimport {PostKeyringPayload} from '../../../../shared/models/api/keyrings/post-keyring-payload';\nimport {Router} from '@angular/router';\nimport {parsePhoneNumberFromString} from 'libphonenumber-js';\nimport {CreateTenantDialogData} from '../../../../shared/models/tenants/create-tenant-dialog-data';\nimport {CreateTenantDialogComponent} from '../../../../shared/components/create-tenant-dialog/create-tenant-dialog.component';\nimport {GenericTenant} from '../../../../shared/models/api/tenants/generic-tenant';\n\n@Component({\n selector: 'app-update-property-dialog',\n templateUrl: './update-property-dialog.component.html',\n styleUrls: ['./update-property-dialog.component.scss']\n})\nexport class UpdatePropertyDialogComponent implements OnInit {\n contacts: GenericContact[] = [];\n users: GenericUser[] = [];\n tenants: GenericTenant[] = [];\n\n keys: GenericKey[] = [];\n keyrings: GenericKeyring[] = [];\n\n fileToUpload: File = null;\n\n propertyFormGroup: FormGroup;\n keyFormGroup: FormGroup;\n keyCreateFormGroup: FormGroup;\n keyringCreateFormGroup: FormGroup;\n keyringFormGroup: FormGroup;\n contactFormGroup: FormGroup;\n tenantFormGroup: FormGroup;\n\n constructor(\n private cdref: ChangeDetectorRef,\n private alertService: AlertService,\n private apiService: ApiService,\n private fb: FormBuilder,\n private router: Router,\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: UpdatePropertyDialogData,\n public createContactDialog: MatDialog,\n public createTenantDialog: MatDialog,\n public deleteValidationDialog: MatDialog,\n public deletePropertyValidationDialog: MatDialog,\n ) {\n this.propertyFormGroup = fb.group({\n image: [''],\n name: this.data.property.type === 'trustee' ? [this.data.property.name, Validators.required] : [this.data.property.name],\n internalCode: [this.data.property.internalCode || '', Validators.required],\n building: [this.data.property.building || ''],\n digitalCode: [this.data.property.digitalCode || ''],\n streetNumber: [this.data.property.address.streetNumber],\n street: [this.data.property.address.street, Validators.required],\n zipcode: [this.data.property.address.zipcode, Validators.compose([Validators.required, Validators.pattern('^[0-9]+$')])],\n city: [this.data.property.address.city, Validators.required],\n manager: ['', Validators.required],\n assistant: [''],\n ownerName: this.data.property.type === 'management' ? [this.data.property.ownerName, Validators.required] : [this.data.property.ownerName],\n ownerEmail: [this.data.property.ownerEmail, this.validateOptionalEmail()],\n ownerPhone: [this.data.property.ownerPhone, this.validatePhone()],\n batchNumber: [this.data.property.batchNumber],\n store: [this.data.property.store],\n door: [this.data.property.door]\n });\n this.keyFormGroup = fb.group({});\n this.keyCreateFormGroup = fb.group({\n tag: ['', Validators.required],\n name: ['', Validators.required],\n description: ['', Validators.required],\n keyring: ['']\n });\n this.keyringFormGroup = fb.group({});\n this.keyringCreateFormGroup = fb.group({\n name: ['', Validators.required],\n keys: ['']\n });\n this.contactFormGroup = fb.group({});\n this.tenantFormGroup = fb.group({});\n }\n\n ngOnInit(): void {\n this.refreshUsers().subscribe(\n () => {\n const currentManager = this.users.find((user) => {\n return user.id === this.data.property.manager.id;\n });\n const currentAssistant = this.users.find((user) => {\n return user.id === this.data.property.assistantManager?.id;\n });\n this.propertyFormGroup.get('manager').setValue(currentManager);\n this.propertyFormGroup.get('assistant').setValue(currentAssistant);\n }\n );\n this.refreshContacts().subscribe();\n this.refreshTenants().subscribe();\n this.refreshKeysAndKeyrings();\n this.refreshFormGroups();\n }\n\n async onPropertyFormGroupSubmit(): Promise {\n this.propertyFormGroup.updateValueAndValidity();\n if (!this.propertyFormGroup.valid) {\n return;\n }\n let propertyImage;\n let oldImageId;\n if (this.fileToUpload) {\n try {\n propertyImage = await this.apiService.uploadImage(this.fileToUpload).toPromise();\n } catch {\n this.alertService.error(`Une erreur est survenue lors de l'envoi de l'image`);\n this.dialogRef.close();\n return;\n }\n if (this.data.property.image) {\n oldImageId = this.data.property.image.id;\n }\n }\n try {\n const property = await this.apiService.patchProperty(this.data.property.id, {\n name: this.propertyFormGroup.get('name').value ? this.propertyFormGroup.get('name').value : null,\n building: this.propertyFormGroup.get('building').value ? this.propertyFormGroup.get('building').value : null,\n digitalCode: this.propertyFormGroup.get('digitalCode').value ? this.propertyFormGroup.get('digitalCode').value : null,\n internalCode: this.propertyFormGroup.get('internalCode').value ? this.propertyFormGroup.get('internalCode').value : null,\n streetNumber: this.propertyFormGroup.get('streetNumber').value ? this.propertyFormGroup.get('streetNumber').value : null,\n street: this.propertyFormGroup.get('street').value,\n zipcode: parseInt(this.propertyFormGroup.get('zipcode').value, 10),\n city: this.propertyFormGroup.get('city').value,\n managerId: this.propertyFormGroup.get('manager').value.id,\n assistantManagerId: this.propertyFormGroup.get('assistant').value ? this.propertyFormGroup.get('assistant').value.id : null,\n propertyImageId: propertyImage ? propertyImage.id : undefined,\n ownerName: this.propertyFormGroup.get('ownerName').value,\n ownerEmail: this.propertyFormGroup.get('ownerEmail').value ? this.propertyFormGroup.get('ownerEmail').value : null,\n ownerPhone: this.propertyFormGroup.get('ownerPhone').value ? this.propertyFormGroup.get('ownerPhone').value : null,\n batchNumber: this.propertyFormGroup.get('batchNumber').value ? this.propertyFormGroup.get('batchNumber').value : null,\n store: this.propertyFormGroup.get('store').value ? this.propertyFormGroup.get('store').value : null,\n door: this.propertyFormGroup.get('door').value ? this.propertyFormGroup.get('door').value : null,\n }).toPromise();\n this.alertService.success('La fiche a bien été mise à jour');\n if (oldImageId) {\n try {\n await this.apiService.deleteImage(oldImageId).toPromise();\n } catch {\n this.alertService.error(`Une erreur est survenue lors de la suppression de l'ancienne image`);\n }\n }\n this.dialogRef.close(property);\n } catch {\n this.alertService.error('Une erreur est survenue lors de la mise à jour des contacts');\n this.dialogRef.close();\n }\n }\n\n refreshUsers(): Observable {\n return this.apiService.getUsers()\n .pipe(map((users) => {\n this.users = users.filter((user) => {\n return user.managerType !== 'reception' && user.agency?.id === this.data.property.agency.id;\n }).sort((a, b) => {\n if (a.lastname < b.lastname) { return -1; }\n if (a.lastname > b.lastname) { return 1; }\n return 0;\n });\n }))\n .pipe(catchError((err) => {\n this.alertService.warn('Une erreur est survenue lors de la récupération des utilisateurs');\n return throwError(err);\n }));\n }\n\n refreshContacts(): Observable {\n return this.apiService.getContacts()\n .pipe(map((contacts) => {\n this.contacts = contacts.filter((contact) => {\n return contact.type === 'syndicate_contact' && contact.agency.id === this.data.property.agency.id;\n }).sort((a, b) => {\n if (a.name < b.name) { return -1; }\n if (a.name > b.name) { return 1; }\n return 0;\n });\n }))\n .pipe(catchError((err) => {\n this.alertService.warn('Une erreur est survenue lors de la récupération des contacts');\n return throwError(err);\n }));\n }\n\n refreshKeysAndKeyrings(): void {\n this.apiService.getKeys(this.data.property.id).subscribe(\n (keys) => {\n this.apiService.getKeyrings(this.data.property.id).subscribe(\n (keyrings) => {\n const keyGroups = {};\n for (const key of keys) {\n keyGroups[`keyringKeyGroupId${key.id}`] = [''];\n keyGroups[`tagKeyGroupId${key.id}`] = [key.tag, Validators.required];\n keyGroups[`nameKeyGroupId${key.id}`] = [key.name, Validators.required];\n keyGroups[`descriptionKeyGroupId${key.id}`] = [key.description, Validators.required];\n }\n const keyringsGroups = {};\n for (const keyring of keyrings) {\n keyringsGroups[`nameKeyringGroupId${keyring.id}`] = [keyring.name, Validators.required];\n keyringsGroups[`keysKeyringGroupId${keyring.id}`] = [''];\n }\n this.keyFormGroup = this.fb.group(keyGroups);\n this.keyringFormGroup = this.fb.group(keyringsGroups);\n this.keys = keys;\n this.keyrings = keyrings;\n for (const key of keys) {\n this.keyFormGroup.get(`keyringKeyGroupId${key.id}`).setValue(this.keyrings.find((keyring) => {\n return keyring.id === key.keyring?.id;\n }));\n }\n for (const keyring of keyrings) {\n this.keyringFormGroup.get(`keysKeyringGroupId${keyring.id}`).setValue(this.keys.filter((key) => {\n return key.keyring?.id === keyring.id;\n }));\n }\n this.cdref.detectChanges();\n }, () => {\n this.alertService.error('Une erreur est survenue lors de la récupération des trousseaux');\n }\n );\n }, () => {\n this.alertService.error('Une erreur est survenue lors de la récupération des clés');\n }\n );\n }\n\n newContact(): void {\n const data: CreateContactDialogData = {\n type: 'syndicate_contact',\n propertyId: this.data.property.id\n };\n const dialogRef = this.createContactDialog.open(CreateContactDialogComponent, {\n width: '80%',\n data\n });\n dialogRef.afterClosed().subscribe(() => {\n this.refreshContacts();\n this.refreshProperty();\n });\n }\n\n onSubmitKeyUpdate(id: number): void {\n const tagGroupControl = this.keyFormGroup.get(`tagKeyGroupId${id}`);\n const nameGroupControl = this.keyFormGroup.get(`nameKeyGroupId${id}`);\n const descriptionGroupControl = this.keyFormGroup.get(`descriptionKeyGroupId${id}`);\n const keyringGroupControl = this.keyFormGroup.get(`keyringKeyGroupId${id}`);\n tagGroupControl.updateValueAndValidity();\n nameGroupControl.updateValueAndValidity();\n descriptionGroupControl.updateValueAndValidity();\n keyringGroupControl.updateValueAndValidity();\n if (!tagGroupControl.valid || !nameGroupControl.valid || !descriptionGroupControl.valid || !keyringGroupControl.valid) {\n return;\n }\n this.apiService.patchKey(id, {\n name: nameGroupControl.value,\n description: descriptionGroupControl.value,\n tag: tagGroupControl.value,\n keyringId: keyringGroupControl.value ? keyringGroupControl.value.id : null,\n }).subscribe(\n () => {\n this.refreshKeysAndKeyrings();\n },\n () => {\n this.alertService.error('Une erreur est survenue lors de la sauvegarde de la clé');\n }\n );\n }\n\n onDeleteKey(id: number): void {\n const relatedKey = this.keys.find((key) => {\n return key.id === id;\n });\n const data: ValidationDialogData = {\n title: 'Supprimer la clé ?',\n text: `Êtes vous sûr de vouloir supprimer la clé ${relatedKey.name} ? (l'historique de la clé sera aussi supprimé)`,\n onValidate: () => {\n this.apiService.deleteKey(id).subscribe(\n () => {\n this.alertService.success(`La clé ${relatedKey.name} a bien été supprimée`, true);\n this.refreshKeysAndKeyrings();\n }, () => {\n this.alertService.error(`Une erreur est survenue lors de la suppression de la clé ${relatedKey.name}.`);\n }\n );\n },\n onDiscard: () => {}\n };\n this.deleteValidationDialog.open(ValidationDialogComponent, {\n data\n });\n }\n\n onSubmitKeyCreate(): void {\n this.keyCreateFormGroup.updateValueAndValidity();\n if (!this.keyCreateFormGroup.valid) {\n return;\n }\n const payload: PostKeyPayload = {\n tag: this.keyCreateFormGroup.get('tag').value,\n name: this.keyCreateFormGroup.get('name').value,\n description: this.keyCreateFormGroup.get('description').value,\n propertyId: this.data.property.id,\n keyringId: this.keyCreateFormGroup.get('keyring').value?.id\n };\n this.apiService.postKey(payload).subscribe(\n () => {\n this.alertService.success(`La clé a bien été crée`, true);\n this.keyCreateFormGroup.reset();\n this.refreshKeysAndKeyrings();\n }, () => {\n this.alertService.error(`Une erreur est survenue lors de la création de la clé.`);\n }\n );\n }\n\n onSubmitKeyringCreate(): void {\n this.keyringCreateFormGroup.updateValueAndValidity();\n if (!this.keyringCreateFormGroup.valid) {\n return;\n }\n const payload: PostKeyringPayload = {\n name: this.keyringCreateFormGroup.get('name').value,\n keyIds: this.keyringCreateFormGroup.get('keys').value.map((key) => key.id),\n propertyId: this.data.property.id\n };\n this.apiService.postKeyring(payload).subscribe(\n () => {\n this.alertService.success(`Le trousseau a bien été crée`, true);\n this.keyringCreateFormGroup.reset();\n this.refreshKeysAndKeyrings();\n }, () => {\n this.alertService.error(`Une erreur est survenue lors de la création du trousseau.`);\n }\n );\n }\n\n onSubmitKeyringUpdate(id: number): void {\n const nameGroupControl = this.keyringFormGroup.get(`nameKeyringGroupId${id}`);\n const keysGroupControl = this.keyringFormGroup.get(`keysKeyringGroupId${id}`);\n nameGroupControl.updateValueAndValidity();\n keysGroupControl.updateValueAndValidity();\n if (!nameGroupControl.valid || !keysGroupControl.valid) {\n return;\n }\n this.apiService.patchKeyring(id, {\n name: nameGroupControl.value,\n keyIds: keysGroupControl.value.map((key) => key.id),\n }).subscribe(\n () => {\n this.refreshKeysAndKeyrings();\n },\n () => {\n this.alertService.error('Une erreur est survenue lors de la sauvegarde du trousseau');\n }\n );\n }\n\n onDeleteKeyring(id: number): void {\n const relatedKeyring = this.keyrings.find((keyring) => {\n return keyring.id === id;\n });\n const data: ValidationDialogData = {\n title: 'Supprimer le trousseau ?',\n text: `Êtes vous sûr de vouloir supprimer le trousseau ${relatedKeyring.name} ? (l'historique du trousseau sera aussi supprimé, les clés seront déliées)`,\n onValidate: () => {\n this.apiService.deleteKeyring(id).subscribe(\n () => {\n this.alertService.success(`Le trousseau ${relatedKeyring.name} a bien été supprimée`, true);\n this.refreshKeysAndKeyrings();\n }, () => {\n this.alertService.error(`Une erreur est survenue lors de la suppression du trousseau ${relatedKeyring.name}.`);\n }\n );\n },\n onDiscard: () => {}\n };\n this.deleteValidationDialog.open(ValidationDialogComponent, {\n data\n });\n }\n\n isKeylistEqual(keys: GenericKey[], value: GenericKey[]): boolean {\n if (keys.length !== value.length) {\n return false;\n }\n for (const keyringKey of keys) {\n const valueKey = value.find((key) => {\n return key.id === keyringKey.id;\n });\n if (!valueKey) {\n return false;\n }\n }\n return true;\n }\n\n onFileChange(files: FileList): void {\n this.fileToUpload = files.item(0);\n }\n\n refreshProperty(): void {\n this.apiService.getProperty(this.data.property.id).subscribe(\n (property) => {\n this.data.property = property;\n this.refreshFormGroups();\n }, () => {\n this.alertService.error(`Une erreur est survenue lors de l'actualisation de la fiche`);\n }\n );\n }\n\n deleteProperty(): void {\n const data: ValidationDialogData = {\n title: 'Supprimer la fiche ?',\n text: 'Êtes vous sûr de vouloir supprimer la fiche ? (toutes les clés, tous les trousseaux et l\\'historique de la fiche seront aussi supprimés)',\n onValidate: () => {\n this.apiService.deleteProperty(this.data.property.id).subscribe(\n () => {\n this.dialogRef.close(null);\n this.alertService.success('La fiche a bien été supprimée', true);\n this.router.navigate(['/properties']);\n }, () => {\n this.alertService.error('Une erreur est survenue lors de la suppression de la fiche.');\n }\n );\n },\n onDiscard: () => {}\n };\n this.deletePropertyValidationDialog.open(ValidationDialogComponent, {\n data\n });\n }\n\n validateOptionalEmail(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n const input = control.value;\n if (!input) {\n return null;\n }\n return (Validators.pattern('^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$'))(control);\n };\n }\n\n validatePhone(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n const input = control.value;\n if (!input) {\n return null;\n }\n const phoneNumber = parsePhoneNumberFromString(input);\n return (!phoneNumber || !phoneNumber.isValid()) ? {phone: {phone: false}} : null;\n };\n }\n\n onSubmitContactUpdate(id: number): void {\n const contactNameGroupControl = this.contactFormGroup.get(`nameContactGroupId${id}`);\n const contactEmailGroupControl = this.contactFormGroup.get(`emailContactGroupId${id}`);\n const contactOfficeGroupControl = this.contactFormGroup.get(`officeContactGroupId${id}`);\n const contactPhoneGroupControl = this.contactFormGroup.get(`phoneContactGroupId${id}`);\n contactNameGroupControl.updateValueAndValidity();\n contactEmailGroupControl.updateValueAndValidity();\n contactOfficeGroupControl.updateValueAndValidity();\n contactPhoneGroupControl.updateValueAndValidity();\n if (!contactNameGroupControl.valid) {\n this.alertService.warn(`Le nom est requis`);\n return;\n }\n if (!contactEmailGroupControl.valid) {\n this.alertService.warn(`L'email n'est pas valide`);\n return;\n }\n if (!contactOfficeGroupControl.valid) {\n this.alertService.warn(`La fonction n'est pas valide`);\n return;\n }\n if (!contactPhoneGroupControl.valid) {\n this.alertService.warn(`Le téléphone n'est pas valide (avez vous pensé au numéro international ?)`);\n return;\n }\n this.apiService.patchContact(id, {\n name: contactNameGroupControl.value,\n email: contactEmailGroupControl.value,\n office: contactOfficeGroupControl.value ? contactOfficeGroupControl.value : null,\n phone: contactPhoneGroupControl.value ? contactPhoneGroupControl.value : null\n }).subscribe(\n () => {\n this.refreshProperty();\n },\n () => {\n this.alertService.error('Une erreur est survenue lors de la sauvegarde du contact');\n }\n );\n }\n\n onDeleteContact(id: number): void {\n const relatedContact = this.data.property.syndicateContacts.find((contact) => {\n return contact.id === id;\n });\n const data: ValidationDialogData = {\n title: 'Supprimer le contact ?',\n text: `Êtes vous sûr de vouloir supprimer le contact ${relatedContact.name} ?`,\n onValidate: () => {\n this.apiService.deleteContact(id).subscribe(\n () => {\n this.alertService.success(`Le contact ${relatedContact.name} a bien été supprimée`, true);\n this.refreshProperty();\n }, () => {\n this.alertService.error(`Une erreur est survenue lors de la suppression du contact ${relatedContact.name}.`);\n }\n );\n },\n onDiscard: () => {}\n };\n this.deleteValidationDialog.open(ValidationDialogComponent, {\n data\n });\n }\n\n newTenant(): void {\n const data: CreateTenantDialogData = {\n propertyId: this.data.property.id\n };\n const dialogRef = this.createTenantDialog.open(CreateTenantDialogComponent, {\n width: '80%',\n data\n });\n dialogRef.afterClosed().subscribe(() => {\n this.refreshTenants();\n this.refreshProperty();\n });\n }\n\n refreshTenants(): Observable {\n return this.apiService.getTenants(this.data.property.id)\n .pipe(map((tenants) => {\n this.tenants = tenants.sort((a, b) => {\n if (a.name < b.name) { return -1; }\n if (a.name > b.name) { return 1; }\n return 0;\n });\n }))\n .pipe(catchError((err) => {\n this.alertService.warn('Une erreur est survenue lors de la récupération des locataires');\n return throwError(err);\n }));\n }\n\n onSubmitTenantUpdate(id: number): void {\n const tenantNameGroupControl = this.tenantFormGroup.get(`nameTenantGroupId${id}`);\n const tenantEmailGroupControl = this.tenantFormGroup.get(`emailTenantGroupId${id}`);\n const tenantPhoneGroupControl = this.tenantFormGroup.get(`phoneTenantGroupId${id}`);\n tenantNameGroupControl.updateValueAndValidity();\n tenantEmailGroupControl.updateValueAndValidity();\n tenantPhoneGroupControl.updateValueAndValidity();\n if (!tenantNameGroupControl.valid) {\n this.alertService.warn(`Le nom est requis`);\n return;\n }\n if (!tenantEmailGroupControl.valid) {\n this.alertService.warn(`L'email n'est pas valide`);\n return;\n }\n if (!tenantPhoneGroupControl.valid) {\n this.alertService.warn(`Le téléphone n'est pas valide (avez vous pensé au numéro international ?)`);\n return;\n }\n this.apiService.patchTenant(id, {\n name: tenantNameGroupControl.value,\n email: tenantEmailGroupControl.value,\n phone: tenantPhoneGroupControl.value ? tenantPhoneGroupControl.value : null\n }).subscribe(\n () => {\n this.refreshProperty();\n },\n () => {\n this.alertService.error('Une erreur est survenue lors de la sauvegarde du locataire');\n }\n );\n }\n\n onDeleteTenant(id: number): void {\n const relatedTenant = this.data.property.tenants.find((tenant) => {\n return tenant.id === id;\n });\n const data: ValidationDialogData = {\n title: 'Supprimer le locataire ?',\n text: `Êtes vous sûr de vouloir supprimer le locataire ${relatedTenant.name} ?`,\n onValidate: () => {\n this.apiService.deleteTenant(id).subscribe(\n () => {\n this.alertService.success(`Le locataire ${relatedTenant.name} a bien été supprimée`, true);\n this.refreshProperty();\n }, () => {\n this.alertService.error(`Une erreur est survenue lors de la suppression du locataire ${relatedTenant.name}.`);\n }\n );\n },\n onDiscard: () => {}\n };\n this.deleteValidationDialog.open(ValidationDialogComponent, {\n data\n });\n }\n\n private refreshFormGroups(): void {\n this.refreshContactFormGroup();\n this.refreshTenantFormGroup();\n this.cdref.detectChanges();\n }\n\n private refreshContactFormGroup(): void {\n const contactGroups = {};\n for (const contact of this.data.property.syndicateContacts) {\n contactGroups[`nameContactGroupId${contact.id}`] = [contact.name, Validators.required];\n contactGroups[`emailContactGroupId${contact.id}`] = [contact.email, Validators.compose([\n Validators.required,\n Validators.pattern('^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$')\n ])];\n contactGroups[`officeContactGroupId${contact.id}`] = [contact.office];\n contactGroups[`phoneContactGroupId${contact.id}`] = [contact.phone, this.validatePhone()];\n }\n this.contactFormGroup = this.fb.group(contactGroups);\n }\n\n private refreshTenantFormGroup(): void {\n const tenantGroups = {};\n for (const tenant of this.data.property.tenants) {\n tenantGroups[`nameTenantGroupId${tenant.id}`] = [tenant.name, Validators.required];\n tenantGroups[`emailTenantGroupId${tenant.id}`] = [tenant.email, Validators.compose([\n Validators.required,\n Validators.pattern('^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$')\n ])];\n tenantGroups[`phoneTenantGroupId${tenant.id}`] = [tenant.phone, this.validatePhone()];\n }\n this.tenantFormGroup = this.fb.group(tenantGroups);\n }\n}\n","
\n

Modifier {{data.property.type === 'trustee' ? data.property.name : data.property.ownerName}} ({{data.property.internalCode}})

\n \n
\n
\n \n \n \n
\n \n
\n
\n \n Nom de la gérance\n \n Le nom du propriétaire du bien\n \n Le nom du propriétaire est requis\n \n \n
\n
\n \n Code interne\n \n Le code du bien\n \n Le code interne est requis\n \n \n
\n
\n \n Email propriétaire\n \n L'email du propriétaire du bien\n \n L'adresse email indiqué n'est pas valide\n \n \n
\n
\n \n Téléphone propriétaire\n \n Le téléphone du propriétaire du bien (avec numéro international)\n \n Le numéro de téléphone n'est pas valide (avez vous bien indiqué le numéro international ?)\n \n \n
\n
\n
\n
\n \n Image\n \n \n Une image du bien (laisser vide pour ne pas changer)\n folder\n \n
\n
\n \n Nom\n \n Le nom de la résidence\n \n Le nom de la résidence est requis\n \n \n
\n
\n \n Code interne\n \n Le code du bien\n \n Le code interne est requis\n \n \n
\n
\n \n
\n
\n
\n
\n \n Numéro\n \n \n
\n
\n \n Rue\n \n \n La rue est requise\n \n \n
\n\n
\n \n Code postal\n \n \n Le code postal est requis\n \n \n Le code postal indiqué n'est pas valide\n \n \n
\n
\n \n Ville\n \n \n La ville est requise\n \n \n
\n
\n \n Bâtiment\n \n \n
\n
\n \n Digicode\n \n \n
\n
\n
\n
\n
\n \n Lot N°\n \n \n
\n
\n \n Étage\n \n \n
\n
\n \n Porte\n \n \n
\n
\n \n
\n
\n
\n \n Gestionnaire\n \n \n {{user.lastname}} {{user.firstname}}\n \n \n \n
\n
\n \n Assistant\n \n -- Aucun --\n \n {{user.lastname}} {{user.firstname}}\n \n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n \n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n
\n \n Nom\n \n \n
\n
\n \n Email\n \n \n
\n
\n \n Fonction\n \n \n
\n
\n \n Téléphone\n \n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n \n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n
\n \n Nom\n \n \n
\n
\n \n Email\n \n \n
\n
\n \n Téléphone\n \n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n \n
\n
\n\n
\n\n
\n
\n
\n
\n \n Repère\n \n \n
\n
\n \n Nom\n \n \n
\n
\n \n Description\n \n \n
\n
\n \n Trousseau\n \n -- Aucun --\n \n {{keyring.name}}\n \n \n \n
\n
\n \n
\n
\n
\n
\n\n
\n \n
\n\n
\n \n
\n
\n
\n
\n \n Repère\n \n \n
\n
\n \n Nom\n \n \n
\n
\n \n Description\n \n \n
\n
\n \n Trousseau\n \n -- Aucun --\n \n {{keyring.name}}\n \n \n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n \n
\n
\n\n
\n\n
\n
\n
\n
\n \n Nom\n \n \n
\n
\n \n Clés\n \n \n {{key.name}} ({{key.tag}})\n \n \n \n
\n
\n \n
\n
\n
\n
\n\n
\n \n
\n\n
\n \n
\n
\n
\n
\n \n Nom\n \n \n
\n
\n \n Clés\n \n \n {{key.name}} ({{key.tag}})\n \n \n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n","import {Component, Inject, OnInit} from '@angular/core';\nimport {MAT_DIALOG_DATA, MatDialog, MatDialogRef} from '@angular/material/dialog';\nimport {PostHistoryPayload} from '../../../../shared/models/api/history/post-history-payload';\nimport {ApiService} from '../../../../core/services/api/api.service';\nimport {AlertService} from '../../../../core/services/alert/alert.service';\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\nimport {GenericContact} from '../../../../shared/models/api/contacts/generic-contact';\nimport {CreateContactDialogData} from '../../../../shared/models/contacts/create-contact-dialog-data';\nimport {CreateContactDialogComponent} from '../../../../shared/components/create-contact-dialog/create-contact-dialog.component';\n\nexport interface UpdateStateAwayDialogData {\n name: string;\n type: 'key' | 'keyring';\n relatedId: number;\n propertyId: number;\n agencyId: number;\n}\n\n@Component({\n selector: 'app-update-state-away-dialog',\n templateUrl: './update-state-away-dialog.component.html',\n styleUrls: ['./update-state-away-dialog.component.scss']\n})\nexport class UpdateStateAwayDialogComponent implements OnInit {\n minDate = new Date();\n formGroup: FormGroup;\n contacts: GenericContact[] = [];\n\n constructor(\n private fb: FormBuilder,\n private alertService: AlertService,\n private apiService: ApiService,\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: UpdateStateAwayDialogData,\n public createContactDialog: MatDialog\n ) {\n this.formGroup = fb.group({\n contact: ['', Validators.required],\n reminder: ['']\n });\n }\n\n ngOnInit(): void {\n this.refreshContacts();\n }\n\n refreshContacts(): void {\n this.apiService.getContacts().subscribe(\n (contacts) => {\n this.contacts = contacts.filter((contact) => {\n return contact.type === 'service_provider' && contact.agency.id === this.data.agencyId;\n }).sort((a, b) => {\n if (a.name < b.name) { return -1; }\n if (a.name > b.name) { return 1; }\n return 0;\n });\n }, () => {\n this.alertService.warn('Une erreur est survenue lors de la récupération des contacts');\n }\n );\n }\n\n newContact(): void {\n const data: CreateContactDialogData = {\n type: 'service_provider'\n };\n const dialogRef = this.createContactDialog.open(CreateContactDialogComponent, {\n width: '80%',\n data\n });\n dialogRef.afterClosed().subscribe(() => {\n this.refreshContacts();\n });\n }\n\n onDiscard(): void {\n this.dialogRef.close(null);\n }\n\n onValidate(): void {\n const contactId = this.formGroup.get('contact').value.id;\n const reminderValue = this.formGroup.get('reminder').value;\n const reminder = reminderValue ? new Date(reminderValue.toISOString()) : undefined;\n const payload: PostHistoryPayload = {\n type: this.data.type,\n relatedId: this.data.relatedId,\n state: 'away',\n propertyId: this.data.propertyId,\n contactId,\n reminder,\n };\n this.apiService.postHistory(payload).subscribe(\n (entry) => {\n this.alertService.success('Le changement a bien été effectué');\n this.dialogRef.close(entry);\n }, () => {\n this.alertService.error('Une erreur est survenue lors du changement d\\'état, veuillez réessayer');\n }\n );\n }\n}\n","
\n

Changer {{data.type === 'key' ? 'la clé' : 'le trousseau'}} {{data.name}}

\n \n
\n
\n

Veuillez sélectionner un contact et une date de rappel (optionnelle) pour indiquer que {{data.type === 'key' ? 'la clé' : 'le trousseau'}} {{data.name}} est {{data.type === 'key' ? 'sortie' : 'sorti'}}.

\n
\n
\n
\n \n Contact\n \n -- Aucun --\n -- Nouveau --\n \n {{contact.name}}{{contact.office ? ' (' + contact.office + ')' : ''}}\n \n \n \n
\n
\n \n Rappel\n \n \n \n \n
\n
\n
\n
\n
\n \n \n
\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-create-property-page',\n templateUrl: './create-property-page.component.html',\n styleUrls: ['./create-property-page.component.scss']\n})\nexport class CreatePropertyPageComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n
\n
\n \n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-properties',\n templateUrl: './properties.component.html',\n styleUrls: ['./properties.component.scss']\n})\nexport class PropertiesComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void { }\n}\n","
\n
\n
\n

Mes fiches

\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-property',\n templateUrl: './property.component.html',\n styleUrls: ['./property.component.scss']\n})\nexport class PropertyComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n}\n","
\n
\n
\n \n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport {PropertiesComponent} from './pages/properties/properties.component';\nimport {AuthGuard} from '../../core/guards/auth.guard';\nimport {PropertyComponent} from './pages/property/property.component';\nimport {CreatePropertyPageComponent} from './pages/create-property-page/create-property-page.component';\n\nconst routes: Routes = [\n {\n path: 'properties',\n component: PropertiesComponent,\n canActivate: [AuthGuard]\n },\n {\n path: 'properties/create',\n component: CreatePropertyPageComponent,\n canActivate: [AuthGuard]\n },\n {\n path: 'properties/:id',\n component: PropertyComponent,\n canActivate: [AuthGuard]\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class PropertiesRoutingModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { PropertiesRoutingModule } from './properties-routing.module';\nimport { PropertiesComponent } from './pages/properties/properties.component';\nimport {MatDividerModule} from '@angular/material/divider';\nimport { PropertiesListComponent } from './components/properties-list/properties-list.component';\nimport {MatCardModule} from '@angular/material/card';\nimport {MatTableModule} from '@angular/material/table';\nimport {MatSortModule} from '@angular/material/sort';\nimport {MatPaginatorModule} from '@angular/material/paginator';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatIconModule} from '@angular/material/icon';\nimport {SharedModule} from '../../shared/shared.module';\nimport { CreatePropertyComponent } from './components/create-property/create-property.component';\nimport { PropertyComponent } from './pages/property/property.component';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport { PropertyInfosComponent } from './components/property-infos/property-infos.component';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\nimport { KeyringInfosComponent } from './components/keyring-infos/keyring-infos.component';\nimport {MatExpansionModule} from '@angular/material/expansion';\nimport { KeyInfosComponent } from './components/key-infos/key-infos.component';\nimport {MatCheckboxModule} from '@angular/material/checkbox';\nimport { DisplayHistoryDialogComponent } from './components/display-history-dialog/display-history-dialog.component';\nimport {MatDialogModule} from '@angular/material/dialog';\nimport { UpdateKeyStatesDialogComponent } from './components/update-key-states-dialog/update-key-states-dialog.component';\nimport {MatStepperModule} from '@angular/material/stepper';\nimport {MatSelectModule} from '@angular/material/select';\nimport {MatDatepickerModule} from '@angular/material/datepicker';\nimport {MatNativeDateModule} from '@angular/material/core';\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\nimport {MaterialFileInputModule} from 'ngx-material-file-input';\nimport { UpdatePropertyDialogComponent } from './components/update-property-dialog/update-property-dialog.component';\nimport {MatTabsModule} from '@angular/material/tabs';\nimport {MatListModule} from '@angular/material/list';\nimport { UpdateStateAwayDialogComponent } from './components/update-state-away-dialog/update-state-away-dialog.component';\nimport {CreatePropertyPageComponent} from './pages/create-property-page/create-property-page.component';\n\n\n@NgModule({\n declarations: [\n PropertiesComponent,\n PropertiesListComponent,\n CreatePropertyComponent,\n PropertyComponent,\n PropertyInfosComponent,\n KeyringInfosComponent,\n KeyInfosComponent,\n DisplayHistoryDialogComponent,\n UpdateKeyStatesDialogComponent,\n UpdatePropertyDialogComponent,\n UpdateStateAwayDialogComponent,\n CreatePropertyPageComponent\n ],\n imports: [\n MatNativeDateModule,\n CommonModule,\n PropertiesRoutingModule,\n MatDividerModule,\n MatCardModule,\n MatTableModule,\n BrowserAnimationsModule,\n MatSortModule,\n MatPaginatorModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n SharedModule,\n ReactiveFormsModule,\n MatButtonModule,\n MatProgressSpinnerModule,\n MatExpansionModule,\n MatCheckboxModule,\n FormsModule,\n MatDialogModule,\n MatStepperModule,\n MatSelectModule,\n MatDatepickerModule,\n MaterialFileInputModule,\n MatTabsModule,\n MatListModule\n ]\n})\nexport class PropertiesModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { Alert } from '../../models/alert';\nimport { AlertService } from 'src/app/core/services/alert/alert.service';\n\n@Component({\n selector: 'app-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n})\nexport class AlertComponent implements OnInit {\n alerts: Alert[];\n\n constructor(private alertService: AlertService) {\n this.alerts = [];\n }\n\n ngOnInit(): void {\n this.alertService.getAlert().subscribe((alert: Alert) => {\n if (!alert) {\n this.alerts = [];\n return;\n }\n this.alerts.push(alert);\n setTimeout(() => {\n this.removeAlert(alert);\n }, 3000);\n });\n }\n\n removeAlert(alert: Alert): void {\n this.alerts = this.alerts.filter((x) => x !== alert);\n }\n}\n","
\n

\n \n {{ alert.message }}\n \n

\n
\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'app-auth-image',\n templateUrl: './auth-image.component.html',\n styleUrls: ['./auth-image.component.scss']\n})\nexport class AuthImageComponent implements OnInit {\n @Input() id: string;\n @Input() alt = '';\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","\n","import {Component, Inject, OnInit, ViewChild} from '@angular/core';\nimport {MatTableDataSource} from '@angular/material/table';\nimport {MatSort} from '@angular/material/sort';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\nimport {ContactsDisplayDialogData} from '../../models/contacts/contacts-display-dialog-data';\n\ninterface TableRow {\n name: string;\n email: string;\n office: string;\n phone: string;\n}\n\n@Component({\n selector: 'app-contacts-display-dialog',\n templateUrl: './contacts-display-dialog.component.html',\n styleUrls: ['./contacts-display-dialog.component.scss']\n})\nexport class ContactsDisplayDialogComponent implements OnInit {\n displayedColumns: string[] = ['name', 'email', 'office', 'phone'];\n dataSource: MatTableDataSource;\n\n @ViewChild(MatSort) sort: MatSort;\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: ContactsDisplayDialogData\n ) { }\n\n ngOnInit(): void {\n this.refreshDataSource();\n }\n\n refreshDataSource(): void {\n this.dataSource = new MatTableDataSource(this.data.contacts.map((contact) => {\n return {\n name: contact.name,\n email: contact.email,\n office: contact.office,\n phone: contact.phone\n };\n }));\n this.dataSource.sort = this.sort;\n }\n}\n","
\n

Contacts

\n \n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n
Nom {{row.name}} Email {{row.email}} Fonction {{row.office}} Téléphone {{row.phone}}
\n
\n","import {Component, Inject, OnInit} from '@angular/core';\nimport {AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators} from '@angular/forms';\nimport {AlertService} from '../../../core/services/alert/alert.service';\nimport {ApiService} from '../../../core/services/api/api.service';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\nimport {CreateContactDialogData} from '../../models/contacts/create-contact-dialog-data';\nimport {PostContactsPayload} from '../../models/api/contacts/post-contacts-payload';\nimport {parsePhoneNumberFromString} from 'libphonenumber-js';\n\n@Component({\n selector: 'app-create-contact-dialog',\n templateUrl: './create-contact-dialog.component.html',\n styleUrls: ['./create-contact-dialog.component.scss']\n})\nexport class CreateContactDialogComponent implements OnInit {\n createContactFormGroup: FormGroup;\n isSubmitting = false;\n\n constructor(\n private alertService: AlertService,\n private apiService: ApiService,\n private fb: FormBuilder,\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: CreateContactDialogData,\n ) {\n this.createContactFormGroup = fb.group({\n name: ['', Validators.required],\n email: ['', Validators.compose([\n Validators.required,\n Validators.pattern('^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$')\n ])],\n phone: ['', this.validatePhone()],\n office: ['']\n });\n }\n\n ngOnInit(): void {\n }\n\n onSubmit(): void {\n this.createContactFormGroup.updateValueAndValidity();\n if (!this.createContactFormGroup.valid) {\n return;\n }\n const payload: PostContactsPayload = {\n type: this.data.type,\n name: this.createContactFormGroup.get('name').value,\n email: this.createContactFormGroup.get('email').value,\n phone: this.createContactFormGroup.get('phone').value || undefined,\n office: this.createContactFormGroup.get('office').value || undefined,\n propertyId: this.data.propertyId\n };\n this.isSubmitting = true;\n this.apiService.postContacts(payload).subscribe(\n (contact) => {\n this.dialogRef.close(contact);\n }, () => {\n this.alertService.error('Le contact n\\'a pas pu être créé veuillez vérifier vos informations');\n this.isSubmitting = false;\n }\n );\n }\n\n validatePhone(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n const input = control.value;\n if (!input) {\n return null;\n }\n const phoneNumber = parsePhoneNumberFromString(input);\n return (!phoneNumber || !phoneNumber.isValid()) ? {phone: {phone: false}} : null;\n };\n }\n\n conditionalValidator(predicate): ValidatorFn {\n return (formControl => {\n if (!formControl.parent) {\n return null;\n }\n if (predicate()) {\n return Validators.required(formControl);\n }\n return null;\n });\n }\n}\n","
\n
\n

Créer un contact

\n \n
\n \n
\n \n
\n
\n
\n
\n \n Nom\n \n Le nom du contact\n \n Le nom est requis\n \n \n
\n
\n \n Fonction\n \n La fonction du contact\n \n
\n
\n
\n
\n
\n \n Email\n \n L'adresse email du contact\n \n L'adresse email est requise\n \n \n L'adresse email indiqué n'est pas valide\n \n \n
\n
\n \n Téléphone\n \n Le numéro de téléphone du contact\n \n Le numéro de téléphone n'est pas valide (avez vous bien indiqué le numéro international ?)\n \n \n
\n
\n
\n
\n
\n \n \n \n
\n","import {Component, Inject, OnInit} from '@angular/core';\nimport {AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators} from '@angular/forms';\nimport {AlertService} from '../../../core/services/alert/alert.service';\nimport {ApiService} from '../../../core/services/api/api.service';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\nimport {parsePhoneNumberFromString} from 'libphonenumber-js';\nimport {PostTenantPayload} from '../../models/api/tenants/post-tenant-payload';\nimport {CreateTenantDialogData} from '../../models/tenants/create-tenant-dialog-data';\n\n@Component({\n selector: 'app-create-tenant-dialog',\n templateUrl: './create-tenant-dialog.component.html',\n styleUrls: ['./create-tenant-dialog.component.scss']\n})\nexport class CreateTenantDialogComponent implements OnInit {\n createTenantFormGroup: FormGroup;\n isSubmitting = false;\n\n constructor(\n private alertService: AlertService,\n private apiService: ApiService,\n private fb: FormBuilder,\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: CreateTenantDialogData,\n ) {\n this.createTenantFormGroup = fb.group({\n name: ['', Validators.required],\n email: ['', Validators.compose([\n Validators.required,\n Validators.pattern('^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$')\n ])],\n phone: ['', this.validatePhone()]\n });\n }\n\n ngOnInit(): void {\n }\n\n onSubmit(): void {\n this.createTenantFormGroup.updateValueAndValidity();\n if (!this.createTenantFormGroup.valid) {\n return;\n }\n const payload: PostTenantPayload = {\n name: this.createTenantFormGroup.get('name').value,\n email: this.createTenantFormGroup.get('email').value,\n phone: this.createTenantFormGroup.get('phone').value || undefined,\n propertyId: this.data.propertyId\n };\n this.isSubmitting = true;\n this.apiService.postTenant(payload).subscribe(\n (tenant) => {\n this.dialogRef.close(tenant);\n }, () => {\n this.alertService.error('Le locataire n\\'a pas pu être créé veuillez vérifier vos informations');\n this.isSubmitting = false;\n }\n );\n }\n\n validatePhone(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n const input = control.value;\n if (!input) {\n return null;\n }\n const phoneNumber = parsePhoneNumberFromString(input);\n return (!phoneNumber || !phoneNumber.isValid()) ? {phone: {phone: false}} : null;\n };\n }\n\n conditionalValidator(predicate): ValidatorFn {\n return (formControl => {\n if (!formControl.parent) {\n return null;\n }\n if (predicate()) {\n return Validators.required(formControl);\n }\n return null;\n });\n }\n}\n","
\n
\n

Créer un locataire

\n \n
\n \n
\n \n
\n
\n
\n
\n \n Nom\n \n Le nom du contact\n \n Le nom est requis\n \n \n
\n
\n
\n
\n
\n \n Email\n \n L'adresse email du locataire\n \n L'adresse email est requise\n \n \n L'adresse email indiqué n'est pas valide\n \n \n
\n
\n \n Téléphone\n \n Le numéro de téléphone du locataire\n \n Le numéro de téléphone n'est pas valide (avez vous bien indiqué le numéro international ?)\n \n \n
\n
\n
\n
\n
\n \n \n \n
\n","import {Component, Inject, OnInit, ViewChild} from '@angular/core';\nimport {MatTableDataSource} from '@angular/material/table';\nimport {MatSort} from '@angular/material/sort';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\nimport {TenantsDisplayDialogData} from '../../models/tenants/tenants-display-dialog-data';\n\ninterface TableRow {\n name: string;\n email: string;\n phone: string;\n}\n\n@Component({\n selector: 'app-tenants-display-dialog',\n templateUrl: './tenants-display-dialog.component.html',\n styleUrls: ['./tenants-display-dialog.component.scss']\n})\nexport class TenantsDisplayDialogComponent implements OnInit {\n displayedColumns: string[] = ['name', 'email', 'phone'];\n dataSource: MatTableDataSource;\n\n @ViewChild(MatSort) sort: MatSort;\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: TenantsDisplayDialogData\n ) { }\n\n ngOnInit(): void {\n this.refreshDataSource();\n }\n\n refreshDataSource(): void {\n this.dataSource = new MatTableDataSource(this.data.tenants.map((tenant) => {\n return {\n name: tenant.name,\n email: tenant.email,\n phone: tenant.phone\n };\n }));\n this.dataSource.sort = this.sort;\n }\n}\n","
\n

Locataires

\n \n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n
Nom {{row.name}} Email {{row.email}} Téléphone {{row.phone}}
\n
\n","import {Component, Inject, OnInit} from '@angular/core';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\nimport {ValidationDialogData} from '../../models/validation-dialog-data';\n\n@Component({\n selector: 'app-validation-dialog',\n templateUrl: './validation-dialog.component.html',\n styleUrls: ['./validation-dialog.component.scss']\n})\nexport class ValidationDialogComponent implements OnInit {\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: ValidationDialogData\n ) { }\n\n ngOnInit(): void {\n }\n\n onValidate(): void {\n this.data.onValidate();\n this.dialogRef.close();\n }\n\n onDiscard(): void {\n this.data.onDiscard();\n this.dialogRef.close();\n }\n}\n","

{{data.title}}

\n
\n {{data.text}}\n
\n
\n \n \n
\n","import {GenericContact} from '../api/contacts/generic-contact';\n\nexport class ContactsDisplayDialogData {\n contacts: GenericContact[];\n}\n","import {GenericTenant} from '../api/tenants/generic-tenant';\n\nexport class TenantsDisplayDialogData {\n tenants: GenericTenant[];\n}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {ApiService} from '../../core/services/api/api.service';\n\n@Pipe({\n name: 'authImage'\n})\nexport class AuthImagePipe implements PipeTransform {\n\n constructor(\n private apiService: ApiService\n ) {}\n\n async transform(id: string): Promise {\n try {\n const numberId = parseInt(id, 10);\n if (Number.isNaN(numberId)) {\n return 'assets/fallback.png';\n }\n const imageBlob = await this.apiService.downloadImage(numberId).toPromise();\n const reader = new FileReader();\n return new Promise((resolve, reject) => {\n reader.onloadend = () => resolve(reader.result as string);\n reader.readAsDataURL(imageBlob);\n });\n } catch {\n return 'assets/fallback.png';\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AlertComponent } from './components/alert/alert.component';\nimport {NgbModule} from '@ng-bootstrap/ng-bootstrap';\nimport {AuthImagePipe} from './pipes/auth-image.pipe';\nimport { AuthImageComponent } from './components/auth-image/auth-image.component';\nimport { CreateContactDialogComponent } from './components/create-contact-dialog/create-contact-dialog.component';\nimport {MatDialogModule} from '@angular/material/dialog';\nimport {MatButtonModule} from '@angular/material/button';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\nimport { ValidationDialogComponent } from './components/validation-dialog/validation-dialog.component';\nimport { ContactsDisplayDialogComponent } from './components/contacts-display-dialog/contacts-display-dialog.component';\nimport {MatTableModule} from '@angular/material/table';\nimport {MatPaginatorModule} from '@angular/material/paginator';\nimport {MatSortModule} from '@angular/material/sort';\nimport {MatIconModule} from '@angular/material/icon';\nimport {TenantsDisplayDialogComponent} from './components/tenants-display-dialog/tenants-display-dialog.component';\nimport {CreateTenantDialogComponent} from './components/create-tenant-dialog/create-tenant-dialog.component';\n\n@NgModule({\n declarations: [\n AlertComponent,\n AuthImagePipe,\n AuthImageComponent,\n CreateContactDialogComponent,\n ValidationDialogComponent,\n ContactsDisplayDialogComponent,\n TenantsDisplayDialogComponent,\n CreateTenantDialogComponent\n ],\n exports: [\n AlertComponent, AuthImagePipe, AuthImageComponent\n ],\n imports: [\n MatTableModule,\n MatPaginatorModule,\n MatSortModule,\n CommonModule,\n NgbModule,\n MatDialogModule,\n MatButtonModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatProgressSpinnerModule,\n MatIconModule,\n ]\n})\nexport class SharedModule { }\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n API_URL: 'https://app.suividecles.com/api',\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import {enableProdMode} from '@angular/core';\nimport {platformBrowserDynamic} from '@angular/platform-browser-dynamic';\n\nimport {AppModule} from './app/app.module';\nimport {environment} from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"sourceRoot":"webpack:///"}