1
0
Fork 0
mirror of https://github.com/betaflight/betaflight-configurator.git synced 2025-07-26 09:45:28 +03:00

Made initialisation lazy, added tracking for expert mode.

This commit is contained in:
mikeller 2018-08-09 01:08:17 +12:00
parent ff30958d73
commit 237dc08ca6
2 changed files with 78 additions and 59 deletions

View file

@ -5,7 +5,7 @@ var Analytics = function (trackingId, userId, appName, appVersion, buildType, op
this.setOptOut(optOut); this.setOptOut(optOut);
this._analytics = analytics; this._analytics = googleAnalytics;
this._analytics.initialize(this._trackingId, { this._analytics.initialize(this._trackingId, {
storage: 'none', storage: 'none',
@ -42,7 +42,7 @@ var Analytics = function (trackingId, userId, appName, appVersion, buildType, op
}; };
this.DIMENSIONS = { this.DIMENSIONS = {
BUILD_TYPE: 1, CONFIGURATOR_BUILD_TYPE: 1,
BOARD_TYPE: 2, BOARD_TYPE: 2,
FIRMWARE_TYPE: 3, FIRMWARE_TYPE: 3,
FIRMWARE_VERSION: 4, FIRMWARE_VERSION: 4,
@ -50,9 +50,10 @@ var Analytics = function (trackingId, userId, appName, appVersion, buildType, op
FIRMWARE_NAME: 6, FIRMWARE_NAME: 6,
FIRMWARE_CHANNEL: 7, FIRMWARE_CHANNEL: 7,
FIRMWARE_ERASE_ALL: 8, FIRMWARE_ERASE_ALL: 8,
CONFIGURATOR_EXPERT_MODE: 9,
}; };
this.setDimension(this.DIMENSIONS.BUILD_TYPE, buildType); this.setDimension(this.DIMENSIONS.CONFIGURATOR_BUILD_TYPE, buildType);
this.resetFlightControllerData(); this.resetFlightControllerData();
this.resetFirmwareData(); this.resetFirmwareData();

View file

@ -1,18 +1,34 @@
'use strict'; 'use strict';
var analytics; var googleAnalytics = analytics;
var analytics = undefined;
openNewWindowsInExternalBrowser(); openNewWindowsInExternalBrowser();
$(document).ready(function () { $(document).ready(function () {
i18n.init(function() { i18n.init(function() {
setupAnalytics(); startProcess();
initializeSerialBackend(); initializeSerialBackend();
}); });
}); });
function setupAnalytics() { function checkSetupAnalytics(callback) {
if (!analytics) {
setTimeout(function () {
chrome.storage.local.get(['userId', 'analyticsOptOut'], function (result) { chrome.storage.local.get(['userId', 'analyticsOptOut'], function (result) {
if (!analytics) {
setupAnalytics(result);
}
callback(analytics);
});
});
} else if (callback) {
callback(analytics);
}
};
function setupAnalytics(result) {
var userId; var userId;
if (result.userId) { if (result.userId) {
userId = result.userId; userId = result.userId;
@ -53,9 +69,6 @@ function setupAnalytics() {
// Looks like we're in Chrome - but the event does not actually get fired // Looks like we're in Chrome - but the event does not actually get fired
chrome.runtime.onSuspend.addListener(sendCloseEvent); chrome.runtime.onSuspend.addListener(sendCloseEvent);
} }
startProcess();
});
} }
//Process to execute to real start the app //Process to execute to real start the app
@ -159,7 +172,9 @@ function startProcess() {
GUI.tab_switch_in_progress = false; GUI.tab_switch_in_progress = false;
} }
checkSetupAnalytics(function (analytics) {
analytics.sendAppView(tab); analytics.sendAppView(tab);
});
switch (tab) { switch (tab) {
case 'landing': case 'landing':
@ -265,10 +280,6 @@ function startProcess() {
chrome.storage.local.set({'permanentExpertMode': checked}); chrome.storage.local.set({'permanentExpertMode': checked});
$('input[name="expertModeCheckbox"]').prop('checked', checked).change(); $('input[name="expertModeCheckbox"]').prop('checked', checked).change();
if (FEATURE_CONFIG) {
updateTabList(FEATURE_CONFIG.features);
}
}).change(); }).change();
}); });
@ -307,6 +318,7 @@ function startProcess() {
chrome.storage.local.set({'analyticsOptOut': checked}); chrome.storage.local.set({'analyticsOptOut': checked});
checkSetupAnalytics(function (analytics) {
if (checked) { if (checked) {
analytics.sendEvent(analytics.EVENT_CATEGORIES.APPLICATION, 'OptOut'); analytics.sendEvent(analytics.EVENT_CATEGORIES.APPLICATION, 'OptOut');
} }
@ -316,6 +328,7 @@ function startProcess() {
if (!checked) { if (!checked) {
analytics.sendEvent(analytics.EVENT_CATEGORIES.APPLICATION, 'OptIn'); analytics.sendEvent(analytics.EVENT_CATEGORIES.APPLICATION, 'OptIn');
} }
});
}).change(); }).change();
}); });
@ -469,6 +482,11 @@ function startProcess() {
} }
$('input[name="expertModeCheckbox"]').change(function () { $('input[name="expertModeCheckbox"]').change(function () {
var checked = $(this).is(':checked');
checkSetupAnalytics(function (analytics) {
analytics.setDimension(analytics.DIMENSIONS.CONFIGURATOR_EXPERT_MODE, checked ? 'On' : 'Off');
});
if (FEATURE_CONFIG) { if (FEATURE_CONFIG) {
updateTabList(FEATURE_CONFIG.features); updateTabList(FEATURE_CONFIG.features);
} }