Preset save modal

pull/92/head
U-PAWEL-X220\pawel 8 years ago
parent e8705b0365
commit ea3c972a49

@ -1903,5 +1903,20 @@
},
"presetsDescription": {
"message": "Description"
},
"presetsButtonApply": {
"message": "Apply"
},
"presetApplyTitle" : {
"message": "Confirm"
},
"presetsButtonSaveAndReboot": {
"message": "Save and reboot"
},
"presetsApplyHeader": {
"message": "Warning"
},
"presetApplyDescription": {
"message": "Preset overwrites selected configuration values including mixer, filtering, PIDs and other. Settings like: flight modes, radio settings, failsafe and OSD are not changed. Applied values should <strong>NOT</strong> treated as final values, but entry points for final tuning. <br> Always check new configuration before flying!"
}
}

@ -1819,4 +1819,83 @@ select {
.full-width {
width: 100% !important;
}
.is-hidden {
display: none;
}
.modal__content {
}
.modal__buttons {
position: absolute;
bottom: 0;
right: 0;
margin: 1em;
}
.modal__button {
padding: 1em;
text-align: center;
background-color: #fff;
border-radius: 4px;
border: 1px solid #37a8db;
color: #37a8db;
font-family: 'open_sanssemibold', Arial, serif;
font-size: 12px;
line-height: 13px;
display: block;
transition: all ease 0.2s;
text-decoration: none;
cursor: pointer;
}
.modal__button--main {
background-color: #37a8db;
text-shadow: 0 1px rgba(0, 0, 0, 0.25);
color: #fff;
border: 1px solid #3a9dbf;
transition: all ease 0.2s;
}
.modal__button--main:active {
background-color: #37a8db;
transition: all ease 0.0s;
box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.35);
}
.modal__button--main:hover {
background-color: #3394b5;
transition: all ease 0.2s;
}
.modal__button--disabled {
cursor: default;
color: #fff;
background-color: #AFAFAF;
border: 1px solid #AFAFAF;
pointer-events: none;
text-shadow: none;
opacity: 0.5;
}
.modal__title {
border-bottom: 1px solid #37a8db;
font-size: 20px;
line-height: 24px;
height: 30px;
font-family: 'open_sanslight', Arial, serif;
margin-bottom: 15px;
}
.modal__title--warning {
border-bottom: none;
color: darkred;
}
.modal__text {
line-height: 1.5em;
font-size: 1.3em;
}

@ -2,22 +2,24 @@
<div class="content_wrapper">
<div class="tab_title" data-i18n="tabPresets">Presets</div>
<div class="leftWrapper">
<div class="gui_box grey">
<div class="gui_box_titlebar">
<div class="spacer_box_title" data-i18n="presetsPreset"></div>
</div>
<div class="spacer_box">
<div class="select">
<select id="presets-list" class="full-width" size="8">
<!-- list generated here -->
</select>
<div class="cf_column third_left">
<div class="spacer_right">
<div class="gui_box grey">
<div class="gui_box_titlebar">
<div class="spacer_box_title" data-i18n="presetsPreset"></div>
</div>
<div class="spacer_box">
<div class="select">
<select id="presets-list" class="full-width" size="8">
<!-- list generated here -->
</select>
</div>
</div>
</div>
</div>
</div>
<div class="rightWrapper">
<div class="cf_column twothird">
<div class="gui_box grey">
<div class="gui_box_titlebar">
<div class="spacer_box_title" data-i18n="presetsDescription"></div>
@ -30,11 +32,21 @@
</div>
</div>
<div id="presetApplyContent" class="is-hidden">
<div class="modal__content">
<h1 class="modal__title modal__title--warning" data-i18n="presetsApplyHeader"></h1>
<div class="modal__text" data-i18n="presetApplyDescription"></div>
</div>
<div class="modal__buttons">
<a id="execute-button" class="modal__button modal__button--main" data-i18n="presetsButtonSaveAndReboot"></a>
</div>
</div>
<div class="clear-both"></div>
</div>
<div class="content_toolbar">
<div class="btn save_btn">
<a id="save-button" class="save" href="#" data-i18n="configurationButtonSave"></a>
<a id="save-button" class="save disabled" href="#" data-i18n="presetsButtonApply"></a>
</div>
</div>
</div>

@ -187,6 +187,24 @@ TABS.profiles.initialize = function (callback, scrollPosition) {
GUI.handleReconnect($('.tab_setup a'));
}
function applyAndSave() {
presets.model.applyDefaults(currentPreset.applyDefaults, presets.defaultValues);
var setting;
//Iterate over settings saved in preset
for (var i in currentPreset.settings) {
if (currentPreset.settings.hasOwnProperty(i)) {
setting = currentPreset.settings[i];
//Apply setting
window[setting.group][setting.field] = setting.value;
}
}
saveChainer.execute();
}
function fillPresetDescription(preset) {
var $features = $('#preset-features');
@ -214,6 +232,12 @@ TABS.profiles.initialize = function (callback, scrollPosition) {
currentPresetId = $presetList.val();
currentPreset = presets.presets[currentPresetId];
fillPresetDescription(currentPreset);
$('#save-button').removeClass('disabled');
});
$('#execute-button').click(function () {
applyAndSave();
OSD.GUI.jbox.close();
});
localize();
@ -221,22 +245,14 @@ TABS.profiles.initialize = function (callback, scrollPosition) {
//noinspection JSValidateTypes
$('#content').scrollTop((scrollPosition) ? scrollPosition : 0);
$('#save-button').click(function () {
presets.model.applyDefaults(currentPreset.applyDefaults, presets.defaultValues);
var setting;
//Iterate over settings saved in preset
for (var i in currentPreset.settings) {
if (currentPreset.settings.hasOwnProperty(i)) {
setting = currentPreset.settings[i];
//Apply setting
window[setting.group][setting.field] = setting.value;
}
}
saveChainer.execute();
OSD.GUI.jbox = new jBox('Modal', {
width: 600,
height: 240,
closeButton: 'title',
animation: false,
attach: $('#save-button'),
title: chrome.i18n.getMessage("presetApplyTitle"),
content: $('#presetApplyContent')
});
GUI.interval_add('status_pull', function status_pull() {

Loading…
Cancel
Save