mirror of
https://github.com/betaflight/betaflight-configurator.git
synced 2025-07-22 15:55:33 +03:00
Change lexical scope Features
This commit is contained in:
parent
317f937fd5
commit
bffd340d0b
1 changed files with 51 additions and 60 deletions
|
@ -1,9 +1,9 @@
|
|||
'use strict';
|
||||
|
||||
var Features = function (config) {
|
||||
var self = this;
|
||||
const Features = function (config) {
|
||||
const self = this;
|
||||
|
||||
var features = [
|
||||
const features = [
|
||||
{bit: 0, group: 'rxMode', mode: 'select', name: 'RX_PPM'},
|
||||
{bit: 2, group: 'other', name: 'INFLIGHT_ACC_CAL'},
|
||||
{bit: 3, group: 'rxMode', mode: 'select', name: 'RX_SERIAL'},
|
||||
|
@ -69,9 +69,9 @@ var Features = function (config) {
|
|||
{bit: 18, group: 'other', name: 'OSD'}
|
||||
);
|
||||
if (!semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_35)) {
|
||||
features.push(
|
||||
{bit: 24, group: 'other', name: 'VTX'}
|
||||
)
|
||||
features.push(
|
||||
{bit: 24, group: 'other', name: 'VTX'}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -104,7 +104,7 @@ var Features = function (config) {
|
|||
};
|
||||
|
||||
Features.prototype.getMask = function () {
|
||||
var self = this;
|
||||
const self = this;
|
||||
|
||||
analytics.sendChangeEvents(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, self._analyticsChanges);
|
||||
self._analyticsChanges = {};
|
||||
|
@ -113,15 +113,15 @@ Features.prototype.getMask = function () {
|
|||
};
|
||||
|
||||
Features.prototype.setMask = function (featureMask) {
|
||||
var self = this;
|
||||
const self = this;
|
||||
|
||||
self._featureMask = featureMask;
|
||||
};
|
||||
|
||||
Features.prototype.isEnabled = function (featureName) {
|
||||
var self = this;
|
||||
const self = this;
|
||||
|
||||
for (var i = 0; i < self._features.length; i++) {
|
||||
for (let i = 0; i < self._features.length; i++) {
|
||||
if (self._features[i].name === featureName && bit_check(self._featureMask, self._features[i].bit)) {
|
||||
return true;
|
||||
}
|
||||
|
@ -130,58 +130,50 @@ Features.prototype.isEnabled = function (featureName) {
|
|||
};
|
||||
|
||||
Features.prototype.generateElements = function (featuresElements) {
|
||||
var self = this;
|
||||
const self = this;
|
||||
|
||||
self._featureChanges = {};
|
||||
|
||||
var listElements = [];
|
||||
const listElements = [];
|
||||
|
||||
for (let i = 0; i < self._features.length; i++) {
|
||||
let feature_tip_html = '';
|
||||
const rawFeatureName = self._features[i].name;
|
||||
const featureBit = self._features[i].bit;
|
||||
|
||||
for (var i = 0; i < self._features.length; i++) {
|
||||
var feature_tip_html = '';
|
||||
if (self._features[i].haveTip) {
|
||||
feature_tip_html = '<div class="helpicon cf_tip" i18n_title="feature' + self._features[i].name + 'Tip"></div>';
|
||||
feature_tip_html = `<div class="helpicon cf_tip" i18n_title="feature${rawFeatureName}Tip"></div>`;
|
||||
}
|
||||
|
||||
var newElements = [];
|
||||
const newElements = [];
|
||||
|
||||
if (self._features[i].mode === 'select') {
|
||||
if (listElements.length === 0) {
|
||||
newElements.push($('<option class="feature" '
|
||||
+ 'value="-1" '
|
||||
+ 'i18n="featureNone" />'));
|
||||
newElements.push($('<option class="feature" value="-1" i18n="featureNone" />'));
|
||||
}
|
||||
|
||||
var newElement = $('<option class="feature" id="feature-'
|
||||
+ i
|
||||
+ '" name="'
|
||||
+ self._features[i].name
|
||||
+ '" value="'
|
||||
+ self._features[i].bit
|
||||
+ '" i18n="feature' + self._features[i].name + '" />');
|
||||
const newElement = $(`<option class="feature" id="feature-${i}" name="${rawFeatureName}" value="${featureBit}" i18n="feature${rawFeatureName}" />`);
|
||||
|
||||
newElements.push(newElement);
|
||||
listElements.push(newElement);
|
||||
} else {
|
||||
let featureName = '';
|
||||
if (!self._features[i].hideName) {
|
||||
featureName = `<td><div>${self._features[i].name}</div></td>`;
|
||||
featureName = `<td><div>${rawFeatureName}</div></td>`;
|
||||
}
|
||||
|
||||
var newElement = $('<tr><td><input class="feature toggle" id="feature-'
|
||||
+ i
|
||||
+ '" name="'
|
||||
+ self._features[i].name
|
||||
+ '" title="'
|
||||
+ self._features[i].name
|
||||
+ '" type="checkbox"/></td><td><div>'
|
||||
+ featureName
|
||||
+ '</div><span class="xs" i18n="feature' + self._features[i].name + '"></span></td>'
|
||||
+ '<td><span class="sm-min" i18n="feature' + self._features[i].name + '"></span>'
|
||||
+ feature_tip_html + '</td></tr>');
|
||||
let element = `<tr><td><input class="feature toggle" id="feature-${i}"`;
|
||||
element += `name="${self._features[i].name}" title="${self._features[i].name}"`;
|
||||
element += `type="checkbox"/></td><td><div>${featureName}</div>`;
|
||||
element += `<span class="xs" i18n="feature${self._features[i].name}"></span></td>`;
|
||||
element += `<td><span class="sm-min" i18n="feature${self._features[i].name}"></span>`;
|
||||
element += `${feature_tip_html}</td></tr>`;
|
||||
|
||||
var feature_e = newElement.find('input.feature');
|
||||
const newElement = $(element);
|
||||
|
||||
feature_e.prop('checked', bit_check(self._featureMask, self._features[i].bit));
|
||||
feature_e.data('bit', self._features[i].bit);
|
||||
const featureElement = newElement.find('input.feature');
|
||||
|
||||
featureElement.prop('checked', bit_check(self._featureMask, featureBit));
|
||||
featureElement.data('bit', featureBit);
|
||||
|
||||
newElements.push(newElement);
|
||||
}
|
||||
|
@ -193,32 +185,31 @@ Features.prototype.generateElements = function (featuresElements) {
|
|||
});
|
||||
}
|
||||
|
||||
for (var i = 0; i < listElements.length; i++) {
|
||||
var element = listElements[i];
|
||||
var bit = parseInt(element.attr('value'));
|
||||
var state = bit_check(self._featureMask, bit);
|
||||
for (const element of listElements) {
|
||||
const bit = parseInt(element.attr('value'));
|
||||
const state = bit_check(self._featureMask, bit);
|
||||
|
||||
element.prop('selected', state);
|
||||
}
|
||||
};
|
||||
|
||||
Features.prototype.findFeatureByBit = function (bit) {
|
||||
var self = this;
|
||||
const self = this;
|
||||
|
||||
for (var i = 0; i < self._features.length; i++) {
|
||||
if (self._features[i].bit == bit) {
|
||||
return self._features[i];
|
||||
for (const feature of self._features) {
|
||||
if (feature.bit === bit) {
|
||||
return feature;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Features.prototype.updateData = function (featureElement) {
|
||||
var self = this;
|
||||
const self = this;
|
||||
|
||||
if (featureElement.attr('type') === 'checkbox') {
|
||||
var bit = featureElement.data('bit');
|
||||
const bit = featureElement.data('bit');
|
||||
let featureValue;
|
||||
|
||||
var featureValue;
|
||||
if (featureElement.is(':checked')) {
|
||||
self._featureMask = bit_set(self._featureMask, bit);
|
||||
featureValue = 'On';
|
||||
|
@ -226,14 +217,14 @@ Features.prototype.updateData = function (featureElement) {
|
|||
self._featureMask = bit_clear(self._featureMask, bit);
|
||||
featureValue = 'Off';
|
||||
}
|
||||
self._analyticsChanges['Feature' + self.findFeatureByBit(bit).name] = featureValue;
|
||||
self._analyticsChanges[`Feature${self.findFeatureByBit(bit).name}`] = featureValue;
|
||||
} else if (featureElement.prop('localName') === 'select') {
|
||||
var controlElements = featureElement.children();
|
||||
var selectedBit = featureElement.val();
|
||||
const controlElements = featureElement.children();
|
||||
const selectedBit = featureElement.val();
|
||||
if (selectedBit !== -1) {
|
||||
var selectedFeature;
|
||||
for (var i = 0; i < controlElements.length; i++) {
|
||||
var bit = controlElements[i].value;
|
||||
let selectedFeature;
|
||||
for (const controlElement of controlElements) {
|
||||
const bit = controlElement.value;
|
||||
if (selectedBit === bit) {
|
||||
self._featureMask = bit_set(self._featureMask, bit);
|
||||
selectedFeature = self.findFeatureByBit(bit);
|
||||
|
@ -242,7 +233,7 @@ Features.prototype.updateData = function (featureElement) {
|
|||
}
|
||||
}
|
||||
if (selectedFeature) {
|
||||
self._analyticsChanges['FeatureGroup-' + selectedFeature.group] = selectedFeature.name;
|
||||
self._analyticsChanges[`FeatureGroup-${selectedFeature.group}`] = selectedFeature.name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue