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