Changeset 6996 for trunk/expressoMail1_2


Ignore:
Timestamp:
08/10/12 19:11:37 (12 years ago)
Author:
acoutinho
Message:

Ticket #2966 - Merge de novas funcionalidades com trunk #2951, #2952

Location:
trunk/expressoMail1_2
Files:
11 edited
4 copied

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/inc/hook_settings.inc.php

    r6858 r6996  
    345345create_check_box('Show previous message, after delete actual message?','delete_and_show_previous_message','Enable this option if you want to read the next message everytime you delete a message'); 
    346346create_check_box('Do you wanna receive an alert for new messages?','alert_new_msg','Everytime you receive new messages you will be informed'); 
     347 
     348 
     349create_check_box('Wish you receive notifications for: "New messages", "Filter criteria", "Event alerts"?','notifications','Everytime you receive new messages you will be informed'); 
     350 
     351 
     352 
    347353create_check_box('Show default view on main screen?','mainscreen_showmail','Show unread messages in your home page'); 
    348354create_check_box('Do you want to use remove attachments function?','remove_attachments_function','It allow you to remove attachments from messages'); 
  • trunk/expressoMail1_2/index.php

    r6858 r6996  
    2323        echo "<script src='js/modal/modal.js'></script>"; 
    2424        //jquery and Editor  
    25         echo '                   
     25        echo '  
    2626                <link rel="stylesheet" type="text/css" href="templates/default/main.css"></link> 
     27                 
    2728                <link rel="stylesheet" type="text/css" href="../phpgwapi/js/dftree/dftree.css"></link> 
     29                 
     30                <link rel="stylesheet" type="text/css" href="../prototype/plugins/jquery.spinner/jquery.spinner.css"></link> 
    2831                <link rel="stylesheet" type="text/css" href="../prototype/plugins/fullcalendar/fullcalendar.css"></link> 
    2932                <link rel="stylesheet" type="text/css" href="../prototype/plugins/fullcalendar/fullcalendar.print.css"></link> 
     
    3235                <script type="text/javascript" src="../prototype/plugins/jquery/jquery.min.js"></script> 
    3336                <link href="../prototype/modules/filters/filters.css" rel="stylesheet" type="text/css"> 
     37                 
    3438                <script type="text/javascript" src="../prototype/plugins/jquery/jquery-ui.min.js"></script> 
    3539                <script src="../prototype/plugins/json2/json2.js" language="javascript"></script> 
     
    7276                <script type="text/javascript" src="../prototype/plugins/contextmenu/jquery.contextMenu.js"></script> 
    7377                <!-- <script type="text/javascript" src="../prototype/plugins/contextmenu/jquery.ui.position.js"></script> --> 
    74                  
     78 
    7579                <script type="text/javascript" src="../prototype/modules/calendar/js/timezone.js"></script> 
    76         <script type="text/javascript" src="../prototype/plugins/dateFormat/dateFormat.js"></script> 
     80                <script type="text/javascript" src="../prototype/plugins/dateFormat/dateFormat.js"></script> 
    7781                <script type="text/javascript" src="../prototype/modules/calendar/js/calendar.date.js"></script> 
     82                <script type="text/javascript" src="../prototype/modules/calendar/js/desktop.notification.js"></script> 
    7883                <script type="text/javascript" src="../prototype/modules/calendar/js/calendar.codecs.js"></script> 
     84                <script type="text/javascript" src="../prototype/modules/calendar/js/calendar.alarms.js"></script> 
    7985                <link rel="stylesheet" type="text/css" href="../prototype/plugins/freeow/style/freeow/freeow.css" > 
    8086                <script type="text/javascript" src="../prototype/plugins/freeow/jquery.freeow.min.js"></script> 
  • trunk/expressoMail1_2/js/common_functions.js

    r6930 r6996  
    12861286    return folderName; 
    12871287} 
     1288 
     1289function useDesktopNotification(){ 
     1290    return !!parseInt(preferences.notifications); 
     1291} 
  • trunk/expressoMail1_2/js/draw_api.js

    r6975 r6996  
    32203220        subject.className = "header_message_field"; 
    32213221        if(defaultCalendar == "expressoCalendar" && $("#expressoCalendarid")[0]){ 
     3222                var new_task_logo = document.createElement("IMG"); 
     3223                new_task_logo.title = "Criar uma nova tarefa a partir deste email."; 
     3224                new_task_logo.alt = "Criar uma nova tarefa a partir deste email."; 
     3225                new_task_logo.src = "./templates/default/images/big-task.png"; 
     3226                new_task_logo.style.cursor = "pointer"; 
     3227                new_task_logo.style.marginLeft = "5px"; 
     3228                new_task_logo.onclick = function(){ 
     3229                import_implements_calendar(); 
     3230                 
     3231                 
     3232                        DataLayer.dispatchPath = "../prototype/"; 
     3233                        var path = "../prototype/modules/calendar/"; 
     3234                        taskDetails(decodeCreateSchedulable('task', ID), true, path, true); 
     3235                } 
     3236                 
    32223237                var new_event_logo = document.createElement("IMG"); 
    32233238                new_event_logo.title = "Criar evento a partir deste email"; 
    32243239                new_event_logo.alt = "Criar evento a partir deste email"; 
    3225                 new_event_logo.src = "./templates/default/images/calendar_add.png"; 
     3240                //new_event_logo.src = "./templates/default/images/calendar_add.png"; 
     3241                new_event_logo.src = "./templates/default/images/big-event.png"; 
    32263242                new_event_logo.style.cursor = "pointer"; 
    32273243                new_event_logo.style.marginLeft = "5px"; 
     
    32323248                        DataLayer.dispatchPath = "../prototype/"; 
    32333249                        var path = "../prototype/modules/calendar/"; 
    3234                          
    3235                         var startEvent = new Date();   
    3236                         if(startEvent.toString('mm') < 30)  
    3237                                 startEvent.add({minutes: (30 - parseInt(startEvent.toString('mm')))});  
    3238                         else  
    3239                                 startEvent.add({hours: 1, minutes: '-'+startEvent.toString('mm')});  
    3240                         var endEvent = function(date){  
    3241                                 if(!!User.preferences.defaultCalendar){  
    3242                                         return  new Date(parseInt(date.getTime()) +  
    3243                                                     (!!Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration ?   
    3244                                                         (Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration * 60000) : 
    3245                                                         (User.preferences.defaultDuration * 60000) 
    3246                                                 )); 
    3247                                 }else  
    3248                                         return new Date(parseInt(date.getTime()) + (User.preferences.defaultDuration * 60000));  
    3249                         };        
    3250  
    3251                         var emails = $("#to_values_"+ID).val().split(','); 
    3252                          
    3253                          
    3254                         //Normalização dos dados evita ter que reemplementar toda as funcionalidades do calendar 
    3255                         eventDetails({  
    3256                                          
    3257                                         acl: {inviteGuests: true, organization: true ,participationRequired: false, read: true, write: true}, 
    3258                                         alarms: [], 
    3259                                         allDay: false, 
    3260                                         attachments: [], 
    3261                                         isAttendee: true, 
    3262                                         attendee: '',//TODOOOOOO, 
    3263                                         calendar: User.preferences.defaultCalendar ? User.preferences.defaultCalendar : Calendar.calendars[0], 
    3264                                         calendars: Calendar.calendars, 
    3265                                         category: '', 
    3266                                         'class': '1', 
    3267                                         delegatedFrom: {}, 
    3268                                         endDate: startEvent.toString(User.preferences.dateFormat), 
    3269                                         startDate: endEvent(startEvent).toString(User.preferences.dateFormat), 
    3270                                         startHour: startEvent.toString(User.preferences.hourFormat), 
    3271                                         endHour: endEvent(startEvent).toString(User.preferences.hourFormat), 
    3272                                         timezone: User.preferences.defaultCalendar ? Calendar.signatureOf[User.preferences.defaultCalendar].calendar.timezone : User.preferences.timezone, 
    3273                                         summary : $("#subject_"+ID).text(), 
    3274                                         description : $("#body_" + ID).text(), 
    3275                                         startTime: startEvent.getTime(), 
    3276                                         endTime: endEvent(startEvent), 
    3277                                         timezones: Timezone.timezones, 
    3278                                         me: {name: User.me.name, mail: User.me.mail, acl: 'rowi', status: '1', delegatedFrom: '0', id: User.me.id}, 
    3279                                         organizer: {name: User.me.name, mail: User.me.mail, acl: 'rowi', status: '1', delegatedFrom: '0' , id: User.me.id}, 
    3280                                         statusParticipants: {accepted: 0, cancelled: 0, tentative: 0, unanswered:emails.length}, 
    3281                                         location: '', 
    3282                                         attendee: $.map(emails, function( mail ){                        
    3283                                                 var contact = false; 
    3284                                                 var decoded =  Encoder.htmlDecode(mail); 
    3285                                                 var newAttendeeName = ""; 
    3286  
    3287                                                 var name = decoded.match(/"([^"]*)"/) ? decoded.match(/"([^"]*)"/)[1] : ''; 
    3288                                                 var mail = decoded.match(/<([^<]*)>[\s]*$/) ? decoded.match(/<([^<]*)>[\s]*$/)[1].toLowerCase() : decoded;  
    3289  
    3290  
    3291                                                 var user = DataLayer.get('user', ["=", "mail", mail], true); 
    3292                                                  
    3293                                                 if( $.type(user) == "array") 
    3294                                                     user = user[0]; 
    3295  
    3296                                                 if(user != ''){ 
    3297                                                     //user = {name : name , mail : mail}; 
    3298                                                     if(User.me.mail == user.mail) 
    3299                                                             return(null); 
    3300                                                     user.isExternal = (!!user && !(!!user.isExternal)) ? 0 : 1; 
    3301  
    3302                                                     return  DataLayer.merge({ 
    3303                                                             name: user.name, 
    3304                                                             mail: user.mail, 
    3305                                                             acl:  'r', 
    3306                                                             delegatedFrom: '0', 
    3307                                                             status: '4', 
    3308                                                             isExternal: user.isExternal 
    3309                                                     }, !!user.id ? {id : DataLayer.put('participant', {user: user.id, isExternal: user.isExternal})} : {id: DataLayer.put('participant', {user: user})});  
    3310                                                 }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}\])/)){ 
    3311                                                      
    3312                                                     var userId = DataLayer.put('user', { 
    3313                                                         name: name,  
    3314                                                         mail: mail,  
    3315                                                         isExternal: '1' 
    3316                                                     }); 
    3317                                                     var newAttendeeId = DataLayer.put('participant', { 
    3318                                                         user: userId,  
    3319                                                         isExternal: '1' 
    3320                                                     }); 
    3321  
    3322                                                     return  { 
    3323                                                             id: newAttendeeId, 
    3324                                                             name: name, 
    3325                                                             mail: mail, 
    3326                                                             acl:  'r', 
    3327                                                             delegatedFrom: '0', 
    3328                                                             status: '4', 
    3329                                                             isExternal: '1' 
    3330                                                     }; 
    3331                                                      
    3332                                                 }else 
    3333                                                     return (null); 
    3334                                         })       
    3335                                          
    3336                         }, true, path, true); 
     3250 
     3251                        eventDetails(decodeCreateSchedulable('event', ID), true, path, true); 
    33373252                } 
    33383253                subject.appendChild(new_event_logo); 
     3254                subject.appendChild(new_task_logo); 
    33393255        } 
    33403256        tr5.appendChild(td5); 
  • trunk/expressoMail1_2/js/main.js

    r6980 r6996  
    11// Tempo do auto refresh (em milisegundos) 
    22var time_refresh = 300000; 
     3 
    34// tempo do auto save (em milisegundos) 
    45// 20000 = 20 segundos 
     
    67var results_search_messages = "";  
    78var cabecalho = '<h4>ExpressoLivre - ExpressoMail</h4>';  
    8 // Variavel para controle de atualização das mensagens listadas na modal de alerta de filtro por remetente 
    9 var checkAlarmsFilter = false; 
     9 
     10var auxNotificationCriteriaVetor = []; 
     11var auxNotification; 
     12 
     13var countNewMessage = 0; 
     14var notifyNewMessageFilter = []; 
    1015 
    1116var dynamicPersonalContacts = new Array(); 
     
    2025        }  
    2126} 
    22          
     27 
    2328function mount_url_folder(folders){ 
    2429        return folders.join(cyrus_delimiter); 
     
    7580                 
    7681                        if(preferences.show_name_print_messages == "1") {  
    77                                                         var getUserName = document.getElementById("user_info");  
     82                                var getUserName = document.getElementById("user_info");  
    7883                                var userName = getUserName.innerHTML;  
    7984                                var position = userName.indexOf("-");  
     
    572577 
    573578function auto_refresh(){ 
    574         refresh(preferences.alert_new_msg); 
     579        refresh(preferences.alert_new_msg, preferences.notifications); 
    575580        setTimeout('auto_refresh()', time_refresh); 
    576581} 
     
    581586} 
    582587 
    583 function refresh(alert_new_msg){ 
     588function notificationFilter(data, notifyCriteria){ 
     589         
     590        if(parseInt(notifyCriteria)  && data.length > 0 && !activePage ){ 
     591         
     592                var howManyCriteria = $('div.gray.filtersDeadline .message-list li').length; 
     593                var differenceOfNewCriteria = data.length - howManyCriteria; 
     594                 
     595                if(differenceOfNewCriteria > 0){ 
     596                        for(var i=data.length - differenceOfNewCriteria; i < data.length; i++){ 
     597         
     598                                desktopNotification.sentNotification("",get_lang("Filter criteria"),  truncate(new Date(data[i].udate).toString('dd/MM HH:mm') + ' - ' + data[i].from+' - '+data[i].subject, 75)); 
     599                                desktopNotification.showNotification(false, function(){ 
     600                                        window.focus(); 
     601                                        this.cancel(); 
     602                                }); 
     603                        } 
     604                } 
     605        } 
     606} 
     607 
     608function refresh(alert_new_msg, notifyPermission){ 
     609 
    584610        getFromAlertRules(); 
    585611        var handler_refresh = function(data){ 
    586                 if(checkAlarmsFilter){ 
    587                         handlerMessageFilter = function (data) { 
    588                                 alarmFollowupflagged('filtersAlarms', data); 
    589                         } 
    590                         /* Busca  nas pastas indexadas para ver se há novas mensagens com a flag $FilteredMessage */ 
    591                         cExecute ("$this.imap_functions.getFlaggedAlertMessages&folders="+fromRules, handlerMessageFilter); 
    592                 } 
    593                 checkAlarmsFilter = true; 
     612                handlerMessageFilter = function (data) {                         
     613                        alarmFollowupflagged('filtersAlarms', data); 
     614                        notificationFilter(data, notifyPermission); 
     615                } 
     616                /* Busca  nas pastas indexadas para ver se há novas mensagens com a flag $FilteredMessage */ 
     617                cExecute ("$this.imap_functions.getFlaggedAlertMessages&folders="+fromRules, handlerMessageFilter); 
     618 
    594619                if(data['msg_range_end']) 
    595620                        if(data['msg_range_end'] > 0) 
     
    603628                        showEmptyBoxMsg(box); 
    604629 
    605                 if (data.length > 0){ 
     630                if (data.length > 0 || countNewMessage > 0){ 
    606631                        for(var i=0;i< data.length;i++){ 
    607632                                if (!onceOpenedHeadersMessages[current_folder]) 
     
    742767                        if(parseInt(preferences.use_shortcuts)) 
    743768                                select_msg("null","reload_msg","null"); 
    744  
    745                         if(parseInt(alert_new_msg) && data.new_msgs > 0) 
     769                 
     770                        if(parseInt(alert_new_msg) && data.new_msgs > 0 && activePage) 
    746771                                alert(data['new_msgs'] > 1 ? get_lang("You have %1 new messages", data['new_msgs']) + "!" : get_lang("You have 1 new message") +"!"); 
     772                         
     773                         
     774                        if(parseInt(notifyPermission)  && (data.new_msgs > 0 || !!countNewMessage) && !activePage ){ 
     775                         
     776                                countNewMessage += data.length; 
     777                                 
     778                                desktopNotificationAux = desktopNotification.sentNotification("",get_lang("Notification"), countNewMessage > 1 ? get_lang("You have %1 new messages", countNewMessage) + "!" : get_lang("You have 1 new message") + "!"); 
     779                                 
     780                                if(auxNotification !== 'undefined') 
     781                                        desktopNotification.cancelByReference(auxNotification); 
     782                                 
     783                                desktopNotification.showNotification(function(){ 
     784                                        countNewMessage = 0; 
     785                                }, function(){ 
     786                                        window.focus(); 
     787                                        this.cancel(); 
     788                                        countNewMessage = 0; 
     789                                }); 
     790                                 
     791                                auxNotification = desktopNotificationAux; 
     792                        } 
    747793                        build_quota(data['quota']); 
    748794                } 
     
    40184064} 
    40194065 
     4066//Normalização dos dados evita ter que reemplementar toda as funcionalidades do calendar 
     4067function decodeCreateSchedulable(type, ID){ 
     4068        var startEvent = new Date();   
     4069        if(startEvent.toString('mm') < 30)  
     4070                startEvent.add({minutes: (30 - parseInt(startEvent.toString('mm')))});  
     4071        else  
     4072                startEvent.add({hours: 1, minutes: '-'+startEvent.toString('mm')});  
     4073        var endEvent = function(date){  
     4074        if(!!User.preferences.defaultCalendar){  
     4075                return  new Date(parseInt(date.getTime()) +  
     4076                        (!!Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration ?   
     4077                        (Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration * 60000) : 
     4078                        (User.preferences.defaultDuration * 60000) 
     4079                )); 
     4080        }else  
     4081                return new Date(parseInt(date.getTime()) + (User.preferences.defaultDuration * 60000));  
     4082        };        
     4083 
     4084        var emails = $("#to_values_"+ID).val().split(','); 
     4085         
     4086        var schedulable = {}; 
     4087         
     4088        schedulable = {  
     4089                acl: {inviteGuests: true, organization: true ,participationRequired: false, read: true, write: true}, 
     4090                alarms: [], 
     4091                allDay: false, 
     4092                attachments: [], 
     4093                isAttendee: true, 
     4094                attendee: '',//TODOOOOOO, 
     4095                category: '', 
     4096                'class': '1', 
     4097                delegatedFrom: {}, 
     4098                endDate: startEvent.toString(User.preferences.dateFormat), 
     4099                startDate: endEvent(startEvent).toString(User.preferences.dateFormat), 
     4100                startHour: startEvent.toString(User.preferences.hourFormat), 
     4101                endHour: endEvent(startEvent).toString(User.preferences.hourFormat), 
     4102                timezone: User.preferences.defaultCalendar ? Calendar.signatureOf[User.preferences.defaultCalendar].calendar.timezone : User.preferences.timezone, 
     4103                summary : $("#subject_"+ID).text(), 
     4104                description : $("#body_" + ID).text(), 
     4105                startTime: startEvent.getTime(), 
     4106                endTime: endEvent(startEvent), 
     4107                timezones: Timezone.timezones, 
     4108                me: {name: User.me.name, mail: User.me.mail, acl: 'rowi', status: '1', delegatedFrom: '0', id: User.me.id}, 
     4109                organizer: {name: User.me.name, mail: User.me.mail, acl: 'rowi', status: '1', delegatedFrom: '0' , id: User.me.id}, 
     4110                statusParticipants: {accepted: 0, cancelled: 0, tentative: 0, unanswered:emails.length}, 
     4111                location: '', 
     4112                attendee: $.map(emails, function( mail ){                        
     4113                        var contact = false; 
     4114                        var decoded =  Encoder.htmlDecode(mail); 
     4115                        var newAttendeeName = ""; 
     4116 
     4117                        var name = decoded.match(/"([^"]*)"/) ? decoded.match(/"([^"]*)"/)[1] : ''; 
     4118                        var mail = decoded.match(/<([^<]*)>[\s]*$/) ? decoded.match(/<([^<]*)>[\s]*$/)[1].toLowerCase() : decoded;  
     4119 
     4120 
     4121                        var user = DataLayer.get('user', ["=", "mail", mail], true); 
     4122                         
     4123                        if( $.type(user) == "array" ) 
     4124                                user = user[0]; 
     4125 
     4126                        if(user != ''){ 
     4127                                //user = {name : name , mail : mail}; 
     4128                                if(User.me.mail == user.mail) 
     4129                                        return(null); 
     4130                                user.isExternal = (!!user && !(!!user.isExternal)) ? 0 : 1; 
     4131 
     4132                                return  DataLayer.merge({ 
     4133                                        name: user.name, 
     4134                                        mail: user.mail, 
     4135                                        acl:  'r', 
     4136                                        delegatedFrom: '0', 
     4137                                        status: '4', 
     4138                                        isExternal: user.isExternal 
     4139                                }, !!user.id ? {id : DataLayer.put('participant', {user: user.id, isExternal: user.isExternal})} : {id: DataLayer.put('participant', {user: user})});  
     4140                        }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}\])/)){ 
     4141                                 
     4142                                var userId = DataLayer.put('user', { 
     4143                                name: name,  
     4144                                mail: mail,  
     4145                                isExternal: '1' 
     4146                                }); 
     4147                                var newAttendeeId = DataLayer.put('participant', { 
     4148                                user: userId,  
     4149                                isExternal: '1' 
     4150                                }); 
     4151 
     4152                                return  { 
     4153                                        id: newAttendeeId, 
     4154                                        name: name, 
     4155                                        mail: mail, 
     4156                                        acl:  'r', 
     4157                                        delegatedFrom: '0', 
     4158                                        status: '4', 
     4159                                        isExternal: '1' 
     4160                                }; 
     4161                                 
     4162                        }else 
     4163                                return (null); 
     4164                }) 
     4165        }; 
     4166 
     4167        schedulable  = DataLayer.merge(schedulable,  
     4168                type == 'event' ?  
     4169                {calendar: User.preferences.defaultCalendar ? User.preferences.defaultCalendar : Calendar.calendars[0], calendars: Calendar.calendars} 
     4170                : {group: Calendar.groups[0].id, groups: Calendar.groups, percentage: 0} 
     4171        ); 
     4172         
     4173        return schedulable; 
     4174             
     4175 
     4176} 
     4177 
    40204178function import_implements_calendar(){ 
    40214179 
     
    40314189                $.ajax({url: "../prototype/modules/calendar/js/map.disponibility.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    40324190                $.ajax({url: "../prototype/modules/calendar/js/helpers.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
     4191                $.ajax({url: "../prototype/modules/calendar/js/task.helpers.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    40334192                //$.ajax({ url: "../prototype/modules/calendar/js/timezone.js", async: false}); 
    40344193                //$.ajax({ url: "../prototype/modules/calendar/js/calendar.codecs.js", async: false}); 
    40354194                $.ajax({url: "../prototype/plugins/encoder/encoder.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
     4195                $.ajax({url: "../prototype/plugins/jquery.spinner/jquery.spinner.min.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    40364196                //$.ajax({url: "../prototype/plugins/dateFormat/dateFormat.js", async: false, beforeSend: function( xhr ) { xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    40374197 
     
    40734233                wfolders.makeWindow('null','import'); 
    40744234} 
    4075  
    4076 function decodeOwner(){ 
     4235    //Verifica o contexto de importação 
     4236    function decodeOwner(){ 
    40774237        owner = User.me.id; 
    40784238        var imapBox = openTab.imapBox[currentTab].split(cyrus_delimiter); 
     
    40824242        }        
    40834243        return owner; 
    4084 } 
    4085 function import_calendar(data){ 
    4086     var import_url = '$this.db_functions.import_vcard&msg_folder='+data; 
    4087     var logUser; 
    4088     var up; 
    4089     var owner;    
    4090     function handler_import_calendar(data){ 
    4091             if(data === true){ 
    4092                     write_msg(get_lang("The event was imported successfully.")); 
    4093             } 
    4094             else if( data['url'] ) 
    4095             { 
    4096                 var form = document.createElement( "form" ); 
    4097  
    4098                 form.setAttribute( "action", DEFAULT_URL + data['url'] + '&isPost=true' ); 
    4099                 form.setAttribute( "method", "POST" ); 
    4100  
    4101                 document.body.appendChild( form ); 
    4102  
    4103                 form.submit(); 
    4104             } 
    4105             else 
    4106                 write_msg(get_lang(data)); 
    4107     }    
     4244    } 
     4245 
     4246   function import_calendar(data){ 
     4247        var import_url = '$this.db_functions.import_vcard&msg_folder='+data; 
     4248        var logUser; 
     4249        var up; 
     4250        var owner; 
     4251 
     4252        function handler_import_calendar(data){ 
     4253            if(data === true){ 
     4254                write_msg(get_lang("The event was imported successfully.")); 
     4255            } 
     4256            else if( data['url'] ) 
     4257            { 
     4258                var form = document.createElement( "form" ); 
     4259 
     4260                form.setAttribute( "action", DEFAULT_URL + data['url'] + '&isPost=true' ); 
     4261                form.setAttribute( "method", "POST" ); 
     4262 
     4263                document.body.appendChild( form ); 
     4264 
     4265                form.submit(); 
     4266            } 
     4267            else 
     4268                write_msg(get_lang(data)); 
     4269        }    
    41084270        if(defaultCalendar == "expressoCalendar" && $("#expressoCalendarid")[0]){ 
    4109                 import_implements_calendar(); 
     4271            import_implements_calendar(); 
    41104272                $( "#import-dialog" ).dialog({ 
    4111                         autoOpen: false, 
    4112                         height: 220, 
    4113                         modal: true, 
    4114                         resizable : false, 
    4115             open: function(event, ui)  
    4116             { 
    4117                 if(typeof(shortcut) != 'undefined') shortcut.disabled = true;  
    4118             }, 
    4119             close: function(event, ui)  
    4120             { 
    4121                 event.stopPropagation(); 
    4122                 if(typeof(shortcut) != 'undefined') shortcut.disabled = false;  
    4123             }, 
    4124                         closeOnEscape: true 
     4273                    autoOpen: false, 
     4274                    height: 220, 
     4275                    modal: true, 
     4276                    resizable : false, 
     4277                    open: function(event, ui) { 
     4278                        if(typeof(shortcut) != 'undefined') shortcut.disabled = true;  
     4279                    }, 
     4280                    close: function(event, ui){ 
     4281                        event.stopPropagation(); 
     4282                        if(typeof(shortcut) != 'undefined') shortcut.disabled = false;  
     4283                    }, 
     4284                    closeOnEscape: true 
    41254285                }); 
    4126                  
     4286                    
    41274287                $.ajax({ 
    4128                         url: "controller.php?action="+import_url+'&from_ajax=true&id_user='+User.me.id+'&readable=true&cirus_delimiter='+cyrus_delimiter+'&analize=true&uidAccount='+decodeOwner(), 
    4129                         async: false, 
    4130                         success: function(data){ 
    4131                                         data = connector.unserialize(data); 
    4132  
    4133  
    4134                                         var createDialog = function(typeImport, propaget){ 
    4135                                              
    4136                                                 if(typeof(typeImport) == "object"){ 
    4137                                                     var calendarPermission = typeImport.calendar; 
    4138                                                     typeImport = typeImport.action; 
     4288                    url: "controller.php?action="+import_url+'&from_ajax=true&id_user='+User.me.id+'&readable=true&cirus_delimiter='+cyrus_delimiter+'&analize=true&uidAccount='+decodeOwner(), 
     4289                    async: false, 
     4290                    success: function(data){ 
     4291                        data = connector.unserialize(data); 
     4292                        var createDialog = function(typeImport, propaget){ 
     4293                                                
     4294                            if(typeof(typeImport) == "object"){ 
     4295                                var calendarIds = !!typeImport.calendar ? typeImport.calendar : Calendar[typeImport.type]; 
     4296                                typeImport = typeImport.action; 
     4297                            } 
     4298                                                    
     4299                            switch(parseInt(typeImport)){ 
     4300                                case 1: 
     4301                                case 7: 
     4302                                case 10: 
     4303                                    $("#select-agenda").html(''); 
     4304 
     4305                                    var options = ''; 
     4306 
     4307                                    if(calendarIds){ 
     4308                                        for(var i = 0; i < calendarIds.length; i++) 
     4309                                            options += '<option value="'+calendarIds[i]+'">'+Calendar.signatureOf[calendarIds[i]].calendar.name+'</option>' 
     4310                                    } 
     4311 
     4312                                    $("#select-agenda").append(options); 
     4313                                    $("#select-agenda").css("display", "block"); 
     4314 
     4315                                    $("#import-dialog" ).dialog({ 
     4316                                        buttons: { 
     4317                                            Cancel: function() { 
     4318                                                $( this ).dialog( "close" ); 
     4319                                            }, 
     4320                                            "Importar" : function(){ 
     4321                                                    $.ajax({ 
     4322                                                        url: "controller.php?action="+import_url+'&from_ajax=true&selected='+$("#select-agenda option:selected").val()+'&status='+$("#select-status option:selected").val()+'&uidAccount='+decodeOwner(), 
     4323                                                        success: function(msg){ 
     4324                                                            var alt = ( (msg = connector.unserialize(msg)) == "ok") ? "Importado com sucesso para " : "Ocorreu um erro ao importar o evento/tarefa para a agenda "; 
     4325                                                            alert( alt + $("#select-agenda option:selected").text() ); 
     4326                                                        } 
     4327                                                    }); 
     4328                                                    $( this ).dialog( "close" ); 
     4329                                            } 
     4330                                        } 
     4331                                    }); 
     4332     
     4333                                    if(typeImport == 7){ 
     4334                                        $("#import-dialog").find('#select-status option[value=1]').attr('selected','selected').trigger('change'); 
     4335                                        $("#import-dialog").find('#select-status').attr('disabled','disabled'); 
     4336                                    } 
     4337                                    break; 
     4338                                case 3: 
     4339                                    $.ajax({ 
     4340                                        url: "controller.php?action="+import_url+'&from_ajax=true&selected=true', 
     4341                                        success: function(msg){ 
     4342                                            alert( ( ( connector.unserialize(msg)) == "ok") ? "Seu evento/tarefa foi removido " : "Ocorreu um erro ao remover o evento/tarefa" ); 
     4343                                        } 
     4344                                    }); 
     4345                                    return; 
     4346                                    break;  
     4347                                case 5: 
     4348                                    $.ajax({ 
     4349                                        url: "controller.php?action="+import_url+'&from_ajax=true&selected=true', 
     4350                                        success: function(msg){ 
     4351                                            alert( ( ( connector.unserialize(msg)) == "ok") ? "Seu evento/tarefa foi Atualizado com sucesso" : "Ocorreu um erro ao atualizar evento/tarefa" ); 
     4352                                        } 
     4353                                    }); 
     4354                                    return; 
     4355                                    break;  
     4356                                case 6: 
     4357                                        var acceptedSuggestion = confirm("Deseja atualizar o evento/tarefa de acordo com a sugestão ?"); 
     4358                                        $.ajax({ 
     4359                                            url: "controller.php?action="+import_url+'&from_ajax=true&id_user='+User.me.id+'&selected=true&cirus_delimiter='+cyrus_delimiter+'&acceptedSuggestion='+acceptedSuggestion+"&from="+document.getElementById('from_values_'+currentTab).value+'&uidAccount='+decodeOwner(), 
     4360                                            success: function(msg){ 
     4361                                                if(acceptedSuggestion) 
     4362                                                    alert( ( ( connector.unserialize(msg)) == "ok") ? "Evento/tarefa atualizado com sucesso " : "Ocorreu um erro ao atualizar o evento" ); 
    41394363                                                } 
    4140                                                  
    4141                                                 switch(parseInt(typeImport)){ 
    4142                                                 case 1: 
    4143                                                 case 7: 
    4144                                                 case 10: 
    4145                                                     $("#select-agenda").html(''); 
    4146  
    4147                                                     var options = ''; 
    4148  
    4149                                                     if(typeImport == 10){ 
    4150                                                         for(var i = 0; i < calendarPermission.length; i++) 
    4151                                                             options += '<option value="'+calendarPermission[i]+'">'+Calendar.signatureOf[calendarPermission[i]].calendar.name+'</option>' 
    4152                                                     }else{ 
    4153                                                         for(var id in Calendar.signatures) 
    4154                                                            options += parseInt(Calendar.signatures[id].isOwner) ? '<option value="'+Calendar.signatures[id].calendar.id+'">'+Calendar.signatures[id].calendar.name+'</option>' : '';                                                     
     4364                                        }); 
     4365                                        return; 
     4366                                        break; 
     4367                                        case 9: 
     4368                                            alert('Seu evento/tarefa não possui alterações!'); 
     4369                                            return; 
     4370                                            break; 
     4371                                        case 11: 
     4372                                            alert('Este evento/tarefa já fora importando por algum dos particpantes e já se encontra disponível em sua agenda compartilhada!'); 
     4373                                            return; 
     4374                                            break; 
     4375                                        default: 
     4376                                            up = true; 
     4377                                            $("#select-agenda").css("display", "none"); 
     4378                                            $("#import-dialog" ).children("p:first-child").css("display", "none"); 
     4379                                            $("#import-dialog" ).dialog({ 
     4380                                                height: 160, 
     4381                                                title: 'Atualizar Evento/Tarefa', 
     4382                                                buttons: { 
     4383                                                    Cancel: function() { 
     4384                                                        $( this ).dialog( "close" ); 
     4385                                                    }, 
     4386                                                    "Atualizar": function() { 
     4387                                                        $.ajax({ 
     4388                                                            url: "controller.php?action="+import_url+'&from_ajax=true&cirus_delimiter='+cyrus_delimiter+'&selected='+ (parseInt(typeImport) == 2 || parseInt(typeImport) == 4 ? 'true' : $("#select-agenda option:selected").val()) +'&status='+$("#select-status option:selected").val()+'&uidAccount='+decodeOwner(), 
     4389                                                            success: function(msg){ 
     4390                                                                alert( ( (msg = connector.unserialize(msg)) == "ok") ? "Atualizado com sucesso" : "Ocorreu um erro ao atualizar o evento" ); 
     4391                                                            } 
     4392                                                        }); 
     4393                                                        $( this ).dialog( "close" ); 
    41554394                                                    } 
    4156                                                      
    4157                                                     $("#select-agenda").append(options); 
    4158                                                     $("#select-agenda").css("display", "block"); 
    4159                                                      
    4160                                                     $("#import-dialog" ).dialog({ 
    4161                                                         buttons: { 
    4162                                                             Cancel: function() { 
    4163                                                                 $( this ).dialog( "close" ); 
    4164                                                             }, 
    4165                                                             "Importar" : function(){ 
    4166                                                                     $.ajax({ 
    4167                                                                         url: "controller.php?action="+import_url+'&from_ajax=true&selected='+$("#select-agenda option:selected").val()+'&status='+$("#select-status option:selected").val()+'&uidAccount='+decodeOwner(), 
    4168                                                                         success: function(msg){ 
    4169                                                                             var alt = ( (msg = connector.unserialize(msg)) == "ok") ? "Importado com sucesso para " : "Ocorreu um erro ao importar o evento para a agenda "; 
    4170                                                                             alert( alt + $("#select-agenda option:selected").text() ); 
    4171                                                                         } 
    4172                                                                     }); 
    4173                                                                     $( this ).dialog( "close" ); 
    4174                                                             } 
    4175                                                         } 
    4176                                                         }); 
    4177  
    4178                                                         if(typeImport == 7){ 
    4179                                                             $("#import-dialog").find('#select-status option[value=1]').attr('selected','selected').trigger('change'); 
    4180                                                             $("#import-dialog").find('#select-status').attr('disabled','disabled'); 
    4181                                                         } 
    4182                                                     break; 
    4183                                                 case 3: 
    4184                                                         $.ajax({ 
    4185                                                                 url: "controller.php?action="+import_url+'&from_ajax=true&selected=true', 
    4186                                                                 success: function(msg){ 
    4187                                                                         alert( ( ( connector.unserialize(msg)) == "ok") ? "Seu evento foi removido " : "Ocorreu um erro ao remover o evento" ); 
    4188                                                                 } 
    4189                                                         }); 
    4190                                                         return; 
    4191                                                         break;   
    4192                                                 case 5: 
    4193                                                         $.ajax({ 
    4194                                                                 url: "controller.php?action="+import_url+'&from_ajax=true&selected=true', 
    4195                                                                 success: function(msg){ 
    4196                                                                         alert( ( ( connector.unserialize(msg)) == "ok") ? "Seu evento foi Atualizado com sucesso" : "Ocorreu um erro ao atualizar evento" ); 
    4197                                                                 } 
    4198                                                         }); 
    4199                                                         return; 
    4200                                                         break;   
    4201                                                 case 6: 
    4202                                                         var acceptedSuggestion = confirm("Deseja atualizar o evento de acordo com a sugestão ?"); 
    4203                                                         $.ajax({ 
    4204                                                                 url: "controller.php?action="+import_url+'&from_ajax=true&id_user='+User.me.id+'&selected=true&cirus_delimiter='+cyrus_delimiter+'&acceptedSuggestion='+acceptedSuggestion+"&from="+document.getElementById('from_values_'+currentTab).value+'&uidAccount='+decodeOwner(), 
    4205                                                                 success: function(msg){ 
    4206                                                                         if(acceptedSuggestion) 
    4207                                                                                 alert( ( ( connector.unserialize(msg)) == "ok") ? "Evento atualizado com sucesso " : "Ocorreu um erro ao atualizar o evento" ); 
    4208                                                                 } 
    4209                                                         }); 
    4210                                                         return; 
    4211                                                         break; 
    4212                                                 case 9: 
    4213                                                         alert('Seu evento não possui alterações!'); 
    4214                                                         return; 
    4215                                                         break; 
    4216                                                 case 11: 
    4217                                                         alert('Este evento já fora importando por algum dos particpantes e já se encontra disponível em sua agenda compartilhada!'); 
    4218                                                         return; 
    4219                                                         break; 
    4220                                                 default: 
    4221                                                         up = true; 
    4222                                                         $("#select-agenda").css("display", "none"); 
    4223                                                         $("#import-dialog" ).children("p:first-child").css("display", "none"); 
    4224                                                         $("#import-dialog" ).dialog({ 
    4225                                                                 height: 160, 
    4226                                                                 title: 'Atualizar Evento', 
    4227                                                                 buttons: { 
    4228                                                                         Cancel: function() { 
    4229                                                                                 $( this ).dialog( "close" ); 
    4230                                                                         }, 
    4231                                                                    "Atualizar": function() { 
    4232                                                                                  
    4233                                                                                 $.ajax({ 
    4234                                                                                          url: "controller.php?action="+import_url+'&from_ajax=true&cirus_delimiter='+cyrus_delimiter+'&selected='+ (parseInt(typeImport) == 2 || parseInt(typeImport) == 4 ? 'true' : $("#select-agenda option:selected").val()) +'&status='+$("#select-status option:selected").val()+'&uidAccount='+decodeOwner(), 
    4235                                                                                          success: function(msg){ 
    4236                                                                                                         alert( ( (msg = connector.unserialize(msg)) == "ok") ? "Atualizado com sucesso" : "Ocorreu um erro ao atualizar o evento" ); 
    4237                                                                                         } 
    4238                                                                                 }); 
    4239                                                                                 $( this ).dialog( "close" ); 
    4240                                                                         } 
    4241                                                                 }, 
    4242                                 close:function(event, ui)  
    4243                                 { 
    4244                                     if(typeof(shortcut) != 'undefined') shortcut.disabled = false;  
    4245                                 }, 
    4246                                 open: function(event, ui)  
    4247                                 { 
    4248                                     if(typeof(shortcut) != 'undefined') shortcut.disabled = true;  
    4249                                 } 
    4250                                                         }); 
    4251                                                         $(".ui-dialog-buttonpane").find(".ui-button:last").children().html("Atualizar"); 
     4395                                                }, 
     4396                                                close:function(event, ui)  
     4397                                                { 
     4398                                                    if(typeof(shortcut) != 'undefined') shortcut.disabled = false;  
     4399                                                }, 
     4400                                                open: function(event, ui)  
     4401                                                { 
     4402                                                    if(typeof(shortcut) != 'undefined') shortcut.disabled = true;  
    42524403                                                } 
    4253                                                 $( "#import-dialog" ).dialog( "open" );  
    4254                                                                                                                                  
    4255                                         }; 
    4256                                         createDialog(data, true); 
    4257                                  
    4258                 }, 
    4259                 beforeSend: function( jqXHR, settings ){ 
    4260                                         connector.showProgressBar(); 
    4261                                 }, 
    4262                                 complete: function( jqXHR, settings ){ 
    4263                                         connector.hideProgressBar(); 
    4264                                 } 
    4265             }); 
    4266                          
    4267                 } 
    4268                 else 
    4269                 { 
    4270                     if(confirm(get_lang("Do you confirm this import to your Calendar?"))){ 
    4271                         cExecute( import_url + "&from_ajax=true", handler_import_calendar); 
    4272                     } 
    4273                 } 
    4274 } 
     4404                                            }); 
     4405                                            $(".ui-dialog-buttonpane").find(".ui-button:last").children().html("Atualizar"); 
     4406                                    } 
     4407                                    $( "#import-dialog" ).dialog( "open" ); 
     4408                                                                                                                                    
     4409                                }; 
     4410                                createDialog(data, true); 
     4411                                    
     4412                            }, 
     4413                            beforeSend: function( jqXHR, settings ){ 
     4414                                connector.showProgressBar(); 
     4415                            }, 
     4416                            complete: function( jqXHR, settings ){ 
     4417                                connector.hideProgressBar(); 
     4418                            } 
     4419                        });     
     4420                    } 
     4421                    else 
     4422                    { 
     4423                        if(confirm(get_lang("Do you confirm this import to your Calendar?"))){ 
     4424                            cExecute( import_url + "&from_ajax=true", handler_import_calendar); 
     4425                        } 
     4426                    } 
     4427    } 
     4428     
    42754429function open_msg_part(data){ 
    42764430        var handler_open_msg_part = function (data) 
  • trunk/expressoMail1_2/setup/phpgw_pt-br.lang

    r6952 r6996  
    135135Do you really want to empty your trash folder?  expressoMail1_2 pt-br   Você tem certeza que deseja limpar sua lixeira? 
    136136Do you wanna receive an alert for new messages? expressoMail1_2 pt-br   Você quer receber um alerta para mensagens novas? 
     137Wish you receive notifications for: "New messages", "Filter criteria", "Event alerts"?  expressoMail1_2 pt-br   Exibir notificações de: "Nova mensagem", "Criterio atendido", "Alerta de evento"? 
    137138Do you want to automatically display the message header?        expressoMail1_2 pt-br   Você deseja exibir automaticamente o cabecalho da mensagem? 
    138139Do you want to block this e-mail?       expressoMail1_2 pt-br   Você gostaria de bloquear este e-mail? 
     
    393394Number of dynamic contacts      admin   pt-br   Número de contatos dinâmicos 
    394395Number of messages to send:     expressoMail1_2 pt-br   Número de mensagens à enviar: 
     396Notification    expressoMail1_2 pt-br   Notificação 
     397Filter criteria expressoMail1_2 pt-br   Critério de filtro 
    395398Offline Pass    expressoMail1_2 pt-br   Senha do Offline 
    396399Offline success installed       expressoMail1_2 pt-br   Offline instalado com sucesso 
     
    929932Permission denied to folder "%1".       expressoMail1_2 pt-br   Permissão negada para pasta "%1". 
    930933Success expressoMail1_2 pt-br   Concluído 
     934The contact was moved from recent contacts to personal contacts successful.     expressoMail1_2 pt-br   O Contato foi movido dos contatos recentes para os contatos pessoais com sucesso. 
  • trunk/expressoMail1_2/setup/setup.inc.php

    r6528 r6996  
    1313$setup_info['expressoMail1_2']['name'] = 'expressoMail1_2'; 
    1414$setup_info['expressoMail1_2']['title'] = 'Expresso Mail'; 
    15 $setup_info['expressoMail1_2']['version'] = '2.4.8'; 
     15$setup_info['expressoMail1_2']['version'] = '2.4.8.1'; 
    1616$setup_info['expressoMail1_2']['app_order'] = 2; 
    1717$setup_info['expressoMail1_2']['tables'][] = 'phpgw_certificados'; 
  • trunk/expressoMail1_2/setup/tables_current.inc.php

    r6528 r6996  
    7878                                'alarm_deadline' => array('type' => 'timestamp', 'nullable' => true), 
    7979                                'done_deadline' => array('type' => 'timestamp', 'nullable' => true), 
    80                                 'is_done' => array('type' => 'int', 'precision' => '8','nullable' => true) 
     80                                'is_done' => array('type' => 'int', 'precision' => '2','nullable' => true), 
     81                                'sent' => array('type' => 'int', 'precision' => '2','nullable' => false, 'default' => 0) 
    8182                        ), 
    8283                        'pk' => array('id'), 
     
    9697                                'size' => array('type' => 'int','precision' => '16','nullable' => False), 
    9798                'dtstamp' => array('type' => 'int','precision' => '16','nullable' => False), 
    98                                 'owner' => array('type' => 'int', 'precision' => '8','nullable' => True) 
     99                                'owner' => array('type' => 'int', 'precision' => '8','nullable' => True), 
     100                                 
    99101                        ), 
    100102                        'pk' => array('id'), 
  • trunk/expressoMail1_2/setup/tables_update.inc.php

    r6543 r6996  
    312312            return $GLOBALS['setup_info']['expressoMail1_2']['currentver']; 
    313313        } 
     314         
     315        $test[] = '2.4.8'; 
     316        function expressoMail1_2_upgrade2_4_8() { 
     317                $oProc = $GLOBALS['phpgw_setup']->oProc; 
     318 
     319                $oProc->query("ALTER TABLE expressomail_message_followupflag ADD COLUMN sent smallint not null default 0"); 
     320 
     321                $GLOBALS['setup_info']['expressoMail1_2']['currentver'] = '2.4.8.1'; 
     322            return $GLOBALS['setup_info']['expressoMail1_2']['currentver']; 
     323        } 
    314324?> 
  • trunk/expressoMail1_2/templates/default/index.tpl

    r6487 r6996  
    186186        </fieldset>    
    187187</div> 
    188 <div id="import-dialog" title="Importar Evento" style="display:none"> 
     188<div id="import-dialog" title="Importar Evento/Tarefa" style="display:none"> 
    189189        <p>Seleciona uma Agenda para o Evento :</p> 
    190190        <p> 
  • trunk/expressoMail1_2/templates/default/main.css

    r6930 r6996  
    898898 
    899899 
    900  
    901900/* 
    902901 * Este arquivo limpa o estilo para a nova agenda, .new-event-win.active sobrescrevendo o código CSS 
     
    928927/*      font-family: Arial,Helvetica,sans-serif;*/ 
    929928/*}*/ 
    930 .new-event-win.active:focus { 
     929.new-event-win.active:focus, .new-task-win.active:focus { 
    931930        outline: 0; 
    932931} 
    933 .new-event-win.active body { 
     932.new-event-win.active body , .new-task-win.active body { 
    934933        line-height: 1; 
    935934        color: black; 
    936935        background: white; 
    937936} 
    938 .new-event-win.active ol, .new-event-win.active ul { 
     937.new-event-win.active ol, .new-event-win.active ul , .new-task-win.active ol, .new-task-win.active ul { 
    939938        list-style: none; 
    940939        list-style-image : none; 
     
    942941} 
    943942 
    944 .new-event-win.active table { 
     943.new-event-win.active table , .new-task-win.active table { 
    945944        border-collapse: separate; 
    946945        border-spacing: 0; 
    947946} 
    948 .new-event-win.active caption, .new-event-win.active th, .new-event-win.active td { 
     947.new-event-win.active caption, .new-event-win.active th, .new-event-win.active td, .new-task-win.active caption, .new-task-win.active th, .new-task-win.active td { 
    949948        /*text-align: left;*/ 
    950949        font-weight: normal; 
    951950} 
    952951.new-event-win.active blockquote:before, .new-event-win.active blockquote:after, 
    953 .new-event-win.active q:before, .new-event-win.active q:after { 
     952.new-event-win.active q:before, .new-event-win.active q:after, 
     953.new-task-win.active blockquote:before, .new-task-win.active blockquote:after, 
     954.new-task-win.active q:before, .new-task-win.active q:after { 
    954955        content: ""; 
    955956} 
    956 .new-event-win.active blockquote, .new-event-win.active q { 
     957.new-event-win.active blockquote, .new-event-win.active q , 
     958.new-task-win.active blockquote, .new-task-win.active q  
     959{ 
    957960        quotes: "" ""; 
    958961} 
    959 .new-event-win.active .mail.name-special, .new-event-win.active .name.name-special{ 
     962.new-event-win.active .mail.name-special, .new-event-win.active .name.name-special, 
     963.new-task-win.active .mail.name-special, .new-task-win.active .name.name-special 
     964{ 
    960965  padding: 0 0 0 35px; 
    961966} 
    962967 
    963 .new-event-win.active .add-attendee-search.search-field { 
     968.new-event-win.active .add-attendee-search.search-field , 
     969.new-task-win.active .add-attendee-search.search-field  
     970{ 
    964971  width: 249px; 
    965972 } 
    966973  
    967  .new-event-win.active #calendar_addevent_details4 { 
     974 .new-event-win.active #calendar_addevent_details4, .new-task-win.active #calendar_addtask _details4 { 
    968975  margin: 10px 0 0 0; 
    969976 }  
    970977  
    971  .new-event-win.active input{ 
     978 .new-event-win.active input, .new-task-win.active input{ 
    972979  color: #000; 
    973980 }  
    974981  
    975  .new-event-win.active #calendar_addevent_details5 { 
     982 .new-event-win.active #calendar_addevent_details5 , .new-task-win.active #calendar_addtask_details5 { 
    976983  margin: 10px 0 11px 0; 
    977984 } 
    978985 
    979 .new-event-win.active select { 
     986 .new-event-win fieldset.tab-level2, .new-task-win fieldset.tab-level2 { padding: 0px 5px; min-height: 110px; max-height: 310px; overflow: hidden;} 
     987  
     988.new-event-win.active select , .new-task-win.active select { 
    980989    border: 1px solid #CFCFCF; 
    981990    border-color: #CFCFCF; 
     
    983992    background-color: #FFF; 
    984993} 
    985 .new-event-win.active a:link, .new-event-win.active a:visited { 
     994.new-event-win.active a:link, .new-event-win.active a:visited  
     995.new-task-win.active a:link, .new-task-win.active a:visited 
     996{ 
     997 
    986998    color: #2E6E9E; 
    987999} 
    9881000 
    989 .new-event-win.active  dd, .new-event-win.active  dl, .new-event-win.active  dt{ 
     1001.new-event-win.active  dd, .new-event-win.active  dl, .new-event-win.active  dt,  
     1002.new-task-win.active  dd, .new-task-win.active  dl, .new-task-win.active  dt 
     1003{ 
    9901004        margin: 0; 
    9911005} 
     
    10011015{ color: #ff9933; }*/ 
    10021016 
    1003 .new-event-win.active #divAppbox{ 
     1017.new-event-win.active #divAppbox 
     1018.new-task-win.active #divAppbox 
     1019{ 
    10041020        overflow-x: auto; 
    10051021        overflow-y: scroll; 
     
    10071023 
    10081024.new-event-win.active select 
     1025.new-task-win.active select 
    10091026{ border-color: #CFCFCF; color: #555; padding-left:0px;} 
    10101027 
     
    10451062} 
    10461063 
     1064div.new-event-win.active div.button-files-upload {margin: 15px 0 0 0;} 
     1065 
    10471066fieldset.alarm{   
    10481067    border: none !important; 
     
    10511070} 
    10521071 
    1053 div.new-event-win.active div.button-files-upload{ 
    1054     margin: 15px 0 0 0; 
    1055 } 
    1056  
    1057 div.new-event-win.active div.files-list{ 
    1058     margin: 45px 0 0 0; 
     1072.new-task-win dl.block-add-attendee{ 
     1073        width: 350px; 
     1074} 
     1075.new-task-win.active .add-attendee-search.search-field{ 
     1076        width: 322px; 
     1077} 
     1078 
     1079.new-task-win .menu-container.footer-container{ 
     1080        width: 774px; 
    10591081} 
    10601082 
     
    11701192        border-top: 0px; 
    11711193}*/ 
    1172  
    11731194 
    11741195 
     
    14231444 
    14241445.fileupload_msg_tooltip{ 
    1425         width: 99.7%; 
    1426         text-align: center; 
    1427         background: #DFEFFC; 
    1428         font-weight: bold; 
    1429         border-radius: 5px; 
     1446    width: 99.7%; 
     1447    text-align: center; 
     1448    background: #DFEFFC; 
     1449    font-weight: bold; 
     1450    border-radius: 5px; 
    14301451    height: 115px; 
    14311452    line-height: 115px; 
     
    14571478    background-color: #5194d2; 
    14581479} 
     1480 
     1481/*freeow*/ 
     1482div.gray.alarmDeadline .button.delete 
     1483{ 
     1484/* 
     1485        display: block; 
     1486        position: absolute; 
     1487        right: 19px; 
     1488        top: 50px; 
     1489        */ 
     1490} 
     1491 
     1492/*div.gray.alarmDeadline ul.message-list{overflow: hidden;}*/ 
     1493 
     1494/*div.gray.alarmDeadline ul.message-list li{ margin: 5px 0;}*/ 
     1495 
     1496div.gray li{float: left; width: 253px;} 
     1497 
     1498div.gray li a.button.delete{float: right;} 
     1499 
     1500 
     1501.div-addtask #calendar_addtask_details1 .h1{ 
     1502  width: 100%; 
     1503} 
     1504 
     1505.div-addtask #calendar_addtask_details2 textarea { 
     1506  width: 675px; 
     1507} 
     1508 
     1509.div-addtask .button-files-upload{width: 100%;} 
     1510.div-addtask fieldset.block-add-attendee .search-result-list, fieldset.block-add-activity .search-result-list{width: 330px;} 
     1511 
     1512.new-event-win div.div-addevent, .new-task-win div.div-addtask{width: 775px;} 
     1513 
     1514.calendar-addevent-details-txt-timezone, .calendar-addtask-details-txt-timezone{width: 212px;}  
     1515 
     1516.div-addtask #calendar_addtask_details1 .time-previsao { width: 40px; } 
     1517 
     1518.div-addtask #calendar_addtask_details1 .date-previsao{ width: 80px; } 
     1519 
     1520.div-addtask #calendar_addtask_details6{ width: 756px; } 
     1521.div-addtask #calendar_addtask_details1 .start-time{ width: 40px; } 
     1522.div-addtask #calendar_addtask_details1 .start-date{ width: 80px; } 
     1523.div-addtask #calendar_addtask_details1 .end-time{ width: 40px; } 
     1524.div-addtask #calendar_addtask_details1 .end-date{ width: 80px; } 
     1525.div-addtask #calendar_addtask_details1 .previsao-termino { margin: 0 0 0 20px; } 
     1526.div-addtask #calendar_addtask_details1 .subitem { margin: 5px; display: block;} 
     1527.div-addtask #calendar_addtask_details1 .subitem .span_done{ margin: 0 30px;} 
     1528.div-addtask #calendar_addtask_details1 .subitem .span_done img{position: relative; top:4px; width:16px; height:16px;} 
     1529.div-addtask #calendar_addtask_details1 .calendar_addevent_details_lnk_timezone { margin: 0 0 0 20px;} 
     1530.div-addtask #calendar_addtask_details1 .subitem .done { width: 45px;} 
     1531.div-addtask #calendar_addtask_details1 .ui-spinner-buttons{ top: -2px !important;} 
     1532.div-addtask #calendar_addtask_details1 .ui-spinner-buttons .ui-spinner-up{height: 7px !important;} 
     1533.div-addtask #calendar_addtask_details1 .ui-spinner-buttons .ui-spinner-down{height: 8px !important;} 
     1534 
     1535.div-addtask #calendar_addtask_details1 .subitem .span_done.noAction{background-image: url("../../../prototype/modules/calendar/img/gray.png"); background-repeat: no-repeat; } 
     1536.div-addtask #calendar_addtask_details1 .subitem .span_done.inProcess{background-image: url("../../../prototype/modules/calendar/img/yellow.png"); background-repeat: no-repeat;} 
     1537.div-addtask #calendar_addtask_details1 .subitem .span_done.finished{background-image: url("../../../prototype/modules/calendar/img/green.png"); background-repeat: no-repeat;} 
     1538.div-addtask #calendar_addtask_details1 .subitem .span_done.canceled{background-image: url("../../../prototype/modules/calendar/img/red.png"); background-repeat: no-repeat;} 
     1539 
     1540#calendar_addtask_details4{margin: 0;} 
     1541#calendar_addtask_details5{margin: -2px 0 0 0;} 
     1542#calendar_addtask_details7{margin: 3px 0 0 0;} 
     1543.div-addtask #calendar_addtask_details1 .subitem .span_done label{position: relative; left: 28px;} 
     1544 
     1545.div-addtask fieldset#calendar_addtask_details5.tab-level2{ margin: 0 } 
     1546 
     1547.div-addtask  #calendar_addtask_details8 .parent {width: 746px; min-height: 208px; float: left;} 
     1548/*.div-addtask  #calendar_addtask_details8 .parent .child-top {width: 745px; height: 20px; background: #E8F4FD; border-left: 1px solid #CCC; border-right: 1px solid #CCC; border-bottom: 1px solid #CCC;}*/ 
     1549.div-addtask  #calendar_addtask_details8 .parent .child-top {width: 745px; height: 25px; background: #E8F4FD; border-left: 1px solid #CCC; border-right: 1px solid #CCC; border-bottom: 1px solid #CCC; border-top: 1px solid #CCC;} 
     1550.div-addtask  #calendar_addtask_details8 .parent .child-bottom {width: 745px; height: 208px; overflow: auto;  float: left; border-left: 1px solid #CCC; border-right: 1px solid #CCC; border-bottom: 1px solid #CCC;} 
     1551.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each { height: 20px; } 
     1552.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each:hover { background: #FFF2F2; cursor: pointer;} 
     1553 
     1554.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .date-hour {overflow: hidden; width: 140px; float: left; height: 20px} 
     1555.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .date-hour span { margin: 8px; float: left; } 
     1556.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .user{overflow: hidden; width: 150px; float: left;  height: 20px; border-left: 1px solid #CCC; } 
     1557.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .user span{ margin: 8px; float: left; } 
     1558.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .attribute{overflow: hidden; width: 130px; float: left;  height: 20px; border-left: 1px solid #CCC; } 
     1559.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .attribute span{ margin: 8px; float: left; } 
     1560.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .beforeValue{overflow: hidden; width: 150px; float: left;  height: 20px; border-left: 1px solid #CCC; } 
     1561.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .beforeValue span{ margin: 8px; float: left; } 
     1562.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .afterValue{overflow: hidden; width: 150px; float: left;  height: 20px; border-left: 1px solid #CCC; } 
     1563.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .afterValue span{ margin: 8px; float: left; } 
     1564 
     1565.div-addtask  #calendar_addtask_details8 .parent .child-top .date-hour { width: 140px; float: left; background: #E8F4FD; height: 20px; text-align: center; } 
     1566.div-addtask  #calendar_addtask_details8 .parent .child-top .date-hour span{ display: block; padding: 6px; font-weight: bold; color: #2E6E9E; } 
     1567.div-addtask  #calendar_addtask_details8 .parent .child-top .user { width: 150px; float: left; background: #E8F4FD; height: 20px; font-weight: bold; color: #2E6E9E; text-align: center;} 
     1568.div-addtask  #calendar_addtask_details8 .parent .child-top .user span{display: block; padding: 6px;} 
     1569.div-addtask  #calendar_addtask_details8 .parent .child-top .attribute { width: 130px; float: left; background: #E8F4FD; height: 20px; font-weight: bold; color: #2E6E9E;  text-align: center;} 
     1570.div-addtask  #calendar_addtask_details8 .parent .child-top .attribute span{display: block; padding: 6px;} 
     1571.div-addtask  #calendar_addtask_details8 .parent .child-top .beforeValue { width: 150px; float: left; background: #E8F4FD; height: 20px; font-weight: bold; color: #2E6E9E;  text-align: center;} 
     1572.div-addtask  #calendar_addtask_details8 .parent .child-top .beforeValue span{display: block; padding: 6px; } 
     1573.div-addtask  #calendar_addtask_details8 .parent .child-top .afterValue { width: 150px; float: left; background: #E8F4FD; height: 20px; font-weight: bold; color: #2E6E9E;  text-align: center;} 
     1574.div-addtask  #calendar_addtask_details8 .parent .child-top .afterValue span{display: block; padding: 6px; } 
Note: See TracChangeset for help on using the changeset viewer.