Navigation Menu

Skip to content

Commit

Permalink
Create embeddable versions of all visualisations and provide code to …
Browse files Browse the repository at this point in the history
…embed on vis. pages. Also sharing buttons for all visualisations which could still use a little tuning. Minor improvement/fix to blog post html sharing code.
  • Loading branch information
mattfullerton committed Nov 14, 2016
1 parent 0318370 commit 48fc885
Show file tree
Hide file tree
Showing 16 changed files with 234 additions and 103 deletions.
15 changes: 15 additions & 0 deletions _config.yml
Expand Up @@ -142,6 +142,15 @@ t:
moreblogs:
en: More blog posts
de: Weitere Blogeinträge
share:
en: Share
de: Teilen
embed:
en: Embed
de: Einbetten
fullscreen:
en: Fullscreen
de: Vollbild
methodology:
en: Read more about the project
de: Mehr über das Projekt
Expand Down Expand Up @@ -294,9 +303,15 @@ t:
more:
en: More
de: Mehr
tweettext:
en: "Check%20out%20this%20SDG%20progress%20viz.%20from%202030%20Watch%20@2030WatchDe%20%23SDGs"
de: "Schaue%20diese%20Datenvisualisierung%20zum%20SDG%20Fortschritt%20an%20@2030WatchDe%20%23SDGs"
shareblog:
en: Share blog post on
de: Blogpost teilen auf
sharevis:
en: Share visualisation on
de: Visualisierung teilen auf
showcontactdata:
en: Show contact details
de: Kontaktdaten anzeigen
Expand Down
1 change: 1 addition & 0 deletions _includes/head.html
Expand Up @@ -29,6 +29,7 @@
<meta property="og:image" content="{{site.url}}{{ page.image.src }}">
{% else %}
<meta name="twitter:image:src" content="{{site.url}}{{ site.staticurl }}img/2030watch_logo.png">
<meta property="og:image" content="{{site.url}}{{ site.staticurl }}img/2030watch_logo.png">
{% endif %}
{% endif %}
{% if site.meta_author %}
Expand Down
7 changes: 3 additions & 4 deletions _includes/js.html
Expand Up @@ -8,8 +8,7 @@

<!-- Custom Theme JavaScript -->
<script src="/static/js/index.js"></script>

