Ignore:
Timestamp:
08/06/12 10:03:03 (12 years ago)
Author:
acoutinho
Message:

Ticket #2966 - Criacao de atividades com suporte a alarmes e anexos

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/2.4.2-expresso1/prototype/modules/calendar/js/activity.helpers.js

    r6881 r6945  
    1 function activityDetails( objEvent, decoded, path, isMail, repeat){ 
    2  
    3  
    4     attendees = {}; 
     1function activityDetails( objActivity, decoded, path, isMail, repeat){ 
     2 
     3    tasks = {length: 0}; 
    54         
    65    if(path == undefined) 
     
    87                 
    98    if( !decoded ) 
    10         objEvent = DataLayer.decode( "schedulable:calendar", objEvent ); 
     9        objActivity = DataLayer.decode( "schedulable:group", objActivity ); 
    1110 
    1211    if(!isMail) 
    13         objEvent = DataLayer.encode( "schedulable:preview", objEvent ); 
    14          
    15     if(typeof(objEvent.id) == 'undefined'){ 
    16                 objEvent.alarms = Calendar.signatureOf[User.preferences.defaultCalendar || Calendar.calendarIds[0]].defaultAlarms || false; 
    17                 objEvent.useAlarmDefault = 1; 
    18                 //Código provisório ... Mockup 
    19                 objEvent.alarms.taskActivity = {}; 
    20     } 
    21          
     12        objActivity = DataLayer.encode( "schedulable:activity", objActivity ); 
     13     
     14    var registerStatus = function(){ 
     15        var blkAuto = UI.dialogs.addActivity.find('#group_addactivity_details1'); 
     16 
     17        var startDate = false; 
     18        var endDate = new Date; 
     19        var dueDate = new Date; 
     20        var percentage = 0; 
     21 
     22        var allDay = true; 
     23 
     24        var formatString =  User.preferences.dateFormat + " " +  User.preferences.hourFormat; 
     25 
     26        if(tasks.length == 0){ 
     27 
     28            startDate = new Date(); 
     29            var configData = (startDate.toString('mm') < 30)  ? {minutes: (30 - parseInt(startDate.toString('mm')))} : {hours: 1, minutes: '-'+startDate.toString('mm')}; 
     30            startDate.add(configData);  
     31 
     32            endDate = new Date(dateCalendar.decodeRange(startDate, (!!User.preferences.defaultCalendar ? (   !!Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration ?  (Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration) : (User.preferences.defaultDuration)) : (User.preferences.defaultDuration)))); 
     33 
     34            blkAuto.find('input[name="startDate"]').val(startDate.toString(User.preferences.dateFormat )); 
     35            blkAuto.find('input[name="startHour"]').val(startDate.toString(User.preferences.hourFormat )); 
     36 
     37            blkAuto.find('input[name="endDate"]').val(endDate.toString(User.preferences.dateFormat )); 
     38            blkAuto.find('input[name="endHour"]').val(endDate.toString(User.preferences.hourFormat )); 
     39 
     40            blkAuto.find('input[name="dueDate"]').val(''); 
     41            blkAuto.find('input[name="dueHour"]').val(''); 
     42                         
     43            blkAuto.find('input[name="percentage"]').val(percentage); 
     44 
     45            blkAuto.find('input[name="allDay"]').attr('checked', false); 
     46 
     47            return true; 
     48        } 
     49 
     50        for (var i in tasks){ 
     51 
     52            if(i == 'length') 
     53                continue; 
     54 
     55            stTime = Date.parseExact( tasks[i].startDate + " "+$.trim( tasks[i].startHour) , formatString); 
     56            enTime = Date.parseExact( tasks[i].endDate + " "+$.trim( tasks[i].endHour), formatString ); 
     57             
     58            startDate = (startDate && startDate.compareTo(stTime) == -1) ? startDate : stTime; 
     59            endDate = endDate.compareTo(enTime) == -1 ? enTime : endDate; 
     60             
     61            if(tasks[i].dueDate != ''){ 
     62                pvTime = Date.parseExact( tasks[i].dueDate + " "+$.trim( tasks[i].dueTime), formatString ); 
     63                dueDate = dueDate.compareTo(pvTime) == -1 ? pvTime : dueDate; 
     64            } 
     65 
     66            if(parseInt(tasks[i].percentage) > 0) 
     67                percentage += parseInt((100 / tasks.length)) * ( parseInt(tasks[i].percentage) / 100); 
     68        } 
     69 
     70        dueDate = dueDate.compareTo(endDate) == -1 ? endDate : dueDate; 
     71 
     72        blkAuto.find('input[name="startDate"]').val(startDate.toString(User.preferences.dateFormat )); 
     73        blkAuto.find('input[name="startHour"]').val(startDate.toString(User.preferences.hourFormat )); 
     74 
     75        blkAuto.find('input[name="endDate"]').val(endDate.toString(User.preferences.dateFormat )); 
     76        blkAuto.find('input[name="endHour"]').val(endDate.toString(User.preferences.hourFormat )); 
     77 
     78        blkAuto.find('input[name="dueDate"]').val(dueDate.toString(User.preferences.dateFormat )); 
     79        blkAuto.find('input[name="dueHour"]').val(dueDate.toString(User.preferences.hourFormat )); 
     80 
     81        blkAuto.find('input[name="percentage"]').val(percentage); 
     82 
     83        blkAuto.find('input[name="allDay"]').attr('checked', (!!(startDate.compareTo(endDate) == 0) || (startDate.toString('HH:mm') == endDate.toString('HH:mm')) ? true : false)); 
     84    } 
     85 
     86 
     87    var callbackTask = function(){ 
     88 
     89        blkAddTask.find("li .button").filter(".close.new").button({ 
     90            icons: { 
     91            primary: "ui-icon-close" 
     92            }, 
     93            text: false 
     94        }).click(function () { 
     95 
     96            delete tasks[$(this).parents('li').find('input[name="idtask[]"]').val()] 
     97            tasks.length +=  -1; 
     98 
     99            idTaskToActivity = $(this).parents('li').find('input[name="idTaskToActivity[]"]').val() 
     100 
     101            if(idTaskToActivity != '') 
     102                DataLayer.remove('taskToActivity', idTaskToActivity); 
     103             
     104            $(this).parents('li').remove(); 
     105                 
     106            if(blkAddTask.find(".task-activity-list li").length == 1) 
     107                blkAddTask.find("li.not-activity    ").removeClass('hidden'); 
     108 
     109            registerStatus(); 
     110        }) 
     111        .addClass('tiny disable ui-button-disabled ui-state-disabled') 
     112        .removeClass('new').end() 
     113 
     114        .filter(".info.new").button({ 
     115            icons: { 
     116                primary:  "ui-icon-notice" 
     117            }, 
     118            text: false 
     119        }).click(function () { 
     120            var positionY = $(this).parents("li").offset().top; 
     121              
     122            var name = $(this).parents('li').find("div").find(".name").text(); 
     123            var email = $(this).parents('li').find("div").find(".mail").text() 
     124                         
     125            if( $('.qtip.qtip-blue.qtip-active').val() !== ''){ 
     126                $(this).qtip({ 
     127                    show: { 
     128                        ready: true, 
     129                        solo: true, 
     130                        when: { 
     131                            event: 'click' 
     132                        } 
     133                    }, 
     134                    hide: false, 
     135                    content: { 
     136                        text: $('<div></div>').html( DataLayer.render( path + 'templates/activity_information_task.ejs', { 
     137                            'name' : name 
     138                        } ) ), 
     139                        title: { 
     140                            text:'Informações', 
     141                            button: '<a class="button close" href="#">close</a>' 
     142                        } 
     143                    }, 
     144                style: { 
     145                    name: 'blue', 
     146                        tip: { 
     147                             }, 
     148                        border: { 
     149                            width: 4, 
     150                            radius: 8 
     151                        }, 
     152                        width: { 
     153                            min: 230, 
     154                            max:230 
     155                        } 
     156                }, 
     157                position: { 
     158                    corner: { 
     159                        target: 'rightMiddle', 
     160                        tooltip: 'leftMiddle' 
     161                    }, 
     162                    adjust: { 
     163                        x: 30, 
     164                        y: 0 
     165                    } 
     166                } 
     167            }) 
     168            .qtip("api").onShow = function(arg0) { 
     169                $('.qtip-active .button.close').button({ 
     170                    icons: { 
     171                        primary: "ui-icon-close" 
     172                    }, 
     173                    text: false 
     174                }) 
     175                .click(function(){ 
     176                    blkAddAtendee.find('dd.task-activity-list').qtip('destroy'); 
     177                }); 
     178                                         
     179                $('.qtip-active .button.cancel').button().click(function(){ 
     180                    blkAddAtendee.find('dd.activity-list [type=checkbox]').attr('checked', false); 
     181                    blkAddAtendee.find('dd.activity-list').qtip('destroy'); 
     182                }); 
     183 
     184                $('.qtip .button').button(); 
     185                                         
     186            }; 
     187         }              
     188     }) 
     189 .addClass('tiny disable ui-button-disabled ui-state-disabled') 
     190 .removeClass('new').end()     
     191 
     192        UI.dialogs.addActivity.find('.task-activity-list li').hover( 
     193            function () { 
     194                $(this).addClass("hover-attendee"); 
     195                $(this).find('.button').removeClass('disable ui-button-disabled ui-state-disabled').end() 
     196                .find('.activity-options').addClass('hover-attendee'); 
     197            }, 
     198            function () { 
     199                $(this).removeClass("hover-attendee"); 
     200                $(this).find('.button').addClass('disable ui-button-disabled ui-state-disabled').end() 
     201                .find('.activity-options').removeClass('hover-attendee'); 
     202            } 
     203        );         
     204    } 
     205 
     206 
    22207    /** 
    23          * canDiscardEventDialog deve ser true se não houver alterações no evento 
     208         * canDiscardEventDialog deve ser true se não houver alterações no evento 
    24209         */ 
    25210    canDiscardEventDialog = true; 
    26211    /** 
    27          * zebraDiscardEventDialog é uma flag indicando que uma janela de confirmação (Zebra_Dialog) 
    28          * já está aberta na tela, uma vez que não é possivel acessar o evento ESC utilizado para fechá-la 
     212         * zebraDiscardEventDialog é uma flag indicando que uma janela de confirmação (Zebra_Dialog) 
     213         * já está aberta na tela, uma vez que não é possivel acessar o evento ESC utilizado para fechá-la 
    29214         */ 
    30215    zebraDiscardEventDialog = false; 
    31216         
    32     /** 
    33                 ACLs do participant 
    34         */ 
    35     acl_names = { 
    36         'w': 'acl-white', 
    37         'i': 'acl-invite-guests', 
    38         'p': 'acl-participation-required' 
    39     }; 
    40  
    41  
    42 var callbackAttendee = function(){ 
    43         //Cria qtip de permissões pelo click do checkbox 
    44         var checked = false; 
    45         blkAddAtendee.find("li.not-activity").addClass('hidden'); 
    46          
    47         blkAddAtendee.find("li .button").filter(".close.new").button({ 
    48             icons: { 
    49                 primary: "ui-icon-close" 
    50             }, 
    51             text: false 
    52         }).click(function () { 
    53             DataLayer.remove('participant', $(this).parents('li').find('[type=checkbox]').val()); 
    54             if($(this).parent().find('.button.delegate').hasClass('activity-permissions-change-button')){ 
    55                 removeOthers(); 
    56                 blkAddAtendee.find('.request-update').addClass('hidden'); 
    57                 blkAddAtendee.find('.status option').toggleClass('hidden'); 
    58                                  
    59                 blkAddAtendee.find('option[value=1]').attr('selected','selected').trigger('change'); 
    60             } 
    61                          
    62             $(this).parents('li').remove(); 
    63                          
    64             if(blkAddAtendee.find(".activity-list li").length == 1) 
    65                 blkAddAtendee.find("li.not-activity").removeClass('hidden'); 
    66         }) 
    67         .addClass('tiny disable ui-button-disabled ui-state-disabled') 
    68         .removeClass('new').end() 
    69          
    70         .filter(".delegate.new").button({ 
    71             icons: { 
    72                 primary: "ui-icon-transferthick-e-w" 
    73             }, 
    74             text: false 
    75         }).click(function () { 
    76             var me = $(this).parents('li'); 
    77             if($(this).hasClass('activity-permissions-change-button')){ 
    78                 $(this).removeClass('activity-permissions-change-button')    
    79                     .find('.ui-icon-transferthick-e-w').removeClass('activity-permissions-change').end();                
    80                  
    81                 me.find('input[name="delegatedFrom[]"]').val(''); 
    82                 dependsDelegate(me, true); 
    83                                  
    84                 blkAddAtendee.find('.request-update').addClass('hidden'); 
    85                 blkAddAtendee.find('.status option').toggleClass('hidden'); 
    86  
    87                 blkAddAtendee.find('option[value=1]').attr('selected','selected').trigger('change'); 
    88                                  
    89             }else{ 
    90                 removeOthers(); 
    91                          
    92                 $(this).addClass('activity-permissions-change-button')    
    93                 .find('.ui-icon-transferthick-e-w').addClass('activity-permissions-change').end();                
    94                  
    95                 me.find('input[name="delegatedFrom[]"]').val(blkAddAtendee.find('.me input[name="attendee[]"]').val()); 
    96                  
    97                 dependsDelegate(me, false); 
    98                          
    99                 blkAddAtendee.find('.request-update').removeClass('hidden'); 
    100                 if(blkAddAtendee.find('.status option.hidden').length == 1) 
    101                     blkAddAtendee.find('.status option').toggleClass('hidden'); 
    102                          
    103                 blkAddAtendee.find('option[value=5]').attr('selected','selected').trigger('change'); 
    104             } 
    105         }) 
    106         .addClass('tiny disable ui-button-disabled ui-state-disabled') 
    107         .removeClass('new').end() 
    108                  
    109         .filter(".edit.new").button({ 
    110             icons: { 
    111                 primary: "ui-icon-notice" 
    112             }, 
    113             text: false 
    114         }).click(function() { 
    115  
    116                 console.log($(this).parents("li").position().top); 
    117  
    118                 var positionY = $(this).parents("li").offset().top; 
    119  
    120             if(!!!checked) 
    121                 $(this).parents('li').find('[type=checkbox]').attr('checked', (!$(this).parent().find('[type=checkbox]').is(':checked'))).end(); 
    122                  
    123                 var name = $(this).parents('li').find("div").find(".name").text(); 
    124                 var email = $(this).parents('li').find("div").find(".mail").text() 
    125             //var aclsParticipant =  $(this).parents('li') 
    126             checked = false; 
    127                          
    128             if( $('.qtip.qtip-blue.qtip-active').val() !== ''){ 
    129                 $(this).qtip({ 
    130                     show: { 
    131                     ready: true,  
    132                         solo: true,  
    133             when: { 
    134                     event: 'click' 
    135                     } 
    136                 }, 
    137                 hide: false, 
    138                 content: { 
    139                                 text: $('<div></div>').html( DataLayer.render( path + 'templates/activity_information_task.ejs', { 
    140                                         'name' : name 
    141                                 } ) ),  
    142                                 title: { 
    143                                         text:'Informações',  
    144                                         button: '<a class="button close" href="#">close</a>' 
    145                                 } 
    146                 }, 
    147                 style: { 
    148                 name: 'blue',  
    149                     tip: { 
    150                                 corner: 'leftMiddle' 
    151                         },  
    152                     border: { 
    153                                 width: 4,  
    154                             radius: 8 
    155                         },  
    156                     width: { 
    157                                 min: 230,  
    158                             max:230 
    159                         } 
    160             }, 
    161             position: { 
    162             corner: { 
    163             target: 'rightMiddle', 
    164             tooltip: 'leftMiddle' 
    165             }, 
    166             adjust: { 
    167                     x: 30,  
    168                     y: 0 
    169             } 
    170             } 
    171             }) 
    172         .qtip("api").onShow = function(arg0) { 
    173             $('.qtip-active .button.close').button({ 
    174                 icons: { 
    175                     primary: "ui-icon-close" 
    176                 }, 
    177                 text: false 
    178             }) 
    179             .click(function(){ 
    180                 blkAddAtendee.find('dd.task-activity-list').qtip('destroy'); 
    181             }); 
    182                                          
    183             $('.qtip-active .button.save').button().click(function(){ 
    184                                                  
    185                 var acl = ''; 
    186                 $('.qtip-active').find('[type=checkbox]:checked').each(function(i, obj) { 
    187                     acl+= obj.value; 
    188                 }); 
    189  
    190                 blkAddAtendee.find('dd.task-activity-list [type=checkbox]:checked').siblings('input[name="attendeeAcl[]"]').each(function(i, obj) {  
    191                     obj.value = 'r'+acl; 
    192                 }).parents('li').find('.button.edit').addClass('activity-permissions-change-button')    
    193                 .find('.ui-icon-key').addClass('activity-permissions-change');                
    194                                                  
    195                 blkAddAtendee.find('dd.task-activity-list [type=checkbox]').attr('checked', false); 
    196                                                  
    197                 blkAddAtendee.find('dd.task-activity-list').qtip('destroy'); 
    198                                          
    199             }); 
    200             $('.qtip-active .button.cancel').button().click(function(){ 
    201                 blkAddAtendee.find('dd.activity-list [type=checkbox]').attr('checked', false); 
    202                 blkAddAtendee.find('dd.activity-list').qtip('destroy'); 
    203             }); 
    204                                          
    205             if(aclsParticipant) 
    206                 for(var i = 1; i < aclsParticipant.length; i++){ 
    207                     $('.qtip-active').find('input[name="'+acl_names[aclsParticipant.charAt(i)]+'"]').attr('checked', true); 
    208                 } 
    209                                                          
    210             $('.qtip .button').button(); 
    211                                          
    212         }; 
    213         }else{ 
    214             if(!$('.new-activity-win dd.task-activity-list').find('[type=checkbox]:checked').length){ 
    215                 blkAddAtendee.find('dd.attendee-list').qtip('destroy'); 
    216             }else{ 
    217                 $('.qtip-active .button.save .ui-button-text').html('Aplicar a todos') 
    218             } 
    219                          
    220         };                       
    221     }) 
    222 .addClass('tiny disable ui-button-disabled ui-state-disabled') 
    223 .removeClass('new').end() 
    224                  
    225 .filter(".open-delegate.new").click(function(){ 
    226     if($(this).hasClass('ui-icon-triangle-1-e')){ 
    227         $(this).removeClass('ui-icon-triangle-1-e').addClass('ui-icon-triangle-1-s'); 
    228         $(this).parents('li').find('.list-delegates').removeClass('hidden'); 
    229     }else{ 
    230         $(this).removeClass('ui-icon-triangle-1-s').addClass('ui-icon-triangle-1-e'); 
    231         $(this).parents('li').find('.list-delegates').addClass('hidden'); 
    232     } 
    233                  
    234 }).removeClass('new'); 
    235          
    236          
    237 blkAddAtendee.find("li input[type=checkbox].new").click(function(){ 
    238     if(!$('.new-activity-win dd.task-activity-list').find('[type=checkbox]:checked').length){ 
    239         blkAddAtendee.find('dd.task-activity-list').qtip('destroy'); 
    240     }else{ 
    241         checked = true; 
    242         $(this).parents('li').find('.button.edit').click(); 
    243     } 
    244 }).removeClass('new'); 
    245          
    246 UI.dialogs.addActivity.find('.task-activity-list li').hover( 
    247     function () { 
    248         $(this).addClass("hover-activity"); 
    249         $(this).find('.button').removeClass('disable ui-button-disabled ui-state-disabled').end() 
    250         .find('.activity-options').addClass('hover-activity'); 
    251     }, 
    252     function () { 
    253         $(this).removeClass("hover-activity"); 
    254         $(this).find('.button').addClass('disable ui-button-disabled ui-state-disabled').end() 
    255         .find('.activity-options').removeClass('hover-activity');; 
    256     } 
    257     ); 
    258          
    259 } 
    260     var dependsDelegate = function(reference, inverse){ 
    261         if(inverse){ 
    262             if(reference.find('input[name="attendee[]"]').val() == blkAddAtendee.find('li.organizer input[name="attendee_organizer"]').val()) 
    263                 blkAddAtendee.find('li.organizer input[name="attendee_organizer"]').val(blkAddAtendee.find('.me input[name="attendee[]"]').val()); 
    264         }else{ 
    265             if(blkAddAtendee.find('.me input[name="attendee[]"]').val() == blkAddAtendee.find('li.organizer input[name="attendee_organizer"]').val()) 
    266                 blkAddAtendee.find('li.organizer input[name="attendee_organizer"]').val(reference.find('input[name="attendee[]"]').val()); 
    267         } 
    268          
    269     }; 
    270      
    271     var removeOthers = function(){ 
    272         var other = blkAddAtendee.find('.delegate.attendee-permissions-change-button'); 
    273         if(other.lenght){ 
    274             dependsDelegate(other.parents('li'), true); 
    275         } 
    276         blkAddAtendee.find('.delegate').removeClass('attendee-permissions-change-button'); 
    277         blkAddAtendee.find('.ui-icon-transferthick-e-w').removeClass('attendee-permissions-change'); 
    278          
    279     }; 
    280          
    281217        var html = DataLayer.render( path+'templates/activity_add.ejs', { 
    282             event:objEvent 
     218            activity:objActivity 
    283219        });      
    284220                         
     
    286222 
    287223            UI.dialogs.addActivity = jQuery('#sandbox').append('<div title="Criar Atividade" class="new-activity-win active"> <div>').find('.new-activity-win.active').html(html).dialog({ 
    288                 resizable: false,  
    289                 modal:true,  
    290                 autoOpen: false, 
    291                 width:734,  
    292                 position: 'center',  
    293                 close: function(event, ui) { 
    294                         /** 
    295                          * Remove tooltip possivelmente existente 
    296                          */ 
    297                         if ($('.qtip.qtip-blue.qtip-active').length) 
    298                                 $('.qtip.qtip-blue.qtip-active').qtip('destroy');                                                
    299                         attendees  = {}; 
    300                 }, 
    301                 beforeClose: function(event, ui) { 
    302                  
    303                     if (!canDiscardEventDialog && !zebraDiscardEventDialog) { 
    304                         zebraDiscardEventDialog = true; 
    305                         window.setTimeout(function() { 
    306                             $.Zebra_Dialog('Suas alterações na atividade não foram salvas. Deseja descartar as alterações?', { 
    307                                 'type':     'question', 
    308                                 'overlay_opacity': '0.5', 
    309                                 'buttons':  ['Descartar alterações', 'Continuar editando'], 
    310                                 'onClose':  function(clicked) { 
    311                                     if(clicked == 'Descartar alterações') { 
    312                                         canDiscardEventDialog = true; 
    313                                         /** 
    314                                         *Remoção dos anexos do eventos caso seja cancelado a edição 
    315                                         */ 
    316                                         DataLayer.rollback(); 
    317  
    318                                         var ids = false; 
    319                                         $.each($('.attachment-list input'), function (i, input) { 
    320                                             DataLayer.put('attachment', {id: ''+input.value}); 
    321                                             DataLayer.remove('attachment', ''+input.value); 
    322                                                 ids = true; 
    323                                         }); 
    324                                         if(ids) 
    325                                                 DataLayer.commit(); 
    326                                  
    327                                          
    328                                                                                          
    329                                         UI.dialogs.addActivity.dialog('close'); 
    330                                     }else{ 
    331                                         zebraDiscardEventDialog = false; 
    332                                     } 
    333                                                                                  
    334                                     /** 
    335                                     * Uma vez aberta uma janela de confirmação (Zebra_Dialog), ao fechá-la 
    336                                     * com ESC, para que o evento ESC não seja propagado para fechamento da 
    337                                     * janela de edição de eventos, deve ser setada uma flag indicando que 
    338                                     * já existe uma janela de confirmação aberta. 
    339                                     */ 
    340                                     if (!clicked) { 
    341                                         window.setTimeout(function() { 
    342                                             zebraDiscardEventDialog = false; 
    343                                         }, 200); 
    344                                     } 
    345                                 } 
    346                             }); 
    347                                                                  
    348                         }, 300); 
    349  
    350                     } 
    351                     //DataLayer.rollback(); 
    352                     return canDiscardEventDialog; 
    353                 }, 
    354                 dragStart: function(event, ui) { 
    355                         if ($('.qtip.qtip-blue.qtip-active').length) 
    356                                 $('.qtip.qtip-blue.qtip-active').qtip('destroy'); 
    357                 } 
    358             }); 
     224                resizable: false,  
     225                modal:true,  
     226                autoOpen: false, 
     227                width:734,  
     228                position: 'center',  
     229                close: function(event, ui) { 
     230                        /** 
     231                         * Remove tooltip possivelmente existente 
     232                         */ 
     233                        if ($('.qtip.qtip-blue.qtip-active').length) 
     234                                $('.qtip.qtip-blue.qtip-active').qtip('destroy');                                                
     235                         
     236                attendees  = {}; 
     237                }, 
     238                beforeClose: function(event, ui) { 
     239                 
     240                    if (!canDiscardEventDialog && !zebraDiscardEventDialog) { 
     241                                zebraDiscardEventDialog = true; 
     242                                window.setTimeout(function() { 
     243                                    $.Zebra_Dialog('Suas alterações na atividade não foram salvas. Deseja descartar as alterações?', { 
     244                                        'type':     'question', 
     245                                        'overlay_opacity': '0.5', 
     246                                        'buttons':  ['Descartar alterações', 'Continuar editando'], 
     247                                        'onClose':  function(clicked) { 
     248                                            if(clicked == 'Descartar alterações') { 
     249                                                canDiscardEventDialog = true; 
     250                                                /** 
     251                                                *Remoção dos anexos do eventos caso seja cancelado a edição 
     252                                                */ 
     253                                                DataLayer.rollback(); 
     254 
     255                                                var ids = false; 
     256                                                $.each($('.attachment-list input'), function (i, input) { 
     257                                                    DataLayer.put('attachment', {id: ''+input.value}); 
     258                                                    DataLayer.remove('attachment', ''+input.value); 
     259                                                        ids = true; 
     260                                                }); 
     261                                                if(ids) 
     262                                                        DataLayer.commit(); 
     263 
     264                                                UI.dialogs.addActivity.dialog('close'); 
     265                                            }else{ 
     266                                                   zebraDiscardEventDialog = false; 
     267                                            } 
     268                                                                                         
     269                                            /** 
     270                                            * Uma vez aberta uma janela de confirmação (Zebra_Dialog), ao fechá-la 
     271                                            * com ESC, para que o evento ESC não seja propagado para fechamento da 
     272                                            * janela de edição de eventos, deve ser setada uma flag indicando que 
     273                                            * já existe uma janela de confirmação aberta. 
     274                                            */ 
     275                                            if (!clicked) { 
     276                                                window.setTimeout(function() { 
     277                                                    zebraDiscardEventDialog = false; 
     278                                                }, 200); 
     279                                            } 
     280                                        } 
     281                            }); 
     282                                                                         
     283                        }, 300); 
     284            } 
     285            //DataLayer.rollback(); 
     286            return canDiscardEventDialog; 
     287        }, 
     288        dragStart: function(event, ui) { 
     289                if ($('.qtip.qtip-blue.qtip-active').length) 
     290                        $('.qtip.qtip-blue.qtip-active').qtip('destroy'); 
     291       } 
     292    }); 
    359293                                 
    360294        } else { 
    361295            UI.dialogs.addActivity.html(html); 
    362296        } 
     297 
     298/* Checkbox allday */ 
     299UI.dialogs.addActivity.find('input[name="allDay"]').click(function(){ 
     300    $(this).attr("checked") ?  
     301    UI.dialogs.addActivity.find('.start-time, .end-time').addClass('hidden') : 
     302    UI.dialogs.addActivity.find('.start-time, .end-time').removeClass('hidden');  
     303}); 
    363304                 
    364305var tabs = UI.dialogs.addActivity.children('.content').tabs({ 
     
    368309        }        
    369310        }); 
    370 var calendar = DataLayer.get('calendar', objEvent.calendar); 
     311 
     312var group = DataLayer.get('calendar', objActivity.group); 
    371313                                 
    372 if (calendar.timezone != objEvent.timezone){ 
    373     UI.dialogs.addActivity.find('.calendar_addactivity_details_lnk_timezone').find('option[value="'+objEvent.timezone+'"]').attr('selected','selected').trigger('change'); 
    374     UI.dialogs.addActivity.find('.calendar_addactivity_details_lnk_timezone').addClass('hidden'); 
    375     $('.calendar-addevent-details-txt-timezone').removeClass('hidden'); 
     314if (group.timezone != objActivity.timezone){ 
     315    UI.dialogs.addActivity.find('.group_addactivity_details_lnk_timezone').find('option[value="'+objActivity.timezone+'"]').attr('selected','selected').trigger('change'); 
     316    UI.dialogs.addActivity.find('.group_addactivity_details_lnk_timezone').addClass('hidden'); 
     317    $('.group-addevent-details-txt-timezone').removeClass('hidden'); 
    376318                         
    377319} 
    378320 
    379 UI.dialogs.addActivity.find('.calendar_addactivity_details_lnk_timezone').click(function(e){ 
     321UI.dialogs.addActivity.find('.group_addactivity_details_lnk_timezone').click(function(e){ 
    380322    $(this).addClass('hidden'); 
    381     $('.calendar-addactivity-details-txt-timezone').removeClass('hidden'); 
     323    $('.group-addactivity-details-txt-timezone').removeClass('hidden'); 
    382324    e.preventDefault(); 
    383325}); 
    384326 
    385 /*Seleciona a agenda padrão para visualização/edição de um evento*/ 
    386 if(objEvent.id) 
    387     UI.dialogs.addActivity.find('option[value="'+objEvent.calendar+'"]').attr('selected','selected').trigger('change'); 
    388  
    389 /* Checkbox allday */ 
    390  
    391 UI.dialogs.addActivity.find('input[name="allDay"]').click(function(){ 
    392     $(this).attr("checked") ?  
    393     UI.dialogs.addActivity.find('.start-time, .end-time').addClass('hidden') : 
    394     UI.dialogs.addActivity.find('.start-time, .end-time').removeClass('hidden');  
    395     updateMap(true); 
    396 }); 
     327UI.dialogs.addActivity.find('.button.remove').button({ 
     328    text:false,  
     329    icons:{ 
     330        primary:'ui-icon-close' 
     331    } 
     332}).click(function(el){ 
     333    var id; 
     334    if( id = $(this).parent().find('input[name="alarmId[]"]').val()) 
     335        DataLayer.remove('alarm', id); 
     336    $(this).parent().remove().find('li').is(':empty'); 
     337}); 
     338 
     339UI.dialogs.addActivity.find('.button-add-alarms').click(function(){ 
     340            DataLayer.render( 'templates/alarms_add_itemlist.ejs', {type: 0}, function( template ){                      
     341            jQuery('.activity-alarms-list').append(template) 
     342            .find('li:last label:eq(0)').remove().end() 
     343            .find('.number').numeric().end() 
     344            .find('.button.remove').button({ 
     345                text:false,  
     346                icons:{ 
     347                    primary:'ui-icon-close' 
     348                } 
     349            }).click(function(el) { 
     350                $(this).parent().remove(); 
     351            });     
     352            }); 
     353        }); 
     354 
     355/*Seleciona a agenda padrão para visualização/edição de um evento*/ 
     356if(objActivity.id) 
     357    UI.dialogs.addActivity.find('option[value="'+objActivity.group+'"]').attr('selected','selected').trigger('change'); 
    397358 
    398359UI.dialogs.addActivity.find('.button').button(); 
    399 UI.dialogs.addActivity.find('.button.add').button({ 
    400     icons: { 
    401         secondary: "ui-icon-plus" 
    402     } 
     360    UI.dialogs.addActivity.find('.button.add').button({ 
     361        icons: { 
     362           secondary: "ui-icon-plus" 
     363        } 
    403364}); 
    404365 
    405366// ==== validation events ==== 
    406 UI.dialogs.addActivity.find(".input-group .h1").Watermark("Atividade sem título"); 
    407 if(User.preferences.hourFormat.length == 5) { 
    408     UI.dialogs.addActivity.find(".end-time, .start-time").mask("99:99", { 
    409         completed: function(){ 
    410             updateMap(); 
    411         } 
    412     }); 
    413 } else { 
    414     $.mask.definitions['{']='[ap]'; 
    415     $.mask.definitions['}']='[m]'; 
    416     UI.dialogs.addActivity.find(".end-time, .start-time").mask("99:99 {}", { 
    417         completed:function(){ 
    418             $(this).val(date.Calendar.defaultToAmPm($(this).val())); 
    419             $(this).timepicker("refresh"); 
    420             $(this).val($(this).val().replace(/[\.]/gi, "")); 
    421             updateMap(); 
    422         } 
    423     }); 
    424 } 
     367UI.dialogs.addActivity.find(".input-group .h1").Watermark("Atividade sem título"); 
     368 
    425369UI.dialogs.addActivity.find(".number").numeric(); 
     370 
    426371User.preferences.dateFormat.indexOf('-') > 0 ?  
    427372UI.dialogs.addActivity.find(".date").mask("99-99-9999", { 
     
    430375    } 
    431376}) :  
     377 
    432378UI.dialogs.addActivity.find(".date").mask("99/99/9999", { 
    433379    completed:function(){ 
     
    436382}); 
    437383 
    438 UI.dialogs.addActivity.find(".menu-addActivity") 
     384UI.dialogs.addActivity.find(".menu-addactivity") 
    439385.children(".delete").click(function(){ 
    440386    $.Zebra_Dialog('Tem certeza que deseja excluir a atividade?', { 
    441387        'type':     'question', 
    442388        'overlay_opacity': '0.5', 
    443         'buttons':  ['Sim', 'Não'], 
     389        'buttons':  ['Sim', 'Não'], 
    444390        'onClose':  function(clicked) { 
    445391            if(clicked == 'Sim'){ 
    446392                canDiscardEventDialog = true; 
    447393                /* Remove por filtro */ 
    448                 DataLayer.removeFilter('schedulable', {filter: ['AND', ['=', 'id', objEvent.id], ['=', 'calendar', objEvent.calendar], ['=','user',(objEvent.me.user ? objEvent.me.user.id : objEvent.me.id)]]}); 
     394                DataLayer.removeFilter('schedulable', {filter: ['AND', ['=', 'id', objActivity.id], ['=', 'group', objActivity.group], ['=','user',(objActivity.me.user ? objActivity.me.user.id : objActivity.me.id)]]}); 
    449395                Calendar.rerenderView(true); 
    450396                /********************/ 
     
    460406             
    461407.children(".save").click(function(){ 
    462     /* Validação */ 
     408    /* Validação  
    463409    var msg = false;                     
    464410    if(msg = validDateEvent()){ 
    465         $(".new-activity-win.active").find('.messages-validation').removeClass('hidden').find('.message label').html(msg);  
    466         return false; 
    467     } 
    468                          
     411        $(".new-activity-win.active").find('.messages-validation').removeClass('hidden').find('.message label').html(msg);  
     412        return false; 
     413    } 
     414    */ 
    469415    canDiscardEventDialog = true; 
    470416                         
    471     var exit = function(event){ 
    472         if(event) 
    473             DataLayer.remove('schedulable', event, false);  
    474  
    475         UI.dialogs.addActivity.children().find('form.form-addevent').submit(); 
    476         UI.dialogs.addActivity.dialog("close");    } 
    477                          
    478     if(repeat){ 
    479         DataLayer.remove('repeat', false); 
    480         DataLayer.put('repeat', repeat); 
    481         DataLayer.commit('repeat', false, exit(repeat.schedulable)); 
    482     }else 
    483         exit(); 
     417        UI.dialogs.addActivity.children().find('form.form-addactivity').submit(); 
     418        UI.dialogs.addActivity.dialog("close"); 
     419 
    484420}).end() 
    485421                 
     
    488424}); 
    489425 
    490 var task_activityHtml = DataLayer.render( path+'templates/task_activity_add.ejs', { 
    491         event:objEvent 
    492 }); 
    493  
    494  
    495 var blkAddAtendee = UI.dialogs.addActivity.find('#calendar_addactivity_details8').append(task_activityHtml); 
     426var task_activityHtml = DataLayer.render( path+'templates/task_activity_add.ejs', {     activity: objActivity}); 
     427var blkAddTask = UI.dialogs.addActivity.find('#group_addactivity_details8').append(task_activityHtml); 
    496428 
    497429var dates = UI.dialogs.addActivity.find('input.date').datepicker({ 
     
    502434}); 
    503435 
    504 UI.dialogs.addActivity.find('input.time').timepicker({  
    505     closeText: 'Ok', 
    506     hourGrid: 4, 
    507     minuteGrid: 10, 
    508     ampm : ((User.preferences.hourFormat.length > 5) ? true: false), 
    509     timeFormat: "hh:mm tt", 
    510     onSelect: function (selectedDateTime){ 
    511         if(!(User.preferences.hourFormat.length == 5)) 
    512             $(this).val(selectedDateTime.replace(/[\.]/gi, ""));                                                                 
    513         updateMap(); 
    514     }, 
    515     onClose : function (selectedDateTime){ 
    516         if(!(User.preferences.hourFormat.length == 5)) 
    517             $(this).val(selectedDateTime.replace(/[\.]/gi, "")); 
    518     } 
    519          
    520  
    521 }); 
    522  
    523 blkAddAtendee.find('.add-activity-search .ui-icon-search').click(function(event) { 
    524     blkAddAtendee.find('.add-activity-search input').keydown(); 
     436blkAddTask.find('.add-activity-search .ui-icon-search').click(function(event) { 
     437    blkAddTask.find('.add-activity-search input').keydown(); 
    525438}); 
    526439                         
    527440                         
    528 blkAddAtendee.find('.add-activity-search input').keydown(function(event) { 
     441blkAddTask.find('.add-activity-search input').keydown(function(event) { 
    529442 
    530443    if(event.keyCode == '13' || typeof(event.keyCode) == 'undefined') {  
    531444    // Fazer get das tarefas     
    532         var result = [ {'name': 'Tarefa 01'} , {'name': 'Tarefa 02'} , {'name' : 'Tarefa 03'} ]; 
    533         //DataLayer.get('user', ["*", "name", $(this).val()], true); 
    534  
    535  
     445        var filter =  
     446        { 
     447            filter:  
     448                ['AND', 
     449                    ['=', 'type', '2'],  
     450                    ['>=','startTime', $.now()],  
     451                    ['in', 'calendar',  
     452                        [$('div.new-activity-win.active select[name="groupFilter"]').val()] 
     453                    ] 
     454                ], criteria: {'filterTasks': true} 
     455        }; 
     456    if($(this).val() != ''){ 
     457        filter['filter'].push(['OR', 
     458                            ["i*", "summary", $(this).val()],  
     459                            ["i*", "description", $(this).val()] 
     460                           ]); 
     461    } 
     462 
     463    var result = DataLayer.get('schedulable:taskSearch', filter, true) 
    536464        /** 
    537         * TODO: trocar por template 
    538         */ 
    539         blkAddAtendee.find('ul.search-result-list').empty().css('overflow', 'hidden'); 
     465    * TODO: trocar por template 
     466    */ 
     467        blkAddTask.find('ul.search-result-list').empty().css('overflow', 'hidden'); 
    540468        if (!result) { 
    541             blkAddAtendee.find('ul.search-result-list').append('<li><label class="empty">Nenhum resultado encontrado.</label></li>'); 
    542         } 
    543  
    544         for(i=0; i<result.length; i++) 
    545             result[i].enabled = (blkAddAtendee.find('dd.task-helpers-list ul.task-helpers-list label.mail[title="' +  result[i].mail + '"]').length) ? false : true; 
    546                                                                                          
    547         blkAddAtendee.find('ul.search-result-list').append(DataLayer.render( path+'templates/task_search_itemlist.ejs', result)); 
    548  
    549  
    550         blkAddAtendee.find('ul.search-result-list li').click(function(event, ui){ 
    551             if ($(event.target).is('input')) { 
    552                 old_item = $(event.target).parents('li'); 
    553                 newAttendeeId = DataLayer.put('participant', { 
    554                     user: old_item.find('.id').html(),  
    555                     isExternal: old_item.find('.isExternal').html() 
    556                 }); 
    557                                                          
    558                 attendees[old_item.find('.id').html()] = old_item.find('.name').html(); 
    559                                                          
    560                 blkAddAtendee.find('dd.task-activity-list ul.task-activity-list') 
    561                 .append(DataLayer.render(path+'templates/task_add_itemlist.ejs', [{ 
    562                     id: newAttendeeId,  
    563                     name: old_item.find('.name').html(),  
    564                     mail: old_item.find('.mail').html(),  
    565                     isExternal: old_item.find('.isExternal').html(),  
    566                     acl: objEvent.acl, 
    567                     isDirty: !!!objEvent.id 
    568                  }])) 
    569                 .scrollTo('max'); 
    570                 /** 
    571                                                         * Delegação de participação de um participante com permissão apenas de leitura 
    572                                                         * 
    573                                                         */ 
    574                         if(!objEvent.acl.organization && !objEvent.acl.write && !objEvent.acl.inviteGuests && objEvent.acl.read ){ 
    575                                                                          
    576                             blkAddAtendee.find('.block-add-attendee.search').addClass('hidden'); 
    577                             blkAddAtendee.find('.block-add-attendee.search dt').html('Adicionar outros contatos'); 
    578                                                                          
    579                             blkAddAtendee.find('.status option').toggleClass('hidden'); 
    580                             blkAddAtendee.find('option[value=5]').attr('selected','selected').trigger('change'); 
    581                             blkAddAtendee.find('.request-update').removeClass('hidden'); 
    582  
    583                             blkAddAtendee.find('dd.attendee-list ul.attendee-list li .button.close').parents('li').find('input[name="delegatedFrom[]"]').val(blkAddAtendee.find('.me input[name="attendee[]"]').val()); 
    584                                                                          
    585                             blkAddAtendee.find('.me .participant-delegate').addClass('disable ui-button-disabled ui-state-disabled'); 
    586                             blkAddAtendee.find(".button.close").button({ 
    587                                 icons: { 
    588                                     primary: "ui-icon-close" 
    589                                 }, 
    590                                 text: false 
    591                             }).click(function () { 
    592                                                                                  
    593                                 $(this).parents('li').find('input[name="delegatedFrom[]"]').val(''); 
    594                                 blkAddAtendee.find('.request-update').addClass('hidden'); 
    595                                 blkAddAtendee.find('.status option').toggleClass('hidden'); 
    596                                 blkAddAtendee.find('option[value=1]').attr('selected','selected').trigger('change');                     
    597                                 blkAddAtendee.find('.me .participant-delegate').removeClass('disable ui-button-disabled ui-state-disabled attendee-permissions-change-button') 
    598                                 .find('.ui-icon-person').removeClass('attendee-permissions-change').end();                       
    599                                                                                  
    600                                 DataLayer.remove('participant', $(this).parents('li').find('[type=checkbox]').val()); 
    601                                 $(this).parents('li').remove(); 
    602                             }) 
    603                             .addClass('tiny'); 
    604                         }else{ 
    605                             callbackAttendee(); 
    606                             old_item.remove(); 
    607                         } 
    608             } 
    609         }); 
    610  
    611  
     469            blkAddTask.find('ul.search-result-list').append('<li><label class="empty">Nenhum resultado encontrado.</label></li>'); 
     470        }else{ 
     471        for(i=0; i<result.length; i++) 
     472            result[i].enabled = (blkAddTask.find('dd.task-activity-list ul.task-activity-list input[value="' +  result[i].id + '"]').length) ? false : true; 
     473                                                                                         
     474        blkAddTask.find('ul.search-result-list').append(DataLayer.render( path+'templates/task_search_itemlist.ejs', result)); 
     475 
     476        /* TODO - Verificar id da aitividade*/ 
     477        blkAddTask.find('ul.search-result-list li').click(function(event, ui){ 
     478            if ($(event.target).is('input')) { 
     479                old_item = $(event.target).parents('li'); 
     480 
     481                tasks[old_item.find('[name="id"]').val()] = { 
     482                    startDate: old_item.find('[name="taskStartDate"]').val(), 
     483                    startHour: old_item.find('[name="taskStartHour"]').val(), 
     484                    endDate: old_item.find('[name="taskEndDate"]').val(), 
     485                    endHour: old_item.find('[name="taskEndHour"]').val(), 
     486                    dueDate: old_item.find('[name="taskDueDate"]').val(), 
     487                    dueTime: old_item.find('[name="taskDueTime"]').val(), 
     488                    allDay: old_item.find('[name="taskAllDay"]').val(), 
     489                    percentage: old_item.find('[name="taskPercentage"]').val(), 
     490                }; 
     491 
     492                tasks.length += 1; 
     493 
     494    /* 
     495                        newTaskToActivity = DataLayer.put('taskToActivity', { 
     496                            owner: User.me.id, 
     497                    task: old_item.find('.id').html(),  
     498                            activity: 'VER ISSO AQUI' 
     499                        }); 
     500    */                                                           
     501                        //attendees[old_item.find('.id').html()] = old_item.find('.name').html(); 
     502                                                                 
     503                        blkAddTask.find('dd.task-activity-list ul.task-activity-list') 
     504                        .append(DataLayer.render(path+'templates/task_add_itemlist.ejs', [{ 
     505                    idTask: old_item.find('[name="id"]').val(), 
     506                            description: old_item.find('.description').html() 
     507                         }])) 
     508                        .scrollTo('max'); 
     509 
     510                    callbackTask(); 
     511                registerStatus(); 
     512                blkAddTask.find('.not-activity').addClass('hidden'); 
     513                old_item.remove(); 
     514            } 
     515        }); 
     516 
     517    } 
    612518        event.preventDefault(); 
    613519    } 
    614520}); 
    615521 
    616 UI.dialogs.addActivity.find('.row.fileupload-buttonbar .button').filter('.delete').button({ 
     522/*Carrega as tarefas já existentes em uma atividade*/ 
     523if(objActivity.tasks.length){ 
     524    tasks = objActivity.tasks; 
     525 
     526    for(var i in objActivity.tasks){ 
     527        if(i != 'length') 
     528            blkAddTask.find('dd.task-activity-list ul.task-activity-list') 
     529                .append(DataLayer.render(path+'templates/task_add_itemlist.ejs', [{ 
     530                    idTask: i, 
     531                    description: tasks[i].description, 
     532                    idTaskToActivity: tasks[i].taskToActivity 
     533                 }])) 
     534            .scrollTo('max'); 
     535    } 
     536 
     537    callbackTask(); 
     538    registerStatus(); 
     539    blkAddTask.find('.not-activity').addClass('hidden'); 
     540} 
     541 
     542UI.dialogs.addActivity.find('.row.fileupload-buttonbar-activity .button').filter('.delete').button({ 
    617543    icons: { 
    618         primary: "ui-icon-close" 
     544           primary: "ui-icon-close" 
    619545    }, 
    620546    text: 'Excluir' 
     
    623549        'type':     'question', 
    624550        'overlay_opacity': '0.5', 
    625         'buttons':  ['Sim', 'Não'], 
     551        'buttons':  ['Sim', 'Não'], 
    626552        'onClose':  function(clicked) { 
    627553            if(clicked == 'Sim'){ 
     
    640566.filter('.close').button({ 
    641567    icons: { 
    642         primary: "ui-icon-close" 
     568           primary: "ui-icon-close" 
    643569    }, 
    644570    text: false 
     
    649575.filter('.downlaod-archive').button({ 
    650576    icons: { 
    651         primary: "ui-icon-arrowthickstop-1-s" 
     577           primary: "ui-icon-arrowthickstop-1-s" 
    652578    }, 
    653579    text: false 
     
    697623        }, 
    698624    done: function(e, data){ 
    699         var currentUpload = $('.progress.after-upload:first').removeClass('after-upload').addClass('on-complete').hide(); 
    700  
    701         if(!!data.result && data.result != "[]"){ 
    702             var newAttach = (attch = jQuery.parseJSON(data.result)) ? attch : jQuery.parseJSON(data.result[0].activeElement.childNodes[0].data); 
    703             $('.attachment-list').append('<input tyepe="hidden" name="attachment[]" value="'+newAttach['attachment'][0][0].id+'"/>'); 
    704             currentUpload.removeClass('on-complete').parents('p') 
    705             .append('<input type="hidden" name="fileId[]" value="'+newAttach['attachment'][0][0].id+'"/>') 
    706             .find('.status-upload').addClass('ui-icon ui-icon-check'); 
    707         }else 
    708             currentUpload.removeClass('on-complete').parents('p').find('.status-upload').addClass('ui-icon ui-icon-cancel'); 
    709     } 
     625        var currentUpload = $('.progress.after-upload:first').removeClass('after-upload').addClass('on-complete').hide(); 
     626 
     627        if(!!data.result && data.result != "[]"){ 
     628            var newAttach = (attch = jQuery.parseJSON(data.result)) ? attch : jQuery.parseJSON(data.result[0].activeElement.childNodes[0].data); 
     629            $('.attachment-list').append('<input tyepe="hidden" name="attachment[]" value="'+newAttach['attachment'][0][0].id+'"/>'); 
     630            currentUpload.removeClass('on-complete').parents('p') 
     631            .append('<input type="hidden" name="fileId[]" value="'+newAttach['attachment'][0][0].id+'"/>') 
     632            .find('.status-upload').addClass('ui-icon ui-icon-check'); 
     633        }else 
     634            currentUpload.removeClass('on-complete').parents('p').find('.status-upload').addClass('ui-icon ui-icon-cancel'); 
     635        } 
    710636}); 
    711637$('.attachments-list .button').button(); 
     
    779705    progressTimer = window.setInterval(intervalHandler, interval); 
    780706}); 
    781          
    782 if(objEvent.isShared){ 
    783                  
    784     var acls = Calendar.signatureOf[objEvent.calendar].permission.acl; 
    785                  
    786     if(!acls.write){ 
    787         UI.dialogs.addActivity.find(':input').attr('disabled', 'disabled'); 
    788         UI.dialogs.addActivity.find('.button').hide(); 
    789     } 
    790                  
    791     if(acls.remove) 
    792         UI.dialogs.addActivity.find('.button.remove').show(); 
    793      
    794     UI.dialogs.addActivity.find('.button.cancel').show();        
    795 } 
    796  
    797 disponibily(objEvent, path, attendees); 
    798  
    799 UI.dialogs.addActivity.find('.button-add-alarms').click(function(){ 
    800     var li_attach = DataLayer.render(path+'templates/alarms_add_itemlist.ejs', {type: 1}); 
    801  
    802     jQuery('.activity-alarms-list').append(li_attach).find('.button.remove').button({ 
    803         text:false,  
    804         icons:{ 
    805             primary:'ui-icon-close' 
    806         } 
    807     }).click(function(el) { 
    808                 $(this).parent().remove().find('li').is(':empty') 
    809         }); 
    810 // valicacao de campos numericos 
    811 $('.number').numeric(); 
    812 }); 
    813  
    814707 
    815708UI.dialogs.addActivity.dialog('open'); 
Note: See TracChangeset for help on using the changeset viewer.