Changeset 5389


Ignore:
Timestamp:
01/18/12 08:29:26 (12 years ago)
Author:
gustavo
Message:

Ticket #2434 - Inserida a função de criar eventos a partir de um email

Location:
trunk
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/index.php

    r5385 r5389  
    1212        $_SESSION['phpgw_info']['expressomail']['user'] = $GLOBALS['phpgw_info']['user']; 
    1313        $GLOBALS['phpgw']->css->validate_file('expressoMail1_2/templates/' . $GLOBALS['phpgw_info']['server']['template_set'] . '/main.css'); 
     14        //$GLOBALS['phpgw']->css->validate_file('expressoMail1_2/templates/' . $GLOBALS['phpgw_info']['server']['template_set'] . '/expressoMail_reset.css'); 
    1415        $GLOBALS['phpgw']->css->validate_file('phpgwapi/js/dftree/dftree.css'); 
    1516        echo $GLOBALS['phpgw']->css->get_css(); 
     
    1718        echo "<script src='js/modal/modal.js'></script>"; 
    1819        //jquery and Editor  
    19                 echo "  <script src='../library/jquery/jquery.js' language='javascript'></script>  
     20                echo "  <link rel='Stylesheet' type='text/css' href='templates/default/expressoMail_reset.css' /> 
     21                                        <script type='text/javascript' src='../prototype/app/plugins/jquery/jquery.min.js'></script> 
     22                                        <script type='text/javascript' src='../prototype/app/plugins/jquery/jquery-ui.min.js'></script> 
     23                                        <script type='text/javascript' src='../prototype/app/plugins/jquery/jquery-ui.custom.min.js'></script> 
    2024                                        <script src='../prototype/app/plugins/json2/json2.js' language='javascript'></script> 
    2125                                        <script src='../prototype/app/plugins/ejs/ejs.js' language='javascript'></script> 
    2226                                        <script src='../prototype/app/plugins/store/jquery.store.js' language='javascript'></script> 
    2327                                        <script src='../prototype/app/datalayer.js' language='javascript'></script>                                      
     28                                        <script type='text/javascript' src='../prototype/app/plugins/scrollto/jquery.scrollTo.js'></script> 
     29                                        <script language='javascript'>DataLayer.dispatchPath = '../prototype/';</script>                                         
    2430                        <script src='../library/ckeditor/ckeditor.js' language='javascript'></script>  
    2531                        <script src='../library/ckeditor/adapters/jquery.js' language='javascript'></script>  
     32                                        <link rel='Stylesheet' type='text/css' href='../prototype/app/plugins/jquery/jquery-ui.css' />                                   
     33                                        <link rel='Stylesheet' type='text/css' href='../prototype/app/plugins/jquery/jquery-ui.custom.css' /> 
     34                                        <script type='text/javascript' src='../library/timepicker/jquery-ui-timepicker-addon.js'></script> 
     35                                        <script type='text/javascript' src='../prototype/app/plugins/jquery/i18n/jquery.ui.datepicker-pt-BR.js'></script> 
     36                                        <link rel='Stylesheet' type='text/css' href='../library/timepicker/jquery-ui-timepicker-addon.css' /> 
     37                                        <link rel='stylesheet' type='text/css' href='../prototype/app/plugins/zebradialog/css/zebra_dialog.css'></link> 
     38                                        <script type='text/javascript' src='../prototype/app/plugins/zebradialog/javascript/zebra_dialog.js'></script> 
     39                                        <script type='text/javascript' src='../prototype/app/plugins/datejs/date-pt-BR.js'></script> 
     40                                        <script type='text/javascript' src='../prototype/app/plugins/datejs/sugarpak.js'></script> 
     41                                        <script type='text/javascript' src='../prototype/app/plugins/datejs/parser.js'></script> 
     42                                        <script type='text/javascript' src='../prototype/app/plugins/dateFormat/dateFormat.js'></script> 
     43                                        <script type='text/javascript' src='../prototype/app/plugins/watermark/jquery.watermarkinput.js'></script> 
     44                                        <script type='text/javascript' src='../prototype/app/plugins/mask/jquery.maskedinput.js'></script> 
     45                                        <script type='text/javascript' src='../prototype/app/plugins/alphanumeric/jquery.alphanumeric.js'></script> 
     46                                        <script> 
     47                                        $.ajax({ 
     48                                                url: '../prototype/modules/calendar/index.php', 
     49                                                async: false, 
     50                                                success: function(){ 
     51                                                } 
     52                                        }); 
     53                                        </script> 
     54                                        <script type='text/javascript' src='../library/timepicker/localization/jquery-ui-timepicker-pt-BR.js'></script> 
     55                                        <script type='text/javascript' src='../prototype/modules/calendar/js/calendar.codecs.js'></script> 
     56                                        <script type='text/javascript' src='../prototype/modules/calendar/js/helpers.js'></script> 
     57                                        <script type='text/javascript' src='../prototype/app/plugins/encoder/encoder.js'></script> 
     58                                        <script type='text/javascript' src='../prototype/app/plugins/qtip/jquery.qtip-1.0.0-rc3.min.js'></script> 
     59                                        <script language='javascript'>var CalendarBkp = Calendar;</script> 
    2660                <script src='js/rich_text_editor.js' type='text/javascript'></script> 
    2761                <script src='js/base64.js' type='text/javascript'></script>"; 
     
    3872        echo '<script type="text/javascript" src="../phpgwapi/js/wz_dragdrop/wz_dragdrop.js?'.$update_version.'"></script> 
    3973                <script type="text/javascript" src="../phpgwapi/js/dJSWin/dJSWin.js?'.$update_version.'"></script>'; 
     74        echo "<script language='javascript'>Calendar = $.extend(CalendarBkp, Calendar);</script>"; 
     75                 
    4076 
    4177        echo ' 
     
    306342 
    307343<link rel="stylesheet" href="../prototype/modules/attach_message/attach_message.css" type="text/css" /> 
     344<link rel='stylesheet' type='text/css' href='../prototype/modules/calendar/css/layout.css' /> 
     345<link rel='stylesheet' type='text/css' href='../prototype/modules/calendar/css/style.css' /> 
    308346 
    309347</body> 
  • trunk/expressoMail1_2/js/draw_api.js

    r5370 r5389  
    24502450        to_values.type = "HIDDEN"; 
    24512451        to_values.value = info_msg.toaddress2; //Veio do IMAP, sem images nem links. 
    2452  
    24532452        // Salva a pasta da mensagem 
    24542453        var input_current_folder = document.createElement('input'); 
     
    26002599        subject.innerHTML = info_msg.subject; 
    26012600        subject.className = "header_message_field"; 
     2601        var new_event_logo = document.createElement("IMG"); 
     2602        new_event_logo.title = "Criar evento a partir deste email"; 
     2603        new_event_logo.alt = "Criar evento a partir deste email"; 
     2604        new_event_logo.src = "./templates/default/images/calendar_add.png"; 
     2605        new_event_logo.style.cursor = "pointer"; 
     2606        new_event_logo.style.marginLeft = "5px"; 
     2607        new_event_logo.onclick = function(){ 
     2608                DataLayer.dispatchPath = "../prototype/"; 
     2609                var path = "../prototype/modules/calendar/"; 
     2610                eventDetails({  
     2611                                summary : $("#subject_"+ID).text(), 
     2612                                description : $("#body_" + ID).text(), 
     2613                                startTime: $.now(), 
     2614                                endTime:!!User.preferences.defaultCalendar ? Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration != "" ? ($.now() + Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration * 60000) : (User.preferences.defaultDuration * 60000) 
     2615                                : $.now() + (User.preferences.defaultDuration * 60000) 
     2616                }, true, path); 
     2617                $(".new-event-win").find('input.time').timepicker({  
     2618                        closeText: 'Ok', 
     2619                        hourGrid: 4, 
     2620                        minuteGrid: 10, 
     2621                        //ampm : ((User.preferences.hourFormat.length > 5) ? true: false), 
     2622                        timeFormat: "hh:mm tt", 
     2623                        onSelect: function (selectedDateTime){ 
     2624                                if(!(User.preferences.hourFormat.length == 5)) 
     2625                                        $(this).val(selectedDateTime.replace(/[\.]/gi, ""));                                                             
     2626                        }, 
     2627                        onClose : function (selectedDateTime){ 
     2628                                if(!(User.preferences.hourFormat.length == 5)) 
     2629                                        $(this).val(selectedDateTime.replace(/[\.]/gi, "")); 
     2630                        } 
     2631                }); 
     2632                var emails = $("#to_values_"+ID).val(); 
     2633                emails = emails.split(","); 
     2634                var blkAddAtendee = UI.dialogs.addEvent.find('#calendar_addevent_details6'); 
     2635                var onShowToolTip = function(arg0) { 
     2636                        $('.qtip-active .button.close').button({ 
     2637                                icons: {primary: "ui-icon-close"}, 
     2638                                text: false 
     2639                        }); 
     2640                        $('.qtip-active .button').button() 
     2641                        .filter('.save').click(function(event, ui) { 
     2642                                if (saveContact()) {                                             
     2643                                        lastEditAttendeeToolTip.qtip("destroy"); 
     2644                                } else { 
     2645                                        return false; 
     2646                                } 
     2647                        }).end() 
     2648                        .filter('.cancel').click(function(event, ui) { 
     2649                                lastEditAttendeeToolTip.qtip("destroy"); 
     2650                        }) 
     2651 
     2652                        /**  
     2653                         * Trata o ENTER no campo da tooltip, equivalente a salvar  
     2654                         * o novo convidado. 
     2655                         */ 
     2656                        $('.qtip-active input').keydown(function(event) { 
     2657                                if (event.keyCode == '13') {                                             
     2658                                        if (saveContact()) {                                             
     2659                                                lastEditAttendeeToolTip.qtip("destroy"); 
     2660                                        } 
     2661 
     2662                                        lastEditAttendeeToolTip.qtip("destroy"); 
     2663                                        event.preventDefault(); 
     2664                                } 
     2665                        }) 
     2666                        .filter('[name="name"]').Watermark("informe o nome do contato").end() 
     2667                        .filter('[name="mail"]').Watermark("informe o email do contato"); 
     2668                } 
     2669                                 
     2670                $.each(emails, function(index, value) {  
     2671                        var decoded =  Encoder.htmlDecode(value); 
     2672                        var newAttendeeName = ""; 
     2673                        if(decoded.match(/<([^<]*)>[\s]*$/)){ 
     2674                                var user = DataLayer.get('user', ["=", "mail", decoded.match(/<([^<]*)>[\s]*$/)[1].toLowerCase()], true); 
     2675                                if(!(!!user)){ 
     2676                                        newAttendeeName = decoded.match(/"([^"]*)"/)[1]; 
     2677                                        var newAttendeeEmail = decoded.match(/<([^<]*)>[\s]*$/)[1]; 
     2678                                } 
     2679                        } 
     2680                        else{ 
     2681                                var user = DataLayer.get('user', ["=", "mail", decoded], true); 
     2682                                if(!(!!user)){ 
     2683                                        var newAttendeeEmail = decoded; 
     2684                                } 
     2685                        } 
     2686                                 
     2687                        var isExternal = (!!user && !(!!user.isExternal)) ? 0 : 1; 
     2688                        var add = false; 
     2689                        if(user){ 
     2690                                if(!(blkAddAtendee.find('label.mail[title="' + user[0].mail + '"]').length)){ 
     2691                                        user[0].id =  DataLayer.put('participant', {user: user[0].id, isExternal: isExternal}); 
     2692                                        blkAddAtendee.find('dd.attendee-list ul.attendee-list').append( 
     2693                                                DataLayer.render(path+'templates/participants_add_itemlist.ejs', user) 
     2694                                        ) 
     2695                                        .find('.button.close').addClass('small').button({text:false, icons:{primary:'ui-icon-close'}}).click(function() { 
     2696                                                DataLayer.remove('participant', $(this).parent().find('[type=checkbox]').val()); 
     2697                                                $(this).parent().remove(); 
     2698                                        }).end() 
     2699                                        .scrollTo('max'); 
     2700                                        add = true; 
     2701                                } 
     2702                        }else{ 
     2703                                userId = DataLayer.put('user', {name: newAttendeeName, mail: newAttendeeEmail, isExternal: isExternal}); 
     2704                                newAttendeeId = DataLayer.put('participant', {user: userId, isExternal: isExternal}); 
     2705                                 
     2706                                blkAddAtendee.find('dd.attendee-list ul.attendee-list').append( 
     2707                                        DataLayer.render(path+'templates/participants_add_itemlist.ejs', [{id:newAttendeeId, name: newAttendeeName, mail: newAttendeeEmail, isExternal: 1}]) 
     2708                                ).find('.button.close').addClass('small').button({text:false, icons:{primary:'ui-icon-close'}}).click(function() { 
     2709                                        DataLayer.remove('participant', $(this).parent().find('[type=checkbox]').val()); 
     2710                                        $(this).parent().remove(); 
     2711                                }).end() 
     2712                                .scrollTo('max'); 
     2713                                add = true; 
     2714                        } 
     2715                        if(add){ 
     2716                                lastEditAttendeeToolTip = blkAddAtendee.find('dd.attendee-list li:last'); 
     2717                                lastEditAttendeeToolTip.qtip({ 
     2718                                        show: {ready: false, solo: true, when: {event: 'click'}}, 
     2719                                        hide: false, 
     2720                                        content: { 
     2721                                                text: $('<div></div>').html( DataLayer.render( path+'templates/attendee_quick_edit.ejs', {attendee:{name:(newAttendeeName ? newAttendeeName : user[0].name), mail:(newAttendeeEmail ? newAttendeeEmail : user[0].mail)}} ) ),  
     2722                                                title: { 
     2723                                                        text:'Detalhes do participante',  
     2724                                                        button: '<a class="button close" href="#">close</a>' 
     2725                                                } 
     2726                                        }, 
     2727                                        style: {name: 'blue', tip: {corner: 'leftMiddle'}, border: {width: 4, radius: 8}, width: {min: 230, max:230}}, 
     2728                                        position: { 
     2729                                                corner: { 
     2730                                                        target: 'rightMiddle', 
     2731                                                        tooltip: 'leftMiddle' 
     2732                                                }, 
     2733                                                adjust: {x:0, y:0} 
     2734                                        } 
     2735                                }); 
     2736                                lastEditAttendeeToolTip.qtip("api").onShow = onShowToolTip; 
     2737                        } 
     2738                });                                              
     2739        } 
     2740        subject.appendChild(new_event_logo); 
    26022741        tr5.appendChild(td5); 
    26032742        tr5.appendChild(subject); 
  • trunk/expressoMail1_2/js/main.js

    r5385 r5389  
    13701370                data.cco = data.cco.replace(/&gt;/gi,">"); 
    13711371        } 
    1372         if (document.getElementById("subject_" + border_ID)) 
    1373                 data.subject = document.getElementById("subject_" + border_ID).innerHTML; 
     1372        if ($("#subject_" + border_ID)) 
     1373                data.subject = $("#subject_" + border_ID).text(); 
    13741374        if(data.subject == get_lang("(no subject)   ")) 
    13751375                data.subject = ''; 
  • trunk/expressoMail1_2/templates/default/config.tpl

    r5359 r5389  
    118118        </tr> 
    119119        <tr bgcolor="{row_off}">  
    120             <td>{lang_New_agenda}</td>  
     120            <td>{lang_Allow_importing_and_creating_events_directly_on_ExpressoCalendar_module_(new)}</td>  
    121121            <td>  
    122122                   <select name="newsettings[new_agenda]">  
  • trunk/expressoMail1_2/templates/default/index.tpl

    r5346 r5389  
    203203        </p> 
    204204</div> 
    205 <div id="create-event-dialog" title="Criar Evento" style="display:none"> 
     205<div id="sandbox" class="expresso-calendar-container hidden"> 
    206206</div> 
    207207<!-- END list --> 
  • trunk/prototype/modules/calendar/js/helpers.js

    r5387 r5389  
    162162} 
    163163*/ 
    164 function eventDetails( objEvent, decoded ) 
     164function eventDetails( objEvent, decoded, path) 
    165165{ 
     166        if(path == undefined) 
     167                path = ""; 
     168                 
    166169        if( !decoded ) 
    167170            objEvent = DataLayer.decode( "schedulable:calendar", objEvent ); 
     
    184187        zebraDiscardEventDialog = false; 
    185188         
    186         DataLayer.render( 'templates/event_add.ejs', {event:objEvent}, function( html ){         
     189        var html = DataLayer.render( path+'templates/event_add.ejs', {event:objEvent});  
    187190                 
    188191                if (!UI.dialogs.addEvent) { 
     
    280283                                calendarSelected.useAlarmDefault = 1; 
    281284                                if(calendarSelected.defaultAlarms != ""){ 
    282                                         var li_attach = DataLayer.render('templates/alarms_add_itemlist.ejs', {alarm:calendarSelected}); 
     285                                        var li_attach = DataLayer.render(path+'templates/alarms_add_itemlist.ejs', {alarm:calendarSelected}); 
    283286                                                jQuery('.event-alarms-list').append(li_attach).find('.button.remove').button({text:false, icons:{primary:'ui-icon-close'}}).click(function(el) { 
    284287                                                        if( $(this).parent().remove().find('li').is(':empty') ) { 
     
    300303                                calendarSelected.useAlarmDefault = 1; 
    301304                                if(calendarSelected.defaultAlarms != ""){ 
    302                                         var li_attach = DataLayer.render('templates/alarms_add_itemlist.ejs', {alarm:calendarSelected}); 
     305                                        var li_attach = DataLayer.render(path+'templates/alarms_add_itemlist.ejs', {alarm:calendarSelected}); 
    303306                                                jQuery('.event-alarms-list').append(li_attach).find('.button.remove').button({text:false, icons:{primary:'ui-icon-close'}}).click(function(el) { 
    304307                                                        var id; 
     
    407410 
    408411            UI.dialogs.addEvent.find('.button-add-alarms').click(function(){ 
    409                         var li_attach = DataLayer.render('templates/alarms_add_itemlist.ejs', {}); 
     412                        var li_attach = DataLayer.render(path+'templates/alarms_add_itemlist.ejs', {}); 
    410413 
    411414                        jQuery('.event-alarms-list').append(li_attach).find('.button.remove').button({text:false, icons:{primary:'ui-icon-close'}}).click(function(el) { 
     
    428431//          }); 
    429432             
    430             DataLayer.render( 'templates/attendee_add.ejs', {event:objEvent}, function( attendeeHtml ){ 
     433                var attendeeHtml = DataLayer.render( path+'templates/attendee_add.ejs', {event:objEvent}); 
    431434         
    432435                        // load template of attendees 
     
    573576                                                                hide: false, 
    574577                                                                content: { 
    575                                                                         text: $('<div></div>').html( DataLayer.render( 'templates/attendee_quick_edit.ejs', {attendee:{name:newAttendeeName, mail:newAttendeeEmail}} ) ),  
     578                                                                        text: $('<div></div>').html( DataLayer.render( path+'templates/attendee_quick_edit.ejs', {attendee:{name:newAttendeeName, mail:newAttendeeEmail}} ) ),  
    576579                                                                        title: { 
    577580                                                                                text:'Detalhes do participante',  
     
    612615                                                        user[0].id =  DataLayer.put('participant', {user: user[0].id, isExternal: isExternal}); 
    613616                                                        blkAddAtendee.find('dd.attendee-list ul.attendee-list').append( 
    614                                                                 DataLayer.render('templates/participants_add_itemlist.ejs', user) 
     617                                                                DataLayer.render(path+'templates/participants_add_itemlist.ejs', user) 
    615618                                                        ) 
    616619                                                        .find('.button.close').addClass('small').button({text:false, icons:{primary:'ui-icon-close'}}).click(function() { 
     
    634637                                                  
    635638                                                blkAddAtendee.find('dd.attendee-list ul.attendee-list').append( 
    636                                                         DataLayer.render('templates/participants_add_itemlist.ejs', [{id:newAttendeeId, name: newAttendeeName, mail: newAttendeeEmail, isExternal: 1}]) 
     639                                                        DataLayer.render(path+'templates/participants_add_itemlist.ejs', [{id:newAttendeeId, name: newAttendeeName, mail: newAttendeeEmail, isExternal: 1}]) 
    637640                                                ).find('.button.close').addClass('small').button({text:false, icons:{primary:'ui-icon-close'}}).click(function() { 
    638641                                                        DataLayer.remove('participant', $(this).parent().find('[type=checkbox]').val()); 
     
    651654                                                        hide: false, 
    652655                                                        content: { 
    653                                                                 text: $('<div></div>').html( DataLayer.render( 'templates/attendee_quick_edit.ejs', {attendee:{name:newAttendeeName, mail:newAttendeeEmail}} ) ),  
     656                                                                text: $('<div></div>').html( DataLayer.render( path+'templates/attendee_quick_edit.ejs', {attendee:{name:newAttendeeName, mail:newAttendeeEmail}} ) ),  
    654657                                                                title: { 
    655658                                                                        text:'Detalhes do participante',  
     
    700703                                                result[i].enabled = (blkAddAtendee.find('dd.attendee-list ul.attendee-list label.mail[title="' +  result[i].mail + '"]').length) ? false : true; 
    701704                                                                                         
    702                                         blkAddAtendee.find('ul.search-result-list').append(DataLayer.render( 'templates/participants_search_itemlist.ejs', result)); 
     705                                        blkAddAtendee.find('ul.search-result-list').append(DataLayer.render( path+'templates/participants_search_itemlist.ejs', result)); 
    703706 
    704707                                        blkAddAtendee.find('ul.search-result-list li').click(function(event, ui){ 
     
    707710                                                        newAttendeeId = DataLayer.put('participant', {user: old_item.find('.id').html(), isExternal: 0}); 
    708711                                                        blkAddAtendee.find('dd.attendee-list ul.attendee-list') 
    709                                                         .append(DataLayer.render('templates/participants_add_itemlist.ejs', [{id: newAttendeeId, name: old_item.find('.name').html(), mail: old_item.find('.mail').html(), isExternal: 0}])) 
     712                                                        .append(DataLayer.render(path+'templates/participants_add_itemlist.ejs', [{id: newAttendeeId, name: old_item.find('.name').html(), mail: old_item.find('.mail').html(), isExternal: 0}])) 
    710713                                                        .find('.button').addClass('small').button({text:false, icons: {primary:'ui-icon-close'}}).click(function () { 
    711714                                                                $(this).parent().remove(); 
     
    765768                                } 
    766769                        }); 
    767                 }); 
    768770                UI.dialogs.addEvent.find(':input').change(function(event){ 
    769771                        if (event.keyCode != '27' && event.keyCode != '13') 
     
    775777                 
    776778                UI.dialogs.addEvent.dialog('open'); 
    777         }); 
    778          
    779          
    780779} 
    781780 
Note: See TracChangeset for help on using the changeset viewer.