From 70f033363829bb355d636a5e6182082824632567 Mon Sep 17 00:00:00 2001 From: Jeremie BRISON <ext.sopra.jbrison@grandlyon.com> Date: Thu, 11 Mar 2021 11:10:59 +0100 Subject: [PATCH] feat(card) : add indicator claim to help admin --- .../components/card/card.component.html | 2 +- .../components/card/card.component.scss | 3 +++ .../components/card/card.component.ts | 21 +++++++++++++++++-- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/app/structure-list/components/card/card.component.html b/src/app/structure-list/components/card/card.component.html index 111164435..ca4925051 100644 --- a/src/app/structure-list/components/card/card.component.html +++ b/src/app/structure-list/components/card/card.component.html @@ -1,6 +1,6 @@ <div class="structure" fxLayout="column" (click)="cardClicked()" (mouseenter)="cardHover()"> <div class="headerStructure" fxLayout="row" fxLayoutAlign="space-between center" fxLayoutGap="16px"> - <span class="structure-name">{{ structure.structureName }}</span> + <span class="structure-name" [ngClass]="{ notClaimed: !isClaimed }">{{ structure.structureName }}</span> <div *ngIf="structure.distance" class="distanceStructure" diff --git a/src/app/structure-list/components/card/card.component.scss b/src/app/structure-list/components/card/card.component.scss index 6deabb870..fe17d8734 100644 --- a/src/app/structure-list/components/card/card.component.scss +++ b/src/app/structure-list/components/card/card.component.scss @@ -17,6 +17,9 @@ font-style: italic; } .structure-name { + &.notClaimed { + color: $red-info; + } color: $grey-1; @include cn-bold-18; padding-bottom: 5px; diff --git a/src/app/structure-list/components/card/card.component.ts b/src/app/structure-list/components/card/card.component.ts index 94440ab2d..b3a414f4a 100644 --- a/src/app/structure-list/components/card/card.component.ts +++ b/src/app/structure-list/components/card/card.component.ts @@ -1,7 +1,9 @@ import { Component, Input, Output, OnInit, EventEmitter } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; import { Structure } from '../../../models/structure.model'; +import { ProfileService } from '../../../profile/services/profile.service'; import { GeojsonService } from '../../../services/geojson.service'; +import { StructureService } from '../../../services/structure.service'; @Component({ selector: 'app-card', @@ -12,9 +14,24 @@ export class CardComponent implements OnInit { @Input() public structure: Structure; @Output() public showDetails: EventEmitter<Structure> = new EventEmitter<Structure>(); @Output() public hover: EventEmitter<Structure> = new EventEmitter<Structure>(); + public isClaimed = true; - constructor(private route: ActivatedRoute, private router: Router) {} - ngOnInit(): void {} + constructor( + private route: ActivatedRoute, + private router: Router, + private profileService: ProfileService, + private structureService: StructureService + ) {} + ngOnInit(): void { + if (this.profileService.isAdmin()) { + this.setClaimIndicator(); + } + } + + // Check if structure haven't owners to help admin vision. + async setClaimIndicator() { + this.isClaimed = await this.structureService.isClaimed(this.structure._id, null).toPromise(); + } /** * Display distance in m or km according to value -- GitLab