Changeset 7228 for branches/2.4/expressoMail1_2/js/draw_api.js
- Timestamp:
- 09/17/12 14:30:47 (12 years ago)
- Location:
- branches/2.4
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.4
- Property svn:mergeinfo changed
-
branches/2.4/expressoMail1_2/js/draw_api.js
r7208 r7228 12 12 canMakeBox = true; 13 13 fastSearch = false; 14 selectedPagingMsgs = {}; 15 allMsgsSelected = false; 16 totalFolderMsgs = 0; 17 var jqXHR = new Array(); 18 var idattachbycontent = 0; 14 19 15 20 onceOpenedHeadersMessages = {}; … … 514 519 if (openTab.imapBox[0] != folder) 515 520 { 521 selectAllFolderMsgs(false); 516 522 current_folder = folder; 517 523 var handler_draw_box = function(data) 518 524 { 525 519 526 if(!verify_session(data)) 520 527 return; … … 526 533 draw_paging(data.num_msgs); 527 534 Element("tot_m").innerHTML = data.num_msgs; 528 $('#new_m').html(data.tot_unseen > 0 ? data.tot_unseen : "0").css("color","red"); 529 //$("#new_m").html(($(".selected").find(".folder_unseen").html() != "0" && $(".selected").find(".folder_unseen").html() != null)? $(".selected").find(".folder_unseen").html() : "0").css("color", "red"); 535 $('#new_m').html(data.tot_unseen > 0 ? data.tot_unseen : "0").css("color","red"); 536 //$("#new_m").html(($(".selected").find(".folder_unseen").html() != "0" && $(".selected").find(".folder_unseen").html() != null)? $(".selected").find(".folder_unseen").html() : "0").css("color", "red"); 530 537 //update_menu(); 531 538 $(".folders-loading").removeClass("folders-loading"); 532 539 return true; 533 540 } 541 $.ajax({ 542 url: "controller.php?" + $.param( {action: "$this.imap_functions.get_range_msgs3", 543 folder: folder, 544 msg_range_begin: "0", 545 msg_range_end: "0", 546 sort_box_type: "SORTARRIVAL", 547 search_box_type: search_box_type, 548 sort_box_reverse: "1" 549 }), 550 success: function(data){ 551 data = connector.unserialize(data); 552 if(data){ 553 var _data = {}; 554 $.each(data,function(index,value){ 555 if (data[index] && data[index].msg_number){ 556 _data[data[index].msg_number] = data[index].msg_number; 557 } 558 }); 559 populateSelectedMsgs(_data); 560 _data = {}; 561 562 } 563 }, 564 beforeSend: function( jqXHR, settings ){ 565 connector.showProgressBar(); 566 }, 567 complete: function( jqXHR, settings ){ 568 connector.hideProgressBar(); 569 } 570 }); 534 571 proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort_box_type,search_box_type,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box); 535 572 } … … 897 934 var _mouse_out; 898 935 var _cell; 899 var colGroupMain = document.getElementById("colgroup_main_"+numBox);900 var colGroupHead = document.getElementById("colgroup_head_"+numBox);901 936 for (var r=0;r<trM.length;r++) { 902 937 for (var c=0;c<trM[r].cells.length;c++) { … … 905 940 if (is_mozilla && !is_webkit) { 906 941 if (!emptyBody) { 907 colGroupMain.childNodes[c].setAttribute("width",colSizes[tbl][c]);942 document.getElementById("colgroup_main_"+numBox).childNodes[c].setAttribute("width",colSizes[tbl][c]); 908 943 } 909 colGroupHead.childNodes[c].setAttribute("width",colSizes[tbl][c]);944 document.getElementById("colgroup_head_"+numBox).childNodes[c].setAttribute("width",colSizes[tbl][c]); 910 945 if (tbH.rows[0].cells[c].className=="th_resizable") { 911 946 // lots of stupid fixes for FF to redraw cell content … … 922 957 } 923 958 } 924 /*925 959 else { 926 960 tbH.rows[0].cells[c].setAttribute("width",_cell.offsetWidth); 927 } */961 } 928 962 } 929 963 } … … 961 995 if (is_mozilla && !is_webkit){ 962 996 $('#table_message_header_box_'+numBox).attr('style','width:99.5%'); 963 $('#colgroup_head_'+numBox).find('col').each(function(index,value){ 964 $(this).attr('width',colSizes[1][index]); 965 }); 966 $('#colgroup_main_'+numBox).find('col').each(function(index,value){ 967 $(this).attr('width',colSizes[1][index]); 968 }); 997 $('#colgroup_head_'+numBox).find('col').each(function(index,value){ 998 $(this).attr('width',colSizes[1][index]); 999 }); 1000 $('#colgroup_main_'+numBox).find('col').each(function(index,value){ 1001 $(this).attr('width',colSizes[1][index]); 1002 }); 969 1003 } 970 1004 else if (is_webkit){ … … 975 1009 $('#table_message_header_box_'+numBox).css('table-layout','auto'); 976 1010 } 977 $('#table_message_header_box_'+numBox).find('td').each(function(index,value){ 978 $(this).width(colSizes[1][index]); 979 }); 980 $('#divScrollMain_'+numBox).find('tr:first').find('td').each(function(index,value){ 981 $(this).width(colSizes[1][index]); 982 }); 1011 $('#table_message_header_box_'+numBox).find('td').each(function(index,value){ 1012 $(this).width(colSizes[1][index]); 1013 }); 1014 $('#divScrollMain_'+numBox).find('tr:first').find('td').each(function(index,value){ 1015 $(this).width(colSizes[1][index]); 1016 }); 983 1017 } 984 1018 $('#table_resultsearch_'+numBox).removeAttr('style'); … … 1044 1078 } 1045 1079 1080 1081 /*Cria a div que permite a seleção de todas as mensagens*/ 1082 function drawSelectMsgsTable(){ 1083 var div = $('<div>'); 1084 div.attr('class','select-all-messages'); 1085 $('#content_id_0').first().prepend(div); 1086 div.css('display','none'); 1087 } 1088 1089 function totalSelected(){ 1090 var total = 0; 1091 for(var obj in selectedPagingMsgs) 1092 if (selectedPagingMsgs[obj] == true) 1093 total++; 1094 return total; 1095 }; 1096 1097 /*Atualiza o array de mensagens selecionadas*/ 1098 function updateSelectedMsgs(selected,msg_number){ 1099 var folder = $('#content_folders .folder.selected').attr('title'); 1100 folder = folder ? folder : get_lang('INBOX'); 1101 folder = folder.length > 70 ? '"'+folder.substr(0,70) + "..." +'"': '"'+folder+'"' ; 1102 var div = $('.select-all-messages'); 1103 var filterFlag = search_box_type != "ALL" ? '"' + get_lang(search_box_type) + "s" + '"': ""; 1104 /*Seleciona as mensagens ao navegar pelas páginas*/ 1105 if (allMsgsSelected && msg_number == undefined){ 1106 $('.checkbox').each(function(){ 1107 $(this).attr('checked', true); 1108 $(this).parent().parent().addClass('selected_msg'); 1109 }); 1110 } 1111 else if (msg_number == undefined){ 1112 for(var obj in selectedPagingMsgs){ 1113 if (selectedPagingMsgs[obj] == true){ 1114 $('#check_box_message_'+obj).attr('checked', true); 1115 $('#check_box_message_'+obj).parent().parent().addClass('selected_msg'); 1116 } 1117 } 1118 } 1119 if (selected && msg_number != undefined){ 1120 selectedPagingMsgs[msg_number] = true; 1121 $(this).parent().parent().addClass('selected_msg'); 1122 } 1123 else if(!selected && msg_number != undefined){ 1124 selectedPagingMsgs[msg_number] = false; 1125 $(this).parent().parent().removeClass('selected_msg'); 1126 allMsgsSelected = false; 1127 $('#chk_box_select_all_messages').attr('checked',false); 1128 } 1129 var tSelected = totalSelected(); 1130 /*Todas as mensagens selecionadas uma a uma*/ 1131 if (tSelected > 0 && tSelected == totalFolderMsgs){ 1132 allMsgsSelected = true; 1133 $('#chk_box_select_all_messages').attr('checked',true); 1134 if (total_pages > 1){ 1135 var link = "<a class='select-link' href='#'>Limpar seleção?</a>"; 1136 var info = "Todas as <b>"+totalFolderMsgs+"</b> mensagens "+filterFlag+" em "+folder+" foram selecionadas. "+link; 1137 div.html("<span>"+info+"<span>"); 1138 div.show(); 1139 $('.select-link').bind('click',function(){selectAllFolderMsgs();$('.select-link').unbind('click');}); 1140 } 1141 } 1142 /*Se foram selecionadas algumas mensagens*/ 1143 else if (tSelected > 0 && !allMsgsSelected && total_pages > 1){ 1144 $('#chk_box_select_all_messages').attr('checked',false); 1145 var link = "<a class='select-link' href='#'>Limpar seleção?</a>"; 1146 if (tSelected == 1){ 1147 var info = "Foi selecionada <b>"+tSelected+"</b> mensagem "+filterFlag+" em "+folder+". "+link; 1148 } 1149 else{ 1150 var info = "Foram selecionadas <b>"+tSelected+"</b> mensagens "+filterFlag+" em "+folder+". "+link; 1151 } 1152 div.html("<span>"+info+"<span>"); 1153 div.show(); 1154 $('.select-link').bind('click',function(){ 1155 selectAllFolderMsgs(); 1156 $('.select-link').unbind('click'); 1157 }); 1158 } 1159 else if (allMsgsSelected && total_pages > 1){ 1160 var link = "<a class='select-link' href='#'>Limpar seleção?</a>"; 1161 var info = "Todas as <b>"+totalFolderMsgs+"</b> mensagens "+filterFlag+" em "+folder+" foram selecionadas. "+link; 1162 div.html("<span>"+info+"<span>"); 1163 div.show(); 1164 $('.select-link').bind('click',function(){ 1165 selectAllFolderMsgs(); 1166 $('.select-link').unbind('click'); 1167 }); 1168 } 1169 else{ 1170 div.hide(); 1171 } 1172 resizeWindow(); 1173 } 1174 1175 /*Seleciona ou desseleciona todas as mensagens da pasta*/ 1176 function selectAllFolderMsgs(select){ 1177 var folder = $('#content_folders .folder.selected').attr('title'); 1178 folder = folder ? folder : get_lang('INBOX'); 1179 folder = folder.length > 70 ? '"'+folder.substr(0,70) + "..." +'"': '"'+folder+'"' ; 1180 var filterFlag = search_box_type != "ALL" ? get_lang(search_box_type) + "s": ""; 1181 var div = $('.select-all-messages'); 1182 if (select){ 1183 allMsgsSelected = true; 1184 var link = "<a class='select-link' href='#'>Limpar seleção?</a>"; 1185 var info = "Todas as <b>"+totalFolderMsgs+"</b> mensagens "+filterFlag+" em "+folder+" foram selecionadas. "+link; 1186 div.html("<span>"+info+"<span>"); 1187 div.show(); 1188 $('.select-link').bind('click',function(){ 1189 selectAllFolderMsgs(); 1190 $('.select-link').unbind('click'); 1191 }); 1192 for(var obj in selectedPagingMsgs){ 1193 selectedPagingMsgs[obj] = true; 1194 } 1195 1196 }else{ 1197 allMsgsSelected = false; 1198 for(var obj in selectedPagingMsgs){ 1199 $("#content_id_0").find('input[type="checkbox"]').removeAttr("checked"); 1200 selectedPagingMsgs[obj] = false; 1201 $('#check_box_message_'+obj).parent().parent().removeClass('selected_msg selected_shortcut_msg'); 1202 } 1203 div.hide(); 1204 } 1205 resizeWindow(); 1206 } 1207 1208 /*Carrega o array de mensagens da pasta*/ 1209 function populateSelectedMsgs(data){ 1210 this.selectedPagingMsgs = {}; 1211 this.totalFolderMsgs = 0; 1212 var total = 0; 1213 $.each(data, function(index, value){ 1214 if(value != undefined){ 1215 selectedPagingMsgs[value] = false; 1216 total++; 1217 } 1218 }); 1219 delete selectedPagingMsgs[undefined]; 1220 allMsgsSelected = false; 1221 this.totalFolderMsgs = total; 1222 } 1223 1046 1224 // Draw the inbox and another folders 1047 1225 function draw_box(headers_msgs, msg_folder, alternate){ … … 1125 1303 chk_box_element.className = "checkbox"; 1126 1304 chk_box_element.onclick = function(){select_all_messages(this.checked);}; 1127 chk_box_element.onmouseover = function () {this.title=get_lang('Select all messages from this page.') };1305 chk_box_element.onmouseover = function () {this.title=get_lang('Select all messages from this page.'); }; 1128 1306 chk_box_element.onkeydown = function (e){ 1129 1307 if (is_ie) … … 1280 1458 _divScroll.appendChild(table_element); 1281 1459 openTab.content_id[numBox].appendChild(_divScroll); 1282 1460 1283 1461 var f_unseen = 0; 1284 1462 1285 1463 document.getElementById("table_message_header_box_"+numBox).emptyBody = false; 1286 1464 1287 1465 if (headers_msgs.num_msgs == 0) 1288 1466 showEmptyBoxMsg(tbody_element); … … 1345 1523 //helper: 'clone', 1346 1524 helper: function(event){ 1347 $(this).find("input:checkbox").attr("checked", true); 1525 $(this).addClass("selected_msg").find("input:checkbox").attr("checked", true); 1526 updateSelectedMsgs($(this).find("input:checkbox").is(':checked'),$(this).attr("id")); 1348 1527 if ( $("#tbody_box .selected_shortcut_msg").length > 1) { 1349 $("#tbody_box .selected_shortcut_msg").find('.checkbox').attr('checked',true); 1528 $("#tbody_box .selected_shortcut_msg").addClass("selected_msg").find('.checkbox').attr('checked',true); 1529 $.each( $(".selected_shortcut_msg"), function(index, value){ 1530 updateSelectedMsgs($(value).find(":checkbox").is(':checked'),$(value).attr("id")); 1531 }); 1350 1532 } 1351 if($("#table_box").find("tr input:checked").length > 1 ) 1352 return $("<tr><td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : (($("#table_box").find("tr input:checked")).length+" mensagens selecionadas"), type: "messages"})+"</td></tr>"); 1533 1534 if(totalSelected() > 1 ) 1535 return $("<tr><td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : (totalSelected()+" mensagens selecionadas"), type: "messages"})+"</td></tr>"); 1353 1536 if( $(this).find(".td_msg_subject").text().length > 18 ) 1354 1537 return $("<tr><td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : $(this).find(".td_msg_subject").text().substring(0,18) + "...", type: "messages"})+"</td></tr>"); … … 1362 1545 containment: "#divAppbox" 1363 1546 }).bind('contextmenu',function(event){ 1364 if (!(($(event.target).find('img').length > 0) && ($(event.target).hasClass('td-label')))){ 1365 if($(this).find("input:checkbox").attr("checked") != "checked"){ 1366 $(this).find("input:checkbox").trigger('click'); 1367 $(this).addClass("selected_msg"); 1368 } 1547 if (!(($(event.target).find('img').length > 0) && ($(event.target).hasClass('td-label')))){ 1548 if($(this).find("input:checkbox").attr("checked") != "checked"){ 1549 $(this).find("input:checkbox").trigger('click'); 1550 $(this).addClass("selected_msg"); 1369 1551 } 1552 updateSelectedMsgs($(this).find("input:checkbox").is(':checked'),$(this).attr("id")); 1553 } 1370 1554 }); 1371 1555 } … … 1374 1558 select_msg(headers_msgs[0].msg_number, 'null', true); 1375 1559 1376 1560 1377 1561 var tdFolders = Element("folderscol"); 1378 1562 tdFolders.style.display = preferences.hide_folders == '1' ? "none" : ""; … … 1419 1603 Element('msg_number').value = ''; 1420 1604 } 1421 var scripts = new Array("InfoContact", 1422 "TreeShow"); 1423 connector.loadAllScripts(scripts); 1605 connector.loadScript("InfoContact"); 1424 1606 // Loading Quota View Folder Component (if exists...) 1425 1607 if(Element("table_quota")) … … 1435 1617 document.getElementById("exmail_main_body").appendChild(ruler_element); 1436 1618 } 1437 1619 drawSelectMsgsTable(); 1620 updateSelectedMsgs(); 1621 resizeWindow(); 1438 1622 } 1439 1623 … … 1511 1695 1512 1696 $(chk_box_element).click(function(e){ 1513 changeBgColor(e,headers_msgs.msg_number); 1697 updateSelectedMsgs($(this).is(':checked'),headers_msgs.msg_number); 1698 $(".selected_shortcut_msg").removeClass("current_selected_shortcut_msg selected_shortcut_msg"); 1699 $(".current_selected_shortcut_msg").removeClass("current_selected_shortcut_msg selected_shortcut_msg"); 1700 if(preferences.use_shortcuts == '1') 1701 $(this).parents("tr:first").addClass("current_selected_shortcut_msg selected_shortcut_msg"); 1702 changeBgColor(e,headers_msgs.msg_number); 1703 $(this).blur(); 1514 1704 }); 1515 1705 … … 1896 2086 } 1897 2087 1898 function sort_box(search, sort){ 2088 function sort_box(search, sort,clean_selected){ 2089 if (typeof(clean_selected) == "undefined") 2090 selectAllFolderMsgs(false); 1899 2091 if (cellResized) 1900 2092 return; … … 1922 2114 sort_box_type = sort; 1923 2115 search_box_type = search; 1924 2116 if (typeof(clean_selected) == "undefined"){ 2117 $.ajax({ 2118 url: "controller.php?" + $.param( {action: "$this.imap_functions.get_range_msgs3", 2119 folder: get_current_folder(), 2120 msg_range_begin: "0", 2121 msg_range_end: "0", 2122 sort_box_type: "SORTARRIVAL", 2123 search_box_type: search_box_type, 2124 sort_box_reverse: "1" 2125 }), 2126 success: function(data){ 2127 data = connector.unserialize(data); 2128 if(data){ 2129 var _data = {}; 2130 $.each(data,function(index,value){ 2131 if (data[index] && data[index].msg_number){ 2132 _data[data[index].msg_number] = data[index].msg_number; 2133 } 2134 }); 2135 populateSelectedMsgs(_data); 2136 _data = {}; 2137 2138 } 2139 }, 2140 beforeSend: function( jqXHR, settings ){ 2141 connector.showProgressBar(); 2142 }, 2143 complete: function( jqXHR, settings ){ 2144 connector.hideProgressBar(); 2145 } 2146 }); 2147 } 1925 2148 proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort,search,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box); 1926 2149 current_page = 1; … … 2700 2923 //options.width = "1%"; 2701 2924 options.setAttribute("noWrap","true"); 2702 var option_edit 2925 var option_edit = ' | <span class="message_options" onclick="new_message(\'edit\',\''+ID+'\',\''+info_msg.Flagged+'\');">'+get_lang('Edit')+'</span>'; 2703 2926 var option_print = ' | <span class="message_options" onclick="print_msg(\''+info_msg.msg_folder+'\',\''+info_msg.msg_number+'\',\''+ID+'\');">'+get_lang('Print')+'</span>'; 2704 2927 var option_hide_more = document.createElement("SPAN"); … … 2826 3049 reply_to_values.type = "HIDDEN"; 2827 3050 reply_to_values.value = info_msg.reply_to; //Veio do IMAP, sem images nem links. 2828 reply_to.innerHTML = draw_plugin_cc(ID, info_msg.reply_to); 3051 $.each(break_comma(info_msg.reply_to), function(index, value){ 3052 reply_to.innerHTML += draw_plugin_cc(ID, value); 3053 }) 2829 3054 reply_to.className = "header_message_field"; 2830 3055 tr11.appendChild(td11); … … 2858 3083 { 2859 3084 toaddress_array[ID] = break_comma(info_msg.toaddress2); 2860 var notValidUser = false; 2861 3085 var notValidUser = false; 2862 3086 if (toaddress_array[ID].length > 1) 2863 3087 { … … 2876 3100 } else { 2877 3101 toAdd = get_lang("without destination"); 2878 notValidUser = true;2879 } 2880 2881 to.innerHTML += draw_plugin_cc(ID,toAdd, notValidUser, notValidUser); 3102 notValidUser = true; 3103 } 3104 3105 to.innerHTML += draw_plugin_cc(ID,toAdd, notValidUser, notValidUser); 2882 3106 } 2883 3107 … … 2903 3127 cc_values.value = info_msg.cc; 2904 3128 2905 ccaddress_array[ID] = info_msg.cc.split(",");3129 ccaddress_array[ID] = break_comma(info_msg.cc); 2906 3130 if (ccaddress_array[ID].length > 1){ 2907 3131 var div_ccaddress = document.createElement("SPAN"); … … 2998 3222 subject.className = "header_message_field"; 2999 3223 if(defaultCalendar == "expressoCalendar" && $("#expressoCalendarid")[0]){ 3224 var new_task_logo = document.createElement("IMG"); 3225 new_task_logo.title = "Criar uma nova tarefa a partir deste email."; 3226 new_task_logo.alt = "Criar uma nova tarefa a partir deste email."; 3227 new_task_logo.src = "./templates/default/images/big-task.png"; 3228 new_task_logo.style.cursor = "pointer"; 3229 new_task_logo.style.marginLeft = "5px"; 3230 new_task_logo.onclick = function(){ 3231 import_implements_calendar(); 3232 3233 3234 DataLayer.dispatchPath = "../prototype/"; 3235 var path = "../prototype/modules/calendar/"; 3236 taskDetails(decodeCreateSchedulable('task', ID), true, path, true); 3237 } 3238 3000 3239 var new_event_logo = document.createElement("IMG"); 3001 3240 new_event_logo.title = "Criar evento a partir deste email"; 3002 3241 new_event_logo.alt = "Criar evento a partir deste email"; 3003 new_event_logo.src = "./templates/default/images/calendar_add.png"; 3242 //new_event_logo.src = "./templates/default/images/calendar_add.png"; 3243 new_event_logo.src = "./templates/default/images/big-event.png"; 3004 3244 new_event_logo.style.cursor = "pointer"; 3005 3245 new_event_logo.style.marginLeft = "5px"; … … 3010 3250 DataLayer.dispatchPath = "../prototype/"; 3011 3251 var path = "../prototype/modules/calendar/"; 3012 3013 var startEvent = new Date(); 3014 if(startEvent.toString('mm') < 30) 3015 startEvent.add({minutes: (30 - parseInt(startEvent.toString('mm')))}); 3016 else 3017 startEvent.add({hours: 1, minutes: '-'+startEvent.toString('mm')}); 3018 var endEvent = function(date){ 3019 if(!!User.preferences.defaultCalendar){ 3020 return new Date(parseInt(date.getTime()) + 3021 (!!Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration ? 3022 (Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration * 60000) : 3023 (User.preferences.defaultDuration * 60000) 3024 )); 3025 }else 3026 return new Date(parseInt(date.getTime()) + (User.preferences.defaultDuration * 60000)); 3027 }; 3028 3029 var emails = $("#to_values_"+ID).val().split(','); 3030 3031 3032 //Normalização dos dados evita ter que reemplementar toda as funcionalidades do calendar 3033 eventDetails({ 3034 3035 acl: {inviteGuests: true, organization: true ,participationRequired: false, read: true, write: true}, 3036 alarms: [], 3037 allDay: false, 3038 attachments: [], 3039 isAttendee: true, 3040 attendee: '',//TODOOOOOO, 3041 calendar: User.preferences.defaultCalendar ? User.preferences.defaultCalendar : Calendar.calendars[0], 3042 calendars: Calendar.calendars, 3043 category: '', 3044 'class': '1', 3045 delegatedFrom: {}, 3046 endDate: startEvent.toString(User.preferences.dateFormat), 3047 startDate: endEvent(startEvent).toString(User.preferences.dateFormat), 3048 startHour: startEvent.toString(User.preferences.hourFormat), 3049 endHour: endEvent(startEvent).toString(User.preferences.hourFormat), 3050 timezone: User.preferences.defaultCalendar ? Calendar.signatureOf[User.preferences.defaultCalendar].calendar.timezone : User.preferences.timezone, 3051 summary : $("#subject_"+ID).text(), 3052 description : $("#body_" + ID).text(), 3053 startTime: startEvent.getTime(), 3054 endTime: endEvent(startEvent), 3055 timezones: Timezone.timezones, 3056 me: {name: User.me.name, mail: User.me.mail, acl: 'rowi', status: '1', delegatedFrom: '0', id: User.me.id}, 3057 organizer: {name: User.me.name, mail: User.me.mail, acl: 'rowi', status: '1', delegatedFrom: '0' , id: User.me.id}, 3058 statusParticipants: {accepted: 0, cancelled: 0, tentative: 0, unanswered:emails.length}, 3059 location: '', 3060 attendee: $.map(emails, function( mail ){ 3061 var contact = false; 3062 var decoded = Encoder.htmlDecode(mail); 3063 var newAttendeeName = ""; 3064 3065 var name = decoded.match(/"([^"]*)"/) ? decoded.match(/"([^"]*)"/)[1] : ''; 3066 var mail = decoded.match(/<([^<]*)>[\s]*$/) ? decoded.match(/<([^<]*)>[\s]*$/)[1].toLowerCase() : decoded; 3067 3068 3069 var user = DataLayer.get('user', ["=", "mail", mail], true); 3070 3071 if( $.type(user) == "array") 3072 user = user[0]; 3073 3074 if(user != ''){ 3075 //user = {name : name , mail : mail}; 3076 if(User.me.mail == user.mail) 3077 return(null); 3078 user.isExternal = (!!user && !(!!user.isExternal)) ? 0 : 1; 3079 3080 return DataLayer.merge({ 3081 name: user.name, 3082 mail: user.mail, 3083 acl: 'r', 3084 delegatedFrom: '0', 3085 status: '4', 3086 isExternal: user.isExternal 3087 }, !!user.id ? {id : DataLayer.put('participant', {user: user.id, isExternal: user.isExternal})} : {id: DataLayer.put('participant', {user: user})}); 3088 }else if(mail.match(/[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])/)){ 3089 3090 var userId = DataLayer.put('user', { 3091 name: name, 3092 mail: mail, 3093 isExternal: '1' 3094 }); 3095 var newAttendeeId = DataLayer.put('participant', { 3096 user: userId, 3097 isExternal: '1' 3098 }); 3099 3100 return { 3101 id: newAttendeeId, 3102 name: name, 3103 mail: mail, 3104 acl: 'r', 3105 delegatedFrom: '0', 3106 status: '4', 3107 isExternal: '1' 3108 }; 3109 3110 }else 3111 return (null); 3112 }) 3113 3114 }, true, path, true); 3252 3253 eventDetails(decodeCreateSchedulable('event', ID), true, path, true); 3115 3254 } 3116 3255 subject.appendChild(new_event_logo); 3256 subject.appendChild(new_task_logo); 3117 3257 } 3118 3258 tr5.appendChild(td5); … … 3206 3346 } 3207 3347 attachments.id = "attachments_" + ID; 3348 var parserImport = false; 3208 3349 for (var i=0; i<info_msg.attachments.length; i++) 3209 3350 { 3351 var import_url = '$this.db_functions.import_vcard&msg_folder='+info_msg.msg_folder+"&msg_number="+info_msg.msg_number+"&msg_part="+info_msg.attachments[i].pid+"&idx_file="+i+"&encoding="+info_msg.attachments[i].encoding; 3210 3352 var link_attachment = document.createElement("a"); 3211 link_attachment.setAttribute("href", proxy_mensagens.link_anexo(info_msg,i)); 3353 link_attachment.setAttribute("class", "type_images"); 3354 link_attachment.style.display = "block"; 3355 link_attachment.setAttribute("href", proxy_mensagens.link_anexo(info_msg,i)); 3212 3356 link_attachment.innerHTML = url_decode(info_msg.attachments[i].name) + " ("+borkb(info_msg.attachments[i].fsize)+")"; 3213 3357 //link_attachment.innerHTML += " ("+borkb(info_msg.attachments[i].fsize)+")"; … … 3221 3365 link_import_attachment.setAttribute("onclick","javascript:import_calendar('"+info_msg.msg_folder+"&msg_number="+info_msg.msg_number+"&msg_part="+info_msg.attachments[i].pid+"&idx_file="+i+"&encoding="+info_msg.attachments[i].encoding+"'); return false;"); 3222 3366 link_import_attachment.title = get_lang("Import to calendar"); 3367 link_import_attachment.style.display = "inline"; 3223 3368 link_import_attachment.align = "top"; 3224 3369 link_import_attachment.style.marginLeft = "5px"; 3225 3370 link_import_attachment.style.cursor = "pointer"; 3226 3371 link_attachment.appendChild(link_import_attachment); 3227 } 3228 3229 if((url_decode(info_msg.attachments[i].name).indexOf(".eml") != -1)) 3372 parserImport = true; 3373 } 3374 3375 if((url_decode(info_msg.attachments[i].name).indexOf(".eml") != -1)) 3230 3376 { 3231 3377 //Link para importar calendário … … 3239 3385 link_open_msg.style.cursor = "pointer"; 3240 3386 link_attachment.appendChild(link_open_msg); 3241 }3387 } 3242 3388 3243 link_attachment.innerHTML += '<br/>';3389 //link_attachment.innerHTML += '<br/>'; 3244 3390 attachments.appendChild(link_attachment); 3245 3391 } 3246 3392 tr6.appendChild(td6); 3247 3393 tr6.appendChild(attachments); 3248 3394 tbody_message_others_options.appendChild(tr6); 3249 3395 } 3250 3396 3397 if (parserImport){ 3398 $.ajax({ 3399 url: "controller.php?action="+import_url+'&from_ajax=true&id_user='+User.me.id+'&readable=true&cirus_delimiter='+cyrus_delimiter+'&analize=true&uidAccount='+decodeOwner(), 3400 async: true, 3401 success: function(data){ 3402 data = connector.unserialize(data); 3403 3404 if(typeof(data) == "object"){ 3405 var calendarPermission = data.calendar; 3406 data = data.action; 3407 } 3408 3409 switch(parseInt(data)){ 3410 case 5: 3411 $('.type_images').append('<img class="loader" src="templates/default/images/ajax-loader.gif" align="top" style="margin-left: 5px; cursor: pointer; display: inline">'); 3412 $.ajax({ 3413 url: "controller.php?action="+import_url+'&from_ajax=true&selected=true', 3414 success: function(msg){ 3415 $('.type_images').append('<img src="../prototype/modules/mail/img/flagDone.png" align="top" style="margin: 3px 0 0 5px; cursor: pointer; display: inline">').parent().find('.loader').remove(); 3416 write_msg( ( ( connector.unserialize(msg)) == "ok") ? "Seu evento foi Atualizado com sucesso" : "Ocorreu um erro ao atualizar evento" ); 3417 } 3418 }); 3419 return; 3420 break; 3421 case 4: 3422 $('.type_images').append('<img src="../prototype/modules/mail/img/flagDone.png" align="top" style="margin: 3px 0 0 5px; cursor: pointer; ">'); 3423 write_msg("Seu evento encontra-se atualizado."); 3424 return; 3425 break; 3426 case 12: 3427 write_msg('Este evento não existe mais.'); 3428 return; 3429 break; 3430 } 3431 } 3432 }); 3433 } 3251 3434 //k!! 3252 3435 … … 3339 3522 3340 3523 //window.setTimeout(function() { $("#div_message_scroll_"+ID).focus() },250); 3341 3524 3342 3525 /* 3343 3526 * @AUTHOR Marcos Luiz Wilhelm … … 3455 3638 var href = './inc/get_archive.php?msgFolder=' + utf8_decoder(fdr) + '&msgNumber=' + msg + '&indexPart=' + thumb.pid + '&image=true'; 3456 3639 //var href = thumb.url; 3457 var src = 'inc/get_archive.php?msgFolder=' + utf8_decoder(fdr) + '&msgNumber=' + msg + '&indexPart=' + thumb.pid + '&image=thumbnail'; 3640 var src = 'inc/get_archive.php?msgFolder=' + utf8_decoder(fdr) + '&msgNumber=' + msg + '&indexPart=' + thumb.pid + '&image=thumbnail'; 3458 3641 } 3459 3642 var msgid= fdr+";;"+msg+";;"+i+";;"+thumb.pid+";;"+thumb.encoding; … … 3622 3805 if($.trim(input_data) != ""){ 3623 3806 var box_data = valid_emails(input_data); 3624 var html = DataLayer.render("../prototype/modules/mail/templates/emailBox.ejs", box_data); 3625 var newBox = location.before(html).prev();3626 box_actions(newBox);3627 if((preferences.expressoMail_ldap_identifier_recipient || personal)&& $(newBox).hasClass("invalid-email-box")){3628 //$(newBox).find(".loading").css("background-image", "../prototype/modules/mail/img/ajax-loader.gif");3629 show_detais(newBox, input_data, personal, shared);3630 }else{3631 $(newBox).find(".box-loading").remove();3632 3807 var html = DataLayer.render("../prototype/modules/mail/templates/emailBox.ejs", box_data); 3808 var newBox = location.before(html).prev(); 3809 box_actions(newBox); 3810 if((preferences.expressoMail_ldap_identifier_recipient || personal)&& $(newBox).hasClass("invalid-email-box")){ 3811 //$(newBox).find(".loading").css("background-image", "../prototype/modules/mail/img/ajax-loader.gif"); 3812 show_detais(newBox, input_data, personal, shared); 3813 }else{ 3814 $(newBox).find(".box-loading").remove(); 3815 } 3633 3816 } 3634 3817 } … … 3731 3914 } 3732 3915 if(input.val() != ""){ 3733 if(e.keyCode == 188 && !e.shiftKey && input.val().split("\"").length > 1){3734 return; 3735 3916 if(e.keyCode == 188 && !e.shiftKey && input.val().split("\"").length > 1){ 3917 return; 3918 } 3736 3919 if(e.keyCode != 9) 3737 3920 e.preventDefault(); … … 3842 4025 } 3843 4026 3844 setTimeout(makeBoxMail,250); 4027 setTimeout(makeBoxMail,250); 3845 4028 }) 3846 4029 //AO COLAR UM TEXTO NO CAMPO 3847 4030 .bind("paste", function(e){ 3848 $(this).trigger("keydown");4031 //$(this).trigger("keydown"); 3849 4032 var pthis = $(this); 3850 4033 setTimeout(function() { 3851 if(pthis.val().split('"').length > 1){ 3852 var str = break_comma(pthis.val());//.replace(/[,;\t]/gi, ",");3853 }else{3854 3855 str = str.split(",");3856 } 3857 3858 if(str.length != 1){ 3859 $.each(str, function(index, value){ 3860 draw_email_box(value, pthis); 3861 }); 3862 }else if(str[0].split(" ").length == 1){ 3863 draw_email_box(str[0], pthis); 3864 }else{ 3865 $(pthis).val(str[0]); 3866 return false; 3867 } 3868 $(pthis).val(""); 4034 if(pthis.val().split('"').length > 1){ 4035 var str = break_comma(pthis.val());//.replace(/[,;\t]/gi, ","); 4036 }else{ 4037 var str = pthis.val().replace(/[,;\t\n]/gi, ","); 4038 str = str.split(","); 4039 } 4040 4041 if(str.length != 1){ 4042 $.each(str, function(index, value){ 4043 draw_email_box(value, pthis); 4044 }); 4045 }else if(str[0].split(" ").length == 1){ 4046 draw_email_box(str[0], pthis); 4047 }else{ 4048 $(pthis).val(str[0]); 4049 return false; 4050 } 4051 $(pthis).val(""); 3869 4052 }, 50); 3870 4053 }); 3871 4054 //SE FOR EDIÇÃO DE EMAILS RECALCULA O INPUT E SETA O FOCO 3872 4055 input.css("max-width",parseInt(input.parents(".email-area:first").css("width"))-15); 4056 input.css("max-width",parseInt(input.parents(".email-area:first").css("width"))-15); 3873 4057 input.trigger("keydown"); 3874 4058 input.focus(); … … 3940 4124 input.css("display" , "inline-block"); 3941 4125 $(this).before(input); 4126 $(this).remove(); 4127 $(input).focus(); 3942 4128 input_keydowns(input, currentTab); 3943 $(this).remove();3944 4129 //CLICK SIMPLES NA CAIXA 3945 4130 }).click(function(){ … … 3976 4161 box.find(".box-loading").remove(); 3977 4162 else{ 3978 4163 box.find(".box-loading").removeClass("box-loading").addClass("box-info"); 3979 4164 box.addClass("box-"+value).removeClass("invalid-email-box"); 3980 4165 loadGroupBox(data.collection, ".box-"+value); … … 3986 4171 'auto_close': 3000 3987 4172 }); 3988 }).find(".box-input").val("\""+data.collection.data[1].value+"\" <"+data.collection.data[ 1].value+">");4173 }).find(".box-input").val("\""+data.collection.data[1].value+"\" <"+data.collection.data[2].value+">"); 3989 4174 box.find(".email-box-value").html( (data.collection.data[1].value.length > 18 ? data.collection.data[1].value.substring(0, 15)+"...": data.collection.data[1].value)) 3990 4175 } … … 3997 4182 3998 4183 if(personal){ 3999 REST.get("/"+ (shared ? "shared" : "") +" contact/"+value, {}, function(data){4184 REST.get("/"+ (shared ? "shared" : "") +"personalContact/"+value, {}, function(data){ 4000 4185 if(!data.error){ 4001 4186 if(data.collection.error) 4002 4187 box.find(".box-loading").remove(); 4003 4188 else{ 4189 var item = normalizeContact(data.collection.itens[0].data); 4004 4190 box.find(".box-loading").removeClass("box-loading").addClass("box-info"); 4005 4191 box.addClass("box-"+value).removeClass("invalid-email-box"); 4006 loadExtraLDAPBox( data.collection.data, ".box-"+value);4192 loadExtraLDAPBox(item, ".box-"+value); 4007 4193 box.unbind("dblclick").bind("dblclick", function(e){ 4008 4194 new $.Zebra_Dialog(get_lang("Impossible editing this contact, but it's possible to remove it"), { … … 4012 4198 'auto_close': 3000 4013 4199 }); 4014 }).find(".box-input").val("\""+data.collection.data[0].value+"\" <"+data.collection.data[1].value+">"); 4015 var emailBoxValue = data.collection.data[0].value.length > 18 ? data.collection.data[0].value.substring(0, 15)+"...": data.collection.data[0].value; 4016 emailBoxValue = emailBoxValue.length > 2 ? emailBoxValue : data.collection.data[1].value.substr(0,data.collection.data[1].value.indexOf('@')); 4017 emailBoxValue = emailBoxValue > 18 ? emailBoxValue.substr(0,15) + "..." : emailBoxValue; 4018 box.find(".email-box-value").html(emailBoxValue); 4200 }).find(".box-input").val("\""+item.name+"\" <"+item.email+">"); 4201 4202 box.find(".email-box-value").html(normalizeBoxName(item.name, item.value)); 4019 4203 } 4020 4204 }else{ … … 4030 4214 box.find(".box-loading").remove(); 4031 4215 else{ 4216 var item = normalizeContact(data.collection.itens[0].data); 4032 4217 box.find(".box-loading").removeClass("box-loading").addClass("box-info"); 4033 4218 box.addClass("box-"+value).removeClass("invalid-email-box"); 4034 loadExtraLDAPBox( data.collection.itens[0].data, ".box-"+value);4219 loadExtraLDAPBox(item, ".box-"+value); 4035 4220 box.unbind("dblclick").bind("dblclick", function(e){ 4036 4221 new $.Zebra_Dialog(get_lang("Impossible editing this contact, but it's possible to remove it"), { … … 4040 4225 'auto_close': 3000 4041 4226 }); 4042 }).find(".box-input").val("\""+data.collection.itens[0].data[0].value+"\" <"+data.collection.itens[0].data[1].value+">"); 4043 var emailBoxValue = data.collection.itens[0].data[0].value.length > 18 ? data.collection.itens[0].data[0].value.substring(0, 15)+"...": data.collection.itens[0].data[0].value; 4044 emailBoxValue = emailBoxValue.length > 2 ? emailBoxValue : data.collection.itens[0].data[1].value.substr(0,data.collection.itens[0].data[1].indexOf('@')); 4045 emailBoxValue = emailBoxValue > 18 ? emailBoxValue.substr(0,15) + "..." : emailBoxValue; 4046 box.find(".email-box-value").html(emailBoxValue); 4047 if(data.collection.itens[0].data[3].value == "TRUE"){ 4048 box.removeClass("invalid-email-box").addClass("out-office-box"); 4227 }).find(".box-input").val("\""+item.name+"\" <"+item.email+">"); 4228 4229 box.find(".email-box-value").html(normalizeBoxName(item.name, item.value)); 4230 if(item.vacationActive == "TRUE"){ 4231 box.addClass("out-office-box"); 4049 4232 } 4050 4233 } … … 4054 4237 }); 4055 4238 } 4239 4240 function normalizeBoxName(name, mail){ 4241 var emailBoxValue = name.length > 18 ? name.substring(0, 15)+"...": name; 4242 emailBoxValue = emailBoxValue.length > 2 ? emailBoxValue : email.substr(0,email.indexOf('@')); 4243 emailBoxValue = emailBoxValue > 18 ? emailBoxValue.substr(0,15) + "..." : emailBoxValue; 4244 4245 return emailBoxValue; 4246 } 4247 4248 function normalizeContact(data){ 4249 var item = {}; 4250 $.each(data, function(j, e){ 4251 item[e.name] = e.value; 4252 }); 4253 4254 return item; 4255 } 4256 4257 function normalizeContacts(data){ 4258 var decoded = []; 4259 4260 if(!$.isArray(data)){data = [data];} 4261 4262 for(var i = 0; i < data.length; i++){ 4263 var item = {}; 4264 $.each(data[i].data, function(j, e){ 4265 item[e.name] = e.value; 4266 }); 4267 decoded.push(item); 4268 } 4269 return decoded; 4270 } 4271 4056 4272 4057 4273 //FUNÇÃO QUE "SETA" OS BINDS DOS CAMPOS PARA - CC - CCO … … 4061 4277 div.click(function(e){ 4062 4278 if(e.target == $(this)[0]){ 4063 $(this).find("textarea:last").focus(); 4279 $(this).find("textarea:last").focus(); 4064 4280 $(this).find("div").removeClass("box-selected"); 4065 4281 } … … 4094 4310 4095 4311 //MAKE KEYDOWN 4096 input_keydowns(div.find("textarea"), ID); 4312 input_keydowns(div.find("textarea"), ID); 4097 4313 4098 4314 … … 4109 4325 if(item.typel == "/groups" && $(ul).find(".dynamic-recent").length) 4110 4326 self._renderItem( ul, {name:"", value:"", type:"linha"} ); 4111 if(item.typel == "/ contacts" && ($(ul).find(".dynamic-group").length || $(ul).find(".dynamic-recent").length))4327 if(item.typel == "/personalContact" && ($(ul).find(".dynamic-group").length || $(ul).find(".dynamic-recent").length)) 4112 4328 self._renderItem( ul, {name:"", value:"", type:"linha"} ); 4113 4329 currentType = item.typel; … … 4127 4343 $(ul).find("li:last").remove(); 4128 4344 } 4129 $(ul).scroll(function(){ 4130 canMakeBox = false;4131 });4345 $(ul).scroll(function(){ 4346 canMakeBox = false; 4347 }); 4132 4348 } 4133 4349 }); … … 4169 4385 event.preventDefault(); 4170 4386 $(this).val(""); 4171 if(ui.item.typel == "/ contacts")4387 if(ui.item.typel == "/personalContact") 4172 4388 draw_email_box(""+ui.item.id, $(this), true, (ui.item.type.substring(0,7) == "/shared" ? true : false)); 4173 4389 else if(ui.item.typel == "/groups") … … 4178 4394 }, 4179 4395 autoFocus: true, 4180 position : { my: "left top", at: "left bottom", collision: "fit" }, 4181 4396 position : { my: "left top", at: "left bottom", collision: "fit" }, 4397 delay : 400 4182 4398 }).bind('catcompleteopen', function(event, ui) { 4183 4399 $(this).data('is_open',true); … … 4192 4408 var autocomplete = $(this)[0].element; 4193 4409 //cálculo dinâmico da largura da lista 4194 var minwidth = 450; 4195 var width = (item.label ? item.label.length : (item.value ? item.value.length : (item.mail ? item.mail.length : 30 ))); 4196 width = (is_ie ? width*2 : (is_webkit && !is_mozilla ? width*4 : width*5)) + 30; 4197 if (width < minwidth) 4198 width = minwidth; 4410 var minwidth = 450; 4411 var width = (item.label ? item.label.length : (item.value ? item.value.length : (item.mail ? item.mail.length : 30 ))); 4412 width = (is_ie ? width*2 : (is_webkit && !is_mozilla ? width*4 : width*5)) + 30; 4413 if (width < minwidth) 4414 width = minwidth; 4199 4415 ul.css({"min-width":width,"max-height" : "180px", "overflow-y" : "auto", "min-height": "30px"}); 4200 4416 var listContacts = DataLayer.render("../prototype/modules/mail/templates/listContacts.ejs", item); … … 4209 4425 autocomplete.catcomplete( "close" ); 4210 4426 canMakeBox = false; 4211 $.Zebra_Dialog('Deseja remover <b>'+(item.name ? item.name+" - " : "")+ item.mail+'</b>?', {4427 $.Zebra_Dialog('Deseja remover <b>'+(item.name ? (item.name.length <=30 ? item.name: item.name.substr(0,27)+"...")+" - " : "")+ item.mail+'</b>?', { 4212 4428 'type': 'question', 4213 4429 'custom_class': (is_ie ? 'configure-zebra-dialog' : ''), … … 4236 4452 click = true; 4237 4453 fastSearch = true; 4238 canMakeBox = false; 4454 canMakeBox = false; 4239 4455 if(!$(":focus").hasClass("new-message-input")) 4240 emQuickSearch(($(this).parents("tr:first").find("textarea").val() ? $(this).parents("tr:first").find("textarea").val() : input_search), "."+$(this).parents("tr:first").attr('class').split("-")[0], ID, undefined, true); 4456 emQuickSearch(($(this).parents("tr:first").find("textarea").val() ? $(this).parents("tr:first").find("textarea").val() : input_search), "."+$(this).parents("tr:first").attr('class').split("-")[0], ID, undefined, true); 4241 4457 }); 4242 4458 } … … 4336 4552 show_hide(content.find(".cc-tr"), $(this)); 4337 4553 change_text($(this).find(".ui-button-text"), get_lang("Add CC"), get_lang('Remove CC')); 4338 }); 4554 }) 4555 //Botão Responder a 4556 .end().filter(".reply-to-button").click(function(){ 4557 show_hide(content.find(".reply-to-tr"), $(this)); 4558 }); 4339 4559 4340 4560 //BOTAO ENVIAR … … 4401 4621 content.find(".attachment td").filter(".value").prepend(DataLayer.render("../prototype/modules/mail/templates/attachment.ejs", {ID:ID})); 4402 4622 var fileUploadMSG = $('#fileupload_msg'+ID); 4403 var maxAttachmentSize = (preferences.max_attachment_size !== "" && preferences.max_attachment_size != 0) ? (parseInt(preferences.max_attachment_size.replace('M', '')) * 1048576 ) : 41943040; 4623 var maxAttachmentSize = (preferences.max_attachment_size !== "" && preferences.max_attachment_size != 0) ? (parseInt(preferences.max_attachment_size.replace('M', '')) * 1048576 ) : 41943040; 4404 4624 4625 content.find(".new-msg-head-data").scroll(function(){ 4626 $.each(fileUploadMSG.find(".attachments-list .att-box"), function(index, value){ 4627 $(this).qtip("api").updatePosition(); 4628 $(this).qtip("api").updateWidth(); 4629 }); 4630 }); 4631 $("#fileupload_msg"+ID+"_droopzone").click(function(){ 4632 $(this).removeClass('in hover'); 4633 $(this).hide(); 4634 $(this).prev().show(); 4635 }); 4405 4636 fileUploadMSG.find(".button").button().filter(".fileinput-button").find(".ui-button-text").css("margin-top", "2px").find("input:file").fileupload({ 4406 //singleFileUploads : true, 4637 //singleFileUploads : true,fileUploadMSG 4407 4638 sequentialUploads: true, 4408 4639 type: 'post', … … 4410 4641 url: "../prototype/post.php", 4411 4642 forceIframeTransport: false, 4412 dropZone : fileUploadMSG,4643 dropZone : $("#fileupload_msg"+ID+"_droopzone"), 4413 4644 formData: function(form) { 4414 4645 return [ … … 4428 4659 }, 4429 4660 add: function (e, data) { 4661 var iterator = idattachbycontent; 4430 4662 if(!maxAttachmentSize || data.files[0].size < maxAttachmentSize || is_ie) { 4431 4663 setTimeout(function() { 4432 4664 $('#attDisposition'+ID).val('attachment'); 4433 data.submit(); 4434 }, 3000); 4435 } 4665 jqXHR[iterator] = data.submit(); 4666 }, 100); 4667 } 4668 fileUploadMSG.find(' .attachments-list').show(); 4436 4669 $.each(data.files, function (index, file) { 4437 4670 var attach = {}; 4438 4671 attach.fullFileName = file.name; 4439 4672 attach.fileName = file.name; 4440 if(file.name.length > 50)4441 attach.fileName = file.name.substr(0, 32) + " ... " + file.name.substr(file.name.length-9, file.name.length);4673 if(file.name.length > 20) 4674 attach.fileName = file.name.substr(0, 17) + " ... " + file.name.substr(file.name.length-6, file.name.length); 4442 4675 attach.fileSize = formatBytes(file.size); 4443 4676 if(maxAttachmentSize && file.size > maxAttachmentSize) 4444 attach.error = 'Tamanho de arquivo nao permitido!!' 4445 4446 var upload = $(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs", {file : attach})); 4447 upload.find('.button.close').button({ 4448 icons: { 4449 primary: "ui-icon-close" 4450 }, 4451 text: false 4452 }).click(function(){ 4677 attach.error = 'Tamanho de arquivo nao permitido' 4678 else 4679 attach.error = true; 4680 var upload = $(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs", {file : attach})); 4681 upload.find('.att-box-delete').click(function(){ 4453 4682 var idAttach = $(this).parent().find('input[name="fileId[]"]').val(); 4454 4683 fileUploadMSG.find(' .attachments-list').find('input[value="'+idAttach+'"]').remove(); 4455 delAttachment(ID, idAttach) 4684 delAttachment(ID, idAttach); 4685 $(this).parent().qtip("destroy"); 4456 4686 $(this).parent().remove(); 4687 if(!fileUploadMSG.find(' .attachments-list').find(".att-box").length){ 4688 fileUploadMSG.find(' .attachments-list').hide(); 4689 } 4690 if(jqXHR){ 4691 jqXHR[iterator].abort(); 4692 } 4457 4693 }); 4458 4459 fileUploadMSG.find('.attachments-list').append(upload); 4694 4695 fileUploadMSG.find('.attachments-list').append(upload); 4696 4697 fileUploadMSG.find('.attachments-list .att-box:last').qtip({ 4698 content: DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist_tooltip.ejs", {attach : attach}), 4699 position: { 4700 corner: { 4701 tooltip: 'bottomMiddle', 4702 target: 'topMiddle' 4703 }, 4704 adjust: { 4705 resize: true, 4706 scroll: true, 4707 screen: true 4708 } 4709 }, 4710 show: { 4711 when: 'mouseover', // Don't specify a show event 4712 ready: false // Show the tooltip when ready 4713 }, 4714 hide: 'mouseout', // Don't specify a hide event 4715 style: { 4716 border: { 4717 width: 1, 4718 radius: 5 4719 }, 4720 width: { 4721 min: 75, 4722 max : 1000 4723 }, 4724 padding: 3, 4725 textAlign: 'left', 4726 tip: true, // Give it a speech bubble tip with automatic corner detection 4727 name: (typeof(attach.error) == 'boolean' ? 'light' : 'red') // Style it according to the preset 'cream' style 4728 } 4729 })/*.progressbar({ 4730 value : 1 4731 })*/; 4732 4733 fileUploadMSG.find('.attachments-list .att-box:last').css('width', fileUploadMSG.find('.attachments-list .att-box:last div:first').css('width')); 4460 4734 4461 4735 if(!maxAttachmentSize || file.size < maxAttachmentSize){ … … 4466 4740 }else 4467 4741 fileUploadMSG.find(' .fileinput-button.new').removeClass('new'); 4742 4743 idattachbycontent++ 4468 4744 }); 4745 4469 4746 }, 4470 4747 done: function(e, data){ 4748 var attach_box = fileUploadMSG.find('.att-box-loading:first').parents('.att-box'); 4749 var attach = { 4750 fullFileName : attach_box.find(".att-box-fullfilename").text(), 4751 fileSize : attach_box.find(".att-box-filesize").text(), 4752 error : false 4753 }; 4471 4754 if(!!data.result && data.result != "[]" ){ 4472 4755 var newAttach = data.result; 4473 if(!newAttach.mailAttachment.error){ 4474 if(newAttach.rollback !== false) 4475 { 4476 fileUploadMSG.find('.in-progress:first').parents('p').append('<input type="hidden" name="fileId[]" value="'+newAttach['mailAttachment'][0][0].id+'"/>').find('.status-upload').addClass('ui-icon ui-icon-check'); 4477 addAttachment(ID,newAttach['mailAttachment'][0][0].id); 4478 } 4479 else 4480 fileUploadMSG.find('.in-progress:first').parents('p').find('.status-upload').append('Erro ao fazer upload!').addClass('message-attach-error'); 4481 }else{ 4482 fileUploadMSG.find('.in-progress:first').parents('p').find('.status-upload').append(newAttach.mailAttachment.error).addClass('message-attach-error'); 4483 } 4484 4756 if(!newAttach.mailAttachment.error || newAttach.rollback !== false){ 4757 attach_box.append('<input type="hidden" name="fileId[]" value="'+newAttach['mailAttachment'][0][0].id+'"/>'); 4758 addAttachment(ID,newAttach['mailAttachment'][0][0].id); 4759 }else { 4760 attach_box.addClass('invalid-email-box'); 4761 attach.error = newAttach.mailAttachment.error ? newAttach.mailAttachment.error : 'Erro ao anexar...';//.append(newAttach.mailAttachment.error).addClass('message-attach-error'); 4762 } 4485 4763 }else { 4486 fileUploadMSG.find(' .progress.on-complete:first').parents('p').find('.status-upload').append('Erro ao fazer upload!').addClass('message-attach-error'); 4487 } 4488 fileUploadMSG.find(' .in-progress:first').remove(); 4489 } 4764 attach_box.addClass('invalid-email-box');//.qtip("api").updateContent("oi", true); 4765 attach.error = 'Erro ao anexar...'; 4766 } 4767 attach_box.qtip("destroy").qtip({ 4768 content: DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist_tooltip.ejs", {attach : attach}), 4769 position: { 4770 corner: { 4771 tooltip: 'bottomMiddle', 4772 target: 'topMiddle' 4773 }, 4774 adjust: { 4775 resize: true, 4776 scroll: true, 4777 screen: true 4778 } 4779 }, 4780 show: { 4781 when: 'mouseover', // Don't specify a show event 4782 ready: false // Show the tooltip when ready 4783 }, 4784 hide: 'mouseout', // Don't specify a hide event 4785 style: { 4786 border: { 4787 width: 1, 4788 radius: 5 4789 }, 4790 width: { 4791 min: 75, 4792 max : 1000 4793 }, 4794 padding: 3, 4795 textAlign: 'left', 4796 tip: true, // Give it a speech bubble tip with automatic corner detection 4797 name: (attach.error == false ? 'blue' : 'red')// Style it according to the preset 'cream' style 4798 } 4799 });/* 4800 fileUploadMSG.find(".att-box-loading:first").parents(".att-box").removeAttr("style").progressbar("destroy").find("div:first").removeAttr("style"); 4801 */ 4802 fileUploadMSG.find('.att-box-loading:first').remove(); 4803 }/*, 4804 progress : function(e, data){ 4805 var progress = parseInt(data.loaded / data.total * 100, 10); 4806 fileUploadMSG.find('.att-box-loading:first').parents(".att-box:first").progressbar({ 4807 value : progress 4808 }); 4809 }*/ 4490 4810 }).css({ 4491 4811 "height" : "20px", … … 4503 4823 modal: true, 4504 4824 closeOnEscape:true, 4505 close:function(event, ui) 4506 { 4507 event.stopPropagation(); 4508 if(typeof(shortcut) != 'undefined') shortcut.disabled = false; 4509 }, 4510 open: function(event, ui) 4511 { 4512 if(typeof(shortcut) != 'undefined') shortcut.disabled = true; 4513 }, 4825 close:function(event, ui) 4826 { 4827 event.stopPropagation(); 4828 if(typeof(shortcut) != 'undefined') shortcut.disabled = false; 4829 }, 4830 open: function(event, ui) 4831 { 4832 if(typeof(shortcut) != 'undefined') shortcut.disabled = true; 4833 }, 4514 4834 autoOpen:false 4835 }); 4836 jQuery.getScript("../prototype/modules/attach_message/attach_message.js", function(){ 4837 jQuery('#message-attach-dialog').dialog('open'); 4838 jQuery('#message-attach-attach-btn').unbind('click'); 4839 jQuery('#message-attach-attach-btn').click(function(event){ 4840 jQuery.each(selectedMessages, function(folder_name, messages) { 4841 jQuery.each(selectedMessages[folder_name], function(message_number, message) { 4842 if (message) { 4843 fileUploadMSG.find(' .attachments-list').show(); 4844 var att = new Object(); 4845 att.folder = folder_name; 4846 att.uid = message_number; 4847 att.type = 'imapMSG'; 4848 att.name = Base64.encode(onceOpenedMessages[folder_name][message_number].subject + '.eml'); 4849 var idATT = JSON.stringify(att); 4850 addAttachment( ID , idATT); 4851 var attach = {}; 4852 attach.fileName = onceOpenedMessages[folder_name][message_number].subject + '.eml'; 4853 attach.fullFileName = onceOpenedMessages[folder_name][message_number].subject + '.eml'; 4854 if(attach.fileName.length > 20) 4855 attach.fileName = attach.fileName.substr(0, 17) + "... " + attach.fileName.substr(attach.fileName.length-9, attach.fileName.length); 4856 4857 attach.error = false; 4858 attach.OK = true; 4859 attach.fileSize = formatBytes(onceOpenedMessages[folder_name][message_number].size); 4860 var upload = $(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs", {file : attach})); 4861 upload.find('.att-box-loading').remove(); 4862 upload.append('<input type="hidden" name="fileId[]" value=\''+idATT+'\'/>'); 4863 4864 upload.find('.att-box-delete').click(function(){ 4865 var idAttach = $(this).parent().find('input[name="fileId[]"]').val(); 4866 fileUploadMSG.find(' .attachments-list').find('input[value="'+idAttach+'"]').remove(); 4867 delAttachment(ID,idAttach); 4868 $(this).parent().qtip("destroy"); 4869 $(this).parent().remove(); 4870 if(!fileUploadMSG.find(' .attachments-list').find(".att-box").length){ 4871 fileUploadMSG.find(' .attachments-list').hide(); 4872 } 4873 }); 4874 4875 fileUploadMSG.find('.attachments-list').append(upload); 4876 4877 upload.find('.att-box-loading').remove(); 4878 4879 fileUploadMSG.find('.attachments-list .att-box:last').qtip({ 4880 content: DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist_tooltip.ejs", {attach : attach}), 4881 position: { 4882 corner: { 4883 tooltip: 'bottomMiddle', 4884 target: 'topMiddle' 4885 }, 4886 adjust: { 4887 resize: true, 4888 scroll: true 4889 } 4890 }, 4891 show: { 4892 when: 'mouseover', // Don't specify a show event 4893 ready: false // Show the tooltip when ready 4894 }, 4895 hide: 'mouseout', // Don't specify a hide event 4896 style: { 4897 border: { 4898 width: 1, 4899 radius: 5 4900 }, 4901 width: { 4902 min: 75, 4903 max : 1000 4904 }, 4905 padding: 5, 4906 textAlign: 'center', 4907 tip: true, // Give it a speech bubble tip with automatic corner detection 4908 name: 'blue' // Style it according to the preset 'cream' style 4909 } 4910 }); 4911 } 4912 }); 4913 }); 4914 jQuery('#message-attach-dialog').dialog('close'); 4515 4915 }); 4516 4517 4518 jQuery.getScript("../prototype/modules/attach_message/attach_message.js", function(){ 4519 jQuery('#message-attach-dialog').dialog('open'); 4520 jQuery('#message-attach-attach-btn').unbind('click'); 4521 jQuery('#message-attach-attach-btn').click(function(event){ 4522 jQuery.each(selectedMessages, function(folder_name, messages) { 4523 jQuery.each(selectedMessages[folder_name], function(message_number, message) { 4524 if (message) { 4525 var att = new Object(); 4526 att.folder = folder_name; 4527 att.uid = message_number; 4528 att.type = 'imapMSG'; 4529 att.name = Base64.encode(onceOpenedMessages[folder_name][message_number].subject + '.eml'); 4530 var idATT = JSON.stringify(att); 4531 addAttachment( ID , idATT); 4532 var attach = {}; 4533 attach.fileName = onceOpenedMessages[folder_name][message_number].subject + '.eml'; 4534 if(attach.fileName.length > 45) 4535 attach.fileName = attach.fileName.substr(0, 32) + " ... " + attach.fileName.substr(attach.fileName.length-9, attach.fileName.length); 4536 4537 attach.fileSize = formatBytes(onceOpenedMessages[folder_name][message_number].size); 4538 var upload = $(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs", {file : attach})); 4539 upload.find('.status-upload').addClass('ui-icon ui-icon-check'); 4540 upload.find('.in-progress').remove(); 4541 upload.append('<input type="hidden" name="fileId[]" value=\''+idATT+'\'/>'); 4542 4543 upload.find('.button.close').button({ 4544 icons: { 4545 primary: "ui-icon-close" 4546 }, 4547 text: false 4548 }).click(function(){ 4549 var idAttach = $(this).parents("li:first").find('input[name="fileId[]"]').val(); 4550 fileUploadMSG.find(' .attachments-list').find('input[value="'+idAttach+'"]'); 4551 delAttachment(ID,idAttach); 4552 $(this).parent().remove(); 4553 }); 4554 4555 fileUploadMSG.find('.attachments-list').append(upload); 4556 } 4557 }); 4916 jQuery('#message-attach-cancel-btn').click(function(event){ 4917 jQuery('#message-attach-dialog').dialog('close'); 4918 }); 4919 }); 4920 }); 4921 $(document).bind('drop dragover', function (e) { 4922 e.preventDefault(); 4923 }); 4924 //DRAG and DROP DE ARQUIVOS NÃO FUNCIONA NO IE 4925 if(!is_ie){ 4926 $("body").bind('dragenter', function (e) { 4927 var dropZone = $("#fileupload_msg"+ID+"_droopzone"); 4928 var timeout = window.dropZoneTimeout; 4929 dropZone.show(); 4930 dropZone.prev().hide(); 4931 if (!timeout) { 4932 dropZone.addClass('in'); 4933 } else { 4934 clearTimeout(timeout); 4935 } 4936 if (e.target === dropZone[0]) { 4937 dropZone.addClass('hover'); 4938 } else { 4939 dropZone.removeClass('hover'); 4940 } 4941 $(window).unbind('dragleave'); 4942 window.dropZoneTimeout = setTimeout(function () { 4943 $(window).bind('dragleave', function (e) { 4944 window.dropZoneTimeout = null; 4945 dropZone.removeClass('in hover'); 4946 dropZone.hide(); 4947 dropZone.prev().show(); 4558 4948 }); 4559 4560 jQuery('#message-attach-dialog').dialog('close'); 4561 4562 }); 4563 jQuery('#message-attach-cancel-btn').click(function(event){ 4564 jQuery('#message-attach-dialog').dialog('close'); 4565 }); 4949 }, 1); 4950 }).bind('dragleave', function (e) { 4951 var dropZone = $("#fileupload_msg"+ID+"_droopzone"); 4952 window.dropZoneTimeout = setTimeout(function () { 4953 $(window).bind('dragleave', function (e) { 4954 window.dropZoneTimeout = null; 4955 dropZone.removeClass('in hover'); 4956 dropZone.hide(); 4957 dropZone.prev().show(); 4958 }); 4959 }, 1); 4960 }).bind('drop', function(e){ 4961 var dropZone = $("#fileupload_msg"+ID+"_droopzone"); 4962 window.dropZoneTimeout = null; 4963 dropZone.removeClass('in hover'); 4964 dropZone.hide(); 4965 dropZone.prev().show(); 4566 4966 }); 4567 } );4967 } 4568 4968 return ID; 4569 4969 } … … 4672 5072 add_className(all_messages[begin], 'selected_msg'); 4673 5073 Element(_tab_prefix + "check_box_message_" + _msg_id).checked = true; 5074 updateSelectedMsgs(true,_msg_id); 4674 5075 } 4675 5076 } … … 5006 5407 }); 5007 5408 onclick = onclick.substr(0, onclick.length-1); 5008 5409 5009 5410 var to_addybook_add = "<SPAN id='insert_plugin_"+idx_cc+"_"+ID+"'>"; 5010 5411 to_addybook_add += addrs; 5011 5012 if(!!!notValidUser) 5013 { 5014 var sm_envelope_img1 = '<img style="cursor:'+ (is_ie ? 'hand' : 'pointer') +'" title="' + get_lang("Add Contact") + 5015 '" onclick="ccQuickAddOne.showList(['+onclick+'])" src="./templates/'+template+'/images/user_card.png">'; 5016 to_addybook_add += sm_envelope_img1; 5017 } 5412 5413 if(!!!notValidUser) 5414 { 5415 var sm_envelope_img1 = '<img style="cursor:'+ (is_ie ? 'hand' : 'pointer') +'" title="' + get_lang("Add Contact") + 5416 '" onclick="ccQuickAddOne.showList(['+onclick+'])" src="./templates/'+template+'/images/user_card.png">'; 5417 to_addybook_add += sm_envelope_img1; 5418 } 5018 5419 5019 5420
Note: See TracChangeset
for help on using the changeset viewer.