aboutsummaryrefslogtreecommitdiffstats
path: root/src/js/mail.js
diff options
context:
space:
mode:
authorpzread <netfirewall@gmail.com>2013-06-19 01:41:51 +0800
committerpzread <netfirewall@gmail.com>2013-06-19 01:41:51 +0800
commit7623d6373ee00a8b8fbe92f7adc16296aa73688b (patch)
treeaf4e05fdc780e90b554431ca5382ae149b434c6f /src/js/mail.js
parentef9cd376c41e0992a3cbf7e4a2529d6338d68d7c (diff)
downloadtaiwan-online-judge-7623d6373ee00a8b8fbe92f7adc16296aa73688b.tar
taiwan-online-judge-7623d6373ee00a8b8fbe92f7adc16296aa73688b.tar.gz
taiwan-online-judge-7623d6373ee00a8b8fbe92f7adc16296aa73688b.tar.bz2
taiwan-online-judge-7623d6373ee00a8b8fbe92f7adc16296aa73688b.tar.lz
taiwan-online-judge-7623d6373ee00a8b8fbe92f7adc16296aa73688b.tar.xz
taiwan-online-judge-7623d6373ee00a8b8fbe92f7adc16296aa73688b.tar.zst
taiwan-online-judge-7623d6373ee00a8b8fbe92f7adc16296aa73688b.zip
Add user,mail UI. Fix several bug
Diffstat (limited to 'src/js/mail.js')
-rw-r--r--src/js/mail.js112
1 files changed, 112 insertions, 0 deletions
diff --git a/src/js/mail.js b/src/js/mail.js
new file mode 100644
index 0000000..867b60b
--- /dev/null
+++ b/src/js/mail.js
@@ -0,0 +1,112 @@
+var mail = new function(){
+ var that = this;
+ var j_index_page;
+ var j_maillist;
+
+ var mailitem_set = function(j_item,from,title,time,unread){
+ j_item.find('td.from').text(from);
+ j_item.find('td.title').text(title);
+ j_item.find('td.time').text(time);
+
+ if(unread == true){
+ j_item.addClass('warning');
+ }
+ };
+ var mailitem_create = function(from,title,time,unread){
+ var j_item = $('<tr class="item"><td class="from"></td><td class="title"></td><td class="time"></td></tr>');
+
+ mailitem_set(j_item,from,title,time,unread);
+
+ return j_item;
+ };
+
+ that.ready = function(){
+ var mail_node = new vus.node('mail');
+
+ j_index_page = $('#index_page');
+
+ mail_node.url_chg = function(direct,url_upart,url_dpart,param){
+ if(direct == 'in'){
+ com.loadpage('信箱','/toj/html/mail.html').done(function(){
+ var j_oper;
+ var j_newmail;
+ var newmail_content;
+
+ j_maillist = j_index_page.find('table.maillist > tbody');
+
+ j_oper = j_index_page.find('div.oper');
+ j_oper.find('li.newmail > a').on('click',function(e){
+ j_newmail.modal('show');
+ return false;
+ });
+
+ j_newmail = j_index_page.find('div.newmail');
+ newmail_content = com.create_codebox(j_newmail.find('div.content'),'text/html');
+
+ j_newmail.on('shown',function(e){
+ newmail_content.refresh();
+ });
+ j_newmail.on('hide',function(e){
+ j_newmail.find('input').val('');
+ newmail_content.setValue('');
+ });
+ j_newmail.find('button.submit').on('click',function(e){
+ var to_username = j_newmail.find('input.to_username').val();
+ var title = j_newmail.find('input.title').val();
+ var content = newmail_content.getValue();
+
+ com.call_backend('core/mail/','send_mail',function(result){
+ var data = result.data;
+ var errmsg;
+
+ j_newmail.modal('hide');
+
+ if(com.is_callerr(result)){
+ if(data == 'Etitle_too_short'){
+ errmsg = '郵件標題過短';
+ }else if(data == 'Etitle_too_long'){
+ errmsg = '郵件標題過長';
+ }else if(data == 'Econtent_too_short'){
+ errmsg = '郵件內容過短';
+ }else if(data == 'Econtent_too_long'){
+ errmsg = '郵件內容過長';
+ }else if(data == 'Eto_username'){
+ errmsg = '收件人不存在';
+ }else{
+ errmsg = '信件寄出時發生錯誤';
+ }
+
+ index.add_alert('alert-error','失敗',errmsg,true);
+ }else{
+ index.add_alert('alert-success','成功','信件已寄出',true);
+ }
+ },to_username,title,content);
+ });
+ j_newmail.find('button.cancel').on('click',function(e){
+ j_newmail.modal('hide');
+ });
+
+ com.call_backend('core/mail/','get_mail_count',function(result){
+ if(com.is_callerr(result)){
+ //TODO GE
+ }else{
+
+ }
+ });
+ com.call_backend('core/mail/','list_mail',function(result){
+ console.log(result);
+ },1);
+
+ var j_item;
+ var i;
+
+ for(i = 0;i < 20;i++){
+ j_item = mailitem_create('alice','範例右鍵標題','2013-6-17 10:24');
+ j_maillist.append(j_item);
+ }
+ });
+ }
+ };
+ com.vus_root.child_set(mail_node);
+ };
+};