From 0e67d498feb2c1673e5d0ff66e699d9cf9d967c2 Mon Sep 17 00:00:00 2001
From: antoine37120 <ant.dupre@gmail.com>
Date: Wed, 13 Sep 2023 14:59:42 +0200
Subject: [PATCH] feature: add primary contact display

---
 src/styles/territory-profile.scss      | 16 +++++++
 src/widjets-display-territory-tzcld.js | 61 +++++++++++++++++++++++++-
 2 files changed, 76 insertions(+), 1 deletion(-)

diff --git a/src/styles/territory-profile.scss b/src/styles/territory-profile.scss
index 42b79e7..3104cfe 100644
--- a/src/styles/territory-profile.scss
+++ b/src/styles/territory-profile.scss
@@ -84,4 +84,20 @@
         }
     }
 
+    .tzcld-territory-profile-primary-contact {
+        vertical-align: top;
+        .send-display {
+            position: absolute;
+            right: 20px;
+            top: 20px;
+            z-index: 1;
+        }
+        .view-display {
+            position: absolute;
+            right: 60px;
+            top: 20px;
+            z-index: 1;
+        }
+    }
+
 }
\ No newline at end of file
diff --git a/src/widjets-display-territory-tzcld.js b/src/widjets-display-territory-tzcld.js
index 16923d2..b581f5b 100644
--- a/src/widjets-display-territory-tzcld.js
+++ b/src/widjets-display-territory-tzcld.js
@@ -192,6 +192,14 @@ import("./utils.js").then((utils) => {
           step_state: await tzcldprofile.tzcld_profile.step_state,
           locations: await this.locations
         };
+        let primaryContact = {
+          resource: await tzcldprofile.tzcld_profile.primary_contact
+        };
+        let user_infos = null ;
+        if ((await primaryContact.resource !== null) && (await primaryContact.resource.user !== undefined)) {
+            user_infos = await primaryContact.resource.user ;
+        }
+        
 
         if("label" in this.element.attributes) {
           for(let ignore of this.element.attributes['label'].value.split(',')) {
@@ -280,7 +288,58 @@ import("./utils.js").then((utils) => {
         
         render += `<div id="tzcld-territory-profile-wrapper2" class="tzcld-territory-profile-wrapper2 segment full margin-top-large">`; 
 
-        render += `<div class="tzcld-territory-profile-ebe segment width-30"></div>`; 
+        render += `<div class="tzcld-territory-profile-primary-contact segment width-30 padding-right-large">` ;
+        if ((await primaryContact.resource !== null) && (await primaryContact.resource.user !== undefined)) { 
+        render += `<div id="loaderfirst-contact-territory" class="loader loader-top" hidden="">
+              <div></div>
+              <div></div>
+              <div></div>
+              <div></div>
+            </div>
+            
+            <solid-display 
+
+            loader-id="loaderfirst-contact-territory" 
+            data-src="${await user_infos['@id']}"
+            fields="title, segment1(send, view, segment2(member-picture(account.picture), segment3(name, member-pseudo(at, username), profile.job)), segment5(tzcld_profile.jobs), segment6(tzcld_profile.regions))" 
+            value-title="Premier contact"
+            widget-title="h2"
+            class-title="tzcld-h2"
+            class-segment1="segment bg-color-white shadow full text-top whitespace-normal" 
+            class-segment2="segment full padding-medium padding-bottom-xxsmall text-center whitespace-normal" 
+            class-segment3="segment three-quarter whitespace-normal" 
+            class-member-picture="segment avatar-wrapper" 
+            class-account.picture="avatar large" 
+            class-name="segment block margin-top-xsmall margin-bottom-xxsmall text-xlarge text-bold text-color-heading whitespace-normal" 
+            class-member-pseudo="hidden" 
+            class-username="text-small" 
+            class-profile.job="hidden" 
+            action-send="messages" 
+            action-view="members-member-profile" 
+            label-send="" 
+            value-send="" 
+            label-view="" 
+            value-view="" 
+            class-send="send-display children-link-rounded children-icon-speech children-link-reversed color-secondary bordered"
+            class-view="view-display children-link-rounded children-icon-info children-link-reversed color-secondary bordered"
+            value-at="@" 
+            widget-account.picture="orbit-user-avatar" 
+            role="button" 
+            tabindex="0" 
+            widget-tzcld_profile.regions="customtzcld-display-territory-regions" 
+            widget-tzcld_profile.jobs="customtzcld-display-user-profile-first-job-short" 
+            class-segment5="segment full padding-medium padding-top-xxsmall padding-bottom-xxsmall text-center whitespace-normal" 
+            class-segment6="segment full padding-medium padding-top-xxsmall text-center whitespace-normal" 
+            next="members-member-profile"
+            solid-resource=""></solid-display>`; 
+
+        } else {
+          render += `<h2 class="tzcld-h2">Contact pricipal</h2>
+          <div class="segment bg-color-white shadow full text-top whitespace-normal">
+            <p class="padding-xxlarge">Contact pricipal non désigné</p>
+          </div>`; 
+        }
+        render += `</div>`; 
         render += `<div class="tzcld-territory-profile-ebe segment width-70">
         <h2 class="tzcld-h2">Informations de contact</h2>
         <div class="col-2-wrapper segment full shadow  bg-color-white">`; 
-- 
GitLab