Changeset 6754 for branches/2.4/prototype/modules/filters/filters.js
- Timestamp:
- 07/11/12 11:45:10 (12 years ago)
- Location:
- branches/2.4
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.4
-
Property
svn:mergeinfo
set to
(toggle deleted branches)
/trunk merged eligible /sandbox/2.4.1-3 6237-6527
-
Property
svn:mergeinfo
set to
(toggle deleted branches)
-
branches/2.4/prototype/modules/filters/filters.js
r6646 r6754 1 /* Verifica se a regra fora de escritório está ativa */ 1 /* 2 * Retorna as regras por remetente e que o usuário deseja ser avisado 3 */ 4 function getFromAlertRules() { 5 var filters = DataLayer.get("filter"); 6 fromRules = []; 7 var alertMessage; 8 var active; 9 for (var index in filters) { 10 alertMessage = filters[index]['alertMessage']; 11 active = filters[index]['enabled']; 12 for(var criterias in filters[index]['actions']) { 13 if (filters[index]['actions'][criterias]['type'] == 'fileinto' && alertMessage == 'true' && active == 'true') 14 fromRules[fromRules.length] = filters[index]['actions'][criterias]['parameter']; 15 } 16 } 17 return fromRules; 18 } 19 20 /* 21 * Verifica se a regra Fora de escritório está ativa 22 */ 2 23 function outOfficeVerify() { 3 24 DataLayer.remove('filter', false); … … 9 30 outoffice = true; 10 31 if(filters[index].id == "vacation" && filters[index].enabled == "true"){ 11 write_msg(get_lang("Attention, you are in out of office mode."), true); 32 write_msg(get_lang("Attention, you are in out of office mode."), true); 12 33 outoffice_active = true; 13 34 break; … … 18 39 } 19 40 20 21 /* Valida as informações do formulário de filtro de mensagens */ 41 /* 42 * Valida os campos do formulário da tela de filtros para salvar. 43 */ 22 44 valid_save = function(){ 23 45 var accord = list_container.find(".rule-details-container").accordion({autoHeight: false}); … … 53 75 error = true; 54 76 return; 55 } 77 } 56 78 }); 57 79 if(error){ … … 63 85 var criteria_list = list_container.find('[name="criteriaValue[]"]'); 64 86 var er_num = /^[0-9]+$/; 65 87 66 88 if($(".sizeRule").val() != "" && er_num.test($(".sizeRule").val()) == false) { 67 89 $.Zebra_Dialog(get_lang("Size rule must be a number"),{ … … 74 96 } 75 97 $.each(criteria_list, function(index, value){ 76 criteria += $.trim($(criteria_list[index]).val()); 98 if(($(criteria_list[index]).val() != "" && index != 5) || ($(criteria_list[index]).is(':checked'))){ 99 criteria += $.trim($(criteria_list[index]).val()); 100 } 77 101 }); 78 102 if(criteria == ""){ … … 101 125 } 102 126 }); 127 return false; 128 } 129 } 130 /*Validação ao salvar filtro com alerta*/ 131 var criteria_operator_list = list_container.find('[name="criteriaOperator[]"]'); 132 if(list_container.find('.alertMessage').is(':checked')){ 133 if($(criteria_list[0]).val() != "" && $('.select-folderlist').find('[type="radio"]').is(':checked') && $(criteria_operator_list[0]).find('option:selected').val() != "!*"){ 134 var hasValue = false; 135 $.each(criteria_list, function(index, value){ 136 if(($(criteria_list[index]).val() != "" && index != 0 && index != 5) || ($(criteria_list[index]).is(':checked'))){ 137 if($('.fields-isexact').find(':checked').val() == 'or'){ 138 hasValue = true; 139 } 140 } 141 }); 142 if(hasValue){ 143 $.Zebra_Dialog('<strong>'+get_lang('Filter with alert')+'</strong><br>'+get_lang('If more than one criterion for the filter, the "Meeting all the criteria" must be selected')); 144 return false; 145 } 146 }else{ 147 $.Zebra_Dialog('<strong>'+get_lang('Filter with alert')+'</strong><br>'+get_lang('The filter should be set as a criteria "Sender" and action "Archive folder"')); 103 148 return false; 104 149 } … … 132 177 date2Time = function (timestamp) { 133 178 var date = new Date(); 179 if( typeof timestamp === "string" ) 180 timestamp = parseInt( timestamp, 10 ); 134 181 if ((date.getTime() - timestamp) < (24*60*60*1000)) { 135 182 return '<span class="timable" title="'+timestamp+'"> </span>'; … … 143 190 144 191 keys = function( object ){ 145 192 146 193 var array = []; 147 194 148 195 for( var key in object ) 149 196 array[ array.length ] = key; 150 197 151 198 return( array ); 152 199 153 200 } 154 201 155 /* Mostra os detalhes do filtro para edição */ 202 /* 203 * Preenche o formulário de filtros com as informações originais para edição 204 */ 156 205 showDetails = function( filter ){ 157 206 158 207 form.get(0).reset(); 159 208 … … 175 224 if(filter.actions[i].type == "redirect") 176 225 actions.siblings('[name="addressRedirect"]').val(filter.actions[i].parameter); 177 if(filter.actions[i].type == "reject") 226 if(filter.actions[i].type == "reject") 178 227 actions.siblings('[name="messageReject"]').val(filter.actions[i].parameter); 179 228 if(filter.actions[i].type == "fileinto" || filter.actions[i].type == "setflag") 180 229 actions.parent().find('[value="'+filter.actions[i].parameter+'"]').attr("selected", "selected"); 181 230 } 182 isExact.filter('[value="'+(filter.isExact != "false"? "and" : "or")+'"]').attr("checked", "True"); 231 isExact.filter('[value="'+(filter.isExact != "false"? "and" : "or")+'"]').attr("checked", "True"); 232 233 if (filter.alertMessage == 'true') $('.alertMessage').attr('checked', 'True'); 183 234 } 184 235 185 236 186 237 DataLayer.codec( "filter", "detail", { 187 238 188 239 decoder: function( form ){ 189 240 if( form.vacation ) 190 241 return { 191 242 criteria: [{ value: "vacation", operator: "", field: "vacation" }], … … 199 250 200 251 var apply_messages_ = keys(selectedMessages); 201 252 202 253 action = ''; 203 254 204 255 return { 205 256 name: form.name ? form.name.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>') : nameObj.val().replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'), 206 257 isExact: ( form.isExact === "and" ), 207 criteria: $.map( form.criteriaOperator || [], function( criteriaOperator, i ){ 258 criteria: $.map( form.criteriaOperator || [], function( criteriaOperator, i ){ 208 259 return (!form.criteriaValue[i]) ? null: 209 { 260 { 210 261 value: form.criteriaValue[i].replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'), 211 262 operator: criteriaOperator, … … 215 266 actions: $.map( form.actionType || [], function( type, i ){ 216 267 var the_parameter = form.actionParameter[i]; 217 268 218 269 !the_parameter ? the_parameter = form.actionParameter[i+1] : ""; 270 271 if (type == 'alertMessage') { 272 //if(!$('[value="alertMessage"]').parent().hasClass("hidden")){ 273 type = 'addflag'; 274 the_parameter = '$FilteredMessage'; 275 //}else{ 276 // return; 277 //} 278 } 219 279 if (type == 'fileinto') { 220 280 the_parameter = form.valueFileInto; … … 223 283 the_parameter = form.messageReject; 224 284 } 225 if (type == 'fileintoInbox') { 285 if (type == 'fileintoInbox') { 226 286 if(!$('[value="fileintoInbox"]').parent().hasClass("hidden")){ 227 287 type = 'fileinto'; … … 238 298 the_parameter = form.addressRedirect; 239 299 } 240 if (type == 'setflag') { 300 if (type == 'setflag') { 241 301 the_parameter = form.valueSetFlag; 242 302 action = form.valueSetFlag; … … 247 307 }), 248 308 enabled : true, 309 alertMessage: $('.alertMessage').is(':checked'), 310 //applyMessages: allMessages? !$.isEmptyObject( selectedMessages ) ? 311 //keys( selectedMessages ) : allMessages : "" 249 312 applyMessages: apply_messages_ 313 //applyMessages: "" 250 314 }; 251 315 }, 252 316 253 317 encoder: function( filters ){ 254 318 var rules = []; … … 260 324 261 325 } 262 326 263 327 }); 264 328 265 329 /* Codec do datalayer */ 266 330 DataLayer.codec( "folder", "select", { 267 331 268 332 decoder:function(){ 269 333 270 334 }, 271 335 encoder:function( data ){ 272 336 273 337 var tree1 = [], tree2 = [], tree3 = []; 274 338 … … 295 359 296 360 } 297 361 298 362 return {folders: [ tree1, tree2, tree3 ]}; 299 363 … … 301 365 302 366 }); 367 368 369 fromRules = getFromAlertRules(); 303 370 304 371 var BASE_PATH = '../prototype/'; … … 310 377 var allMessages = false; 311 378 312 /* Bloqueio de usuários na tela de mensagem do ExpressoMail */ 313 function block_user_email(email) { 379 /* 380 * Bloqueia usuário por email - utilizado na tela de mensagens do ExpressoMail 381 */ 382 function block_user_email(email) { 314 383 delete selectedMessages; 315 384 var idd = urlencode(email); … … 324 393 $.Zebra_Dialog(get_lang("Lock User") + " " + email + " " + get_lang("removed")); 325 394 list_filters(); 395 getFromAlertRules(); 326 396 }); 327 397 return true; … … 331 401 } 332 402 if(confirm(get_lang("Want to block the user") + " " + email + "?")){ 333 DataLayer.put( 'filter', idd, 334 { name: email, isExact: false, 403 DataLayer.put( 'filter', idd, 404 { name: email, isExact: false, 335 405 criteria:{ 0: {value: email, operator: "=", field: "from"} }, 336 actions: { 0: {parameter: "INBOX" + cyrus_delimiter + "Spam", type: "fileinto"}}, 337 enabled: true, 406 actions: { 0: {parameter: "INBOX" + cyrus_delimiter + "Spam", type: "fileinto"}}, 407 enabled: true, 338 408 id: email, 339 block: true 409 block: true 340 410 }); 341 411 DataLayer.commit("filter", false, function(){ 342 412 $.Zebra_Dialog(get_lang("User") + " " + email + " " + get_lang("blocked")); 343 413 list_filters(); 344 }); 345 414 getFromAlertRules(); 415 }); 416 346 417 } 347 418 } 348 419 349 /* Gerencia o grid das mensagens da caixa de entrada */ 420 421 DataLayer.codec( 'message', 'jqGrid', { 422 423 encoder: function( data ){ 424 425 return( data ); 426 427 } 428 }); 429 430 /* Gerencia o grid das mensagens da caixa de entrada 431 * Mostra o grid de mensagens para aplicar a regra nas mensagens da caixa de entrada. 432 */ 350 433 function showGridMessages(thiss) { 351 434 var criteria_list = list_container.find('[name="criteriaValue[]"]'); … … 366 449 var options = ["from", "to", "subject", "body", "size"]; 367 450 var criterias_ = new Array(); 368 var j = 0; 369 for (i in criteria_) { 370 if(criteria_[i] != "") { 371 (j == 0) ? criterias_[j] = {"0": options[i], "1": criteria_value_[i], "2": criteria_[i]} : criterias_[j] = {"0": "OR", "1": options[i], "2": criteria_value_[i], "3": criteria_[i]}; 372 j++; 373 } 374 } 451 452 for (i in criteria_) 453 if(criteria_[i] != "") 454 criterias_.push( criterias_.length ? {"0": "OR", "1": options[i], "2": criteria_value_[i], "3": criteria_[i]} : {"0": options[i], "1": criteria_value_[i], "2": criteria_[i]} ); 455 375 456 showGridButton = thiss.parent(); 376 // .html('buscando mensagens...'); 377 showGridButton.siblings("#filtergrid-container").block({ 378 message: '<div id="loading-content"><div class="image"></div></div>', 379 css: { 380 backgroundImage: 'url('+BASE_PATH+'modules/attach_message/images/loading.gif)', 381 backgroundRepeat: 'no-repeat', 382 backgroundPosition: 'center', 383 backgroundColor: 'transparent', 384 width: '32px', 385 height: '32px', 386 border:'none' 387 }, 388 overlayCSS: { 389 backgroundColor: '#CCC', 390 opacity: 0.5 391 } 392 }); 393 394 $.ajax({395 url: DataLayer.basePath + 'folder/INBOX/message&' + $.param( {"filter": criterias_} ), 396 dataType: 'json',397 success: function(data){ 398 allMessages = data;399 400 var parametro = { "filter": ( data != false ? [ "msgNumber", "IN", data ] : criterias_ )};401 402 if (typeof grid !== "undefined") { 403 grid.jqGrid( 'setGridParam', { url: DataLayer.basePath + 'folder/INBOX/message&' + $.param( parametro ) } ).trigger( 'reloadGrid' );404 //return; 405 }406 grid = showGridButton.siblings("#filtergrid-container").removeClass('empty-container')407 .html('<table class="hidden fields-search-messages-grid" id="fields-search-messages-grid"><tr><td/></tr></table><div class="hidden fields-search-messages-grid-pager" id="fields-search-messages-grid-pager"></div>')408 .children(".fields-search-messages-grid, .fields-search-messages-grid-pager").removeClass('hidden').filter(".fields-search-messages-grid").trigger( 'reloadGrid' ).jqGrid({409 //url: DataLayer.basePath + 'folder/INBOX/message&' + $.param( {"filter": [ "msgNumber", "IN", data ]} ),410 url: DataLayer.basePath + 'folder/INBOX/message&' + $.param( parametro ),411 datatype: "json",412 mtype: 'GET',413 colNames:['#', 'De', 'Assunto', 'Data', 'Tamanho'],414 colModel:[415 {name:'msg_number',index:'msg_number', width:45, hidden:true, sortable:false},416 {name:'from.email',index:'msg_number', width:130, sortable:false},417 {name:'subject',index:'subject', width:250, sortable:false},418 {name:'timestamp',index:'timestamp', width:65, align:"center", sortable:false, formatter:date2Time},419 {name:'size',index:'size', width:50, align:"right", sortable:false, formatter:bytes2Size}420 ],421 jsonReader : {422 root:"rows",423 page: "page",424 total: "total",425 records: "records",426 repeatitems: false,427 id: "0"428 },429 rowNum:10,430 //rowList:[10,25,50],431 rowList:[10],432 pager: '#fields-search-messages-grid-pager',433 sortname: 'id',434 viewrecords: true,435 sortorder: "desc",436 multiselect: true,437 autowidth: true,438 reloadAfterEdit: true,439 reloadAfterSubmit: true,440 height:200,441 loadComplete: function(data) {442 // // aplica o contador443 // jQuery('.timable').each(function (i) {444 // jQuery(this).countdown({445 // since: new Date(parseInt(this.title)),446 // significant: 1,447 // layout: 'há {d<}{dn} {dl} {d>}{h<}{hn} {hl} {h>}{m<}{mn} {ml} {m>}{s<}{sn} {sl}{s>}',448 // description: ' atrás'449 // });450 // });451 },452 onSelectRow: function (id, selected) {453 if( selected )454 455 selectedMessages[ id ] = true;456 }457 else458 {459 delete selectedMessages[ id ];460 }461 },462 onSelectAll: function (id, selected) {463 for (i in id) {464 if(selected)465 selectedMessages[id[i]] = true;466 else467 delete selectedMessages[id[i]];468 }469 },470 caption: 'Mensagens que atendem aos critérios'471 }); // end jqGrid472 } // end success473 }); // end ajax457 458 showGridButton.siblings("#filtergrid-container").block({ 459 message: '<div id="loading-content"><div class="image"></div></div>', 460 css: { 461 backgroundImage: 'url('+BASE_PATH+'modules/attach_message/images/loading.gif)', 462 backgroundRepeat: 'no-repeat', 463 backgroundPosition: 'center', 464 backgroundColor: 'transparent', 465 width: '32px', 466 height: '32px', 467 border:'none' 468 }, 469 overlayCSS: { 470 backgroundColor: '#CCC', 471 opacity: 0.5 472 } 473 }); 474 475 var data = DataLayer.get( 'message', { filter: criterias_, criteria: { properties: { context: { folder: 'INBOX' } } } }, true ); 476 477 DataLayer.register( 'criterias', 'message:jqGrid', function( crit ){ 478 479 crit.properties = { context: { folder: 'INBOX' } }; 480 481 return { filter: [ "msgNumber", "IN", data ], criteria: crit }; 482 }); 483 484 allMessages = data; 485 486 if (typeof grid !== "undefined") { 487 grid.jqGrid( 'setGridParam', { url: 'message:jqGrid', postData: data } ).trigger( 'reloadGrid' ); 488 //return; 489 } 490 grid = showGridButton.siblings("#filtergrid-container").removeClass('empty-container') 491 .html('<table class="hidden fields-search-messages-grid" id="fields-search-messages-grid"><tr><td/></tr></table><div class="hidden fields-search-messages-grid-pager" id="fields-search-messages-grid-pager"></div>') 492 .children(".fields-search-messages-grid, .fields-search-messages-grid-pager").removeClass('hidden').filter(".fields-search-messages-grid").trigger( 'reloadGrid' ).jqGrid({ 493 url: 'message:jqGrid', 494 datatype: "json", 495 mtype: 'GET', 496 colNames:['#', 'De', 'Assunto', 'Data', 'Tamanho'], 497 colModel:[ 498 {name:'msg_number',index:'msg_number', width:45, hidden:true, sortable:false}, 499 {name:'from.email',index:'msg_number', width:130, sortable:false}, 500 {name:'subject',index:'subject', width:250, sortable:false}, 501 {name:'timestamp',index:'timestamp', width:65, align:"center", sortable:false, formatter:date2Time}, 502 {name:'size',index:'size', width:50, align:"right", sortable:false, formatter:bytes2Size} 503 ], 504 jsonReader : { 505 root:"rows", 506 page: "page", 507 total: "total", 508 records: "records", 509 repeatitems: false, 510 id: "0" 511 }, 512 rowNum:10, 513 //rowList:[10,25,50], 514 rowList:[10], 515 pager: '#fields-search-messages-grid-pager', 516 sortname: 'id', 517 viewrecords: true, 518 sortorder: "desc", 519 multiselect: true, 520 autowidth: true, 521 reloadAfterEdit: true, 522 reloadAfterSubmit: true, 523 height:200, 524 loadComplete: function(data) { 525 // // aplica o contador 526 // jQuery('.timable').each(function (i) { 527 // jQuery(this).countdown({ 528 // since: new Date(parseInt(this.title)), 529 // significant: 1, 530 // layout: 'há {d<}{dn} {dl} {d>}{h<}{hn} {hl} {h>}{m<}{mn} {ml} {m>}{s<}{sn} {sl}{s>}', 531 // description: ' atrás' 532 // }); 533 // }); 534 }, 535 onSelectRow: function (id, selected) { 536 if( selected ) 537 { 538 selectedMessages[ id ] = true; 539 } 540 else 541 { 542 delete selectedMessages[ id ]; 543 } 544 }, 545 onSelectAll: function (id, selected) { 546 for (i in id) { 547 if(selected) 548 selectedMessages[id[i]] = true; 549 else 550 delete selectedMessages[id[i]]; 551 } 552 }, 553 caption: 'Mensagens que atendem aos critérios' 554 }); // end jqGrid 474 555 } 475 556 476 557 /* Gerencia a listagem de filtros do usuário */ 558 /* 559 * Lista os filtros para o usuário 560 */ 477 561 function list_filters(html){ 478 562 outOfficeVerify(); … … 486 570 } 487 571 list_container = $(".expresso-window-filters").dialog({ 572 title: get_lang('Filters'), 488 573 width:700, 489 574 modal: true, … … 493 578 event.stopPropagation(); 494 579 if(list_container.find(".cancel").length) 495 list_container.find(".cancel").trigger('click'); 580 list_container.find(".cancel").trigger('click'); 496 581 $(".dialog-head-buttonpane").hide(); 497 582 }, … … 516 601 $(".dialog-head-buttonpane").css("padding", "5px"). 517 602 find(".header-buttonpane").html("<a href='#' class='button add' title='"+get_lang("Add new rule")+"'>"+get_lang("New rule")+"</a>"+(!outoffice ? "<a href='#' class='button add vacation' title='"+get_lang("Add rule out of office")+"'>"+get_lang("Out of office")+"</a>" : "")).find(".button").button(); 518 603 519 604 $(".ui-dialog-buttonpane.ui-widget-content").css("background-color", "#E0EEEE"); 520 605 var list = DataLayer.render( BASE_PATH + 'modules/filters/filter-list.ejs', DataLayer.get("filter:detail", true)); 521 606 list_container.html(list).find(".button").button(); 522 607 523 608 list_container.find(".rule-list").selectable({ 524 609 selecting: function(event, ui) { … … 529 614 } 530 615 }); 531 616 532 617 list_container.find( ".menu-control .button" ).filter(".update").button({ 533 618 icons: { … … 542 627 filters = filters[i]; 543 628 break; 544 } 629 } 545 630 } 546 631 DataLayer.render( BASE_PATH + 'modules/filters/edit-filter.ejs', {folders : DataLayer.get("folder", true), delimiter: cyrus_delimiter},function(html){ … … 571 656 else 572 657 return; 573 DataLayer.commit( 'filter', false,function(){ 574 if($('#gbox_fields-search-messages-grid').length > 0 && action != '') { 658 DataLayer.commit( 'filter', false,function(data){ 659 if(filters['alertMessage'] == "true"){ 660 if(filters['alertMessage'] != $('.alertMessage').is(':checked').toString()){ 661 /**RETIRA FLAG*/ 662 removeMessagesFlag(filters['id']); 663 } 664 } 665 if($('#gbox_fields-search-messages-grid').length > 0 && action != '') { 575 666 for (var index in selectedMessages) { 576 667 set_message_flag(index, action, false); … … 578 669 } 579 670 DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 671 getFromAlertRules(); 580 672 }); 581 }).end().filter('.button.search').click(function() { 673 }).end().filter('.button.search').click(function() { 582 674 /* Valida se o usuário preencheu as informações */ 583 675 if(valid_save()) … … 595 687 DataLayer.commit( 'filter', false,function(){ 596 688 DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 689 getFromAlertRules(); 597 690 }); 598 691 }); … … 607 700 text: false 608 701 }).click(function(){ 609 var id = $(this).parents("li.rule").find('.id').val(); 702 var id = $(this).parents("li.rule").find('.id').val(); 610 703 DataLayer.put( 'filter', id, { enabled: false }); 704 /**RETIRA FLAG*/ 705 removeMessagesFlag(id); 611 706 DataLayer.commit("filter", false,function(){ 612 707 DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 708 getFromAlertRules(); 613 709 }); 614 710 }).end() … … 624 720 DataLayer.commit("filter", false,function(){ 625 721 DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 722 getFromAlertRules(); 626 723 }); 627 724 }).end() 628 725 629 726 .filter(".close").button({ 630 727 icons: { … … 644 741 DataLayer.remove('filter', false); 645 742 DataLayer.get('filter'); 743 /**RETIRA FLAG*/ 744 removeMessagesFlag(filter_name); 646 745 DataLayer.remove( 'filter', filter_name); 746 647 747 DataLayer.commit("filter", false,function(){ 648 748 DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 749 getFromAlertRules(); 649 750 }); 650 751 }else{ … … 654 755 }); 655 756 }).end().removeClass("ui-button-icon-only"); 656 757 657 758 $(".button.allenable").click(function(){ 658 759 container.find('.rule-list').find('.rule').find('.select').find(':checked').parents('.rule').find('.title').each(function(i,o){ 659 DataLayer.put( 'filter', o.innerHTML, { enabled: true });760 DataLayer.put( 'filter', urlencode(o.innerHTML), { enabled: true }); 660 761 }); 661 762 DataLayer.commit("filter", false, function(){ 662 763 DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 663 }); 664 }); 665 764 getFromAlertRules(); 765 }); 766 }); 767 666 768 $(".button.alldisable").click(function(){ 667 769 container.find('.rule-list').find('.rule').find('.select').find(':checked').parents('.rule').find('.title').each(function(i,o){ 668 DataLayer.put( 'filter', o.innerHTML, { enabled: false }); 770 DataLayer.put( 'filter', urlencode(o.innerHTML), { enabled: false }); 771 /**RETIRA FLAG*/ 772 removeMessagesFlag(o.innerHTML); 669 773 }); 670 774 DataLayer.commit("filter", false, function(){ 671 775 DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 672 }); 673 }); 674 776 getFromAlertRules(); 777 }); 778 }); 779 675 780 $(".button.alldelete").click(function(){ 676 781 $.Zebra_Dialog(get_lang("Are you sure to delete the filters?"),{ … … 683 788 DataLayer.remove('filter', false); 684 789 DataLayer.get('filter'); 685 container.find('.rule-list').find('.rule').find('.select').find(':checked').parents('.rule').find('.title').each(function(i,o){ 686 removeMessagesFlag(urlencode(o.innerHTML)); 687 filter_Name = urlencode(o.innerHTML.replace(".", "_")); 688 DataLayer.remove( 'filter', (filter_Name) ); 790 container.find('.rule-list').find('.rule').find('.select').find(':checked').parents('.rule').find('.title').each(function(i,o){ 791 /**RETIRA FLAG*/ 792 removeMessagesFlag(urlencode(o.innerHTML)); 793 filter_Name = urlencode(o.innerHTML.replace(".", "_")); 794 DataLayer.remove( 'filter', (filter_Name) ); 689 795 }); 690 796 DataLayer.commit("filter", false,function(){ 691 797 DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 798 getFromAlertRules(); 692 799 }); 693 800 }else{ … … 697 804 }); 698 805 }); 699 806 700 807 var aa = 0; 701 808 702 809 list_container.parent().find(".button.add:first").click(function(){ 703 810 list_container.parent().find(".dialog-head-buttonpane").addClass("hidden"); … … 721 828 return; 722 829 DataLayer.commit( 'filter',false,function(){ 723 if($('#gbox_fields-search-messages-grid').length > 0 && action != '') { 830 if($('#gbox_fields-search-messages-grid').length > 0 && action != '') { 724 831 for (var index in selectedMessages) { 725 832 set_message_flag(index, action, false); … … 727 834 } 728 835 DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 836 getFromAlertRules(); 729 837 }); 730 }).end().filter('.button.search').click(function() { 838 }).end().filter('.button.search').click(function() { 731 839 if(valid_save()) 732 840 showGridMessages($(this)); … … 737 845 }); 738 846 list_container.parent().find(".button.add.vacation").click(function(){ 739 847 740 848 list_container.parent().find(".dialog-head-buttonpane").addClass("hidden"); 741 849 DataLayer.render( BASE_PATH + 'modules/filters/edit-filter.ejs', {folders : DataLayer.get("folder", true), delimiter: cyrus_delimiter},function(html){ … … 745 853 list_container.find(".button").button().filter(".back").click(function(){ 746 854 DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 747 }).end().filter(".submit").click(function(){ 855 }).end().filter(".submit").click(function(){ 748 856 if(list_container.find(".vacation-details-container .filter-textarea").val().length <= 0){ 749 857 $.Zebra_Dialog(get_lang('Write a message')); … … 753 861 DataLayer.commit( 'filter',false,function(){ 754 862 DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters); 863 getFromAlertRules(); 755 864 }); 756 865 } 757 866 }); 758 }); 867 }); 759 868 }); 760 869 } 761 870 762 /* Inicializa os filtros e chama o list_filters */ 871 872 /* Inicializa os filtros e chama o list_filters 873 * Inicia a funcionalidade de filtros de mensagens 874 */ 763 875 function init_filters(){ 764 876 var html = DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {}); 765 877 list_filters(html); 766 878 } 879 880 /* 881 * Ao excluir filtro, desabilitar filtro ou retirar a ação Alerta de um filtro 882 * esta função é chamada para retirar as flags que caracterizam uma mensagem como alertada pelos Filtros por Remetente 883 */ 884 function removeMessagesFlag(id){ 885 var filters_c = DataLayer.get('filter', urlencode(id)); 886 var folder = ''; 887 var from = ''; 888 if(filters_c['actions']) 889 for(var i=0; i < filters_c['actions'].length; i++){ 890 if(filters_c['actions'][i].type == 'fileinto'){ 891 folder = filters_c['actions'][i].parameter; 892 } 893 } 894 $.each(fromRules, function(index, value) { 895 if(value == folder){ 896 for(var i=0; i < filters_c['criteria'].length; i++){ 897 if(filters_c['criteria'][i].field == 'from'){ 898 from = filters_c['criteria'][i].value; 899 } 900 } 901 cExecute ("$this.imap_functions.removeFlagMessagesFilter&folder="+folder+"&from="+from, function(){}); 902 return false; 903 } 904 }); 905 }
Note: See TracChangeset
for help on using the changeset viewer.