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:
parent
16e5ab57be
commit
cabeba70f7
5 changed files with 2075 additions and 46 deletions
|
@ -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
1986
js/libraries/q.js
Executable file
File diff suppressed because it is too large
Load diff
|
@ -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>
|
||||
|
|
|
@ -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
63
tabs/firmware_flasher.js
Normal file → Executable 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() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue