Changeset 5592 for trunk/expressoMail1_2


Ignore:
Timestamp:
03/01/12 03:35:01 (12 years ago)
Author:
acoutinho
Message:

Ticket #2434 - Implementacao de compartilhamento de agendas (agendas usuario e agendas publicas)

Location:
trunk/expressoMail1_2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/js/draw_api.js

    r5588 r5592  
    28842884                        var endEvent = function(date){  
    28852885                                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 ?   
    28882888                                                        (Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration * 60000) : 
    28892889                                                        (User.preferences.defaultDuration * 60000) 
    2890                                                 ); 
     2890                                                )); 
    28912891                                }else  
    2892                                         return parseInt(date.getTime()) + (User.preferences.defaultDuration * 60000);  
     2892                                        return new Date(parseInt(date.getTime()) + (User.preferences.defaultDuration * 60000));  
    28932893                        };        
     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 
    28942899                        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, 
    28952916                                        summary : $("#subject_"+ID).text(), 
    28962917                                        description : $("#body_" + ID).text(), 
    28972918                                        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                                        })       
    29572952                                         
    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); 
    30322954                } 
    30332955                subject.appendChild(new_event_logo); 
  • trunk/expressoMail1_2/templates/default/expressoMail_reset.css

    r5389 r5592  
    5858        quotes: "" ""; 
    5959} 
    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 } 
    6179 
    6280.new-event-win.active select { 
Note: See TracChangeset for help on using the changeset viewer.