diff options
author | Jochen Topf <jochen@topf.org> | 2015-03-06 14:31:01 +0100 |
---|---|---|
committer | Jochen Topf <jochen@topf.org> | 2015-03-06 14:31:01 +0100 |
commit | 0e97f9b3773585d8fb76659dc710726a888c4851 (patch) | |
tree | 3a661df17daeb5d5558f7d41530693e4e6631c53 | |
parent | 75a1deefaea0d94c2ef024bf272c6076447fa444 (diff) | |
download | taginfo-0e97f9b3773585d8fb76659dc710726a888c4851.tar taginfo-0e97f9b3773585d8fb76659dc710726a888c4851.tar.gz |
Make JOSM button work in https mode.
The JOSM button now contacts JOSM on http://localhost:8111/ if the taginfo page
is using http and https://localhost:8112/ if it is using https. This way we
don't have a problem with mixed content.
Also the way JOSM is called now works without the iframes which were a hack
around the (then) missing CORS ability.
-rw-r--r-- | web/public/js/taginfo.js | 20 | ||||
-rw-r--r-- | web/views/key.erb | 1 | ||||
-rw-r--r-- | web/views/relation.erb | 1 | ||||
-rw-r--r-- | web/views/tag.erb | 1 | ||||
-rw-r--r-- | web/viewsjs/key.js.erb | 6 | ||||
-rw-r--r-- | web/viewsjs/relation.js.erb | 6 | ||||
-rw-r--r-- | web/viewsjs/tag.js.erb | 5 |
7 files changed, 23 insertions, 17 deletions
diff --git a/web/public/js/taginfo.js b/web/public/js/taginfo.js index 92e7f70..21a8563 100644 --- a/web/public/js/taginfo.js +++ b/web/public/js/taginfo.js @@ -743,6 +743,26 @@ function comparison_list_change(key, value) { /* ============================ */ +function activate_josm_button() { + if (window.location.protocol == "https:") { + var url = jQuery('#josm_button')[0].href.replace('http://localhost:8111/', 'https://localhost:8112/'); + jQuery('#josm_button')[0].href = url; + } + + jQuery('#josm_button').bind('click', function() { + var url = jQuery('#josm_button')[0].href; + jQuery.get(url, function(data) { + if (data.substring(0, 2) != 'OK') { + alert("Problem contacting JOSM. Is it running? Is remote control activated?"); + console.log("Answer from JOSM: [" + data + "]"); + } + }); + return false; + }); +} + +/* ============================ */ + function project_tag_desc(description, icon, url) { var out = ''; if (icon) { diff --git a/web/views/key.erb b/web/views/key.erb index ceb9928..42434d5 100644 --- a/web/views/key.erb +++ b/web/views/key.erb @@ -117,7 +117,6 @@ </table> </div> </div> -<iframe id="josmiframe" name="josmiframe"></iframe> <% javascript do JS.raw(<<"JAVASCRIPT") function redraw_chart() { diff --git a/web/views/relation.erb b/web/views/relation.erb index caca294..cbda1be 100644 --- a/web/views/relation.erb +++ b/web/views/relation.erb @@ -64,7 +64,6 @@ </table> </div> </div> -<iframe id="josmiframe" name="josmiframe"></iframe> <% javascript do JS.raw(<<"JAVASCRIPT") function page_init2() { diff --git a/web/views/tag.erb b/web/views/tag.erb index dda4594..0e87439 100644 --- a/web/views/tag.erb +++ b/web/views/tag.erb @@ -104,7 +104,6 @@ </table> </div> </div> -<iframe id="josmiframe" name="josmiframe"></iframe> <% javascript do JS.raw(<<"JAVASCRIPT") function page_init2() { diff --git a/web/viewsjs/key.js.erb b/web/viewsjs/key.js.erb index 8f19ab2..e9886f1 100644 --- a/web/viewsjs/key.js.erb +++ b/web/viewsjs/key.js.erb @@ -218,11 +218,7 @@ function create_chart(params) { function page_init() { up = function() { window.location = '/keys'; } - - jQuery('#josm_button').bind('click', function() { - jQuery('#josmiframe')[0].src = jQuery('#josm_button')[0].href; - return false; - }); + activate_josm_button(); jQuery('#filter').bind('change', function() { var value = this.value; diff --git a/web/viewsjs/relation.js.erb b/web/viewsjs/relation.js.erb index ad34fc3..2a23d57 100644 --- a/web/viewsjs/relation.js.erb +++ b/web/viewsjs/relation.js.erb @@ -259,11 +259,7 @@ function create_role_chart(data) { } function page_init() { - jQuery('#josm_button').bind('click', function() { - jQuery('#josmiframe')[0].src = jQuery('#josm_button')[0].href; - return false; - }); - up = function() { window.location = '/relations'; }; + activate_josm_button(); page_init2(); } diff --git a/web/viewsjs/tag.js.erb b/web/viewsjs/tag.js.erb index 4cf5908..ebefcc1 100644 --- a/web/viewsjs/tag.js.erb +++ b/web/viewsjs/tag.js.erb @@ -134,10 +134,7 @@ var create_flexigrid_for = { }; function page_init() { - jQuery('#josm_button').bind('click', function() { - jQuery('#josmiframe')[0].src = jQuery('#josm_button')[0].href; - return false; - }); + activate_josm_button(); jQuery('#filter').bind('change', function() { var value = this.value; |