From 5ea083e6c32d5efb808a47024fa936239bd09a81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20B=C3=B6sch-Plepelits?= Date: Mon, 18 Sep 2017 20:54:26 +0200 Subject: [PATCH] Image: parse tag 'image' --- lang/de.json | 1 + lang/en.json | 1 + src/image.js | 45 +++++++++++++++++++++++++++++++++++++++++++++ src/index.js | 1 + style.css | 7 +++++++ 5 files changed, 55 insertions(+) create mode 100644 src/image.js diff --git a/lang/de.json b/lang/de.json index 5d7ca9c1..90c5074f 100644 --- a/lang/de.json +++ b/lang/de.json @@ -6,6 +6,7 @@ "!=1": "Fehler" }, "facilities": "Einrichtungen", + "images": "Bilder", "main:options": "Optionen", "more": "mehr", "open": "geƶffnet", diff --git a/lang/en.json b/lang/en.json index c8e7c5cb..967e3687 100644 --- a/lang/en.json +++ b/lang/en.json @@ -6,6 +6,7 @@ "!=1": "Errors" }, "facilities": "Facilities", + "images": "Images", "main:options": "Options", "more": "more", "open": "open", diff --git a/src/image.js b/src/image.js new file mode 100644 index 00000000..2daff4ff --- /dev/null +++ b/src/image.js @@ -0,0 +1,45 @@ +function showImage (url, dom) { + var div = document.createElement('div') + div.innerHTML = '' + + dom.appendChild(div) +} + +function showWikimediaImage (value, dom) { + var url = 'https://commons.wikimedia.org/w/thumb.php?f=' + encodeURIComponent(value) + '&w=' + 235 //imgSize + + showImage(url, dom) +} + +register_hook('show-details', function (data, category, dom, callback) { + var found = 0 + var div = document.createElement('div') + div.className = 'images' + + if (data.object.tags.image) { + var img = data.object.tags.image + + if (img.indexOf('File:') === 0) { + showWikimediaImage(img.substr(5), div) + found++ + } else if (img.indexOf('http://commons.wikimedia.org/wiki/File:') === 0) { + showWikimediaImage(decodeURIComponent(img.substr(39)), div) + found++ + } else if (img.indexOf('https://commons.wikimedia.org/wiki/File:') === 0) { + showWikimediaImage(decodeURIComponent(img.substr(40)), div) + found++ + } else { + showImage(img, div) + found++ + } + } + + if (found) { + h = document.createElement('h3') + h.appendChild(document.createTextNode(lang('images'))) + dom.appendChild(h) + dom.appendChild(div) + } + + callback(null) +}) diff --git a/src/index.js b/src/index.js index 5963a2d5..9eea6ab4 100644 --- a/src/index.js +++ b/src/index.js @@ -27,6 +27,7 @@ require('./mapLayers') require('./twigFunctions') require('./categories') require('./wikipedia') +require('./image') window.onload = function () { initState = config.defaultView diff --git a/style.css b/style.css index 252cc339..1902ce50 100644 --- a/style.css +++ b/style.css @@ -519,3 +519,10 @@ a.showDetails { .wikipedia .reference { display: none; } +#contentDetails .images { + text-align: center; +} +#contentDetails .images img { + max-width: 100%; + max-height: auto; +}