From 2cdc6b6623bca610a2c39d4e221dd7bb196d3c1e Mon Sep 17 00:00:00 2001
From: Alexandre Bourlier <alexandre@happy-dev.fr>
Date: Sat, 7 Jul 2018 14:54:22 +0200
Subject: [PATCH] feature - members page done. search not working and
 transition to member page not working

---
 .gitmodules                   |  6 ++---
 dist/lib/sib-chat             |  1 +
 dist/lib/xmpp-chat-component  |  1 -
 index.php                     | 21 +++++++--------
 src/html/dependencies-dev.php |  2 +-
 src/html/member.html          | 28 ++++++++++----------
 src/html/members.html         | 50 +++++++++++++++++++++++++++--------
 src/html/menu.html            |  2 +-
 8 files changed, 69 insertions(+), 42 deletions(-)
 create mode 160000 dist/lib/sib-chat
 delete mode 160000 dist/lib/xmpp-chat-component

diff --git a/.gitmodules b/.gitmodules
index 07bc4621..375c2df8 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,12 +1,12 @@
 [submodule "dist/lib/webcomponentsjs"]
 	path = dist/lib/webcomponentsjs
 	url = https://github.com/webcomponents/webcomponentsjs
-[submodule "dist/lib/xmpp-chat-component"]
-	path = dist/lib/xmpp-chat-component
-	url = git@git.happy-dev.fr:happy-dev/xmpp-chat-component.git
 [submodule "dist/lib/sib-core"]
 	path = dist/lib/sib-core
 	url = git@git.happy-dev.fr:startinblox/sib-core.git
 [submodule "dist/lib/sib-router"]
 	path = dist/lib/sib-router
 	url = git@git.happy-dev.fr:startinblox/sib-router.git
+[submodule "dist/lib/sib-chat"]
+	path = dist/lib/sib-chat
+	url = git@git.happy-dev.fr:startinblox/sib-chat.git
diff --git a/dist/lib/sib-chat b/dist/lib/sib-chat
new file mode 160000
index 00000000..8793dea9
--- /dev/null
+++ b/dist/lib/sib-chat
@@ -0,0 +1 @@
+Subproject commit 8793dea94c3be9c068ee3ee6a7a0dc5e084f442a
diff --git a/dist/lib/xmpp-chat-component b/dist/lib/xmpp-chat-component
deleted file mode 160000
index 3c6fe0b6..00000000
--- a/dist/lib/xmpp-chat-component
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 3c6fe0b63a6d311610bcf53cb84b552ef382f17e
diff --git a/index.php b/index.php
index 532321da..5f43fc36 100644
--- a/index.php
+++ b/index.php
@@ -40,16 +40,15 @@
     </main>
 
     <!-- This is a hack : https://git.happy-dev.fr/happy-dev/xmpp-chat-component/issues/24 -->
-    <hd-chat-window
-        id="chat-singleton"
-        data-authentication="anonymous"
-        data-auto-login="true"
-        data-bosh-service-url="https://conversejs.org/http-bind/"
-        data-debug="false"
-        data-jid="nomnom.im"
-        data-locales-url="<?php echo $cdn; ?>/node_modules/converse.js/locale/{{{locale}}}/LC_MESSAGES/converse.json",
-        data-room-jid="anonymous@conference.nomnom.im">
-    </hd-chat-window>
+    <sib-chat
+      data-src="https://djangoldp.happy-dev.fr/users/1"
+      data-authentication="login"
+      data-auto-login="true"
+      data-bosh-service-url="http://jabber.happy-dev.fr/http-bind/" // FIXME: make HTTPS
+      data-debug="false"
+      data-locales-url="node_modules/converse.js/locale/{{{locale}}}/LC_MESSAGES/converse.json">
+    </sib-chat>
+
     <script>
       // Store url on load
       var currentRoute  = getCurrentRoute();
@@ -78,7 +77,7 @@
             currentRoute += "-chat";
           }
           var currentView = document.querySelector("#" + currentRoute);
