source: sandbox/2.5.1-expresso2/prototype/modules/calendar/js/activity.helpers.js @ 7869

Revision 7869, 27.6 KB checked in by eduardow, 11 years ago (diff)

Ticket #3341 - Implementacao da DFD0151 - Nova funcionalidade ao alterar o grupo de uma atividade

  • Property svn:executable set to *
Line 
1function activityDetails( objActivity, decoded, path, isMail, repeat){
2
3    tasks = {length: 0};
4       
5    if(path == undefined)
6        path = "";
7               
8    if( !decoded )
9        objActivity = DataLayer.decode( "schedulable:group", objActivity );
10
11    if(!isMail)
12        objActivity = DataLayer.encode( "schedulable:activity", objActivity );
13
14    /**
15    * canDiscardActivityDialog deve ser true se não houver alterações no evento
16    */
17    canDiscardActivityDialog = true;
18    /**
19         * zebraDiscardActivityDialog é uma flag indicando que uma janela de confirmação (Zebra_Dialog)
20         * já está aberta na tela, uma vez que não é possivel acessar o evento ESC utilizado para fechá-la
21         */
22    zebraDiscardActivityDialog = false;
23       
24        var html = DataLayer.render( path+'templates/activity_add.ejs', {
25            activity:objActivity
26        });     
27                       
28        if (!UI.dialogs.addActivity) {
29
30            UI.dialogs.addActivity = jQuery('#sandbox').append('<div title="Criar Atividade" class="new-activity-win active"> <div>').find('.new-activity-win.active').html(html).dialog({
31                resizable: false,
32                modal:true,
33                autoOpen: false,
34                width:735,
35                position: 'center',
36                close: function(event, ui) {
37                        /**
38                         * Remove tooltip possivelmente existente
39                         */
40                        if ($('.qtip.qtip-blue.qtip-active').length)
41                                $('.qtip.qtip-blue.qtip-active').qtip('destroy');                                               
42                       
43                attendees  = {};
44                },
45                beforeClose: function(event, ui) {
46               
47                    if (!canDiscardActivityDialog && !zebraDiscardActivityDialog) {
48                                zebraDiscardActivityDialog = true;
49                                window.setTimeout(function() {
50                                    $.Zebra_Dialog('Suas alterações na atividade não foram salvas. Deseja descartar as alterações?', {
51                                        'type':     'question',
52                                        'overlay_opacity': '0.5',
53                                        'buttons':  ['Descartar alterações', 'Continuar editando'],
54                                        'onClose':  function(clicked) {
55                                            if(clicked == 'Descartar alterações') {
56                                                canDiscardActivityDialog = true;
57                                                /**
58                                                *Remoção dos anexos do eventos caso seja cancelado a edição
59                                                */
60                                                DataLayer.rollback();
61
62                                                var ids = false;
63                                                $.each($('.attachment-list input'), function (i, input) {
64                                                    DataLayer.put('attachment', {id: ''+input.value});
65                                                    DataLayer.remove('attachment', ''+input.value);
66                                                        ids = true;
67                                                });
68                                                if(ids)
69                                                        DataLayer.commit();
70
71                                                UI.dialogs.addActivity.dialog('close');
72                                            }else{
73                                                   zebraDiscardActivityDialog = false;
74                                            }
75                                                                                       
76                                            /**
77                                            * Uma vez aberta uma janela de confirmação (Zebra_Dialog), ao fechá-la
78                                            * com ESC, para que o evento ESC não seja propagado para fechamento da
79                                            * janela de edição de eventos, deve ser setada uma flag indicando que
80                                            * já existe uma janela de confirmação aberta.
81                                            */
82                                            if (!clicked) {
83                                                window.setTimeout(function() {
84                                                    zebraDiscardActivityDialog = false;
85                                                }, 200);
86                                            }
87                                        }
88                            });
89                                                                       
90                        }, 300);
91            }
92            //DataLayer.rollback();
93            return canDiscardActivityDialog;
94        },
95        dragStart: function(event, ui) {
96            if ($('.qtip.qtip-blue.qtip-active').length)
97                $('.qtip.qtip-blue.qtip-active').qtip('destroy');
98       }
99    });
100                               
101        } else {
102            UI.dialogs.addActivity.html(html);
103        }
104               
105var tabs = UI.dialogs.addActivity.children('.content').tabs({
106        select: function(event, ui) {
107                if ($('.qtip.qtip-blue.qtip-active').length)
108                        $('.qtip.qtip-blue.qtip-active').qtip('destroy');
109        }       
110        });
111
112var group = DataLayer.get('calendar', objActivity.group);
113                               
114if (group.timezone != objActivity.timezone){
115    UI.dialogs.addActivity.find('.group_addactivity_details_lnk_timezone').find('option[value="'+objActivity.timezone+'"]').attr('selected','selected').trigger('change');
116    UI.dialogs.addActivity.find('.group_addactivity_details_lnk_timezone').addClass('hidden');
117    $('.group-addevent-details-txt-timezone').removeClass('hidden');
118                       
119}
120
121UI.dialogs.addActivity.find('.group_addactivity_details_lnk_timezone').click(function(e){
122    $(this).addClass('hidden');
123    $('.group-addactivity-details-txt-timezone').removeClass('hidden');
124    e.preventDefault();
125});
126
127UI.dialogs.addActivity.find('.button.remove').button({
128    text:false,
129    icons:{
130        primary:'ui-icon-close'
131    }
132}).click(function(el){
133    var id;
134    if( id = $(this).parent().find('input[name="alarmId[]"]').val())
135        DataLayer.remove('alarm', id);
136    $(this).parent().remove().find('li').is(':empty');
137});
138
139UI.dialogs.addActivity.find('.button-add-alarms').click(function(){
140            DataLayer.render( 'templates/alarms_add_itemlist.ejs', {type: 2}, function( template ){
141            jQuery('.activity-alarms-list').append(template)
142            .find('.number').numeric().end()
143            .find('.button.remove').button({
144                text:false,
145                icons:{
146                    primary:'ui-icon-close'
147                }
148            }).click(function(el) {
149                $(this).parent().remove();
150            });   
151            });
152        });
153
154/*Seleciona a agenda padrão para visualização/edição de um evento*/
155if(objActivity.id)
156    UI.dialogs.addActivity.find('select[name="group"] option[value="'+objActivity.group+'"]').attr('selected','selected').trigger('change');
157
158UI.dialogs.addActivity.find('.button').button();
159    UI.dialogs.addActivity.find('.button.add').button({
160        icons: {
161           secondary: "ui-icon-plus"
162        }
163});
164
165todoStatus('addActivity', (objActivity.activityStatus != undefined) ? objActivity.activityStatus : 1);
166
167UI.dialogs.addActivity.find('select[name="activityStatus"]').attr('disabled', 'disabled');
168
169// ==== validation events ====
170UI.dialogs.addActivity.find(".input-group .h1").Watermark("Atividade sem título");
171
172UI.dialogs.addActivity.find(".number").numeric();
173
174User.preferences.dateFormat.indexOf('-') > 0 ?
175UI.dialogs.addActivity.find(".date").mask("99-99-9999", {
176    completed:function(){
177        updateMap();
178    }
179}) :
180
181UI.dialogs.addActivity.find(".date").mask("99/99/9999", {
182    completed:function(){
183        updateMap();
184    }
185});
186
187UI.dialogs.addActivity.find(".menu-addactivity")
188.children(".delete").click(function(){
189    $.Zebra_Dialog('A exclusão desta atividade também traz a opção de excluir suas tarefas adicionadas. O que deseja excluir?', {
190        'type':     'question',
191    'width': '400',
192        'overlay_opacity': '0.5',
193        'buttons':  ['Atividade e Tarefas', 'Apenas Atividade', 'Cancelar'],
194        'onClose':  function(clicked) {
195            if(clicked == 'Apenas Atividade'){
196            canDiscardActivityDialog = true;
197            /* Remove por filtro */
198            DataLayer.removeFilter('schedulable', {filter: ['AND', ['=', 'id', objActivity.id], ['=', 'calendar', objActivity.group], ['=','user',(objActivity.me.user ? objActivity.me.user.id : objActivity.me.id)], ['=', 'type', '2']],criteria:{type:2}});
199            Calendar.rerenderView(true);
200            /********************/
201            UI.dialogs.addActivity.dialog("close");
202            }else if(clicked == 'Atividade e Tarefas'){
203            canDiscardActivityDialog = true;
204            DataLayer.removeFilter('schedulable', {filter: ['AND', ['=', 'id', objActivity.id], ['=', 'calendar', objActivity.group], ['=','user',(objActivity.me.user ? objActivity.me.user.id : objActivity.me.id)], ['=', 'type', '2']],criteria:{removeTaskToActivity: true, type:2}});
205            Calendar.rerenderView(true);
206            UI.dialogs.addActivity.dialog("close");
207        }
208        }
209    });
210}).end()
211           
212.children(".cancel").click(function(){
213    UI.dialogs.addActivity.dialog("close");
214}).end()
215           
216.children(".save").click(function(){
217    /* Validação
218    var msg = false;                   
219    if(msg = validDateEvent()){
220        $(".new-activity-win.active").find('.messages-validation').removeClass('hidden').find('.message label').html(msg);
221        return false;
222    }
223    */
224
225    //Código o qual será chamado para o salvamento da Atividade.
226    var handler_save = function (objsToSave){
227        UI.dialogs.addActivity.find('select[name="activityStatus"], input[name="allDay"]').removeAttr('disabled');
228        canDiscardActivityDialog = true;
229
230        var activity_tst = DataLayer.form( UI.dialogs.addActivity.children().find('form') );
231        if(objsToSave)
232            objsToSave[objsToSave.length] = activity_tst;
233       
234        else
235            objsToSave = activity_tst;
236        DataLayer.put('schedulable', objsToSave);
237       
238        UI.dialogs.addActivity.dialog("close");
239    }
240
241    //Verifica se o grupo da atividade mudou
242    if (group.id != UI.dialogs.addActivity.children().find('form select[name="group"] :selected').val() && typeof group.id != 'undefined') {
243        //Janela de dialogo
244        $.Zebra_Dialog('Você alterou o grupo da atividade, deseja alterar também o grupo das tarefas pertencentes à essa atividade?', {
245            'type':     'question',
246            'overlay_opacity': '0.5',
247            'modal': true,
248            'buttons':  ['Não Alterar', 'Alterar'],
249            'onClose':  function(clicked) {
250                if(clicked == 'Não Alterar') {
251                 
252                    handler_save();
253                }else{
254                    var objsToSave = [];
255                    //percorre as tarefas da atividade para verificar se o grupo mudou
256                    for(var t in objActivity.tasks){
257                        if(typeof objActivity.tasks[t].group != 'undefined')
258                            if (objActivity.tasks[t].group != UI.dialogs.addActivity.children().find('form select[name="group"] :selected').val()){
259                                objActivity.tasks[t].group = UI.dialogs.addActivity.children().find('form select[name="group"] :selected').val();
260                                objsToSave[objsToSave.length] = {'calendar' : objActivity.tasks[t].group, 'id': t};
261                            }
262                    }
263                    handler_save(objsToSave);
264                   
265                }
266               
267            }
268        });
269                       
270   
271    } else {
272        handler_save();
273    }
274
275}).end()
276               
277.children(".export").click(function(){
278    UI.dialogs.addActivity.children().find(".form-export").submit();
279});
280
281var task_activityHtml = DataLayer.render( path+'templates/task_activity_add.ejs', {     activity: objActivity});
282var blkAddTask = UI.dialogs.addActivity.find('#group_addactivity_details8').append(task_activityHtml);
283
284var dates = UI.dialogs.addActivity.find('input.date').datepicker({
285    dateFormat: User.preferences.dateFormat.replace(/M/g, 'm').replace(/yyyy/g, 'yy'),
286    onSelect : function( selectedDate ){
287        updateMap();
288    }
289});
290
291blkAddTask.find('.add-activity-search .ui-icon-search').click(function(event) {
292    blkAddTask.find('.add-activity-search input').keydown();
293});
294                       
295                       
296blkAddTask.find('.add-activity-search input').keydown(function(event) {
297
298    if(event.keyCode == '13' || typeof(event.keyCode) == 'undefined') {
299    // Fazer get das tarefas   
300        var filter =
301        {
302            filter:
303                ['AND',
304                    ['=', 'type', '2'],
305                    ['>=','startTime', $.now()],
306                    ['in', 'calendar', [$('div.new-activity-win.active select[name="groupFilter"]').val()]]
307                ], criteria: {filterTasks: true, deepness: 2}
308        };
309    if($(this).val() != ''){
310        filter['filter'].push(['OR',
311                            ["i*", "summary", $(this).val()],
312                            ["i*", "description", $(this).val()]
313                           ]);
314    }
315    var result = DataLayer.get('schedulable:taskSearch', filter, true)
316        /**
317        * TODO: trocar por template
318        */
319        blkAddTask.find('ul.search-result-list').empty().css('overflow', 'hidden');
320        if (!result) {
321            blkAddTask.find('ul.search-result-list').append('<li><label class="empty">Nenhum resultado encontrado.</label></li>');
322        }else{
323        for(i=0; i<result.length; i++)
324            result[i].enabled = (blkAddTask.find('dd.task-activity-list ul.task-activity-list input[value="' +  result[i].id + '"]').length) ? false : true;
325                                                                                       
326        blkAddTask.find('ul.search-result-list').append(DataLayer.render( path+'templates/task_search_itemlist.ejs', result));
327
328        /* TODO - Verificar id da aitividade*/
329        blkAddTask.find('ul.search-result-list li').click(function(event, ui){
330            if ($(event.target).is('input')) {
331                old_item = $(event.target).parents('li');
332
333                tasks[old_item.find('[name="id"]').val()] = {
334                    startDate: old_item.find('[name="taskStartDate"]').val(),
335                    startHour: old_item.find('[name="taskStartHour"]').val(),
336                    endDate: old_item.find('[name="taskEndDate"]').val(),
337                    endHour: old_item.find('[name="taskEndHour"]').val(),
338                    dueDate: old_item.find('[name="taskDueDate"]').val(),
339                    dueTime: old_item.find('[name="taskDueTime"]').val(),
340                    allDay: old_item.find('[name="taskAllDay"]').val(),
341                    percentage: old_item.find('[name="taskPercentage"]').val(),
342                    status: old_item.find('[name="taskStatus"]').val()
343                };
344
345                tasks.length += 1;
346                                                               
347                blkAddTask.find('dd.task-activity-list ul.task-activity-list')
348                    .append(DataLayer.render(path+'templates/task_add_itemlist.ejs', [{
349                                idTask: old_item.find('[name="id"]').val(),
350                                description: old_item.find('.description').html(),
351                                isWrite: false,
352                                summary: old_item.find('[name="taskSummary"]').val(),
353                                dueDate: old_item.find('[name="taskDueDate"]').val(),
354                                dueTime: old_item.find('[name="taskDueTime"]').val(),
355                                startDate: old_item.find('[name="taskStartDate"]').val(),
356                                startHour: old_item.find('[name="taskStartHour"]').val(),
357                                percentage: old_item.find('[name="taskPercentage"]').val(),
358                                priority: old_item.find('[name="taskPriority"]').val()
359                        }]))
360                        .scrollTo('max');
361                callbackTask(false, path);
362                registerStatus();
363                blkAddTask.find('.not-activity').addClass('hidden');
364                old_item.remove();
365            }
366        });
367    }
368    event.preventDefault();
369    }
370});
371
372/*Carrega as tarefas já existentes em uma atividade*/
373if(objActivity.tasks.length){
374    tasks = objActivity.tasks;
375
376    for(var i in objActivity.tasks){
377        if(i != 'length')
378            blkAddTask.find('dd.task-activity-list ul.task-activity-list')
379                .append(DataLayer.render(path+'templates/task_add_itemlist.ejs', [{
380                    idTask: i,
381                    description: tasks[i].description,
382                    idTaskToActivity: tasks[i].taskToActivity,
383                                        isWrite: true,
384                                        summary: tasks[i].summary,
385                                        dueDate: tasks[i].dueDate,
386                                        dueTime: tasks[i].dueTime,
387                                        startDate: tasks[i].startDate,
388                                        startHour: tasks[i].startHour,
389                                        percentage: tasks[i].percentage,
390                                        priority: tasks[i].priority
391                 }]))
392            .scrollTo('max');
393    }
394
395    callbackTask(false, path);
396    registerStatus();
397    blkAddTask.find('.not-activity').addClass('hidden');
398}
399
400UI.dialogs.addActivity.find('.row.fileupload-buttonbar-activity .button').filter('.delete').button({
401    icons: {
402           primary: "ui-icon-close"
403    },
404    text: 'Excluir'
405}).click(function () {
406    $.Zebra_Dialog('Tem certeza que deseja excluir todos anexos?', {
407        'type':     'question',
408        'overlay_opacity': '0.5',
409        'buttons':  ['Sim', 'Não'],
410        'onClose':  function(clicked) {
411            if(clicked == 'Sim'){
412               
413                var ids = [];
414                $.each($('.attachment-list input'), function (i, input) {
415                     DataLayer.remove('schedulableToAttachment', {
416                        filter: ['=', 'id', ''+input.value]
417                        });
418                });
419                $('div.new-activity-win .attachment-list input').remove();
420                $('div.new-activity-win .row.fileupload-buttonbar-activity .attachments-list p').remove();
421                $('div.new-activity-win .btn-danger.delete').addClass('hidden');
422            }
423        }});
424}).end()
425.filter('.close').button({
426    icons: {
427           primary: "ui-icon-close"
428    },
429    text: false
430}).click(function () {
431    DataLayer.remove('schedulableToAttachment', $(this).parents('p').find('input[name="fileId[]"]').val());
432    $(this).parents('p').remove();
433}).end()
434.filter('.downlaod-archive').button({
435    icons: {
436           primary: "ui-icon-arrowthickstop-1-s"
437    },
438    text: false
439});
440
441extendsFileupload('activity', path);
442
443UI.dialogs.addActivity.find(':input').change(function(event){
444    if (event.keyCode != '27' && event.keyCode != '13')
445        canDiscardActivityDialog = false;
446}).keydown(function(event){
447    if (event.keyCode != '27' && event.keyCode != '13')
448        canDiscardActivityDialog = false;
449});
450
451UI.dialogs.addActivity.dialog('open');
452}
453
454function refreshTaskActivity(){
455    updateActivity = false;
456
457    var idTask = UI.dialogs.addActivity.find('input[name="idActivity"]').val();
458     
459    getSchedulable( idTask );
460     
461    var objActivity = DataLayer.get('schedulable:activity', idTask );
462    var blkAddTask = UI.dialogs.addActivity.find('#group_addactivity_details8');
463    var blkAuto = UI.dialogs.addActivity.find('#group_addactivity_details1');
464   
465   tasks = objActivity.tasks;
466   blkAddTask.find('dd.task-activity-list ul.task-activity-list').html('');
467   
468   for(var i in tasks)
469       DataLayer.remove('schedulable', i, false);
470
471    for(var i in objActivity.tasks){
472        if(i != 'length')
473            blkAddTask.find('dd.task-activity-list ul.task-activity-list')
474                .append(DataLayer.render('templates/task_add_itemlist.ejs', [{
475                    idTask: i,
476                    description: tasks[i].description,
477                    idTaskToActivity: tasks[i].taskToActivity,
478                                        isWrite: true,
479                                        summary: tasks[i].summary,
480                                        dueDate: tasks[i].dueDate,
481                                        dueTime: tasks[i].dueTime,
482                                        startDate: tasks[i].startDate,
483                                        startHour: tasks[i].startHour,
484                                        percentage: tasks[i].percentage,
485                                        priority: tasks[i].priority
486                 }]))
487            .scrollTo('max');
488    }
489
490    callbackTask(blkAddTask);
491    registerStatus(blkAuto);
492}
493
494function registerStatus(blkAuto){
495    if(!blkAuto)
496        blkAuto = UI.dialogs.addActivity.find('#group_addactivity_details1');
497
498    var startDate = false;
499    var endDate = new Date;
500    var dueDate = new Date;
501    var percentage = 0;         
502            var statusTasks = {1: 0, 2: 0, 3: 0, 4: 0};
503            var allDay = true;
504
505    var formatString =  User.preferences.dateFormat + " " +  User.preferences.hourFormat;
506
507    if(tasks.length == 0){
508
509        startDate = new Date();
510        var configData = (startDate.toString('mm') < 30)  ? {minutes: (30 - parseInt(startDate.toString('mm')))} : {hours: 1, minutes: '-'+startDate.toString('mm')};
511        startDate.add(configData);
512
513        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))));
514
515        blkAuto.find('input[name="startDate"]').val(startDate.toString(User.preferences.dateFormat ));
516        blkAuto.find('input[name="startHour"]').val(startDate.toString(User.preferences.hourFormat ));
517
518        blkAuto.find('input[name="endDate"]').val(endDate.toString(User.preferences.dateFormat ));
519        blkAuto.find('input[name="endHour"]').val(endDate.toString(User.preferences.hourFormat ));
520
521        blkAuto.find('input[name="dueDate"]').val('');
522        blkAuto.find('input[name="dueHour"]').val('');
523
524        blkAuto.find('input[name="percentage"]').val(percentage);
525
526        todoStatus('addActivity', 1);
527
528        UI.dialogs.addActivity.find('select[name="activityStatus"] option[value="'+1+'"]').attr('selected','selected');
529
530        blkAuto.find('input[name="allDay"]').attr('checked', false);
531
532        return true;
533    }
534
535    for (var i in tasks){
536
537        if(i == 'length')
538            continue;
539
540        statusTasks[tasks[i].status]++;
541
542        var stTime = Date.parseExact( tasks[i].startDate + " "+$.trim( tasks[i].startHour) , formatString);
543        var enTime = Date.parseExact( tasks[i].endDate + " "+$.trim( tasks[i].endHour), formatString );
544
545        startDate = (startDate && startDate.compareTo(stTime) == -1) ? startDate : stTime;
546        endDate = endDate.compareTo(enTime) == -1 ? enTime : endDate;
547
548        if(tasks[i].dueDate != ''){
549            var pvTime = Date.parseExact( tasks[i].dueDate + " "+$.trim( tasks[i].dueTime), formatString );
550            dueDate = dueDate.compareTo(pvTime) == -1 ? pvTime : dueDate;
551        }
552
553        percentage += parseInt(tasks[i].percentage);
554    }
555
556
557    if((percentage > 0) && (tasks.length > 0))
558        percentage = parseInt(percentage / tasks.length);
559   
560    var statusActivity = 1;
561
562    if(statusTasks[4] != 0)
563        statusActivity = 4;
564    else if(statusTasks[2] != 0)
565        statusActivity = 2;
566    else if(statusTasks[3] == tasks.length)
567        statusActivity = 3;
568    else if(statusTasks[1] == tasks.length)
569        statusActivity = 1;
570    else
571        statusActivity = 2;                     
572
573    todoStatus('addActivity', statusActivity);
574
575    UI.dialogs.addActivity.find('select[name="activityStatus"] option[value="'+statusActivity+'"]').attr('selected','selected');
576
577    dueDate = dueDate.compareTo(endDate) == -1 ? endDate : dueDate;
578
579    blkAuto.find('input[name="startDate"]').val(startDate.toString(User.preferences.dateFormat ));
580    blkAuto.find('input[name="startHour"]').val(startDate.toString(User.preferences.hourFormat ));
581
582    blkAuto.find('input[name="endDate"]').val(endDate.toString(User.preferences.dateFormat ));
583    blkAuto.find('input[name="endHour"]').val(endDate.toString(User.preferences.hourFormat ));
584
585    blkAuto.find('input[name="dueDate"]').val(dueDate.toString(User.preferences.dateFormat ));
586    blkAuto.find('input[name="dueHour"]').val(dueDate.toString(User.preferences.hourFormat ));
587
588    blkAuto.find('input[name="percentage"]').val(percentage);
589
590    blkAuto.find('input[name="allDay"]').attr('checked', (!!(startDate.compareTo(endDate) == 0) || (startDate.toString('HH:mm') == endDate.toString('HH:mm')) ? true : false));
591}
592
593function callbackTask(blkAddTask, path){
594
595    path = path ? path : '';
596
597        if(!blkAddTask)
598            blkAddTask = UI.dialogs.addActivity.find('#group_addactivity_details8');
599
600        blkAddTask.find("li .button").filter(".close.new").button({
601            icons: {
602            primary: "ui-icon-close"
603            },
604            text: false
605        }).click(function () {
606
607            delete tasks[$(this).parents('li').find('input[name="idtask[]"]').val()]
608            tasks.length +=  -1;
609
610            idTaskToActivity = $(this).parents('li').find('input[name="idTaskToActivity[]"]').val()
611
612            if(idTaskToActivity != '')
613                DataLayer.remove('taskToActivity', idTaskToActivity);
614           
615            $(this).parents('li').remove();
616               
617            if(blkAddTask.find(".task-activity-list li").length == 1)
618                blkAddTask.find("li.not-activity    ").removeClass('hidden');
619
620            registerStatus();
621        })
622        .addClass('tiny disable ui-button-disabled ui-state-disabled')
623        .removeClass('new').end()
624
625        .filter(".info.new").button({
626            icons: {
627                primary:  "ui-icon-notice"
628            },
629            text: false
630        }).click(function () {
631            var positionY = $(this).parents("li").offset().top;
632             
633            var summary = $(this).parents('li').find("div").find(".summary").val();
634                        var startDate = $(this).parents('li').find("div").find(".startDate").val();
635            var startHour = $(this).parents('li').find("div").find(".startHour").val();
636                        var dueDate = $(this).parents('li').find("div").find(".dueDate").val();
637                        var dueTime = $(this).parents('li').find("div").find(".dueTime").val();
638                        var percentage = $(this).parents('li').find("div").find(".percentage").val();
639                        var priority = $(this).parents('li').find("div").find(".priority").val();
640            var email = $(this).parents('li').find("div").find(".mail").text()
641                       
642            if( $('.qtip.qtip-blue.qtip-active').val() !== ''){
643                $(this).qtip({
644                    show: {
645                        ready: true,
646                        solo: true,
647                        when: {
648                            event: 'click'
649                        }
650                    },
651                    hide: false,
652                    content: {
653                        text: $('<div></div>').html( DataLayer.render( path + 'templates/activity_information_task.ejs', {
654                            'summary' : summary,
655                                                        'startDate' : startDate,
656                                                        'startHour' : startHour,
657                                                        'dueDate' : dueDate,
658                                                        'dueTime' : dueTime,
659                                                        'percentage' : percentage,
660                                                        'priority' : priority
661                        } ) ),
662                        title: {
663                            text:'Informações',
664                            button: '<a class="button close" href="#">close</a>'
665                        }
666                    },
667                style: {
668                    name: 'blue',
669                        tip: {
670                             },
671                        border: {
672                            width: 4,
673                            radius: 8
674                        },
675                        width: {
676                            min: 230,
677                            max:230
678                        }
679                },
680                position: {
681                    corner: {
682                        target: 'rightMiddle',
683                        tooltip: 'leftMiddle'
684                    },
685                    adjust: {
686                        x: 30,
687                        y: 0
688                    }
689                }
690            })
691            .qtip("api").onShow = function(arg0) {
692                $('.qtip-active .button.close').button({
693                    icons: {
694                        primary: "ui-icon-close"
695                    },
696                    text: false
697                })
698                .click(function(){
699                    blkAddTask.find('dd.task-activity-list').qtip('destroy');
700                });
701                                       
702                $('.qtip-active .button.cancel').button().click(function(){
703                    blkAddTask.find('dd.activity-list [type=checkbox]').attr('checked', false);
704                    blkAddTask.find('dd.activity-list').qtip('destroy');
705                });
706
707                $('.qtip .button').button();
708                                       
709            };
710         }             
711     })
712 .addClass('tiny disable ui-button-disabled ui-state-disabled')
713 .removeClass('new').end()
714 .filter(".edit.new").button({
715            icons: {
716            primary: "ui-icon-pencil"
717            },
718            text: false
719        }).click(function () {
720            var idTask = $(this).parents('li').find('input[name="idtask[]"]').val()
721        getSchedulable(idTask);
722        var task = DataLayer.get('schedulable:task', idTask);
723        taskDetails(task, true, '',true, null, true);     
724        })
725        .addClass('tiny disable ui-button-disabled ui-state-disabled')
726        .removeClass('new').end()
727
728        UI.dialogs.addActivity.find('.task-activity-list li').hover(
729            function () {
730                $(this).addClass("hover-attendee");
731                $(this).find('.button').removeClass('disable ui-button-disabled ui-state-disabled').end()
732                .find('.activity-options').addClass('hover-attendee');
733            },
734            function () {
735                $(this).removeClass("hover-attendee");
736                $(this).find('.button').addClass('disable ui-button-disabled ui-state-disabled').end()
737                .find('.activity-options').removeClass('hover-attendee');
738            }
739        );       
740    }
Note: See TracBrowser for help on using the repository browser.