diff options
Diffstat (limited to 'js/codeq')
-rw-r--r-- | js/codeq/comms.js | 4 | ||||
-rw-r--r-- | js/codeq/profile.js | 38 |
2 files changed, 41 insertions, 1 deletions
diff --git a/js/codeq/comms.js b/js/codeq/comms.js index ab168ff..89813ee 100644 --- a/js/codeq/comms.js +++ b/js/codeq/comms.js @@ -382,6 +382,10 @@ return this.send({'action': 'change_password', 'password': newpassword}); }, + 'getUserStat': function () { + return this.send({'action': 'user_stat'}); + }, + 'updateSettings': function (new_settings){ return this.send({'action': 'update_settings', 'settings': new_settings}); }, diff --git a/js/codeq/profile.js b/js/codeq/profile.js index 2759be3..4723b4a 100644 --- a/js/codeq/profile.js +++ b/js/codeq/profile.js @@ -73,9 +73,45 @@ codeq.globalStateMachine.register('profile',{
'enter': function(){
-
$("#screen_profile").css('display', '');
$('#disabled').css('display', 'none');
+ codeq.comms.getUserStat()
+ .then(function (data) {
+ if (data.code !== 0) throw new Error('GetUserStat failed, code: ' + data.code + ', message: ' + data.message);
+ console.log(data);
+ var data = data.stat;
+
+ var columns = ['language', 'problem_group', 'problems_count', 'done', 'in_progress'],
+ labels = ['Language', 'Problem group', 'All', 'Done', 'In progress'];
+
+ var items='<thead><tr>';
+ $.each(labels, function( key, val ) {
+ items+='<th>'+val+'</th>';
+ });
+ items+='</tr></thead>';
+ $.each( data, function( object, row ) {
+ items+='<tr>';
+ if(row['problem_group']) {
+ $.each( columns, function( key, val ) {
+ items+='<td style="white-space: nowrap">'+row[val]||""+'</td>';
+ });
+ }
+ else {
+ $.each( columns, function( key, val ) {
+ items+='<td style="white-space: nowrap"><strong>'+(row[val]==null?'(all)':row[val])+'</strong></td>';
+ });
+ }
+ items+='</td>';
+ });
+
+ $('#table1').html(items)
+
+ })
+ .fail(function (reason) {
+ codeq.log.error('GetUserStat failed: ' + reason, reason);
+ alert('GetUserStat failed: ' + reason);
+ })
+ .done();
},
'exit' : function(){
$("#screen_profile").css('display', 'none');
|