source: sandbox/2.4.2-expresso1/prototype/modules/calendar/js/activity.helpers.js @ 6977

Revision 6977, 27.8 KB checked in by acoutinho, 12 years ago (diff)

Ticket #2966 - Suporte a edicao de tarefas na edicao de tarefas

  • 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
105/* Checkbox allday */
106UI.dialogs.addActivity.find('input[name="allDay"]').click(function(){
107    $(this).attr("checked") ?
108    UI.dialogs.addActivity.find('.start-time, .end-time').addClass('hidden') :
109    UI.dialogs.addActivity.find('.start-time, .end-time').removeClass('hidden');
110});
111               
112var tabs = UI.dialogs.addActivity.children('.content').tabs({
113        select: function(event, ui) {
114                if ($('.qtip.qtip-blue.qtip-active').length)
115                        $('.qtip.qtip-blue.qtip-active').qtip('destroy');
116        }       
117        });
118
119var group = DataLayer.get('calendar', objActivity.group);
120                               
121if (group.timezone != objActivity.timezone){
122    UI.dialogs.addActivity.find('.group_addactivity_details_lnk_timezone').find('option[value="'+objActivity.timezone+'"]').attr('selected','selected').trigger('change');
123    UI.dialogs.addActivity.find('.group_addactivity_details_lnk_timezone').addClass('hidden');
124    $('.group-addevent-details-txt-timezone').removeClass('hidden');
125                       
126}
127
128UI.dialogs.addActivity.find('.group_addactivity_details_lnk_timezone').click(function(e){
129    $(this).addClass('hidden');
130    $('.group-addactivity-details-txt-timezone').removeClass('hidden');
131    e.preventDefault();
132});
133
134UI.dialogs.addActivity.find('.button.remove').button({
135    text:false,
136    icons:{
137        primary:'ui-icon-close'
138    }
139}).click(function(el){
140    var id;
141    if( id = $(this).parent().find('input[name="alarmId[]"]').val())
142        DataLayer.remove('alarm', id);
143    $(this).parent().remove().find('li').is(':empty');
144});
145
146UI.dialogs.addActivity.find('.button-add-alarms').click(function(){
147            DataLayer.render( 'templates/alarms_add_itemlist.ejs', {type: 0}, function( template ){                     
148            jQuery('.activity-alarms-list').append(template)
149            .find('li:last label:eq(0)').remove().end()
150            .find('.number').numeric().end()
151            .find('.button.remove').button({
152                text:false,
153                icons:{
154                    primary:'ui-icon-close'
155                }
156            }).click(function(el) {
157                $(this).parent().remove();
158            });   
159            });
160        });
161
162/*Seleciona a agenda padrão para visualização/edição de um evento*/
163if(objActivity.id)
164    UI.dialogs.addActivity.find('select[name="group"] option[value="'+objActivity.group+'"]').attr('selected','selected').trigger('change');
165
166UI.dialogs.addActivity.find('.button').button();
167    UI.dialogs.addActivity.find('.button.add').button({
168        icons: {
169           secondary: "ui-icon-plus"
170        }
171});
172
173todoStatus('addActivity', (objActivity.activityStatus != undefined) ? objActivity.activityStatus : 1);
174
175UI.dialogs.addActivity.find('select[name="activityStatus"]').attr('disabled', 'disabled');
176
177// ==== validation events ====
178UI.dialogs.addActivity.find(".input-group .h1").Watermark("Atividade sem título");
179
180UI.dialogs.addActivity.find(".number").numeric();
181
182User.preferences.dateFormat.indexOf('-') > 0 ?
183UI.dialogs.addActivity.find(".date").mask("99-99-9999", {
184    completed:function(){
185        updateMap();
186    }
187}) :
188
189UI.dialogs.addActivity.find(".date").mask("99/99/9999", {
190    completed:function(){
191        updateMap();
192    }
193});
194
195UI.dialogs.addActivity.find(".menu-addactivity")
196.children(".delete").click(function(){
197    $.Zebra_Dialog('Tem certeza que deseja excluir a atividade?', {
198        'type':     'question',
199        'overlay_opacity': '0.5',
200        'buttons':  ['Sim', 'Não'],
201        'onClose':  function(clicked) {
202            if(clicked == 'Sim'){
203                canDiscardActivityDialog = true;
204                /* Remove por filtro */
205                DataLayer.removeFilter('schedulable', {filter: ['AND', ['=', 'id', objActivity.id], ['=', 'calendar', objActivity.group], ['=','user',(objActivity.me.user ? objActivity.me.user.id : objActivity.me.id)], ['=', 'type', '2']]});
206                Calendar.rerenderView(true);
207                /********************/
208                UI.dialogs.addActivity.dialog("close");
209            }
210        }
211    });
212}).end()
213           
214.children(".cancel").click(function(){
215    UI.dialogs.addActivity.dialog("close");
216}).end()
217           
218.children(".save").click(function(){
219    /* Validação
220    var msg = false;                   
221    if(msg = validDateEvent()){
222        $(".new-activity-win.active").find('.messages-validation').removeClass('hidden').find('.message label').html(msg);
223        return false;
224    }
225    */
226        UI.dialogs.addActivity.find('select[name="activityStatus"]').removeAttr('disabled');
227    canDiscardActivityDialog = true;
228                       
229        UI.dialogs.addActivity.children().find('form.form-addactivity').submit();
230        UI.dialogs.addActivity.dialog("close");
231
232}).end()
233               
234.children(".export").click(function(){
235    UI.dialogs.addActivity.children().find(".form-export").submit();
236});
237
238var task_activityHtml = DataLayer.render( path+'templates/task_activity_add.ejs', {     activity: objActivity});
239var blkAddTask = UI.dialogs.addActivity.find('#group_addactivity_details8').append(task_activityHtml);
240
241var dates = UI.dialogs.addActivity.find('input.date').datepicker({
242    dateFormat: User.preferences.dateFormat.replace(/M/g, 'm').replace(/yyyy/g, 'yy'),
243    onSelect : function( selectedDate ){
244        updateMap();
245    }
246});
247
248blkAddTask.find('.add-activity-search .ui-icon-search').click(function(event) {
249    blkAddTask.find('.add-activity-search input').keydown();
250});
251                       
252                       
253blkAddTask.find('.add-activity-search input').keydown(function(event) {
254
255    if(event.keyCode == '13' || typeof(event.keyCode) == 'undefined') {
256    // Fazer get das tarefas   
257        var filter =
258        {
259            filter:
260                ['AND',
261                    ['=', 'type', '2'],
262                    ['>=','startTime', $.now()],
263                    ['in', 'calendar',
264                        [$('div.new-activity-win.active select[name="groupFilter"]').val()]
265                    ]
266                ], criteria: {'filterTasks': true}
267        };
268    if($(this).val() != ''){
269        filter['filter'].push(['OR',
270                            ["i*", "summary", $(this).val()],
271                            ["i*", "description", $(this).val()]
272                           ]);
273    }
274
275    var result = DataLayer.get('schedulable:taskSearch', filter, true)
276        /**
277        * TODO: trocar por template
278        */
279        blkAddTask.find('ul.search-result-list').empty().css('overflow', 'hidden');
280        if (!result) {
281            blkAddTask.find('ul.search-result-list').append('<li><label class="empty">Nenhum resultado encontrado.</label></li>');
282        }else{
283        for(i=0; i<result.length; i++)
284            result[i].enabled = (blkAddTask.find('dd.task-activity-list ul.task-activity-list input[value="' +  result[i].id + '"]').length) ? false : true;
285                                                                                       
286        blkAddTask.find('ul.search-result-list').append(DataLayer.render( path+'templates/task_search_itemlist.ejs', result));
287
288        /* TODO - Verificar id da aitividade*/
289        blkAddTask.find('ul.search-result-list li').click(function(event, ui){
290            if ($(event.target).is('input')) {
291                old_item = $(event.target).parents('li');
292
293                tasks[old_item.find('[name="id"]').val()] = {
294                    startDate: old_item.find('[name="taskStartDate"]').val(),
295                    startHour: old_item.find('[name="taskStartHour"]').val(),
296                    endDate: old_item.find('[name="taskEndDate"]').val(),
297                    endHour: old_item.find('[name="taskEndHour"]').val(),
298                    dueDate: old_item.find('[name="taskDueDate"]').val(),
299                    dueTime: old_item.find('[name="taskDueTime"]').val(),
300                    allDay: old_item.find('[name="taskAllDay"]').val(),
301                    percentage: old_item.find('[name="taskPercentage"]').val(),
302                    status: old_item.find('[name="taskStatus"]').val()
303                };
304
305                tasks.length += 1;
306                                                               
307                blkAddTask.find('dd.task-activity-list ul.task-activity-list')
308                    .append(DataLayer.render(path+'templates/task_add_itemlist.ejs', [{
309                        idTask: old_item.find('[name="id"]').val(),
310                            description: old_item.find('.description').html(),
311                            isWrite: false
312                        }]))
313                        .scrollTo('max');
314                callbackTask();
315                registerStatus();
316                blkAddTask.find('.not-activity').addClass('hidden');
317                old_item.remove();
318            }
319        });
320    }
321    event.preventDefault();
322    }
323});
324
325/*Carrega as tarefas já existentes em uma atividade*/
326if(objActivity.tasks.length){
327    tasks = objActivity.tasks;
328
329    for(var i in objActivity.tasks){
330        if(i != 'length')
331            blkAddTask.find('dd.task-activity-list ul.task-activity-list')
332                .append(DataLayer.render(path+'templates/task_add_itemlist.ejs', [{
333                    idTask: i,
334                    description: tasks[i].description,
335                    idTaskToActivity: tasks[i].taskToActivity,
336                    isWrite: true
337                 }]))
338            .scrollTo('max');
339    }
340
341    callbackTask();
342    registerStatus();
343    blkAddTask.find('.not-activity').addClass('hidden');
344}
345
346UI.dialogs.addActivity.find('.row.fileupload-buttonbar-activity .button').filter('.delete').button({
347    icons: {
348           primary: "ui-icon-close"
349    },
350    text: 'Excluir'
351}).click(function () {
352    $.Zebra_Dialog('Tem certeza que deseja excluir todos anexos?', {
353        'type':     'question',
354        'overlay_opacity': '0.5',
355        'buttons':  ['Sim', 'Não'],
356        'onClose':  function(clicked) {
357            if(clicked == 'Sim'){
358               
359                var ids = [];
360                $.each($('.attachment-list input'), function (i, input) {
361                     DataLayer.remove('schedulableToAttachment', {
362                        filter: ['=', 'id', ''+input.value]
363                        });
364                });
365                $('.attachment-list input').remove();
366                $('.row.fileupload-buttonbar-activity .attachments-list p').remove();
367            }
368        }});
369}).end()
370.filter('.close').button({
371    icons: {
372           primary: "ui-icon-close"
373    },
374    text: false
375}).click(function () {
376    DataLayer.remove('schedulableToAttachment', $(this).parents('p').find('input[name="fileId[]"]').val());
377    $(this).parents('p').remove();
378}).end()
379.filter('.downlaod-archive').button({
380    icons: {
381           primary: "ui-icon-arrowthickstop-1-s"
382    },
383    text: false
384});
385var maxSizeFile = 2000000;
386$('#fileuploadactivity').fileupload({
387    sequentialUploads: true,
388    add: function (e, data) {
389        if(data.files[0].size < maxSizeFile)
390            data.submit();
391    },
392    change: function (e, data) {
393        $.each(data.files, function (index, file) {
394            var attach = {};
395            attach.fileName = file.name;
396            var ext = file.name.split('.');
397            if(file.name.length > 10)
398                attach.fileName = ext.length == 1 ? file.name.substr(0, 10) :  file.name.substr(0, 6) + '.' + ext[ext.length -1];
399            attach.fileSize = formatBytes(file.size);
400            if(file.size > maxSizeFile)
401                attach.error = 'Tamanho de arquivo nao permitido!!'
402                               
403            $('div.new-activity-win .attachments-list').append(DataLayer.render(path+'templates/attachment_add_itemlist.ejs', {
404                file : attach
405            }));
406                               
407            if(file.size < maxSizeFile){
408                $('div.new-activity-win .fileinput-button.new').append(data.fileInput[0]).removeClass('new');
409                $('div.new-activity-win .attachments-list').find('[type=file]').addClass('hidden');
410                                       
411            }else
412                $('div.new-activity-win .fileinput-button.new').removeClass('new');
413                               
414                               
415            $('div.new-activity-win .attachments-list').find('.button.close').button({
416                icons: {
417                    primary: "ui-icon-close"
418                },
419                text: false
420            }).click(function(){
421                var idAttach = $(this).parent().find('input[name="fileId[]"]').val();
422                $('.attachment-list').find('input[value="'+idAttach+'"]')
423                $(this).parent().remove();
424            });
425                               
426        })
427        },
428    done: function(e, data){
429        var currentUpload = $('div.new-activity-win .progress.after-upload:first').removeClass('after-upload').addClass('on-complete').hide();
430
431        if(!!data.result && data.result != "[]"){
432            var newAttach = (attch = jQuery.parseJSON(data.result)) ? attch : jQuery.parseJSON(data.result[0].activeElement.childNodes[0].data);
433            $('div.new-activity-win .attachment-list').append('<input tyepe="hidden" name="attachment[]" value="'+newAttach['attachment'][0][0].id+'"/>');
434            currentUpload.removeClass('on-complete').parents('p')
435            .append('<input type="hidden" name="fileId[]" value="'+newAttach['attachment'][0][0].id+'"/>')
436            .find('.status-upload').addClass('ui-icon ui-icon-check');
437        }else
438            currentUpload.removeClass('on-complete').parents('p').find('.status-upload').addClass('ui-icon ui-icon-cancel');
439        }
440});
441$('.attachments-list .button').button();
442
443if(!!window.FormData)                   
444$('#fileuploadactivity').bind('fileuploadstart', function () {
445    var widget = $(this),
446    progressElement = $('#fileupload-progress-activity').fadeIn(),
447    interval = 500,
448    total = 0,
449    loaded = 0,
450    loadedBefore = 0,
451    progressTimer,
452    progressHandler = function (e, data) {
453        loaded = data.loaded;
454        total = data.total;
455    },
456    stopHandler = function () {
457        widget
458        .unbind('fileuploadprogressall', progressHandler)
459        .unbind('fileuploadstop', stopHandler);
460        window.clearInterval(progressTimer);
461        progressElement.fadeOut(function () {
462            progressElement.html('');
463        });
464    },
465    formatTime = function (seconds) {
466        var date = new Date(seconds * 1000);
467        return ('0' + date.getUTCHours()).slice(-2) + ':' +
468        ('0' + date.getUTCMinutes()).slice(-2) + ':' +
469        ('0' + date.getUTCSeconds()).slice(-2);
470    },
471    /* formatBytes = function (bytes) {
472            if (bytes >= 1000000000) {
473                return (bytes / 1000000000).toFixed(2) + ' GB';
474            }
475            if (bytes >= 1000000) {
476                return (bytes / 1000000).toFixed(2) + ' MB';
477            }
478            if (bytes >= 1000) {
479                return (bytes / 1000).toFixed(2) + ' KB';
480            }
481            return bytes + ' B';
482        },*/
483    formatPercentage = function (floatValue) {
484        return (floatValue * 100).toFixed(2) + ' %';
485    },
486    updateProgressElement = function (loaded, total, bps) {
487        progressElement.html(
488            formatBytes(bps) + 'ps | ' +
489            formatTime((total - loaded) / bps) + ' | ' +
490            formatPercentage(loaded / total) + ' | ' +
491            formatBytes(loaded) + ' / ' + formatBytes(total)
492            );
493    },
494    intervalHandler = function () {
495        var diff = loaded - loadedBefore;
496        if (!diff) {
497            return;
498        }
499        loadedBefore = loaded;
500        updateProgressElement(
501            loaded,
502            total,
503            diff * (1000 / interval)
504            );
505    };
506    widget
507    .bind('fileuploadprogressall', progressHandler)
508    .bind('fileuploadstop', stopHandler);
509    progressTimer = window.setInterval(intervalHandler, interval);
510});
511
512UI.dialogs.addActivity.find(':input').change(function(event){
513    if (event.keyCode != '27' && event.keyCode != '13')
514        canDiscardActivityDialog = false;
515}).keydown(function(event){
516    if (event.keyCode != '27' && event.keyCode != '13')
517        canDiscardActivityDialog = false;
518});
519
520UI.dialogs.addActivity.dialog('open');
521}
522
523function refreshTaskActivity(){
524    updateActivity = false;
525
526    var objActivity = DataLayer.get('schedulable:activity', UI.dialogs.addActivity.find('input[name="idActivity"]').val());
527    var blkAddTask = UI.dialogs.addActivity.find('#group_addactivity_details8');
528    var blkAuto = UI.dialogs.addActivity.find('#group_addactivity_details1');
529   
530   tasks = objActivity.tasks;
531   blkAddTask.find('dd.task-activity-list ul.task-activity-list').html('');
532   
533   for(var i in tasks)
534       DataLayer.remove('schedulable', i, false);
535
536    for(var i in objActivity.tasks){
537        if(i != 'length')
538            blkAddTask.find('dd.task-activity-list ul.task-activity-list')
539                .append(DataLayer.render('templates/task_add_itemlist.ejs', [{
540                    idTask: i,
541                    description: tasks[i].description,
542                    idTaskToActivity: tasks[i].taskToActivity,
543                    isWrite: true
544                 }]))
545            .scrollTo('max');
546    }
547
548    callbackTask(blkAddTask);
549    registerStatus(blkAuto);
550}
551
552function registerStatus(blkAuto){
553    if(!blkAuto)
554        blkAuto = UI.dialogs.addActivity.find('#group_addactivity_details1');
555
556    var startDate = false;
557    var endDate = new Date;
558    var dueDate = new Date;
559    var percentage = 0;         
560            var statusTasks = {1: 0, 2: 0, 3: 0, 4: 0};
561            var allDay = true;
562
563    var formatString =  User.preferences.dateFormat + " " +  User.preferences.hourFormat;
564
565    if(tasks.length == 0){
566
567        startDate = new Date();
568        var configData = (startDate.toString('mm') < 30)  ? {minutes: (30 - parseInt(startDate.toString('mm')))} : {hours: 1, minutes: '-'+startDate.toString('mm')};
569        startDate.add(configData);
570
571        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))));
572
573        blkAuto.find('input[name="startDate"]').val(startDate.toString(User.preferences.dateFormat ));
574        blkAuto.find('input[name="startHour"]').val(startDate.toString(User.preferences.hourFormat ));
575
576        blkAuto.find('input[name="endDate"]').val(endDate.toString(User.preferences.dateFormat ));
577        blkAuto.find('input[name="endHour"]').val(endDate.toString(User.preferences.hourFormat ));
578
579        blkAuto.find('input[name="dueDate"]').val('');
580        blkAuto.find('input[name="dueHour"]').val('');
581
582        blkAuto.find('input[name="percentage"]').val(percentage);
583
584        todoStatus('addActivity', 1);
585
586        UI.dialogs.addActivity.find('select[name="activityStatus"] option[value="'+1+'"]').attr('selected','selected');
587
588        blkAuto.find('input[name="allDay"]').attr('checked', false);
589
590        return true;
591    }
592
593    for (var i in tasks){
594
595        if(i == 'length')
596            continue;
597
598        statusTasks[tasks[i].status]++;
599
600        var stTime = Date.parseExact( tasks[i].startDate + " "+$.trim( tasks[i].startHour) , formatString);
601        var enTime = Date.parseExact( tasks[i].endDate + " "+$.trim( tasks[i].endHour), formatString );
602
603        startDate = (startDate && startDate.compareTo(stTime) == -1) ? startDate : stTime;
604        endDate = endDate.compareTo(enTime) == -1 ? enTime : endDate;
605
606        if(tasks[i].dueDate != ''){
607            var pvTime = Date.parseExact( tasks[i].dueDate + " "+$.trim( tasks[i].dueTime), formatString );
608            dueDate = dueDate.compareTo(pvTime) == -1 ? pvTime : dueDate;
609        }
610
611        if(parseInt(tasks[i].percentage) > 0)
612            percentage += parseInt(parseInt((100 / tasks.length)) * ( parseInt(tasks[i].percentage) / 100));
613    }
614    var statusActivity = 1;
615
616    if(statusTasks[4] != 0)
617        statusActivity = 4;
618    else if(statusTasks[2] != 0)
619        statusActivity = 2;
620    else if(statusTasks[3] == tasks.length)
621        statusActivity = 3;
622    else if(statusTasks[1] == tasks.length)
623        statusActivity = 1;
624    else
625        statusActivity = 2;                     
626
627    todoStatus('addActivity', statusActivity);
628
629    UI.dialogs.addActivity.find('select[name="activityStatus"] option[value="'+statusActivity+'"]').attr('selected','selected');
630
631    dueDate = dueDate.compareTo(endDate) == -1 ? endDate : dueDate;
632
633    blkAuto.find('input[name="startDate"]').val(startDate.toString(User.preferences.dateFormat ));
634    blkAuto.find('input[name="startHour"]').val(startDate.toString(User.preferences.hourFormat ));
635
636    blkAuto.find('input[name="endDate"]').val(endDate.toString(User.preferences.dateFormat ));
637    blkAuto.find('input[name="endHour"]').val(endDate.toString(User.preferences.hourFormat ));
638
639    blkAuto.find('input[name="dueDate"]').val(dueDate.toString(User.preferences.dateFormat ));
640    blkAuto.find('input[name="dueHour"]').val(dueDate.toString(User.preferences.hourFormat ));
641
642    blkAuto.find('input[name="percentage"]').val(percentage);
643
644    blkAuto.find('input[name="allDay"]').attr('checked', (!!(startDate.compareTo(endDate) == 0) || (startDate.toString('HH:mm') == endDate.toString('HH:mm')) ? true : false));
645}
646
647function callbackTask(blkAddTask){
648        if(!blkAddTask)
649            blkAddTask = UI.dialogs.addActivity.find('#group_addactivity_details8');
650
651        blkAddTask.find("li .button").filter(".close.new").button({
652            icons: {
653            primary: "ui-icon-close"
654            },
655            text: false
656        }).click(function () {
657
658            delete tasks[$(this).parents('li').find('input[name="idtask[]"]').val()]
659            tasks.length +=  -1;
660
661            idTaskToActivity = $(this).parents('li').find('input[name="idTaskToActivity[]"]').val()
662
663            if(idTaskToActivity != '')
664                DataLayer.remove('taskToActivity', idTaskToActivity);
665           
666            $(this).parents('li').remove();
667               
668            if(blkAddTask.find(".task-activity-list li").length == 1)
669                blkAddTask.find("li.not-activity    ").removeClass('hidden');
670
671            registerStatus();
672        })
673        .addClass('tiny disable ui-button-disabled ui-state-disabled')
674        .removeClass('new').end()
675
676        .filter(".info.new").button({
677            icons: {
678                primary:  "ui-icon-notice"
679            },
680            text: false
681        }).click(function () {
682            var positionY = $(this).parents("li").offset().top;
683             
684            var name = $(this).parents('li').find("div").find(".name").text();
685            var email = $(this).parents('li').find("div").find(".mail").text()
686                       
687            if( $('.qtip.qtip-blue.qtip-active').val() !== ''){
688                $(this).qtip({
689                    show: {
690                        ready: true,
691                        solo: true,
692                        when: {
693                            event: 'click'
694                        }
695                    },
696                    hide: false,
697                    content: {
698                        text: $('<div></div>').html( DataLayer.render( path + 'templates/activity_information_task.ejs', {
699                            'name' : name
700                        } ) ),
701                        title: {
702                            text:'Informações',
703                            button: '<a class="button close" href="#">close</a>'
704                        }
705                    },
706                style: {
707                    name: 'blue',
708                        tip: {
709                             },
710                        border: {
711                            width: 4,
712                            radius: 8
713                        },
714                        width: {
715                            min: 230,
716                            max:230
717                        }
718                },
719                position: {
720                    corner: {
721                        target: 'rightMiddle',
722                        tooltip: 'leftMiddle'
723                    },
724                    adjust: {
725                        x: 30,
726                        y: 0
727                    }
728                }
729            })
730            .qtip("api").onShow = function(arg0) {
731                $('.qtip-active .button.close').button({
732                    icons: {
733                        primary: "ui-icon-close"
734                    },
735                    text: false
736                })
737                .click(function(){
738                    blkAddAtendee.find('dd.task-activity-list').qtip('destroy');
739                });
740                                       
741                $('.qtip-active .button.cancel').button().click(function(){
742                    blkAddAtendee.find('dd.activity-list [type=checkbox]').attr('checked', false);
743                    blkAddAtendee.find('dd.activity-list').qtip('destroy');
744                });
745
746                $('.qtip .button').button();
747                                       
748            };
749         }             
750     })
751 .addClass('tiny disable ui-button-disabled ui-state-disabled')
752 .removeClass('new').end()
753 .filter(".edit.new").button({
754            icons: {
755            primary: "ui-icon-pencil"
756            },
757            text: false
758        }).click(function () {
759            var task = DataLayer.get('schedulable:task', $(this).parents('li').find('input[name="idtask[]"]').val());
760            taskDetails(task, true, '',true, null, true);           
761        })
762        .addClass('tiny disable ui-button-disabled ui-state-disabled')
763        .removeClass('new').end()
764
765        UI.dialogs.addActivity.find('.task-activity-list li').hover(
766            function () {
767                $(this).addClass("hover-attendee");
768                $(this).find('.button').removeClass('disable ui-button-disabled ui-state-disabled').end()
769                .find('.activity-options').addClass('hover-attendee');
770            },
771            function () {
772                $(this).removeClass("hover-attendee");
773                $(this).find('.button').addClass('disable ui-button-disabled ui-state-disabled').end()
774                .find('.activity-options').removeClass('hover-attendee');
775            }
776        );       
777    }
Note: See TracBrowser for help on using the repository browser.