From 2bc39f2f4687d5707d97ffabcf08644a76457306 Mon Sep 17 00:00:00 2001
From: Eric Poirier <eric.poirier@eclipse-foundation.org>
Date: Tue, 10 Mar 2020 14:35:10 -0400
Subject: [PATCH] Update Members section on home page

Signed-off-by: Eric Poirier <eric.poirier@eclipse-foundation.org>
---
 config.toml                                   |  4 +++
 .../members/{index.md => _index.md}           |  5 ++-
 .../{member => membership/members}/adlink.md  |  0
 .../{member => membership/members}/aloxy.md   |  0
 .../{member => membership/members}/azul.md    |  0
 .../{member => membership/members}/bosch.md   |  0
 content/{member => membership/members}/ca.md  |  0
 .../{member => membership/members}/calypso.md |  0
 .../members}/canonical.md                     |  0
 .../{member => membership/members}/cealist.md |  0
 .../members}/cedalo-ag.md                     |  0
 .../members}/cirruslink.md                    |  0
 .../{member => membership/members}/compex.md  |  0
 .../members}/contact-software.md              |  0
 .../{member => membership/members}/dash7.md   |  0
 .../members}/db-systel.md                     |  0
 .../members}/eclipsesource.md                 |  0
 .../members}/edgeworx.md                      |  0
 .../members}/engineering-group.md             |  0
 .../members}/eurotech.md                      |  0
 content/{member => membership/members}/fbk.md |  0
 .../{member => membership/members}/fortiss.md |  0
 .../members}/generative-software.md           |  0
 .../{member => membership/members}/hivemq.md  |  0
 .../{member => membership/members}/huawei.md  |  0
 content/{member => membership/members}/ibm.md |  0
 .../members}/incquery.md                      |  0
 .../members}/inductive_automation.md          |  0
 .../members}/influxdata.md                    |  0
 .../{member => membership/members}/intel.md   |  0
 .../{member => membership/members}/itemis.md  |  0
 .../members}/kichwa-coders-canada.md          |  0
 .../members}/kynetics.md                      |  0
 .../{member => membership/members}/laas.md    |  0
 .../members}/linux-foundation.md              |  0
 .../members}/m2m-alliance.md                  |  0
 .../{member => membership/members}/microej.md |  0
 .../{member => membership/members}/nokia.md   |  0
 .../{member => membership/members}/redhat.md  |  0
 .../{member => membership/members}/siemens.md |  0
 layouts/index.html                            |  3 +-
 layouts/membership/members.html               |  6 ++--
 layouts/membership/members.json.json          | 23 ++++++++++++
 layouts/shortcodes/home-members.html          |  6 +---
 .../quicksilver/featured-members.less         |  8 ++---
 static/assets/css/styles.css                  | 10 ++----
 static/assets/js/members.js                   | 36 +++++++++++++++++++
 47 files changed, 78 insertions(+), 23 deletions(-)
 rename content/membership/members/{index.md => _index.md} (86%)
 rename content/{member => membership/members}/adlink.md (100%)
 rename content/{member => membership/members}/aloxy.md (100%)
 rename content/{member => membership/members}/azul.md (100%)
 rename content/{member => membership/members}/bosch.md (100%)
 rename content/{member => membership/members}/ca.md (100%)
 rename content/{member => membership/members}/calypso.md (100%)
 rename content/{member => membership/members}/canonical.md (100%)
 rename content/{member => membership/members}/cealist.md (100%)
 rename content/{member => membership/members}/cedalo-ag.md (100%)
 rename content/{member => membership/members}/cirruslink.md (100%)
 rename content/{member => membership/members}/compex.md (100%)
 rename content/{member => membership/members}/contact-software.md (100%)
 rename content/{member => membership/members}/dash7.md (100%)
 rename content/{member => membership/members}/db-systel.md (100%)
 rename content/{member => membership/members}/eclipsesource.md (100%)
 rename content/{member => membership/members}/edgeworx.md (100%)
 rename content/{member => membership/members}/engineering-group.md (100%)
 rename content/{member => membership/members}/eurotech.md (100%)
 rename content/{member => membership/members}/fbk.md (100%)
 rename content/{member => membership/members}/fortiss.md (100%)
 rename content/{member => membership/members}/generative-software.md (100%)
 rename content/{member => membership/members}/hivemq.md (100%)
 rename content/{member => membership/members}/huawei.md (100%)
 rename content/{member => membership/members}/ibm.md (100%)
 rename content/{member => membership/members}/incquery.md (100%)
 rename content/{member => membership/members}/inductive_automation.md (100%)
 rename content/{member => membership/members}/influxdata.md (100%)
 rename content/{member => membership/members}/intel.md (100%)
 rename content/{member => membership/members}/itemis.md (100%)
 rename content/{member => membership/members}/kichwa-coders-canada.md (100%)
 rename content/{member => membership/members}/kynetics.md (100%)
 rename content/{member => membership/members}/laas.md (100%)
 rename content/{member => membership/members}/linux-foundation.md (100%)
 rename content/{member => membership/members}/m2m-alliance.md (100%)
 rename content/{member => membership/members}/microej.md (100%)
 rename content/{member => membership/members}/nokia.md (100%)
 rename content/{member => membership/members}/redhat.md (100%)
 rename content/{member => membership/members}/siemens.md (100%)
 create mode 100644 layouts/membership/members.json.json
 create mode 100644 static/assets/js/members.js

