gnunet-svn
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]