Cleaner implementation of keys

This commit is contained in:
Petr Sloup 2016-06-29 20:17:58 +02:00
parent a9443edfc6
commit 1307b29ff9
4 changed files with 27 additions and 26 deletions

View file

@ -4,8 +4,8 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>{{name}} - TileServer GL</title> <title>{{name}} - TileServer GL</title>
{{#is_vector}} {{#is_vector}}
<link rel="stylesheet" type="text/css" href="/mapbox-gl.css{{&access_key_query}}" /> <link rel="stylesheet" type="text/css" href="/mapbox-gl.css{{&key_query}}" />
<script src="/mapbox-gl.js{{&access_key_query}}"></script> <script src="/mapbox-gl.js{{&key_query}}"></script>
<style> <style>
body {background:#000;color:#ccc;} body {background:#000;color:#ccc;}
#map {position:absolute;top:0;left:0;right:250px;bottom:0;} #map {position:absolute;top:0;left:0;right:250px;bottom:0;}
@ -16,9 +16,9 @@
</style> </style>
{{/is_vector}} {{/is_vector}}
{{^is_vector}} {{^is_vector}}
<link rel="stylesheet" type="text/css" href="/mapbox.css{{&access_key_query}}" /> <link rel="stylesheet" type="text/css" href="/mapbox.css{{&key_query}}" />
<script src="/mapbox.js{{&access_key_query}}"></script> <script src="/mapbox.js{{&key_query}}"></script>
<script src="/leaflet-hash.js{{&access_key_query}}"></script> <script src="/leaflet-hash.js{{&key_query}}"></script>
<style> <style>
body { margin:0; padding:0; } body { margin:0; padding:0; }
#map { position:absolute; top:0; bottom:0; width:100%; } #map { position:absolute; top:0; bottom:0; width:100%; }
@ -97,7 +97,7 @@
} }
}; };
xhttp.responseType = 'json'; xhttp.responseType = 'json';
xhttp.open('GET', '/data/{{id}}.json{{&access_key_query}}', true); xhttp.open('GET', '/data/{{id}}.json{{&key_query}}', true);
xhttp.send(); xhttp.send();
var propertyList = document.getElementById('propertyList'); var propertyList = document.getElementById('propertyList');
@ -116,7 +116,7 @@
<h1 style="display:none;">{{name}}</h1> <h1 style="display:none;">{{name}}</h1>
<div id='map'></div> <div id='map'></div>
<script> <script>
var map = L.mapbox.map('map', '/data/{{id}}.json{{&access_key_query}}', { zoomControl: false }); var map = L.mapbox.map('map', '/data/{{id}}.json{{&key_query}}', { zoomControl: false });
new L.Control.Zoom({ position: 'topright' }).addTo(map); new L.Control.Zoom({ position: 'topright' }).addTo(map);
setTimeout(function() { setTimeout(function() {
new L.Hash(map); new L.Hash(map);

View file

@ -3,7 +3,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>TileServerGL</title> <title>TileServerGL</title>
<link rel="stylesheet" type="text/css" href="/index.css{{&access_key_query}}" /> <link rel="stylesheet" type="text/css" href="/index.css{{&key_query}}" />
</head> </head>
<body> <body>
<section> <section>
@ -13,28 +13,28 @@
{{#each styles}} {{#each styles}}
<div class="item"> <div class="item">
{{#if thumbnail}} {{#if thumbnail}}
<img src="/styles/{{@key}}/rendered/{{thumbnail}}{{&../access_key_query}}" alt="{{name}} preview" /> <img src="/styles/{{@key}}/rendered/{{thumbnail}}{{&../key_query}}" alt="{{name}} preview" />
{{else}} {{else}}
<div class="sample-img"></div> <div class="sample-img"></div>
{{/if}} {{/if}}
<h3>{{name}}</h3> <h3>{{name}}</h3>
<p>Id: {{@key}} <p>Id: {{@key}}
{{#if serving_rendered}} {{#if serving_rendered}}
| <a href="/styles/{{@key}}/rendered.json{{&../access_key_query}}">TileJSON</a> | <a href="/styles/{{@key}}/rendered.json{{&../key_query}}">TileJSON</a>
{{#if wmts_link}} {{#if wmts_link}}
| <a href="{{&wmts_link}}">WMTS Service</a> | <a href="{{&wmts_link}}">WMTS Service</a>
{{/if}} {{/if}}
{{/if}} {{/if}}
</p> </p>
{{#if serving_data}} {{#if serving_data}}
<a class="btn" href="/styles/{{@key}}/?key={{&../access_key}}&amp;vector{{viewer_hash}}">Vector view</a> <a class="btn" href="/styles/{{@key}}/?{{&../key_query_part}}vector{{viewer_hash}}">Vector view</a>
{{/if}} {{/if}}
{{#if serving_rendered}} {{#if serving_rendered}}
<a class="btn" href="/styles/{{@key}}/?key={{&../access_key}}&amp;raster{{viewer_hash}}">Raster view</a> <a class="btn" href="/styles/{{@key}}/?{{&../key_query_part}}raster{{viewer_hash}}">Raster view</a>
{{/if}} {{/if}}
{{#if serving_data}} {{#if serving_data}}
{{#if serving_rendered}} {{#if serving_rendered}}
<a class="btn" href="/styles/{{@key}}/{{&../access_key_query}}{{viewer_hash}}">Auto view</a> <a class="btn" href="/styles/{{@key}}/{{&../key_query}}{{viewer_hash}}">Auto view</a>
{{/if}} {{/if}}
{{/if}} {{/if}}
</div> </div>
@ -45,22 +45,22 @@
{{#each data}} {{#each data}}
<div class="item"> <div class="item">
{{#if thumbnail}} {{#if thumbnail}}
<img src="/data/{{@key}}/{{thumbnail}}{{&../access_key_query}}" alt="{{name}} preview" /> <img src="/data/{{@key}}/{{thumbnail}}{{&../key_query}}" alt="{{name}} preview" />
{{else}} {{else}}
<div class="sample-img"></div> <div class="sample-img"></div>
{{/if}} {{/if}}
<h3>{{name}}</h3> <h3>{{name}}</h3>
<p>Id: {{@key}} |{{#if formatted_filesize}} {{formatted_filesize}} |{{/if}} {{#is_vector}}Vector{{/is_vector}}{{^is_vector}}Raster{{/is_vector}} data <p>Id: {{@key}} |{{#if formatted_filesize}} {{formatted_filesize}} |{{/if}} {{#is_vector}}Vector{{/is_vector}}{{^is_vector}}Raster{{/is_vector}} data
| <a href="/data/{{@key}}.json{{&../access_key_query}}">TileJSON</a> | <a href="/data/{{@key}}.json{{&../key_query}}">TileJSON</a>
{{#if wmts_link}} {{#if wmts_link}}
| <a href="{{&wmts_link}}">WMTS Service</a> | <a href="{{&wmts_link}}">WMTS Service</a>
{{/if}} {{/if}}
</p> </p>
{{#is_vector}} {{#is_vector}}
<a class="btn" href="/data/{{@key}}/{{&../access_key_query}}{{viewer_hash}}">X-Ray view</a> <a class="btn" href="/data/{{@key}}/{{&../key_query}}{{viewer_hash}}">X-Ray view</a>
{{/is_vector}} {{/is_vector}}
{{^is_vector}} {{^is_vector}}
<a class="btn" href="/data/{{@key}}/{{&../access_key_query}}{{viewer_hash}}">Raster view</a> <a class="btn" href="/data/{{@key}}/{{&../key_query}}{{viewer_hash}}">Raster view</a>
{{/is_vector}} {{/is_vector}}
</div> </div>
{{/each}} {{/each}}

View file

@ -3,11 +3,11 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>{{name}} - TileServer GL</title> <title>{{name}} - TileServer GL</title>
<link rel="stylesheet" type="text/css" href="/mapbox-gl.css{{&access_key_query}}" /> <link rel="stylesheet" type="text/css" href="/mapbox-gl.css{{&key_query}}" />
<script src="/mapbox-gl.js{{&access_key_query}}"></script> <script src="/mapbox-gl.js{{&key_query}}"></script>
<link rel="stylesheet" type="text/css" href="/mapbox.css{{&access_key_query}}" /> <link rel="stylesheet" type="text/css" href="/mapbox.css{{&key_query}}" />
<script src="/mapbox.js{{&access_key_query}}"></script> <script src="/mapbox.js{{&key_query}}"></script>
<script src="/leaflet-hash.js{{&access_key_query}}"></script> <script src="/leaflet-hash.js{{&key_query}}"></script>
<style> <style>
body { margin:0; padding:0; } body { margin:0; padding:0; }
#map { position:absolute; top:0; bottom:0; width:100%; } #map { position:absolute; top:0; bottom:0; width:100%; }
@ -25,12 +25,12 @@
if (preference == 'vector') { if (preference == 'vector') {
var map = new mapboxgl.Map({ var map = new mapboxgl.Map({
container: 'map', container: 'map',
style: '/styles/{{id}}.json{{&access_key_query}}', style: '/styles/{{id}}.json{{&key_query}}',
hash: true hash: true
}); });
map.addControl(new mapboxgl.Navigation()); map.addControl(new mapboxgl.Navigation());
} else { } else {
var map = L.mapbox.map('map', '/styles/{{id}}/rendered.json{{&access_key_query}}', { zoomControl: false }); var map = L.mapbox.map('map', '/styles/{{id}}/rendered.json{{&key_query}}', { zoomControl: false });
new L.Control.Zoom({ position: 'topright' }).addTo(map); new L.Control.Zoom({ position: 'topright' }).addTo(map);
setTimeout(function() { setTimeout(function() {
new L.Hash(map); new L.Hash(map);

View file

@ -172,8 +172,9 @@ module.exports = function(opts, callback) {
return res.status(404).send('Not found'); return res.status(404).send('Not found');
} }
} }
data['access_key'] = req.query.key; data['key_query_part'] =
data['access_key_query'] = req.query.key ? '?key=' + req.query.key : ''; req.query.key ? 'key=' + req.query.key + '&amp;' : '';
data['key_query'] = req.query.key ? '?key=' + req.query.key : '';
return res.status(200).send(compiled(data)); return res.status(200).send(compiled(data));
}); });
}); });