diff --git a/config.toml b/config.toml
index fe5d701e1..dc71e7651 100644
--- a/config.toml
+++ b/config.toml
@@ -47,6 +47,10 @@ buildFuture = true
   resource_items = "resource_items"
   tag = "tags"
   
+[outputs]
+  home = ["HTML","RSS", "JSON"]
+  section = ["HTML","RSS", "JSON"]
+  
 [[menu.main]]
   name = "Adopters"
   url = "/adopters/"
diff --git a/content/membership/members/index.md b/content/membership/members/_index.md
similarity index 86%
rename from content/membership/members/index.md
rename to content/membership/members/_index.md
index 8fdb9e482..b5c943367 100644
--- a/content/membership/members/index.md
+++ b/content/membership/members/_index.md
@@ -6,5 +6,8 @@ aliases:
     - /member/
 layout: "members"
 menu_icon: "zap"
-parent: "members"
+outputs:
+    - HTML
+    - JSON
+    - RSS
 ---
diff --git a/content/member/adlink.md b/content/membership/members/adlink.md
similarity index 100%
rename from content/member/adlink.md
rename to content/membership/members/adlink.md
diff --git a/content/member/aloxy.md b/content/membership/members/aloxy.md
similarity index 100%
rename from content/member/aloxy.md
rename to content/membership/members/aloxy.md
diff --git a/content/member/azul.md b/content/membership/members/azul.md
similarity index 100%
rename from content/member/azul.md
rename to content/membership/members/azul.md
diff --git a/content/member/bosch.md b/content/membership/members/bosch.md
similarity index 100%
rename from content/member/bosch.md
rename to content/membership/members/bosch.md
diff --git a/content/member/ca.md b/content/membership/members/ca.md
similarity index 100%
rename from content/member/ca.md
rename to content/membership/members/ca.md
diff --git a/content/member/calypso.md b/content/membership/members/calypso.md
similarity index 100%
rename from content/member/calypso.md
rename to content/membership/members/calypso.md
diff --git a/content/member/canonical.md b/content/membership/members/canonical.md
similarity index 100%
rename from content/member/canonical.md
rename to content/membership/members/canonical.md
diff --git a/content/member/cealist.md b/content/membership/members/cealist.md
similarity index 100%
rename from content/member/cealist.md
rename to content/membership/members/cealist.md
diff --git a/content/member/cedalo-ag.md b/content/membership/members/cedalo-ag.md
similarity index 100%
rename from content/member/cedalo-ag.md
rename to content/membership/members/cedalo-ag.md
diff --git a/content/member/cirruslink.md b/content/membership/members/cirruslink.md
similarity index 100%
rename from content/member/cirruslink.md
rename to content/membership/members/cirruslink.md
diff --git a/content/member/compex.md b/content/membership/members/compex.md
similarity index 100%
rename from content/member/compex.md
rename to content/membership/members/compex.md
diff --git a/content/member/contact-software.md b/content/membership/members/contact-software.md
similarity index 100%
rename from content/member/contact-software.md
rename to content/membership/members/contact-software.md
diff --git a/content/member/dash7.md b/content/membership/members/dash7.md
similarity index 100%
rename from content/member/dash7.md
rename to content/membership/members/dash7.md
diff --git a/content/member/db-systel.md b/content/membership/members/db-systel.md
similarity index 100%
rename from content/member/db-systel.md
rename to content/membership/members/db-systel.md
diff --git a/content/member/eclipsesource.md b/content/membership/members/eclipsesource.md
similarity index 100%
rename from content/member/eclipsesource.md
rename to content/membership/members/eclipsesource.md
diff --git a/content/member/edgeworx.md b/content/membership/members/edgeworx.md
similarity index 100%
rename from content/member/edgeworx.md
rename to content/membership/members/edgeworx.md
diff --git a/content/member/engineering-group.md b/content/membership/members/engineering-group.md
similarity index 100%
rename from content/member/engineering-group.md
rename to content/membership/members/engineering-group.md
diff --git a/content/member/eurotech.md b/content/membership/members/eurotech.md
similarity index 100%
rename from content/member/eurotech.md
rename to content/membership/members/eurotech.md
diff --git a/content/member/fbk.md b/content/membership/members/fbk.md
similarity index 100%
rename from content/member/fbk.md
rename to content/membership/members/fbk.md
diff --git a/content/member/fortiss.md b/content/membership/members/fortiss.md
similarity index 100%
rename from content/member/fortiss.md
rename to content/membership/members/fortiss.md
diff --git a/content/member/generative-software.md b/content/membership/members/generative-software.md
similarity index 100%
rename from content/member/generative-software.md
rename to content/membership/members/generative-software.md
diff --git a/content/member/hivemq.md b/content/membership/members/hivemq.md
similarity index 100%
rename from content/member/hivemq.md
rename to content/membership/members/hivemq.md
diff --git a/content/member/huawei.md b/content/membership/members/huawei.md
similarity index 100%
rename from content/member/huawei.md
rename to content/membership/members/huawei.md
diff --git a/content/member/ibm.md b/content/membership/members/ibm.md
similarity index 100%
rename from content/member/ibm.md
rename to content/membership/members/ibm.md
diff --git a/content/member/incquery.md b/content/membership/members/incquery.md
similarity index 100%
rename from content/member/incquery.md
rename to content/membership/members/incquery.md
diff --git a/content/member/inductive_automation.md b/content/membership/members/inductive_automation.md
similarity index 100%
rename from content/member/inductive_automation.md
rename to content/membership/members/inductive_automation.md
diff --git a/content/member/influxdata.md b/content/membership/members/influxdata.md
similarity index 100%
rename from content/member/influxdata.md
rename to content/membership/members/influxdata.md
diff --git a/content/member/intel.md b/content/membership/members/intel.md
similarity index 100%
rename from content/member/intel.md
rename to content/membership/members/intel.md
diff --git a/content/member/itemis.md b/content/membership/members/itemis.md
similarity index 100%
rename from content/member/itemis.md
rename to content/membership/members/itemis.md
diff --git a/content/member/kichwa-coders-canada.md b/content/membership/members/kichwa-coders-canada.md
similarity index 100%
rename from content/member/kichwa-coders-canada.md
rename to content/membership/members/kichwa-coders-canada.md
diff --git a/content/member/kynetics.md b/content/membership/members/kynetics.md
similarity index 100%
rename from content/member/kynetics.md
rename to content/membership/members/kynetics.md
diff --git a/content/member/laas.md b/content/membership/members/laas.md
similarity index 100%
rename from content/member/laas.md
rename to content/membership/members/laas.md
diff --git a/content/member/linux-foundation.md b/content/membership/members/linux-foundation.md
similarity index 100%
rename from content/member/linux-foundation.md
rename to content/membership/members/linux-foundation.md
diff --git a/content/member/m2m-alliance.md b/content/membership/members/m2m-alliance.md
similarity index 100%
rename from content/member/m2m-alliance.md
rename to content/membership/members/m2m-alliance.md
diff --git a/content/member/microej.md b/content/membership/members/microej.md
similarity index 100%
rename from content/member/microej.md
rename to content/membership/members/microej.md
diff --git a/content/member/nokia.md b/content/membership/members/nokia.md
similarity index 100%
rename from content/member/nokia.md
rename to content/membership/members/nokia.md
diff --git a/content/member/redhat.md b/content/membership/members/redhat.md
similarity index 100%
rename from content/member/redhat.md
rename to content/membership/members/redhat.md
diff --git a/content/member/siemens.md b/content/membership/members/siemens.md
similarity index 100%
rename from content/member/siemens.md
rename to content/membership/members/siemens.md
diff --git a/layouts/index.html b/layouts/index.html
index cf635be1c..c8c7963e0 100644
--- a/layouts/index.html
+++ b/layouts/index.html
@@ -5,6 +5,5 @@
 {{ end }}
 
 {{ define "footer-suffix" }}
