Skip to content
Snippets Groups Projects
Commit 54abb605 authored by Zhou Fang's avatar Zhou Fang
Browse files

Updated resource code based on new EFSA

parent 59a4b5b1
No related branches found
No related tags found
No related merge requests found
......@@ -15,8 +15,8 @@ layout: "single"
{{< youtube "videoseries?list=PLy7t4z5SYNaRorMpk1txiehpkyeI0JLn-">}}
{{</ grid/div >}}
<!-- Items inside all-resources will be generated by resources.js using template iot-resources.mustache -->
{{< grid/div id="all-resources" >}}{{</ grid/div >}}
{{< newsroom/resources wg="eclipse_iot" title="Surveys, Case Studies, White Papers, Market Reports" type="survey_report, case_study, white_paper, market_report" template="image-with-title" limit="3" class="col-md-8" viewMorePath="iot-surveys, case-studies, white-papers, market-reports" >}}
{{< grid/div class="resources" isMarkdown="false" >}}
{{< newsroom/news
......
......@@ -7,4 +7,4 @@ weight: 3
layout: "single"
---
{{< page-api-resources type="case_study" >}}
{{< newsroom/resources wg="eclipse_iot" type="case_study" template="image-with-title" class="col-md-8" >}}
......@@ -8,4 +8,4 @@ weight: 2
Explore the results of the influential annual IoT Developer Surveys on key IoT industry technologies, trends, and opportunities.
{{< page-api-resources type="survey_report" >}}
\ No newline at end of file
{{< newsroom/resources wg="eclipse_iot" type="survey_report" template="image-with-title" class="col-md-8" >}}
......@@ -6,4 +6,4 @@ weight: 5
layout: "single"
---
{{< page-api-resources type="market_report" >}}
{{< newsroom/resources wg="eclipse_iot" type="market_report" template="image-with-title" class="col-md-8" >}}
......@@ -8,4 +8,4 @@ weight: 4
layout: "single"
---
{{< page-api-resources type="white_paper" >}}
{{< newsroom/resources wg="eclipse_iot" type="white_paper" template="image-with-title" class="col-md-8" >}}
......@@ -14,7 +14,6 @@
import 'eclipsefdn-solstice-assets'
import './src/home-members'
import 'eclipsefdn-solstice-assets/js/solstice/eclipsefdn.projects'
import './src/resources'
(function($, document) {
$('.media-video').matchHeight();
......
export let resourcesData = [
{
title: 'Surveys',
resource_type: 'survey_report',
path: 'iot-surveys',
isFetching: true,
data: [],
},
{
title: 'Case Studies',
resource_type: 'case_study',
path: 'case-studies',
isFetching: true,
data: [],
},
{
title: 'White Papers',
resource_type: 'white_paper',
path: 'white-papers',
isFetching: true,
data: [],
},
{
title: 'Market Reports',
resource_type: 'market_report',
path: 'market-reports',
isFetching: true,
data: [],
},
];
import { resourcesData } from './resources-data';
import template from '../templates/iot-resources.mustache';
import templateForOneType from '../templates/iot-one-type-resources.mustache';
const formatDate = function () {
let theDate = new Date(this.date).toDateString();
theDate = theDate.slice(0, 3) + ',' + theDate.slice(3);
return theDate;
};
const displayDataOnPage = () => {
document.getElementById('all-resources').innerHTML = template({
sections: resourcesData,
formatDate: formatDate,
});
};
const displayDataOnPageForOneType = (data) => {
document.getElementById('one-type-resources').innerHTML = templateForOneType({
items: data,
formatDate: formatDate,
});
};
if (document.getElementById('all-resources')) {
// Set loading spinner
displayDataOnPage();
const fetchPreviewData = () => {
resourcesData.forEach((section) => {
fetch(
`https://newsroom.eclipse.org/api/resources?pagesize=3&parameters[publish_to]=eclipse_iot&parameters[resource_type][]=${section.resource_type}`
)
.then((res) => res.json())
.then((data) => {
section.data = data.resources;
section.isFetching = false;
displayDataOnPage();
})
.catch((err) => console.log(err));
});
};
fetchPreviewData();
}
const oneTypeResElement = document.getElementById('one-type-resources');
if (oneTypeResElement) {
const fetchWithPagination = async () => {
let i = 1;
let data = [];
const getData = async () => {
let response = await fetch(
`https://newsroom.eclipse.org/api/resources?pagesize=60&parameters[publish_to]=eclipse_iot&parameters[resource_type][]=${oneTypeResElement.getAttribute(
'data-res-type'
)}`
);
if (response.ok) {
let newData = await response.json();
data = [...data, ...newData.resources];
if (response.headers.get('link')?.includes('rel="next"')) {
i++;
await getData();
}
}
};
await getData();
displayDataOnPageForOneType(data);
};
fetchWithPagination();
}
{{#items}}
<div class="col-md-8">
<div class="resources-summary">
{{#landing_link}}
<a class="resources-summary-img" href="{{landing_link}}">
<img src="{{image}}" alt="{{title}}">
</a>
<h4 class="resources-summary-heading"><a href="{{landing_link}}">{{title}}</a></h4>
{{/landing_link}}
{{^landing_link}}
{{#direct_link}}
<a class="resources-summary-img" href="{{direct_link}}">
<img src="{{image}}" alt="{{title}}">
</a>
<h4 class="resources-summary-heading"><a href="{{direct_link}}">{{title}}</a></h4>
{{/direct_link}}
{{^direct_link}}
<img src="{{image}}" alt="{{title}}">
<h4 class="resources-summary-heading">{{title}}</h4>
{{/direct_link}}
{{/landing_link}}
{{#date}}
<p class="resources-summary-date">{{formatDate}}</p>
{{/date}}
<p style="margin-top: 1em;">
{{#landing_link}}
<a href="{{landing_link}}"><i class="fa fa-file-text-o" aria-hidden="true"></i> <span class="sr-only">HTML Link</span></a>
{{/landing_link}}
{{^landing_link}}
{{#direct_link}}
<a href="{{direct_link}}"><i class="fa fa-file-pdf-o" aria-hidden="true"></i> <span class="sr-only">PDF Link</span></a>
{{/direct_link}}
{{/landing_link}}
</p>
</div>
</div>
{{/items}}
\ No newline at end of file
{{#sections}}
<h2>{{title}}</h2>
<div class="resources">
<div class="row">
{{#.}}
{{#isFetching}}
<i class="fa fa-spinner fa-pulse fa-2x fa-fw margin-left-20"></i>
<span class="sr-only">Loading...</span>
{{/isFetching}}
{{#data}}
<div class="col-md-8 matchheight-item">
<div class="resources-summary">
{{#landing_link}}
<a class="resources-summary-img" href="{{landing_link}}">
<img src="{{image}}" alt="{{title}}">
</a>
<h4 class="resources-summary-heading"><a href="{{landing_link}}">{{title}}</a></h4>
{{/landing_link}}
{{^landing_link}}
{{#direct_link}}
<a class="resources-summary-img" href="{{direct_link}}">
<img src="{{image}}" alt="{{title}}">
</a>
<h4 class="resources-summary-heading"><a href="{{direct_link}}">{{title}}</a></h4>
{{/direct_link}}
{{^direct_link}}
<img src="{{image}}" alt="{{title}}">
<h4 class="resources-summary-heading">{{title}}</h4>
{{/direct_link}}
{{/landing_link}}
{{#date}}
<p class="resources-summary-date">{{formatDate}}</p>
{{/date}}
<p style="margin-top: 1em;">
{{#landing_link}}
<a href="{{landing_link}}"><i class="fa fa-file-text-o" aria-hidden="true"></i> <span class="sr-only">HTML Link</span></a>
{{/landing_link}}
{{^landing_link}}
{{#direct_link}}
<a href="{{direct_link}}"><i class="fa fa-file-pdf-o" aria-hidden="true"></i> <span class="sr-only">PDF Link</span></a>
{{/direct_link}}
{{/landing_link}}
</p>
</div>
</div>
{{/data}}
{{/.}}
</div>
<p class="text-right resources-more"><a href="{{path}}">View More</a></p>
</div>
{{/sections}}
<!--
Copyright (c) 2022 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:
Zhou Fang <zhou.fang@eclipse-foundation.org>
SPDX-License-Identifier: EPL-2.0
-->
{{ $type := .Get "type" }}
<div class="resources each-resource" id="one-type-resources" data-res-type="{{$type}}" style="border-bottom:none;">
<i class="fa fa-spinner fa-pulse fa-2x fa-fw margin-left-20"></i>
<span class="sr-only">Loading...</span>
</div>
\ No newline at end of file
......@@ -21,7 +21,7 @@
"build_netlify": "NODE_ENV=production npm run production"
},
"dependencies": {
"eclipsefdn-hugo-solstice-theme": "0.0.154",
"eclipsefdn-hugo-solstice-theme": "0.0.156",
"list.js": "^1.2.0"
},
"prettier": {
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment