Skip to content

Commit 7bb7c49

Browse files
embed page nearly ready, embed options work
1 parent 0fba476 commit 7bb7c49

File tree

5 files changed

+148
-30
lines changed

5 files changed

+148
-30
lines changed

css/main.css

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ html, body {
3030
z-index: 100;
3131
}
3232

33+
#mapscreen {
34+
float: right;
35+
}
36+
3337
#map img {
3438
max-width: none;
3539
}
@@ -101,6 +105,9 @@ header > div {
101105
height: 100%;
102106
width: 100%;
103107
}
108+
#main {
109+
float: left;
110+
}
104111

105112
.nav {
106113
list-style: none outside none;
@@ -360,6 +367,9 @@ header > div {
360367
background: #fff;
361368
position: relative;
362369
}
370+
#telemetry_graph .holder {
371+
border-left: 1px solid #ddd;
372+
}
363373
#telemetry_graph .graph_label {
364374
position: absolute;
365375
top: -26px;
@@ -376,15 +386,13 @@ header > div {
376386
cursor: pointer;
377387
}
378388
#map {
379-
float: right;
380389
height: 245px;
381390
width: 280px;
382391
}
383392
#main {
384393
float: left;
385394
height: 245px;
386395
width: 199px;
387-
border-right: 1px solid #ddd;
388396
overflow: hidden;
389397
}
390398
#main .data {

embed-preview.html

Lines changed: 85 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -63,17 +63,86 @@
6363

6464
var updateCode = function() {
6565
var prefix = window.location.href.replace("embed-preview.html","");
66+
var code = $("#iframe-box").html().trim().replace("index.html?",prefix+"index.html?");
6667

67-
$("textarea").html($("#iframe-box").html().trim().replace("index.html?",prefix+"index.html?"));
68+
var params = "";
69+
70+
params += "&hidelist=" + ($("#opt_list").prop("checked") ? 0 : 1);
71+
params += "&hidegraph=" + ($("#opt_graph").prop("checked") ? 0 : 1);
72+
params += "&expandgraph=" + ($("#opt_graph_open").prop("checked") ? 1 : 0);
73+
74+
console.log(params);
75+
76+
code = code.replace("&preview", params);
77+
78+
$("textarea").html(code);
6879
}
6980

7081

