aboutsummaryrefslogtreecommitdiffstats
path: root/toj/sqmod/sqmod_test/sqmod_test.js
diff options
context:
space:
mode:
authorpzread <netfirewall@gmail.com>2013-03-10 15:02:19 +0800
committerpzread <netfirewall@gmail.com>2013-03-10 15:02:19 +0800
commit0bcc905d92d2f69a0b961746be1f19ef096857a3 (patch)
tree514abd4fd4319cb6e05df7007580f8afc5896040 /toj/sqmod/sqmod_test/sqmod_test.js
parent898913018b1d3f289f10d4716e28489497c977cb (diff)
downloadtaiwan-online-judge-0bcc905d92d2f69a0b961746be1f19ef096857a3.tar
taiwan-online-judge-0bcc905d92d2f69a0b961746be1f19ef096857a3.tar.gz
taiwan-online-judge-0bcc905d92d2f69a0b961746be1f19ef096857a3.tar.bz2
taiwan-online-judge-0bcc905d92d2f69a0b961746be1f19ef096857a3.tar.lz
taiwan-online-judge-0bcc905d92d2f69a0b961746be1f19ef096857a3.tar.xz
taiwan-online-judge-0bcc905d92d2f69a0b961746be1f19ef096857a3.tar.zst
taiwan-online-judge-0bcc905d92d2f69a0b961746be1f19ef096857a3.zip
Add Virtual URI System. New UI design. Improve sqmod_test
Diffstat (limited to 'toj/sqmod/sqmod_test/sqmod_test.js')
-rwxr-xr-xtoj/sqmod/sqmod_test/sqmod_test.js127
1 files changed, 59 insertions, 68 deletions
diff --git a/toj/sqmod/sqmod_test/sqmod_test.js b/toj/sqmod/sqmod_test/sqmod_test.js
index 6d01881..1792b77 100755
--- a/toj/sqmod/sqmod_test/sqmod_test.js
+++ b/toj/sqmod/sqmod_test/sqmod_test.js
@@ -1,46 +1,28 @@
-var sqmod_test = {
- init:function(that,j_page){
- var pro_tab = new class_sqmod_test_pro_tab(that);
-
- that.export_urlchange = function(direct){
- var _in = function(){
- that.fadein(j_page);
-
- that.addtab('pro',pro_tab);
- index.addtab('pro','/toj/sq/' + that.sqid + '/','題目');
-
- _change();
- };
- var _out = function(){
- that.fadeout(j_page);
- index.emptytab();
- that.tab_urlchange(null);
- };
- var _change = function(){
- var tabname;
-
- tabname = common.geturlpart()[2];
- if(!(tabname in that.tab_list)){
- tabname = 'pro';
- common.replaceurl('/toj/sq/' + that.sqid + '/pro/');
- }
- that.tab_urlchange(tabname);
- }
-
- if(direct == 'in'){
- _in();
- }else if(direct == 'out'){
- _out();
- }else if(direct == 'same'){
- _change();
+var sqmod_test = function(that,j_page){
+ var pro_pbox = new class_sqmod_test_pro_pbox(that.sqid,j_page);
+
+ that.node.url_chg = function(direct,url_upart,url_dpart){
+ if(direct == 'in'){
+ index.title_set('TOJ-' + that.sqname);
+
+ index.tab_add('pro','/toj/sq/' + that.sqid + '/','題目');
+
+ if(url_dpart[0] == ''){
+ com.url_update('/toj/sq/' + that.sqid + '/pro/');
+ return 'stop';
}
+ }else if(direct == 'out'){
+ index.tab_empty();
}
- }
+
+ return 'cont';
+ };
+ that.node.child_set(pro_pbox.node);
};
-var class_sqmod_test_pro_tab = function(paobj){
+var class_sqmod_test_pro_pbox = function(sqid,j_page){
var that = this;
- var j_tab = $('#index_page > [page="sq"] > [tab="pro"]');
+ var j_pbox = j_page.find('div.pro_pbox');
var promap = null;
var pro_listset = function(j_item,proo){
@@ -56,13 +38,13 @@ var class_sqmod_test_pro_tab = function(paobj){
j_item.attr('proid',proo.proid);
j_item.find('td.no').text(proo.prono);
- j_a = j_item.find('td.name > a.link');
+ j_a = j_item.find('td.name > a');
j_a.attr('href','/toj/pro/' + proo.proid + '/');
j_a.text(proo.proname);
bscore = proo.bscore;
fscore = proo.full_score;
- j_item.find('td.bscore').text(bscore + ' / ' + fscore);
+ j_item.find('td.bscore').text(Math.floor(bscore) + ' / ' + Math.floor(fscore));
if(proo.tried == false){
j_item.css('border-color','#1C1C1C');
@@ -80,18 +62,18 @@ var class_sqmod_test_pro_tab = function(paobj){
}
}
- j_team = j_item.find('td.team');
- j_team.hide();
+ j_item.find('td.team').remove();
for(i = 0;i < proo.tscore.length;i++){
- $(j_team[i]).text(proo.tscore[i]);
- $(j_team[i]).show();
+ j_team = $('<td class="team"></td>');
+ j_team.text(Math.floor(proo.tscore[i]));
+ j_item.append(j_team);
}
}
};
var pro_listnew = function(proo){
var j_item;
- j_item = $('<tr class="item"><td class="no"></td><td class="name"><a class="link"></a></td><td class="bscore"></td><td class="team"></td><td class="team"></td><td class="team"></td><td class="team"></td></tr>');
+ j_item = $('<tr class="item"><td class="no"></td><td class="name"><a></a></td><td class="bscore"></td></tr>');
pro_listset(j_item,proo);
return j_item;
@@ -105,24 +87,24 @@ var class_sqmod_test_pro_tab = function(paobj){
ratio = baseline.pass_score * 100 / baseline.total_score;
j_prog = j_progbox.find('div.pass');
j_prog.css('width',ratio + '%');
- j_prog.html(baseline.pass_score + '&nbsp');
+ j_prog.html(Math.floor(baseline.pass_score) + '&nbsp');
off += ratio;
ratio = (baseline.good_score - baseline.pass_score) * 100 / baseline.total_score;
j_prog = j_progbox.find('div.good');
j_prog.css('left',off + '%');
j_prog.css('width',ratio + '%');
- j_prog.html(baseline.good_score + '&nbsp');
+ j_prog.html(Math.floor(baseline.good_score) + '&nbsp');
off += ratio;
ratio = 100 - off;
j_prog = j_progbox.find('div.total');
j_prog.css('left',off + '%');
j_prog.css('width',ratio + '%');
- j_prog.html(baseline.total_score + '&nbsp');
+ j_prog.html(Math.floor(baseline.total_score) + '&nbsp');
ratio = totalscore * 100 / baseline.total_score;
j_prog = j_progbox.find('div.prog');
j_prog.css('width',ratio + '%');
- j_prog.html(totalscore + '&nbsp');
+ j_prog.html(Math.floor(totalscore) + '&nbsp');
if(totalscore < baseline.pass_score){
ratio = totalscore / baseline.pass_score;
j_prog.css('background-color','rgba(255,' + Math.round(64 * ratio) + ',0,0.8)');
@@ -141,7 +123,7 @@ var class_sqmod_test_pro_tab = function(paobj){
return;
}
- $.post('/toj/sqmod/sqmod_test/sqmod_test.php',{'action':'get_user_stat','data':JSON.stringify({'sqid':paobj.sqid,'display_team':true})},function(res){
+ $.post('/toj/sqmod/sqmod_test/sqmod_test.php',{'action':'get_user_stat','data':JSON.stringify({'sqid':sqid,'display_team':true})},function(res){
var i;
var j;
@@ -155,6 +137,7 @@ var class_sqmod_test_pro_tab = function(paobj){
var team_total;
var maxscore;
var j_list;
+ var j_head;
var j_team;
var j_a;
var j_item;
@@ -164,15 +147,17 @@ var class_sqmod_test_pro_tab = function(paobj){
team = reto.team;
prostat = reto.prostat;
- j_list = j_tab.find('table.prolist');
+ j_list = j_pbox.find('table.prolist');
if(team != undefined){
- j_team = j_list.find('th.team');
+ j_head = j_list.find('tr.head');
+ j_head.find('th.team').remove();
for(i = 0;i < team.length;i++){
teamo = team[i];
- j_a = j_team.find('a.link');
- $(j_a[i]).attr('href','/toj/user/' + teamo.uid + '/')
- $(j_a[i]).text(teamo.name);
+ j_team = $('<th class="team"><a></a></th>');
+ j_a = j_team.find('a');
+ j_a.attr('href','/toj/user/' + teamo.uid + '/')
+ j_a.text(teamo.name);
for(j = 0;j < teamo.prostat.length;j++){
if(teamo.prostat[j].tried == true){
@@ -182,10 +167,10 @@ var class_sqmod_test_pro_tab = function(paobj){
}
}
- j_team.show();
+ j_head.append(j_team);
}
- j_tab.find('table.stat tr.team_prog').show();
+ j_pbox.find('table.stat tr.team_prog').show();
}
user_total = 0;
@@ -208,22 +193,25 @@ var class_sqmod_test_pro_tab = function(paobj){
team_total += maxscore;
}
- prog_set(j_tab.find('table.stat div.user_prog'),reto.base_line,user_total);
- prog_set(j_tab.find('table.stat div.team_prog'),reto.team_base_line,team_total);
+ prog_set(j_pbox.find('table.stat div.user_prog'),reto.base_line,user_total);
+ prog_set(j_pbox.find('table.stat div.team_prog'),reto.team_base_line,team_total);
setTimeout(prostat_refresh,2000);
}
});
};
- that.__super(paobj);
+ that.node = new vus.node('pro');
- that.urlchange = function(direct){
+ that.__super();
+
+ that.node.url_chg = function(direct,url_upart,url_dpart){
if(direct == 'in'){
- that.fadein(j_tab);
+ index.tab_hl('pro');
+ that.fadein(j_pbox);
refresh_flag = true;
- $.post('/toj/sqmod/sqmod_test/sqmod_test.php',{'action':'get_prolist','data':JSON.stringify({'sqid':paobj.sqid})},function(res){
+ $.post('/toj/sqmod/sqmod_test/sqmod_test.php',{'action':'get_prolist','data':JSON.stringify({'sqid':sqid})},function(res){
var i;
var reto;
var proo;
@@ -234,13 +222,14 @@ var class_sqmod_test_pro_tab = function(paobj){
reto = JSON.parse(res);
promap = new Array;
- j_list = j_tab.find('table.prolist');
+ j_list = j_pbox.find('table.prolist');
+ console.log(j_pbox.length);
for(i = 0;i < reto.length;i++){
proo = reto[i];
proo.bscore = 0;
proo.tscore = new Array;
proo.tried = false;
- if(proo.hidden == false){
+ if(proo.hidden == false || user.level == -1){
promap[proo.proid] = proo;
j_item = pro_listnew(proo);
j_list.append(j_item);
@@ -250,10 +239,12 @@ var class_sqmod_test_pro_tab = function(paobj){
prostat_refresh();
}
});
-
}else if(direct == 'out'){
- that.fadeout(j_tab);
+ index.tab_ll('pro');
+ that.fadeout(j_pbox);
refresh_flag = false;
}
+
+ return 'cont';
};
-}; __extend(class_sqmod_test_pro_tab,class_common_tab);
+}; __extend(class_sqmod_test_pro_pbox,class_com_pbox);