Skip to content

Commit 8c47819

Browse files
authored
Merge pull request #406 from mikeller/fix_rx_display_if_none_enabled
Fixed display of RX type selection if no RX type is selected.
2 parents 4825f2c + d2ac603 commit 8c47819

File tree

3 files changed

+33
-20
lines changed

3 files changed

+33
-20
lines changed

_locales/en/messages.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,9 @@
457457
"initialSetupEepromSaved": {
458458
"message": "EEPROM <span style=\"color: #ffbb00\">saved</span>"
459459
},
460-
460+
"featureNone": {
461+
"message": "&lt;Select One&gt;"
462+
},
461463
"featureRX_PPM": {
462464
"message": "PPM RX input"
463465
},

js/Features.js

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -74,19 +74,19 @@ var Features = function (config) {
7474

7575
self._features = features;
7676
self._featureMask = 0;
77-
}
77+
};
7878

7979
Features.prototype.getMask = function () {
8080
var self = this;
8181

8282
return self._featureMask;
83-
}
83+
};
8484

8585
Features.prototype.setMask = function (featureMask) {
8686
var self = this;
8787

8888
self._featureMask = featureMask;
89-
}
89+
};
9090

9191
Features.prototype.isEnabled = function (featureName) {
9292
var self = this;
@@ -97,33 +97,39 @@ Features.prototype.isEnabled = function (featureName) {
9797
}
9898
}
9999
return false;
100-
}
100+
};
101101

102102
Features.prototype.generateElements = function (featuresElements) {
103103
var self = this;
104104

105105
var listElements = [];
106106

107107
for (var i = 0; i < self._features.length; i++) {
108-
var row_e;
109-
110108
var feature_tip_html = '';
111109
if (self._features[i].haveTip) {
112110
feature_tip_html = '<div class="helpicon cf_tip" i18n_title="feature' + self._features[i].name + 'Tip"></div>';
113111
}
114112

113+
var newElements = [];
115114
if (self._features[i].mode === 'select') {
116-
row_e = $('<option class="feature" id="feature-'
115+
if (listElements.length === 0) {
116+
newElements.push($('<option class="feature" '
117+
+ 'value="-1" '
118+
+ 'i18n="featureNone" />'));
119+
}
120+
121+
var newElement = $('<option class="feature" id="feature-'
117122
+ i
118123
+ '" name="'
119124
+ self._features[i].name
120125
+ '" value="'
121126
+ self._features[i].bit
122127
+ '" i18n="feature' + self._features[i].name + '" />');
123128

124-
listElements.push(row_e);
129+
newElements.push(newElement);
130+
listElements.push(newElement);
125131
} else {
126-
row_e = $('<tr><td><input class="feature toggle" id="feature-'
132+
var newElement = $('<tr><td><input class="feature toggle" id="feature-'
127133
+ i
128134
+ '" name="'
129135
+ self._features[i].name
@@ -136,15 +142,17 @@ Features.prototype.generateElements = function (featuresElements) {
136142
+ '</label></td><td><span i18n="feature' + self._features[i].name + '"></span>'
137143
+ feature_tip_html + '</td></tr>');
138144

139-
var feature_e = row_e.find('input.feature');
145+
var feature_e = newElement.find('input.feature');
140146

141147
feature_e.prop('checked', bit_check(self._featureMask, self._features[i].bit));
142148
feature_e.data('bit', self._features[i].bit);
149+
150+
newElements.push(newElement);
143151
}
144152

145153
featuresElements.each(function () {
146154
if ($(this).hasClass(self._features[i].group)) {
147-
$(this).append(row_e);
155+
$(this).append(newElements);
148156
}
149157
});
150158
}
@@ -156,7 +164,7 @@ Features.prototype.generateElements = function (featuresElements) {
156164

157165
element.prop('selected', state);
158166
}
159-
}
167+
};
160168

161169
Features.prototype.updateData = function (featureElement) {
162170
var self = this;
@@ -172,13 +180,15 @@ Features.prototype.updateData = function (featureElement) {
172180
} else if (featureElement.prop('localName') === 'select') {
173181
var controlElements = featureElement.children();
174182
var selectedBit = featureElement.val();
175-
for (var i = 0; i < controlElements.length; i++) {
176-
var bit = controlElements[i].value;
177-
if (selectedBit === bit) {
178-
self._featureMask = bit_set(self._featureMask, bit);
179-
} else {
180-
self._featureMask = bit_clear(self._featureMask, bit);
183+
if (selectedBit !== -1) {
184+
for (var i = 0; i < controlElements.length; i++) {
185+
var bit = controlElements[i].value;
186+
if (selectedBit === bit) {
187+
self._featureMask = bit_set(self._featureMask, bit);
188+
} else {
189+
self._featureMask = bit_clear(self._featureMask, bit);
190+
}
181191
}
182192
}
183193
}
184-
}
194+
};

tabs/configuration.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -566,6 +566,7 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
566566
checkShowDisarmDelay();
567567
}
568568
});
569+
569570
checkShowDisarmDelay();
570571

571572
function checkShowSerialRxBox() {

0 commit comments

Comments
 (0)