{% if page.dir == "/monitoring/" %}
{% if page.page == "monitoring" or page.dir == "/monitoring/embed/" %}
<script src="/static/js/frameworks/d3.min.js"></script>
<script src="/static/js/frameworks/highcharts.js"></script>
<script src="/static/js/frameworks/map.js"></script>
Expand All @@ -18,15 +17,15 @@
<script src="/static/js/visualizations.js"></script>
<script src="/static/js/misc.js"></script>
{% endif %}
{% if page.page == "datapartners" %}
{% if page.page == "datapartners" or page.page == "laendervergleich" %}
<script>
$(document.body).tooltip({ selector: "[title]" });
</script>
{% endif %}
{% if page.page == "methodik" %}
<script src="/static/js/frameworks/details-element-polyfill.js"></script>
{% endif %}
{% if page.page == "einzelindikatoren" %}
{% if page.page == "einzelindikatoren" or page.page == "einzelindikatoren_embed" %}
<script src="/static/js/frameworks/underscore.js"></script>
<script src="/static/js/misc.js"></script>
<script>
Expand Down
2 changes: 1 addition & 1 deletion _includes/nav.html
Expand Up @@ -78,7 +78,7 @@
<div class="row row-subnav">
<ul class="nav navbar-nav navbar-stretch navbar-subnav navbar-right">
{% if page.slug == 'monitoring' %}
<li><a class="{% if page.page == None and page.slug == 'monitoring' %} active {% endif %}" href="/monitoring">{{ site.t.germanysimplementationshort[site.active_lang] }}</a></li>
<li><a class="{% if page.page == 'monitoring' %} active {% endif %}" href="/monitoring">{{ site.t.germanysimplementationshort[site.active_lang] }}</a></li>
<li><a class="{% if page.page == 'laendervergleich' %} active {% endif %}" href="/monitoring/laendervergleich">{{ site.t.countrycomparison[site.active_lang] }}</a></li>
<li><a class="{% if page.page == 'einzelindikatoren' %} active {% endif %}" href="/monitoring/einzelindikatoren">{{ site.t.individualindicators[site.active_lang] }}</a></li>
{% elsif page.slug == 'about' %}
Expand Down
11 changes: 11 additions & 0 deletions _includes/snippets/embed.html
@@ -0,0 +1,11 @@
{% if site.active_lang != site.default_lang %}
{% assign share_url = include.url | prepend: site.active_lang | prepend: '/' | prepend: site.url %}
{% else %}
{% assign share_url = include.url | prepend: site.url %}
{% endif %}
<p class="text-{% if include.align %}{{ include.align }}{% else %}right{% endif %}">
<small><strong>{{ site.t.embed[site.active_lang] }}:</strong>&nbsp;<span style="font-family: monospace;"><input style="width: 50%;" type="text" autofocus="autofocus" onfocus="this.select();" value="&lt;iframe width=&quot;800&quot; height=&quot;600&quot; src=&quot;{{ site.url }}{{ include.url }}embed/{% if include.params %}{{ include.params }}{% endif %}&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;" /></span></small>
{% if include.break %}<br>{% endif %}
<small><strong>{{ site.t.share[site.active_lang] }}:</strong></small>&nbsp;<a title="{{ site.t.sharevis[site.active_lang] }} Twitter" href="https://twitter.com/intent/tweet?text={{ site.t.tweettext[site.active_lang] }}:%20{{ share_url }}{% if include.params %}{{ include.params }}{% endif %}&f=f" target="_blank"><i class="fa fa-fw fa-twitter-square"></i></a><a title="{{ site.t.sharevis[site.active_lang] }} Facebook" href="https://www.facebook.com/sharer/sharer.php?u={{ share_url }}{% if include.params %}{{ include.params }}{% endif %}" target="_blank"><i class="fa fa-fw fa-facebook-square"></i></a><a title="{{ site.t.sharevis[site.active_lang] }} Google Plus" href="https://plus.google.com/share?url={{ share_url }}{% if include.params %}{{ include.params }}{% endif %}" target="_blank"><i class="fa fa-fw fa-google-plus-square"></i></a> | <a "alt="{{ site.t.fullscreen[site.active_lang] }}" title="{{ site.t.fullscreen[site.active_lang] }}" href="{{ include.url }}embed/{% if include.params %}{{ include.params }}{% endif %}"><i class="fa fa-fw fa-arrows-alt"></i></a>
</p>

117 changes: 53 additions & 64 deletions _includes/visualizations/country_comparison.html
@@ -1,67 +1,56 @@
<div class="jumbotron">
<div ng-app="CountryComparisonApp" ng-controller="CompareCountryCtrl">

<div ng-app="CountryComparisonApp" ng-controller="CompareCountryCtrl">

<div class="row">
<div id="legend" style="text-align: right">
<div ng-repeat="c in categories">
[[c]]
<div style="display: inline-block;
width:10px;
height: 10px;
margin: 1px;
background-color: [[color($index+1)]]">
</div>

</div>
</div>
</div>

<div class="row">
<div class="col-md-12">
<br>
<div class="highlight-txt gray-background" id="datasource">
<strong>{{ site.t.noselectedindicator[site.active_lang] }}</strong><br>
{{ site.t.empty_compare_text[site.active_lang] }}
</div>
<compare countries="countries" binding="country1" indicator="indicator"></compare>
<compare countries="countries" binding="country2" indicator="indicator"></compare>
<compare countries="countries" binding="country3" indicator="indicator"></compare>
</div>
</div>

<script type="text/ng-template" id="compare.html">

<div class="row">
<div class="col-md-12">
<div style="text-align: left">
<select ng-model="binding.name" ng-change="change()">
<option ng-repeat="c in countries"
ng-selected="c.name == binding.name"
value="[[c.name]]">[[c.name]]
</option>
</select>
</div>
<div>
<compare-viz name="binding.name" indicator="indicator">
</compare-viz>
</div>
</div>
</div>
</script>

<script type="text/ng-template" id="compare_viz.html">
</script>

<a class="anchor" name="Laendervergleich"></a>

<div class="row">
<div class="col-md-12 col-md-offset-0">
<p>
{{ site.t.countrycompintrotext[site.active_lang] }}
</p>
</div>
</div>

<div class="row">
<div id="legend" style="text-align: right">
<div ng-repeat="c in categories">
[[c]]
<div style="display: inline-block;
width:10px;
height: 10px;
margin: 1px;
background-color: [[color($index+1)]]">
</div>

</div>
</div>
</div>

<div class="row">
<div class="col-md-12">
<br>
<div class="highlight-txt gray-background" id="datasource">
<strong>{{ site.t.noselectedindicator[site.active_lang] }}</strong><br>
{{ site.t.empty_compare_text[site.active_lang] }}
</div>
<compare countries="countries" binding="country1" indicator="indicator"></compare>
<compare countries="countries" binding="country2" indicator="indicator"></compare>
<compare countries="countries" binding="country3" indicator="indicator"></compare>
</div>
</div>

<script type="text/ng-template" id="compare.html">

<div class="row">
<div class="col-md-12">
<div style="text-align: left">
<select ng-model="binding.name" ng-change="change()">
<option ng-repeat="c in countries"
ng-selected="c.name == binding.name"
value="[[c.name]]">[[c.name]]
</option>
</select>
</div>
<div>
<compare-viz name="binding.name" indicator="indicator">
</compare-viz>
</div>
</div>
</div>
</script>

<script type="text/ng-template" id="compare_viz.html">
</script>

</div>
</div>

50 changes: 26 additions & 24 deletions _includes/visualizations/indicator.html
@@ -1,29 +1,31 @@
<div class="jumbotron">
<div ng-app="SingleIndicatorVizApp" ng-controller="SingleIndicatorCtrl">
<div class="row">
<div>
<a class="anchor" name="Einzelindikatoren"></a>
<div class="row">
<div class="col-md-9">
<div class="indicator-selector">
<form class="form-horizontal">
<div class="form-group">
<label class="control-label col-md-3">{{ site.t.selectindicator[site.active_lang] }}</label>
<div class="col-md-9">
<select ng-model="selIndi.name" ng-change="change()" class="form-control">
<option ng-repeat="i in indicators" value="[[i.name]]">[[i.displayName]]</option>
</select>
</div>
<div ng-app="SingleIndicatorVizApp" ng-controller="SingleIndicatorCtrl">
<div class="row">
<div>
<a class="anchor" name="Einzelindikatoren"></a>
<div class="row">
<div class="col-md-{% if include.page == 'einzelindikatoren_embed' %}12{% else %}9{% endif %}">
<div class="indicator-selector">
<form class="form-horizontal">
<div class="form-group">
{{ include.tester }}
<label class="control-label col-md-3">{{ site.t.selectindicator[site.active_lang] }}</label>
<div class="col-md-9">
<select ng-model="selIndi.name" ng-change="change()" class="form-control">
<option ng-repeat="i in indicators" value="[[i.name]]">[[i.displayName]]</option>
</select>
</div>
</form>
<p class="lead"><span style="font-weight: bold;" ng-bind="indicator.int_name.{{ site.active_lang }}"></span>: <span ng-bind="indicator.short_indicator_description.{{ site.active_lang }}"></span></p>
</div>

<div id="highchartsPane" style="margin-bottom:30px; margin-top:30px; width:100%; height:550px;"></div>

<p ng-bind="indicator.long_indicator_description.{{ site.active_lang }}.text"></p>
</div>
</form>
<p class="lead"><span style="font-weight: bold;" ng-bind="indicator.int_name.{{ site.active_lang }}"></span>: <span ng-bind="indicator.short_indicator_description.{{ site.active_lang }}"></span></p>
</div>

<div id="highchartsPane" style="margin-bottom:30px; margin-top:30px; width:100%; height:550px;"></div>

<p ng-bind="indicator.long_indicator_description.{{ site.active_lang }}.text"></p>
</div>
{% if include.page != 'einzelindikatoren_embed' %}
<div class="col-md-3">
{% include snippets/embed.html url=page.url align='left' break=true %}
<h3 style="text-align: left;">{{ site.t.datasponsor[site.active_lang] }}</h3>
<div style="text-align: center;">
<div ng-if="!indicator.sponsor" style="position: relative; height: 250px; width: 250px; background: #003a55; border-radius: 20px;">
Expand Down Expand Up @@ -109,7 +111,7 @@ <h3 style="text-align: left;">Details</h3>
<h3 style="text-align: left;">{{ site.t.datadownload[site.active_lang] }}:</h3>
<div><a target="_self" href="/datastatic/datasets/online/[[indicator.filename]].csv">CSV</a> | <a target="_self" href="/datastatic/datasets/online/[[indicator.filename]].ods">ODS</a> | <a target="_self" href="/datastatic/datasets/online/[[indicator.filename]].xlsx">XLSX</a> | <a href="https://raw.githubusercontent.com/okfde/2030-watch.de/gh-pages/_data/datasets/online/[[indicator.filename]].json">JSON</a></div>
</div>
</div>
{% endif %}
</div>
</div>
</div>
Expand Down
8 changes: 0 additions & 8 deletions _includes/visualizations/main_visualization.html
@@ -1,14 +1,6 @@
<a class="anchor" name="Hauptgrafik"></a>

