Changeset 6755


Ignore:
Timestamp:
07/11/12 12:09:14 (7 years ago)
Author:
douglasz
Message:

Ticket #2955 - Melhorar atualização de status de participante externo de evento do Calendar.

Location:
sandbox/2.4.2-expresso3
Files:
1 added
4 edited

Legend:

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

    r6717 r6755  
    31913191        } 
    31923192                attachments.id = "attachments_" + ID; 
     3193                var parserImport = false; 
    31933194                for (var i=0; i<info_msg.attachments.length; i++) 
    31943195                { 
     3196                        var import_url = '$this.db_functions.import_vcard&msg_folder='+info_msg.msg_folder+"&msg_number="+info_msg.msg_number+"&msg_part="+info_msg.attachments[i].pid+"&idx_file="+i+"&encoding="+info_msg.attachments[i].encoding; 
    31953197                        var link_attachment = document.createElement("a"); 
     3198                        link_attachment.setAttribute("class", "type_images"); 
     3199                        link_attachment.style.display = "block"; 
    31963200                        link_attachment.setAttribute("href", proxy_mensagens.link_anexo(info_msg,i)); 
    31973201                        link_attachment.innerHTML = url_decode(info_msg.attachments[i].name) + " ("+borkb(info_msg.attachments[i].fsize)+")"; 
     
    32063210                                link_import_attachment.setAttribute("onclick","javascript:import_calendar('"+info_msg.msg_folder+"&msg_number="+info_msg.msg_number+"&msg_part="+info_msg.attachments[i].pid+"&idx_file="+i+"&encoding="+info_msg.attachments[i].encoding+"'); return false;"); 
    32073211                                link_import_attachment.title = get_lang("Import to calendar"); 
     3212                                link_import_attachment.style.display = "inline"; 
    32083213                                link_import_attachment.align = "top"; 
    32093214                                link_import_attachment.style.marginLeft = "5px"; 
    32103215                                link_import_attachment.style.cursor = "pointer"; 
    32113216                                link_attachment.appendChild(link_import_attachment); 
    3212                         } 
    3213  
    3214                         if((url_decode(info_msg.attachments[i].name).indexOf(".eml") != -1)) 
     3217                                parserImport = true; 
     3218                        } 
     3219 
     3220            if((url_decode(info_msg.attachments[i].name).indexOf(".eml") != -1)) 
    32153221                        { 
    32163222                                //Link para importar calendário 
     
    32243230                                link_open_msg.style.cursor = "pointer"; 
    32253231                                link_attachment.appendChild(link_open_msg); 
    3226                 } 
    3227                  
    3228             link_attachment.innerHTML += '<br/>'; 
     3232                        } 
     3233                 
     3234            //link_attachment.innerHTML += '<br/>'; 
    32293235            attachments.appendChild(link_attachment); 
    32303236            } 
    32313237                tr6.appendChild(td6); 
    3232             tr6.appendChild(attachments); 
     3238        tr6.appendChild(attachments); 
    32333239                tbody_message_others_options.appendChild(tr6); 
    32343240        } 
    32353241 
     3242        if (parserImport){ 
     3243                $.ajax({ 
     3244                        url: "controller.php?action="+import_url+'&from_ajax=true&id_user='+User.me.id+'&readable=true&cirus_delimiter='+cyrus_delimiter+'&analize=true&uidAccount='+decodeOwner(), 
     3245                        async: true, 
     3246                        success: function(data){ 
     3247                                data = connector.unserialize(data); 
     3248 
     3249                                if(typeof(data) == "object"){ 
     3250                                    var calendarPermission = data.calendar; 
     3251                                    data = data.action; 
     3252                                } 
     3253                                         
     3254                                switch(parseInt(data)){ 
     3255                                case 5: 
     3256                                        $('.type_images').append('<img class="loader" src="templates/default/images/ajax-loader.gif" align="top" style="margin-left: 5px; cursor: pointer; display: inline">'); 
     3257                                        $.ajax({ 
     3258                                                url: "controller.php?action="+import_url+'&from_ajax=true&selected=true', 
     3259                                                success: function(msg){          
     3260                                                        $('.type_images').append('<img src="../prototype/modules/mail/img/flagDone.png" align="top" style="margin: 3px 0 0 5px; cursor: pointer; display: inline">').parent().find('.loader').remove(); 
     3261                                                        write_msg( ( ( connector.unserialize(msg)) == "ok") ? "Seu evento foi Atualizado com sucesso" : "Ocorreu um erro ao atualizar evento" ); 
     3262                                                } 
     3263                                        }); 
     3264                                        return; 
     3265                                        break;           
     3266                                case 4: 
     3267                                        $('.type_images').append('<img src="../prototype/modules/mail/img/flagDone.png" align="top" style="margin: 3px 0 0 5px; cursor: pointer; ">'); 
     3268                                        write_msg("Seu evento encontra-se atualizado."); 
     3269                                        return; 
     3270                                        break; 
     3271                                case 12: 
     3272                                        write_msg('Este evento não existe mais.'); 
     3273                                        return; 
     3274                                        break;                   
     3275                                } 
     3276                        } 
     3277                }); 
     3278        } 
    32363279        //k!! 
    32373280         
  • sandbox/2.4.2-expresso3/expressoMail1_2/js/main.js

    r6747 r6755  
    38813881                wfolders.makeWindow('null','import'); 
    38823882} 
    3883 function import_calendar(data){ 
    3884     var import_url = '$this.db_functions.import_vcard&msg_folder='+data; 
    3885     var logUser; 
    3886     var up; 
    3887     var owner; 
    3888      
    3889     //Verifica o contexto de importação 
    3890     var decodeOwner = function(){ 
    3891          
     3883 
     3884function decodeOwner(){ 
    38923885        owner = User.me.id; 
    38933886        var imapBox = openTab.imapBox[currentTab].split(cyrus_delimiter); 
     
    38953888            var user = DataLayer.get('user', {filter: ['=','uid',imapBox[1]]});              
    38963889            owner = $.isArray(user) ? user[0].id : user.id; 
    3897         } 
    3898          
     3890        }        
    38993891        return owner; 
    3900     } 
    3901      
     3892} 
     3893function import_calendar(data){ 
     3894    var import_url = '$this.db_functions.import_vcard&msg_folder='+data; 
     3895    var logUser; 
     3896    var up; 
     3897    var owner;    
    39023898    function handler_import_calendar(data){ 
    39033899            if(data === true){ 
  • sandbox/2.4.2-expresso3/prototype/modules/calendar/constants.php

    r6295 r6755  
    3333define('ICAL_ACTION_IMPORT_FROM_PERMISSION', 10); 
    3434define('ICAL_ACTION_NONE_FROM_PERMISSION', 11); 
     35define('ICAL_NOT_FOUND', 12); 
    3536 
    3637define('ATTENDEE_ACL_ORGANIZATION', 'o'); 
  • sandbox/2.4.2-expresso3/prototype/services/iCal.php

    r6528 r6755  
    475475                                $interation['schedulable://' . $schedulable['id']] = false; 
    476476                            break; 
    477  
     477                                 
    478478                        case 'ADD': 
    479479                            break; 
     
    623623 
    624624                        case 'REPLY': 
    625                             $interation = ICAL_ACTION_REPLY; 
     625                                if ($schedulable = self::_getSchedulable($uid)) { 
     626                                        while ($property = $component->getProperty('attendee', FALSE, TRUE)) 
     627                                            if ($attendee = self::_getParticipantByMail(str_replace('MAILTO:', '', $property['value']), $schedulable['participants'], true)) 
     628                                                        $interation = (constant('STATUS_' . strtoupper($property['params']['PARTSTAT'])) == $attendee['status']) ?  ICAL_ACTION_NONE : ICAL_ACTION_REPLY; 
     629                            }else 
     630                                $interation = ICAL_NOT_FOUND; 
    626631                            break; 
    627632 
     
    713718     
    714719     
    715     private static function _getParticipantByMail($mail, &$participants) { 
     720    private static function _getParticipantByMail($mail, &$participants, $isFull) { 
    716721        if ($participants && $participants != '') 
    717722            foreach ($participants as $i => $v) 
    718723                if ((is_array($v) && isset($v['user'])) && ($v['user']['mail'] == $mail || (isset($v['user']['mailAlternateAddress']) && in_array($mail, $v['user']['mailAlternateAddress'])))) 
    719                     return $v['id']; 
     724                      return !!$isFull ? $v : $v['id']; 
    720725        return false; 
    721726    } 
Note: See TracChangeset for help on using the changeset viewer.