-          if (currentView.querySelector("hd-chat-window") == null) {
+          if (currentView.querySelector("sib-chat") == null) {
             currentView.appendChild(chatSingleton);
             currentView.style.display = 'block';
           }
diff --git a/src/html/dependencies-dev.php b/src/html/dependencies-dev.php
index c1024b53..a0681902 100644
--- a/src/html/dependencies-dev.php
+++ b/src/html/dependencies-dev.php
@@ -14,5 +14,5 @@
     <!-- Web components -->
     <link rel="import" href="<?php echo $dn; ?>/dist/lib/sib-core/sib-display.html?v=<?php echo $v ?>" />
     <link rel="import" href="<?php echo $dn; ?>/dist/lib/sib-router/sib-router.html?v=<?php echo $v ?>" />
-    <link rel="import" href="<?php echo $dn; ?>/dist/lib/xmpp-chat-component/chat-window-component.html?v=<?php echo $v ?>">
+    <link rel="import" href="<?php echo $dn; ?>/dist/lib/sib-chat/sib-chat.html?v=<?php echo $v ?>">
 
diff --git a/src/html/member.html b/src/html/member.html
index 85bab3db..17129370 100644
--- a/src/html/member.html
+++ b/src/html/member.html
@@ -1,12 +1,12 @@
 <div id="member" class="view-with-vertical-menu" style="display: none">
-  <ldp-router id="member-page-router" class="vertical-menu border-left" default-route="member-chat">
-    <ldp-route name="member-chat">
+  <sib-router id="member-page-router" class="vertical-menu border-left" default-route="member-chat">
+    <sib-route name="member-chat">
       <i class="fa fa-comment" aria-hidden="true"></i>
-    </ldp-route>
-    <ldp-route name="member-detail">
+    </sib-route>
+    <sib-route name="member-detail">
       <i class="fa fa-user" aria-hidden="true"></i>
-    </ldp-route>
-  </ldp-router>
+    </sib-route>
+  </sib-router>
 
   <div id="member-chat" class="chat-wrapper"></div>
 
@@ -15,28 +15,28 @@
       <i class="fa fa-pencil" aria-hidden="true"></i>
       <i class="name fa fa-pencil" aria-hidden="true"></i>
 
-      <ldp-display 
+      <sib-display 
         id="member-info" 
         data-src="<?php echo $sdn; ?>/members/1/" 
         set-name="firstname, name-separator, lastname"
         value-name-separator="&nbsp;"
         data-fields="avatar, name, cell, email, number"
-        widget-avatar="ldp-display-img"
-        widget-cell="ldp-display-cell"
-        widget-email="ldp-display-mailto"
-        widget-number="ldp-display-tel"
+        widget-avatar="sib-display-img"
+        widget-cell="sib-display-cell"
+        widget-email="sib-display-mailto"
+        widget-number="sib-display-tel"
         bind-resources
-      ></ldp-display>
+      ></sib-display>
     </div>
 
     <div class="section skills">
       <i class="fa fa-pencil" aria-hidden="true"></i>
       <h2>Compétences</h2>
-      <ldp-display 
+      <sib-display 
         id="member-skills" 
         id-suffix="skills"
         bind-resources
-      ></ldp-display>
+      ></sib-display>
     </div>
   </div>
 </div>
diff --git a/src/html/members.html b/src/html/members.html
index 8a39341a..a6f8007c 100644
--- a/src/html/members.html
+++ b/src/html/members.html
@@ -1,14 +1,15 @@
 <script>
   document.addEventListener("WebComponentsReady", function(event) { 
-    class UserInfo extends SIBDisplayLookupList {
+    class HDAppUserInfo extends SIBDisplayLookupList {
       get parentElement() {return "div"}
       getTemplate(value, index) {
-        var firstname, lastname;
+        var firstname, lastname, email;
 
         if(typeof value == "object")
           if(value.first_name) {
             firstname = value.first_name;
             lastname  = value.last_name;
+            email     = value.email;
           }
           else {
             store.get(value).then(resource => {
@@ -19,25 +20,52 @@
             else this.value = [];
             return '';
           }
-        return `<span id="${firstname}-${lastname}">${firstname} ${lastname}</span>`;
+        return `<div id="${firstname}-${lastname}">${firstname} ${lastname}</div>
+                <div id="${email}">${email}</div>`;
       }
     }
-    customElements.define('hdapp-userinfo', UserInfo);
+    customElements.define('hdapp-userinfo', HDAppUserInfo);
+
+    class HDAppCell extends SIBDisplayLookupList {
+      get parentElement() {return "div"}
+      getTemplate(value, index) {
+        var city, country;
+
+        if(typeof value == "object")
+          if(value.city) {
+            city      = value.city;
+            country   = value.country;
+          }
+          else {
+            store.get(value).then(resource => {
+                this.value.push(resource);
+                this.render();
+            });
+            if(Array.isArray(this.value))this.value.splice(this.value.indexOf(value), 1);
+            else this.value = [];
+            return '';
+          }
+        return `<span id="${city}-${country}">${city} ${country}</span>`;
+      }
+    }
+    customElements.define("hdapp-usercell", HDAppCell);
   });
 
-//  class LDPDisplayCell extends SIBDisplayLookupList {
-//    get template() {
-//      return `<div name="${this.name}">${this.value.city} - ${this.value.country}</div>`;
-//    }
-//  }
-//  customElements.define("ldp-display-cell", LDPDisplayCell);
 </script>
 
 <div id="members" class="view" style="display: none">
   <sib-display 
     id="profiles-list" 
     data-src="<?php echo $sdn; ?>/members/" 
-    data-fields="user"
+    data-fields="avatar, user, before-pseudo, pseudo, bio, cell, skills"
+    value-before-pseudo="@"
+    widget-avatar="sib-display-img"
     widget-user="hdapp-userinfo"
+    widget-cell="hdapp-usercell"
+    widget-skills="sib-display-lookuplist"
+    search-fields="pseudo"
+    next="member"
   ></sib-display>
 </div>
+
+
diff --git a/src/html/menu.html b/src/html/menu.html
index f0a4a5ae..c2fe0c33 100644
--- a/src/html/menu.html
+++ b/src/html/menu.html
@@ -8,7 +8,7 @@
     <div id="menu-items" class="col-7 col-md-7">
       <sib-route class="nav-item pb-2 active align-self-stretch text-center text-md-left" name="members">
         <i class="fa fa-users" aria-hidden="true"></i>
-        <span class="d-none d-md-inline"> Membres</span>
+        <span class="d-none d-md-inline">Membres</span>
       </sib-route>
       <sib-route class="d-none" name="member" id-prefix="<?php echo $sdn; ?>/members/"></sib-route>
       <sib-route class="d-none" name="edit-profile" id-prefix="<?php echo $sdn; ?>/members/"></sib-route>
-- 
GitLab