You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
210 lines
7.7 KiB
JavaScript
210 lines
7.7 KiB
JavaScript
2 years ago
|
/*
|
||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||
|
*/
|
||
|
|
||
|
var compiledPages = {};
|
||
|
var pagesToCompile = [
|
||
|
"home",
|
||
|
"settings"
|
||
|
];
|
||
|
console.log("Compiling page templates...");
|
||
|
for (var i = 0; i < pagesToCompile.length; i++) {
|
||
|
compiledPages[pagesToCompile[i]] = Template7.compile($.ajax({
|
||
|
type: "GET",
|
||
|
url: "./pages/" + pagesToCompile[i] + ".html",
|
||
|
async: false
|
||
|
}).responseText);
|
||
|
}
|
||
|
console.log("Compiled page templates.");
|
||
|
|
||
|
var routes = [
|
||
|
{
|
||
|
path: '/home',
|
||
|
name: 'home',
|
||
|
on: {
|
||
|
pageAfterIn: function () {
|
||
|
createMap();
|
||
|
}
|
||
|
},
|
||
|
async: function ( { resolve, reject }) {
|
||
|
resolve({
|
||
|
content: compiledPages.home({})
|
||
|
}, {});
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
path: '/credits',
|
||
|
url: './pages/credits.html',
|
||
|
name: 'credits'
|
||
|
},
|
||
|
{
|
||
|
path: '/settings',
|
||
|
name: 'settings',
|
||
|
async: function ( {resolve}) {
|
||
|
var settings = [];
|
||
|
settings.push(
|
||
|
{
|
||
|
setting: "display",
|
||
|
title: "Display and Appearance",
|
||
|
text: "",
|
||
|
onclick: "router.navigate('/settings/display')",
|
||
|
link: true
|
||
|
},
|
||
|
{
|
||
|
setting: "maps",
|
||
|
title: "Map",
|
||
|
text: "Change map settings and units.",
|
||
|
onclick: "router.navigate('/settings/maps')",
|
||
|
link: true
|
||
|
}
|
||
|
);
|
||
|
|
||
|
settings.push(
|
||
|
{
|
||
|
setting: "versions",
|
||
|
title: SETTINGS.branding.apptitle + " app v" + app_version,
|
||
|
text: "Copyright © 2019-2021 Netsyms Technologies.",
|
||
|
onclick: ""
|
||
|
},
|
||
|
{
|
||
|
setting: "opensource",
|
||
|
title: "Credits and open source info",
|
||
|
text: "",
|
||
|
onclick: "router.navigate('/credits')",
|
||
|
link: true
|
||
|
},
|
||
|
{
|
||
|
setting: "privacy",
|
||
|
title: "Privacy policy and legal",
|
||
|
text: "",
|
||
|
onclick: "openBrowser('https://netsyms.com/legal?mtm_campaign=FixPhraseApp')",
|
||
|
link: true
|
||
|
});
|
||
|
resolve({
|
||
|
content: compiledPages.settings({
|
||
|
page_title: "Settings",
|
||
|
settings: settings
|
||
|
})
|
||
|
});
|
||
|
},
|
||
|
routes: [
|
||
|
{
|
||
|
path: '/display',
|
||
|
name: 'settings',
|
||
|
async: function ( {resolve}) {
|
||
|
var settings = [
|
||
|
{
|
||
|
setting: "apptheme",
|
||
|
title: "Color theme",
|
||
|
select: true,
|
||
|
options: [
|
||
|
{
|
||
|
value: "auto",
|
||
|
label: "Auto",
|
||
|
selected: getStorage("apptheme") == null || getStorage("apptheme") == "auto"
|
||
|
},
|
||
|
{
|
||
|
value: "dark",
|
||
|
label: "Dark",
|
||
|
selected: getStorage("apptheme") == "dark"
|
||
|
},
|
||
|
{
|
||
|
value: "light",
|
||
|
label: "Light",
|
||
|
selected: getStorage("apptheme") == "light"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
setting: "animation",
|
||
|
title: "Animations",
|
||
|
select: true,
|
||
|
options: [
|
||
|
{
|
||
|
value: "auto",
|
||
|
label: "On",
|
||
|
selected: getStorage("animation") == null || getStorage("animation") == "auto" || getStorage("animation") == "on"
|
||
|
},
|
||
|
{
|
||
|
value: "off",
|
||
|
label: "Off",
|
||
|
selected: getStorage("animation") == "off"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
];
|
||
|
resolve({
|
||
|
content: compiledPages.settings({
|
||
|
page_title: "Display Settings",
|
||
|
settings: settings
|
||
|
})
|
||
|
});
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
path: '/maps',
|
||
|
name: 'settings',
|
||
|
async: function ( {resolve}) {
|
||
|
var mapstyles = [];
|
||
|
mapstyles.push({
|
||
|
value: "auto",
|
||
|
label: "Automatic",
|
||
|
selected: getStorage("mapsource") == id
|
||
|
});
|
||
|
for (var id in SETTINGS.maptileurls) {
|
||
|
if (SETTINGS.maptileurls.hasOwnProperty(id)) {
|
||
|
mapstyles.push({
|
||
|
value: id,
|
||
|
label: SETTINGS.maptileurls[id].name,
|
||
|
selected: getStorage("mapsource") == id
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
var settings = [
|
||
|
{
|
||
|
setting: "mapsource",
|
||
|
title: "Map style",
|
||
|
select: true,
|
||
|
options: mapstyles,
|
||
|
text: "Choose which map style to use."
|
||
|
},
|
||
|
{
|
||
|
setting: "units",
|
||
|
title: "Measurement units",
|
||
|
select: true,
|
||
|
options: [
|
||
|
{
|
||
|
value: "metric",
|
||
|
label: "Meters/Kilometers",
|
||
|
selected: getStorage("units") == "metric"
|
||
|
},
|
||
|
{
|
||
|
value: "imperial",
|
||
|
label: "Feet/Miles",
|
||
|
selected: getStorage("units") == "imperial"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
setting: "mapscale",
|
||
|
title: "Map Scale Ruler",
|
||
|
text: "Show a scale in the corner of the map.",
|
||
|
toggle: true,
|
||
|
checked: getStorage("mapscale") !== "false",
|
||
|
onclick: ""
|
||
|
},
|
||
|
];
|
||
|
resolve({
|
||
|
content: compiledPages.settings({
|
||
|
page_title: "Map Settings",
|
||
|
settings: settings
|
||
|
})
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
];
|