]> ToastFreeware Gitweb - philipp/winterrodeln/mediawiki_extensions/wrmap.git/blobdiff - wrmap.js
Increased the version number to 3.2.0.
[philipp/winterrodeln/mediawiki_extensions/wrmap.git] / wrmap.js
index aca6cc0c2d6880178bf083dae3e9e0627133cf36..51ea34d17dabb0bb284cc60942509aa5eb1d2200 100644 (file)
--- a/wrmap.js
+++ b/wrmap.js
@@ -228,29 +228,46 @@ function init_wrmap(i, jq_map) {
                autoActivate: true,
                toggle: true,
                onSelect: function(feature) {
+                       var attr = feature.attributes;
                        var popup_div = createElement('div');
-                       if (feature.attributes.type == 'sledrun') {
-                               popup_div.append(createElement('h2').text(feature.attributes.name));
-                               var ul = appendElement(popup_div, 'ul');
-                               ul.append(createElement('li').append(createElement('a', {'href': feature.attributes.wiki}).text('Details zur Rodelbahn')));
-                               var li = appendElement(ul, 'li').text('Rodelbahnzustand').append(createElement('br'));
-                               if (feature.attributes.condition !== undefined) {
+
+                       // name
+                       if (attr.name !== undefined && (attr.wiki !== undefined || attr.thumb_url !== undefined)) {
+                               var h2 = appendElement(popup_div, 'h2');
+                               if (attr.wiki === undefined) h2.text(attr.name);
+                               else appendElement(h2, 'a', {href: attr.wiki}).text(attr.name);
+                       }
+
+                       // sledrun information
+                       if (attr.type == 'sledrun') {
+                               var p = appendElement(popup_div, 'p').text('Rodelbahnzustand').append(createElement('br'));
+                               if (attr.condition !== undefined) {
                                        var condition_text = {1: 'Sehr gut', 2: 'Gut', 3: 'Mittelmäßig', 4: 'Schlecht', 5: 'Geht nicht'};
-                                       var year_month_day = feature.attributes.date_report.split('-');
-                                       li.append(createElement('a', {'href': feature.attributes.wiki + '#Eintr.C3.A4ge'}).text(condition_text[feature.attributes.condition]), ' ');
-                                       li.append(createElement('small').text(year_month_day[2] + '.' + year_month_day[1] + '.'), ' ');
-                                       li.append(createElement('em').append(createElement('a', {'href': feature.attributes.wiki + '#Eintragen'}).text('Neu')));
+                                       var year_month_day = attr.date_report.split('-');
+                                       p.append(createElement('a', {href: attr.wiki + '#Eintr.C3.A4ge'}).text(condition_text[attr.condition]), ' ');
+                                       p.append(createElement('small').text(year_month_day[2] + '.' + year_month_day[1] + '.'), ' ');
+                                       p.append(createElement('em').append(createElement('a', {href: attr.wiki + '#Eintragen'}).text('Neu')));
                                } else {
-                                       li.append(createElement('em').append(createElement('a', {'href': feature.attributes.wiki + '#Eintragen'}).text('Bitte eintragen')));
+                                       p.append(createElement('em').append(createElement('a', {href: attr.wiki + '#Eintragen'}).text('Bitte eintragen')));
                                }
-                       } else if (feature.attributes.wiki !== undefined) {
-                               if (feature.attributes.name != undefined) popup_div.append(createElement('h2').text(feature.attributes.name));
-                               popup_div.append(createElement('p').append(createElement('a', {'href': feature.attributes.wiki}).text('Details')));
-                       } else return;
+                       }
+
+                       // wiki link
+                       if (attr.wiki !== undefined) {
+                               var a = appendElement(appendElement(popup_div, 'p'), 'a', {href: attr.wiki});
+                               var detail_text = 'Details';
+                               if (attr.type == 'sledrun') detail_text += ' zur Rodelbahn';
+                               if (attr.type == 'gasthaus') detail_text += ' zum Gasthaus';
+                               if (attr.thumb_url === undefined) a.text(detail_text);
+                               else a.append(createElement('img', {src: attr.thumb_url, alt: detail_text, title: detail_text}));
+                       }
+
+                       // no popup if we don't have anything to say
+                       if (popup_div.children().length == 0) return;
 
                        // Open popup
                        var selectFeatureControl = this;
-                       var popup = new OpenLayers.Popup.FramedCloud('sledruninfopopup_' + feature.attributes.wiki, 
+                       var popup = new OpenLayers.Popup.FramedCloud('sledruninfopopup_' + attr.wiki,
                        feature.geometry.getBounds().getCenterLonLat(),
                        null,
                        popup_div.html(),