diff options
Diffstat (limited to 'js/codeq')
-rw-r--r-- | js/codeq/comms.js | 4 | ||||
-rw-r--r-- | js/codeq/core.js | 2 | ||||
-rw-r--r-- | js/codeq/login.js | 96 | ||||
-rw-r--r-- | js/codeq/settings.js | 18 |
4 files changed, 76 insertions, 44 deletions
diff --git a/js/codeq/comms.js b/js/codeq/comms.js index 5ac3d66..ecca6ff 100644 --- a/js/codeq/comms.js +++ b/js/codeq/comms.js @@ -301,6 +301,10 @@ return this.connect().then(performLogin); }, + 'updateSettings': function (new_settings){ + return this.send({'action': 'settings', 'sid': sid, 'settings': new_settings}); + }, + sendActivity: function commsSendActivity (trace, solution, problem_id) { return this.send({'action': 'activity', 'trace': trace, 'solution': solution, 'problem_id': problem_id}); }, diff --git a/js/codeq/core.js b/js/codeq/core.js index 3dfa7c2..01382d1 100644 --- a/js/codeq/core.js +++ b/js/codeq/core.js @@ -199,6 +199,8 @@ 'log': log, + 'settings':{}, + 'availableLangs': [], // filled at boot from 'supportedLangs' 'supportedLangs': { 'en': 'English', diff --git a/js/codeq/login.js b/js/codeq/login.js index 248e8c3..e5a446b 100644 --- a/js/codeq/login.js +++ b/js/codeq/login.js @@ -1,45 +1,53 @@ -/**
- * Created by robert on 9/17/15.
- */
-
-(function(){
- var loginFun = function(){
- $('#disabled').css('display', '');
- $('#disabled').css('cursor', 'wait');
- codeq.comms.connect()
- .then(function () {
- return codeq.comms.login($('#username').val(), $('#password').val());
- })
- .then(function (data) {
- $('#disabled').css('display', 'none');
- $('#disabled').css('cursor', '');
- if (data.code !== 0) throw new Error('Login failed, code: ' + data.code + ', message: ' + data.message);
- codeq.globalStateMachine.transition('language');
- //codeq.activateState('language');
- })
- .fail(function (reason) {
- $('#disabled').css('display', 'none');
- $('#disabled').css('cursor', '');
- codeq.log.error('Login failed: ' + reason, reason);
- alert('Login request failed: ' + reason);
- $('#disabled').css('display', 'none');
- })
- .done();
- };
- codeq.globalStateMachine.register('login',{
- 'enter': function(){
- $('#signed-in-title').html('');
- $("#submit").on('click', loginFun);
- $('#modalLogIn').modal();
-
- $("#screen_login").css('display', '');
- $('#disabled').css('display', 'none');
- },
- 'exit' : function(){
- $("#submit").off('click', loginFun);
- $("#screen_login").css('display', 'none');
- $('#signed-in-title').html('Signed in as '+$('#username').val());
- $("#password").val('');
- }
- });
+/** + * Created by robert on 9/17/15. + */ + +(function(){ + var loginFun = function(){ + $('#disabled').css('display', ''); + $('#disabled').css('cursor', 'wait'); + codeq.comms.connect() + .then(function () { + return codeq.comms.login($('#username').val(), $('#password').val()); + }) + .then(function (data) { + $('#disabled').css('display', 'none'); + $('#disabled').css('cursor', ''); + if (data.code !== 0) throw new Error('Login failed, code: ' + data.code + ', message: ' + data.message); + + //merge these settings into the already existing default settings + sett = data.settings; + $.merge(true, codeq.settings, sett); + if('lang' in sett && sett['lan'] in codeq.supportedLangs){ + codeq.setLang(sett['lan']); + } + + codeq.globalStateMachine.transition('language'); + //codeq.activateState('language'); + }) + .fail(function (reason) { + $('#disabled').css('display', 'none'); + $('#disabled').css('cursor', ''); + codeq.log.error('Login failed: ' + reason, reason); + alert('Login request failed: ' + reason); + $('#disabled').css('display', 'none'); + }) + .done(); + }; + codeq.globalStateMachine.register('login',{ + 'enter': function(){ + $('#signed-in-title').html(''); + $("#submit").on('click', loginFun); + $('#modalLogIn').modal(); + + $("#screen_login").css('display', ''); + $('#disabled').css('display', 'none'); + }, + 'exit' : function(){ + $("#submit").off('click', loginFun); + $("#screen_login").css('display', 'none'); + $('#signed-in-title').html('Signed in as '+$('#username').val()); + $("#password").val(''); + } + }); })();
\ No newline at end of file diff --git a/js/codeq/settings.js b/js/codeq/settings.js new file mode 100644 index 0000000..73bef14 --- /dev/null +++ b/js/codeq/settings.js @@ -0,0 +1,18 @@ +/** + * Created by robert on 9/29/15. + */ +(function(){ + $("#gui_lang_select").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(); + } + }) +})();
\ No newline at end of file |