</p>
</div>
<div id="uploadStatus">
-<p class="dialogTitle">Track Upload to Lantea Maps Server</p>
+<p class="subTitle">Track Upload to Lantea Maps Server</p>
<p id="uploadInProgress"><img id="actionimg" src="style/loading_action.png">
Upload in progress…</p>
<p id="uploadSuccess" style="display:none;">Track upload successful!</p>
<div id="noGLwarning">
Unable to initialize WebGL. You need a browser that supports it.
</div>
+<div id="firstRunIntro">
+<p class="dialogTitle">Welcome to Lantea Maps!</p>
+<p>This web app lets you record GPS tracks of your journeys, which you can
+ upload to our backend servers and download as GPX files.</p>
+<p>You can find track details, upload, etc. in the "track" drawer that you can
+ access via the <image src="style/track.svg"> icon at the left top of the
+ window.</p>
+<p>Right underneath that icon, you find <image src="style/settings.svg">
+ settings.</p>
+<p>Both track and settings "drawers" can be closed by clicking/tapping on their
+ title line.</p>
+<p>From the track "drawer", you can also access a library of uploaded tracks,
+ their name/comment links to the GPX download of the specific track.</p>
+<p class="dialogButtonLine">
+ <button id="firstRunDialogCloseButton"
+ onclick="closeDialog();">Close</button>
+</p>
+</div>
+<div id="infoDialog">
+<p class="dialogTitle">Lantea Maps has changed!</p>
+<p>Lantea Maps has been updated with a few significant changes.</p>
+<p>Most importantly, the previously broken upload functionality for tracks has
+ been fixed and improved to use our own Lantea Maps server instead of
+ OpenStreetMaps. For using it, you need to log in with KaiRo.at via their
+ "sign in" button now in the track "drawer".</p>
+<p>From there, you can also access a library of uploaded tracks, their
+ name/comment links to the GPX download of the specific track.</p>
+<p>If you set a device name in the settings, you can even distinguish tracks
+ uploaded to the same account by different devices you're using.</p>
+<p class="dialogButtonLine">
+ <button id="firstRunDialogCloseButton"
+ onclick="closeDialog();">Close</button>
+</p>
+</div>
</div>
<div id="libraryArea" class="overlayArea fullScreenOverlay secondaryUI hidden">
var mainDB;
var gAppInitDone = false;
+var firstRun = false;
var gUIHideCountdown = 0;
var gWaitCounter = 0;
var gTrackUpdateInterval;
document.getElementById("uploadDevName").value = aValue;
}
});
+ if (firstRun) {
+ showFirstRunDialog();
+ }
+ else {
+ gPrefs.get("lastInfoShown", function(aValue) {
+ if (!aValue || !parseInt(aValue) || parseInt(aValue) < 1) {
+ showInfoDialog();
+ }
+ });
+ }
+ gPrefs.set("lastInfoShown", 1);
}
window.onresize = function() {
if (!mainDB.objectStoreNames.contains("prefs")) {
// Create a "prefs" objectStore.
var prefsStore = mainDB.createObjectStore("prefs");
+ firstRun = true;
}
if (!mainDB.objectStoreNames.contains("track")) {
// Create a "track" objectStore.
dia.classList.remove("hidden");
}
+function cancelTrackDialog() {
+ document.getElementById("trackDialogArea").classList.add("hidden");
+ document.getElementById("uploadTrackButton").disabled = false;
+}
+
function showGLWarningDialog() {
var dia = document.getElementById("dialogArea");
var areas = dia.children;
dia.classList.remove("hidden");
}
-function cancelTrackDialog() {
- document.getElementById("trackDialogArea").classList.add("hidden");
- document.getElementById("uploadTrackButton").disabled = false;
+function showFirstRunDialog() {
+ var dia = document.getElementById("dialogArea");
+ var areas = dia.children;
+ for (var i = 0; i <= areas.length - 1; i++) {
+ areas[i].style.display = "none";
+ }
+ document.getElementById("firstRunIntro").style.display = "block";
+ dia.classList.remove("hidden");
+}
+
+function closeDialog() {
+ document.getElementById("dialogArea").classList.add("hidden");
+}
+
+function showInfoDialog() {
+ var dia = document.getElementById("dialogArea");
+ var areas = dia.children;
+ for (var i = 0; i <= areas.length - 1; i++) {
+ areas[i].style.display = "none";
+ }
+ document.getElementById("infoDialog").style.display = "block";
+ dia.classList.remove("hidden");
}
var uiEvHandler = {
CACHE MANIFEST
-# 2017-10-08
+# 2017-10-22
index.html
login.html
manifest.webapp
font-size: .75em;
}
-.dialogTitle {
- margin: 0 0 .5em;
- font-weight: bold;
-}
-
.dialogHelp {
margin: .5em 0;
font-size: .8em;
color: #FFFFFF;
}
-/* dialog area - only used for loading error */
+/* dialog area - for loading error and welcome messages */
#dialogArea {
+ position: absolute;
top: 20%;
right: 0;
left: 0;
- width: 30ch;
+ width: 50ch;
max-width: 92%;
z-index: 10;
background-color: rgba(255, 255, 255, .8);
}
#dialogArea.hidden {
- top: -100%;
+ top: -1000%;
display: block;
}
+.dialogTitle {
+ margin: 0 0 .5em;
+ font-weight: bold;
+}
+
+.dialogButtonLine {
+ text-align: center;
+}
+
/* full screen overlay - library, etc. */
.fullScreenOverlay {
position: absolute;