Changeset 5637


Ignore:
Timestamp:
03/06/12 02:03:17 (12 years ago)
Author:
cristiano
Message:

Ticket #2497 - Nova estrategia para o salvamento automatico de rascunhos

Location:
trunk
Files:
1 added
1 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/js/abas.js

    r5626 r5637  
    55var msgAttachments = new Array(); 
    66var uidsSave = new Array();  
    7  
     7var zebraDiscardEventDialog = false; 
    88function setBorderAttributes(ID) 
    99{ 
     
    315315                                        return $(DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : borderTitle, type: "messages"})); 
    316316                        }, 
    317                         cursorAt: { cursor: "move", top: 5, left: 56 }, 
     317                        cursorAt: {cursor: "move", top: 5, left: 56}, 
    318318                        refreshPositions: true , 
    319319                        scroll: true,  
     
    394394} 
    395395 
    396 opened_alert = false; 
    397396 
    398397function draftTests(ID, msg_sent){ 
    399         var cancel = new LertButton(get_lang('cancel'), function() { 
    400         Element("border_id_"+ID).onclick = function () { alternate_border(ID);};  
    401         var setFocus = function(ID){ 
    402                         if ($.trim($("#to_"+ID).val()) == "") 
    403                                 $("#to_"+ID).focus(); 
    404                         else if ($("#tr_cc_"+ID).css('display') != 'none' && $.trim($("#cc_"+ID).val()) == "") 
    405                                 $("#cc_"+ID).focus(); 
    406                         else if ($("#tr_cco_"+ID).css('display') != 'none' && $.trim($("#cco_"+ID).val()) == "") 
    407                                 $("#cco_"+ID).focus();           
    408                         else if ($.trim($("#subject_"+ID).val()) == "") 
    409                                 $("#subject_"+ID).focus(); 
    410                         else{ 
    411                                 if (RichTextEditor.plain[id] != true)  
    412                                         setTimeout("RichTextEditor.focus("+ID+")",100);                   
    413                                 else   
    414                                         $('#body_'+ID).focus();  
    415                         } 
    416                 } 
    417                 setFocus(ID);   
    418         opened_alert = false; 
    419     }); 
     398     
     399        
     400        if( openTab.toPreserve[ID] = false) 
     401        { 
     402            close_delete(ID, msg_sent); 
     403            delete(openTab.type[ID]); 
     404        }     
     405        else   
     406        { 
     407             var msg = 'Existem alterações não salvas na mensagem.'; 
     408             var buttons = ['Descartar alterações', 'Salvar e fechar']; 
     409             var width = 330; 
     410             if($('#fileupload_msg'+ID).find('.in-progress').length) 
     411             { 
     412                 msg = 'Existem arqivos sendo enviados para o servidor.'; 
     413                 buttons = ['Descartar alterações e anexos', 'Salvar estado atual fechar', 'Continuar editando'];  
     414                 width = 560; 
     415             } 
     416             zebraDiscardEventDialog = true; 
     417             window.setTimeout(function() { 
     418                $.Zebra_Dialog(msg, { 
     419                            'type':     'question', 
     420                            'overlay_opacity': '0.5', 
     421                            'buttons':  buttons, 
     422                            'width' : width, 
     423                            'onClose':  function(clicked) { 
     424                                    if(clicked == 'Descartar alterações' || clicked == 'Descartar alterações e anexos' ) { 
     425                                        if (openTab.imapBox[ID] && !openTab.toPreserve[ID]) 
     426                                            openTab.toPreserve[ID] = false; 
     427 
     428                                        delete(openTab.type[ID]); 
     429                                        close_delete(ID, msg_sent); 
     430                                    } 
     431                                    else if(clicked == 'Salvar e fechar' || clicked == 'Salvar estado atual fechar') 
     432                                    { 
     433                                        save_msg(ID); 
     434                                        openTab.toPreserve[ID] = false; 
     435                                        close_delete(ID, msg_sent); 
     436                                        delete(openTab.type[ID]); 
     437                                    }     
     438                                    else{ 
     439 
     440                                        Element("border_id_"+ID).onclick = function () {alternate_border(ID);};  
     441                                        var setFocus = function(ID){ 
     442                                                        if ($.trim($("#to_"+ID).val()) == "") 
     443                                                                $("#to_"+ID).focus(); 
     444                                                        else if ($("#tr_cc_"+ID).css('display') != 'none' && $.trim($("#cc_"+ID).val()) == "") 
     445                                                                $("#cc_"+ID).focus(); 
     446                                                        else if ($("#tr_cco_"+ID).css('display') != 'none' && $.trim($("#cco_"+ID).val()) == "") 
     447                                                                $("#cco_"+ID).focus();           
     448                                                        else if ($.trim($("#subject_"+ID).val()) == "") 
     449                                                                $("#subject_"+ID).focus(); 
     450                                                        else{ 
     451                                                                if (RichTextEditor.plain[id] != true)  
     452                                                                        setTimeout("RichTextEditor.focus("+ID+")",100);                   
     453                                                                else   
     454                                                                        $('#body_'+ID).focus();  
     455                                                        } 
     456                                                } 
     457                                                setFocus(ID);   
     458                                    } 
     459                                    window.setTimeout(function() { 
     460                                            zebraDiscardEventDialog = false; 
     461                                    }, 500); 
     462                            }})}, 300);     
     463        } 
    420464         
    421     var yes = new LertButton(get_lang('Save'), function() { 
    422         save_msg(ID, 'undefined', true); 
    423         openTab.toPreserve[ID] = false; 
    424         close_delete(ID, msg_sent); 
    425         delete(openTab.type[ID]); 
    426                 //write_msg(get_lang('Your message was save as draft in folder %1.', lang_folder('Drafts'))); 
    427                  
    428     }); 
    429     var discard = new LertButton(get_lang('Discard'), function() { 
    430                         if (openTab.imapBox[ID] && !openTab.toPreserve[ID]) 
    431             { 
    432                 //delete_msgs(openTab.imapBox[ID], openTab.imapUid[ID].toString(), 0) 
    433                 //delete(openTab.imapBox[ID]); 
    434                 openTab.toPreserve[ID] = false; 
    435             } 
    436                         delete(openTab.type[ID]); 
    437             close_delete(ID, msg_sent); 
    438     }); 
    439         if( $("#save_message_options_"+ID).attr("disabled") == "disabled") { 
    440                 openTab.toPreserve[ID] = false; 
    441         close_delete(ID, msg_sent); 
    442         delete(openTab.type[ID]); 
    443         }else{ 
    444                 var titulo = '<b>' + get_lang('Warning') + '!</b>'; 
    445                 var message = get_lang("Your changes are not saved. What to do?"); 
    446                 var multConfirm = new Lert( 
    447                         titulo, 
    448                         message, 
    449                         [cancel,discard,yes], 
    450                         { 
    451                                         defaultButton:yes, 
    452                                         icon:'js/lert/images/dialog-help.gif' 
    453                         }); 
    454                 multConfirm.display(); 
    455                 opened_alert = true; 
    456         } 
    457465} 
    458466 
     
    486494            if (editTest(ID)){ 
    487495                bolExecuteClose = false; 
    488                 return(draftTests(ID, msg_sent)); 
     496                if(zebraDiscardEventDialog === false) 
     497                    return(draftTests(ID, msg_sent)); 
    489498            } 
    490499        } 
  • trunk/expressoMail1_2/js/draw_api.js

    r5630 r5637  
    40124012        tbody_message.appendChild(tr5); 
    40134013 
    4014         /** 
    4015         * event to enable autosave_draft on file attachment 
    4016         */ 
    4017         function save_onchange_attachment_handler () { 
    4018                 away = false; 
    4019                 var save_link = Element("save_message_options_"+ID); 
    4020                 save_link.onclick = function onclick(event) { 
    4021                         openTab.toPreserve[ID] = true; 
    4022                         save_msg(ID); 
    4023                 }; 
    4024                 $("#save_message_options_"+ID).button({disabled: false}); 
    4025         }; 
    4026  
    4027  
    40284014        var tr5 = document.createElement("TR"); 
    40294015        var td5_link = document.createElement("TD"); 
  • trunk/expressoMail1_2/js/main.js

    r5636 r5637  
    23352335    uidsSave[border_id] = []; 
    23362336    DataLayer.commit(false,false,function(data){ 
    2337         if(data != null && data['message://'+idJavascript].id !== undefined ) 
     2337        if(data != null && data['message://'+idJavascript] !== undefined && data['message://'+idJavascript].id !== undefined ) 
    23382338        { 
    23392339            uidsSave[border_id].push(data['message://'+idJavascript].id); 
     
    23412341        } 
    23422342        else 
    2343             write_msg('Erro ao salvar sua menssagem!'); 
     2343        { 
     2344            write_msg('Erro ao salvar sua menssagem! Nova tentativa em '+(autosave_time / 1000) + ' segundos.'); 
     2345            setTimeout( 'save_msg('+border_id+');', autosave_time); 
     2346        }     
    23442347    }); 
    23452348 
  • trunk/prototype/api/controller.php

    r5539 r5637  
    516516                        case 'find': $return = $params['service']->find( $params['URI'], $params['properties'], $params['criteria'] ); break; 
    517517 
    518                         case 'read': $return = $params['service']->read( $params['URI'], $params['properties']/*, $criteria*/ ); break; 
     518                        case 'read': $return = $params['service']->read( $params['URI'], $params['properties'] , $params['criteria'] ); break; 
    519519 
    520520                        case 'create': $return = $params['service']->create( $params['URI'], $params['properties']/*, $criteria*/ ); break; 
  • trunk/prototype/config/mailAttachment.ini

    r5604 r5637  
    44[before.create] 
    55encodeCreateAttachment = modules/mail/interceptors/Attachments.php 
     6 
     7[before.read] 
     8securityOwner = modules/mail/interceptors/Attachments.php 
     9 
     10[before.find] 
     11securityOwner = modules/mail/interceptors/Attachments.php 
    612 
    713[PostgreSQL.mapping] 
  • trunk/prototype/modules/mail/interceptors/Attachments.php

    r5604 r5637  
    33class Attachments {      
    44         
    5         public function encodeCreateAttachment( &$uri , &$params , &$criteria , $original ){ 
    6                          
    7                 if(!isset($params['source'])) return false; 
    8                  
    9                 if(isset($_FILES[$params['source']])) 
    10                         if(isset($params['id'])) 
    11                                 $params =  array_merge($_FILES[$params['source']], array('id' => $params['id'])); 
    12                         else 
    13                                 $params =  $_FILES[$params['source']]; 
    14                                  
    15                   $params['owner'] = Config::me('uidNumber');  
    16                                     
    17                   $params['disposition'] = $original['properties']['disposition']; 
    18                   $params['dtstamp'] = time(); 
     5        public function encodeCreateAttachment( &$uri , &$params , &$criteria , $original ){             
     6            if(!isset($params['source'])) return false; 
     7 
     8            if(isset($_FILES[$params['source']])) 
     9                $params =  $_FILES[$params['source']]; 
     10 
     11                $params['owner'] = Config::me('uidNumber');  
     12 
     13                $params['disposition'] = $original['properties']['disposition']; 
     14                $params['dtstamp'] = time(); 
    1915        } 
    20    
     16         
     17        public function securityOwner(  &$uri , &$params , &$criteria , $original ) 
     18        { 
     19            $criteria['filter'] = isset( $criteria['filter'] ) ? array('AND', $criteria['filter'] , array('=' , 'owner', Config::me('uidNumber')) ) :  array('=' , 'owner', Config::me('uidNumber'));    
     20        } 
     21 
    2122} 
    2223 
  • trunk/prototype/services/PostgreSQL.php

    r5514 r5637  
    1818    } 
    1919 
    20    public function read ( $uri, $justthese = false ){ 
     20   public function read ( $uri, $justthese = false , $criteria = false){ 
    2121       
    22       $map =  Config::get($uri['concept'], 'PostgreSQL.mapping'); 
    23         
     22      $map =  Config::get($uri['concept'], 'PostgreSQL.mapping');    
    2423      $justthese = self::parseJustthese($justthese, $map); 
    25  
    26       return $this->execResultSql( 'SELECT '.$justthese['select'].' FROM '. (Config::get($uri['concept'],'PostgreSQL.concept')) .' WHERE id = \''.addslashes( $uri['id'] ).'\'', true ); 
     24      $criteria = ($criteria !== false) ? $this->parseCriteria ( $criteria , $map , ' WHERE id = \''.addslashes( $uri['id'] ).'\'') : ''; 
     25       
     26      return $this->execResultSql( 'SELECT '.$justthese['select'].' FROM '. (Config::get($uri['concept'],'PostgreSQL.concept')) .$criteria , true ); 
    2727    } 
    2828         
     
    174174    } 
    175175         
    176     private static function parseCriteria( $criteria  , &$map ){                
    177              
    178             $result = ''; 
     176    private static function parseCriteria( $criteria  , &$map , $query = '' ){                
    179177         
    180178            if( isset($criteria["filter"]) && $criteria["filter"] !== NULL ) 
     
    190188                  *         array( '=' , 'campo' , 'valor' ) 
    191189                */ 
    192  
    193                     $result .= 'WHERE ('.self::parseFilter( $criteria['filter'] , $map).')'; 
     190                $query .= ($query === '') ?  'WHERE ('.self::parseFilter( $criteria['filter'] , $map).')' : ' AND ('.self::parseFilter( $criteria['filter'] , $map).')'; 
    194191            } 
    195192            /* 
     
    200197            { 
    201198                foreach ($criteria["join"] as $i => $v) 
    202                     $result .= ' AND '.$i.' = '.$v.' '; 
     199                    $query .= ' AND '.$i.' = '.$v.' '; 
    203200            } 
    204201             
    205202            if( isset($criteria["group"]) ) 
    206203            { 
    207                     $result .= ' GROUP BY '.( is_array($criteria["group"]) ? implode(', ', $criteria["group"]) : $criteria["group"] ).' '; 
     204                    $query .= ' GROUP BY '.( is_array($criteria["group"]) ? implode(', ', $criteria["group"]) : $criteria["group"] ).' '; 
    208205            } 
    209206             
    210207            if( isset($criteria["order"]) ) 
    211208            { 
    212                     $result .= ' ORDER BY '.self::parseOrder( $criteria["order"], $map ).' '; 
     209                    $query .= ' ORDER BY '.self::parseOrder( $criteria["order"], $map ).' '; 
    213210            } 
    214211            if( isset($criteria["limit"]) ) 
    215212            { 
    216                     $result .= ' LIMIT '. $criteria["limit"] .' '; 
     213                    $query .= ' LIMIT '. $criteria["limit"] .' '; 
    217214            } 
    218215            if( isset($criteria["offset"]) ) 
    219216            { 
    220                     $result .= ' OFFSET '. $criteria["offset"] .' '; 
    221             } 
    222              
    223             return $result; 
     217                    $query .= ' OFFSET '. $criteria["offset"] .' '; 
     218            } 
     219             
     220            return $query; 
    224221    } 
    225222     
Note: See TracChangeset for help on using the changeset viewer.