diff options
author | pzread <netfirewall@gmail.com> | 2013-06-20 16:17:22 +0800 |
---|---|---|
committer | pzread <netfirewall@gmail.com> | 2013-06-20 16:17:22 +0800 |
commit | a66de70527978a4510c6e230fcc56ce890bf20a2 (patch) | |
tree | d249403b215329043ac9877b8c92e5d25d305824 /src/js | |
parent | 95efc8ed62d8afcfd76107d6f1058e7e366aefd9 (diff) | |
download | taiwan-online-judge-a66de70527978a4510c6e230fcc56ce890bf20a2.tar taiwan-online-judge-a66de70527978a4510c6e230fcc56ce890bf20a2.tar.gz taiwan-online-judge-a66de70527978a4510c6e230fcc56ce890bf20a2.tar.bz2 taiwan-online-judge-a66de70527978a4510c6e230fcc56ce890bf20a2.tar.lz taiwan-online-judge-a66de70527978a4510c6e230fcc56ce890bf20a2.tar.xz taiwan-online-judge-a66de70527978a4510c6e230fcc56ce890bf20a2.tar.zst taiwan-online-judge-a66de70527978a4510c6e230fcc56ce890bf20a2.zip |
Done delete mail
Diffstat (limited to 'src/js')
-rw-r--r-- | src/js/com.js | 48 | ||||
-rw-r--r-- | src/js/mail.js | 73 | ||||
-rw-r--r-- | src/js/user.js | 4 |
3 files changed, 109 insertions, 16 deletions
diff --git a/src/js/com.js b/src/js/com.js index 61af8ab..4105dd6 100644 --- a/src/js/com.js +++ b/src/js/com.js @@ -94,7 +94,7 @@ var com = new function(){ var urlchg_hasnext = false; var check_mbox_url = function(url){ if(url.search(/toj\/m\/.*/) != -1){ -return true; + return true; }else{ return false; } @@ -114,6 +114,28 @@ return true; var url; var urlpart; + function _update_check(j_e,checked){ + var i; + var label; + var spans; + var j_span; + + if(checked == false){ + j_e.empty(); + j_e.attr('checked',null); + }else{ + j_e.append($('<i class="icon-ok"></i>')); + j_e.attr('checked','checked'); + } + + if((label = j_e.attr('data-all')) != undefined){ + spans = $.find('span.check[data-label="' + label + '"]'); + for(i = 0;i < spans.length;i++){ + $(spans[i]).check(checked) + } + } + } + that.vus_root = new vus.node(null); that.vus_mbox = new vus.node('m'); @@ -144,6 +166,28 @@ return true; that.url_push($(this).attr('href')); return false; }); + $(document).on('click','span.check',function(e){ + var j_e = $(e.target); + + if(!j_e.is('span.check')){ + j_e = j_e.parent('span.check'); + } + _update_check(j_e,!j_e.check()); + + return false; + }); + + $.fn.check = function(checked){ + if(checked != undefined){ + _update_check(this,checked); + } + + if(this.attr('checked') == 'checked'){ + return true; + }else{ + return false; + } + } }; that.url_push = function(url){ @@ -527,7 +571,7 @@ return true; var offs = new Array; start = Math.floor(start / step); - end = Math.floor((end - 1)/ step); + end = Math.floor(Math.max(0,(end - 1)) / step); curr = Math.floor(curr / step); j_div.empty(); diff --git a/src/js/mail.js b/src/js/mail.js index 96fed56..780aa90 100644 --- a/src/js/mail.js +++ b/src/js/mail.js @@ -11,11 +11,17 @@ var mail = new function(){ var maillist_type = null; var maillist_off = null; - function mailitem_set(j_item,mailid,from_username,title,time,unread){ - j_item.find('td.from_username').text(from_username); + function mailitem_set(j_item,mailid,username,title,time,unread){ + var j_span; + + j_item.find('td.username').text(username); j_item.find('td.title').text(title); j_item.find('td.time').text(time); + j_span = j_item.find('span.check'); + j_span.check(false); + j_span.attr('mailid',mailid); + if(unread == true){ j_item.addClass('warning'); }else{ @@ -23,19 +29,30 @@ var mail = new function(){ } j_item.off('click').on('click',function(e){ + var j_e = $(e.target); + if(j_e.is('td.check')){ + j_e.find('span.check').click(); + return; + } + if(j_e.parents('td.check').length > 0){ + return; + } + readmail_mailid = mailid; j_readmail.modal('show'); return false; }); }; - function mailitem_create(mailid,from_username,title,time,unread){ - var j_item = $('<tr class="item"><td class="from_username"></td><td class="title"></td><td class="time"></td></tr>'); + function mailitem_create(mailid,username,title,time,unread){ + var j_item = $('<tr class="item"><td class="check"><span class="check" data-label="mailcheck"></span></td><td class="username"></td><td class="title"></td><td class="time"></td></tr>'); - mailitem_set(j_item,mailid,from_username,title,time,unread); + mailitem_set(j_item,mailid,username,title,time,unread); return j_item; }; function update_maillist(){ + j_index_page.find('span.checkall').check(false); + com.call_backend('core/mail/','list_mail',function(result){ var data; var mail; @@ -94,13 +111,41 @@ var mail = new function(){ newmail_content = com.create_codebox(j_newmail.find('div.content'),'text/html'); readmail_content = com.create_codebox(j_readmail.find('div.content'),'text/html',true); - index.add_tabnav('寫新郵件','').on('click',function(e){ - j_newmail.modal('show'); - return false; - }); j_tabnav_inbox = index.add_tabnav('收件匣','/toj/mail/inbox/'); j_tabnav_backup = index.add_tabnav('寄件備份','/toj/mail/backup/'); + j_index_page.find('button.newmail').on('click',function(e){ + j_newmail.modal('show'); + }); + j_index_page.find('button.delmail').on('click',function(e){ + var i; + var mails; + var count = 0; + var fail = 0; + + mails = j_maillist.find('span.check[checked="checked"]'); + count = mails.length; + for(i = 0;i < mails.length;i++){ + com.call_backend('core/mail/','del_mail',function(result){ + console.log(result); + if(com.is_callerr(result)){ + fail++; + } + + count--; + if(count == 0){ + if(fail == 0){ + index.add_alert('alert-success','成功','郵件已刪除',true); + }else{ + index.add_alert('alert-error','失敗',fail + '封郵件刪除失敗',true); + } + + update_maillist(); + } + },parseInt($(mails[i]).attr('mailid'))); + } + }); + j_newmail.on('shown',function(e){ newmail_content.refresh(); }); @@ -155,7 +200,7 @@ var mail = new function(){ data = result.data; j_readmail.find('h3.title').text(data.title); - j_readmail.find('span.from_username').text(data.from_username); + j_readmail.find('span.username').text(data.from_username); readmail_content.setValue(data.content); } },readmail_mailid); @@ -171,7 +216,7 @@ var mail = new function(){ update_maillist(); }); j_readmail.find('button.reply').on('click',function(e){ - j_newmail.find('input.to_username').val(j_readmail.find('span.from_username').text()); + j_newmail.find('input.to_username').val(j_readmail.find('span.username').text()); j_newmail.find('input.title').val('Re: ' + j_readmail.find('h3.title').text()); j_readmail.modal('hide'); @@ -204,6 +249,8 @@ var mail = new function(){ } j_tabnav_inbox.active(); + j_index_page.find('table.maillist th.username').text('寄件人'); + j_readmail.find('span.username_label').text('寄件人'); com.call_backend('core/mail/','get_mail_count',function(result){ var i; @@ -238,6 +285,8 @@ var mail = new function(){ } j_tabnav_backup.active(); + j_index_page.find('table.maillist th.username').text('收件人'); + j_readmail.find('span.username_label').text('收件人'); com.call_backend('core/mail/','get_mail_count',function(result){ var i; @@ -248,7 +297,7 @@ var mail = new function(){ if(com.is_callerr(result)){ //TODO GE }else{ - offs = com.create_pagination(j_div,0,result.data.tot_count,maillist_off,2); + offs = com.create_pagination(j_div,0,result.data.tot_count,maillist_off,20); as = j_div.find('a'); for(i = 0;i < as.length;i++){ $(as[i]).attr('href','/toj/mail/backup:' + offs[i] + '/'); diff --git a/src/js/user.js b/src/js/user.js index da4ae2c..259768d 100644 --- a/src/js/user.js +++ b/src/js/user.js @@ -78,7 +78,7 @@ var user = new function(){ function _tmp(y){ var now = 0; - var ay = 50; + var ay = 80; function __ani(){ if(y <= now){ @@ -88,7 +88,7 @@ var user = new function(){ $(window).scrollTop(now); now = now + ay; - ay = Math.max(5,ay * 0.87); + ay = Math.max(5,ay * 0.86); setTimeout(__ani,10); } |