mirror of
https://github.com/betaflight/betaflight-configurator.git
synced 2025-07-21 07:15:15 +03:00
Adding a progress bar for CLOUD BUILD progress (#3081)
* Adding simple progress bar for build request * Adding language support.
This commit is contained in:
parent
30340c17bd
commit
717d7f6685
4 changed files with 49 additions and 14 deletions
|
@ -3084,7 +3084,7 @@
|
||||||
"message": "Select commit"
|
"message": "Select commit"
|
||||||
},
|
},
|
||||||
"firmwareFlasherReleaseSummaryHead": {
|
"firmwareFlasherReleaseSummaryHead": {
|
||||||
"message": "Release info"
|
"message": "Release and Build info"
|
||||||
},
|
},
|
||||||
"firmwareFlasherReleaseManufacturer": {
|
"firmwareFlasherReleaseManufacturer": {
|
||||||
"message": "Manufacturer ID:"
|
"message": "Manufacturer ID:"
|
||||||
|
@ -3116,6 +3116,24 @@
|
||||||
"firmwareFlasherCloudBuildStatus": {
|
"firmwareFlasherCloudBuildStatus": {
|
||||||
"message": "Status:"
|
"message": "Status:"
|
||||||
},
|
},
|
||||||
|
"firmwareFlasherCloudBuildPending": {
|
||||||
|
"message": "pending"
|
||||||
|
},
|
||||||
|
"firmwareFlasherCloudBuildProcessing": {
|
||||||
|
"message": "processing"
|
||||||
|
},
|
||||||
|
"firmwareFlasherCloudBuildSuccessCached": {
|
||||||
|
"message": "success (cached)"
|
||||||
|
},
|
||||||
|
"firmwareFlasherCloudBuildSuccess": {
|
||||||
|
"message": "success"
|
||||||
|
},
|
||||||
|
"firmwareFlasherCloudBuildTimedOut": {
|
||||||
|
"message": "timed out (please retry)"
|
||||||
|
},
|
||||||
|
"firmwareFlasherCloudBuildFailed": {
|
||||||
|
"message": "failed (please check log)"
|
||||||
|
},
|
||||||
"firmwareFlasherReleaseFileUrl": {
|
"firmwareFlasherReleaseFileUrl": {
|
||||||
"message": "Download manually."
|
"message": "Download manually."
|
||||||
},
|
},
|
||||||
|
|
|
@ -354,7 +354,11 @@ button {
|
||||||
}
|
}
|
||||||
.release_info {
|
.release_info {
|
||||||
.target {
|
.target {
|
||||||
color: #98ddff;
|
color: white;
|
||||||
|
}
|
||||||
|
.buildProgress {
|
||||||
|
border: 1px solid var(--subtleAccent);
|
||||||
|
border-radius: 2px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.cf_table {
|
.cf_table {
|
||||||
|
|
|
@ -772,11 +772,12 @@ firmware_flasher.initialize = function (callback) {
|
||||||
i18n.localizePage();
|
i18n.localizePage();
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateStatus(status, key) {
|
function updateStatus(status, key, val, showLog) {
|
||||||
if (status === 'success' || status === 'fail') {
|
if (showLog === true) {
|
||||||
$('div.release_info #cloudTargetLog').text('Build Log').prop('href', `https://build.betaflight.com/api/builds/${key}/log`);
|
$('div.release_info #cloudTargetLog').text(i18n.getMessage(`firmwareFlasherCloudBuildLogUrl`)).prop('href', `https://build.betaflight.com/api/builds/${key}/log`);
|
||||||
}
|
}
|
||||||
$('div.release_info #cloudTargetStatus').text(status);
|
$('div.release_info #cloudTargetStatus').text(i18n.getMessage(`firmwareFlasherCloudBuild${status}`));
|
||||||
|
$('.buildProgress').val(val);
|
||||||
}
|
}
|
||||||
|
|
||||||
function requestCloudBuild(summary) {
|
function requestCloudBuild(summary) {
|
||||||
|
@ -817,14 +818,17 @@ firmware_flasher.initialize = function (callback) {
|
||||||
|
|
||||||
analytics.setFirmwareData(analytics.DATA.FIRMWARE_NAME, info.file);
|
analytics.setFirmwareData(analytics.DATA.FIRMWARE_NAME, info.file);
|
||||||
|
|
||||||
let retries = 0;
|
updateStatus('Pending', info.key, 0, false);
|
||||||
|
let retries = 1;
|
||||||
self.releaseLoader.requestBuildStatus(info.key, (status) => {
|
self.releaseLoader.requestBuildStatus(info.key, (status) => {
|
||||||
if (status.status !== "queued") {
|
if (status.status !== "queued") {
|
||||||
updateStatus(status.status, info.key);
|
|
||||||
// will be cached already, no need to wait.
|
// will be cached already, no need to wait.
|
||||||
if (status.status === 'success') {
|
if (status.status === 'success') {
|
||||||
|
updateStatus('SuccessCached', info.key, 100, true);
|
||||||
|
$('.buildProgress').val(100);
|
||||||
self.releaseLoader.loadTargetHex(info.url, (hex) => onLoadSuccess(hex, info.file), onLoadFailed);
|
self.releaseLoader.loadTargetHex(info.url, (hex) => onLoadSuccess(hex, info.file), onLoadFailed);
|
||||||
} else {
|
} else {
|
||||||
|
updateStatus('Failed', info.key, 0, true);
|
||||||
onLoadFailed();
|
onLoadFailed();
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@ -832,20 +836,26 @@ firmware_flasher.initialize = function (callback) {
|
||||||
|
|
||||||
const timer = setInterval(() => {
|
const timer = setInterval(() => {
|
||||||
self.releaseLoader.requestBuildStatus(info.key, (status) => {
|
self.releaseLoader.requestBuildStatus(info.key, (status) => {
|
||||||
if (status.status !== 'queued' || retries > 8) {
|
if (status.status !== 'queued' || retries > 10) {
|
||||||
updateStatus(status.status, info.key);
|
|
||||||
clearInterval(timer);
|
clearInterval(timer);
|
||||||
if (status.status === 'success') {
|
if (status.status === 'success') {
|
||||||
|
updateStatus('Success', info.key, 100, true);
|
||||||
self.releaseLoader.loadTargetHex(info.url, (hex) => onLoadSuccess(hex, info.file), onLoadFailed);
|
self.releaseLoader.loadTargetHex(info.url, (hex) => onLoadSuccess(hex, info.file), onLoadFailed);
|
||||||
} else {
|
} else {
|
||||||
|
if (retries > 10) {
|
||||||
|
updateStatus('TimedOut', info.key, 0, true);
|
||||||
|
} else {
|
||||||
|
updateStatus('Failed', info.key, 0, true);
|
||||||
|
}
|
||||||
onLoadFailed();
|
onLoadFailed();
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
updateStatus(`${status.status} (${retries})`, info.key);
|
|
||||||
|
updateStatus('Processing', info.key, retries * 10, false);
|
||||||
retries = retries + 1;
|
retries = retries + 1;
|
||||||
});
|
});
|
||||||
}, 5000);
|
}, 4000);
|
||||||
});
|
});
|
||||||
}, onLoadFailed);
|
}, onLoadFailed);
|
||||||
}
|
}
|
||||||
|
|
|
@ -244,11 +244,14 @@
|
||||||
<a i18n_title="firmwareFlasherCloudBuildLogUrl" id="cloudTargetLog" href="#" target="_blank"></a>
|
<a i18n_title="firmwareFlasherCloudBuildLogUrl" id="cloudTargetLog" href="#" target="_blank"></a>
|
||||||
<br />
|
<br />
|
||||||
<strong i18n="firmwareFlasherCloudBuildStatus"></strong>
|
<strong i18n="firmwareFlasherCloudBuildStatus"></strong>
|
||||||
|
<progress class="buildProgress" value="0" min="0" max="100"></progress>
|
||||||
<span id="cloudTargetStatus"></span>
|
<span id="cloudTargetStatus"></span>
|
||||||
<br />
|
<br />
|
||||||
</div>
|
</div>
|
||||||
<strong i18n="firmwareFlasherReleaseNotes"></strong>
|
<div class="margin-bottom">
|
||||||
<div class=notes></div>
|
<strong i18n="firmwareFlasherReleaseNotes"></strong>
|
||||||
|
<div class=notes></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue