diff --git a/js/configurator_main.js b/js/configurator_main.js index 8bcf3f73..aec07083 100644 --- a/js/configurator_main.js +++ b/js/configurator_main.js @@ -78,6 +78,7 @@ $(function() { $('a', activeTab).trigger('click'); } + globalSettings.store = store; globalSettings.unitType = store.get('unit_type', UnitType.none); globalSettings.mapProviderType = store.get('map_provider_type', 'osm'); globalSettings.mapApiKey = store.get('map_api_key', ''); @@ -85,6 +86,8 @@ $(function() { globalSettings.proxyURL = store.get('proxyurl', 'http://192.168.1.222/mapproxy/service?'); globalSettings.proxyLayer = store.get('proxylayer', 'your_proxy_layer_name'); globalSettings.showProfileParameters = store.get('show_profile_parameters', 1); + globalSettings.assistnowOfflineData = store.get('assistnow_offline_data', []); + globalSettings.assistnowOfflineDate = store.get('assistnow_offline_date', 0); updateProfilesHighlightColours(); var cliAutocomplete = store.get('cli_autocomplete', true); diff --git a/js/globalSettings.js b/js/globalSettings.js index 96b078fb..cc28ad85 100644 --- a/js/globalSettings.js +++ b/js/globalSettings.js @@ -22,6 +22,13 @@ var globalSettings = { docsTreeLocation: 'master', cliAutocomplete: true, assistnowApiKey: null, + assistnowOfflineData: [], + assistnowOfflineDate: 0, + store: null, + saveAssistnowData: function() { + this.store.set('assistnow_offline_data', this.assistnowOfflineData); + this.store.set('assistnow_offline_date', this.assistnowOfflineDate); + } }; module.exports = { globalSettings, UnitType }; \ No newline at end of file diff --git a/js/ublox/UBLOX.js b/js/ublox/UBLOX.js index bba8bc45..6f3ba937 100644 --- a/js/ublox/UBLOX.js +++ b/js/ublox/UBLOX.js @@ -7,6 +7,7 @@ const jBox = require('./../libraries/jBox/jBox.min'); const i18n = require('./../localization'); const { GUI } = require('./../gui'); const { globalSettings } = require('../globalSettings'); +const Store = require('electron-store'); var ublox = (function () { @@ -181,9 +182,16 @@ var ublox = (function () { console.log(url); function processOfflineData(data) { - assistnowOffline = splitUbloxData(data); - console.log("Assitnow offline commands:" + assistnowOffline.length); - callback(assistnowOffline); + if(globalSettings.assistnowOfflineData == null || ((Date.now() / 1000)-globalSettings.assistnowOfflineDate) > (60*60*24*3)) { + console.log("AssistnowOfflineData older than 3 days, refreshing."); + globalSettings.assistnowOfflineData = splitUbloxData(data); + globalSettings.assistnowOfflineDate = Math.floor(Date.now() / 1000); + globalSettings.saveAssistnowData(); + } else { + console.log("AssitnowOfflineData newer than 3 days. Re-using."); + } + console.log("Assitnow offline commands:" + globalSettings.assistnowOfflineData.length); + callback(globalSettings.assistnowOfflineData); } getBinaryData(url, processOfflineData, loadError);