Ignore:
Timestamp:
03/09/12 19:47:52 (12 years ago)
Author:
adriano
Message:

Ticket #2486 - implementa a pasta 'para acompanhamento' e corrige o salvamento

Location:
trunk/prototype/modules/mail
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/modules/mail/interceptors/Helpers.php

    r5625 r5697  
    109109                                        /** 
    110110                                         * Devido há inconsistencias na chamada do interceptor addDefaultElementsFilter (followupflag:before.find) 
    111                                          * os followupflag defaults  
     111                                         * os followupflag defaults são inseridos no retorno, por isso é necessário procurar o objeto correto 
     112                                         * através do id 
    112113                                         */ 
    113114                                        foreach ($followupflags as $followupflag) { 
     
    186187        } 
    187188 
    188         //followupflagged:before.create 
     189        //followupflagged:Imap.before.create 
    189190        public function letFollowupflaggedKeepUnique (&$uri , &$params , &$criteria , $original ){ 
    190          
     191 
    191192                if (isset($params['folderName']) && isset($params['messageNumber'])) { 
    192193                        $filter = array ('AND', array('=', 'folderName', $params['folderName']), array('=', 'messageNumber', $params['messageNumber'])); 
     
    195196                        //Obtém do banco um possível sinalizador existente 
    196197                        $imap_result = Controller::find($toClearURI, false, array('filter' => $filter)); 
    197  
     198                         
    198199                        //Se existe um sinalizador nesta mensagem, deleta-o 
    199200                        foreach ($imap_result as $r) { 
     
    243244        //followupflagged:PostgreSQL.before.delete 
    244245        public function doImapDelete( &$uri , &$params , &$criteria , $original ) { 
    245                 $toGetURI = $uri; 
    246                 $flagged = Controller::read($toGetURI); 
    247  
    248                 //assumindo que $criteria['filter'] venha sempre vazio no delete 
    249                 $imap_criteria['filter'] = array(); 
    250                 foreach ($flagged as $key => $value) { 
    251                         $imap_criteria['filter'][] = array('=', $key, $value);  
    252                 } 
    253                 if($imap_criteria['filter']) array_unshift($imap_criteria['filter'], 'AND'); 
    254                  
    255                 $imap_uri = $uri; 
    256                 $imap_uri['service'] = 'Imap'; 
    257                 if ($flagged && $flagged['id']) { 
    258                         $flagged['id']  = $flagged['folderName'] . '/' . $flagged['messageNumber'] . '#' . $flagged['id'];  
    259                         $imap_uri['id'] = $flagged['id'];  
    260                 } 
    261  
    262                 $result = Controller::delete($imap_uri, $params, $imap_criteria);                
     246 
     247                $imap_uri = $uri; 
     248                $imap_uri['service'] = 'Imap'; 
     249                list($messageId, $uri['id']) = explode('#', $uri['id']); 
     250 
     251                $result = Controller::delete($imap_uri, $params, $imap_criteria); 
     252 
     253                if (!$result) 
     254                        return false; 
    263255        } 
    264256         
  • trunk/prototype/modules/mail/js/foldertree.js

    r5663 r5697  
    106106                        selected = target.attr('id'); 
    107107                        change_folder(target.attr('id'), child.attr('title'));   
     108                 
     109                }).filter('.followup-messages').click(function(event, ui){ 
     110                        search_emails("UNDELETED KEYWORD \"$Followupflagged\""); 
    108111                }).end(); 
     112                 
    109113                folders_html.find('[id="'+selected+'"]').children().addClass("selected").end().end().find("li:first").find(".folder").not(".head_folder,.inbox,.drafts,.sent,.spam,.trash").draggable({ 
    110114                        // DRAG DE PASTAS 
  • trunk/prototype/modules/mail/js/followupflag.js

    r5674 r5697  
    271271        .filter('.menu-configure-followupflag .delete').click(function(){ 
    272272                if (selectedMessageIds.length == 0) $(this).button("option", "disabled", true); 
    273                         /** TODO Mudar quando melhorias forem implementadas na API de atualização do cache */ 
    274                         DataLayer.remove('followupflagged', false); 
    275                         DataLayer.get('followupflagged'); 
    276                         var roles = get_selected_messages_search_role().split(','); 
    277                         for (var i=0; i < selectedMessageIds.length; i++ ){ 
     273                /** TODO Mudar quando melhorias forem implementadas na API de atualização do cache */ 
     274                DataLayer.remove('followupflagged', false); 
     275                //DataLayer.get('followupflagged'); 
     276                var roles = get_selected_messages_search_role().split(','); 
     277                for (var i=0; i < selectedMessageIds.length; i++ ){ 
    278278                                if (currentTab == 0) { 
    279279                                        folder_name = current_folder; 
     
    288288                                if(onceOpenedHeadersMessages[folder_name][messageNumber]['followupflagged'].id){ 
    289289                                        var flag_id = onceOpenedHeadersMessages[folder_name][messageNumber]['followupflagged'].id; 
    290                                         DataLayer.remove('followupflagged', flag_id); 
     290                                        //DataLayer.remove('followupflagged', folder_name + '/' + messageNumber + '#' + flag_id ); 
     291                                        /** 
     292                                         * TODO - corrigir o formato do ID no DataLayer, para que seja utilizado o ID composto 
     293                                         * ao invés do ID do PostgreSQL atualmente em uso. 
     294                                         */ 
     295                                          
     296                                        /** 
     297                                         * # hack necessário enquanto o DataLayer não reconhece o ID composto. Trocar o  
     298                                         * código abaixo pela chamada trivial de DataLayer.remove('followupflagged', idCompost) 
     299                                         */ 
     300                                        var data = {}; 
     301                                        data[ 'followupflagged://' + folder_name + '/' + messageNumber + '#' + flag_id ] = false; 
     302                                        DataLayer.dispatch('Sync', data, false, true); 
     303                                         
    291304                                        if(current_folder == folder_name){ 
    292305                                                $('#td_message_followup_' + messageNumber + ', ' +  
  • trunk/prototype/modules/mail/templates/detailedfoldertree.ejs

    r5533 r5697  
    5252  </li> 
    5353  <%}%> 
    54   <li><span class="folder head_folder all_accomp">Para acompanhamento</span> 
     54  <li><span class="folder head_folder all_accomp followup-messages">Para acompanhamento</span> 
    5555  </li> 
    5656</ul> 
Note: See TracChangeset for help on using the changeset viewer.