diff --git a/locales/en/messages.json b/locales/en/messages.json index a038e28a..92d69171 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -57,6 +57,9 @@ "expertMode": { "message": "Enable Expert Mode" }, + "expertModeDescription": { + "message": "Show unreleased and potentially unstable builds" + }, "permanentExpertMode": { "message": "Permanently enable Expert Mode" }, @@ -2323,10 +2326,10 @@ "message": "Baud Rate" }, "firmwareFlasherShowDevelopmentReleases":{ - "message": "Show unstable and additional releases" + "message": "Show unstable releases" }, "firmwareFlasherShowDevelopmentReleasesDescription":{ - "message": "Show Release-Candidates and Development Releases." + "message": "Show release candidates in addition to stable releases" }, "firmwareFlasherOptionLoading": { "message": "Loading ..." diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index 5d17f5af..173eb08d 100755 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -227,17 +227,6 @@ TABS.firmware_flasher.initialize = function (callback) { } }; - function showOrHideBuildTypeSelect() { - var showDevReleases = $(this).is(':checked'); - - if (showDevReleases) { - $('tr.build_type').show(); - } else { - $('tr.build_type').hide(); - buildType_e.val(0).trigger('change'); - } - } - var buildTypes = [ { tag: 'firmwareFlasherOptionLabelBuildTypeRelease', @@ -255,16 +244,48 @@ TABS.firmware_flasher.initialize = function (callback) { loader: () => self.jenkinsLoader.loadBuilds(job.name, buildJenkinsBoardOptions) }; }) - - buildTypes = buildTypes.concat(ciBuildsTypes); + var buildTypesToShow; var buildType_e = $('select[name="build_type"]'); - buildTypes.forEach((build, index) => { - buildType_e.append($("".format(index, build.tag ? i18n.getMessage(build.tag) : build.title))) - }); + function buildBuildTypeOptionsList() { + buildType_e.empty(); + buildTypesToShow.forEach((build, index) => { + buildType_e.append($("".format(index, build.tag ? i18n.getMessage(build.tag) : build.title))) + }); + } - showOrHideBuildTypeSelect(); - $('input.show_development_releases').change(showOrHideBuildTypeSelect); + function showOrHideBuildTypes() { + var showExtraReleases = $(this).is(':checked'); + + if (showExtraReleases) { + $('tr.build_type').show(); + $('tr.expert_mode').show(); + } else { + $('tr.build_type').hide(); + $('tr.expert_mode').hide(); + buildType_e.val(0).trigger('change'); + } + } + + var globalExpertMode_e = $('input[name="expertModeCheckbox"]'); + function showOrHideBuildTypeSelect() { + var expertModeChecked = $(this).is(':checked'); + + globalExpertMode_e.prop('checked', expertModeChecked); + if (expertModeChecked) { + buildTypesToShow = buildTypes.concat(ciBuildsTypes); + buildBuildTypeOptionsList(); + } else { + buildTypesToShow = buildTypes; + buildBuildTypeOptionsList(); + buildType_e.val(0).trigger('change'); + } + } + + var expertMode_e = $('.tab-firmware_flasher input.expert_mode'); + expertMode_e.prop('checked', globalExpertMode_e.is(':checked')); + $('input.show_development_releases').change(showOrHideBuildTypes).change(); + expertMode_e.change(showOrHideBuildTypeSelect).change(); // translate to user-selected language i18n.localizePage(); @@ -282,7 +303,7 @@ TABS.firmware_flasher.initialize = function (callback) { .append($("".format(i18n.getMessage('firmwareFlasherOptionLabelSelectFirmwareVersion')))); if (!GUI.connect_lock) { - buildTypes[build_type].loader(); + buildTypesToShow[build_type].loader(); } chrome.storage.local.set({'selected_build_type': build_type}); diff --git a/src/tabs/firmware_flasher.html b/src/tabs/firmware_flasher.html index df4bc6d8..7ec80726 100755 --- a/src/tabs/firmware_flasher.html +++ b/src/tabs/firmware_flasher.html @@ -9,6 +9,11 @@