Changeset 7228 for branches/2.4/prototype/modules/mail
- Timestamp:
- 09/17/12 14:30:47 (12 years ago)
- Location:
- branches/2.4
- Files:
-
- 11 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/2.4
- Property svn:mergeinfo changed
-
branches/2.4/prototype/modules/mail/css/followupflag.css
r6754 r7228 231 231 .content-alarm ul { 232 232 max-height: 100px; 233 overflow: auto;233 overflow: hidden; 234 234 } 235 235 .content-alarm { -
branches/2.4/prototype/modules/mail/js/foldertree.js
r7021 r7228 116 116 cp_tree1 = tree1; 117 117 cp_tree2 = tree2; 118 var shared_acls = {}; 119 120 $.each(cp_tree2, function(index, value){ 121 shared_acls[value.id] = value.acl_share; 122 }); 123 118 124 $("#content_folders").removeClass("menu-degrade").parent().removeClass("image-menu"); 119 125 var html = DataLayer.render('../prototype/modules/mail/templates/detailedfoldertree.ejs', {folders: [tree1, tree2, tree3]}); … … 166 172 }).end().end(); 167 173 168 folders_html.find('[id="'+selected+'"]').children().addClass("selected").end().end().find("li:first").find(".folder").not(".head_folder,.inbox,.drafts,.sent,.spam,.trash").draggable({ 174 folders_html.find('[id="'+selected+'"]').children().addClass("selected"); 175 $(".folder").not(".head_folder").not(".shared-folders").parent().find(".folder").not(".head_folder,.inbox,.drafts,.sent,.spam,.trash").draggable({ 169 176 // DRAG DE PASTAS 170 177 start : function(){ … … 280 287 url : "controller.php?"+ $.param( { action: "$this.imap_functions.move_folder", folder_to_move: folder_to_move, folder_to: folder_to } ), 281 288 success : function(data){ 289 cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 282 290 data = connector.unserialize(data); 283 if(data){ 284 cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 291 if(data == "Permission denied"){ 292 write_msg(get_lang("Permission denied")); 293 }else if(data){ 285 294 write_msg(get_lang("The folder was successfully moved")); 286 295 } … … 292 301 } 293 302 } 294 }).hover( 303 }); 304 $(".folder").not(".shared-folders").parent().find(".folder").hover( 295 305 function(){ 296 306 //CASO A LI NÃO TENHA UM eventNU FLUTUANTE AINDA, O eventNU É ADICIONADO! … … 298 308 var folder_ = $(this); 299 309 var folder_name; 310 var shared = { 311 head : false, 312 valid : false 313 }; 300 314 if(folder_.parent().attr('id')){ 301 315 folder_name = folder_.parent().attr('id').split(cyrus_delimiter); 302 316 folder_name = folder_name[folder_name.length -1]; 317 shared.valid = folder_.parent().attr('id').search("user/") == 0 ? true : false; 303 318 }else 304 319 folder_name = "Root"; 305 html = DataLayer.render("../prototype/modules/mail/templates/float_folder_menu.ejs", {name_folder : folder_name}); 320 321 if(shared.valid){ 322 shared.head = folder_.parent().attr('id').split(cyrus_delimiter).length == 2 ? true : false; 323 var folder_name_parts = folder_.parent().attr('id').split(cyrus_delimiter); 324 var acls = shared_acls[folder_name_parts[0]+cyrus_delimiter+folder_name_parts[1]]; 325 326 } 327 328 html = DataLayer.render("../prototype/modules/mail/templates/float_folder_menu.ejs", {name_folder : folder_name, flag : shared, acl : acls}); 306 329 //FUNÇÃO DO eventNU FLUTUANTE EDITAR < BEGIN 307 330 var esc = false; … … 334 357 type : "POST", 335 358 data : "current="+folder_id+"&rename="+new_name, 336 success : function(){ 359 success : function(data){ 360 data = connector.unserialize(data); 361 if(data == "Permission denied"){ 362 $(".folders-loading").removeClass("folders-loading"); 363 cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 364 return write_msg(get_lang("Permission denied")); 365 } 337 366 write_msg(get_lang("The folder was successfully rename")); 338 367 cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 339 368 } 340 369 }); 341 }else{ 342 $(".new_folder").focusout(); 370 }else{ 371 $(".new_folder").focusout(); 343 372 } 344 373 }else if( event.keyCode == 27){ … … 385 414 $(".folders-loading").removeClass("folders-loading"); 386 415 return write_msg(get_lang("Mailbox does not exist")); 416 }else if(data == "Permission denied"){ 417 $(".folders-loading").removeClass("folders-loading"); 418 cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 419 return write_msg(get_lang("Permission denied")); 387 420 } 388 421 write_msg(get_lang("The folder %1 was successfully removed", folder_name)); … … 449 482 draw_new_tree_folder(); 450 483 }); 484 }).end().find(".float-menu-export").click(function(){ 485 //proxy_mensagens.export_all_messages($(this).parents("li:first").attr("id")) 486 487 var name_box = $(this).parents("li:first").attr("id"); 488 var name_folder = name_box.split(cyrus_delimiter)[name_box.split(cyrus_delimiter).length-1]; 489 490 var hand_export = function(data){ 491 if(!data){ 492 write_msg(get_lang('Error compressing messages (ZIP). Contact the administrator.')) 493 }else if(data["empty_folder"]){ 494 write_msg(get_lang("The selected folder is empty.")); 495 }else 496 download_attachments(null, null, data, null,null, name_folder +'.zip'); 497 } 498 cExecute("$this.exporteml.export_all",hand_export,"folder="+name_box); 499 write_msg(get_lang('You must wait while the messages will be exported...')); 451 500 }); 452 501 //FUNÇÃO DO eventNU FLUTUANTE NOVA PASTA < END -
branches/2.4/prototype/modules/mail/js/followupflag.js
r7027 r7228 178 178 * #END: Implementação do widget de input-combobox 179 179 */ 180 winElement.find('input[name="alarmDate"]').change(function(event){ 181 winElement.find('input[name="alarmTime"]').attr('disabled', ( $(this).val() == "" ? 'disabled' : false)); 182 }); 183 184 winElement.find('input[name="alarmDate"]').keyup(function(event){ 185 winElement.find('input[name="alarmTime"]').attr('disabled', ( $(this).val() == "" ? 'disabled' : false)).val(''); 186 }); 180 187 181 188 winElement.find('.button').button() … … 217 224 messageNumber : messageNumber, 218 225 isDone: isDone, 226 isSent: 0, 219 227 backgroundColor : backgroundColor 220 228 }, !!idFollowupflagged[i] ? {id: idFollowupflagged[i]} : {}); … … 271 279 272 280 } 281 selectAllFolderMsgs(false); 273 282 } 274 283 var backgroundColor = winElement.find('[name="backgroundColor"]').val(); … … 344 353 alarmFollowupflagged('followupflagAlarms'); 345 354 }); 346 355 selectAllFolderMsgs(false); 347 356 }); 348 357 … … 414 423 winElement.find('[name="alarm"]').click(function(){ 415 424 if($(this).is(":checked")){ 416 winElement.find('[name="alarmDate"] ,[name="alarmTime"]').removeAttr("disabled");425 winElement.find('[name="alarmDate"]').removeAttr("disabled"); 417 426 }else{ 418 winElement.find('[name="alarmDate"],[name="alarmTime"]').attr("disabled","disabled") ;427 winElement.find('[name="alarmDate"],[name="alarmTime"]').attr("disabled","disabled").val(''); 419 428 } 420 429 }); 430 421 431 if(winElement.find('[name="alarm"]').is(":checked")){ 422 432 winElement.find('[name="alarmDate"],[name="alarmTime"]').removeAttr("disabled"); 423 433 } 434 424 435 winElement.find('[name="done"]').click(function(){ 425 436 if($(this).is(":checked")){ … … 492 503 */ 493 504 function alarmFollowupflagged(alert_type, filter_list){ 505 var currentDate = new Date().toString("dd/MM/yyyy"); 506 var data = {alarmDeadline: false, doneDeadline: false, filtersAlarms: false}; 507 494 508 switch(alert_type){ 495 // carregar modais de sinalizadores496 509 case 'followupflagAlarms': 497 510 $('.doneDeadline').remove(); 498 511 $('.alarmDeadline').remove(); 499 var toIterate = [ 500 { 501 attrDeadline: 'doneDeadline', 502 caption: {singular:'You have one undone message today:', 503 plural:"You have %1 undone messages today:" 504 }, 505 title: get_lang('Done'), 506 enable: ($.cookie("fadeCompleted") != (new Date).toString("dd/MM/yyyy")) 507 }, 508 { 509 attrDeadline: 'alarmDeadline', 510 caption: { 511 singular:'You have a follow up due for today:', 512 plural:'You have %1 follow ups due for today:' 513 }, 514 title: get_lang('Follow ups'), 515 enable: ($.cookie("fadeAlarm") != (new Date).toString("dd/MM/yyyy")) 516 } 517 ]; 518 break; 519 // carregar modal de filtros 512 data.alarmDeadline = $.cookie("fadeAlarm") != currentDate ? true : false; 513 data.doneDeadline = $.cookie("fadeCompleted") != currentDate ? true : false; 514 break; 520 515 case 'filtersAlarms': 521 516 $('.filtersDeadline').remove(); 522 var toIterate = [ 523 { 524 attrDeadline: 'filtersDeadline', 525 caption: { 526 singular:'You have an archived message:', 527 plural:'You have %1 messages archived:' 528 }, 529 title: get_lang('Filter by sender'), 530 enable: ($.cookie("fadeFilterAlarm") != (new Date).toString("dd/MM/yyyy")) 531 } 532 ]; 533 break; 534 // carregar todas as modais 517 data.filtersAlarms = $.cookie("fadeFilterAlarm") != currentDate ? true : false; 518 break; 535 519 default: 536 520 $('.gray').remove(); 537 var toIterate = [ 538 { 539 attrDeadline: 'filtersDeadline', 540 caption: { 541 singular:'You have an archived message:', 542 plural:'You have %1 messages archived:' 543 }, 544 title: get_lang('Filter by sender'), 545 enable: ($.cookie("fadeFilterAlarm") != (new Date).toString("dd/MM/yyyy")) 546 }, 547 { 548 attrDeadline: 'doneDeadline', 549 caption: {singular:'You have one undone message today:', 550 plural:"You have %1 undone messages today:" 551 }, 552 title: get_lang('Done'), 553 enable: ($.cookie("fadeCompleted") != (new Date).toString("dd/MM/yyyy")) 554 }, 555 { 556 attrDeadline: 'alarmDeadline', 557 caption: { 558 singular:'You have a follow up due for today:', 559 plural:'You have %1 follow ups due for today:' 560 }, 561 title: get_lang('Follow ups'), 562 enable: ($.cookie("fadeAlarm") != (new Date).toString("dd/MM/yyyy")) 521 data.alarmDeadline = $.cookie("fadeAlarm") != currentDate ? true : false; 522 data.doneDeadline = $.cookie("fadeCompleted") != currentDate ? true : false; 523 data.filtersAlarms = $.cookie("fadeFilterAlarm") != currentDate ? true : false; 524 break; 525 }; 526 527 var startDate = (new Date()).set({hour:0, minute:0, second:0}).toString('yyyy-MM-dd 00:00:00'); 528 var endDate = (new Date()).set({hour:0, minute:0, second:0}).addHours(24).toString('yyyy-MM-dd 00:00:00'); 529 530 if(data.alarmDeadline){ 531 var decodeAlarms = {'sent': [], 'task':[]}; 532 alarms = DataLayer.get('followupflagged', 533 { 534 filter: ['AND', ['<', 'alarmDeadline', endDate], ['=','isSent','0'], ['=','isDone','0']], 535 criteria: {deepness: 1} 536 }); 537 538 if(alarms.length > 0){ 539 var itens = []; 540 for(var i = 0; i < alarms.length; i++){ 541 542 var date = Date.parseExact(alarms[i]['alarmDeadline'], 'yyyy-MM-dd HH:mm:ss'); 543 alarms[i]['alarmDeadline'] = date.toString('dd/MM HH:mm'); 544 545 var nameFollowupflag = alarms[i]['followupflag']['id'] < 7 ? get_lang(alarms[i]['followupflag']['name']) : alarms[i]['followupflag']['name']; 546 var li_alarm = alarms[i]['alarmDeadline'] + ' - ' + nameFollowupflag + ' - ' + alarms[i]['message']['headers']['subject']; 547 548 if(alarms[i]['doneDeadline'] != ''){ 549 var dateDone = Date.parseExact(alarms[i]['doneDeadline'], 'yyyy-MM-dd HH:mm:ss'); 550 if(dateDone.getTime() < $.now()) 551 continue; 563 552 } 564 ]; 565 break; 566 } 567 var i = 0; 568 // recupera e monta os dados para serem exibidos nas modais de alarmes 569 while (it = toIterate.pop()){ 570 if (!it.enable) continue; 571 572 var alarmInRange = {}; 573 // caso for alarme de sinalizadores 574 if(it.attrDeadline == 'doneDeadline' || it.attrDeadline == 'alarmDeadline'){ 575 alarmInRange = DataLayer.get('followupflagged', {filter: ['AND', ['>', it.attrDeadline, (new Date()).set({hour:0, minute:0, second:0}).toString('yyyy-MM-dd 00:00:00')], ['<', it.attrDeadline, (new Date()).set({hour:0, minute:0, second:0}).addHours(24).toString('yyyy-MM-dd 00:00:00')]], criteria: {deepness: 1}}); 576 if(alarmInRange.length > 0){ 577 for(var i=0; i<alarmInRange.length; i++){ 578 if(alarmInRange[i].isDone == 1){ 579 alarmInRange.splice(i,1); 580 i--; 581 } 553 554 if(date.getTime() <= $.now()) 555 decodeAlarms.sent.push({ 556 "msg_number" : alarms[i]['messageNumber'], 557 "msg_folder" : alarms[i]['folderName'], 558 "a" : truncate(li_alarm, 34), 559 'id' : alarms[i].id 560 }); 561 else 562 decodeAlarms.task.push({ 563 a: truncate(li_alarm, 34), 564 sentTime: date.getTime() / 1000, 565 id: alarms[i].id, 566 'msg_folder': alarms[i].folderName, 567 'msg_number': alarms[i].messageNumber 568 }); 569 } 570 571 if(decodeAlarms.task.length) 572 alarmDeadline.load(decodeAlarms.task); 573 574 if(decodeAlarms.sent.length) 575 data.alarmDeadline = { 576 alarms: decodeAlarms.sent, 577 title: get_lang('Follow ups'), 578 caption: (itens.length == 1) ? get_lang('You have one undone message today:') : get_lang('You have %1 follow ups due for today:', decodeAlarms.sent.length), 579 type: 'alarmDeadline' 580 }; 581 else 582 data.alarmDeadline = false; 583 }else 584 data.alarmDeadline = false; 585 } 586 587 if(data.doneDeadline){ 588 alarms = DataLayer.get('followupflagged', {filter: ['AND', ['>', 'doneDeadline', startDate], ['<', 'doneDeadline', endDate]], criteria: {deepness: 1}}); 589 590 if(alarms.length > 0){ 591 var itens = []; 592 for(var i = 0; i < alarms.length; i++){ 593 594 var date = Date.parseExact(alarms[i]['doneDeadline'], 'yyyy-MM-dd HH:mm:ss'); 595 alarms[i]['doneDeadline'] = date.toString('dd/MM HH:mm'); 596 597 var nameFollowupflag = alarms[i]['followupflag']['id'] < 7 ? get_lang(alarms[i]['followupflag']['name']) : alarms[i]['followupflag']['name']; 598 var li_alarm = alarms[i]['doneDeadline'] + ' - ' + nameFollowupflag + ' - ' + truncate(alarms[i]['message']['headers']['subject'], 15); 599 600 itens.push({ 601 a: truncate(li_alarm, 34), 602 id: alarms[i].id, 603 'msg_folder': alarms[i].folderName, 604 'msg_number': alarms[i].messageNumber 605 }); 606 } 607 data.doneDeadline = { 608 alarms: itens, 609 title: get_lang('Done'), 610 caption: (itens.length == 1) ? get_lang('You have one undone message today:') : get_lang('You have %1 follow ups due for today:', itens.length), 611 type: 'doneDeadline' 612 }; 613 }else 614 data.doneDeadline = false; 615 } 616 617 if(data.filtersAlarms){ 618 619 alarms = filter_list; 620 621 if(alarms.length > 0){ 622 var itens = []; 623 624 for(var i=0; i<alarms.length; i++){ 625 alarms[i]['udate'] = new Date(alarms[i]['udate']*1000).toString('dd/MM HH:mm'); 626 var li_alarm = alarms[i]['udate'] + ' - ' + alarms[i]['from'] + ' - ' + alarms[i]['subject']; 627 628 itens.push({ 629 'msg_number' : alarms[i]['msg_number'], 630 'msg_folder' : alarms[i]['msg_folder'], 631 a : truncate(html_entities(li_alarm), 34), 632 id : alarms[i].id 633 }); 634 } 635 636 data.filtersAlarms = { 637 alarms: itens, 638 title: get_lang('Filter by sender'), 639 caption: (itens.length == 1) ? get_lang('You have an archived message:') : get_lang('You have %1 messages archived:', itens.length), 640 type: 'filtersDeadline', 641 captions: { 642 singular:'You have one undone message today:', 643 plural:"You have %1 undone messages today:" 582 644 } 583 }584 585 if(alarmInRange.length > 0){586 var messages_alarm = [];587 for(var i=0; i<alarmInRange.length; i++){588 var date = Date.parseExact(alarmInRange[i][it.attrDeadline], 'yyyy-MM-dd HH:mm:ss');589 if(date)590 alarmInRange[i][it.attrDeadline] = date.toString('HH:mm');591 592 if(alarmInRange[i]['followupflag']['id'] < 7){593 var nameFollowupflag = get_lang(alarmInRange[i]['followupflag']['name']);594 }else{595 var nameFollowupflag = alarmInRange[i]['followupflag']['name'];596 }597 var li_alarm = alarmInRange[i][it.attrDeadline] + ' - ' + nameFollowupflag + ' - ' + truncate(alarmInRange[i]['message']['headers']['subject'], 15);598 messages_alarm.push({599 "msg_number" : alarmInRange[i]['messageNumber'],600 "msg_folder" : alarmInRange[i]['folderName'],601 "a" : li_alarm602 });603 }604 }605 }606 // caso for alarme de filtros607 else if(filter_list){608 alarmInRange = filter_list;609 if(alarmInRange.length > 0){610 var messages_alarm = [];611 for(var i=0; i<alarmInRange.length; i++){612 613 alarmInRange[i]['udate'] = new Date(alarmInRange[i]['udate']*1000).toString('dd/MM/yyyy HH:mm');614 615 var li_alarm = alarmInRange[i]['udate'] + ' - ' + alarmInRange[i]['from'] + ' - ' + truncate(alarmInRange[i]['subject'], 15);616 messages_alarm.push({617 "msg_number" : alarmInRange[i]['msg_number'],618 "msg_folder" : alarmInRange[i]['msg_folder'],619 "a" : li_alarm620 });621 }622 }623 }624 625 if(alarmInRange.length > 0){626 // monta o subtitulo da modal627 var caption = (alarmInRange.length == 1) ?628 get_lang(it.caption.singular):629 get_lang(it.caption.plural, alarmInRange.length);630 // monta o array de dados a ser passado para o template631 var data = {632 alarmInRange : messages_alarm,633 caption: caption,634 type: it.attrDeadline,635 captions: it.caption636 645 }; 637 // tipo de modal a ser exibida 638 var type_alarm = it.attrDeadline; 639 //função chamada ao clicar no botão Ok da modal 640 var ok_function = function(event, type, type_cookie){ 641 if($(event.target).parents('.'+type).find('[name="stopAlert"]').is(':checked')){ 642 $.cookie(type_cookie, (new Date).toString("dd/MM/yyyy"), { 643 expires: 1 644 }); 645 } 646 } 647 // carrega o template dos alarmes e cria a modal utilizando o plugin freeow 648 var dialogText = DataLayer.render("../prototype/modules/mail/templates/followupflag_alarm_list.ejs", data); 649 var titulo = '<div class="header-alarm"><span class="img_title"></span><span class="title-alarm"><strong>'+it.title+'</strong></span><span name="header-icon" class="maximize-alarm"></span></div>'; 650 $("#freeow").freeow(titulo, dialogText, { 651 classes: ["gray", type_alarm], 652 autoHide: false, 653 startStyle: null, 654 onClick: function(event){ 655 var type = ''; 656 var type_cookie = ''; 657 if($(this).hasClass('alarmDeadline')){ 658 type = 'alarmDeadline'; 659 type_cookie = 'fadeAlarm'; 660 }else if($(this).hasClass('doneDeadline')){ 661 type = 'doneDeadline'; 662 type_cookie = 'fadeCompleted'; 663 }else if($(this).hasClass('filtersDeadline')){ 664 type = 'filtersDeadline'; 665 type_cookie = 'fadeFilterAlarm'; 666 } 667 if($(event.target).hasClass('stop-alert-alarm')){ 668 return; 669 } 670 if($(event.target).hasClass('minimize-alarm')){ 671 $('.'+type).find('.content-alarm').hide(); 672 $(event.target).removeClass('minimize-alarm').addClass('maximize-alarm'); 673 return; 674 } 675 if($(event.target).hasClass('maximize-alarm')){ 676 $('.'+type).find('.content-alarm').show(); 677 $(event.target).removeClass('maximize-alarm').addClass('minimize-alarm'); 678 return; 679 } 680 if($(( !!$.browser.safari ) ? event.target.parentElement : event.target).hasClass('confirm-alarm')){ 681 ok_function(event, type, type_cookie); 682 $('.'+type).remove(); 683 return; 684 } 685 return false; 686 } 687 }); 688 // elementos do freeow desnecessários 689 $('.gray .background .content p').remove(); 690 $('.gray .icon').remove(); 691 $('.gray .close').remove(); 692 693 // botão ok da modal com jquery button 694 $('.content-alarm button').button(); 695 } 696 } 697 646 647 }else 648 data.filtersAlarms = false; 649 } 650 651 for (var i in data) 652 if(data[i] != false) 653 showAlarmsModal(data[i]); 654 698 655 // controle de qual janela de alarme estará maximizada 699 656 $('.gray').find('.content-alarm').hide(); … … 712 669 } 713 670 } 714 671 } 672 673 function showAlarmsModal(alarm){ 674 675 var ok_function = function(event, type, type_cookie){ 676 if($(event.target).parents('.'+type).find('[name="stopAlert"]').is(':checked')){ 677 $.cookie(type_cookie, (new Date).toString("dd/MM/yyyy"), { 678 expires: 1 679 }); 680 } 681 } 682 683 // carrega o template dos alarmes e cria a modal utilizando o plugin freeow 684 var dialogText = DataLayer.render("../prototype/modules/mail/templates/followupflag_alarm_list.ejs", alarm); 685 var titulo = '<div class="header-alarm"><span class="img_title"></span><span class="title-alarm"><strong>'+alarm.title+'</strong></span><span name="header-icon" class="maximize-alarm"></span></div>'; 686 687 $("#freeow").freeow(titulo, dialogText, { 688 classes: ["gray", alarm.type], 689 autoHide: false, 690 startStyle: null, 691 onClick: function(event){ 692 var type = ''; 693 var type_cookie = ''; 694 if($(this).hasClass('alarmDeadline')){ 695 type = 'alarmDeadline'; 696 type_cookie = 'fadeAlarm'; 697 }else if($(this).hasClass('doneDeadline')){ 698 type = 'doneDeadline'; 699 type_cookie = 'fadeCompleted'; 700 }else if($(this).hasClass('filtersDeadline')){ 701 type = 'filtersDeadline'; 702 type_cookie = 'fadeFilterAlarm'; 703 } 704 if($(event.target).hasClass('stop-alert-alarm')){ 705 return; 706 } 707 if($(event.target).hasClass('minimize-alarm')){ 708 $('.'+type).find('.content-alarm').hide(); 709 $(event.target).removeClass('minimize-alarm').addClass('maximize-alarm'); 710 return; 711 } 712 if($(event.target).hasClass('maximize-alarm')){ 713 $('.'+type).find('.content-alarm').show(); 714 $(event.target).removeClass('maximize-alarm').addClass('minimize-alarm'); 715 return; 716 } 717 if($(( !!$.browser.safari ) ? event.target.parentElement : event.target).hasClass('confirm-alarm')){ 718 ok_function(event, type, type_cookie); 719 $('.'+type).remove(); 720 return; 721 } 722 return false; 723 } 724 }); 725 // elementos do freeow desnecessários 726 $('.gray .background .content p').remove(); 727 $('.gray .icon').remove(); 728 $('.gray .close').remove(); 729 730 $('div.gray.alarmDeadline .button.delete').button({ 731 text: false, 732 icons:{ 733 primary: 'ui-icon-close' 734 } 735 }) 736 737 // botão ok da modal com jquery button 738 $('.content-alarm button').button(); 739 } 740 741 function cancelAlarm(element, idAlarm, messageNumber, folderName){ 742 743 $(element).parents('li').remove(); 744 745 var view = 'div.gray.alarmDeadline'; 746 var length = $(view).find('ul.message-list li').length; 747 748 if(length > 0){ 749 var msg = ''; 750 if(length == 1) 751 msg = get_lang( 'You have a follow up due for today:'); 752 else 753 msg = get_lang('You have %1 follow ups due for today:', length); 754 755 $(view).find('span.subtitle-alarm strong').html(msg); 756 }else 757 $(view).remove(); 758 759 DataLayer.put('followupflagged', 760 { 761 id: idAlarm , 762 isSent: '1', 763 folderName: folderName, 764 messageNumber: messageNumber, 765 uid: User.me.uid 766 }); 767 768 DataLayer.commit(); 769 770 } 771 772 alarmDeadline = { 773 774 775 load: function(alarm){ 776 var currentDate = new Date().toString("dd/MM/yyyy") 777 if($.cookie("fadeAlarm") != currentDate) 778 for(var i = 0; i < alarm.length; i++) 779 this.addAlarm( alarm[i] ); 780 }, 781 782 addAlarm: function(alarm){ 783 784 DataLayer.task( parseInt(alarm['sentTime']) , function( timestamp ){ 785 var view = 'div.gray.alarmDeadline'; 786 787 if(!$(view+' li.message-item.'+alarm.id).length){ 788 789 var currentDate = new Date().toString("dd/MM/yyyy") 790 if($.cookie("fadeAlarm") != currentDate) 791 792 if($('div.gray.alarmDeadline').length){ 793 794 $(view).find('ul.message-list').append(DataLayer.render("../prototype/modules/mail/templates/followupflag_alarmDeadline_add_item_list.ejs", alarm)) 795 796 var length = $(view).find('ul.message-list li').length; 797 var msg = ''; 798 if(length == 1) 799 msg = get_lang( 'You have a follow up due for today:'); 800 else 801 msg = get_lang('You have %1 follow ups due for today:', length); 802 803 $(view).find('span.subtitle-alarm strong').html(msg); 804 805 $(view+' .button.delete').button({ 806 text: false, 807 icons:{ 808 primary: 'ui-icon-close' 809 } 810 }); 811 812 }else{ 813 var item = { 814 alarms: [alarm], 815 title: get_lang('Follow ups'), 816 caption: get_lang('You have one undone message today:'), 817 type: 'alarmDeadline' 818 }; 819 showAlarmsModal(item); 820 } 821 } 822 823 }); 824 } 825 715 826 } 716 827 -
branches/2.4/prototype/modules/mail/templates/attachment.ejs
r6214 r7228 1 <div id="fileupload_msg<%=data.ID%>" class="fileupload" style="margin : 15px 0px -15px -10px; ">1 <div id="fileupload_msg<%=data.ID%>" class="fileupload" style="margin : 15px 0px -15px -10px; padding-bottom : 5px;"> 2 2 <div class="row fileupload-buttonbar"> 3 3 <div class="button-files-upload"> … … 13 13 <br /> 14 14 <div class="files-list" style="margin: 5px; padding: 5px;"> 15 < ul class="attachments-list"></ul>15 <div class="attachments-list ui-corner-all" style="display:none;"></div> 16 16 </div> 17 17 </div> 18 <div id="fileupload_msg<%=data.ID%>_droopzone" style="display:none;" class="fileupload_msg_tooltip"> 19 Solte aqui seus anexos 20 </div> -
branches/2.4/prototype/modules/mail/templates/attachment_add_itemlist.ejs
r6124 r7228 1 <li style="list-style : none;"> 2 <p class="input-group archive-info" style="margin: 0px 0 !important; height: 17px"> 3 <span title="<%=data.file.fullFileName%>" class="archive-attach name"><%=data.file.fileName%></span> 4 <span class="archive-attach size"><%=data.file.fileSize%></span> 5 <button type="button" style="margin-bottom: -4px; <%= is_webkit || is_ie ? '' : 'top : 7px;'%>" class="button close tiny upload delete-upload" title="Deletar">Deletar</button> 6 <span class="status-upload"></span> 7 <%if(data.file.error){%> 8 <span class="archive-error error"><%=data.file.error%></span> 9 <%}if(!data.file.error){%> 10 <span style="width: 110px; height: 14px; overflow:hidden"> 11 <span class="in-progress"> <img src="../prototype/modules/mail/img/loader.gif" /></span> 12 </span> 13 <%}%> 14 <label class="fileinput-button new"></label> 15 </p> 16 </li> 1 <div class="att-box ui-corner-all <%= (typeof(data.file.error) != 'boolean' ? 'invalid-email-box' : '') %>"> 2 <!--<div style="position:absolute; text-align: center; line-height: 1.9em;">--> 3 <span class="att-box-value"><%=data.file.fileName%> <b>(<%=data.file.fileSize%>)</b></span> 4 <span class="att-box-fullfilename" style="display:none;"><%=data.file.fullFileName%></span> 5 <span class="att-box-filesize" style="display:none;"><%=data.file.fileSize%></span> 6 <% if(typeof(data.file.error) == 'boolean'){ %> 7 <span class="att-box-loading"> </span> 8 <% } %> 9 <span class="att-box-delete ui-icon-close ui-icon" style="display: inline-block;" title="<%=get_lang('Remove')%>"> </span> 10 <!--</div>--> 11 </div> -
branches/2.4/prototype/modules/mail/templates/float_folder_menu.ejs
r5948 r7228 12 12 13 13 <span class="float-menu"> 14 <span class="ui-icon ui-icon-document float-menu-new floating-default" title="Nova Pasta"></span> 15 <%if(!specialFolders[data.name_folder]){ %> 16 <span class="ui-icon ui-icon-pencil float-menu-edit floating-default" title="Editar Pasta"></span> 17 <span class="ui-icon ui-icon-close float-menu-remove floating-default" title="Excluir Pasta"></span> 18 <%} 19 else if(data.name_folder == trashfolder){%> 20 <span class="ui-icon ui-icon-trash float-menu-clean floating-default" onclick="empty_trash_imap();" title="Limpar Pasta"></span> 21 <%} 22 else if(data.name_folder == spamfolder){%> 23 <span class="ui-icon ui-icon-trash float-menu-clean floating-default" onclick="empty_spam_imap();" title="Limpar Pasta"></span> 14 <%if(!data.flag.valid){ %> 15 <%if(data.name_folder != 'INBOX'){%> 16 <span class="ui-icon ui-icon-document float-menu-new floating-default" title="<%=get_lang("New Folder")%>"></span> 17 <%}%> 18 <%if(!specialFolders[data.name_folder]){ %> 19 <span class="ui-icon ui-icon-pencil float-menu-edit floating-default" title="<%=get_lang("Edit folder")%>"></span> 20 <span class="ui-icon ui-icon-close float-menu-remove floating-default" title="<%=get_lang("Delete folder")%>"></span> 21 <%} 22 else if(data.name_folder == trashfolder){%> 23 <span class="ui-icon ui-icon-trash float-menu-clean floating-default" onclick="empty_trash_imap();" title="<%=get_lang("Empty Trash")%>"></span> 24 <%} 25 else if(data.name_folder == spamfolder){%> 26 <span class="ui-icon ui-icon-trash float-menu-clean floating-default" onclick="empty_spam_imap();" title="<%=get_lang("Empty Spam")%>"></span> 27 28 <%}%> 29 30 <%}else{ %> 31 <% if(parseInt(data.acl.create)){%> 32 <span class="ui-icon ui-icon-document float-menu-new floating-default" title="<%=get_lang("New Folder")%>"></span> 33 <% if(parseInt(data.acl.delete) && parseInt(data.acl.rename) && !specialFolders[data.name_folder] && !data.flag.head){ %> 34 <span class="ui-icon ui-icon-pencil float-menu-edit floating-default" title="<%=get_lang("Edit folder")%>"></span> 35 <% } %> 36 37 <% } %> 38 <% if(parseInt(data.acl.delete) && !specialFolders[data.name_folder] && !data.flag.head){ %> 39 <span class="ui-icon ui-icon-close float-menu-remove floating-default" title="<%=get_lang("Delete folder")%>"></span> 40 <%}%> 41 <%if(data.name_folder == trashfolder && parseInt(data.acl.delete)){%> 42 <span class="ui-icon ui-icon-trash float-menu-clean floating-default" onclick="empty_trash_imap(true, $(this));" title="<%=get_lang("Empty Trash")%>"></span> 43 <%}else if(data.name_folder == spamfolder && parseInt(data.acl.delete)){%> 44 <span class="ui-icon ui-icon-trash float-menu-clean floating-default" onclick="empty_spam_imap(true, $(this));" title="<%=get_lang("Empty Spam")%>"></span> 45 <%}%> 24 46 <%}%> 25 47 <span class="ui-icon ui-icon-arrowthickstop-1-n float-menu-export floating-default" title="<%=get_lang("Export folder messages")%>"></span> 26 48 </span> -
branches/2.4/prototype/modules/mail/templates/followupflag_alarm_list.ejs
r6754 r7228 3 3 <strong><%=data.caption %></strong> 4 4 </span> 5 <ul class="message-list" >5 <ul class="message-list" style="float: left;"> 6 6 <% 7 for(var i=0; i<data.alarm InRange.length; i++){7 for(var i=0; i<data.alarms.length; i++){ 8 8 if(data.type == 'filtersDeadline') 9 var openMessageScript = "$(this).parent().remove(); var msgs_count = $('.filtersDeadline').find(' .message-item').length; if(msgs_count == 0){ $('.filtersDeadline').remove(); } $('.subtitle-alarm').find('strong').html((msgs_count == 1)?get_lang('"+data.captions.singular+"'):get_lang('"+data.captions.plural+"', msgs_count)); cExecute('$this.imap_functions.open_flagged_msg&msg_number="+data.alarmInRange[i].msg_number+"&msg_folder="+data.alarmInRange[i].msg_folder+"&alarm=true', show_msg);";9 var openMessageScript = "$(this).parent().remove(); var msgs_count = $('.filtersDeadline').find('li.message-item').length; if(msgs_count == 0){ $('.filtersDeadline').remove(); } $('.subtitle-alarm').find('strong').html((msgs_count == 1)?get_lang('"+data.captions.singular+"'):get_lang('"+data.captions.plural+"', msgs_count)); cExecute('$this.imap_functions.open_flagged_msg&msg_number="+data.alarms[i].msg_number+"&msg_folder="+data.alarms[i].msg_folder+"&alarm=true', show_msg);"; 10 10 else 11 var openMessageScript = "cExecute('$this.imap_functions.get_info_msg&msg_number="+data.alarm InRange[i].msg_number+"&msg_folder="+data.alarmInRange[i].msg_folder+"&alarm=true', show_msg);";11 var openMessageScript = "cExecute('$this.imap_functions.get_info_msg&msg_number="+data.alarms[i].msg_number+"&msg_folder="+data.alarms[i].msg_folder+"&alarm=true', show_msg);"; 12 12 %> 13 <li class="message-item ">13 <li class="message-item <%= data.alarms[i].id %>"> 14 14 <a onclick="<%=openMessageScript%>"> 15 <%= data.alarm InRange[i].a %>15 <%= data.alarms[i].a %> 16 16 </a> 17 <%if( data.type == 'alarmDeadline'){%> 18 <a onclick='cancelAlarm(this, "<%= data.alarms[i].id %>", "<%= data.alarms[i].msg_number %>", "<%= data.alarms[i].msg_folder %>");' class="tiny button delete">close</a> 19 <%}%> 17 20 </li> 18 21 <% -
branches/2.4/prototype/modules/mail/templates/followupflag_configure.ejs
r6294 r7228 70 70 <input type="checkbox" name="alarm" <%=(followupflagged.alarmDeadline) ? 'checked="checked"' : '' %> /><label><%= get_lang("Alarm")%>: </label> 71 71 <input type="text" name="alarmDate" class="date" size="12" value="<%=(followupflagged.alarmDeadline) ? followupflagged.alarmDeadline.toString('dd/MM/yyyy') : '' %>" /> 72 <input type=" hidden" name="alarmTime" class="time" size="8" value="00:01" />72 <input type="text" name="alarmTime" class="time" size="8" disabled="disabled" value="<%=(followupflagged.alarmDeadline) ? followupflagged.alarmDeadline.toString('HH:mm') : '' %>" /> 73 73 </div> 74 74 <div class="completed-followup"> -
branches/2.4/prototype/modules/mail/templates/listContacts.ejs
r6754 r7228 4 4 css: 'recent', 5 5 img: 'recent', 6 text: 'Contato dinâmico'6 text: 'Contato Recente' 7 7 }, 8 '/ contacts':{8 '/personalContact':{ 9 9 css: 'personal', 10 10 img: 'personal', 11 text: 'Contato pessoal' ,11 text: 'Contato pessoal' 12 12 }, 13 13 '/sharedcontact':{ 14 14 css: 'personal', 15 15 img: 'sharedcontact', 16 text: 'Contato compartilhado' ,16 text: 'Contato compartilhado' 17 17 }, 18 18 '/groups':{ 19 19 css: 'group', 20 20 img: 'group', 21 text: 'Grupo pessoal' ,21 text: 'Grupo pessoal' 22 22 }, 23 23 '/sharedgroup':{ 24 24 css: 'group', 25 25 img: 'sharedgroup', 26 text: 'Grupo compartilhado' ,26 text: 'Grupo compartilhado' 27 27 } 28 28 } -
branches/2.4/prototype/modules/mail/templates/new_message.ejs
r7122 r7228 38 38 } 39 39 %> 40 <button class="button small reply-to-button"><%= get_lang("Reply to") %></button> 40 41 <button class="button small rich-button"><%= (preferences.plain_text_editor == 1 ? get_lang("Rich Text") : get_lang("Simple Text")) %></button> 41 42 </div> … … 93 94 </td> 94 95 </tr> 96 <tr class="reply-to-tr" style="display:none;"> 97 <td class="field" style="width: 6%;"> 98 <%= get_lang("Reply to") %>: 99 </td> 100 <td class="value" style="width: 100%;"> 101 <div class="email-area ui-corner-all"> 102 <textarea class="new-message-input reply-to email-text" name="input_aux_reply_to" type="text" value="" autocomplete="off"></textarea> 103 </div> 104 <textarea class="new-message-input reply-to" name="input_reply_to" style="width:99%; resize: none;display : none;"></textarea> 105 </td> 106 </tr> 95 107 <tr class="subject-tr"> 96 108 <td class="field"> … … 125 137 <tr class="attachment"> 126 138 <td class="field"> 139 <%=get_lang("Attachments: ")%> 127 140 <input style="display:none;" name="attDisposition<%= data.id %>" id="attDisposition<%= data.id%>" value="attachment"/> 128 141 </td>
Note: See TracChangeset
for help on using the changeset viewer.