summaryrefslogtreecommitdiff
path: root/js/codeq
diff options
context:
space:
mode:
authorMarko Pušnik <marko.pusnik@guru.si>2015-10-12 18:23:33 +0200
committerMarko Pušnik <marko.pusnik@guru.si>2015-10-12 18:23:33 +0200
commitf862dbbb936c003e0f6ce28ae0062428db30b8e5 (patch)
tree8ae8cf49ee279cc552d25b1ec8f9ff3f7af1e421 /js/codeq
parent05fc111e65c93cc8f33051f0c0a8084a5c5debf1 (diff)
show basic user statistics on profile page
Diffstat (limited to 'js/codeq')
-rw-r--r--js/codeq/comms.js4
-rw-r--r--js/codeq/profile.js38
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');