diff --git a/index.html b/index.html index e04e42f..101e028 100644 --- a/index.html +++ b/index.html @@ -15,6 +15,7 @@ qtip: '/js/jquery.qtip.min.js' // Colors const cOrange = '#F2A900'; const cGray = '#333'; + const cDarkGray = '#222'; const cDarkOrange = '#735000'; const cDarkWhite = '#BBB'; @@ -42,23 +43,6 @@ qtip: '/js/jquery.qtip.min.js' } }); - map.addLayer('countries', { - title: function (d) { return d.name }, - styles: { - stroke: '#222', - fill: cGray - }, - mouseenter: function (d, path) { - path.attr('fill', Math.random() < 0.5 ? cDarkOrange : cDarkWhite ); - }, - mouseleave: function (d, path) { - path.animate({ fill: pathColors[d.iso] }, 1000); - }, - click: function (d, path) { - console.log(d.iso); - } - }); - $.ajax({ url: 'data/countries.json', dataType: 'json', @@ -68,11 +52,33 @@ qtip: '/js/jquery.qtip.min.js' var hasLink = c.link ? true : false; return hasLink; }); + var orangeCountryCodes = orangeCountries.map(function(c) { + return c.alpha3; + }); + + map.addLayer('countries', { + title: function (d) { return d.name }, + styles: { + stroke: cDarkGray, + fill: cGray + }, + mouseenter: function (d, path) { + path.attr('fill', Math.random() < 0.5 ? cDarkOrange : cDarkWhite ); + }, + mouseleave: function (d, path) { + path.animate({ fill: pathColors[d.iso] }, 1000); + }, + click: function (d, path) { + let country = countries.find(c => c.alpha3 == d.iso); + if (country.link) { + window.open(country.link); + } else { + window.open('/add'); + } + } + }); map.getLayer('countries').style('fill', function (data) { - var orangeCountryCodes = orangeCountries.map(function(c) { - return c.alpha3; - }); var isOrangeCountry = orangeCountryCodes.includes(data.iso) pathColors[data.iso] = isOrangeCountry ? cOrange : cGray; return isOrangeCountry ? cOrange : cGray;