1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-24 16:55:36 +03:00

Merge branch 'development'

This commit is contained in:
Dominic Clifton 2014-12-26 18:22:45 +00:00
commit ae44187fb9
13 changed files with 53 additions and 181 deletions

28
_locales/en/messages.json Normal file → Executable file
View file

@ -12,26 +12,7 @@
"options_improve_configurator": {
"message": "Send anonymous usage data to the developer team"
},
"reviewHead": {
"message": "Application Review"
},
"reviewInitial": {
"message": "Do you like this app?"
},
"reviewStore": {
"message": "We are glad to hear that, would you like to send a review to make the application more popular?"
},
"reviewBug": {
"message": "We are sorry to hear that, would you like to submit a ticker and tell us what bothers you?"
},
"reviewYes": {
"message": "Yes"
},
"reviewNo": {
"message": "No"
},
"connect": {
"message": "Connect"
},
@ -818,10 +799,10 @@
"message": "No reboot sequence"
},
"firmwareFlasherOnlineReleasesDescription": {
"message": "Available online firmware releases"
"message": "Available online firmware releases - Select the correct firmware appropriate for your board."
},
"firmwareFlasherNoRebootDescription": {
"message": "Check if you are flashing board with bootloader pins shorted"
"message": "Enable if you are flashing board with bootloader pins shorted"
},
"firmwareFlasherFlashOnConnect": {
"message": "Flash on connect"
@ -847,6 +828,9 @@
"firmwareFlasherFlashSlowlyDescription": {
"message": "Use 115200 baudrate for flashing (useful for flashing via bluetooth)"
},
"firmwareFlasherOptionLabelSelectFirmware": {
"message": "Choose a Firmware / Board"
},
"firmwareFlasherButtonLoadLocal": {
"message": "Load Firmware [Local]"
},

View file

@ -1,3 +1,7 @@
<span>2014.12.06 - 0.57.2 - cleanflight</span>
<p>
- Force user to select firmware before flashing (pulsar).<br />
</p>
<span>2014.12.06 - 0.57.1 - cleanflight</span>
<p>
- Latest firmware <strong>required</strong>.<br />

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

4
js/libraries/jquery-2.1.3.min.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,143 +0,0 @@
'use strict';
$(document).ready(function () {
function Dialog(identifier, content, handler) {
var self = this;
this.block = $('<div />').css({
'position': 'fixed',
'top': 0,
'left': 0,
'width': '100%',
'height': '100%',
'background-color': 'rgba(0, 0, 0, 0.25)',
'z-index': 1000
});
$('body').append(this.block);
this.element = $('<div />').prop('id', 'dialog').addClass(identifier).load(content, function () {
// position the dialog
self.element.css({
'top': window.innerHeight / 3,
'left': (window.innerWidth - self.element.width()) / 2
});
// display content
self.element.fadeIn(100);
if (handler) handler(self);
});
$('body').append(this.element);
// handle window resize
var resizeHandler = function () {
self.element.css({
'top': window.innerHeight / 3,
'left': (window.innerWidth - self.element.width()) / 2
});
};
$(window).on('resize', resizeHandler);
// handle confirm/dismiss keys
var keyDownHandler = function (e) {
if (e.which == 13) {
// Enter
self.element.find('.yes').click();
} else if (e.which == 27) {
// ESC
self.element.find('.no').click();
}
};
$(document).on('keydown', keyDownHandler);
// cleanup routine
this.cleanup = function () {
$(window).off('resize', resizeHandler);
$(document).off('keydown', keyDownHandler);
self.element.empty().remove();
self.block.remove();
};
return this;
}
chrome.storage.sync.get('appReview', function (result) {
if (typeof result.appReview !== 'undefined') {
var data = result.appReview;
if (data.launched < 10) {
data.launched += 1;
chrome.storage.sync.set({'appReview': data});
return;
}
if ((data.firstStart + 604800000) < new Date().getTime()) {
if ((data.refused == 0 || (data.refused + 604800000) < new Date().getTime()) && !data.reviewed) { // needs verifying
var dialog = new Dialog('review', './tabs/review.html', function () {
localize();
$('.initial', dialog.element).show();
var stage = 0;
$(dialog.element).on('click', '.yes, .no', function () {
if (!stage) {
$('p', dialog.element).hide();
if ($(this).hasClass('yes')) {
$('.storeReview', dialog.element).show();
stage = 1;
googleAnalytics.sendEvent('Review', 'Likes App', true);
} else {
$('.bugTicket', dialog.element).show();
stage = 2
googleAnalytics.sendEvent('Review', 'Likes App', false);
}
return false;
}
if (stage == 1) {
if ($(this).hasClass('yes')) {
window.open('https://chrome.google.com/webstore/detail/baseflight-configurator/mppkgnedeapfejgfimkdoninnofofigk/reviews');
data.reviewed = new Date().getTime();
googleAnalytics.sendEvent('Review', 'Submits Review', true);
} else {
data.refused = new Date().getTime();
googleAnalytics.sendEvent('Review', 'Refused', true);
}
}
if (stage == 2) {
if ($(this).hasClass('yes')) {
window.open('https://chrome.google.com/webstore/detail/baseflight-configurator/mppkgnedeapfejgfimkdoninnofofigk/support');
data.refused = new Date().getTime();
googleAnalytics.sendEvent('Review', 'Submits Bug Ticket', true);
} else {
data.refused = new Date().getTime();
googleAnalytics.sendEvent('Review', 'Refused', true);
}
}
chrome.storage.sync.set({'appReview': data});
dialog.cleanup();
});
});
}
}
} else {
// object not in storage, initial setup
chrome.storage.sync.set({'appReview': {
'firstStart': new Date().getTime(),
'launched': 1,
'reviewed': 0,
'refused': 0
}});
}
});
});

View file

@ -26,7 +26,7 @@
<link type="text/css" rel="stylesheet" href="./tabs/auxiliary.css" media="all" />
<script type="text/javascript" src="./js/libraries/google-analytics-bundle.js"></script>
<script type="text/javascript" src="./js/libraries/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="./js/libraries/jquery-2.1.3.min.js"></script>
<script type="text/javascript" src="./js/libraries/d3.min.js"></script>
<script type="text/javascript" src="./js/libraries/jquery.nouislider.all.min.js"></script>
<script type="text/javascript" src="./js/libraries/three/three.min.js"></script>

View file

@ -1,7 +1,7 @@
{
"manifest_version": 2,
"minimum_chrome_version": "38",
"version": "0.57.1",
"version": "0.57.2",
"author": "Hydra",
"name": "Cleanflight - Configurator",
"short_name": "cleanflight",

11
tabs/firmware_flasher.css Normal file → Executable file
View file

@ -71,7 +71,7 @@
margin-left: 6px;
}
.tab-firmware_flasher .options select {
width: 180px;
width: 280px;
height: 20px;
border: 1px solid silver;
@ -82,7 +82,7 @@
}
.tab-firmware_flasher .options .description {
position: absolute;
left: 200px;
left: 300px;
font-style: italic;
color: #818181;
@ -194,6 +194,13 @@
cursor: default;
background-color: #b8b8b8;
}
.tab-firmware_flasher .buttons a.load_remote_file.locked {
background-color: #b8b8b8;
}
.tab-firmware_flasher .buttons a.load_remote_file.locked:hover {
cursor: default;
background-color: #b8b8b8;
}
.tab-firmware_flasher .buttons a.back {
float: right;
margin: 0;

2
tabs/firmware_flasher.html Normal file → Executable file
View file

@ -69,7 +69,7 @@
</div>
<div class="buttons">
<a class="load_file" href="#" i18n="firmwareFlasherButtonLoadLocal"></a>
<a class="load_remote_file" href="#" i18n="firmwareFlasherButtonLoadOnline"></a>
<a class="load_remote_file locked" href="#" i18n="firmwareFlasherButtonLoadOnline"></a>
<a class="flash_firmware locked" href="#" i18n="firmwareFlasherFlashFirmware"></a>
<a class="back" href="#" i18n="firmwareFlasherButtonLeave"></a>
</div>

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

@ -32,6 +32,8 @@ TABS.firmware_flasher.initialize = function (callback) {
var processReleases = function (releases){
var releases_e = $('select[name="release"]').empty();
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){
@ -206,8 +208,26 @@ TABS.firmware_flasher.initialize = function (callback) {
});
});
});
/**
* Lock / Unlock the firmware download button according to the firmware selection dropdown.
*/
$('select[name="release"]').change(function(evt){
if (evt.target.value=="0") {
$("a.load_remote_file").addClass('locked');
}
else {
$("a.load_remote_file").removeClass('locked');
}
});
$('a.load_remote_file').click(function () {
$('a.load_remote_file').click(function (evt) {
if ($('select[name="release"]').val() == "0") {
GUI.log("<b>No firmware selected to load</b>");
return;
}
function process_hex(data, summary) {
intel_hex = data;