Changeset 5540
- Timestamp:
- 02/23/12 21:25:44 (12 years ago)
- Location:
- trunk
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/js/common_functions.js
r5539 r5540 801 801 connector.loadScript("search"); 802 802 if (typeof(EsearchE) == 'undefined' || typeof(ttree) == 'undefined'){ 803 setTimeout( 'search_emails("'+value+'")',500);803 setTimeout("search_emails('"+value+"')",500); 804 804 return false; 805 805 } -
trunk/expressoMail1_2/js/draw_api.js
r5538 r5540 1049 1049 */ 1050 1050 var followupflaggeds = DataLayer.get('followupflagged', { 1051 filter: ['AND', ['IN', 'messageNumber', messageNumbers], ['=', 'folderName', msg_folder]], 1052 criteria: {deepness: 1} 1051 criteria: { 1052 filter: ['AND', ['IN', 'messageNumber', messageNumbers], ['=', 'folderName', msg_folder]], 1053 deepness: 1 1054 } 1053 1055 }); 1054 1056 … … 1671 1673 ['=', 'folderName', msg_folder] 1672 1674 ]}); 1673 if (flagged == '' || flagged == [] || flagged == 'undefined') { 1675 1676 if (!flagged) { 1674 1677 /** 1675 1678 * Aplica followupflag de Acompanhamento 1676 1679 */ 1677 1678 1680 headers_msgs.followupflagged = { 1679 1681 uid : User.me.id, … … 1690 1692 } else if (headers_msgs.followupflagged.followupflag.name == 'Follow up') { 1691 1693 /** 1692 * Remove r followupflag de Acompanhamento (DFD0078:RI25)1694 * Remove followupflag de Acompanhamento 1693 1695 */ 1694 1696 $(this).find(".flag-edited").css("background", "#cccccc"); … … 1703 1705 configureFollowupflag(); 1704 1706 } 1707 1708 DataLayer.commit(); 1705 1709 1706 1710 }); -
trunk/prototype/config/followupflag.ini
r5533 r5540 5 5 addVerifyOwnerFilter = modules/mail/interceptors/FollowupflagSecure.php 6 6 addDefaultElementsFilter = modules/mail/interceptors/FollowupflagSecure.php 7 8 ;[after.find]9 ;addDefaultFollowupflags = modules/mail/interceptors/Helpers.php10 7 11 8 ;[before.delete] -
trunk/prototype/config/followupflagged.ini
r5533 r5540 1 1 service = PostgreSQL 2 PostgreSQL.concept = expressomail_message_followupflag 2 3 3 PostgreSQL.concept = expressomail_message_followupflag4 ;Imap.concept = followupflag5 6 [before.find]7 addVerifyOwnerFilter = modules/mail/interceptors/FollowupflagSecure.php8 4 9 5 [after.find] … … 11 7 12 8 [PostgreSQL.before.create] 13 letFollowupflaggedKeepUnique = modules/mail/interceptors/Helpers.php9 ;letFollowupflaggedKeepUnique = modules/mail/interceptors/Helpers.php 14 10 15 11 [PostgreSQL.after.create] 16 12 doImapCreate = modules/mail/interceptors/Helpers.php 17 13 14 [PostgreSQL.after.find] 15 doImapFind = modules/mail/interceptors/Helpers.php 16 18 17 [PostgreSQL.before.find] 19 doImapFind = modules/mail/interceptors/Helpers.php18 clearFilterAtFind = modules/mail/interceptors/Helpers.php 20 19 21 20 [PostgreSQL.before.read] … … 31 30 [PostgreSQL.mapping] 32 31 id = id 33 uid = user_id34 32 followupflagId = followupflag_id 35 ;TODO - retirar folderName e messageNumber do banco36 folderName = folder_name37 messageNumber = message_id38 33 alarmDeadline = alarm_deadline 39 34 doneDeadline = done_deadline -
trunk/prototype/modules/mail/interceptors/FollowupflagSecure.php
r5533 r5540 2 2 class FollowupflagSecure { 3 3 4 //followupflag:before.find 4 5 public function addVerifyOwnerFilter (&$uri , &$params , &$criteria , $original ){ 5 6 … … 13 14 } 14 15 16 //followupflag:before.find 15 17 public function addDefaultElementsFilter (&$uri , &$params , &$criteria , $original ){ 16 18 -
trunk/prototype/modules/mail/interceptors/Helpers.php
r5533 r5540 5 5 6 6 /** 7 * LABEL S7 * LABEL 8 8 */ 9 //labeled:after.find 9 10 public function deepnessLabeleds( &$uri , &$result , &$criteria , $original ){ 10 11 … … 29 30 * desvinculação deste label com todas as mensagens a que estava vinculado 30 31 */ 32 //label:before.delete 31 33 public function clearAllLabeledsOfLabel( &$uri , &$result , &$criteria , $original ){ 32 34 … … 45 47 } 46 48 /** 47 * Método a ser chamado ao listar os labeleds, uma vez que as funçà £ode IMAP do PHP não são capazes de49 * Método a ser chamado ao listar os labeleds, uma vez que as funções de IMAP do PHP não são capazes de 48 50 * obter a lista de todos os labels e nem são capazes de obter os labels de uma dada mensagem 49 51 */ 52 //labeled:before.find 50 53 public function makeLabelListFilter( &$uri , &$result , &$criteria , $original ){ 51 54 … … 76 79 77 80 /** 78 * FOLLOWUPFLAG S81 * FOLLOWUPFLAG 79 82 */ 80 83 84 //followupflagged:after.find 81 85 public function deepnessFollowupflaggeds( &$uri , &$result , &$criteria , $original ){ 82 86 83 87 if(isset($original['criteria']['deepness'])) 84 88 { … … 87 91 if(isset($v['followupflagId'])) 88 92 { 89 $followupflag = Controller::find( array( 'concept' => 'followupflag' ) , false, array( 'filter' => array('=', 'id' ,$v['followupflagId']) ));93 $followupflag = Controller::find(array('concept' => 'followupflag'), false, array('filter' => array('=', 'id', $v['followupflagId']) )); 90 94 $result[$i]['followupflag'] = $followupflag[0]; 91 95 } … … 93 97 if(isset($v['messageNumber']) && isset($v['folderName'])) 94 98 { 95 $details = $ criteria['deepness'] == '1' ? 'headers' : 'all';99 $details = $original['criteria']['deepness'] == '1' ? 'headers' : 'all'; 96 100 97 101 $imapService = new imap_functions(); … … 104 108 return $result; 105 109 } 106 110 111 //followupflagged:PostgreSQL.before.find 112 public function clearFilterAtFind( &$uri , &$params , &$criteria , $original ) { 113 114 if ($criteria['filter'] && !self::in_arrayr('id', $criteria['filter'])) { 115 unset($criteria['filter']); 116 } 117 } 118 119 /** 120 * Método a ser chamado ao listar os sinalizadores, uma vez que as funções de IMAP do PHP não são capazes de 121 * obter a lista de todos os sinalizadores e nem são capazes de obter os sinalizadores de uma dada mensagem 122 */ 123 //followupflagged:PostgreSQL.after.find 124 public function doImapFind( &$uri , &$result , &$criteria , $original ){ 125 126 if (!self::in_arrayr('id', $original['criteria']['filter'])) { 127 if ($result) { 128 $list = array(); 129 foreach ($result as $followupflagged) 130 $list[] = $followupflagged['id']; 131 132 $filter = array( 'IN' , 'id' , $list ); 133 134 if (isset($original['criteria']['filter']) && $original['criteria']['filter']!=NULL && count($original['criteria']['filter']) != 0) 135 $criteria['filter'] = array( 'AND', $original['criteria']['filter'], $filter ); 136 else 137 $criteria['filter'] = $filter; 138 } 139 } 140 141 $imap_uri = $uri; 142 $imap_uri['service'] = 'Imap'; 143 $imap_result = Controller::find($imap_uri, $params, $criteria); 144 145 /** 146 * Mescla os dados vindos do PostgreSQL com os dados vindos do Imap 147 */ 148 $merge_result = array (); 149 foreach ($imap_result as $ir) { 150 list($messageId, $flagId) = explode('#', $ir['id']); 151 152 foreach($result as $r) { 153 if ($r['id'] == $flagId) { 154 $r['messageNumber'] = $ir['messageNumber']; 155 $r['folderName'] = $ir['folderName']; 156 157 $merge_result[] = $r; 158 } 159 } 160 } 161 162 return $merge_result; 163 } 164 165 //followupflagged:PostgreSQL.before.create 107 166 public function letFollowupflaggedKeepUnique (&$uri , &$params , &$criteria , $original ){ 167 108 168 if (isset($params['folderName']) && isset($params['messageNumber'])) { 109 169 $filter = array ( 'AND', array('=', 'folderName', $params['folderName']), array('=', 'messageNumber', $params['messageNumber']) ); … … 119 179 */ 120 180 121 // PostgreSQL.after.create181 //followupflagged:PostgreSQL.after.create 122 182 public function doImapCreate( &$uri , &$params , &$criteria , $original ) { 123 183 … … 134 194 } 135 195 136 //PostgreSQL.before.find 137 public function doImapFind( &$uri , &$params , &$criteria , $original ) { 138 $imap_uri = $uri; 139 $imap_uri['service'] = 'Imap'; 140 $result = Controller::find($imap_uri, $params, $criteria); 141 142 if($result) { 143 /** TODO: 144 * - se achar no Imap, passar as referencias para o PostgresSQL para que 145 * seja conferida a consistência dos dados no postgres (Nota: os dados podem 146 * ficar inconsistentes no postgres se a mensagem for movida no Imap, assim 147 * messageNumber e/ou folderName podem estar desatualizados no postgres) 148 */ 149 } 150 } 151 152 //PostgreSQL.before.read 196 //followupflagged:PostgreSQL.before.read 153 197 public function doImapRead( &$uri , &$params , &$criteria , $original ) { 154 $imap_uri = $uri; 155 $imap_uri['service'] = 'Imap'; 156 $result = Controller::read($imap_uri, $params, $criteria); 157 } 158 159 //PostgreSQL.before.delete 198 //TODO - read 199 //$imap_uri = $uri; 200 //$imap_uri['service'] = 'Imap'; 201 //$result = Controller::read($imap_uri, $params, $criteria); 202 } 203 204 //followupflagged:PostgreSQL.before.delete 160 205 public function doImapDelete( &$uri , &$params , &$criteria , $original ) { 161 206 $toGetURI = $uri; … … 179 224 } 180 225 181 // PostgreSQL.before.update226 //followupflagged:PostgreSQL.before.update 182 227 public function doImapUpdate( &$uri , &$params , &$criteria , $original ) { 183 228 //TODO - update … … 186 231 //$result = Controller::update($imap_uri, $params, $criteria); 187 232 } 188 /* 189 public function createCalendarToSchedulable( &$uri , &$result , &$criteria , $original ){ 190 Controller::create(array('concept' => 'calendarToSchedulable'), array('calendar' => $original['properties']['calendar'], 'schedulable' => $result['id'] )); 191 } 192 */ 233 193 234 } 194 235 -
trunk/prototype/modules/mail/interceptors/LabelSecure.php
r5533 r5540 2 2 class LabelSecure { 3 3 4 //label:before.find 4 5 public function addVerifyOwnerFilter (&$uri , &$params , &$criteria , $original ){ 5 6 -
trunk/prototype/services/ImapServiceAdapter.php
r5533 r5540 166 166 $result = array ( ); 167 167 if (isset($criteria["filter"]) && is_array($criteria['filter'])) { 168 // melhorar o tratamento do filter com a lista de todos os labelIds dado pelo interceptor168 //TODO - melhorar o tratamento do filter com a lista de todos os labelIds dado pelo interceptor 169 169 $map = array( 170 170 'id' => array(), … … 215 215 $result = array ( ); 216 216 if (isset($criteria["filter"]) && is_array($criteria['filter'])) { 217 // melhorar o tratamento do filter com a lista de todos os labelIds dado pelo interceptor217 //TODO - melhorar o tratamento do filter com a lista de todos os labelIds dado pelo interceptor 218 218 $map = array( 219 219 'id' => array(), … … 334 334 public function create( $URI, $data) 335 335 { 336 337 336 switch( $URI['concept'] ) 338 337 { … … 352 351 case 'followupflagged': 353 352 { 354 // tem que gravar no banco primeiro, obter o id e depois mandar gravar no imap passando o id nodata353 //deve ser gravado no banco primeiro, obtido o id e, depois, gravado no imap passando o id no parametro $data 355 354 if (isset($data['folderName']) && isset($data['messageNumber']) && isset($data['id'])) { 356 355 list($messageId, $followupflaggedId) = explode('#', $data['id']); … … 472 471 } 473 472 case 'in': { 474 $map[$filter[0]] = array_merge($map[$filter[0]], $filter[1]); 473 if(is_array($map[$filter[0]]) && is_array($filter[1])) 474 $map[$filter[0]] = array_unique(array_merge($map[$filter[0]], $filter[1])); 475 475 return; 476 476 }
Note: See TracChangeset
for help on using the changeset viewer.