Changeset 2714


Ignore:
Timestamp:
05/06/10 09:12:42 (14 years ago)
Author:
amuller
Message:

Ticket #1064 - Implementando parcialmente o ticket

Location:
trunk/expressoMail1_2
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/inc/class.imap_functions.inc.php

    r2684 r2714  
    29832983                { 
    29842984                        $params['status'] = 'false'; 
    2985                         $params['command_to_exec'] = "delete_border('". $reuse_border ."');"; 
     2985                        $params['delete_border'] = $reuse_border; 
    29862986                        return $params; 
    29872987                } 
     
    30203020                { 
    30213021                        $params['status'] = 'false'; 
    3022                         $params['command_to_exec'] = "delete_border('". $reuse_border ."');"; 
     3022                        $params['delete_border'] = $reuse_border; 
    30233023                        return $params; 
    30243024                } 
  • trunk/expressoMail1_2/js/jscode/abas.js

    r2642 r2714  
     1var openTab = { 
     2        'type' : [], // 8 types of tabs, further info. see expressolivre.org/dev/wiki/mail/Documentacao 
     3        'content_id' : [], 
     4        'imapUid' : [], // Stores the imap email number of current tab 
     5        'countFile' : [0,0,0,0,0,0,0,0,0,0], // Stores the number of files attached in current tab 
     6        'imapBox' : [], // Stores the folder name 
     7        'toPreserve' : [], // Check if the message should be removed from draft after send 
     8        'autosave_timer' : [] // The timeout timer for autosave function 
     9}; 
     10var tabTypes = { 
     11        'new':4, 
     12        'forward':6, 
     13        'reply_with_history':7, 
     14        'reply_to_all_with_history':7, 
     15        'reply_without_history':7, 
     16        'reply_to_all_without_history':7, 
     17        'edit':5 
     18}; 
     19var currentTab,numBox = 0; // Open Tab and num of mailboxes opened at context 
     20 
    121function setBorderAttributes(ID) 
    222{ 
  • trunk/expressoMail1_2/js/jscode/draw_api_folders.js

    r2699 r2714  
    10361036    td_element3.setAttribute("width", "20%"); 
    10371037    var _onclick = function(){ 
    1038         InfoContact.hide();proxy_mensagens.get_msg(headers_msgs.msg_number, msg_folder,true, show_msg); 
     1038        InfoContact.hide();proxy_mensagens.get_msg(headers_msgs, msg_folder,true, show_msg); 
    10391039    }; 
    10401040    td_element3.onclick = _onclick; 
     
    11401140} 
    11411141 
    1142  
     1142folderHeaders = []; 
    11431143// Draw the inbox and another folders 
    11441144function draw_box(headers_msgs, msg_folder, alternate){ 
     
    11551155    openTab.imapBox[numBox] = msg_folder; 
    11561156    openTab.type[numBox] = 0; 
     1157    folderHeaders[msg_folder] = headers_msgs; 
    11571158 
    11581159    table_message_header_box = document.getElementById("table_message_header_box_"+numBox); 
     
    13631364    } 
    13641365    else if(msg_folder && msg_number){ 
    1365         expresso.connector.cacheNextRequest(); 
    1366         cExecute("expressoMail1_2.imap_functions.get_info_msg&msg_number="+ msg_number + "&msg_folder=" + url_encode(msg_folder), show_msg); 
     1366        proxy_mensagens.get_msg(headers_msgs, url_encode(msg_folder),true, show_msg); 
    13671367        Element('msg_folder').value = ''; 
    13681368        Element('msg_number').value = ''; 
  • trunk/expressoMail1_2/js/jscode/draw_api_messages.js

    r2708 r2714  
    1 var openTab = { 
    2         'type' : [], // 8 types of tabs, further info. see expressolivre.org/dev/wiki/mail/Documentacao 
    3         'content_id' : [], 
    4         'imapUid' : [], // Stores the imap email number of current tab 
    5         'countFile' : [0,0,0,0,0,0,0,0,0,0], // Stores the number of files attached in current tab 
    6         'imapBox' : [], // Stores the folder name 
    7         'toPreserve' : [], // Check if the message should be removed from draft after send 
    8         'autosave_timer' : [] // The timeout timer for autosave function 
    9 }; 
    10 var tabTypes = { 
    11         'new':4, 
    12         'forward':6, 
    13         'reply_with_history':7, 
    14         'reply_to_all_with_history':7, 
    15         'reply_without_history':7, 
    16         'reply_to_all_without_history':7, 
    17         'edit':5 
    18 }; 
    19 var currentTab,numBox = 0; // Open Tab and num of mailboxes opened at context 
    20  
    211// Objeto Map, talvez o ideal fosse adicionar este objeto à Api do egroupware, e carregá-lo 
    222// aqui no expressoMail. 
     
    8060} 
    8161 
    82 function createNxtPrevButtons(info_msg,ID,folder_id){ 
     62function createNxtPrevButtons(msg_folder,ID,folder_id){ 
    8363        var next_previous_msg_td = createAndSet("TD",[ "noWrap", "align", "width" ], [ "true", "right", "40px"]); 
    8464        var img_next_msg = createAndSet("IMG", [ 'id', 'src', 'title' ], [ 
     
    9171        if (folder){ // mensagem local criptografada nao tem ID da pasta local 
    9272                if (folder.nextSibling){ 
    93                         var nextMsgBox = folder.nextSibling.name?folder.nextSibling.name:info_msg.msg_folder; 
     73                        var nextMsgBox = folder.nextSibling.name?folder.nextSibling.name:msg_folder; 
    9474 
    9575                        if (nextMsgBox == "INBOX/decifradas")// teste para ver se a mensagem vem da pasta oculta decifradas 
     
    9878                        img_next_msg.onclick = function() 
    9979                        { 
    100                                 currentTab = ID; 
    101                                 openTab.type[ID] = 2; 
    102                                 proxy_mensagens.get_msg(folder.nextSibling.id,nextMsgBox,true,show_msg); 
     80                                openTab.type[currentTab] = 2; 
     81                                if ( nextMsgBox == undefined ) 
     82                                       nextMsgBox = current_folder; 
     83                                var allHeaders = folderHeaders[nextMsgBox]; 
     84                                for (i in allHeaders) 
     85                                        if (allHeaders[i].msg_number == folder.nextSibling.id){ 
     86                                                var nextHeader = allHeaders[i]; 
     87                                                break; 
     88                                        } 
     89                                proxy_mensagens.get_msg(nextHeader,nextMsgBox,true,show_msg,currentTab); 
    10390                        }; 
    10491                } 
     
    10794                        img_next_msg.src = URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/down.gray.button.png'; 
    10895                        img_next_msg.style.cursor = 'default'; 
    109  
    11096                } 
    11197        } 
     
    114100                img_next_msg.src = URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/down.gray.button.png'; 
    115101                img_next_msg.style.cursor = 'default'; 
    116                 if (!proxy_mensagens.is_local_folder(get_current_folder()) && !(info_msg.msg_folder == "INBOX/decifradas")) // testa se a mensagem e local 
     102                if (!proxy_mensagens.is_local_folder(get_current_folder()) && !(msg_folder == "INBOX/decifradas")) // testa se a mensagem e local 
    117103                { 
    118104                        img_next_msg.onclick = function() 
     
    137123                if (folder.previousSibling) 
    138124                { 
    139                         var previousMsgBox = folder.previousSibling.name?folder.previousSibling.name:info_msg.msg_folder; 
     125                        var previousMsgBox = folder.previousSibling.name?folder.previousSibling.name:msg_folder; 
    140126 
    141127                        if (previousMsgBox == "INBOX/decifradas") // teste para ver se a mensagem vem da pasta oculta decifradas 
     
    144130                        img_previous_msg.onclick = function() 
    145131                        { 
    146                                 currentTab = ID; 
    147                                 openTab.type[ID] = 2; 
    148                                 proxy_mensagens.get_msg(folder.previousSibling.id,previousMsgBox,true,show_msg); 
     132                                openTab.type[currentTab] = 2; 
     133                                if ( previousMsgBox == undefined ) 
     134                                       previousMsgBox = current_folder; 
     135                                var allHeaders = folderHeaders[previousMsgBox]; 
     136                                for (i in allHeaders) 
     137                                        if (allHeaders[i].msg_number == folder.previousSibling.id){ 
     138                                                var previousHeader = allHeaders[i]; 
     139                                                break; 
     140                                        } 
     141                                proxy_mensagens.get_msg(previousHeader,previousMsgBox,true,show_msg,currentTab); 
    149142                        }; 
    150143                } 
     
    159152                img_previous_msg.src = URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/up.gray.button.png'; 
    160153                img_previous_msg.style.cursor = 'default'; 
    161                 if (!proxy_mensagens.is_local_folder(get_current_folder()) && !(info_msg.msg_folder == "INBOX/decifradas")) // testa se a mensagem e local 
     154                if (!proxy_mensagens.is_local_folder(get_current_folder()) && !(msg_folder == "INBOX/decifradas")) // testa se a mensagem e local 
    162155                { 
    163156                        img_previous_msg.onclick = function() 
     
    282275        } 
    283276 
    284         var next_previous_msg_td = createNxtPrevButtons(info_msg,ID,folder_id); 
     277        var next_previous_msg_td = createNxtPrevButtons(info_msg.msg_folder,ID,folder_id); 
    285278        if (typeof(next_previous_msg_td) == 'undefined') 
    286279                return false; 
     
    298291                _name = info_msg.from.email.length > _maxChar ? info_msg.from.email.substring(0,_maxChar) + "..." : info_msg.from.email; 
    299292 
    300         td.innerHTML = _name.bold() + ', ' + info_msg.smalldate; 
    301         if (info_msg.attachments.length > 0) 
    302                 td.innerHTML += "&nbsp<img style='cursor:pointer' onclick='javascript:Element(\"option_hide_more_"+ID+"\").onclick()' src ='" + URL_SERVER + "expressoMail1_2/templates/"+template+"/images/clip.gif' title='"+info_msg.attachments.names+"'>"; 
     293        td.innerHTML = _name.bold() + ', ' + info_msg.udate; 
     294        if (info_msg.attachment.names.length > 0) 
     295                td.innerHTML += "&nbsp<img style='cursor:pointer' onclick='javascript:Element(\"option_hide_more_"+ID+"\").onclick()' src ='" + URL_SERVER + "expressoMail1_2/templates/"+template+"/images/clip.gif' title='"+info_msg.attachment.names+"'>"; 
    303296 
    304297        if (typeof(info_msg.signature) == 'string') 
     
    321314                var option_hide_more = createAndSet("SPAN",['class','value','id'],['message_options','more_options','option_hide_more_'+ID],get_lang('show details')); 
    322315                option_hide_more.onclick = function(){ 
    323                         var _height = Element("div_message_scroll_"+ID).style.height; 
     316                        try{ 
     317                                var _height = Element("div_message_scroll_"+ID).style.height; 
     318                        } 
     319                        catch(e){ 
     320                                return; 
     321                        } 
    324322                        _height = parseInt(_height.replace("px","")); 
    325323                        var _offset = 35; 
     
    464462        return true; 
    465463} 
    466 function draw_message(info_msg, ID){ 
    467         var content = document.getElementById('content_id_' + ID); 
     464 
     465function draw_message_header(header,border_id){ 
    468466        var defaultWidth = document.body.offsetWidth - 37; 
    469467        if(Element("folderscol").style.display != 'none') 
    470468                defaultWidth -= Element("folderscol").offsetWidth; 
    471469 
    472  
    473         var table_message = createAndSet("TABLE",['border','width'],["0",defaultWidth]); 
     470        var table_message = createAndSet("TABLE",['id','border','width'],['table_message_'+border_id,"0",defaultWidth]); 
     471        table_message.id = 'table_message_'+border_id; 
    474472        var tbody_message = document.createElement("TBODY"); 
    475  
    476         if (!make_options_message(info_msg,tbody_message)) 
     473        if (!make_options_message(header,tbody_message)) 
    477474                return; 
    478475 
     476        table_message.appendChild(tbody_message); 
     477        var content = document.getElementById('content_id_' + border_id); 
     478        content.appendChild(table_message); 
     479        loading_img = content.appendChild(loading_img); 
     480} 
     481 
     482 
     483function draw_message(info_msg, ID){ 
     484        var defaultWidth = document.body.offsetWidth - 37; 
     485        if(Element("folderscol").style.display != 'none') 
     486                defaultWidth -= Element("folderscol").offsetWidth; 
     487 
     488        var table_message = Element('table_message_'+ID); 
     489        var tbody_message = table_message.childNodes[0]; 
    479490 
    480491        var tbody_message_others_options = document.createElement("TBODY"); 
     
    658669        div.style.background = 'WHITE'; 
    659670        div.style.height = document.body.clientHeight - offset - 125; 
    660         content.style.height = document.body.clientHeight - offset - 90; 
    661671        div.style.overflow = "auto"; 
    662672        div.style.width = defaultWidth - (is_ie ? 5 : 0); 
     
    714724        } 
    715725 
    716         table_message.appendChild(tbody_message); 
    717         content.appendChild(table_message); 
     726 
    718727        var msg_number = createAndSet("INPUT",['id','type','value'],["msg_number_" + ID, "hidden", info_msg.msg_number]); 
     728        var content = document.getElementById('content_id_' + ID); 
     729        loading_img = content.removeChild( loading_img ); 
     730        content.style.height = document.body.clientHeight - offset - 90; 
    719731        content.appendChild(msg_number); 
    720732        ////////////////////////////////////////////////////////////////////////////////////////////////////// 
  • trunk/expressoMail1_2/js/jscode/filters.js

    r2673 r2714  
    7474 
    7575        cfilterSh.prototype.list_rules = function(){ 
    76                 if(filter.criticalError || filter.rulest.length == 0) 
     76                if(filter.criticalError) 
    7777                        return false; 
    7878                else 
  • trunk/expressoMail1_2/js/jscode/globals.js

    r2712 r2714  
    7070var wfolders; 
    7171var use_spam_filter; 
     72 
     73var loading_img = document.createElement( 'center' ); 
     74loading_img.appendChild( createAndSet("IMG",['src','style'],[URL_SERVER+'phpgwapi/templates/'+template+'/images/loading.gif','padding-top: 20px']) ); 
  • trunk/expressoMail1_2/js/jscode/main.js

    r2656 r2714  
    290290        if (typeof(msg_info) != 'object') 
    291291                alert(get_lang("Error in show_msg param is not object")); 
    292          
     292 
    293293        if (msg_info.status_get_msg_info == 'false') 
    294294        { 
     
    296296                return; 
    297297        } 
    298          
    299298        var handler_sendNotification = function(data){ 
    300299                if (data) 
     
    303302                        write_msg(get_lang("Error in SMTP sending read confirmation.")); 
    304303        }; 
    305      
     304 
    306305        if(msg_info.source) 
    307306        { 
    308         // Abrindo um e-mail criptografado 
    309         // Verifica se existe o objeto applet 
    310         if (!Element('cert_applet')){ 
    311             // se não existir, mostra mensagem de erro. 
    312             write_msg(get_lang('The preference "%1" isn\'t enabled.', get_lang('Enable digitally sign/cipher the message?'))); 
    313         } else { 
    314             // se existir prepara os dados para serem enviados e chama a 
    315             // operação na applet 
    316  
    317             expresso.connector.showProgressBar(); 
    318  
    319            // if ((msg_info.DispositionNotificationTo) && ((msg_info.Unseen == 'U') || (msg_info.Recent == 'N'))){ 
    320             /*  var confNotification = confirm(get_lang("The sender waits your notification of reading. Do you want to confirm this?"), ""); 
    321                 if (confNotification)*/ 
    322             //        cExecute ("expressoMail1_2.imap_functions.send_notification&notificationto="+msg_info.DispositionNotificationTo+"&subject="+url_encode(msg_info.subject), handler_sendNotification); 
    323            // } 
    324  
    325             Element('cert_applet').doButtonClickAction('decript', 
    326                                                         msg_info.msg_number, 
    327                                                         msg_info.source, 
    328                                                         msg_info.msg_folder); // Passa os dados para a applet 
    329         } 
     307                // Abrindo um e-mail criptografado 
     308                // Verifica se existe o objeto applet 
     309                if (!Element('cert_applet')){ 
     310                        // se não existir, mostra mensagem de erro. 
     311                        write_msg(get_lang('The preference "%1" isn\'t enabled.', get_lang('Enable digitally sign/cipher the message?'))); 
     312                } else { 
     313                        // se existir prepara os dados para serem enviados e chama a 
     314                        // operação na applet 
     315 
     316                        expresso.connector.showProgressBar(); 
     317 
     318                        // if ((msg_info.DispositionNotificationTo) && ((msg_info.Unseen == 'U') || (msg_info.Recent == 'N'))){ 
     319                        /*      var confNotification = confirm(get_lang("The sender waits your notification of reading. Do you want to confirm this?"), ""); 
     320                                if (confNotification)*/ 
     321                        //        cExecute ("expressoMail1_2.imap_functions.send_notification&notificationto="+msg_info.DispositionNotificationTo+"&subject="+url_encode(msg_info.subject), handler_sendNotification); 
     322                        // } 
     323 
     324                        Element('cert_applet').doButtonClickAction('decript', 
     325                                        msg_info.msg_number, 
     326                                        msg_info.source, 
     327                                        msg_info.msg_folder); // Passa os dados para a applet 
     328                } 
    330329                return; 
    331330 
    332331        } 
    333332 
    334  
    335         if (msg_info.status_get_msg_info == 'false') 
    336         { 
    337                 write_msg(get_lang("Problems reading your message")+ "."); 
    338                 return; 
    339         } 
    340  
    341333        if (msg_info.status == 'false'){ 
    342                 eval(msg_info.command_to_exec); 
     334                delete_border(msg_info.reuse_border); 
    343335        } 
    344336        else{ 
    345         var ID = msg_info.original_ID ? msg_info.original_ID : msg_info.msg_number; 
    346         var id_msg_read = ID+"_r"; 
     337                var ID = msg_info.original_ID ? msg_info.original_ID : msg_info.msg_number; 
     338                var id_msg_read = ID+"_r"; 
    347339 
    348340                if (preferences.use_shortcuts == '1') 
     
    350342                // Call function to draw message 
    351343                // If needed, delete old border 
    352                 if (openTab.type[currentTab] == 2 || openTab.type[currentTab] == 3) 
    353                         delete_border(currentTab,'false'); 
    354  
    355                  
    356                 if(Element("border_id_" + id_msg_read))  
    357                         alternate_border(id_msg_read);           
    358                 else { 
    359                         var border_id = create_border(msg_info.subject, id_msg_read); 
    360                         if(border_id) 
     344                if(currentTab) 
     345                { 
     346                        draw_message(msg_info,currentTab); 
     347                        var unseen_sort = document.getElementById('span_flag_UNSEEN').getAttribute('onclick'); 
     348                        unseen_sort = unseen_sort.toString(); 
     349                        if ( !(unseen_sort.indexOf("'UNSEEN' == 'UNSEEN'") < 0) ) 
    361350                        { 
    362                                 openTab.type[border_id] = 2; 
    363                                 draw_message(msg_info,border_id); 
    364                                 var unseen_sort = document.getElementById('span_flag_UNSEEN').getAttribute('onclick'); 
    365                                 unseen_sort = unseen_sort.toString(); 
    366                                 if ( !(unseen_sort.indexOf("'UNSEEN' == 'UNSEEN'") < 0) ) 
    367                                 { 
    368                                         var sort_type = sort_box_type; 
    369                                         sort_box_type = null; 
    370                                         sort_box('UNSEEN', sort_type); 
    371                                 } 
    372                         } 
    373                         else 
    374                                 return; 
    375                 } 
     351                                var sort_type = sort_box_type; 
     352                                sort_box_type = null; 
     353                                sort_box('UNSEEN', sort_type); 
     354                        } 
     355                } 
     356                else 
     357                        return; 
    376358 
    377359                var domains = ""; 
    378360                if ((msg_info.DispositionNotificationTo) && (!msg_is_read(ID) || (msg_info.Recent == 'N'))) 
    379                 {                        
     361                { 
    380362                        if (preferences.notification_domains != undefined && preferences.notification_domains != "") 
    381             { 
     363                        { 
    382364                                domains = preferences.notification_domains.split(','); 
    383             } 
     365                        } 
    384366                        else 
    385                         {                                
     367                        { 
    386368                                var confNotification = true; 
    387                          } 
     369                        } 
    388370                        for (var i = 0; i < domains.length; i++) 
    389371                                if (msg_info.DispositionNotificationTo.match(domains[i]+">")) 
     
    392374                                        break; 
    393375                                } 
    394                                 if (confNotification == undefined) 
    395                                         var confNotification = confirm(get_lang("The sender:\n%1\nwaits your notification of reading. Do you want to confirm this?",msg_info.DispositionNotificationTo), ""); 
    396  
     376                        if (confNotification == undefined) 
     377                                var confNotification = confirm(get_lang("The sender:\n%1\nwaits your notification of reading. Do you want to confirm this?",msg_info.DispositionNotificationTo), ""); 
    397378                        if (confNotification) 
    398379                                cExecute ("expressoMail1_2.imap_functions.send_notification&notificationto="+msg_info.DispositionNotificationTo+"&subject="+url_encode(msg_info.subject), handler_sendNotification); 
     
    401382                if (!msg_is_read(ID)) 
    402383                { 
    403             set_msg_as_read(ID, true); 
     384                        set_msg_as_read(ID, true); 
    404385                        if (msg_info.cacheHit || (!proxy_mensagens.is_local_folder(get_current_folder()) && msg_info.original_ID)) 
    405             { 
     386                        { 
    406387                                set_message_flag(ID, "seen"); // avoid caducous (lazy) data 
    407             } 
    408         } 
     388                        } 
     389                } 
    409390        } 
    410391} 
  • trunk/expressoMail1_2/js/jscode/messages_controller.js

    r2676 r2714  
    2020        }; 
    2121 
    22         messages_proxy.prototype.get_msg = function(msg_number,msg_folder,set_flag,call_back) { 
     22        messages_proxy.prototype.get_msg = function(header,msg_folder,set_flag,call_back,deleteTab) { 
    2323                if(this.is_local_folder(msg_folder)) { 
    2424                        if(set_flag) 
    2525//                              expresso_local_messages.set_messages_flag(msg_number,"seen"); 
    26                         var data = expresso_local_messages.get_local_mail(msg_number);   
     26                        var data = expresso_local_messages.get_local_mail(header.msg_number);    
    2727 
    2828                        eval("call_back(data)"); 
    2929                }else { 
    3030                        expresso.connector.cacheNextRequest(); 
    31                         cExecute("expressoMail1_2.imap_functions.get_info_msg&msg_number="+ msg_number + "&msg_folder=" + url_encode(msg_folder), call_back); 
     31                        cExecute("expressoMail1_2.imap_functions.get_info_msg&msg_number="+ header.msg_number + "&msg_folder=" + current_folder, call_back); 
     32                        var id_msg_read = header.msg_number+"_r"; 
     33 
     34                        if (openTab.type[deleteTab] == 2) 
     35                                delete_border(deleteTab); 
     36                        currentTab = create_border(header.subject, id_msg_read); 
     37                        if(currentTab) 
     38                        { 
     39                                openTab.type[currentTab] = 2; 
     40                                draw_message_header(header,currentTab); 
     41                        } 
    3242                } 
    3343        }; 
Note: See TracChangeset for help on using the changeset viewer.