source: trunk/prototype/modules/calendar/js/activity.helpers.js @ 7896

Revision 7896, 27.1 KB checked in by marcieli, 11 years ago (diff)

Ticket #3341 - Commit da funcionalidade implementada no trunk - DFD0151.

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