Skip to content

Commit 2f1b239

Browse files
committed
Selects layer in cookie by layer ID.
1 parent 3991e94 commit 2f1b239

File tree

2 files changed

+41
-12
lines changed

2 files changed

+41
-12
lines changed

assets/javascripts/app.js

Lines changed: 40 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -64,28 +64,21 @@ var App = (function ($, publ) {
6464
contents.layers.forEach(function(layer,idx) {
6565
var s = layer.type.split(".");
6666
var l = new ol.layer.Tile({
67-
index: idx,
67+
lid: layer.id,
6868
title: layer.name,
6969
baseLayer: true,
7070
visible: false,
7171
source: new ol[s[1]][s[2]](layer.options)
7272
});
7373
l.on("change:visible", function(e) {
7474
if (e.target.getVisible()) {
75-
document.cookie = "_redmine_gtt_basemap=" + e.target.get("index") + ";path=/";
75+
document.cookie = "_redmine_gtt_basemap=" +
76+
e.target.get("lid") + ";path=/";
7677
}
7778
});
7879
layerArr.push(l);
7980
});
80-
81-
// Decide which baselayer to show
82-
var idx = getCookie("_redmine_gtt_basemap") || 0;
83-
if (layerArr.length > idx) {
84-
layerArr[idx].setVisible(true);
85-
}
86-
else {
87-
layerArr[0].setVisible(true);
88-
}
81+
publ.setBasemap(layerArr);
8982

9083
// Layer for vector features
9184
vector = new ol.layer.Vector({
@@ -202,6 +195,42 @@ var App = (function ($, publ) {
202195
map.addControl(new ol.control.LayerPopup());
203196
};
204197

198+
/**
199+
* Decide which baselayer to show
200+
*/
201+
publ.setBasemap = function (layers) {
202+
203+
if (layers.length === 0) {
204+
console.error("There is no baselayer availaable!");
205+
return;
206+
}
207+
208+
var index = 0;
209+
var cookie = parseInt(
210+
getCookie("_redmine_gtt_basemap")
211+
);
212+
213+
if (cookie) {
214+
var lid = 0;
215+
// Check if layer ID exists in available layers
216+
layers.forEach(function(layer){
217+
if (cookie === layer.get("lid")) {
218+
lid = cookie;
219+
}
220+
});
221+
222+
// Set selected layer visible
223+
layers.forEach(function(layer,idx){
224+
if (lid === layer.get("lid")) {
225+
index = idx;
226+
}
227+
});
228+
}
229+
230+
// Set layer visible
231+
layers[index].setVisible(true);
232+
};
233+
205234
publ.getColor = function (feature) {
206235
// console.log(feature.get("tracker_id"));
207236
color = "#f80";

lib/redmine_gtt/hooks/view_layouts_base_html_head_hook.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def view_layouts_base_html_head(context={})
1212
tags << stylesheet_link_tag("ol3-ext.min.css", :plugin => "redmine_gtt", :media => "all")
1313
tags << stylesheet_link_tag("app.css", :plugin => "redmine_gtt", :media => "all")
1414

15-
tags << javascript_include_tag('ol-debug.js', :plugin => 'redmine_gtt')
15+
tags << javascript_include_tag('ol.js', :plugin => 'redmine_gtt')
1616
tags << javascript_include_tag('ol3-ext.min.js', :plugin => 'redmine_gtt')
1717
tags << javascript_include_tag('app.js', :plugin => 'redmine_gtt')
1818
return tags.join("\n")

0 commit comments

Comments
 (0)