Changeset 5263


Ignore:
Timestamp:
12/16/11 15:11:35 (12 years ago)
Author:
adriano
Message:

Ticket #2391 - adicao de abas na pré-visualizacao de mensagens na interface de anexar mensagens

Location:
trunk/prototype/modules/attach_message
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/modules/attach_message/attach_message.css

    r5188 r5263  
    2525 
    2626/* geral */ 
    27 #dfd72 {font-size:11px; width:875px;height:510px;padding:5px;border:1px solid #777;-moz-border-radius:3px;border-radius:3px;} 
    28 .empty-conteiner { background-color:#f7f7e7; border:2px dashed #DDD; } 
    29 .empty-conteiner .message{width:100%;display:block;margin-top:70px;text-align:center;text-transform:uppercase;font-weight:bolder; font-size:20px;color:#CCC;} 
     27/*#dfd72 {font-size:11px; width:875px;height:510px;padding:5px;border:1px solid #777;-moz-border-radius:3px;border-radius:3px;}*/ 
     28.empty-container { background-color:#f7f7e7; border:2px dashed #DDD; } 
     29.empty-container .message{width:100%;display:block;margin-top:70px;text-align:center;text-transform:uppercase;font-weight:bolder; font-size:20px;color:#CCC;} 
     30#mailpreview_tabs_default_empty.empty-container.ui-tabs-panel { background-color:#f7f7e7; border:none; } 
     31/*#mailpreview_tabs_default_empty.empty-container.ui-tabs-panel.message {margin-top:70px;text-align:center;text-transform:uppercase;font-weight:bolder; font-size:20px;color:#CCC;}*/ 
    3032 
    3133/* especifico */ 
    3234#foldertree-container { width:220px;height:240px; display:inline-block;margin:5px 0px 5px 5px;overflow:auto;} 
    3335#mailgrid-container {width:650px;/*height:240px;*/ margin:5px 5px 5px 0px; float:right; overflow:auto;} 
    34 #mailpreview-container {margin:5px;padding:5px;height:200px;overflow:auto;border:2px dashed #DDD;} 
     36#mailpreview_container {margin:5px;padding:0px;height:200px;} 
     37#mailpreview_container .ui-tabs-panel {height:145px;overflow:auto;padding:5px;} 
     38/*#mailpreview_tabs { max-height: 20px; }*/ 
    3539#buttons-container {text-align: right;margin:5px;} 
    3640#selected_messages_counter {text-align:right;padding:0;} 
     
    4953.flagged { } 
    5054 
    51 mailpreview-tabs {max-height: 15px; height: 15px; display: none; visibility: hidden;} 
    52 #mailpreview-message-info {display: block; margin:0; padding: 0; width: 100%;height: 15px; font-weight: bolder; overflow:hidden;} 
     55/*#mailpreview_tabs {max-height: 15px; height: 15px; display: none; visibility: hidden;}*/ 
     56.mailpreview-message-info {display: block; margin:0; padding: 0; width: 100%;height: 15px; font-weight: bolder; overflow:hidden;} 
    5357 
    5458#loading-content .image {width: 32px; height: 32px; background-image: url(images/loading.gif);} 
     59 
     60#mailpreview_container li .ui-icon-close { float: left; margin: 0.4em 0.2em 0 -0.2em; cursor: pointer; } 
     61#mailpreview_container .ui-tabs-nav { margin: 0; padding:0;  border-left:none; border-right: none; border-top: none; -moz-border-radius:0; -webkit-border-radius:0; border-radius:0;} 
     62#mailpreview_container .ui-tabs-nav li { padding:0; } 
     63#mailpreview_container .ui-tabs-nav li a { padding: 0.6em 0.4em 0.3em 0.6em; font-size: 11px;} 
     64 
     65#mailpreview_container .ui-tabs-nav .preview-message-unselected { color:#993333; } 
  • trunk/prototype/modules/attach_message/attach_message.ejs

    r5136 r5263  
    11<link rel="stylesheet" href="../prototype/modules/attach_message/attach_message.css" type="text/css" />  
    22<div class="expresso-window-container" title="<%=get_lang('Select messages to attach...')%>"> 
    3         <div id="foldertree-container" class="empty-conteiner"> 
     3        <div id="foldertree-container" class="empty-container"> 
    44                <span class="message"><%=get_lang('no folder found')%></span> 
    55        </div> 
    6         <div id="mailgrid-container" class="empty-conteiner"> 
     6        <div id="mailgrid-container" class="empty-container"> 
    77                <span class="message"><%=get_lang('no folder selected')%></span> 
    88        </div> 
    9         <div id="mailpreview-container" class="empty-conteiner"> 
    10                 <div id="mailpreview-tabs"></div> 
    11                 <div id="mailpreview-message-info"></div> 
    12                 <span class="message"><%=get_lang('select a message to preview')%></span> 
     9        <div id="mailpreview_container"> 
     10                <ul id="mailpreview_tabs"> 
     11                        <li><a href="#mailpreview_tabs_default_empty">Nenhuma mensagem selecionada</a></li> 
     12                </ul> 
     13                <div id="mailpreview_tabs_default_empty" class="empty-container"><span class="message" ><%=get_lang('select a message to preview')%></span></div> 
    1314        </div> 
    1415        <div id="buttons-container"> 
  • trunk/prototype/modules/attach_message/attach_message.js

    r5188 r5263  
    6767                } 
    6868 
    69                 ( options.success || options.complete )( { "rows": msgs,  
     69                ( options.success || options.complete )( {"rows": msgs,  
    7070                                                           "records": msgs.length, 
    7171                                                           "page": params["page"],  
    72                                                            "total": Math.ceil( msgs.num_msgs / params["rows"] ) } ); 
     72                                                           "total": Math.ceil( msgs.num_msgs / params["rows"] )} ); 
    7373            } 
    7474          } 
     
    158158} 
    159159 
    160       function dump(arr,level) { 
    161               var dumped_text = ""; 
    162               if(!level) level = 0; 
    163  
    164               //The padding given at the beginning of the line. 
    165               var level_padding = ""; 
    166               for(var j=0;j<level+1;j++) level_padding += "    "; 
    167  
    168               if(typeof(arr) == 'object') { //Array/Hashes/Objects 
    169                       for(var item in arr) { 
    170                               var value = arr[item]; 
    171  
    172                               if(typeof(value) == 'object') { //If it is an array, 
    173                                       dumped_text += level_padding + "'" + item + "' ...\n"; 
    174                                       dumped_text += dump(value,level+1); 
    175                               } else { 
    176                                       dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n"; 
    177                               } 
    178                       } 
    179               } else { //Stings/Chars/Numbers etc. 
    180                       dumped_text = "===>"+arr+"<===("+typeof(arr)+")"; 
    181               } 
    182               return dumped_text; 
    183       } 
    184  
    185160var msgAttacherGrid = $("#message_attacher_grid"), msgsTotal = $("#selected_messages_number"); 
    186161var lastLoadedMessages = []; 
     
    205180              var parts = stripParents.exec( id ); 
    206181           
    207               data[data.length] = { 'id' : id, 
     182              data[data.length] = {'id' : id, 
    208183                                    'commonName' : parts[2], 
    209                                     'parentFolder' : parts[1] }; 
     184                                    'parentFolder' : parts[1]}; 
    210185        }); 
    211186    } 
     
    253228 
    254229                var firstFolder = jQuery("#foldertree-container") 
    255                 .removeClass('empty-conteiner') 
     230                .removeClass('empty-container') 
    256231                .html(BASE_PATH + 'app/templates/foldertree.ejs', {folders: [tree1, tree2, tree3]}) 
    257232                .find("#foldertree").treeview() 
     
    301276                //jqgrid 
    302277                jQuery("#mailgrid-container") 
    303                 .removeClass('empty-conteiner') 
     278                .removeClass('empty-container') 
    304279                .html(BASE_PATH + 'app/templates/messagegrid.ejs', {data: {}}) 
    305280                .find("#message_attacher_grid") 
     
    360335                        }, 
    361336                        onSelectRow: function (id, selected) { 
    362                                 if (selected) { 
    363                                         var message = false; 
    364                                         for (var i=0; i<lastLoadedMessages.length; i++){ 
    365                                                 if (lastLoadedMessages[i].msg_number == id) { 
    366                                                         message = lastLoadedMessages[i]; 
    367                                                         break; 
    368                                                 } 
     337                                var message = false; 
     338                                for (var i=0; i<lastLoadedMessages.length; i++){ 
     339                                        if (lastLoadedMessages[i].msg_number == id) { 
     340                                                message = lastLoadedMessages[i]; 
     341                                                break; 
    369342                                        } 
    370                                          
     343                                } 
     344                                 
     345                                var tabPanelTemplateId    = 'mailpreview_tab_' + selectedFolder.id.replace('/', '_') + '_' + message.msg_number; 
     346                                 
     347                                if (selected) {                          
    371348                                        if (onceOpenedMessages[selectedFolder.id] && onceOpenedMessages[selectedFolder.id][message.msg_number]) { 
    372349                                                if (!selectedMessages[selectedFolder.id]) 
     
    374351                                                         
    375352                                                selectedMessages[selectedFolder.id][message.msg_number] = true; 
    376                                                 $('#mailpreview-container').removeClass('empty-conteiner').unblock() 
    377                                                 .find('.message') 
    378                                                 .html(onceOpenedMessages[selectedFolder.id][message.msg_number].body).end() 
    379                                                 .find('#mailpreview-message-info').html(onceOpenedMessages[selectedFolder.id][message.msg_number].subject) 
    380                                                 //$('#mailpreview-container').removeClass('empty-conteiner').html(onceOpenedMessages[selectedFolder.id][message.msg_number].body); 
     353                                                $('#mailpreview-container').unblock();                                           
     354 
     355                                                /** 
     356                                                 * TODO: limitar o tamanho da string de título da tab  
     357                                                 */ 
     358                                                var tabPanelTemplateLabel = onceOpenedMessages[selectedFolder.id][message.msg_number].subject; 
     359                                                if ($('#' + tabPanelTemplateId).length == 0) {                                                           
     360                                                        $mailpreview_tabs.tabs("add", '#' + tabPanelTemplateId, tabPanelTemplateLabel) 
     361                                                        .find('.message.empty-container').hide().end() 
     362                                                        .find('#' + tabPanelTemplateId).html(onceOpenedMessages[selectedFolder.id][message.msg_number].body); 
     363                                                } else { 
     364                                                        $mailpreview_tabs.tabs('select', '#' + tabPanelTemplateId) 
     365                                                        .find('#' + tabPanelTemplateId + ', [href="#' + tabPanelTemplateId + '"]').removeClass('preview-message-unselected'); 
     366                                                } 
    381367                                                 
    382368                                                selectedMessagesCount(); 
    383369                                        } else { 
    384                                                 jQuery('#mailpreview-container').block({   
     370                                                jQuery('#mailpreview_container').block({   
    385371                                                        message: '<div id="loading-content"><div class="image"> </div></div>',   
    386372                                                        css: {   
     
    416402                                                                onceOpenedMessages[selectedFolder.id][message.msg_number] = jQuery.extend(true, message, mail_preview); 
    417403 
    418                                                                 $('#mailpreview-container').removeClass('empty-conteiner').unblock() 
    419                                                                 .find('.message') 
    420                                                                 .html(onceOpenedMessages[selectedFolder.id][message.msg_number].body).end() 
    421                                                                 .find('#mailpreview-message-info').html(onceOpenedMessages[selectedFolder.id][message.msg_number].subject); 
     404                                                                $('#mailpreview_container').unblock(); 
    422405                                                                 
     406                                                                /** 
     407                                                                 * TODO: limitar o tamanho da string de título da tab  
     408                                                                 */ 
     409                                                                var tabPanelTemplateLabel = onceOpenedMessages[selectedFolder.id][message.msg_number].subject; 
     410                                                                if ($('#' + tabPanelTemplateId).length == 0) {                                                           
     411                                                                        $mailpreview_tabs.tabs("add", '#' + tabPanelTemplateId, tabPanelTemplateLabel) 
     412                                                                        .find('.message.empty-container').hide().end() 
     413                                                                        .find('#' + tabPanelTemplateId).html(onceOpenedMessages[selectedFolder.id][message.msg_number].body) 
     414                                                                        .prepend( 
     415                                                                                '<div class="mailpreview-message-info">' +  
     416                                                                                        get_lang('Subject') + ': ' + 
     417                                                                                        onceOpenedMessages[selectedFolder.id][message.msg_number].subject +  
     418                                                                                '</div>' 
     419                                                                        ); 
     420                                                                } else { 
     421                                                                        $mailpreview_tabs.tabs('select', '#' + tabPanelTemplateId) 
     422                                                                        .find('#' + tabPanelTemplateId + ', [href="#' + tabPanelTemplateId + '"]').removeClass('preview-message-unselected'); 
     423                                                                } 
     424 
    423425                                                                selectedMessagesCount(); 
    424426                                                        } 
     
    426428                                        } 
    427429                                } else { 
    428                                         $('#mailpreview-container').addClass('empty-conteiner').unblock() 
    429                                         .find('.message') 
    430                                         .html("selecione uma mensagem para pre-visualizar").end() 
    431                                         .find('#mailpreview-message-info').html(""); 
    432                                         selectedMessages[selectedFolder.id][id] = false; 
     430                                        /** 
     431                                         * if you wants to remove tab on unselect message 
     432                                         */ 
     433                                        /* 
     434                                        if ($('#' + tabPanelTemplateId).length) { 
     435                                                $mailpreview_tabs.tabs('remove', '#' + tabPanelTemplateId); 
     436                                        } 
     437                                         */ 
     438                                        $mailpreview_tabs.find('#' + tabPanelTemplateId + ', [href="#' + tabPanelTemplateId + '"]').addClass('preview-message-unselected'); 
    433439                                } 
    434440                        }, 
     
    438444        } 
    439445}); 
     446 
     447 
     448var $mailpreview_tabs = $( "#mailpreview_container").tabs({ 
     449        tabTemplate: "<li><a href='#{href}'>#{label}</a> <span class='ui-icon ui-icon-close'> Fechar </span></li>", 
     450        panelTemplate: '<div class="message mailpreview-message-body"></div>', 
     451        add: function( event, ui ) { 
     452                $mailpreview_tabs.tabs('select', '#' + ui.panel.id); 
     453                if ($('#mailpreview_tabs_default_empty').length && $mailpreview_tabs.tabs("length") > 1) {       
     454                        $mailpreview_tabs.tabs('remove', '#mailpreview_tabs_default_empty'); 
     455                } 
     456        }, 
     457        remove: function(event, ui) { 
     458                if (!$mailpreview_tabs.tabs("length") && !$('#mailpreview_tabs_default_empty').length) { 
     459                        /** 
     460                         * TODO: internacionalizar a string 'Nenhuma mensagem selecionada' 
     461                         */ 
     462                        $mailpreview_tabs.tabs('add', '#mailpreview_tabs_default_empty', 'Nenhuma mensagem selecionada') 
     463                        .find('#mailpreview_tabs_default_empty').removeClass('mailpreview-message-body').addClass('empty-container') 
     464                        .html('<span class="message">' + get_lang('select a message to preview') + '</span>').end() 
     465                        .find('.ui-tabs-nav li:first .ui-icon-close').remove(); 
     466                } 
     467        } 
     468}); 
     469 
     470$( "#mailpreview_container span.ui-icon-close" ).live( "click", function() { 
     471        var index = $("li", $mailpreview_tabs).index($(this).parent()); 
     472        $mailpreview_tabs.tabs("remove", index); 
     473}); 
Note: See TracChangeset for help on using the changeset viewer.