Changeset 6392 for trunk/prototype
- Timestamp:
- 06/02/12 16:40:08 (12 years ago)
- Location:
- trunk/prototype/modules/filters
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/prototype/modules/filters/filters.js
r6387 r6392 1 /* Verifica se a regra fora de escritório está ativa */ 1 2 function outOfficeVerify() { 2 3 DataLayer.remove('filter', false); … … 17 18 } 18 19 20 /* Valida as informações do formulário de filtro de mensagens */ 19 21 valid_save = function(){ 20 22 var accord = list_container.find(".rule-details-container").accordion({autoHeight: false}); … … 92 94 } 93 95 var er_mail = RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/); 94 if(er_mail.test($.trim(list_container.find('[value="redirect"]:checked').parent().find("input:text , textarea").val())) == false){96 if(er_mail.test($.trim(list_container.find('[value="redirect"]:checked').parent().find("input:text").val())) == false && list_container.find('[name="actionType[]"]:checked').val() == 'redirect'){ 95 97 $.Zebra_Dialog(get_lang("Invalid mail"),{ 96 98 'onClose': function(caption) { … … 103 105 return true; 104 106 }; 107 108 function urlencode (str) { 109 str = (str + '').toString(); 110 return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28'). 111 replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+'); 112 } 105 113 106 114 bytes2Size = function(bytes) { … … 144 152 } 145 153 154 /* Mostra os detalhes do filtro para edição */ 146 155 showDetails = function( filter ){ 147 156 … … 173 182 } 174 183 175 /* --- ------ --- */176 184 177 185 DataLayer.codec( "filter", "detail", { … … 190 198 191 199 var apply_messages_ = keys(selectedMessages); 192 delete selectedMessages; 193 200 201 action = ''; 202 194 203 return { 195 //id: form.name,196 204 name: form.name ? form.name.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>') : nameObj.val().replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'), 197 205 isExact: ( form.isExact === "and" ), … … 231 239 if (type == 'setflag') { 232 240 the_parameter = form.valueSetFlag; 241 action = form.valueSetFlag; 233 242 } 234 243 return (!type) ? null: … … 253 262 }); 254 263 264 /* Codec do datalayer */ 255 265 DataLayer.codec( "folder", "select", { 256 266 257 267 decoder:function(){ 258 259 260 268 261 269 }, … … 293 301 }); 294 302 295 296 297 298 303 var BASE_PATH = '../prototype/'; 299 304 … … 304 309 var allMessages = false; 305 310 311 /* Bloqueio de usuários na tela de mensagem do ExpressoMail */ 306 312 function block_user_email(email) { 307 //var id = "block_"+email;308 var idd = email;313 delete selectedMessages; 314 var idd = urlencode(email); 309 315 /** TODO - Mudar quando API abstrair atualizações no cache */ 310 316 DataLayer.remove('filter', false); 311 317 var filters = DataLayer.get('filter'); 312 //var filters = DataLayer.get("filter", true);313 318 for(var index in filters){ 314 319 if(filters[index].name == email) { … … 341 346 } 342 347 348 /* Gerencia o grid das mensagens da caixa de entrada */ 343 349 function showGridMessages(thiss) { 344 350 var criteria_list = list_container.find('[name="criteriaValue[]"]'); … … 453 459 } 454 460 }, 461 onSelectAll: function (id, selected) { 462 for (i in id) { 463 if(selected) 464 selectedMessages[id[i]] = true; 465 else 466 delete selectedMessages[id[i]]; 467 } 468 }, 455 469 caption: 'Mensagens que atendem aos critérios' 456 470 }); // end jqGrid … … 459 473 } 460 474 461 475 /* Gerencia a listagem de filtros do usuário */ 462 476 function list_filters(html){ 463 477 outOfficeVerify(); 478 for (var index in selectedMessages) { 479 delete selectedMessages[index]; 480 } 464 481 if(html){ 465 482 if( ! $(".filters-windows").length ) … … 553 570 else 554 571 return; 555 DataLayer.commit( 'filter', false,function(){ 572 DataLayer.commit( 'filter', false,function(){ 573 if($('#gbox_fields-search-messages-grid').length > 0 && action != '') { 574 for (var index in selectedMessages) { 575 set_message_flag(index, action, false); 576 } 577 } 556 578 DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 557 579 }); 558 580 }).end().filter('.button.search').click(function() { 559 /* Valida se o usuário preencheu as informações */560 if(valid_save())561 showGridMessages($(this));562 else563 return;564 })581 /* Valida se o usuário preencheu as informações */ 582 if(valid_save()) 583 showGridMessages($(this)); 584 else 585 return; 586 }) 565 587 }else{ 566 588 list_container.find(".vacation-details-container").removeClass("hidden"); … … 650 672 }); 651 673 652 653 654 674 $(".button.alldelete").click(function(){ 655 675 $.Zebra_Dialog(get_lang("Are you sure to delete the filters?"),{ … … 662 682 DataLayer.remove('filter', false); 663 683 DataLayer.get('filter'); 664 container.find('.rule-list').find('.rule').find('.select').find(':checked').parents('.rule').find('.title').each(function(i,o){ 665 DataLayer.remove( 'filter', o.innerHTML);684 container.find('.rule-list').find('.rule').find('.select').find(':checked').parents('.rule').find('.title').each(function(i,o){ 685 DataLayer.remove( 'filter', urlencode(o.innerHTML) ); 666 686 }); 667 687 DataLayer.commit("filter", false,function(){ … … 698 718 return; 699 719 DataLayer.commit( 'filter',false,function(){ 720 if($('#gbox_fields-search-messages-grid').length > 0 && action != '') { 721 for (var index in selectedMessages) { 722 set_message_flag(index, action, false); 723 } 724 } 700 725 DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 701 726 }); … … 717 742 list_container.find(".button").button().filter(".back").click(function(){ 718 743 DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 719 }).end().filter(".submit").click(function(){ 720 721 if(list_container.find(".vacation-details-container .filter-textarea").val().length <= 0){ 722 alert(get_lang('Write a message')); 723 list_container.find(".vacation-details-container .filter-textarea").focus(); 724 }else{ 725 $(this).submit(); 726 DataLayer.commit( 'filter',false,function(){ 727 DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 728 }); 729 } 730 744 }).end().filter(".submit").click(function(){ 745 if(list_container.find(".vacation-details-container .filter-textarea").val().length <= 0){ 746 $.Zebra_Dialog(get_lang('Write a message')); 747 list_container.find(".vacation-details-container .filter-textarea").focus(); 748 }else{ 749 $(this).submit(); 750 DataLayer.commit( 'filter',false,function(){ 751 DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 752 }); 753 } 731 754 }); 732 755 }); 733 734 735 756 }); 736 757 } 737 758 759 /* Inicializa os filtros e chama o list_filters */ 738 760 function init_filters(){ 739 761 var html = DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {}); -
trunk/prototype/modules/filters/interceptors/FilterMapping.php
r6377 r6392 58 58 { 59 59 var $service; 60 60 var $msgs_apply = array(); 61 61 /** 62 62 * Método que cria o ID da regra que está sendo criada. … … 282 282 { 283 283 $script_rules .= "vacation" . $vacation_action . "\r\n"; 284 } 285 286 foreach ($rules as &$values) { 287 if($values['applyMessages']) 288 $this->msgs_apply[] = $values['applyMessages']; 289 $values['applyMessages'] = array(); 284 290 } 285 291 … … 501 507 $this->rules = array(); 502 508 } 503 504 509 return( $this->rules ); 505 510 } … … 522 527 public function applySieveFilter( &$uri , &$result , &$criteria , $original ) 523 528 { 529 $rule_apply = array(); 530 531 $filter = Controller::read($uri); 532 $filter_ = $this->parseSieveScript($filter['content']); 524 533 525 //if() 526 //{ 527 $rule_apply = array(); 534 foreach ($filter_ as $f_) { 535 if($f_['id'] == $uri['id']) { 536 $rule_apply = $f_; 537 } 538 } 539 540 $actions = array(); 541 $actions['type'] = $rule_apply['actions'][0]['type']; 542 $actions['parameter'] = $rule_apply['actions'][0]['parameter']; 543 /* Hardcoded */ 544 $actions['keep'] = false; 545 546 //$messages = $rule_apply['applyMessages']; 547 $messages = $this->msgs_apply[0]; 548 $this->msgs_apply = array(); 528 549 529 $filter = Controller::read($uri); 530 $filter_ = $this->parseSieveScript($filter['content']); 531 532 foreach ($filter_ as $f_) { 533 if($f_['id'] == $uri['id']) { 534 $rule_apply = $f_; 535 } 536 } 537 538 $actions = array(); 539 $actions['type'] = $rule_apply['actions'][0]['type']; 540 $actions['parameter'] = $rule_apply['actions'][0]['parameter']; 541 /* Hardcoded */ 542 $actions['keep'] = false; 543 544 $messages_to_apply = array(); 545 546 $messages = $rule_apply['applyMessages']; 547 /* 548 $proc = array(); 549 $proc['keep'] = false; 550 551 */ 552 $imap = Controller::service( 'Imap' ); 553 $imap->apliSieveFilter($messages, $actions); 554 return $result; 555 //} 550 $imap = Controller::service( 'Imap' ); 551 $imap->apliSieveFilter($messages, $actions); 552 return $result; 556 553 } 557 554 … … 596 593 { 597 594 if( !$this->rules ) 598 $this->rules = $this->getRules();595 $this->rules = $this->getRules(); 599 596 600 597 $uri['id'] = $params['id'] = isset($params['id']) ? $params['id'] : urlencode($params['name']); … … 633 630 $params['id'] = $uri['id']; 634 631 635 $update = false;636 637 632 $rules = array(); 638 633
Note: See TracChangeset
for help on using the changeset viewer.