Changeset 5592 for trunk/expressoMail1_2
- Timestamp:
- 03/01/12 03:35:01 (12 years ago)
- Location:
- trunk/expressoMail1_2
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/js/draw_api.js
r5588 r5592 2884 2884 var endEvent = function(date){ 2885 2885 if(!!User.preferences.defaultCalendar){ 2886 return parseInt(date.getTime()) +2887 (!!Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration ?2886 return new Date(parseInt(date.getTime()) + 2887 (!!Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration ? 2888 2888 (Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration * 60000) : 2889 2889 (User.preferences.defaultDuration * 60000) 2890 ) ;2890 )); 2891 2891 }else 2892 return parseInt(date.getTime()) + (User.preferences.defaultDuration * 60000);2892 return new Date(parseInt(date.getTime()) + (User.preferences.defaultDuration * 60000)); 2893 2893 }; 2894 2895 var emails = $("#to_values_"+ID).val().split(','); 2896 2897 2898 //Normalização dos dados evita ter que reemplementar toda as funcionalidades do calendar 2894 2899 eventDetails({ 2900 2901 acl: {inviteGuests: true, organization: true ,participationRequired: false, read: true, write: true}, 2902 alarms: [], 2903 allDay: false, 2904 attachments: [], 2905 attendee: '',//TODOOOOOO, 2906 calendar: User.preferences.defaultCalendar ? User.preferences.defaultCalendar : Calendar.calendars[0], 2907 calendars: Calendar.calendars, 2908 category: '', 2909 class: '1', 2910 delegatedFrom: {}, 2911 endDate: startEvent.toString(User.preferences.dateFormat), 2912 startDate: endEvent(startEvent).toString(User.preferences.dateFormat), 2913 startHour: startEvent.toString(User.preferences.hourFormat), 2914 endHour: endEvent(startEvent).toString(User.preferences.hourFormat), 2915 timezone: User.preferences.defaultCalendar ? Calendar.calendarOf[User.preferences.defaultCalendar].timezone : User.preferences.timezone, 2895 2916 summary : $("#subject_"+ID).text(), 2896 2917 description : $("#body_" + ID).text(), 2897 2918 startTime: startEvent.getTime(), 2898 endTime: endEvent(startEvent) 2899 }, true, path); 2900 2901 //TimePicker Não está funcionando corretamente, o motivo ainda é desconhecido. 2902 /* 2903 $(".new-event-win").find('input.time').timepicker({ 2904 closeText: 'Ok', 2905 hourGrid: 4, 2906 minuteGrid: 10, 2907 //ampm : ((User.preferences.hourFormat.length > 5) ? true: false), 2908 timeFormat: "hh:mm tt", 2909 onSelect: function (selectedDateTime){ 2910 if(!(User.preferences.hourFormat.length == 5)) 2911 $(this).val(selectedDateTime.replace(/[\.]/gi, "")); 2912 }, 2913 onClose : function (selectedDateTime){ 2914 if(!(User.preferences.hourFormat.length == 5)) 2915 $(this).val(selectedDateTime.replace(/[\.]/gi, "")); 2916 } 2917 }); 2918 */ 2919 2920 var emails = $("#to_values_"+ID).val(); 2921 emails = emails.split(","); 2922 var blkAddAtendee = UI.dialogs.addEvent.find('#calendar_addevent_details6'); 2923 var onShowToolTip = function(arg0) { 2924 $('.qtip-active .button.close').button({ 2925 icons: {primary: "ui-icon-close"}, 2926 text: false 2927 }); 2928 $('.qtip-active .button').button() 2929 .filter('.save').click(function(event, ui) { 2930 if (saveContact()) { 2931 lastEditAttendeeToolTip.qtip("destroy"); 2932 } else { 2933 return false; 2934 } 2935 }).end() 2936 .filter('.cancel').click(function(event, ui) { 2937 lastEditAttendeeToolTip.qtip("destroy"); 2938 }) 2939 2940 /** 2941 * Trata o ENTER no campo da tooltip, equivalente a salvar 2942 * o novo convidado. 2943 */ 2944 $('.qtip-active input').keydown(function(event) { 2945 if (event.keyCode == '13') { 2946 if (saveContact()) { 2947 lastEditAttendeeToolTip.qtip("destroy"); 2948 } 2949 2950 lastEditAttendeeToolTip.qtip("destroy"); 2951 event.preventDefault(); 2952 } 2953 }) 2954 .filter('[name="name"]').Watermark("informe o nome do contato").end() 2955 .filter('[name="mail"]').Watermark("informe o email do contato"); 2956 } 2919 endTime: endEvent(startEvent), 2920 timezones: Timezone.timezones, 2921 me: {name: User.me.name, mail: User.me.mail, acl: 'rowi', status: '1', delegatedFrom: '0', id: User.me.id}, 2922 organizer: {name: User.me.name, mail: User.me.mail, acl: 'rowi', status: '1', delegatedFrom: '0' , id: User.me.id}, 2923 statusParticipants: {accepted: 0, cancelled: 0, tentative: 0, unanswered:emails.length}, 2924 location: '', 2925 attendee: $.map(emails, function( mail ){ 2926 2927 var decoded = Encoder.htmlDecode(mail); 2928 var newAttendeeName = ""; 2929 2930 var user = DataLayer.get('user', ["=", "mail", decoded.match(/<([^<]*)>[\s]*$/) ? decoded.match(/<([^<]*)>[\s]*$/)[1].toLowerCase() : decoded], true); 2931 2932 if( $.type(user) == "array") 2933 user = user[0]; 2934 2935 if(!user) 2936 user = {name : decoded.match(/"([^"]*)"/)[1] , mail : decoded.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}\])/)[1]}; 2937 2938 if(User.me.mail == user.mail) 2939 return(null); 2940 2941 user.isExternal = (!!user && !(!!user.isExternal)) ? 0 : 1; 2942 2943 return DataLayer.merge({ 2944 name: user.name, 2945 mail: user.mail, 2946 acl: 'r', 2947 delegatedFrom: '0', 2948 status: '4' 2949 }, !!user.id ? {id : DataLayer.put('participant', {user: user.id, isExternal: user.isExternal}) } : {id: DataLayer.put('participant', {user: user})}); 2950 2951 }) 2957 2952 2958 $.each(emails, function(index, value) { 2959 var decoded = Encoder.htmlDecode(value); 2960 var newAttendeeName = ""; 2961 if(decoded.match(/<([^<]*)>[\s]*$/)){ 2962 var user = DataLayer.get('user', ["=", "mail", decoded.match(/<([^<]*)>[\s]*$/)[1].toLowerCase()], true); 2963 if(!(!!user)){ 2964 newAttendeeName = decoded.match(/"([^"]*)"/)[1]; 2965 var newAttendeeEmail = decoded.match(/<([^<]*)>[\s]*$/)[1]; 2966 } 2967 } 2968 else{ 2969 var user = DataLayer.get('user', ["=", "mail", decoded], true); 2970 if(!(!!user)){ 2971 if(decoded.match(/^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/)) 2972 var newAttendeeEmail = decoded; 2973 else{ 2974 var newAttendeeEmail = ""; 2975 newAttendeeName = decoded; 2976 } 2977 } 2978 } 2979 2980 var isExternal = (!!user && !(!!user.isExternal)) ? 0 : 1; 2981 var add = false; 2982 if(user){ 2983 if(!(blkAddAtendee.find('label.mail[title="' + user[0].mail + '"]').length)){ 2984 user[0].id = DataLayer.put('participant', {user: user[0].id, isExternal: isExternal}); 2985 blkAddAtendee.find('dd.attendee-list ul.attendee-list').append( 2986 DataLayer.render(path+'templates/participants_add_itemlist.ejs', user) 2987 ) 2988 .find('.button.close').addClass('small').button({text:false, icons:{primary:'ui-icon-close'}}).click(function() { 2989 DataLayer.remove('participant', $(this).parent().find('[type=checkbox]').val()); 2990 $(this).parent().remove(); 2991 }).end() 2992 .scrollTo('max'); 2993 add = true; 2994 } 2995 }else{ 2996 userId = DataLayer.put('user', {name: newAttendeeName, mail: newAttendeeEmail, isExternal: isExternal}); 2997 newAttendeeId = DataLayer.put('participant', {user: userId, isExternal: isExternal}); 2998 2999 blkAddAtendee.find('dd.attendee-list ul.attendee-list').append( 3000 DataLayer.render(path+'templates/participants_add_itemlist.ejs', [{id:newAttendeeId, name: newAttendeeName, mail: newAttendeeEmail, isExternal: 1}]) 3001 ).find('.button.close').addClass('small').button({text:false, icons:{primary:'ui-icon-close'}}).click(function() { 3002 DataLayer.remove('participant', $(this).parent().find('[type=checkbox]').val()); 3003 $(this).parent().remove(); 3004 }).end() 3005 .scrollTo('max'); 3006 add = true; 3007 } 3008 if(add){ 3009 lastEditAttendeeToolTip = blkAddAtendee.find('dd.attendee-list li:last'); 3010 lastEditAttendeeToolTip.qtip({ 3011 show: {ready: false, solo: true, when: {event: 'click'}}, 3012 hide: false, 3013 content: { 3014 text: $('<div></div>').html( DataLayer.render( path+'templates/attendee_quick_edit.ejs', {attendee:{name:( (!!user ? (!!user[0] ? (!!user[0].name ? user[0].name : newAttendeeName): newAttendeeName) : newAttendeeName)), mail:(!!user ? (!!user[0] ? (!!user[0].mail ? user[0].mail : newAttendeeEmail): newAttendeeEmail) : newAttendeeEmail)}} ) ), 3015 title: { 3016 text:'Detalhes do participante', 3017 button: '<a class="button close" href="#">close</a>' 3018 } 3019 }, 3020 style: {name: 'blue', tip: {corner: 'leftMiddle'}, border: {width: 4, radius: 8}, width: {min: 230, max:230}}, 3021 position: { 3022 corner: { 3023 target: 'rightMiddle', 3024 tooltip: 'leftMiddle' 3025 }, 3026 adjust: {x:0, y:0} 3027 } 3028 }); 3029 lastEditAttendeeToolTip.qtip("api").onShow = onShowToolTip; 3030 } 3031 }); 2953 }, true, path, true); 3032 2954 } 3033 2955 subject.appendChild(new_event_logo); -
trunk/expressoMail1_2/templates/default/expressoMail_reset.css
r5389 r5592 58 58 quotes: "" ""; 59 59 } 60 60 .new-event-win.active .mail.name-special, .new-event-win.active .name.name-special{ 61 padding: 0 0 0 35px; 62 } 63 64 .new-event-win.active .add-attendee-search.search-field { 65 width: 249px; 66 } 67 68 .new-event-win.active #calendar_addevent_details4 { 69 margin: 10px 0 0 0; 70 } 71 72 .new-event-win.active input{ 73 color: #000; 74 } 75 76 .new-event-win.active #calendar_addevent_details5 { 77 margin: 10px 0 11px 0; 78 } 61 79 62 80 .new-event-win.active select {
Note: See TracChangeset
for help on using the changeset viewer.