summaryrefslogtreecommitdiff
path: root/js/codeq/settings.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/codeq/settings.js')
-rw-r--r--js/codeq/settings.js41
1 files changed, 31 insertions, 10 deletions
diff --git a/js/codeq/settings.js b/js/codeq/settings.js
index 73bef14..9eb4366 100644
--- a/js/codeq/settings.js
+++ b/js/codeq/settings.js
@@ -2,17 +2,38 @@
* Created by robert on 9/29/15.
*/
(function(){
- $("#gui_lang_select").on("change",function() {
+
+ var guiLangSelect = $("#gui_lang_select");
+ var previousLang = guiLangSelect.val();
+ var closedWithSave = false;
+
+ guiLangSelect.on("change",function() {
var lang = $("#gui_lang_select").val();
if (lang in codeq.supportedLangs) {
- codeq.log.debug("Changing lang to:" + lang);
- codeq.comms.updateSettings({'lang': lang})
- .then(function (data) {
- if (data.code !== 0) throw new Error('Change language failed, code: ' + data.code + ', message: ' + data.message);
- codeq.log.debug("success with settings");
- codeq.setLang(lang);
- })
- .done();
+ codeq.setLang(lang);
}
- })
+ });
+
+ $("#settings_save_btn").on("click", function() {
+ closedWithSave = true;
+ });
+
+ $("#settings_dropdown_menu").on("shown.bs.dropdown", function() {
+ closedWithSave = false;
+ previousLang = codeq.getLang();
+ }).on("hidden.bs.dropdown", function() {
+ if(closedWithSave){
+ var lang = $("#gui_lang_select").val();
+ if (lang in codeq.supportedLangs) {
+ codeq.comms.updateSettings({'lang': lang})
+ .then(function (data) {
+ if (data.code !== 0) throw new Error('Change language failed, code: ' + data.code + ', message: ' + data.message);//error msg if something went wring while saving to db
+ })
+ .done();
+ }
+ }else{
+ $("#gui_lang_select").val(previousLang);
+ if (previousLang in codeq.supportedLangs) codeq.setLang(previousLang);
+ }
+ });
})(); \ No newline at end of file