From ed285992da48e2d387e16411ec0379bf659d9b12 Mon Sep 17 00:00:00 2001 From: Nicholas Sherlock Date: Mon, 16 Feb 2015 18:05:24 +1300 Subject: [PATCH] Detect support for flash chip and disable tab if not available --- _locales/en/messages.json | 5 +- tabs/dataflash.css | 13 +++++ tabs/dataflash.html | 101 ++++++++++++++++++++------------------ tabs/dataflash.js | 27 ++++++---- 4 files changed, 86 insertions(+), 60 deletions(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 364d4e44..939acaa7 100755 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -846,7 +846,10 @@ }, "dataflashNote": { - "message": "Blackbox flight logs can be stored on the onboard dataflash chip if your flight controller supports one." + "message": "Blackbox flight logs can be recorded to your flight controller's onboard dataflash chip." + }, + "dataflashNotSupportedNote": { + "message": "Your flight controller does not have a compatible dataflash chip available." }, "dataflashButtonSaveFile": { "message": "Save flash to file..." diff --git a/tabs/dataflash.css b/tabs/dataflash.css index 50404d5b..a6885d53 100644 --- a/tabs/dataflash.css +++ b/tabs/dataflash.css @@ -176,4 +176,17 @@ } .dataflash-saving.done .dataflash-saving-after { display:block; +} + +.require-dataflash { + display:none; +} +.tab-dataflash.supported .require-dataflash { + display:block; +} +.require-no-dataflash { + display:block; +} +.tab-dataflash.supported .require-no-dataflash { + display:none; } \ No newline at end of file diff --git a/tabs/dataflash.html b/tabs/dataflash.html index 484372ca..a3a391a4 100644 --- a/tabs/dataflash.html +++ b/tabs/dataflash.html @@ -1,63 +1,66 @@
-
-
- - -

-
+
+
-
-
-

Erase in progress, please wait...

-
-
- -
- - -
-
- - -

-
-
+ +

+
- - -
- -
-
-
-
+
+
+

Erase in progress, please wait...

+
- + +
-
-
- -

Dataflash contents

- - + -
- - +

Dataflash contents

+
    +
  • +
    + Used space +
    +
  • +
  • +
    + Free space +
    +
  • +
+ +
+ + +
+
+
\ No newline at end of file diff --git a/tabs/dataflash.js b/tabs/dataflash.js index e2460385..90980c5c 100644 --- a/tabs/dataflash.js +++ b/tabs/dataflash.js @@ -71,20 +71,27 @@ TABS.dataflash.initialize = function (callback) { } function create_html() { + var + supportsDataflash = DATAFLASH.totalSize > 0; + // translate to user-selected language localize(); - // UI hooks - $('.tab-dataflash a.erase-flash').click(ask_to_erase_flash); + $(".tab-dataflash").toggleClass("supported", supportsDataflash); - $('.tab-dataflash a.erase-flash-confirm').click(flash_erase); - $('.tab-dataflash a.erase-flash-cancel').click(flash_erase_cancel); - - $('.tab-dataflash a.save-flash').click(flash_save_begin); - $('.tab-dataflash a.save-flash-cancel').click(flash_save_cancel); - $('.tab-dataflash a.save-flash-dismiss').click(dismiss_saving_dialog); - - update_html(); + if (supportsDataflash) { + // UI hooks + $('.tab-dataflash a.erase-flash').click(ask_to_erase_flash); + + $('.tab-dataflash a.erase-flash-confirm').click(flash_erase); + $('.tab-dataflash a.erase-flash-cancel').click(flash_erase_cancel); + + $('.tab-dataflash a.save-flash').click(flash_save_begin); + $('.tab-dataflash a.save-flash-cancel').click(flash_save_cancel); + $('.tab-dataflash a.save-flash-dismiss').click(dismiss_saving_dialog); + + update_html(); + } if (callback) callback(); }