-  <script src="js/shuffle.js"></script>
-  <script src="js/index.js"></script>
+  <script src="assets/js/members.js"></script>
 {{ end }}
\ No newline at end of file
diff --git a/layouts/membership/members.html b/layouts/membership/members.html
index 3fc0e3e01..66a112244 100644
--- a/layouts/membership/members.html
+++ b/layouts/membership/members.html
@@ -3,7 +3,7 @@
 <p class="big" style="font-weight:200;">Learn more about our members and discover the IoT solutions they&nbsp;offer&nbsp;today.</p>
 <h2 class="margin-bottom-30">Strategic members</h2>
 <div id="sc-members">
-  {{ range sort (where .Site.RegularPages.ByTitle "Section" "member") ".Title" }}
+  {{ range sort (where .Site.RegularPages.ByTitle "Section" "membership") ".Title" }}
   {{ if eq .Params.member_type "steering" }}
   <div class="row members-info" id="member-{{ .Params.logo }}">
     <div class="col-md-4 col-md-offset-1 mb-logo margin-top-20">
@@ -34,7 +34,7 @@
 </div>
 <h2 class="margin-bottom-30 margin-top-60">Participating members</h2>
 <div id="participating-members">
-  {{ range sort (where .Site.RegularPages.ByTitle "Section" "member") ".Title" }}
+  {{ range sort (where .Site.RegularPages.ByTitle "Section" "membership") ".Title" }}
   {{ if eq .Params.member_type "participating" }}
   <div class="row members-info" id="member-{{ .Params.logo }}" title="{{ .Title }}">
     <div class="col-md-4 col-md-offset-1 mb-logo margin-top-20">
@@ -65,7 +65,7 @@
 </div>
 <h2 class="purple" style="margin-top: 2em;">Guest members<br /><br /></h2>
 <div id="guest-members">
-  {{ range sort (where .Site.RegularPages.ByTitle "Section" "member") ".Title" }}
+  {{ range sort (where .Site.RegularPages.ByTitle "Section" "membership") ".Title" }}
   {{ if eq .Params.member_type "guest" }}
   <div class="row members-info" id="member-{{ .Params.logo }}" title="{{ .Title }}">
     <div class="col-md-4 col-md-offset-1 mb-logo margin-top-20">
diff --git a/layouts/membership/members.json.json b/layouts/membership/members.json.json
new file mode 100644
index 000000000..f9f8d943a
--- /dev/null
+++ b/layouts/membership/members.json.json
@@ -0,0 +1,23 @@
+{{ $list := .Pages }}
+{{ $length := (len $list) }}
+{
+    "items" : [
+    {{ range $index, $element := $list }}
+    {
+        "title" : {{ .Title | jsonify }},
+        "date_published" : "{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}",
+        "url" : "{{ .Permalink }}",
+        "member_type" : "{{ .Params.member_type }}",
+        "member_id" : "{{ .Params.member_id }}",
+        "more_url" : "{{ .Params.more_url }}",
+        "logo" : "/membership/members/images/logo-{{ .Params.logo }}.png",
+        {{ if .Params.demo_url }}
+          "demo_url" : "{{ .Params.demo_url }}",
+        {{ else }}
+          "demo_url" : "",
+        {{ end }}
+        "content_html" : {{ .Content | jsonify }}
+    }{{ if ne (add $index 1) $length }},{{ end }}
+    {{ end }}
+    ]
+}
diff --git a/layouts/shortcodes/home-members.html b/layouts/shortcodes/home-members.html
index 868afc632..97cee8a83 100644
--- a/layouts/shortcodes/home-members.html
+++ b/layouts/shortcodes/home-members.html
@@ -1,8 +1,4 @@
 <div class="featured-members text-center row">
-  <ul class="list-inline">
-    <li><img src="/membership/members/images/logo-adlink.png"></li>
-    <li><img src="/membership/members/images/logo-aloxy.png"></li>
-    <li><img src="/membership/members/images/logo-azul-systems.png"></li>
-  </ul>
+  <div class="featured-members-list"></div>
   <p><a class="btn btn-primary" href="https://accounts.eclipse.org/contact/membership/iot">Become a Member</a></p>
 </div>
\ No newline at end of file
diff --git a/less/_components/quicksilver/featured-members.less b/less/_components/quicksilver/featured-members.less
index e78fdb700..eb5427f35 100644
--- a/less/_components/quicksilver/featured-members.less
+++ b/less/_components/quicksilver/featured-members.less
@@ -18,17 +18,15 @@
     padding:50px 0;
   }
   ul {
-    margin-bottom:20px;
+    margin-bottom:45px;
     li {
       padding:0 20px 30px;
       @media screen and (min-width: 768px) {
         padding:0 20px;
       }
       img {
-        width:150px;
-        @media screen and (min-width: 768px) { 
-          width:200px;
-        }
+        max-width: 150px;
+        max-height: 90px;
       }
     }
   }
diff --git a/static/assets/css/styles.css b/static/assets/css/styles.css
index 7b64afccb..a36c189d9 100644
--- a/static/assets/css/styles.css
+++ b/static/assets/css/styles.css
@@ -14128,7 +14128,7 @@ img.desaturate {
   }
 }
 .featured-members ul {
-  margin-bottom: 20px;
+  margin-bottom: 45px;
 }
 .featured-members ul li {
   padding: 0 20px 30px;
@@ -14139,12 +14139,8 @@ img.desaturate {
   }
 }
 .featured-members ul li img {
-  width: 150px;
-}
-@media screen and (min-width: 768px) {
-  .featured-members ul li img {
-    width: 200px;
-  }
+  max-width: 150px;
+  max-height: 90px;
 }
 .mb-info-container h2 {
   margin-top: 20px;
diff --git a/static/assets/js/members.js b/static/assets/js/members.js
new file mode 100644
index 000000000..9be71d5a4
--- /dev/null
+++ b/static/assets/js/members.js
@@ -0,0 +1,36 @@
+/*!
+ * Copyright (c) 2020 Eclipse Foundation, Inc.
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ * 
+ * Contributors:
+ *   Christopher Guindon <chris.guindon@eclipse-foundation.org>
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+*/
+
+(function($, document) {
+
+    $.getJSON( "/membership/members/index.json", function( data ) {
+      var items = [];
+      var count = 1;
+      $.each( shuffle(data['items']), function( key, val ) {
+        if (count <= 3) {
+          items.push( "<li><img src='"+ val['logo'] +"' alt='Logo of " + val['title'] + "'></li>" );
+        }
+        count = count+1
+      });
+      $( "<ul/>", {
+        "class": "list-inline",
+        html: items.join( "" )
+      }).appendTo(".featured-members-list");
+    });
+    
+    function shuffle(arr) {
+      for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);
+      return arr;
+    }
+    
+})(jQuery, document);
\ No newline at end of file
-- 
GitLab