Ignore:
Timestamp:
08/20/12 11:15:00 (12 years ago)
Author:
acoutinho
Message:

Ticket #3054 - Inconsistencia ao importar alguma tarefa individual

Location:
trunk/prototype/modules/calendar
Files:
5 edited

Legend:

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

    r7041 r7068  
    703703        "class": form["class"], 
    704704        startTime: Date.parseExact(form.startDate + " "+$.trim(form.startHour) , formatString ).toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00'), 
    705         endTime:  Date.parseExact(form.endDate + " "+$.trim(form.endHour), formatString ).toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00'),  //+ (!!form.allDay ? 86400000 : 0) , 
    706         due: (form.dueDate == '' )? 0 : Date.parseExact(form.dueDate + " "+$.trim(form.dueTime) , formatString ).toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00'), 
    707         allDay: ( !!form.allDay ? 1 : 0 ),       
     705        endTime: (form.dueDate == '' ) ? 
     706            Date.parseExact(form.startDate + " "+$.trim(form.startHour) , formatString ).toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00') : 
     707            Date.parseExact(form.dueDate + " "+$.trim(form.dueTime) , formatString ).toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00'), 
     708        due: (form.dueDate == '' ) ? 0 : Date.parseExact(form.dueDate + " "+$.trim(form.dueTime) , formatString ).toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00'), 
     709        allDay: ( form.dueDate == ''  ? 1 : 0 ), 
    708710        status: form.taskStatus,       
    709711        id: form.idTask, 
     
    10621064        "class": form["class"], 
    10631065        startTime: Date.parseExact(form.startDate + " "+$.trim(form.startHour) , formatString ).toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00'), 
    1064         endTime:  Date.parseExact(form.endDate + " "+$.trim(form.endHour), formatString ).toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00'),  //+ (!!form.allDay ? 86400000 : 0) , 
     1066        endTime:  (form.dueDate == '' )? 0 : Date.parseExact(form.dueDate + " "+$.trim(form.dueHour) , formatString ).toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00'), 
    10651067        due: (form.dueDate == '' )? 0 : Date.parseExact(form.dueDate + " "+$.trim(form.dueHour) , formatString ).toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00'), 
    10661068        allDay: ( !!form.allDay ? 1 : 0 ),       
     
    16471649                 
    16481650            if(!(typeof(evt) == 'object') || (evt.id.indexOf('java') >= 0)) 
    1649                 return (null); 
     1651                        return (null); 
    16501652 
    16511653            evt.calendar = evt.calendar || "1"; 
    16521654 
    16531655            if( !grouped[ evt.calendar ] ) 
    1654                 grouped[ evt.calendar ] = []; 
     1656                        grouped[ evt.calendar ] = []; 
    16551657                         
    16561658            var calendar = DataLayer.get('calendar', evt.calendar); 
    16571659                 
     1660                var taskEditable = function(idTask){ 
     1661                        for(var i = 0; i < evt.participants.length; i++){ 
     1662                                attendee = DataLayer.get('participant', evt.participants[i]); 
     1663                                if(attendee.user == User.me.id) 
     1664                                        return attendee.isOrganizer == '1' ?  
     1665                                        { 
     1666                                                editable: true,  
     1667                                                disableResizing: false,  
     1668                                                disableDragging: false, 
     1669                                                className: 'fullcalendar-context-menu  event-type-2 event-id-'+idTask+' calendar-id-'+calendar.id 
     1670                                        }  
     1671                                        :  
     1672                                        { 
     1673                                                editable: false,  
     1674                                                disableResizing: true,  
     1675                                                disableDragging: true, 
     1676                                                className: 'blocked-event-permision  fullcalendar-not-context-menu event-id-'+idTask 
     1677                                        }; 
     1678                        } 
     1679                } 
     1680                 
    16581681            var eventEditable = function(idEvent, isRecurrence, Recurrence){ 
    1659                 if(Calendar.signatureOf[calendar.id].isOwner == "1"){ 
    1660                     var attendee = {}; 
    1661                     for(var i = 0; i < evt.participants.length; i++){ 
    1662                         attendee = DataLayer.get('participant', evt.participants[i]); 
    1663                         if(attendee.user == User.me.id) 
    1664                                             return (attendee.acl.indexOf('w') >= 0 || attendee.acl.indexOf('o') >= 0 ) ?  
     1682                        if(Calendar.signatureOf[calendar.id].isOwner == "1"){ 
     1683                                var attendee = {}; 
     1684                                for(var i = 0; i < evt.participants.length; i++){ 
     1685                                        attendee = DataLayer.get('participant', evt.participants[i]); 
     1686                                        if(attendee.user == User.me.id) 
     1687                                                return (attendee.acl.indexOf('w') >= 0 || attendee.acl.indexOf('o') >= 0 ) ?  
    16651688                                                { 
    1666                                 selectable: true,  
    1667                                 className: 'fullcalendar-context-menu  event-id-'+idEvent+' calendar-id-'+calendar.id+ (isRecurrence ? ' isRecurrence Recurrence-id-'+Recurrence : '') 
    1668                                 } : { 
    1669                                 editable: false,  
    1670                                 selectable: true , 
    1671                                 className: 'blocked-event-permision  fullcalendar-not-context-menu event-id-'+idEvent 
     1689                                                        selectable: true,  
     1690                                                        className: 'fullcalendar-context-menu  event-type-1 event-id-'+idEvent+' calendar-id-'+calendar.id+ (isRecurrence ? ' isRecurrence Recurrence-id-'+Recurrence : '') 
     1691                                                } : { 
     1692                                                        editable: false,  
     1693                                                        selectable: true , 
     1694                                                        className: 'blocked-event-permision  fullcalendar-not-context-menu event-id-'+idEvent 
     1695                                                }; 
     1696                                } 
     1697                                return { 
     1698                                        editable: false,  
     1699                                        className: 'blocked-event-permision  fullcalendar-not-context-menu event-id-'+idEvent+' calendar-id-'+calendar.id,   
     1700                                        selectable: true,  
     1701                                        disableDragging: isRecurrence 
    16721702                                }; 
    1673                     } 
    1674                     return { 
    1675                         editable: false,  
    1676                         className: 'blocked-event-permision  fullcalendar-not-context-menu event-id-'+idEvent+' calendar-id-'+calendar.id,   
    1677                         selectable: true,  
    1678                         disableDragging: isRecurrence 
    1679                     }; 
    1680                 } 
    1681                 else{ 
    1682                     var aclSignature = Calendar.signatureOf[calendar.id].permission; 
     1703                        } 
     1704                        else{ 
     1705                                var aclSignature = Calendar.signatureOf[calendar.id].permission; 
     1706                                         
     1707                                var mountClass =  function(acl){ 
     1708                                        var returns = "" 
     1709                                        returns += acl['write'] ? "" :  'blocked-event-permision '; 
     1710                                        returns += acl['busy'] ? 'fullcalendar-not-context-menu ' : (acl['read']  ?  'fullcalendar-context-menu '+ (isRecurrence ? ' isRecurrence Recurrence-id-'+Recurrence : '') : ''); 
     1711                                        returns += 'event-id-'+idEvent+' calendar-id-'+calendar.id; 
     1712                                        return returns; 
     1713                                } 
    16831714                                 
    1684                     var mountClass =  function(acl){ 
    1685                         var returns = "" 
    1686                         returns += acl['write'] ? "" :  'blocked-event-permision '; 
    1687                         returns += acl['busy'] ? 'fullcalendar-not-context-menu ' : (acl['read']  ?  'fullcalendar-context-menu '+ (isRecurrence ? ' isRecurrence Recurrence-id-'+Recurrence : '') : ''); 
    1688                         returns += 'event-id-'+idEvent+' calendar-id-'+calendar.id; 
    1689                         return returns; 
    1690                     }                            
    1691                     return DataLayer.merge( 
    1692                         { 
    1693                         editable: aclSignature.acl['write'] && !isRecurrence, 
    1694                         disableResizing : (((aclSignature.acl['busy'] && !aclSignature.acl['write']) || (!aclSignature.acl['write'] && aclSignature.acl['read'])) ? true : false), 
    1695                         disableDragging  : (((aclSignature.acl['busy'] && !aclSignature.acl['write']) || (!aclSignature.acl['write'] && aclSignature.acl['read'])) ? true: false), 
    1696                         className: mountClass(aclSignature.acl) 
    1697                         }, aclSignature.acl['busy'] ?  
    1698                         { 
    1699                             title: 'Ocupado',  
    1700                             selectable: false 
    1701                         } : { 
    1702                             selectable: true 
    1703                         });      
    1704                 } 
     1715                                return DataLayer.merge({ 
     1716                                        editable: aclSignature.acl['write'] && !isRecurrence, 
     1717                                        disableResizing : (((aclSignature.acl['busy'] && !aclSignature.acl['write']) || (!aclSignature.acl['write'] && aclSignature.acl['read'])) ? true : false), 
     1718                                        disableDragging  : (((aclSignature.acl['busy'] && !aclSignature.acl['write']) || (!aclSignature.acl['write'] && aclSignature.acl['read'])) ? true: false), 
     1719                                        className: mountClass(aclSignature.acl) 
     1720                                        }, aclSignature.acl['busy'] ?  
     1721                                        { 
     1722                                                title: 'Ocupado',  
     1723                                                selectable: false 
     1724                                        } : { 
     1725                                                selectable: true 
     1726                                        } 
     1727                                );       
     1728                        } 
    17051729            } 
     1730 
     1731                var duration = parseInt( evt.endTime ) - parseInt( evt.startTime ), isRepeat = false; 
     1732 
     1733                var occurrences = []; 
    17061734                 
    1707             var duration = parseInt( evt.endTime ) - parseInt( evt.startTime ), isRepeat = false; 
    1708                  
    1709             var occurrences = []; 
    1710                  
    1711             if( evt.occurrences ) 
    1712             { 
    1713                 isRepeat = true; 
    1714                 occurrences = evt.occurrences; 
     1735                if( evt.occurrences ) 
     1736                { 
     1737                        isRepeat = true; 
     1738                        occurrences = evt.occurrences; 
    17151739            }else 
    1716                 occurrences[ occurrences.length ] = evt.startTime; 
     1740                        occurrences[ occurrences.length ] = evt.startTime; 
    17171741 
    17181742            //occurrences = DataLayer.unique( occurrences ).sort(); 
    17191743                var typeEvent;   
    1720             for( var i = 0; i < occurrences.length; i++ ){ 
    1721  
     1744            for( var i = 0; i < occurrences.length; i++ ) 
     1745                { 
    17221746            typeEvent = (evt.type == 2 && evt.taskToActivity ? 3 : evt.type) 
    17231747                grouped[ evt.calendar ].push( DataLayer.merge( 
    17241748                { 
    1725                     id: evt.URI || evt.id+ '-' + i, 
    1726                     title: Encoder.htmlDecode(evt.summary), 
    1727                     start: Timezone.getDateCalendar(new Date( parseInt( occurrences[i] ) ), calendar.timezone,  !!evt.DayLigth ? evt.DayLigth.calendar.startTime : Timezone.daylightSaving), 
    1728                     end:   Timezone.getDateCalendar(new Date( parseInt( occurrences[i] ) + duration - (!!parseInt(evt.allDay) ? 86400000 : 0)), calendar.timezone, !!evt.DayLigth ? evt.DayLigth.calendar.startTime : Timezone.daylightSaving), 
    1729                     allDay: parseInt( evt.allDay ), 
    1730                     isRepeat: isRepeat, 
    1731                     occurrence: i, 
    1732                     type: typeEvent, 
    1733                     calendar: evt.calendar 
    1734                     }, (parseInt(typeEvent) == 1 ? eventEditable(evt.id, isRepeat, i ) : (parseInt(typeEvent) == 2 ? {editable: true, disableResizing: false, disableDragging: false} : {editable: false, disableResizing: true, disableDragging: true}) )) ); 
     1749                                id: evt.URI || evt.id+ '-' + i, 
     1750                                title: Encoder.htmlDecode(evt.summary), 
     1751                                start: Timezone.getDateCalendar(new Date( parseInt( occurrences[i] ) ), calendar.timezone,  !!evt.DayLigth ? evt.DayLigth.calendar.startTime : Timezone.daylightSaving), 
     1752                                end:   Timezone.getDateCalendar(new Date( parseInt( occurrences[i] ) + duration - (!!parseInt(evt.allDay) ? 86400000 : 0)), calendar.timezone, !!evt.DayLigth ? evt.DayLigth.calendar.startTime : Timezone.daylightSaving), 
     1753                                allDay: parseInt( evt.allDay ), 
     1754                                isRepeat: isRepeat, 
     1755                                occurrence: i, 
     1756                                type: typeEvent, 
     1757                                calendar: evt.calendar 
     1758                                }, (parseInt(typeEvent) == 1 ? eventEditable(evt.id, isRepeat, i ) : (parseInt(typeEvent) == 2 ? taskEditable(evt.id) : {editable: false, disableResizing: true, disableDragging: true})))); 
    17351759        } 
    17361760        }); 
  • trunk/prototype/modules/calendar/js/calendar.contentMenu.js

    r6533 r7068  
    88                 
    99                var classes = $(this).attr('class').split(" "); 
    10                 var idEvent = false, idRecurrence = false, idCalendar = false; 
     10                var idEvent = false, typeEvent = false,idRecurrence = false, idCalendar = false; 
    1111                 
    1212                //recupera o id do calendar eo id do evento para tratamento 
    1313                for(var i = 0; i < classes.length; i++){ 
    14                     if (classes[i].indexOf("event-id-") >= 0 ){ 
    15                         idEvent = classes[i].replace(/[a-zA-Z-]+/g, ''); 
    16                         continue; 
    17                     }else if (classes[i].indexOf("Recurrence-id-") >= 0 ){ 
    18                         idRecurrence = classes[i].replace(/[a-zA-Z-]+/g, ''); 
    19                         continue; 
    20                     }else if (classes[i].indexOf("calendar-id-") >= 0 ){ 
    21                         idCalendar = classes[i].replace(/[a-zA-Z-]+/g, ''); 
    22                         continue; 
    23                     } 
    24                 } 
     14                        if (classes[i].indexOf("event-id-") >= 0 ){ 
     15                                idEvent = classes[i].replace(/[a-zA-Z-]+/g, ''); 
     16                                continue; 
     17                        }else if (classes[i].indexOf("Recurrence-id-") >= 0 ){ 
     18                                idRecurrence = classes[i].replace(/[a-zA-Z-]+/g, ''); 
     19                                continue; 
     20                        }else if (classes[i].indexOf("calendar-id-") >= 0 ){ 
     21                                idCalendar = classes[i].replace(/[a-zA-Z-]+/g, ''); 
     22                                continue; 
     23                        }else if (classes[i].indexOf("event-type-") >= 0 ){ 
     24                                typeEvent = classes[i].replace(/[a-zA-Z-]+/g, ''); 
     25                                continue; 
     26                        } 
     27                } 
    2528 
    26                 var schedulable = DataLayer.get('schedulable', idEvent); 
    27  
     29                var schedulable = DataLayer.get('schedulable', idEvent); 
    2830                var isRecurrence = DataLayer.get('repeat', schedulable.repeat).frequency || false; 
    2931 
    3032                var top = $('#divAppbox').scrollTop(); 
    3133 
    32                 var template = DataLayer.render( 'templates/menu_context_event.ejs', {event: schedulable.id , 
    33                     top: (event.clientY - 135 + top), left: (event.clientX - 445),  
     34                var template = DataLayer.render( 'templates/menu_context_event.ejs',  
     35                { 
     36                        event: schedulable.id , 
     37                        top: (event.clientY - 135 + top),  
     38                        left: (event.clientX - 445),  
    3439                    signature: Calendar.signatureOf[idCalendar], 
    35                     calendars: Calendar.calendars, isRecurrence: (!isRecurrence || isRecurrence == 'none') ? false : true, 
    36                     idRecurrence: idRecurrence 
    37                 }); 
     40                        calendars: Calendar[parseInt(typeEvent) == 1 ? 'calendars' : 'groups'],  
     41                        isRecurrence: (!isRecurrence || isRecurrence == 'none') ? false : true, 
     42                        idRecurrence: idRecurrence, 
     43                        typeEvent: typeEvent 
     44                }); 
    3845 
    3946                $('#context-menu-event').html(template); 
    4047 
    41                 var method = function(value){ 
    42                     switch (value){ 
    43                         case "ocurrency": 
    44                             return '2' 
    45                         case "copy": 
    46                             return '1'; 
    47                         case "move":  
    48                             return '0'; 
    49                     } 
    50                 } 
    51                  
     48                var method = function(value){ 
     49                        switch (value){ 
     50                                case "ocurrency": 
     51                                        return '2' 
     52                                case "copy": 
     53                                        return '1'; 
     54                                case "move":  
     55                                        return '0'; 
     56                        } 
     57                } 
     58 
    5259                $('#context-menu-event').find('li.menu-item').hover( 
    5360                        function () { 
  • trunk/prototype/modules/calendar/js/task.helpers.js

    r7065 r7068  
    33        var errors = { 
    44                'emptyInitData': 'Por favor, informe uma data inicial', 
    5                 'emptyEndData': 'Por favor, informe uma data final', 
    65                'emptyInitHour': 'Por favor, informe uma hora inicial', 
    7                 'emptyEndHour': 'Por favor, informe uma hora final', 
    86                 
    97                'invalidInitData' : 'Data inicial inválida', 
    10                 'invalidEndData' : 'Data final inválida', 
    11                  
     8 
    129                'equalData' : 'Hora inicial igual a final', 
    1310                'theirData' : 'Data final menor que a inicial',          
     
    2219 
    2320    var start_date = $(".new-task-win.active .start-date").val(); 
    24     var end_date   = $(".new-task-win.active .end-date").val(); 
    2521    var start_time = $(".new-task-win.active .start-time").val(); 
    26     var end_time   = $(".new-task-win.active .end-time").val(); 
    2722        var due_date   = $(".new-task-win.active .date-prevision").val(); 
    2823        var due_time   =  $.trim($(".new-task-win.active .time-prevision").val()); 
    29     var isAllDay   = $('.new-task-win.active input[name="allDay"]').is(':checked'); 
    30     var customDate = $(".endRepeat").val() == "customDate"; 
    31     var occurrences = $(".endRepeat").val() == "occurrences"; 
    32     var taskInterval = $('.taskInterval').val(); 
    33      
     24 
    3425    if(start_date == "") 
    3526                return errors['emptyInitData']; 
    36     else if(end_date == "") 
    37                 return errors['emptyEndData']; 
    38     else if(!isAllDay && start_time == "") 
    39                 return errors['emptyInitHour']; 
    40     else if(!isAllDay && end_time == "") 
    41                 return errors['emptyEndHour']; 
    4227        else if(due_date != "" && due_time == "") 
    4328                return errors['dueTime']; 
    4429        else if(due_date == "" && due_time != "") 
    4530                return errors['dueDate']; 
    46          
     31 
    4732    var formatString = User.preferences.dateFormat + " " + User.preferences.hourFormat; 
    48                  
    4933    var startDate = Date.parseExact( start_date + " " + $.trim(start_time) , formatString ); 
    50     var endDate = Date.parseExact( end_date + " " + $.trim(end_time) , formatString ); 
    51         var dueDate = Date.parseExact( due_date + " " + $.trim(due_time) , formatString ); 
    5234 
    5335    if(startDate == null || startDate.getTime() < 0 ) 
    5436                return errors['invalidInitData']; 
    55     if(endDate == null || endDate.getTime() < 0) 
    56                 return errors['invalidEndData']; 
    57         if(dueDate == null &&  due_time != "") 
    58                 return errors['invalidDueData']; 
    59                  
    60         if(isAllDay){ 
    61                 startDate.clearTime(); 
    62                 endDate.clearTime(); 
    63                 if(endDate.compareTo(startDate) == -1) 
    64                         return errors['theirData']; 
    65         }else{ 
    66                 var condition = endDate.compareTo(startDate); 
    67                 if(condition != 1){ 
    68                         if(condition < 0){ 
    69                                 startDate.clearTime(); 
    70                                 endDate.clearTime(); 
    71                                 condition = endDate.compareTo(startDate);                                
    72                                 return (errors[ condition == 0 ? 'theirHour' : 'theirData'] ); 
    73                         } 
    74                         else 
    75                                 return errors['equalData']; 
    76                 } 
    77                  
    78                 if (dueDate != null && dueDate.compareTo(startDate) == -1) 
    79                         return errors['dueInitDate'];            
    80         } 
    81      
    82     if (customDate)     
    83                 if ( !($('.new-task-win.active .customDateEnd').val().length) ) 
    84                    return errors['emptyEndData']; 
     37 
     38    if(due_date != '' && due_time != '') 
     39    { 
     40        var dueDate = Date.parseExact( due_date + " " + $.trim(due_time) , formatString ); 
     41 
     42        if(dueDate.compareTo(startDate) == -1) 
     43            return errors['dueInitDate']; 
     44    } 
    8545 
    8646    return false; 
  • trunk/prototype/modules/calendar/templates/activity_add.ejs

    r7011 r7068  
    1515            </p> 
    1616            <p class="input-group date-info"> 
     17                <span>Inicio</span> 
    1718                <input type="text" class="start-date" readonly="readonly" value="<%= (data.activity.startDate) ? data.activity.startDate : '' %>" name="startDate" /> 
    1819                <input type="text" class="time start-time<%= (data.activity.allDay) ? ' hidden' : '' %>" readonly="readonly" value="<%= (data.activity.startHour) ? data.activity.startHour : '' %>" name="startHour" />  
    19                 <span>até</span> 
    20                 <input type="text" class="end-date" readonly="readonly" value="<%= (data.activity.endDate) ? data.activity.endDate : '' %>" name="endDate" /> 
    21                 <input type="text" class="time end-time<%= (data.activity.allDay) ? ' hidden' : '' %>" readonly="readonly" value="<%= (data.activity.endHour) ? data.activity.endHour : '' %>" name="endHour" /> 
    22  
    23                 <span class="previsao-termino">Previsão término:</span> 
     20                <span>com previsão de término</span> 
    2421                <input type="text" class="date-due" name="dueDate" readonly="readonly"> 
    25                 <input type="text" class="time time-due" name="dueHour" readonly="readonly"> 
     22                <input type="text" class="time time-due <%= (data.activity.allDay) ? ' hidden' : '' %>" name="dueHour" readonly="readonly"> 
    2623 
    2724                <a href="#" class="group_addactivity_details_lnk_timezone">Fuso horário</a> 
  • trunk/prototype/modules/calendar/templates/task_add.ejs

    r7006 r7068  
    1414                </p> 
    1515                <p class="input-group date-info"> 
     16            <span>Inicio</span> 
    1617                        <input type="text" class="date start-date" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%> value="<%= (data.task.startDate) ? data.task.startDate : '' %>" name="startDate" /> 
    17                         <input type="text" class="time start-time<%= (data.task.allDay) ? ' hidden' : '' %>" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%> value="<%= (data.task.startHour) ? data.task.startHour : '' %>" name="startHour" />  
    18                         <span>até</span> 
    19                         <input type="text" class="date end-date" value="<%= (data.task.endDate) ? data.task.endDate : '' %>" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%> name="endDate" /> 
    20                         <input type="text" class="time end-time<%= (data.task.allDay) ? ' hidden' : '' %>" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%> value="<%= (data.task.endHour) ? data.task.endHour : '' %>" name="endHour" /> 
    21  
    22                                 <span class="prevision-termino">Previsão término:</span> 
    23                                 <input type="text" name="dueDate" class="date date-prevision" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%> value="<%= data.task.dueDate %>"> 
    24                                 <input type="text" name="dueTime" class="time time-prevision" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%> value="<%= data.task.dueTime %>"> 
    25  
    26                                 <a href="#" class="calendar_addtask_details_lnk_timezone" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%>>Fuso horário</a> 
     18                        <input type="text" class="time start-time" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%> value="<%= (data.task.startHour) ? data.task.startHour : '' %>" name="startHour" /> 
     19                        <span>com previsão de término</span> 
     20            <input type="text" name="dueDate" class="date date-prevision" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%> value="<%= data.task.dueDate %>"> 
     21            <input type="text" name="dueTime" class="time time-prevision" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%> value="<%= data.task.dueTime %>"> 
     22 
     23            <a href="#" class="calendar_addtask_details_lnk_timezone" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%>>Fuso horário</a> 
    2724                         
    2825                         
    29 <!--                    <input type="text" name="timezone" style="display: none;" />--> 
     26<!--            <input type="text" name="timezone" style="display: none;" />--> 
    3027                        <select name="timezone" class="hidden calendar-addtask-details-txt-timezone" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%>> 
    3128                                <option value="">- None selected -</option> 
     
    4845                        </div> 
    4946                </div> 
    50                  
    51                 <p class="input-group task-type"> 
    52                         <input type="checkbox" name="allDay" value="true" <%= (data.task.allDay) ? 'checked="checked"' : '' %> <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%>/> 
    53                         <label for="allDay">Dia inteiro</label> 
    54 <!-- 
    55                         <input type="checkbox" class="button-repeat" /> 
    56                         <label for="calendar_addtask_details_chk_repeat">Repetir</label>--> 
    57                 </p> 
     47 
    5848                <div class="subitem"> 
    5949                                % Conclusão: <input type="text" name="percentage" class="done" value="<%= data.task.percentage %>"> 
Note: See TracChangeset for help on using the changeset viewer.