diff options
author | pzread <netfirewall@gmail.com> | 2013-03-10 15:02:19 +0800 |
---|---|---|
committer | pzread <netfirewall@gmail.com> | 2013-03-10 15:02:19 +0800 |
commit | 0bcc905d92d2f69a0b961746be1f19ef096857a3 (patch) | |
tree | 514abd4fd4319cb6e05df7007580f8afc5896040 /toj/sqmod/sqmod_test/sqmod_test.js | |
parent | 898913018b1d3f289f10d4716e28489497c977cb (diff) | |
download | taiwan-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-x | toj/sqmod/sqmod_test/sqmod_test.js | 127 |
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 + ' '); + j_prog.html(Math.floor(baseline.pass_score) + ' '); 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 + ' '); + j_prog.html(Math.floor(baseline.good_score) + ' '); 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 + ' '); + j_prog.html(Math.floor(baseline.total_score) + ' '); ratio = totalscore * 100 / baseline.total_score; j_prog = j_progbox.find('div.prog'); j_prog.css('width',ratio + '%'); - j_prog.html(totalscore + ' '); + j_prog.html(Math.floor(totalscore) + ' '); 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); |