Skip to content
This repository was archived by the owner on May 1, 2020. It is now read-only.

Commit 899e02f

Browse files
committed
Save devices
1 parent 85d1aa4 commit 899e02f

File tree

2 files changed

+54
-12
lines changed

2 files changed

+54
-12
lines changed

lab/index.html

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,14 @@
1818
<div class="dropdown">
1919
<button class="dropdown-toggle" type="button">Platforms <span class="dropdown-caret"></span></button>
2020
<ul class="dropdown-menu">
21-
<li><input type="checkbox" id="device-iphone" name="iphone" checked><label for="device-iphone">iPhone</label></li>
22-
<li><input type="checkbox" id="device-android" name="android" checked><label for="device-android">Android</label></li>
21+
<li><input type="checkbox" id="device-iphone" name="iphone"><label for="device-iphone">iPhone</label></li>
22+
<li><input type="checkbox" id="device-android" name="android"><label for="device-android">Android</label></li>
2323
<li><input type="checkbox" id="device-windows" name="windows"><label for="device-windows">Windows</label></li>
2424
</ul>
2525
</div>
2626
</div>
2727
</div>
2828
<preview>
29-
<div class="phone" id="iphone">
30-
<div class="phone-frame">
31-
<h2><div class="phone-icon"></div> <a href="/?ionicplatform=ios" target="_blank">iOS</a></h2>
32-
<div id="iphone-frame" class="phone-frame-wrap">
33-
<div class="statusbar"></div>
34-
<iframe src="/?ionicplatform=ios&amp;ionicstatusbarpadding=true" class="frame"></iframe>
35-
</div>
36-
</div>
37-
</div>
3829
</preview>
3930
<div id="footer">
4031
<div id="footer-left">
@@ -63,6 +54,17 @@ <h2>Psssst...</h2>
6354
</div>
6455
</div>
6556
</div>
57+
<template id="iphone-frame-template">
58+
<div class="phone" id="iphone">
59+
<div class="phone-frame">
60+
<h2><div class="phone-icon"></div> <a href="/?ionicplatform=ios" target="_blank">iOS</a></h2>
61+
<div id="iphone-frame" class="phone-frame-wrap">
62+
<div class="statusbar"></div>
63+
<iframe src="/?ionicplatform=ios&amp;ionicstatusbarpadding=true" class="frame"></iframe>
64+
</div>
65+
</div>
66+
</div>
67+
</template>
6668
<template id="android-frame-template">
6769
<div class="phone" id="android">
6870
<div class="phone-frame">

lab/static/js/lab.js

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,52 @@ function bindToggles() {
3434
console.log('Device changed', device, this.checked);
3535

3636
showDevice(device, this.checked);
37+
saveLastDevices(device, this.checked);
3738
})
3839
}
3940
}
4041

4142
// Show one of the devices
4243
function showDevice(device, isShowing) {
43-
$('#' + device).style.display = isShowing ? '' : 'none';
44+
$('#device-' + device).checked = isShowing;
45+
46+
var rendered = $('#' + device);
47+
if(!rendered) {
48+
var template = $('#' + device + '-frame-template');
49+
var clone = document.importNode(template, true);
50+
$('preview').appendChild(clone.content);
51+
} else {
52+
rendered.style.display = isShowing ? '' : 'none';
53+
}
54+
}
55+
56+
function saveLastDevices(newDevice, didAdd) {
57+
var last = window.localStorage.getItem('ionic_lastdevices');
58+
if(!last && didAdd) {
59+
window.localStorage.setItem('ionic_lastdevices', newDevice);
60+
return;
61+
}
62+
var devices = last.split(',');
63+
var di = devices.indexOf(newDevice);
64+
if(di == -1 && didAdd) {
65+
window.localStorage.setItem('ionic_lastdevices', devices.join(',') + ',' + newDevice);
66+
} else if(di >= 0) {
67+
devices.splice(di, 1);
68+
window.localStorage.setItem('ionic_lastdevices', devices.join(','));
69+
}
70+
}
71+
72+
function showLastDevices() {
73+
var last = window.localStorage.getItem('ionic_lastdevices');
74+
if(!last) {
75+
showDevice('iphone', true);
76+
return;
77+
}
78+
79+
var devices = last.split(',');
80+
for(var i = 0; i < devices.length; i++) {
81+
showDevice(devices[i], true);
82+
}
4483
}
4584

4685
function setCordovaInfo(data) {
@@ -60,6 +99,7 @@ function loadCordova() {
6099
req.send(null);
61100
}
62101

102+
showLastDevices();
63103
loadCordova();
64104
bindToggles();
65105
tryShowViewPopup();

0 commit comments

Comments
 (0)