1
0
Fork 0
mirror of https://github.com/iNavFlight/inav-configurator.git synced 2025-07-15 20:35:19 +03:00

checkbox to show dev releases, code refactoring

This commit is contained in:
Paul Rogalinski 2015-03-29 23:43:00 +02:00 committed by Dominic Clifton
parent 16e5ab57be
commit cabeba70f7
5 changed files with 2075 additions and 46 deletions

View file

@ -1029,6 +1029,12 @@
"firmwareFlasherFlashSlowlyDescription": {
"message": "Use 115200 baudrate for flashing (useful for flashing via bluetooth)"
},
"firmwareFlasherShowDevelopmentReleases":{
"message": "Show unstable releases"
},
"firmwareFlasherShowDevelopmentReleasesDescription":{
"message": "Show Release-Candidates and Development Releases"
},
"firmwareFlasherOptionLabelSelectFirmware": {
"message": "Choose a Firmware / Board"
},

1986
js/libraries/q.js Executable file

File diff suppressed because it is too large Load diff

View file

@ -30,6 +30,7 @@
<link type="text/css" rel="stylesheet" href="./tabs/adjustments.css" media="all" />
<link type="text/css" rel="stylesheet" href="./tabs/auxiliary.css" media="all" />
<script type="text/javascript" src="./js/libraries/q.js"></script>
<script type="text/javascript" src="./js/libraries/google-analytics-bundle.js"></script>
<script type="text/javascript" src="./js/libraries/jquery-2.1.3.min.js"></script>
<script type="text/javascript" src="./js/libraries/jquery-ui-1.11.2.min.js"></script>

View file

@ -38,6 +38,13 @@
</label>
<span class="description" i18n="firmwareFlasherFlashSlowlyDescription"></span>
</div>
<div class="option">
<label>
<input class="show_development_releases" type="checkbox" />
<span i18n="firmwareFlasherShowDevelopmentReleases"></span>
</label>
<span class="description" i18n="firmwareFlasherShowDevelopmentReleasesDescription"></span>
</div>
</div>
<div class="clear-both"></div>
<div class="git_info">

63
tabs/firmware_flasher.js Normal file → Executable file
View file

@ -29,28 +29,36 @@ TABS.firmware_flasher.initialize = function (callback) {
worker.postMessage(str);
}
var processReleases = function (releases){
var releases_e = $('select[name="release"]').empty();
$('input.show_development_releases').click(function(){
buildFirmwareOptions();
});
var buildFirmwareOptions = function(){
var releases_e = $('select[name="release"]').empty();
var showDevReleases = ($('input.show_development_releases').is(':checked'));
var optionIndex = 0;
releases_e.append($("<option value='0'>{0}</option>".format(chrome.i18n.getMessage('firmwareFlasherOptionLabelSelectFirmware'))));
for(var releaseIndex = 0; releaseIndex < releases.length; releaseIndex++){
$.get(releases[releaseIndex].assets_url).done(
(function (releases, releaseIndex, releases_e, assets){
var release = releases[releaseIndex];
for (var assetIndex = 0; assetIndex < assets.length; assetIndex++) {
var asset = assets[assetIndex];
TABS.firmware_flasher.releases.forEach(function(release){
release.assets.forEach(function(asset){
optionIndex++;
var targetFromFilenameExpression = /.*_(.*)\.(.*)/;
var match = targetFromFilenameExpression.exec(asset.name);
if (!match) {
continue;
if (!showDevReleases && release.prerelease) {
return;
}
if (!match) {
return;
}
var target = match[1];
var format = match[2];
if (format != 'hex') {
continue;
return;
}
var date = new Date(release.published_at);
@ -74,9 +82,8 @@ TABS.firmware_flasher.initialize = function (callback) {
};
var select_e =
$("<option value='{0}_{1}'>{2} {3} {4} ({5})</option>".format(
releaseIndex,
assetIndex,
$("<option value='{0}'>{1} {2} {3} ({4})</option>".format(
optionIndex,
summary.name,
summary.target,
summary.date,
@ -84,14 +91,36 @@ TABS.firmware_flasher.initialize = function (callback) {
)).data('summary', summary);
releases_e.append(select_e);
});
});
};
var processReleases = function (releases){
var promises = [];
releases.forEach(function(release){
var promise = Q.defer();
promises.push(promise);
$.get(release.assets_url).
done(function(assets){
release.assets = assets;
promise.resolve(assets);
}
).
fail(function(reason){
promise.reject(reason);
}
}).bind(this, releases, releaseIndex, releases_e)
);
}
});
Q.all(promises).then(function(){
buildFirmwareOptions();
})
};
$.get('https://api.github.com/repos/cleanflight/cleanflight/releases', function (releases){
processReleases(releases);
TABS.firmware_flasher.releases = releases;
// bind events
$('select[name="release"]').change(function() {