From 09627cc4773eeee93577dcb4dd9efc5c74ab8acd Mon Sep 17 00:00:00 2001
From: "florian.azizian" <florian.azizian@maarch.org>
Date: Tue, 17 Dec 2019 11:32:31 +0100
Subject: [PATCH] FEAT #11275 TIME 0:45 contact display in autocompletion

---
 src/app/contact/controllers/ContactController.php          | 2 ++
 src/core/controllers/AutoCompleteController.php            | 6 ++++--
 .../autocomplete/contact-autocomplete.component.html       | 7 ++++---
 src/frontend/lang/lang-en.ts                               | 3 +++
 src/frontend/lang/lang-fr.ts                               | 3 +++
 src/frontend/lang/lang-nl.ts                               | 3 +++
 6 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/src/app/contact/controllers/ContactController.php b/src/app/contact/controllers/ContactController.php
index d0e8770f8dc..244d91b6f1a 100755
--- a/src/app/contact/controllers/ContactController.php
+++ b/src/app/contact/controllers/ContactController.php
@@ -928,6 +928,8 @@ class ContactController
         }
         if (in_array('firstname', $displayableStdParameters)) {
             $contact['firstname'] = $rawContact['firstname'];
+        } else {
+            $contact['firstname'] = '';
         }
         if (in_array('department', $displayableStdParameters)) {
             $contact['department'] = $rawContact['department'];
diff --git a/src/core/controllers/AutoCompleteController.php b/src/core/controllers/AutoCompleteController.php
index 608adfa0186..369fdcbb4a8 100755
--- a/src/core/controllers/AutoCompleteController.php
+++ b/src/core/controllers/AutoCompleteController.php
@@ -251,7 +251,8 @@ class AutoCompleteController
                 $autocompleteEntities[] = [
                     'type'          => 'entity',
                     'id'            => $value['id'],
-                    'lastname'      => $value['entity_label']
+                    'lastname'      => $value['entity_label'],
+                    'firstname'     => ''
                 ];
             }
         }
@@ -281,7 +282,8 @@ class AutoCompleteController
                 $autocompleteContactsGroups[] = [
                     'type'          => 'contactGroup',
                     'id'            => $value['id'],
-                    'lastname'      => $value['label']
+                    'lastname'      => $value['label'],
+                    'firstname'     => ''
                 ];
             }
         }
diff --git a/src/frontend/app/contact/autocomplete/contact-autocomplete.component.html b/src/frontend/app/contact/autocomplete/contact-autocomplete.component.html
index 806e82b2cb3..bbb4e9a26ca 100644
--- a/src/frontend/app/contact/autocomplete/contact-autocomplete.component.html
+++ b/src/frontend/app/contact/autocomplete/contact-autocomplete.component.html
@@ -15,12 +15,13 @@
                     <mat-card>
                         <mat-card-header class="contact-header">
                             <div mat-card-avatar class="contact-header-image fa"
-                                [class.fa-building]="option.type === 'contact'"
+                                [class.fa-building]="option.type === 'contact'" [class.fa-users]="option.type ==='contactGroup'"
                                 [class.fa-sitemap]="option.type ==='entity'" [class.fa-user]="option.type ==='user'"
                                 [title]="lang['contact_'+option.type]">
                             </div>
-                            <mat-card-title [title]="option.firstname + ' ' + option.lastname">{{option.firstname}}
+                            <mat-card-title *ngIf="!empty(option.firstname) || !empty(option.lastname)" [title]="option.firstname + ' ' + option.lastname">{{option.firstname}}
                                 {{option.lastname}}</mat-card-title>
+                            <mat-card-title *ngIf="empty(option.firstname) && empty(option.lastname)" [title]="option.company">{{option.company}}</mat-card-title>
                             <mat-card-subtitle [title]="option.function" *ngIf="!empty(option.function)">
                                 {{option.function}}&nbsp;
                             </mat-card-subtitle>
@@ -31,7 +32,7 @@
                         </mat-card-header>
                         <mat-card-content>
                             <mat-list>
-                                <mat-list-item class="contact-item" *ngIf="!empty(option.company)">
+                                <mat-list-item class="contact-item" *ngIf="(!empty(option.firstname) || !empty(option.lastname)) && !empty(option.company)">
                                     <mat-icon mat-list-icon class="contact-group far fa-building"
                                         [title]="lang.contactsParameters_company"></mat-icon>
                                     <p mat-line class="contact-content" [title]="option.company"> {{option.company}}
diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts
index bfa81234a50..5385b9b524d 100755
--- a/src/frontend/lang/lang-en.ts
+++ b/src/frontend/lang/lang-en.ts
@@ -1288,6 +1288,9 @@ export const LANG_EN = {
     "chooseAllowedGroups" : "Choose allowed groups",
     "reallyWantToDeleteThisGroup"   : "Do you really want to remove this group ?",
     "contact_entity"   : "Entity",
+    "contact_contact": "Contact",
+    "contact_contactGroup": "Contacts group",
+    "contact_user": "User",
     "contact_third"   : "Contact third",
     "confidentialityAndSecurity"   : "Confidentiality and security",
     "modified"   : "Modified",
diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts
index 43a343b751e..36edee59358 100755
--- a/src/frontend/lang/lang-fr.ts
+++ b/src/frontend/lang/lang-fr.ts
@@ -1326,6 +1326,9 @@ export const LANG_FR = {
     "reallyWantToDeleteThisGroup": "Êtes-vous sûr de vouloir supprimer ce groupe ?",
     "invalidToken": "Le jeton est expiré ou n'existe plus",
     "contact_entity": "Entité",
+    "contact_contact": "Contact",
+    "contact_contactGroup": "Groupement de contacts",
+    "contact_user": "Utilisateur",
     "contact_third": "Tier bénéficiaire",
     "confidentialityAndSecurity": "Vie privée et sécurité",
     "modified": "Modifiée",
diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts
index 6b8cdb0b2f4..7a97e6d2b91 100755
--- a/src/frontend/lang/lang-nl.ts
+++ b/src/frontend/lang/lang-nl.ts
@@ -1313,6 +1313,9 @@ export const LANG_NL = {
     "chooseAllowedGroups" : "Choose allowed groups", //_TO_TRANSLATE
     "reallyWantToDeleteThisGroup"   : "Do you really want to remove this group ?", //_TO_TRANSLATE
     "contact_entity"   : "Entity", //_TO_TRANSLATE
+    "contact_contact": "Contact", //_TO_TRANSLATE
+    "contact_contactGroup": "Contacts group", //_TO_TRANSLATE
+    "contact_user": "User", //_TO_TRANSLATE
     "contact_third"   : "Contact third", //_TO_TRANSLATE
     "confidentialityAndSecurity"   : "Confidentiality and security", //_TO_TRANSLATE
     "modified"   : "Modified", //_TO_TRANSLATE
-- 
GitLab