<div class="" ng-app="MainVizApp" ng-controller="MonitoringGermanyCtrl">
<div class="row">
<div class="col-md-12">
<h5 class="text-center">{{ site.t.germanysimplementation[site.active_lang] }} </h5>
<p>
{{ site.t.longmainviztext[site.active_lang] }}
</p>
</div>
</div>
<div class="row background-alternative">
<div>

Expand Down
9 changes: 9 additions & 0 deletions _layouts/embeds.html
@@ -0,0 +1,9 @@
<!DOCTYPE html>
<html>
{% include head.html %}
<body id="page-top" class="index">
{{ content }}

{% include js.html %}
</body>
</html>
4 changes: 2 additions & 2 deletions _layouts/post.html
Expand Up @@ -25,9 +25,9 @@ <h1>{{ page.title }}</h1>
<row>
<div class="share-post">
{{ site.t.shareblog[site.active_lang] }}
<a href="https://twitter.com/intent/tweet?text={{page.title}}" rel="nofollow" target="_blank" title="{{ site.t.shareblog[site.active_lang] }} Twitter"><i class="fa fa-twitter"></i></a>
<a href="https://twitter.com/intent/tweet?text={{page.title}}%20-%20{{ site.url }}{{ page.url }}&f=f" rel="nofollow" target="_blank" title="{{ site.t.shareblog[site.active_lang] }} Twitter"><i class="fa fa-twitter"></i></a>
<a href="https://facebook.com/sharer.php?u={{site.url}}{{page.url}}" rel="nofollow" target="_blank" title="{{ site.t.shareblog[site.active_lang] }} Facebook"><i class="fa fa-facebook"></i></a>
<a href="https://plus.google.com/share?url=https://okfn.de/blog/2016/04/stellenausschreibung-dS/" rel="nofollow" target="_blank" title="{{ site.t.shareblog[site.active_lang] }} Google+"><i class="fa fa-google-plus"></i></a>
<a href="https://plus.google.com/share?url={{ site.url }}{{ page.url }}" rel="nofollow" target="_blank" title="{{ site.t.shareblog[site.active_lang] }} Google+"><i class="fa fa-google-plus"></i></a>
</div>
</row>
</div>
Expand Down
22 changes: 22 additions & 0 deletions monitoring/einzelindikatoren/embed.html
@@ -0,0 +1,22 @@
---
layout: embeds
slug: monitoring
page: einzelindikatoren_embed
js:
- frameworks/angular.min
- frameworks/d3.min
- frameworks/d3.tip
- frameworks/underscore
- frameworks/jquery.min
- frameworks/typeahead
- jquery.dynatable
- database
- singleIndicators
- tipsy
- indicatorUtils
---
<section>
<div class="container big-container">
{% include visualizations/indicator.html page=page.page %}
</div>
</section>
19 changes: 19 additions & 0 deletions monitoring/embed.html
@@ -0,0 +1,19 @@
---
layout: embeds
slug: monitoring
page: embed
js:
- frameworks/angular.min
- frameworks/underscore
- indicatorUtils
- main_visualisation
---
<section>
<div class="container big-container">
<div class="row">
<div>
{% include visualizations/main_visualization.html %}
</div>
</div>
</div>
</section>
10 changes: 10 additions & 0 deletions monitoring/index.html
@@ -1,6 +1,7 @@
---
layout: default
slug: monitoring
page: monitoring
js:
- frameworks/angular.min
- frameworks/underscore
Expand All @@ -20,6 +21,15 @@ <h2>Monitoring</h2>
<div class="container big-container">
<div class="row">
<div>
<div class="row">
<div class="col-md-12">
<h5 class="text-center">{{ site.t.germanysimplementation[site.active_lang] }} </h5>
<p>
{{ site.t.longmainviztext[site.active_lang] }}
</p>
{% include snippets/embed.html url=page.url %}
</div>
</div>
{% include visualizations/main_visualization.html %}
</div>
</div>
Expand Down

0 comments on commit 48fc885

Please sign in to comment.