[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-www] 41/42: Added events board; deliverables board
From: |
gnunet |
Subject: |
[taler-www] 41/42: Added events board; deliverables board |
Date: |
Mon, 27 Nov 2023 23:54:37 +0100 |
This is an automated email from the git hooks/post-receive script.
andreas-habegger pushed a commit to branch master
in repository www.
commit 20fa275c14022061e505d3f6b46669891377c05b
Author: Andreas HABEGGER <andreas.habegger@bfh.ch>
AuthorDate: Mon Nov 27 23:49:30 2023 +0100
Added events board; deliverables board
---
properties.d/deliverables_eu-project.yml | 21 +++
properties.d/events_eu-project.yml | 45 ++++++
static/styles.css | 252 ++++++++++++++++---------------
template/consortium.html.j2 | 173 +++++++++------------
4 files changed, 267 insertions(+), 224 deletions(-)
diff --git a/properties.d/deliverables_eu-project.yml
b/properties.d/deliverables_eu-project.yml
new file mode 100644
index 0000000..f24d7aa
--- /dev/null
+++ b/properties.d/deliverables_eu-project.yml
@@ -0,0 +1,21 @@
+deliverables:
+ # - title: TITLE
+ # page:
+ # url_pdf:
+ # workpackage: WP ?
+ # comment:
+ - title: List group item heading
+ page:
+ url_pdf: "papers/boss2022thesis.pdf"
+ workpackage: WP 1
+ comment: Some placeholder content in a paragraph.
+ - title: List group item heading
+ page: news/2023-09.html
+ url_pdf:
+ workpackage: WP 3
+ comment: TBD
+ - title: List group item heading
+ page:
+ url_pdf:
+ workpackage: WP 5
+ comment: Placeholder
\ No newline at end of file
diff --git a/properties.d/events_eu-project.yml
b/properties.d/events_eu-project.yml
new file mode 100644
index 0000000..098c7ae
--- /dev/null
+++ b/properties.d/events_eu-project.yml
@@ -0,0 +1,45 @@
+### template item
+ # - date:
+ # titel:
+ # url_img:
+ # url_ext:
+ # url_html:
+ # teaser:
+ # location:
+ # speaker:
+ # email:
+
+events:
+ - date: 2023-12-01
+ titel: Carving a way out of surveillance capitalism
+ url_img: images/9-competition.svg
+ url_ext: https://www.tedxgeneva.net/
+ url_html:
+ teaser: ""
+ location: |
+ Chem. des Crêts 17
+ 1209 Geneva, Switzerland
+ speaker: Marie Walrafen
+ email: mw'AT'taler.net
+ - date: 2023-12-08
+ titel: "Introduction to GNU Taler"
+ url_img: images/diagram-simple.png
+ url_ext: https://moztw.kktix.cc/events/gnu-taler
+ url_html:
+ teaser: In this lecture, we will introduce the political goals,
architecture and technology behind Taler, demonstrate the current state of
development and outline likely future developments.
+ location: |
+ Mozilla Community Space Taipei
+ 台北市中正區八德路一段 94 號 3F
+ speaker: Christian Grothoff
+ email: cg'AT'taler.net
+ - date: 2023-12-21
+ titel: Privacy in e-commerce
+ url_img:
+ url_ext:
+ url_html:
+ teaser: GNU Taler is a privacy-preserving payment system. Customers can
stay anonymous, but merchants can not hide their income through payments with
GNU Taler. This helps to avoid tax evasion and money laundering.
+ location: |
+ Freedom of the Internet Meetup
+ Taipei
+ speaker: Christian Empty
+ email: cg'AT'taler.net
\ No newline at end of file
diff --git a/static/styles.css b/static/styles.css
index 4419232..f75a50b 100644
--- a/static/styles.css
+++ b/static/styles.css
@@ -1,19 +1,18 @@
-
.lang-slector {
- float: right;
- padding-top: 2mm;
- padding-bottom: 4mm;
- margin-left: 15px;
- margin-right: 15px;
+ float: right;
+ padding-top: 2mm;
+ padding-bottom: 4mm;
+ margin-left: 15px;
+ margin-right: 15px;
}
html {
- overflow-y: scroll;
+ overflow-y: scroll;
}
ul nav {
- background-color: rgb(8,8,8);
- border-radius: 0px;
+ background-color: rgb(8, 8, 8);
+ border-radius: 0px;
}
.c_acronym {
@@ -31,47 +30,45 @@ ul nav {
color: #fff;
}
-.extension.row > .col-lg-6 {
+.extension.row>.col-lg-6 {
padding-bottom: 2em;
}
a,
a:link,
a:visited {
- text-decoration: underline;
- color: black;
+ text-decoration: underline;
+ color: black;
}
nav a,
nav a:link,
nav a:visited {
- text-decoration: none;
+ text-decoration: none;
}
.navbar-light .navbar-nav .nav-link {
- /* 0,0,0,.5 makes it problematic to read,
+ /* 0,0,0,.5 makes it problematic to read,
simply black is less problematic */
- color: rgb(0, 0, 0);
- text-decoration: underline;
+ color: rgb(0, 0, 0);
+ text-decoration: underline;
}
-.skip
-{
-position:absolute;
-left:-10000px;
-top:auto;
-width:1px;
-height:1px;
-overflow:hidden;
+.skip {
+ position: absolute;
+ left: -10000px;
+ top: auto;
+ width: 1px;
+ height: 1px;
+ overflow: hidden;
}
-.skip:focus
-{
-position:static;
-width:auto;
-height:auto;
-background: white;
-padding: 5px;
+.skip:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ background: white;
+ padding: 5px;
}
#body_content a:hover {
@@ -91,7 +88,7 @@ padding: 5px;
}
.mobile-lang {
- margin-left:5px;
+ margin-left: 5px;
margin-top: 8px;
}
@@ -118,7 +115,7 @@ footer {
#mybody nav {
- border-radius: 0px;
+ border-radius: 0px;
}
footer {
@@ -198,36 +195,38 @@ footer {
margin-bottom: 5px;
}
-
ul.timeline {
- list-style-type: none;
- position: relative;
+ list-style-type: none;
+ position: relative;
}
+
ul.timeline:before {
- content: ' ';
- background: #d4d9df;
- display: inline-block;
- position: absolute;
- left: 29px;
- width: 2px;
- height: 100%;
- z-index: 400;
-}
-ul.timeline > li {
- margin: 20px 0;
- padding-left: 20px;
-}
-ul.timeline > li:before {
- content: ' ';
- background: white;
- display: inline-block;
- position: absolute;
- border-radius: 50%;
- border: 3px solid #22c0e8;
- left: 20px;
- width: 20px;
- height: 20px;
- z-index: 400;
+ content: ' ';
+ background: #d4d9df;
+ display: inline-block;
+ position: absolute;
+ left: 29px;
+ width: 2px;
+ height: 100%;
+ z-index: 400;
+}
+
+ul.timeline>li {
+ margin: 20px 0;
+ padding-left: 20px;
+}
+
+ul.timeline>li:before {
+ content: ' ';
+ background: white;
+ display: inline-block;
+ position: absolute;
+ border-radius: 50%;
+ border: 3px solid #22c0e8;
+ left: 20px;
+ width: 20px;
+ height: 20px;
+ z-index: 400;
}
.section-consortium .divider {
@@ -279,20 +278,27 @@ ul.timeline > li:before {
}
+.consortium a,
+.consortium a:link,
+.consortium a:visited {
+ text-decoration: none;
+ color: #999;
+}
+
.consortium h4 {
- color: #555;
- text-align: left;
- text-transform: uppercase;
- font-weight: bold;
- position: relative;
- margin: 30px 0 60px;
+ color: #555;
+ text-align: left;
+ text-transform: uppercase;
+ font-weight: bold;
+ position: relative;
+ margin: 30px 0 60px;
padding: 5px;
}
.consortium h4::after {
- content: "";
- width: 170px;
- position: absolute;
+ content: "";
+ width: 170px;
+ position: absolute;
text-align: left;
height: 13%;
bottom: 0;
@@ -301,103 +307,107 @@ ul.timeline > li:before {
z-index: -1;
}
-.consortium .list-group{
+.consortium .list-group {
max-height: 345px;
margin-bottom: 10px;
- overflow:scroll;
+ overflow: scroll;
-webkit-overflow-scrolling: touch;
}
-.consortium .mb-1{
+.consortium .mb-1 {
color: #555;
}
-.consortium .list-group-item, .consortium .list-group-item-action {
+.consortium .list-group-item,
+.consortium .list-group-item-action {
text-decoration: none;
}
.announce .col-center {
- margin: 0 auto;
- float: none !important;
+ margin: 0 auto;
+ float: none !important;
}
.announce .carousel {
- padding: 0 70px;
+ padding: 0 70px;
}
.announce .carousel .carousel-item {
- color: #999;
- font-size: 14px;
- text-align: center;
- overflow: hidden;
- min-height: 290px;
+ color: #999;
+ font-size: 14px;
+ text-align: center;
+ overflow: hidden;
+ min-height: 290px;
}
.announce .carousel .carousel-item .img-box {
- width: 258px;
- height: 160px;
- margin: 0 auto;
- padding: 5px;
- border: 1px solid #ddd;
- border-radius: 5%;
+ width: 258px;
+ height: 160px;
+ margin: 0 auto;
+ padding: 5px;
+ border: 1px solid #ddd;
+ border-radius: 5%;
}
.announce .carousel .img-box img {
- width: 100%;
- height: 100%;
- display: block;
- border-radius: 5px;
+ width: 100%;
+ height: 100%;
+ display: block;
+ border-radius: 5px;
}
.announce .carousel .testimonial {
- padding: 30px 0 10px;
+ padding: 30px 0 10px;
}
.announce .carousel .overview {
- font-style: italic;
+ font-style: italic;
}
.announce .carousel .overview b {
- text-transform: uppercase;
- color: #86b7fe;
+ text-transform: uppercase;
+ color: #86b7fe;
}
-.announce .carousel-control-prev, .announce .carousel-control-next {
- width: 40px;
- height: 40px;
- margin-top: -20px;
- top: 50%;
- background: none;
+.announce .carousel-control-prev,
+.announce .carousel-control-next {
+ width: 40px;
+ height: 40px;
+ margin-top: -20px;
+ top: 50%;
+ background: none;
}
-.announce .carousel-control-prev i, .announce .carousel-control-next i {
- font-size: 68px;
- line-height: 42px;
- position: absolute;
- display: inline-block;
- color: rgba(0, 0, 0, 0.8);
- text-shadow: 0 3px 3px #e6e6e6, 0 0 0 #000;
+.announce .carousel-control-prev i,
+.announce .carousel-control-next i {
+ font-size: 68px;
+ line-height: 42px;
+ position: absolute;
+ display: inline-block;
+ color: rgba(0, 0, 0, 0.8);
+ text-shadow: 0 3px 3px #e6e6e6, 0 0 0 #000;
}
.announce .carousel-indicators {
- bottom: -40px;
+ bottom: -40px;
}
-.announce .carousel-indicators button, .announce .carousel-indicators
button.active {
- width: 12px;
- height: 12px;
- margin: 1px 3px;
- border-radius: 50%;
- border: none;
+.announce .carousel-indicators button,
+.announce .carousel-indicators button.active {
+ width: 12px;
+ height: 12px;
+ margin: 1px 3px;
+ border-radius: 50%;
+ border: none;
}
.announce .carousel-indicators button {
- background: #999;
- border-color: transparent;
- box-shadow: inset 0 2px 1px rgba(0,0,0,0.2);
+ background: #999;
+ border-color: transparent;
+ box-shadow: inset 0 2px 1px rgba(0, 0, 0, 0.2);
}
.announce .carousel-indicators button.active {
- background: #555;
- box-shadow: inset 0 2px 1px rgba(0,0,0,0.2);
-}
+ background: #555;
+ box-shadow: inset 0 2px 1px rgba(0, 0, 0, 0.2);
+}
\ No newline at end of file
diff --git a/template/consortium.html.j2 b/template/consortium.html.j2
index b9d2276..95681af 100644
--- a/template/consortium.html.j2
+++ b/template/consortium.html.j2
@@ -2,6 +2,22 @@
{% block body_content %}
<main id="maincontent">
+ {#
+ <script>
+ window.onload = function () {
+ var span = document.createElement('span');
+
+ span.className = 'fas';
+ span.style.display = 'none';
+ document.body.insertBefore(span, document.body.firstChild);
+
+ alert(window.getComputedStyle(span,
null).getPropertyValue('font-family'));
+
+ document.body.removeChild(span);
+ };
+ </script>
+ #}
+
<div class="container consortium dark-grey-text">
<div class="row">
@@ -9,125 +25,78 @@
<h4 class="font-weight-bold pb-2 mb-4">{{ _("Events")}}</h4>
<div class="container announce">
<div id="AnnouncCarousel" class="carousel slide"
data-bs-ride="carousel">
-
<!-- Carousel indicators -->
<div class="carousel-indicators">
- <button data-bs-target="#AnnouncCarousel" data-bs-slide-to="0"
class="active" aria-current="true"
- aria-label="Slide 1"></button>
- <button type="button" data-bs-target="#AnnouncCarousel"
data-bs-slide-to="1"
- aria-label="Slide 2"></button>
- <button type="button" data-bs-target="#AnnouncCarousel"
data-bs-slide-to="2"
- aria-label="Slide 3"></button>
- <button type="button" data-bs-target="#AnnouncCarousel"
data-bs-slide-to="3"
- aria-label="Slide 4"></button>
+ {% for number in range(0, conf['events']|count) %}
+ <button data-bs-target="#AnnouncCarousel" data-bs-slide-to="{{
number }}" {% if number==0 %}
+ class="active" {% endif %} aria-current="true"
aria-label="Slide {{ number + 1 }}"></button>
+ {% endfor %}
</div>
<!-- Wrapper for carousel items -->
- <div class="carousel-inner">
- <div class="carousel-item active" data-bs-interval="2000">
- <div class="img-box"><img src="{{
url('images/7-efficient.svg') }}" alt=""></div>
- <p class="testimonial">Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Nam eu sem tempor,
- varius quam at, luctus dui. Mauris magna metus, dapibus nec
turpis vel, semper malesuada ante.
- Idac bibendum scelerisque non non purus. Suspendisse varius
nibh non aliquet.</p>
- <p class="overview"><b>Paula Taler</b>, Professor</p>
- </div>
- <div class="carousel-item" data-bs-interval="2000">
- <div class="img-box"><img src="{{
url('images/taler-arch-full.svg') }}" alt=""></div>
- <p class="testimonial">Vestibulum quis quam ut magna consequat
faucibus. Pellentesque eget nisi a mi
- suscipit tincidunt. Utmtc tempus dictum risus. Pellentesque
viverra sagittis quam at mattis.
- Suspendisse potenti. Aliquam sit amet gravida nibh,
facilisis gravida odio.</p>
- <p class="overview"><b>Antonio Twint</b>, Web Developer</p>
- </div>
- <div class="carousel-item" data-bs-interval="2000">
- <div class="img-box"><img src="{{ url('images/6-usable.svg')
}}" alt=""></div>
- <p class="testimonial">Phasellus vitae suscipit justo. Mauris
pharetra feugiat ante id lacinia.
- Etiam faucibus mauris id tempor egestas. Duis luctus turpis
at accumsan tincidunt. Phasellus risus
- risus, volutpat vel tellus ac, tincidunt fringilla massa.
Etiam hendrerit dolor eget rutrum.</p>
- <p class="overview"><b>Michael Coin</b>, CEO</p>
- </div>
+ <div class="carousel-inner vevent">
+ {% for item in conf['events'] %}
+
+ <div {% if loop.first %} class="carousel-item active" {% else %}
class="carousel-item" {% endif %}
+ data-bs-interval="5000">
+ <h5 class="summary">{{ item['titel'] }}</h5>
+ <div class="img-box"> <img src="{{ url(
item['url_img']|default('images/logo-2021.svg', true) ) }}"
+ alt="">
+ </div>
+ <p class="description testimonial">
+ {{ item['teaser'] }}
+ </p>
+ <p class="fas fa-calendar-alt"> To be held on
+ <span class="dtstart">
+ <abbr class="value" title="{{ item['date'] }}"> {{
item['date'] }}</abbr>
+ </span>
+ </p>
+ {% if item['url_ext'] is defined and item['url_ext'] and
item['url_ext'] != "" %}
+ <p class="fa fa-globe"> <a target="_blank" href="{{
item['url_ext'] }}"> About</a></p>
+ {% endif %}
+ {% if item['location'] is defined and item['location'] and
item['location'] != "" %}
+ <p class="fas fa-map-marker-alt"> Location: <span
class="location">{{ item['location'] }}</span></p>
+ {% endif %}
+ <p class="fa fa-user"> <b>{{ item['speaker'] }}</b></p>
+ {% if item['email'] is defined and item['email'] and
item['email'] != "" %}
+ <p class="fas fa-envelope"> <a href="mailto:{{ item['email']
}}?subject={{ item['titel'] }}"><span class="dark-grey-text">
Contact</span></a></p>
+ {% endif %}
- <div class="carousel-item" data-bs-interval="2000">
- <div class="img-box"><img src="{{
url('images/8-fault-tolerant.svg') }}" alt=""></div>
- <p class="testimonial">Phasellus vitae suscipit justo. Mauris
pharetra feugiat ante id lacinia.
- Etiam
- faucibus mauris id tempor egestas. Duis luctus turpis at
accumsan tincidunt. Phasellus risus
- risus,
- volutpat vel tellus ac, tincidunt fringilla massa. Etiam
hendrerit dolor eget rutrum.</p>
- <p class="overview"><b>Michael Pay</b>, Seo Analyst</p>
</div>
+ {% endfor %}
</div>
-
- {# <!-- Carousel controls -->
- <a class="carousel-control-prev" href="#AnnouncCarousel"
data-slide="prev">
- <i class="fab fa-angle-left"></i>
- </a>
- <a class="carousel-control-next" href="#AnnouncCarousel"
data-slide="next">
- <i class="fab fa-angle-right"></i>
- </a> #}
</div>
</div>
</div>
+
<div class="col-md-1 mb-1"></div>
<div class="col-md-4 mb-4">
+ {% if conf['deliverables'] is defined and conf['deliverables'] and
conf['deliverables'] != "" %}
<h4 class="font-weight-bold pb-2 mb-4">{{ _("Deliverables")}}</h4>
<div class="list-group">
+ {% for item in conf['deliverables'] %}
+ {% set ns = namespace(symbol='images/file-cancel.svg') %}
+
+ {% if item['url_pdf'] is defined and item['url_pdf'] and
item['url_pdf'] != "" %}
+ <a href="{{ url(item['url_pdf']) }}" class="list-group-item
list-group-item-action">
+ {% set ns.symbol = 'images/pdf.svg' %}
+ {% elif item['page'] is defined and item['page'] and item['page'] !=
"" %}
+ <a href="{{ url(item['page']) }}" class="list-group-item
list-group-item-action">
+ {% set ns.symbol = 'images/html.svg' %}
+ {% else %}
<a href="#" class="list-group-item list-group-item-action">
+ {% endif %}
<div class="d-flex w-100 justify-content-between">
- <h5 class="mb-1">List group item heading</h5>
- <small>3 days ago</small>
- </div>
- <p class="mb-1">Some placeholder content in a paragraph.</p>
- <small>And some small print.</small>
- </a>
- <a href="#" class="list-group-item list-group-item-action">
- <div class="d-flex w-100 justify-content-between">
- <h5 class="mb-1">List group item heading</h5>
- <small class="text-muted">3 days ago</small>
- </div>
- <p class="mb-1">Some placeholder content in a paragraph.</p>
- <small class="text-muted">And some muted small print.</small>
- </a>
- <a href="#" class="list-group-item list-group-item-action">
- <div class="d-flex w-100 justify-content-between">
- <h5 class="mb-1">List group item heading</h5>
- <small class="text-muted">3 days ago</small>
- </div>
- <p class="mb-1">Some placeholder content in a paragraph.</p>
- <small class="text-muted">And some muted small print.</small>
- </a>
- <a href="#" class="list-group-item list-group-item-action">
- <div class="d-flex w-100 justify-content-between">
- <h5 class="mb-1">List group item heading</h5>
- <small class="text-muted">3 days ago</small>
- </div>
- <p class="mb-1">Some placeholder content in a paragraph.</p>
- <small class="text-muted">And some muted small print.</small>
- </a>
- <a href="#" class="list-group-item list-group-item-action">
- <div class="d-flex w-100 justify-content-between">
- <h5 class="mb-1">List group item heading</h5>
- <small class="text-muted">3 days ago</small>
- </div>
- <p class="mb-1">Some placeholder content in a paragraph.</p>
- <small class="text-muted">And some muted small print.</small>
- </a>
- <a href="#" class="list-group-item list-group-item-action">
- <div class="d-flex w-100 justify-content-between">
- <h5 class="mb-1">List group item heading</h5>
- <small class="text-muted">3 days ago</small>
- </div>
- <p class="mb-1">Some placeholder content in a paragraph.</p>
- <small class="text-muted">And some muted small print.</small>
- </a>
- <a href="#" class="list-group-item list-group-item-action">
- <div class="d-flex w-100 justify-content-between">
- <h5 class="mb-1">List group item heading</h5>
- <small class="text-muted">3 days ago</small>
+ <h5 class="mb-1"><img border=0 alt="" width=24 height=24 src="{{
url_static(ns.symbol) }}">{{ item['title'] }}</h5>
+ <small>{{ item['workpackage'] }}</small>
</div>
- <p class="mb-1">Some placeholder content in a paragraph.</p>
- <small class="text-muted">And some muted small print.</small>
+ {% if item['comment'] is defined and item['comment'] and
item['comment'] != "" %}
+ <p class="mb-1">{{ item['comment'] }}</p>
+ {% endif %}
</a>
+ {% endfor %}
</div>
+ {% endif %}
<div class="col cold-md-auto"></div>
</div>
@@ -140,12 +109,10 @@
<p class="text-muted w-responsive mx-auto mb-3">
{% trans %}
The TALER project is an initiative of Horizon Europe (Pilots for
the Next Generation Internet)
- with the
- aim of bringing the GNU Taler to market across Europe.
+ with the aim of bringing the GNU Taler to market across Europe.
<br>
To make the GNU Taler accessible to European citizens, we need a
commercially viable use of
- the GNU Taler
- technology. We will achieve this through the four key project
objectives.
+ the GNU Taler technology. We will achieve this through the four
key project objectives.
{% endtrans %}
</p>
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-www] 29/42: WIP: Feature with YAML separtation patch, (continued)
- [taler-www] 29/42: WIP: Feature with YAML separtation patch, gnunet, 2023/11/27
- [taler-www] 36/42: UC: Fixed E-Mail address, gnunet, 2023/11/27
- [taler-www] 19/42: UC: Clean up; Unifie strings; Update dict entries -- partners, gnunet, 2023/11/27
- [taler-www] 39/42: UC: Fixed footer contact, gnunet, 2023/11/27
- [taler-www] 05/42: Adapted footer according to Grant Agreement p.36, gnunet, 2023/11/27
- [taler-www] 24/42: UC: Shorten statement to fit better., gnunet, 2023/11/27
- [taler-www] 07/42: Added project objectives from the project proposal, gnunet, 2023/11/27
- [taler-www] 42/42: RC: First release of consortium page, ready for reviewing, gnunet, 2023/11/27
- [taler-www] 10/42: Added logos and statements from PS, TalerSystems SA, HODI, draft BFH and TUE, and placeholder for others, gnunet, 2023/11/27
- [taler-www] 02/42: Added a description of how to use Python venv, gnunet, 2023/11/27
- [taler-www] 41/42: Added events board; deliverables board,
gnunet <=
- [taler-www] 27/42: UC: Added additional targets to have more granular build option; Better clean-up target, gnunet, 2023/11/27
- [taler-www] 14/42: Fixed coordinator information; Added SBFI founding based on guidelines https://www.sbfi.admin.ch/sbfi/de/home/das-sbfi/logo.html, gnunet, 2023/11/27
- [taler-www] 40/42: Added fontawesome free, gnunet, 2023/11/27
- [taler-www] 23/42: UC: Added logos of MagNet Bank, GLS Bank; Update partner URLs, gnunet, 2023/11/27