Changeset 5697
- Timestamp:
- 03/09/12 19:47:52 (12 years ago)
- Location:
- trunk/prototype
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/prototype/config/labeled.ini
r5533 r5697 16 16 folderName = folder_name 17 17 messageNumber = message_id 18 19 ;TODO - interceptor para evitar que existam mais de um entrada com os campos "folderName", "messageNumber" e "labelId" identicos -
trunk/prototype/modules/mail/interceptors/Helpers.php
r5625 r5697 109 109 /** 110 110 * 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 112 113 */ 113 114 foreach ($followupflags as $followupflag) { … … 186 187 } 187 188 188 //followupflagged: before.create189 //followupflagged:Imap.before.create 189 190 public function letFollowupflaggedKeepUnique (&$uri , &$params , &$criteria , $original ){ 190 191 191 192 if (isset($params['folderName']) && isset($params['messageNumber'])) { 192 193 $filter = array ('AND', array('=', 'folderName', $params['folderName']), array('=', 'messageNumber', $params['messageNumber'])); … … 195 196 //Obtém do banco um possÃvel sinalizador existente 196 197 $imap_result = Controller::find($toClearURI, false, array('filter' => $filter)); 197 198 198 199 //Se existe um sinalizador nesta mensagem, deleta-o 199 200 foreach ($imap_result as $r) { … … 243 244 //followupflagged:PostgreSQL.before.delete 244 245 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; 263 255 } 264 256 -
trunk/prototype/modules/mail/js/foldertree.js
r5663 r5697 106 106 selected = target.attr('id'); 107 107 change_folder(target.attr('id'), child.attr('title')); 108 109 }).filter('.followup-messages').click(function(event, ui){ 110 search_emails("UNDELETED KEYWORD \"$Followupflagged\""); 108 111 }).end(); 112 109 113 folders_html.find('[id="'+selected+'"]').children().addClass("selected").end().end().find("li:first").find(".folder").not(".head_folder,.inbox,.drafts,.sent,.spam,.trash").draggable({ 110 114 // DRAG DE PASTAS -
trunk/prototype/modules/mail/js/followupflag.js
r5674 r5697 271 271 .filter('.menu-configure-followupflag .delete').click(function(){ 272 272 if (selectedMessageIds.length == 0) $(this).button("option", "disabled", true); 273 274 275 276 277 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++ ){ 278 278 if (currentTab == 0) { 279 279 folder_name = current_folder; … … 288 288 if(onceOpenedHeadersMessages[folder_name][messageNumber]['followupflagged'].id){ 289 289 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 291 304 if(current_folder == folder_name){ 292 305 $('#td_message_followup_' + messageNumber + ', ' + -
trunk/prototype/modules/mail/templates/detailedfoldertree.ejs
r5533 r5697 52 52 </li> 53 53 <%}%> 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> 55 55 </li> 56 56 </ul> -
trunk/prototype/services/ImapServiceAdapter.php
r5620 r5697 2 2 3 3 include_once ROOTPATH."/../expressoMail1_2/inc/class.imap_functions.inc.php"; 4 require_once ROOTPATH.'/library/uuid/class.uuid.php'; 5 4 6 5 7 class ImapServiceAdapter extends imap_functions/* implements Service*/ … … 356 358 357 359 $this->mbox = $this->open_mbox($data['folderName']); 358 imap_setflag_full($this->mbox, $data['messageNumber'], '$Followupflag' . $followupflaggedId, ST_UID); 360 imap_setflag_full($this->mbox, $data['messageNumber'], '$Followupflagged $Followupflag' . $followupflaggedId, ST_UID); 361 362 /** 363 * implementa a possibilidade de listar todas as mensagens sinalizadas através da busca 364 */ 365 //imap_setflag_full($this->mbox, $data['messageNumber'], '$Followupflagged', ST_UID); 359 366 360 367 imap_close($this->mbox); … … 365 372 return array (); 366 373 } 367 case 'message': 374 375 case 'message': 368 376 { 369 377 $GLOBALS['phpgw_info']['flags'] = array( 'noheader' => true, 'nonavbar' => true,'currentapp' => 'expressoMail1_2','enable_nextmatchs_class' => True ); … … 383 391 $folder = @eregi_replace("INBOX[/.]", "INBOX".$this->imap_delimiter, $folder); 384 392 393 /** 394 * Gera e preenche o field Message-Id do header 395 */ 396 $mailService->addHeaderField('Message-Id', UUID::generate( UUID::UUID_RANDOM, UUID::FMT_STRING ) . '@Draft'); 397 385 398 $mailService->addTo($data['input_to']); 386 399 $mailService->addCc( $data['input_cc']); 387 400 $mailService->addBcc($data['input_cco']); 388 401 $mailService->setSubject($data['input_subject']); 389 390 402 if(isset($data['input_important_message'])) 391 403 $mailService->addHeaderField('Importance','High'); … … 494 506 list($messageId, $followupflaggedId) = explode('#', $URI['id']); 495 507 496 $folderName = basename($messageId);497 $messageNumber = dirname($messageId);508 $folderName = dirname($messageId); 509 $messageNumber = basename($messageId); 498 510 499 511 if ($folderName && $messageNumber && $followupflaggedId) { 512 500 513 $this->mbox = $this->open_mbox($folderName); 501 514 imap_clearflag_full($this->mbox, $messageNumber, '$Followupflag' . $followupflaggedId, ST_UID); 502 515 503 imap_close($this->mbox); 516 /** 517 * implementa a possibilidade de listar todas as mensagens sinalizadas através da busca 518 */ 519 imap_clearflag_full($this->mbox, $messageNumber, '$Followupflagged', ST_UID); 520 521 imap_close($this->mbox, CL_EXPUNGE); 504 522 $this->mbox = false; 505 523 } … … 568 586 569 587 570 private static function parseFilter( 588 private static function parseFilter($filter ,&$map){ 571 589 572 590 if( !is_array( $filter ) || count($filter) <= 0) return null; … … 590 608 } 591 609 } 592 610 593 611 }
Note: See TracChangeset
for help on using the changeset viewer.