Ignore:
Timestamp:
08/08/12 17:27:35 (12 years ago)
Author:
thiago
Message:

Ticket #2966 - Implementação da tela tarefas no módulo expressoMail.

Location:
sandbox/2.4.2-expresso1/expressoMail1_2/js
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • sandbox/2.4.2-expresso1/expressoMail1_2/js/draw_api.js

    r6934 r6965  
    29942994                }); 
    29952995                new_task_logo.onclick = function(){ 
    2996                         alert(1); 
     2996                import_implements_calendar(); 
     2997                 
     2998                 
     2999                        DataLayer.dispatchPath = "../prototype/"; 
     3000                        var path = "../prototype/modules/calendar/"; 
     3001                        taskDetails(decodeCreateSchedulable('task', ID), true, path, true); 
    29973002                } 
    29983003                 
     
    30143019                        DataLayer.dispatchPath = "../prototype/"; 
    30153020                        var path = "../prototype/modules/calendar/"; 
    3016                          
    3017                         var startEvent = new Date();   
    3018                         if(startEvent.toString('mm') < 30)  
    3019                                 startEvent.add({minutes: (30 - parseInt(startEvent.toString('mm')))});  
    3020                         else  
    3021                                 startEvent.add({hours: 1, minutes: '-'+startEvent.toString('mm')});  
    3022                         var endEvent = function(date){  
    3023                                 if(!!User.preferences.defaultCalendar){  
    3024                                         return  new Date(parseInt(date.getTime()) +  
    3025                                                     (!!Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration ?   
    3026                                                         (Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration * 60000) : 
    3027                                                         (User.preferences.defaultDuration * 60000) 
    3028                                                 )); 
    3029                                 }else  
    3030                                         return new Date(parseInt(date.getTime()) + (User.preferences.defaultDuration * 60000));  
    3031                         };        
    3032  
    3033                         var emails = $("#to_values_"+ID).val().split(','); 
    3034                          
    3035                          
    3036                         //Normalização dos dados evita ter que reemplementar toda as funcionalidades do calendar 
    3037                         eventDetails({  
    3038                                          
    3039                                         acl: {inviteGuests: true, organization: true ,participationRequired: false, read: true, write: true}, 
    3040                                         alarms: [], 
    3041                                         allDay: false, 
    3042                                         attachments: [], 
    3043                                         isAttendee: true, 
    3044                                         attendee: '',//TODOOOOOO, 
    3045                                         calendar: User.preferences.defaultCalendar ? User.preferences.defaultCalendar : Calendar.calendars[0], 
    3046                                         calendars: Calendar.calendars, 
    3047                                         category: '', 
    3048                                         'class': '1', 
    3049                                         delegatedFrom: {}, 
    3050                                         endDate: startEvent.toString(User.preferences.dateFormat), 
    3051                                         startDate: endEvent(startEvent).toString(User.preferences.dateFormat), 
    3052                                         startHour: startEvent.toString(User.preferences.hourFormat), 
    3053                                         endHour: endEvent(startEvent).toString(User.preferences.hourFormat), 
    3054                                         timezone: User.preferences.defaultCalendar ? Calendar.signatureOf[User.preferences.defaultCalendar].calendar.timezone : User.preferences.timezone, 
    3055                                         summary : $("#subject_"+ID).text(), 
    3056                                         description : $("#body_" + ID).text(), 
    3057                                         startTime: startEvent.getTime(), 
    3058                                         endTime: endEvent(startEvent), 
    3059                                         timezones: Timezone.timezones, 
    3060                                         me: {name: User.me.name, mail: User.me.mail, acl: 'rowi', status: '1', delegatedFrom: '0', id: User.me.id}, 
    3061                                         organizer: {name: User.me.name, mail: User.me.mail, acl: 'rowi', status: '1', delegatedFrom: '0' , id: User.me.id}, 
    3062                                         statusParticipants: {accepted: 0, cancelled: 0, tentative: 0, unanswered:emails.length}, 
    3063                                         location: '', 
    3064                                         attendee: $.map(emails, function( mail ){                        
    3065                                                 var contact = false; 
    3066                                                 var decoded =  Encoder.htmlDecode(mail); 
    3067                                                 var newAttendeeName = ""; 
    3068  
    3069                                                 var name = decoded.match(/"([^"]*)"/) ? decoded.match(/"([^"]*)"/)[1] : ''; 
    3070                                                 var mail = decoded.match(/<([^<]*)>[\s]*$/) ? decoded.match(/<([^<]*)>[\s]*$/)[1].toLowerCase() : decoded;  
    3071  
    3072  
    3073                                                 var user = DataLayer.get('user', ["=", "mail", mail], true); 
    3074                                                  
    3075                                                 if( $.type(user) == "array") 
    3076                                                     user = user[0]; 
    3077  
    3078                                                 if(user != ''){ 
    3079                                                     //user = {name : name , mail : mail}; 
    3080                                                     if(User.me.mail == user.mail) 
    3081                                                             return(null); 
    3082                                                     user.isExternal = (!!user && !(!!user.isExternal)) ? 0 : 1; 
    3083  
    3084                                                     return  DataLayer.merge({ 
    3085                                                             name: user.name, 
    3086                                                             mail: user.mail, 
    3087                                                             acl:  'r', 
    3088                                                             delegatedFrom: '0', 
    3089                                                             status: '4', 
    3090                                                             isExternal: user.isExternal 
    3091                                                     }, !!user.id ? {id : DataLayer.put('participant', {user: user.id, isExternal: user.isExternal})} : {id: DataLayer.put('participant', {user: user})});  
    3092                                                 }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}\])/)){ 
    3093                                                      
    3094                                                     var userId = DataLayer.put('user', { 
    3095                                                         name: name,  
    3096                                                         mail: mail,  
    3097                                                         isExternal: '1' 
    3098                                                     }); 
    3099                                                     var newAttendeeId = DataLayer.put('participant', { 
    3100                                                         user: userId,  
    3101                                                         isExternal: '1' 
    3102                                                     }); 
    3103  
    3104                                                     return  { 
    3105                                                             id: newAttendeeId, 
    3106                                                             name: name, 
    3107                                                             mail: mail, 
    3108                                                             acl:  'r', 
    3109                                                             delegatedFrom: '0', 
    3110                                                             status: '4', 
    3111                                                             isExternal: '1' 
    3112                                                     }; 
    3113                                                      
    3114                                                 }else 
    3115                                                     return (null); 
    3116                                         })       
    3117                                          
    3118                         }, true, path, true); 
     3021 
     3022                        eventDetails(decodeCreateSchedulable('event', ID), true, path, true); 
    31193023                } 
    31203024                subject.appendChild(new_event_logo); 
  • sandbox/2.4.2-expresso1/expressoMail1_2/js/main.js

    r6891 r6965  
    11// Tempo do auto refresh (em milisegundos) 
    2 var time_refresh = 300000; 
     2//var time_refresh = 300000; 
     3var time_refresh = 30000; 
    34 
    45// tempo do auto save (em milisegundos) 
     
    587588        getFromAlertRules(); 
    588589        var handler_refresh = function(data){ 
    589                 handlerMessageFilter = function (data) {                                 
    590                     notificationFilter(data, notifyPermission); 
    591                     alarmFollowupflagged('filtersAlarms', data);         
     590                handlerMessageFilter = function (data) {                         
     591                        if(checkAlarmsFilter){ 
     592                                alarmFollowupflagged('filtersAlarms', data); 
     593                        } 
     594                        notificationFilter(data, notifyPermission); 
     595                         
     596                        checkAlarmsFilter = true; 
     597                         
    592598                } 
    593599                /* Busca  nas pastas indexadas para ver se há novas mensagens com a flag $FilteredMessage */ 
     
    38523858} 
    38533859 
     3860//Normalização dos dados evita ter que reemplementar toda as funcionalidades do calendar 
     3861function decodeCreateSchedulable(type, ID){ 
     3862        var startEvent = new Date();   
     3863        if(startEvent.toString('mm') < 30)  
     3864                startEvent.add({minutes: (30 - parseInt(startEvent.toString('mm')))});  
     3865        else  
     3866                startEvent.add({hours: 1, minutes: '-'+startEvent.toString('mm')});  
     3867        var endEvent = function(date){  
     3868        if(!!User.preferences.defaultCalendar){  
     3869                return  new Date(parseInt(date.getTime()) +  
     3870                        (!!Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration ?   
     3871                        (Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration * 60000) : 
     3872                        (User.preferences.defaultDuration * 60000) 
     3873                )); 
     3874        }else  
     3875                return new Date(parseInt(date.getTime()) + (User.preferences.defaultDuration * 60000));  
     3876        };        
     3877 
     3878        var emails = $("#to_values_"+ID).val().split(','); 
     3879         
     3880        var schedulable = {}; 
     3881         
     3882        schedulable = {  
     3883                acl: {inviteGuests: true, organization: true ,participationRequired: false, read: true, write: true}, 
     3884                alarms: [], 
     3885                allDay: false, 
     3886                attachments: [], 
     3887                isAttendee: true, 
     3888                attendee: '',//TODOOOOOO, 
     3889                category: '', 
     3890                'class': '1', 
     3891                delegatedFrom: {}, 
     3892                endDate: startEvent.toString(User.preferences.dateFormat), 
     3893                startDate: endEvent(startEvent).toString(User.preferences.dateFormat), 
     3894                startHour: startEvent.toString(User.preferences.hourFormat), 
     3895                endHour: endEvent(startEvent).toString(User.preferences.hourFormat), 
     3896                timezone: User.preferences.defaultCalendar ? Calendar.signatureOf[User.preferences.defaultCalendar].calendar.timezone : User.preferences.timezone, 
     3897                summary : $("#subject_"+ID).text(), 
     3898                description : $("#body_" + ID).text(), 
     3899                startTime: startEvent.getTime(), 
     3900                endTime: endEvent(startEvent), 
     3901                timezones: Timezone.timezones, 
     3902                me: {name: User.me.name, mail: User.me.mail, acl: 'rowi', status: '1', delegatedFrom: '0', id: User.me.id}, 
     3903                organizer: {name: User.me.name, mail: User.me.mail, acl: 'rowi', status: '1', delegatedFrom: '0' , id: User.me.id}, 
     3904                statusParticipants: {accepted: 0, cancelled: 0, tentative: 0, unanswered:emails.length}, 
     3905                location: '', 
     3906                attendee: $.map(emails, function( mail ){                        
     3907                        var contact = false; 
     3908                        var decoded =  Encoder.htmlDecode(mail); 
     3909                        var newAttendeeName = ""; 
     3910 
     3911                        var name = decoded.match(/"([^"]*)"/) ? decoded.match(/"([^"]*)"/)[1] : ''; 
     3912                        var mail = decoded.match(/<([^<]*)>[\s]*$/) ? decoded.match(/<([^<]*)>[\s]*$/)[1].toLowerCase() : decoded;  
     3913 
     3914 
     3915                        var user = DataLayer.get('user', ["=", "mail", mail], true); 
     3916                         
     3917                        if( $.type(user) == "array" ) 
     3918                                user = user[0]; 
     3919 
     3920                        if(user != ''){ 
     3921                                //user = {name : name , mail : mail}; 
     3922                                if(User.me.mail == user.mail) 
     3923                                        return(null); 
     3924                                user.isExternal = (!!user && !(!!user.isExternal)) ? 0 : 1; 
     3925 
     3926                                return  DataLayer.merge({ 
     3927                                        name: user.name, 
     3928                                        mail: user.mail, 
     3929                                        acl:  'r', 
     3930                                        delegatedFrom: '0', 
     3931                                        status: '4', 
     3932                                        isExternal: user.isExternal 
     3933                                }, !!user.id ? {id : DataLayer.put('participant', {user: user.id, isExternal: user.isExternal})} : {id: DataLayer.put('participant', {user: user})});  
     3934                        }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}\])/)){ 
     3935                                 
     3936                                var userId = DataLayer.put('user', { 
     3937                                name: name,  
     3938                                mail: mail,  
     3939                                isExternal: '1' 
     3940                                }); 
     3941                                var newAttendeeId = DataLayer.put('participant', { 
     3942                                user: userId,  
     3943                                isExternal: '1' 
     3944                                }); 
     3945 
     3946                                return  { 
     3947                                        id: newAttendeeId, 
     3948                                        name: name, 
     3949                                        mail: mail, 
     3950                                        acl:  'r', 
     3951                                        delegatedFrom: '0', 
     3952                                        status: '4', 
     3953                                        isExternal: '1' 
     3954                                }; 
     3955                                 
     3956                        }else 
     3957                                return (null); 
     3958                }) 
     3959        }; 
     3960 
     3961        schedulable  = DataLayer.merge(schedulable,  
     3962                type == 'event' ?  
     3963                {calendar: User.preferences.defaultCalendar ? User.preferences.defaultCalendar : Calendar.calendars[0], calendars: Calendar.calendars} 
     3964                : {group: Calendar.groups[0].id, groups: Calendar.groups} 
     3965        ); 
     3966         
     3967        return schedulable; 
     3968             
     3969 
     3970} 
     3971 
    38543972function import_implements_calendar(){ 
    38553973 
     
    38653983                $.ajax({url: "../prototype/modules/calendar/js/map.disponibility.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    38663984                $.ajax({url: "../prototype/modules/calendar/js/helpers.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
     3985                $.ajax({url: "../prototype/modules/calendar/js/task.helpers.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    38673986                //$.ajax({ url: "../prototype/modules/calendar/js/timezone.js", async: false}); 
    38683987                //$.ajax({ url: "../prototype/modules/calendar/js/calendar.codecs.js", async: false}); 
    38693988                $.ajax({url: "../prototype/plugins/encoder/encoder.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
     3989                $.ajax({url: "../prototype/plugins/jquery.spinner/jquery.spinner.min.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    38703990                //$.ajax({url: "../prototype/plugins/dateFormat/dateFormat.js", async: false, beforeSend: function( xhr ) { xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    38713991 
Note: See TracChangeset for help on using the changeset viewer.