7182
$(window).ready(function() {
72-
$("#opt_border,#opt_corners").prop("checked",true);
83+
// init/reset values (incase browsers try to remember any)
84+
$("#opt_border,#opt_corners,#opt_list,#opt_graph").prop("checked",true);
85+
$("#opt_graph_open").prop("checked", false);
86+
7387
$("#opt_w,#opt_h").val(400);
7488

7589
// preview update methods
7690

91+
// vehicle list
92+
$("#opt_list").on('change', function() {
93+
var elm = $("#opt_list");
94+
var p = $("iframe").contents()[0].defaultView;
95+
96+
if(elm.prop("checked")) {
97+
p.embed.vlist = true;
98+
elm.prop("checked", true);
99+
} else {
100+
p.embed.vlist = false;
101+
elm.prop("checked", false);
102+
}
103+
104+
p.checkSize();
105+
updateCode();
106+
});
107+
108+
// telemetry graph
109+
$("#opt_graph").on('change', function() {
110+
var elm = $("#opt_graph");
111+
var p = $($("iframe").contents()[0]);
112+
var box = p.find("#telemetry_graph");
113+
114+
if(elm.prop("checked")) {
115+
box.show();
116+
if($("#opt_graph_open").prop("checked")) p.find("#telemetry_graph .graph_label").click();
117+
elm.prop("checked", true);
118+
} else {
119+
if(box.find(".graph_label").hasClass("active")) p.find("#telemetry_graph .graph_label").click();
120+
box.hide();
121+
elm.prop("checked", false);
122+
}
123+
124+
updateCode();
125+
});
126+
127+
$("#opt_graph_open").on('change', function() {
128+
if(!$("#opt_graph").prop('checked')) return;
129+
130+
var elm = $("#opt_graph_open");
131+
var p = $($("iframe").contents()[0]);
132+
var box = p.find("#telemetry_graph");
133+
134+
if(elm.prop("checked")) {
135+
if(!box.find(".graph_label").hasClass("active")) p.find("#telemetry_graph .graph_label").click();
136+
elm.prop("checked", true);
137+
} else {
138+
if(box.find(".graph_label").hasClass("active")) p.find("#telemetry_graph .graph_label").click();
139+
elm.prop("checked", false);
140+
}
141+
142+
updateCode();
143+
});
144+
145+
// style options
77146
$("#opt_border").on('change', function() {
78147
var elm = $("#opt_border");
79148

@@ -91,7 +160,7 @@
91160
var elm = $("#opt_corners");
92161

93162
if(elm.prop("checked")) {
94-
$("iframe").css({"border-radius":"25px"});
163+
$("iframe").css({"border-radius":"20px"});
95164
elm.prop("checked", true);
96165
} else {
97166
$("iframe").css({"border-radius":0});
@@ -101,16 +170,19 @@
101170
updateCode();
102171
});
103172

173+
// update size as we type
104174
$("#opt_h").on('keyup', function() {
105175
var elm = $(this);
106-
$("iframe").prop("height", ""+elm.val()+"px");
176+
var v = elm.val();
177+
178+
$("iframe").prop("height", v);
107179
updateCode();
108180
});
109181
$("#opt_w").on('keyup', function() {
110182
var elm = $(this);
111183
var v = elm.val();
112184

113-
$("iframe").prop("width", ""+v+"px");
185+
$("iframe").prop("width", v);
114186
$("#iframe-box").css({"margin-left":"-"+(v/2)});
115187

116188
updateCode();
@@ -132,8 +204,12 @@
132204
<h1>Embed mobile tracker on your page</h1>
133205
<h2>1. Options</h1>
134206
<fieldset>
207+
<input type="checkbox" value="1" id="opt_list" />
208+
<label for="opt_list">Enable vehicle list</label>
209+
<br />
135210
<input type="checkbox" value="1" id="opt_graph" />
136211
<label for="opt_graph">Enable telemetry graph</label>
212+
<br />
137213
<input type="checkbox" value="1" id="opt_graph_open" />
138214
<label for="opt_graph_open">Start telemetry graph expanded</label>
139215
</fieldset>
@@ -149,12 +225,12 @@ <h2>2. Style</h1>
149225
<input type="checkbox" value="1" id="opt_corners" checked="checked" />
150226
<label for="opt_corners">Rounded corners</label>
151227
</fieldset>
152-
<h2>3. Code</h1>
153-
<textarea id="embed-code" readonly="readonly"></textarea>
228+
<h2>3. HTML code</h1>
229+
<textarea id="embed-code" autocomplete="off" readonly="readonly"></textarea>
154230

155-
<h2>4. Preview</h1>
231+
<h2>4. Live preview</h1>
156232
<div id="iframe-box">
157-
<iframe width="400px" height="400px" src="index.html?embed=1&preview" style="border:1px solid #00A3D3;border-radius:25px;"></iframe>
233+
<iframe width="400px" height="400px" src="index.html?embed=1&preview" style="border:1px solid #00A3D3;border-radius:20px;"></iframe>
158234
</div>
159235
</div>
160236
</body>

index.html

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@
1515
<link rel="apple-touch-icon" sizes="144x144" href="img/apple-touch-icon.png" />
1616
<link rel="fluid-icon" href="img/fluidicon.png" title="Mobile Tracker" />
1717
<link rel="icon" type="image/x-icon" href="favicon.ico" />
18-
<!--
1918
<link rel="stylesheet" href="css/base.css"/>
2019
<link rel="stylesheet" href="css/skeleton.css"/>
2120
<link rel="stylesheet" href="css/layout.css"/>
2221
<link rel="stylesheet" href="css/habitat-font.css"/>
2322
<link rel="stylesheet" href="css/main.css"/>
24-
-->
23+
<!--
2524
<link rel="stylesheet" href="css/mobile.css"/>
25+
-->
2626
</head>
2727
<body>
2828

@@ -160,7 +160,13 @@ <h2>Chase car mode</h2>
160160
</div>
161161
</div>
162162
</div>
163-
<div id="map" style="dispaly: none" class="main_screen"></div>
163+
<div id="mapscreen">
164+
<div id="map" style="dispaly: none" class="main_screen"></div>
165+
<div id="telemetry_graph" style="display: none">
166+
<div class="graph_label">Telemetry Graph</div>
167+
<div class="holder" style="height: 200px;width: 50px"></div>
168+
</div>
169+
</div>
164170
<div id="main" style="dispaly: none" class="main_screen">
165171
<div class="scrollwrapper">
166172
<div class="portrait">
@@ -171,20 +177,16 @@ <h2>Chase car mode</h2>
171177
</div>
172178
</div>
173179
</div>
174-
<div id="telemetry_graph" style="display: none">
175-
<div class="graph_label">Telemetry Graph</div>
176-
<div class="holder" style="height: 200px;width: 50px"></div>
177-
</div>
178180
<script src="http://maps.google.com/maps/api/js?v=3.10&sensor=false&language=en_us&key=AIzaSyCOqkcNey4CCyG4X0X5qxHAhCgD8g5DwXg" type="text/javascript"></script>
179-
<script type="text/javascript" language="javascript" src="js/mobile.js"></script>
180181
<!--
182+
<script type="text/javascript" language="javascript" src="js/mobile.js"></script>
183+
-->
181184
<script type="text/javascript" language="javascript" src="js/jquery-1.8.3-min.js"></script>
182185
<script type="text/javascript" language="javascript" src="js/chasecar.lib.js"></script>
183186
<script type="text/javascript" language="javascript" src="js/iscroll.js"></script>
184187
<script type="text/javascript" language="javascript" src="js/nite-overlay.js"></script>
185188
<script type="text/javascript" language="javascript" src="js/tracker.js"></script>
186189
<script type="text/javascript" language="javascript" src="js/app.js"></script>
187-
-->
188190
<script type="text/javascript">
189191

190192
var _gaq = _gaq || [];

js/app.js

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,28 @@ if(
1111
|| navigator.userAgent.match(/BlackBerry/i)
1212
) is_mobile = true;
1313

14+
// embed detection
15+
16+
var embed = {
17+
enabled: false,
18+
vlist: true,
19+
graph: true,
20+
graph_exapnded: false,
21+
}
22+
var params = window.location.search.substring(1).split('&');
23+
24+
for(var idx in params) {
25+
var line = params[idx].split('=');
26+
if(line.length < 2) continue;
27+
28+
switch(line[0]) {
29+
case "embed": if(line[1] == "1") embed.enabled = true; break;
30+
case "hidelist": if(line[1] == "1") embed.vlist = false; break;
31+
case "hidegraph": if(line[1] == "1") embed.graph = false; break;
32+
case "expandgraph": if(line[1] == "1") embed.graph_expanded = true; break;
33+
}
34+
}
35+
1436
$.ajaxSetup({ cache: true });
1537

1638
// handle cachin events and display a loading bar
@@ -36,9 +58,10 @@ function trackerInit() {
3658
$('header,#main,#map').show(); // interface elements
3759

3860
if(!is_mobile) {
39-
$.getScript("js/ssdv.js");
61+
if(!embed.enabled) $.getScript("js/ssdv.js");
62+
4063
$.getScript("js/init_plot.js", function() { checkSize(); if(!map) load(); });
41-
$('#telemetry_graph').addClass("main_screen").attr('style','');
64+
if(embed.graph) $('#telemetry_graph').addClass("main_screen").attr('style','');
4265
return;
4366
}
4467
checkSize();
@@ -74,7 +97,10 @@ function checkSize() {
7497
h = $(window).height();
7598
h = (h < 300) ? 300 : h; // absolute minimum 320px minus 20px for the iphone bar
7699
hh = $('header').height();
77-
sw = $('#main').width();
100+
101+
$("#mapscreen").height(h-hh-5);
102+
103+
sw = (embed.vlist) ? 199 : 0;
78104

79105
$('.container').width(w-20);
80106

@@ -86,13 +112,17 @@ function checkSize() {
86112
$('#map').height(h-hh-5);
87113
}
88114
$('body,#loading').height(h);
89-
$('#map,#telemetry_graph,#telemetry_graph .holder').width(w-sw-1);
115+
$('#mapscreen,#map,#telemetry_graph,#telemetry_graph .holder').width(w-sw);
116+
$('#main').width(sw);
90117
} else { // portrait mode
91118
if(h < 420) h = 420;
119+
var mh = (embed.vlist) ? 180 : 0;
120+
92121
$('body,#loading').height(h);
93-
$('#map').height(h-hh-5-180);
94-
$('#map').width(w);
95-
$('#main').height(180); // 180px is just enough to hold one expanded vehicle
122+
$('#map,#mapscreen').height(h-hh-5-mh);
123+
$('#map,#mapscreen').width(w);
124+
$('#main').height(mh); // 180px is just enough to hold one expanded vehicle
125+
$('#main').width(w);
96126
}
97127

98128
// this should hide the address bar on mobile phones, when possible
@@ -227,6 +257,8 @@ $(window).ready(function() {
227257
});
228258
});
229259

260+
if(embed.graph_expanded) $('#telemetry_graph .graph_label').click();
261+
230262
// confirm dialog when launchnig a native map app with coordinates
231263
$('#main').on('click', '#launch_mapapp', function() {
232264
return confirm("Launch your maps app?");
@@ -426,7 +458,7 @@ $(window).ready(function() {
426458
// The position is displayed in top right corner of the screen
427459
// This should be very handly for in the field tracking
428460
//setTimeout(function() {updateCurrentPosition(50.27533, 3.335166);}, 5000);
429-
if(navigator.geolocation && is_mobile) {
461+
if(navigator.geolocation && is_mobile && !embed.enabled) {
430462
// if we have geolocation services, show the locate me button
431463
// the button pants the map to the user current location
432464
$("#locate-me,.chasecar").show();

js/tracker.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@ function load() {
7979
rotateControl: false,
8080
panControl: false,
8181
scaleControl: false,
82-
zoomContro: true,
82+
zoomControl: true,
8383
zoomControlOptions: {
84-
style: google.maps.ZoomControlStyle.LARGE
84+
style: google.maps.ZoomControlStyle.DEFAULT
8585
},
8686
scrollwheel: true
8787
});

0 commit comments

Comments
 (0)