diff options
author | pzread <netfirewall@gmail.com> | 2013-07-04 02:30:55 +0800 |
---|---|---|
committer | pzread <netfirewall@gmail.com> | 2013-07-04 02:30:55 +0800 |
commit | a4924e057f9ec673eb0c0c8e7669df338ddf13d2 (patch) | |
tree | 60b82e9f66134741274ab1f71383076653dc692a /src/js/manage.js | |
parent | 11c1e8d39a35e2e21cd15673461e3ec5ce1e5ceb (diff) | |
download | taiwan-online-judge-a4924e057f9ec673eb0c0c8e7669df338ddf13d2.tar taiwan-online-judge-a4924e057f9ec673eb0c0c8e7669df338ddf13d2.tar.gz taiwan-online-judge-a4924e057f9ec673eb0c0c8e7669df338ddf13d2.tar.bz2 taiwan-online-judge-a4924e057f9ec673eb0c0c8e7669df338ddf13d2.tar.lz taiwan-online-judge-a4924e057f9ec673eb0c0c8e7669df338ddf13d2.tar.xz taiwan-online-judge-a4924e057f9ec673eb0c0c8e7669df338ddf13d2.tar.zst taiwan-online-judge-a4924e057f9ec673eb0c0c8e7669df338ddf13d2.zip |
Add sqmod pmod.
Diffstat (limited to 'src/js/manage.js')
-rw-r--r-- | src/js/manage.js | 174 |
1 files changed, 142 insertions, 32 deletions
diff --git a/src/js/manage.js b/src/js/manage.js index d631d0e..e3af1f9 100644 --- a/src/js/manage.js +++ b/src/js/manage.js @@ -3,15 +3,17 @@ var manage = new function(){ var that = this; var j_index_page; + + var manage_node = new vus.node('manage'); + var dash_node = new vus.node('dash'); + var square_node = new vus.node('square'); + var problem_node = new vus.node('problem'); - that.ready = function(){ - var manage_node = new vus.node('manage'); - var square_node = new vus.node('square'); - var problem_node = new vus.node('problem'); - - var j_tabnav_square; - var j_tabnav_problem; + var j_tabnav_dash; + var j_tabnav_square; + var j_tabnav_problem; + that.ready = function(){ j_index_page = $('#index_page'); manage_node.url_chg = function(direct,url_upart,url_dpart,param){ @@ -19,17 +21,72 @@ var manage = new function(){ index.set_menu('管理'); index.clear_tabnav(); + j_tabnav_dash = index.add_tabnav('儀表板','/toj/manage/dash/'); j_tabnav_square = index.add_tabnav('方塊','/toj/manage/square/'); j_tabnav_problem = index.add_tabnav('題目','/toj/manage/problem/'); - - com.call_backend('core/user/','list_auth',function(result){ - console.log(result); - }); } return 'cont'; }; com.vus_root.child_set(manage_node); + + dash_node.url_chg = function(direct,url_upart,url_dpart,param){ + if(direct == 'in'){ + j_tabnav_dash.active(); + + com.loadpage('/toj/html/manage_dash.html').done(function(){ + var i; + var j_accesslist = j_index_page.find('table.accesslist'); + var j_item; + var j_permission; + var accessid; + var authlist; + var autho; + + authlist = new Array(); + for(accessid in user.authmap){ + authlist.push(user.authmap[accessid]); + } + authlist.sort(function(a,b){ + return a.accessid - b.accessid; + }); + + for(i = 0;i < authlist.length;i++){ + autho = authlist[i]; + + j_item = $('<tr><td class="accessid"></td><td class="permission"></td></tr>'); + j_item.find('td.accessid').text(autho.accessid); + j_permission = j_item.find('td.permission'); + + if(com.check_access(autho.accessid,ACCESS_READ)){ + j_permission.append($('<span class="label label-success">READ</span>')); + } + if(com.check_access(autho.accessid,ACCESS_WRITE)){ + j_permission.append($('<span class="label label-warning">WRITE</span>')); + } + if(com.check_access(autho.accessid,ACCESS_CREATE)){ + j_permission.append($('<span class="label label-info">CREATE</span>')); + } + if(com.check_access(autho.accessid,ACCESS_DELETE)){ + j_permission.append($('<span class="label label-important">DELETE</span>')); + } + if(com.check_access(autho.accessid,ACCESS_SETPER)){ + j_permission.append($('<span class="label label-inverse">SETPER</span>')); + } + if(com.check_access(autho.accessid,ACCESS_EXECUTE)){ + j_permission.append($('<span class="label">EXECUTE</span>')); + } + + j_accesslist.append(j_item); + } + }); + }else if(direct == 'out'){ + + } + + return 'cont'; + }; + manage_node.child_set(dash_node); square_node.url_chg = function(direct,url_upart,url_dpart,param){ var j_create; @@ -41,8 +98,9 @@ var manage = new function(){ var set_tagbox_cate; var set_data; - function _item_set(j_item,id,title,start_time,end_time,cateid,intro,logo,hidden){ + function _item_set(j_item,id,title,hidden,start_time,end_time,cateid,intro,logo){ var i; + var j_hidden; var j_cate; var j_label; @@ -55,6 +113,15 @@ var manage = new function(){ if(end_time != null){ j_item.find('td.time > div.end').text('└→' + com.get_timestring(end_time)); } + + j_hidden = j_item.find('td.hid'); + if(hidden == false){ + j_hidden.text('公開'); + j_hidden.removeClass('text-warning'); + }else{ + j_hidden.text('隱藏'); + j_hidden.addClass('text-warning'); + } j_cate = j_item.find('td.cate'); j_cate.empty(); @@ -68,12 +135,12 @@ var manage = new function(){ set_data = { 'id':id, 'title':title, + 'hidden':hidden, 'start_time':start_time, 'end_time':end_time, 'cateid':cateid, 'intro':intro, 'logo':logo, - 'hidden':hidden }; j_set.modal('show'); @@ -88,10 +155,10 @@ var manage = new function(){ },id); }); } - function _item_create(id,title,start_time,end_time,cateid,intro,logo,hidden){ - var j_item = $('<tr class="item"><td class="id"></td><td class="title"><td class="time"><div class="time start"></div><div class="time end"></div</td></td><td class="cate"></td><td class="oper"><div class="btn-group"><button class="btn btn-small set"><i class="icon-cog"></i></button><button class="btn btn-small del"><i class="icon-trash"></i></button></div></td></tr>'); + function _item_create(id,title,hidden,start_time,end_time,cateid,intro,logo){ + var j_item = $('<tr class="item"><td class="id"></td><td class="title"><td class="time"><div class="time start"></div><div class="time end"></div</td><td class="hid"></td></td><td class="cate"></td><td class="oper"><div class="btn-group"><button class="btn btn-small set"><i class="icon-cog"></i></button><button class="btn btn-small del"><i class="icon-trash"></i></button></div></td></tr>'); - _item_set(j_item,id,title,start_time,end_time,cateid,intro,logo,hidden); + _item_set(j_item,id,title,hidden,start_time,end_time,cateid,intro,logo); return j_item; } @@ -103,6 +170,7 @@ var manage = new function(){ if(com.is_callerr(result)){ index.add_alert('','警告','管理發生錯誤'); + defer.reject(data); }else{ defer.resolve(data); } @@ -157,24 +225,24 @@ var manage = new function(){ _item_set($(items[i]),sqo.sqid, sqo.title, + sqo.hidden, sqo.start_time, sqo.end_time, sqo.cateid, sqo.intro, - sqo.logo, - sqo.hidden); + sqo.logo); } for(;i < data.length;i++){ sqo = data[i]; j_item = _item_create(sqo.sqid, sqo.title, + sqo.hidden, sqo.start_time, sqo.end_time, sqo.cateid, sqo.intro, - sqo.logo, - sqo.hidden); + sqo.logo); j_list.append(j_item); } for(;i < items.length;i++){ @@ -189,6 +257,7 @@ var manage = new function(){ if(direct == 'in'){ com.loadpage('/toj/html/manage_square.html').done(function(){ var j_catebox; + var j_button; j_tabnav_square.active(); @@ -200,6 +269,14 @@ var manage = new function(){ create_tagbox_cate = j_catebox.tagbox({'words':[],'restrict':true,'duplicate':false}); j_catebox.find('input').attr('placeholder','+加入分類'); + j_button = j_index_page.find('div.oper > button.create'); + if(com.check_access(ACCESSID_SQUAREMG,ACCESS_CREATE)){ + j_button.show(); + } + j_index_page.find('div.oper > button.create').on('click',function(e){ + j_create.modal('show'); + }); + j_create.find('[name="logo"]').on('change',function(e){ var url; var j_logo = j_create.find('img.logo'); @@ -399,10 +476,6 @@ var manage = new function(){ set_tagbox_cate.clear(); }); - j_index_page.find('div.oper > button.create').on('click',function(e){ - j_create.modal('show'); - }); - _update_list(); }); } @@ -417,14 +490,25 @@ var manage = new function(){ var j_list; var set_data; - function _item_set(j_item,proid,title,pmodid){ + function _item_set(j_item,proid,title,hidden,pmodid){ + var j_hidden; + j_item.find('td.proid').text(proid); j_item.find('td.title').text(title); + j_hidden = j_item.find('td.hid'); + if(hidden == false){ + j_hidden.text('公開'); + j_hidden.removeClass('text-warning'); + }else{ + j_hidden.text('隱藏'); + j_hidden.addClass('text-warning'); + } j_item.find('button.set').on('click',function(e){ set_data = { 'proid':proid, 'title':title, + 'hidden':hidden }; j_set.modal('show'); @@ -439,10 +523,10 @@ var manage = new function(){ },proid); }); } - function _item_create(proid,title,pmodid){ - var j_item = $('<tr><td class="proid"></td><td class="title"></td><td class="oper"><div class="btn-group"><button class="btn btn-small set"><i class="icon-cog"></i></button><button class="btn btn-small del"><i class="icon-trash"></i></button></div></td></tr>') + function _item_create(proid,title,hidden,pmodid){ + var j_item = $('<tr><td class="proid"></td><td class="title"></td><td class="hid"></td><td class="oper"><div class="btn-group"><button class="btn btn-small set"><i class="icon-cog"></i></button><button class="btn btn-small del"><i class="icon-trash"></i></button></div></td></tr>'); - _item_set(j_item,proid,title,pmodid); + _item_set(j_item,proid,title,hidden,pmodid); return j_item; } @@ -457,6 +541,7 @@ var manage = new function(){ if(com.is_callerr(result)){ index.add_alert('','警告','管理發生錯誤'); + defer.reject(data); }else{ defer.resolve(data); } @@ -477,7 +562,7 @@ var manage = new function(){ j_list.empty(); for(i = 0;i < data.length;i++){ proo = data[i]; - j_item = _item_create(proo.proid,proo.title,proo.pmodid); + j_item = _item_create(proo.proid,proo.title,proo.hidden,proo.pmodid); j_list.append(j_item); } } @@ -488,11 +573,17 @@ var manage = new function(){ j_tabnav_problem.active(); com.loadpage('/toj/html/manage_problem.html').done(function(){ + var j_button; + j_create = j_index_page.find('div.create'); j_set = j_index_page.find('div.set'); j_list = j_index_page.find('table.list > tbody'); - j_index_page.find('button.create').on('click',function(e){ + j_button = j_index_page.find('div.oper > button.create'); + if(com.check_access(ACCESSID_PROBLEMMG,ACCESS_CREATE)){ + j_button.show(); + } + j_button.on('click',function(e){ j_create.modal('show'); }); @@ -519,6 +610,13 @@ var manage = new function(){ j_create.find('button.submit').on('click',function(e){ var title = j_create.find('[name="title"]').val(); var pmodid = parseInt(j_create.find('[name="pmod"]').val()); + var hidden = j_create.find('[name="hidden"]').val(); + + if(hidden == '0'){ + hidden = false; + }else{ + hidden = true; + } com.call_backend('core/problem/','create_problem',function(result){ var data = result.data; @@ -541,7 +639,7 @@ var manage = new function(){ index.add_alert('alert-success','成功','題目已建立'); _update_list(); } - },title,pmodid); + },title,hidden,pmodid); }); j_create.find('button.cancel').on('click',function(e){ j_create.modal('hide'); @@ -549,12 +647,24 @@ var manage = new function(){ j_set.on('show',function(e){ j_set.find('[name="title"]').val(set_data.title); + if(set_data.hidden == false){ + j_set.find('[name="hidden"]').val(0); + }else{ + j_set.find('[name="hidden"]').val(1); + } }); j_set.on('hide',function(e){ j_set.find('input').val(''); }); j_set.find('button.submit').on('click',function(e){ var title = j_set.find('[name="title"]').val(); + var hidden = j_set.find('[name="hidden"]').val(); + + if(hidden == '0'){ + hidden = false; + }else{ + hidden = true; + } com.call_backend('core/problem/','set_problem',function(result){ var data = result.data; @@ -577,7 +687,7 @@ var manage = new function(){ index.add_alert('alert-success','成功','題目已設定'); _update_list(); } - },set_data.proid,title); + },set_data.proid,title,hidden); }); j_set.find('button.cancel').on('click',function(e){ j_set.modal('hide'); |