/* * Copyright 2020 Netsyms Technologies. * 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 platform_type = ""; var platform_theme = "md"; var app_version = "unknown"; var nw_tray = null; /** * If true and animations are set to "auto", animations should be disabled. * @type Boolean */ var auto_disable_animations = false; var openBrowser = function (url) { window.open(url); } var openSystemBrowser = function (url) { window.open(url); } var scanningBarcode = false; var getLocation = function (success, error) { if ("geolocation" in navigator) { navigator.geolocation.getCurrentPosition(function (position) { success(position); }, function (err) { if (typeof error == "function") { error(err.message); } }, { enableHighAccuracy: true, timeout: 5000, maximumAge: 0 }); } else { if (typeof error == "function") { error("Location is unavailable."); } } } var watchLocation = function (success, error) { if ("geolocation" in navigator) { navigator.geolocation.watchPosition(function (position) { success(position); }, function (err) { if (typeof error == "function") { error(err.message); } }, { enableHighAccuracy: true, timeout: 5000, maximumAge: 0 }); } else { if (typeof error == "function") { error("Location is unavailable."); } } } function getPlatformTheme() { if (Framework7.device.ios) { return "ios"; } else if (Framework7.device.macos) { // Apple is trending towards one OS for all their crap, // let's be ahead of that curve return "ios"; } else if (Framework7.device.nwjs) { return "md"; } else if (Framework7.device.android) { return "md"; } else if (Framework7.device.desktop) { return "aurora"; } return "md"; } function initCordova() { platform_type = "cordova"; // Handle back button to close things document.addEventListener("backbutton", handleBackButton, false); document.addEventListener("deviceready", function () { // Make sure the status bar color is set properly applyColorTheme(); }, false); openBrowser = function (url) { cordova.InAppBrowser.open(url, '_blank', 'location=yes'); } openExternalBrowser = function (url) { window.open(url, '_system', ''); } // Handle geo: urls $("#app").on("click", ".geolink", function (evt) { window.open($(this).attr("href"), "_system"); evt.preventDefault(); }); } function initNW() { platform_type = "nw"; openBrowser = function (url) { nw.Window.open(url, { id: url }, function (browserwin) { // Add menubar so the user can navigate around if they click a link var browsermenu = new nw.Menu({type: 'menubar'}); browsermenu.append(new nw.MenuItem({ label: "Back", click: function () { browserwin.window.history.back(); } })); browsermenu.append(new nw.MenuItem({ label: "Forward", click: function () { browserwin.window.history.forward(); } })); browsermenu.append(new nw.MenuItem({ label: "Home", click: function () { browserwin.window.location.href = url; } })); browserwin.menu = browsermenu; }); } openExternalBrowser = function (url) { require('nw.gui').Shell.openExternal(url); } // Handle geo: urls $("#app").on("click", ".geolink", function (evt) { require('nw.gui').Shell.openExternal($(this).attr("href")); evt.preventDefault(); }); } function initBrowser() { platform_type = "browser"; openBrowser = function (url) { window.open(url); } openExternalBrowser = function (url) { window.open(url); } $("#app").on("click", ".geolink", function (evt) { window.open($(this).attr("href"), "_blank"); evt.preventDefault(); }); } function initPlatform() { if (typeof cordova !== 'undefined') { initCordova(); } else if (typeof nw !== 'undefined') { initNW(); } else { initBrowser(); } platform_theme = getPlatformTheme(); $.getJSON("package.json", function (data) { app_version = data.version; }); }