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": {
|
"firmwareFlasherFlashSlowlyDescription": {
|
||||||
"message": "Use 115200 baudrate for flashing (useful for flashing via bluetooth)"
|
"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": {
|
"firmwareFlasherOptionLabelSelectFirmware": {
|
||||||
"message": "Choose a Firmware / Board"
|
"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/adjustments.css" media="all" />
|
||||||
<link type="text/css" rel="stylesheet" href="./tabs/auxiliary.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/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-2.1.3.min.js"></script>
|
||||||
<script type="text/javascript" src="./js/libraries/jquery-ui-1.11.2.min.js"></script>
|
<script type="text/javascript" src="./js/libraries/jquery-ui-1.11.2.min.js"></script>
|
||||||
|
|
|
@ -38,6 +38,13 @@
|
||||||
</label>
|
</label>
|
||||||
<span class="description" i18n="firmwareFlasherFlashSlowlyDescription"></span>
|
<span class="description" i18n="firmwareFlasherFlashSlowlyDescription"></span>
|
||||||
</div>
|
</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>
|
||||||
<div class="clear-both"></div>
|
<div class="clear-both"></div>
|
||||||
<div class="git_info">
|
<div class="git_info">
|
||||||
|
|
121
tabs/firmware_flasher.js
Normal file → Executable file
121
tabs/firmware_flasher.js
Normal file → Executable file
|
@ -29,69 +29,98 @@ TABS.firmware_flasher.initialize = function (callback) {
|
||||||
worker.postMessage(str);
|
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'))));
|
releases_e.append($("<option value='0'>{0}</option>".format(chrome.i18n.getMessage('firmwareFlasherOptionLabelSelectFirmware'))));
|
||||||
|
|
||||||
for(var releaseIndex = 0; releaseIndex < releases.length; releaseIndex++){
|
TABS.firmware_flasher.releases.forEach(function(release){
|
||||||
$.get(releases[releaseIndex].assets_url).done(
|
release.assets.forEach(function(asset){
|
||||||
(function (releases, releaseIndex, releases_e, assets){
|
optionIndex++;
|
||||||
var release = releases[releaseIndex];
|
var targetFromFilenameExpression = /.*_(.*)\.(.*)/;
|
||||||
for (var assetIndex = 0; assetIndex < assets.length; assetIndex++) {
|
var match = targetFromFilenameExpression.exec(asset.name);
|
||||||
|
|
||||||
var asset = assets[assetIndex];
|
if (!showDevReleases && release.prerelease) {
|
||||||
var targetFromFilenameExpression = /.*_(.*)\.(.*)/;
|
return;
|
||||||
var match = targetFromFilenameExpression.exec(asset.name);
|
}
|
||||||
if (!match) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var target = match[1];
|
|
||||||
var format = match[2];
|
|
||||||
|
|
||||||
if (format != 'hex') {
|
if (!match) {
|
||||||
continue;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var date = new Date(release.published_at);
|
var target = match[1];
|
||||||
var formattedDate = "{0}-{1}-{2} {3}:{4}".format(
|
var format = match[2];
|
||||||
date.getFullYear(),
|
|
||||||
date.getMonth() + 1,
|
|
||||||
date.getDate(),
|
|
||||||
date.getUTCHours(),
|
|
||||||
date.getMinutes()
|
|
||||||
);
|
|
||||||
|
|
||||||
var summary = {
|
|
||||||
"releaseUrl": release.html_url,
|
|
||||||
"name" : release.name,
|
|
||||||
"url" : asset.browser_download_url,
|
|
||||||
"file" : asset.name,
|
|
||||||
"target" : target,
|
|
||||||
"date" : formattedDate,
|
|
||||||
"notes" : release.body,
|
|
||||||
"status" : release.prerelease ? "release-candidate" : "stable"
|
|
||||||
};
|
|
||||||
|
|
||||||
var select_e =
|
if (format != 'hex') {
|
||||||
$("<option value='{0}_{1}'>{2} {3} {4} ({5})</option>".format(
|
return;
|
||||||
releaseIndex,
|
}
|
||||||
assetIndex,
|
|
||||||
|
var date = new Date(release.published_at);
|
||||||
|
var formattedDate = "{0}-{1}-{2} {3}:{4}".format(
|
||||||
|
date.getFullYear(),
|
||||||
|
date.getMonth() + 1,
|
||||||
|
date.getDate(),
|
||||||
|
date.getUTCHours(),
|
||||||
|
date.getMinutes()
|
||||||
|
);
|
||||||
|
|
||||||
|
var summary = {
|
||||||
|
"releaseUrl": release.html_url,
|
||||||
|
"name" : release.name,
|
||||||
|
"url" : asset.browser_download_url,
|
||||||
|
"file" : asset.name,
|
||||||
|
"target" : target,
|
||||||
|
"date" : formattedDate,
|
||||||
|
"notes" : release.body,
|
||||||
|
"status" : release.prerelease ? "release-candidate" : "stable"
|
||||||
|
};
|
||||||
|
|
||||||
|
var select_e =
|
||||||
|
$("<option value='{0}'>{1} {2} {3} ({4})</option>".format(
|
||||||
|
optionIndex,
|
||||||
summary.name,
|
summary.name,
|
||||||
summary.target,
|
summary.target,
|
||||||
summary.date,
|
summary.date,
|
||||||
summary.status
|
summary.status
|
||||||
)).data('summary', summary);
|
)).data('summary', summary);
|
||||||
|
|
||||||
releases_e.append(select_e);
|
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){
|
$.get('https://api.github.com/repos/cleanflight/cleanflight/releases', function (releases){
|
||||||
processReleases(releases);
|
processReleases(releases);
|
||||||
|
TABS.firmware_flasher.releases = releases;
|
||||||
|
|
||||||
// bind events
|
// bind events
|
||||||
$('select[name="release"]').change(function() {
|
$('select[name="release"]').change(function() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue