Changeset 5708
- Timestamp:
- 03/12/12 18:58:19 (12 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/js/draw_api.js
r5706 r5708 1673 1673 1674 1674 DataLayer.remove('followupflagged', false); 1675 DataLayer.get('followupflagged'); 1675 1676 var flagged = DataLayer.get('followupflagged', {filter: [ 1676 1677 'AND', … … 1705 1706 */ 1706 1707 $(this).find(".flag-edited").css("background", "#cccccc"); 1707 1708 DataLayer.remove('followupflagged', flagged[0].id); 1708 DataLayer.remove('followupflagged', flagged[0].id ); 1709 // var data = {}; 1710 // data[ 'followupflagged://' + msg_folder + '/' + messageClickedId + '#' + flagged[0].id ] = false; 1711 // DataLayer.dispatch('Sync', data, false, true); 1709 1712 DataLayer.commit(false, false, function(){ 1710 1713 updateCacheFollowupflag(messageClickedId, msg_folder, false); -
trunk/expressoMail1_2/js/search.js
r5659 r5708 543 543 /**TODO Alterar após melhorias no filtro da camada javascript*/ 544 544 DataLayer.remove('followupflagged', false); 545 DataLayer.get('followupflagged'); 545 546 var flagged = DataLayer.get('followupflagged', {filter: [ 546 547 'AND', … … 583 584 */ 584 585 $(this).find(".flag-edited").css("background", "#cccccc"); 585 586 587 DataLayer.remove('followupflagged', flagged[0].id); 586 // var data = {}; 587 // data[ 'followupflagged://' + mailbox + '/' + messageClickedId + '#' + flagged[0].id ] = false; 588 // DataLayer.dispatch('Sync', data, false, true); 589 DataLayer.remove('followupflagged', mailbox + '/' + messageClickedId + '#' + flagged[0].id ); 588 590 if(current_folder == mailbox){ 589 591 DataLayer.commit(false, false, function(){ -
trunk/prototype/config/followupflagged.ini
r5609 r5708 19 19 20 20 [PostgreSQL.before.read] 21 stripURIAttrs = modules/mail/interceptors/Helpers.php 22 23 [PostgreSQL.after.read] 21 24 doImapRead = modules/mail/interceptors/Helpers.php 22 25 23 26 [PostgreSQL.before.delete] 24 27 doImapDelete = modules/mail/interceptors/Helpers.php 28 29 30 [PostgreSQL.before.update] 31 stripURIAttrs = modules/mail/interceptors/Helpers.php 25 32 26 33 [PostgreSQL.before.update] -
trunk/prototype/modules/mail/interceptors/Helpers.php
r5697 r5708 141 141 unset($criteria['filter']); 142 142 } 143 144 /** 145 * TODO - fazer parse do $criteria['filter'] para fazer strip no id composto 146 */ 143 147 } 144 148 … … 149 153 //followupflagged:PostgreSQL.after.find 150 154 public function doImapFind( &$uri , &$result , &$criteria , $original ){ 155 /** 156 * TODO - ver implicações de busca com id no filtro 157 */ 151 158 152 159 if ($result) { … … 176 183 foreach($result as $r) { 177 184 if ($r['id'] == $flagId) { 185 $r['id'] = $ir['id']; 178 186 $r['messageNumber'] = $ir['messageNumber']; 179 187 $r['folderName'] = $ir['folderName']; … … 199 207 //Se existe um sinalizador nesta mensagem, deleta-o 200 208 foreach ($imap_result as $r) { 209 /** 210 * TODO - deletar sem id 211 */ 212 201 213 //deleta no Imap 202 214 $toClearURI['id'] = $r['id']; … … 209 221 } 210 222 } 223 211 224 } 212 225 … … 219 232 220 233 //followupflagged:PostgreSQL.after.create 221 public function doImapCreate( &$uri , &$result , &$criteria , $original ) { 222 223 $imap_uri = $uri; 234 public function doImapCreate( &$uri , &$result , &$criteria , $original ) { 235 /** 236 * Se não consegue salvar no banco, ele retorna objeto válido, porém sem id 237 */ 238 if (!isset($result['id'])) return false; 239 240 $imap_uri = $original['URI'];; 224 241 $imap_uri['service'] = 'Imap'; 225 226 $imap_params = $result + $original['properties']; 242 243 $imap_params = array_merge($original['properties'], $result); 244 245 $result = array(); 227 246 if ($imap_params['folderName'] && $imap_params['messageNumber'] && $imap_params['id']) { 228 $imap_uri['id'] = $imap_params['folderName'] . '/' . $imap_params['messageNumber'] . '#' . $imap_params['id'];229 247 $imap_params['id'] = $imap_params['folderName'] . '/' . $imap_params['messageNumber'] . '#' . $imap_params['id']; 230 248 $result = Controller::create($imap_uri, $imap_params); 231 249 } 232 233 } 234 235 //followupflagged:PostgreSQL.before.read 236 public function doImapRead( &$uri , &$params , &$criteria , $original ) { 237 $imap_uri = $uri; 250 251 if (!$result) { 252 //TODO - rollback 253 } 254 } 255 256 //followupflagged:PostgreSQL.after.read 257 public function doImapRead( &$uri , &$result , &$criteria , $original ) { 258 259 $imap_uri = $original['URI']; 238 260 $imap_uri['service'] = 'Imap'; 239 $result = Controller::read($imap_uri, $params, $criteria); 240 241 return $result; 242 } 243 261 262 $imap_result = Controller::read($imap_uri, $params, $imap_criteria); 263 264 if (!$imap_result) 265 return false; 266 267 $result = array_merge($result, $imap_result); 268 269 } 270 271 //followupflagged:PostgreSQL.before.<...> 272 public function stripURIAttrs( &$uri , &$params , &$criteria , $original ) { 273 list($messageId, $uri['id']) = explode('#', $uri['id']); 274 } 275 244 276 //followupflagged:PostgreSQL.before.delete 245 277 public function doImapDelete( &$uri , &$params , &$criteria , $original ) { 246 278 247 279 $imap_uri = $uri; 248 280 $imap_uri['service'] = 'Imap'; -
trunk/prototype/modules/mail/js/followupflag.js
r5705 r5708 271 271 /** TODO Mudar quando melhorias forem implementadas na API de atualização do cache */ 272 272 DataLayer.remove('followupflagged', false); 273 //DataLayer.get('followupflagged');273 DataLayer.get('followupflagged'); 274 274 var roles = get_selected_messages_search_role().split(','); 275 275 for (var i=0; i < selectedMessageIds.length; i++ ){ … … 286 286 if(onceOpenedHeadersMessages[folder_name][messageNumber]['followupflagged'].id){ 287 287 var flag_id = onceOpenedHeadersMessages[folder_name][messageNumber]['followupflagged'].id; 288 //DataLayer.remove('followupflagged', folder_name + '/' + messageNumber + '#' + flag_id );288 DataLayer.remove('followupflagged', folder_name + '/' + messageNumber + '#' + flag_id ); 289 289 /** 290 290 * TODO - corrigir o formato do ID no DataLayer, para que seja utilizado o ID composto … … 296 296 * código abaixo pela chamada trivial de DataLayer.remove('followupflagged', idCompost) 297 297 */ 298 var data = {};299 data[ 'followupflagged://' + folder_name + '/' + messageNumber + '#' + flag_id ] = false;300 DataLayer.dispatch('Sync', data, false, true);298 // var data = {}; 299 // data[ 'followupflagged://' + folder_name + '/' + messageNumber + '#' + flag_id ] = false; 300 // DataLayer.dispatch('Sync', data, false, true); 301 301 302 302 if(current_folder == folder_name){ -
trunk/prototype/services/ImapServiceAdapter.php
r5697 r5708 236 236 $this->mbox = $this->open_mbox($folder); 237 237 238 foreach ($map['id'] as $followupflagged) { 239 $messagesFlaggeds = imap_search($this->mbox, 'UNDELETED KEYWORD "$Followupflag'.$followupflagged.'"', SE_UID); 240 238 /** 239 * Caso não tenha sido passado id no filtro 240 */ 241 if (!$map['id']) { 242 $messagesFlaggeds = imap_search($this->mbox, 'UNDELETED KEYWORD "$Followupflagged"', SE_UID); 243 241 244 foreach ($messagesFlaggeds as $messageFlagged) { 242 245 if (count($map['messageNumber']) > 0 && !in_array($messageFlagged, $map['messageNumber'])) … … 244 247 245 248 $result[] = array ( 246 'id' => $folder . '/' . $messageFlagged . '#' . $followupflagged,247 249 'folderName' => $folder, 248 250 'messageNumber' => $messageFlagged 249 251 ); 252 } 253 254 } else { 255 foreach ($map['id'] as $followupflagged) { 256 $messagesFlaggeds = imap_search($this->mbox, 'UNDELETED KEYWORD "$Followupflag'.$followupflagged.'"', SE_UID); 257 258 foreach ($messagesFlaggeds as $messageFlagged) { 259 if (count($map['messageNumber']) > 0 && !in_array($messageFlagged, $map['messageNumber'])) 260 continue; 261 262 $result[] = array ( 263 'id' => $folder . '/' . $messageFlagged . '#' . $followupflagged, 264 'folderName' => $folder, 265 'messageNumber' => $messageFlagged 266 ); 267 } 250 268 } 251 269 } … … 309 327 */ 310 328 list($messageId, $followupflaggedId) = explode('#', $URI['id']); 311 $folderName = basename($messageId);312 $messageNumber = dirname($messageId);329 $folderName = dirname($messageId); 330 $messageNumber = basename($messageId); 313 331 314 332 $result = array(); … … 358 376 359 377 $this->mbox = $this->open_mbox($data['folderName']); 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); 366 378 $s = imap_setflag_full($this->mbox, $data['messageNumber'], '$Followupflagged $Followupflag' . $followupflaggedId, ST_UID); 379 367 380 imap_close($this->mbox); 368 381 $this->mbox = false; 369 382 370 return array ('id' => $data['id']); 383 return ($s) ? $data : array(); 384 371 385 } 372 386 return array ();
Note: See TracChangeset
for help on using the changeset viewer.