Ignore:
Timestamp:
04/30/12 15:42:36 (12 years ago)
Author:
acoutinho
Message:

Ticket #2672 - Erro ao importar alguns ics vindos de outros aplicativos

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/modules/calendar/js/calendar.shared.js

    r6052 r6066  
    22    var html = DataLayer.render('templates/shared_calendar.ejs', { 
    33        calendar: Calendar.calendars 
    4         });      
     4    });  
    55         
    66    //Variaval global para manipulação dos usuários 
     
    9292                var permission = DataLayer.get('calendarToPermission', { 
    9393                    filter: ['AND', ['=', 'calendar', calendarId], ['=', 'user', '0']] 
    94                     }, true); 
     94                }, true); 
    9595                if($.isArray(permission)) 
    9696                    permission = permission[0]; 
     
    186186                        name: currentUsers [id] .name,  
    187187                        mail: currentUsers [id] .mail 
    188                         }])) 
     188                    }])) 
    189189                    .scrollTo('max'); 
    190190                                                 
     
    300300        } 
    301301    }); 
    302 if(dataCurrent){ 
    303     for(var i = 0; i < dataCurrent.length; i++){ 
    304         if(dataCurrent[i].user == "0"){ 
    305             UI.dialogs.sharedCalendar.find('input[name="isPublic"]').attr('checked', 'checked') 
    306             .parent().find('.free-busy').toggleClass('hidden'); 
    307             if(dataCurrent[i].acl['busy']) 
    308                 UI.dialogs.sharedCalendar.find('input[name="busy"]').attr('checked', 'checked'); 
    309         }else{ 
    310             currentUsers[dataCurrent[i].user.id] = true; 
    311  
    312             UI.dialogs.sharedCalendar.find('dd.user-list ul.user-list') 
    313             .append(DataLayer.render('templates/user_shared_add_itemlist.ejs', [{ 
    314                 id: dataCurrent[i].user.id,  
    315                 name: dataCurrent[i].user.name,  
    316                 mail: dataCurrent[i].user.mail,  
    317                 acl:dataCurrent[i].acl,  
    318                 aclValue: dataCurrent[i].aclValues,  
    319                 current: true,  
    320                 idPermission: dataCurrent[i].id 
    321             }])) 
    322             .scrollTo('max'); 
    323             $('li.not-user').remove(); 
    324             callbackSharedCotactsAdd(); 
    325  
    326             for (var f in dataCurrent[i].acl){ 
    327                 if(dataCurrent[i].acl[f]){ 
    328                     UI.dialogs.sharedCalendar.find('.'+f+':last').toggleClass('attendee-permissions-change-button') 
    329                     .find('span:first').toggleClass('attendee-permissions-change').end();   
    330                 } 
    331             } 
    332         } 
    333     } 
    334 } 
    335 UI.dialogs.sharedCalendar.dialog('open'); 
     302    if(dataCurrent){ 
     303        for(var i = 0; i < dataCurrent.length; i++){ 
     304            if(dataCurrent[i].user == "0"){ 
     305                UI.dialogs.sharedCalendar.find('input[name="isPublic"]').attr('checked', 'checked') 
     306                .parent().find('.free-busy').toggleClass('hidden'); 
     307                if(dataCurrent[i].acl['busy']) 
     308                    UI.dialogs.sharedCalendar.find('input[name="busy"]').attr('checked', 'checked'); 
     309            }else{ 
     310                currentUsers[dataCurrent[i].user.id] = true; 
     311 
     312                UI.dialogs.sharedCalendar.find('dd.user-list ul.user-list') 
     313                .append(DataLayer.render('templates/user_shared_add_itemlist.ejs', [{ 
     314                    id: dataCurrent[i].user.id,  
     315                    name: dataCurrent[i].user.name,  
     316                    mail: dataCurrent[i].user.mail,  
     317                    acl:dataCurrent[i].acl,  
     318                    aclValue: dataCurrent[i].aclValues,  
     319                    current: true,  
     320                    idPermission: dataCurrent[i].id 
     321                }])) 
     322                .scrollTo('max'); 
     323                $('li.not-user').remove(); 
     324                callbackSharedCotactsAdd(); 
     325 
     326                for (var f in dataCurrent[i].acl){ 
     327                    if(dataCurrent[i].acl[f]){ 
     328                        UI.dialogs.sharedCalendar.find('.'+f+':last').toggleClass('attendee-permissions-change-button') 
     329                        .find('span:first').toggleClass('attendee-permissions-change').end();   
     330                    } 
     331                } 
     332            } 
     333        } 
     334    } 
     335    UI.dialogs.sharedCalendar.dialog('open'); 
    336336} 
    337337 
     
    378378                backgroundColor: (!!type ? 'fbec88' : '8c8c8c'),  
    379379                borderColor: (!!type ? 'fad24e' : '120d0d') 
    380                 }, !!idPermission ? { 
     380            }, !!idPermission ? { 
    381381                id: idPermission 
    382382            } : {} )); 
     
    405405                } 
    406406            }, true); 
    407         var resultPublic = DataLayer.get('calendarToPermission', { 
    408             filter: ['AND', ['=','type',1],   ['OR', ['i*','name',$(this).val()], ["i*", "description", $(this).val()]]]  ,  
    409             criteria: { 
    410                 deepness: 2 
    411             } 
    412         }, true); 
    413  
    414     /** 
     407            var resultPublic = DataLayer.get('calendarToPermission', { 
     408                filter: ['AND', ['=','type',1],   ['OR', ['i*','name',$(this).val()], ["i*", "description", $(this).val()]]]  ,  
     409                criteria: { 
     410                    deepness: 2 
     411                } 
     412            }, true); 
     413 
     414            /** 
    415415    * TODO: trocar por template 
    416416    */ 
    417     UI.dialogs.sharedCalendar.find('ul.search-result-list').empty().css('overflow', 'hidden'); 
    418         if (!result && !resultPublic) { 
    419             UI.dialogs.sharedCalendar.find('ul.search-result-list').append('<li><label class="empty">Nenhum resultado encontrado.</label></li>'); 
    420         } 
    421                                  
    422         if(resultPublic){ 
    423             var notConflict = []; 
    424             var conflit = false; 
    425             for(var i = 0; i < resultPublic.length; i++){ 
    426                 for(var j = 0; j < result.length; j++){ 
    427                     if(resultPublic[i].id == result[j].calendar.id) 
    428                         conflit = true; 
    429                 } 
    430                 if(!conflit){ 
    431                     notConflict.push(resultPublic[i]); 
    432                     conflit = false; 
    433                 } 
    434             } 
    435         } 
    436         resultPublic = notConflict; 
    437                                  
    438         var resultNormalize = []; 
    439         for(i=0; i<result.length; i++){ 
    440             resultNormalize.push({ 
    441                 id: result[i].calendar.id,  
    442                 name:result[i].calendar.name,  
    443                 mail: result[i].calendar.description,  
    444                 type: 0 
    445             }) 
    446             resultNormalize[i].enabled = currentCalendars[result[i].id] ? false : true; 
    447         } 
    448         if(resultPublic) 
    449             for(i=0; i<resultPublic.length; i++){ 
     417            UI.dialogs.sharedCalendar.find('ul.search-result-list').empty().css('overflow', 'hidden'); 
     418            if (!result && !resultPublic) { 
     419                UI.dialogs.sharedCalendar.find('ul.search-result-list').append('<li><label class="empty">Nenhum resultado encontrado.</label></li>'); 
     420            } 
     421                                 
     422            if(resultPublic){ 
     423                var notConflict = []; 
     424                var conflit = false; 
     425                for(var i = 0; i < resultPublic.length; i++){ 
     426                    for(var j = 0; j < result.length; j++){ 
     427                        if(resultPublic[i].id == result[j].calendar.id) 
     428                            conflit = true; 
     429                    } 
     430                    if(!conflit){ 
     431                        notConflict.push(resultPublic[i]); 
     432                        conflit = false; 
     433                    } 
     434                } 
     435            } 
     436            resultPublic = notConflict; 
     437                                 
     438            var resultNormalize = []; 
     439            for(i=0; i<result.length; i++){ 
    450440                resultNormalize.push({ 
    451                     id: resultPublic[i].calendar.id,  
    452                     name:resultPublic[i].calendar.name,  
    453                     mail: resultPublic[i].calendar.description, 
    454                     type: 1 
     441                    id: result[i].calendar.id,  
     442                    name:result[i].calendar.name,  
     443                    mail: result[i].calendar.description,  
     444                    type: 0 
    455445                }) 
    456                 resultNormalize[i].enabled = currentCalendars[resultPublic[i].id] ? false : true; 
    457             } 
    458                                  
    459         UI.dialogs.sharedCalendar.find('ul.search-result-list').append(DataLayer.render( 'templates/calendar_search_itemlist.ejs', resultNormalize)); 
    460  
    461         UI.dialogs.sharedCalendar.find('ul.search-result-list li').click(function(event, ui){ 
    462             if ($(event.target).is('input')) { 
    463                 old_item = $(event.target).parents('li'); 
    464                 var id = old_item.find('.id').html(); 
     446                resultNormalize[i].enabled = currentCalendars[result[i].id] ? false : true; 
     447            } 
     448            if(resultPublic) 
     449                for(i=0; i<resultPublic.length; i++){ 
     450                    resultNormalize.push({ 
     451                        id: resultPublic[i].calendar.id,  
     452                        name:resultPublic[i].calendar.name,  
     453                        mail: resultPublic[i].calendar.description, 
     454                        type: 1 
     455                    }) 
     456                    resultNormalize[i].enabled = currentCalendars[resultPublic[i].id] ? false : true; 
     457                } 
     458                                 
     459            UI.dialogs.sharedCalendar.find('ul.search-result-list').append(DataLayer.render( 'templates/calendar_search_itemlist.ejs', resultNormalize)); 
     460 
     461            UI.dialogs.sharedCalendar.find('ul.search-result-list li').click(function(event, ui){ 
     462                if ($(event.target).is('input')) { 
     463                    old_item = $(event.target).parents('li'); 
     464                    var id = old_item.find('.id').html(); 
    465465                                                 
    466                 for(var i = 0; i<resultNormalize.length; i++){ 
    467                     if(resultNormalize[i].id == id) 
    468                         currentCalendars[id] = { 
    469                             id: id,  
    470                             name: resultNormalize[i].name,  
    471                             description: resultNormalize[i].description,  
    472                             type: resultNormalize[i].type,  
    473                             isCalendar: true 
    474                         }; 
    475                 } 
    476  
    477                 UI.dialogs.sharedCalendar.find('dd.calendar-list ul.user-list') 
    478                 .append(DataLayer.render('templates/user_shared_add_itemlist.ejs', [currentCalendars[id]])) 
    479                 .scrollTo('max'); 
     466                    for(var i = 0; i<resultNormalize.length; i++){ 
     467                        if(resultNormalize[i].id == id) 
     468                            currentCalendars[id] = { 
     469                                id: id,  
     470                                name: resultNormalize[i].name,  
     471                                description: resultNormalize[i].description,  
     472                                type: resultNormalize[i].type,  
     473                                isCalendar: true 
     474                            }; 
     475                    } 
     476 
     477                    UI.dialogs.sharedCalendar.find('dd.calendar-list ul.user-list') 
     478                    .append(DataLayer.render('templates/user_shared_add_itemlist.ejs', [currentCalendars[id]])) 
     479                    .scrollTo('max'); 
    480480                                                 
    481                 $('li.not-user').remove(); 
    482                 callbackSharedCalendarAdd(); 
    483                 old_item.remove(); 
    484             } 
    485         }); 
    486         event.preventDefault(); 
    487     } 
    488 }); 
    489                  
    490 var callbackSharedCalendarAdd = function(event){ 
    491                  
    492     UI.dialogs.sharedCalendar.find('.button').filter(".close.new").button({ 
    493         icons: { 
    494             primary: "ui-icon-close" 
    495         }, 
    496         text: false 
    497     }).click(function () { 
    498         var id = $(this).parents('li').find('input[name="idPermission"]').val(); 
    499         currentCalendars[$(this).parents().find('input[name="calendar[]"]').val()] = false; 
    500         $(this).parents('li').remove(); 
    501         if(!!id) 
    502         DataLayer.remove('calendarSignature', id); 
    503     }) 
    504     .addClass('tiny disable ui-button-disabled ui-state-disabled') 
    505     .removeClass('new').end(); 
    506  
    507     UI.dialogs.sharedCalendar.find('.user-list li').hover( 
    508         function () { 
    509             $(this).addClass("hover-user"); 
    510             $(this).find('.button').removeClass('disable ui-button-disabled ui-state-disabled').end() 
    511             .find('.user-acls-shared-calendar').addClass('hover-user'); 
    512         }, 
    513         function () { 
    514             $(this).removeClass("hover-user"); 
    515             $(this).find('.button').addClass('disable ui-button-disabled ui-state-disabled').end() 
    516             .find('.user-acls-shared-calendar').removeClass('hover-user');; 
    517         } 
    518         );               
    519 } 
    520  
    521 //Carrega os dados já cadastrados 
    522 for (var i = 0; i < Calendar.signatures.length; i++) 
    523     if(Calendar.signatures[i].isOwner == "0"){ 
    524         var dataCurrent = Calendar.signatures[i].calendar; 
    525         currentCalendars[Calendar.signatures[i].permission.id] = { 
    526             id: dataCurrent.id,  
    527             idPermission:Calendar.signatures[i].id , 
    528             name: dataCurrent.name,  
    529             description: dataCurrent.description,  
    530             type: Calendar.signatures[i].permission.type,  
    531             isCalendar: true, 
    532             current: true 
    533         }; 
     481                    $('li.not-user').remove(); 
     482                    callbackSharedCalendarAdd(); 
     483                    old_item.remove(); 
     484                } 
     485            }); 
     486            event.preventDefault(); 
     487        } 
     488    }); 
     489                 
     490    var callbackSharedCalendarAdd = function(event){ 
     491                 
     492        UI.dialogs.sharedCalendar.find('.button').filter(".close.new").button({ 
     493            icons: { 
     494                primary: "ui-icon-close" 
     495            }, 
     496            text: false 
     497        }).click(function () { 
     498            var id = $(this).parents('li').find('input[name="idPermission"]').val(); 
     499            currentCalendars[$(this).parents().find('input[name="calendar[]"]').val()] = false; 
     500            $(this).parents('li').remove(); 
     501            if(!!id) 
     502                DataLayer.remove('calendarSignature', id); 
     503        }) 
     504        .addClass('tiny disable ui-button-disabled ui-state-disabled') 
     505        .removeClass('new').end(); 
     506 
     507        UI.dialogs.sharedCalendar.find('.user-list li').hover( 
     508            function () { 
     509                $(this).addClass("hover-user"); 
     510                $(this).find('.button').removeClass('disable ui-button-disabled ui-state-disabled').end() 
     511                .find('.user-acls-shared-calendar').addClass('hover-user'); 
     512            }, 
     513            function () { 
     514                $(this).removeClass("hover-user"); 
     515                $(this).find('.button').addClass('disable ui-button-disabled ui-state-disabled').end() 
     516                .find('.user-acls-shared-calendar').removeClass('hover-user');; 
     517            } 
     518            );           
     519    } 
     520 
     521    //Carrega os dados já cadastrados 
     522    for (var i = 0; i < Calendar.signatures.length; i++) 
     523        if(Calendar.signatures[i].isOwner == "0"){ 
     524            var dataCurrent = Calendar.signatures[i].calendar; 
     525            currentCalendars[Calendar.signatures[i].permission.id] = { 
     526                id: dataCurrent.id,  
     527                idPermission:Calendar.signatures[i].id , 
     528                name: dataCurrent.name,  
     529                description: dataCurrent.description,  
     530                type: Calendar.signatures[i].permission.type,  
     531                isCalendar: true, 
     532                current: true 
     533            }; 
    534534                         
    535         UI.dialogs.sharedCalendar.find('dd.calendar-list ul.user-list') 
    536         .append(DataLayer.render('templates/user_shared_add_itemlist.ejs', [currentCalendars[Calendar.signatures[i].permission.id]])) 
    537         .scrollTo('max'); 
    538                                  
    539         $('li.not-user').remove(); 
    540         callbackSharedCalendarAdd(); 
    541     } 
    542                  
    543 UI.dialogs.sharedCalendar.dialog('open'); 
     535            UI.dialogs.sharedCalendar.find('dd.calendar-list ul.user-list') 
     536            .append(DataLayer.render('templates/user_shared_add_itemlist.ejs', [currentCalendars[Calendar.signatures[i].permission.id]])) 
     537            .scrollTo('max'); 
     538                                 
     539            $('li.not-user').remove(); 
     540            callbackSharedCalendarAdd(); 
     541        } 
     542                 
     543    UI.dialogs.sharedCalendar.dialog('open'); 
    544544} 
    545545 
Note: See TracChangeset for help on using the changeset viewer.