Ignore:
Timestamp:
08/06/12 14:59:39 (12 years ago)
Author:
douglasz
Message:

Ticket #2966 - Adicionado validacoes para status das tarefas.

Location:
sandbox/2.4.2-expresso1/prototype
Files:
7 added
8 edited

Legend:

Unmodified
Added
Removed
  • sandbox/2.4.2-expresso1/prototype/modules/calendar/css/layout.css

    r6945 r6946  
    342342.attendees-list .me .add-attendee-options-read { max-height: 16px; height:16px;  max-width: 16px; width:16px; display: inline; padding: 0; margin: 0 0 5px 0;} 
    343343 
    344 .attendees-list .me .add-attendee-options-button {position: absolute; top: 171px;} 
     344.attendees-list .me .add-attendee-options-button {top: 4px;} 
    345345.attendees-list .hover-attendee { background-color: #DFEFFC;} 
    346346.task-activity-list .hover-activity { background: #DFEFFC;} 
  • sandbox/2.4.2-expresso1/prototype/modules/calendar/css/style.css

    r6945 r6946  
    4646 
    4747.new-event-win fieldset, .new-task-win fieldset  { border: none;        margin: 0; padding: 0; } 
    48 .new-event-win fieldset.tab-level2, .new-task-win fieldset.tab-level2 { padding: 0px 5px; min-height: 310px; max-height: 310px; overflow: auto;} 
     48.new-event-win fieldset.tab-level2, .new-task-win fieldset.tab-level2 { padding: 0px 5px; min-height: 110px; max-height: 310px; overflow: auto;} 
    4949.new-event-win .overflow_add_calender, .new-task-win .overflow_add_calender { overflow: auto; max-height: 320px; } 
    5050.new-event-win fieldset#calendar_addevent_details7, .new-task-win fieldset#calendar_addevent_details7 { overflow: hidden} 
     
    434434.expresso-calendar-container .search-field input { border:none;} 
    435435 
    436 .ui-tabs .ui-tabs-panel { padding: 0; margin-top: 10px;} 
     436.ui-tabs .ui-tabs-panel { padding: 0; margin-top: 11px;} 
    437437 
    438438.ui-tabs .ui-tabs-nav li .ui-icon-close { 
     
    556556.div-addtask #calendar_addtask_details1 .subitem { margin: 5px; display: block;} 
    557557.div-addtask #calendar_addtask_details1 .subitem .span_done{ margin: 0 30px;} 
     558.div-addtask #calendar_addtask_details1 .subitem .span_done img{position: relative; top:4px; width:16px; height:16px;} 
    558559.div-addtask #calendar_addtask_details1 .calendar_addevent_details_lnk_timezone { margin: 0 0 0 20px;} 
    559560.div-addtask #calendar_addtask_details1 .subitem .done { width: 45px;} 
    560  
     561.div-addtask #calendar_addtask_details1 .ui-spinner-buttons{ top: -14px !important;} 
     562.div-addtask #calendar_addtask_details1 .ui-spinner-buttons .ui-spinner-up{height: 7px !important;} 
     563.div-addtask #calendar_addtask_details1 .ui-spinner-buttons .ui-spinner-down{height: 8px !important;} 
     564 
     565.div-addtask #calendar_addtask_details1 .subitem .span_done.noAction{background-image: url("../img/gray.png"); background-repeat: no-repeat; } 
     566.div-addtask #calendar_addtask_details1 .subitem .span_done.inProcess{background-image: url("../img/yellow.png"); background-repeat: no-repeat;} 
     567.div-addtask #calendar_addtask_details1 .subitem .span_done.finished{background-image: url("../img/green.png"); background-repeat: no-repeat;} 
     568.div-addtask #calendar_addtask_details1 .subitem .span_done.canceled{background-image: url("../img/red.png"); background-repeat: no-repeat;} 
     569.div-addtask #calendar_addtask_details1 .subitem .span_done label{position: relative; left: 28px;} 
     570 
     571.div-addtask fieldset#calendar_addtask_details5.tab-level2{margin: 0} 
    561572 
    562573.div-addtask  #calendar_addtask_details8 .parent {width: 715px; min-height: 208px; float: left;} 
     
    577588.div-addtask  #calendar_addtask_details8 .parent .child-top .organization { width: 70%; float: left; background: #E8F4FD; height: 30px; border-left: 1px solid #CCC; font-weight: bold; color: #2E6E9E; } 
    578589.div-addtask  #calendar_addtask_details8 .parent .child-top .organization span{margin: 8px; float: left; } 
     590 
    579591/*Atividades*/ 
    580592 
  • sandbox/2.4.2-expresso1/prototype/modules/calendar/js/task.helpers.js

    r6876 r6946  
     1function validDateTask(){ 
     2         
     3        var errors = { 
     4                'emptyInitData': 'Por favor, informe uma data inicial', 
     5                'emptyEndData': 'Por favor, informe uma data final', 
     6                'emptyInitHour': 'Por favor, informe uma hora inicial', 
     7                'emptyEndHour': 'Por favor, informe uma hora final', 
     8                 
     9                'invalidInitData' : 'Data inicial inválida', 
     10                'invalidEndData' : 'Data final inválida', 
     11                 
     12                'equalData' : 'Hora inicial igual a final', 
     13                'theirData' : 'Data final menor que a inicial',          
     14                'theirHour' : 'Hora final menor que a inicial', 
     15                 
     16                'dueInitDate' : 'Previsão de término menor que a data inicial',  
     17                'dueEndDate'  : 'Previsão de término menor que a data final', 
     18                'dueTime'         : 'Deve ser definido a hora da Previsão de Término', 
     19                'dueDate'         : 'Deve ser definido a Previsão de Término', 
     20                'invalidDueData' : 'Data de Previsão de Término inválida' 
     21        }; 
     22 
     23    var start_date = $(".new-task-win.active .start-date").val(); 
     24    var end_date   = $(".new-task-win.active .end-date").val(); 
     25    var start_time = $(".new-task-win.active .start-time").val(); 
     26    var end_time   = $(".new-task-win.active .end-time").val(); 
     27        var due_date   = $(".new-task-win.active .date-previsao").val(); 
     28        var due_time   =  $.trim($(".new-task-win.active .time-previsao").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     
     34    if(start_date == "") 
     35                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']; 
     42        else if(due_date != "" && due_time == "") 
     43                return errors['dueTime']; 
     44        else if(due_date == "" && due_time != "") 
     45                return errors['dueDate']; 
     46         
     47    var formatString = User.preferences.dateFormat + " " + User.preferences.hourFormat; 
     48                 
     49    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 ); 
     52 
     53    if(startDate == null || startDate.getTime() < 0 ) 
     54                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']; 
     85 
     86    return false; 
     87} 
     88function taskStatus(status){ 
     89        if (status == "1"){ 
     90                UI.dialogs.addTask.find('.subitem .span_done').removeClass('finished noAction inProcess canceled').addClass('noAction'); 
     91        }else if (status == "2"){ 
     92                UI.dialogs.addTask.find('.subitem .span_done').removeClass('finished noAction inProcess canceled').addClass('inProcess'); 
     93        }else if (status == "3"){ 
     94                UI.dialogs.addTask.find('.subitem .span_done').removeClass('finished noAction inProcess canceled').addClass('finished'); 
     95        }else if (status == "4"){ 
     96                UI.dialogs.addTask.find('.subitem .span_done').removeClass('finished noAction inProcess canceled').addClass('canceled'); 
     97        } 
     98} 
     99 
    1100function taskDetails(objTask, decoded, path, isMail, repeat) { 
    2101 
     
    260359    /*Seleciona a agenda padrão para visualização edição de um task*/ 
    261360    if (objTask.id) UI.dialogs.addTask.find('option[value="' + objTask.group + '"]').attr('selected', 'selected').trigger('change'); 
     361         
     362        UI.dialogs.addTask.find(':input').change(function(event){ 
     363    if (event.keyCode != '27' && event.keyCode != '13') 
     364        canDiscardTaskDialog = false; 
     365        }).keydown(function(event){ 
     366                if (event.keyCode != '27' && event.keyCode != '13') 
     367                canDiscardTaskDialog = false; 
     368        }); 
    262369 
    263370    /* Checkbox allday */ 
     
    266373        updateMap(true); 
    267374    }); 
    268  
     375         
     376        if (objTask.taskStatus == "1" || objTask.taskStatus == undefined){ 
     377                taskStatus(1); 
     378        }else if (objTask.taskStatus == "2"){ 
     379                taskStatus(2); 
     380        }else if (objTask.taskStatus == "3"){ 
     381                taskStatus(3); 
     382        }else if (objTask.taskStatus == "4"){ 
     383                taskStatus(4); 
     384        } 
     385         
     386        //Concluão das Tarefas 
     387        var conclusionTask = function(e){ 
     388                var percentageTask = UI.dialogs.addTask.find('input[name="percentage"]'); 
     389                if( percentageTask.val() == "") 
     390                        percentageTask.val(0); 
     391                percentageTask.blur().focus(); 
     392                 
     393                var percentageValue = parseInt(percentageTask.val()); 
     394                var statusTask = UI.dialogs.addTask.find('select[name=taskStatus]'); 
     395                 
     396                if(percentageValue <= 0){ 
     397                        statusTask.find('option.taskStatus-noAction').attr('selected', 'selected'); 
     398                        taskStatus(1);           
     399                }else if(percentageValue == 100){ 
     400                        statusTask.find('option.taskStatus-finished').attr('selected', 'selected'); 
     401                        taskStatus(3); 
     402                }else{ 
     403                        statusTask.find('option.taskStatus-inProcess').attr('selected', 'selected'); 
     404                        taskStatus(2); 
     405                }                
     406                setTimeout(function(){ 
     407                        percentageTask[0].selectionStart = percentageTask.val().length; 
     408                        percentageTask[0].selectionEnd = percentageTask.val().length; 
     409                }, 10) 
     410        } 
     411        UI.dialogs.addTask.find('input[name="percentage"]').spinner({ min: 0, max: 100 }).keyup(conclusionTask).next().find(".ui-spinner-button").click(conclusionTask);         
     412 
     413        //Status das Tarefas 
     414        UI.dialogs.addTask.find('select[name=taskStatus]').change(function(){ 
     415                var statusSelected = $('select[name=taskStatus] option:selected').val(); 
     416                var percentageTask = UI.dialogs.addTask.find('input[name="percentage"]'); 
     417                if (statusSelected == "1"){ 
     418                        percentageTask.val(0); 
     419                        taskStatus(1); 
     420                }else if(statusSelected == "2"){ 
     421                        percentageTask.val(percentageTask.val() != 0 ? (percentageTask.val() == 100 ? 99: percentageTask.val()) : 1); 
     422                        taskStatus(2); 
     423                }else if(statusSelected == "3"){ 
     424                        percentageTask.val(100); 
     425                        taskStatus(3); 
     426                }else if(statusSelected == "4"){ 
     427                        percentageTask.val(percentageTask.val() != 100 ? percentageTask.val() : 99); 
     428                        taskStatus(4); 
     429                } 
     430        }); 
     431         
    269432    UI.dialogs.addTask.find('.button').button(); 
    270433    UI.dialogs.addTask.find('.button.add').button({ 
     
    331494 
    332495    .children(".save").click(function () { /* Validação */ 
    333         /*if (msg = validDateTask()) { 
     496        UI.dialogs.addTask.find('input[name="summary"]').focus(); 
     497                 
     498                if (msg = validDateTask()) { 
    334499            $(".new-task-win.active").find('.messages-validation').removeClass('hidden').find('.message label').html(msg); 
    335500            return false; 
    336         }*/ 
     501        } 
     502                canDiscardTaskDialog = true; 
    337503 
    338504        UI.dialogs.addTask.children().find('form.form-addtask').submit(); 
     
    441607                        isExternal: old_item.find('.isExternal').html(), 
    442608                        notEvent: true, 
    443                         isDirty: !! !objTask.id 
     609                        isDirty: !! !objTask.id, 
     610                                                isDelegate: !!(objTask.me.id != objTask.organizer.id) 
    444611                    }])).scrollTo('max'); 
    445612                    /** 
  • sandbox/2.4.2-expresso1/prototype/modules/calendar/templates/attendees_task.ejs

    r6876 r6946  
    1515                <%}%> 
    1616            </select> 
    17  
    18             <fieldset class="add-attendee-options-read"> 
    19                 <a href="#" class="button participant-delegate add-attendee-options-button">Delegar participação a um novo participante</a> 
    20             </fieldset> 
    21  
     17                                <% if (data.task.id && (data.task.me.id != data.task.organizer.id) && !data.task.delegatedFrom[data.task.me.id]) { %> 
     18                                        <fieldset class="add-attendee-options-read"> 
     19                                                <a href="#" class="button participant-delegate add-attendee-options-button">Delegar participação a um novo participante</a> 
     20                                        </fieldset> 
     21                                <%}%> 
    2222            <p class="input-group request-update <%=data.task.delegatedFrom[data.task.me.id] ? '' : "hidden"%>"> 
    2323                <input type="checkbox" name="receiveNotification" value="true" <%=data.task.me.receiveNotification =='1' ? 'checked="checked"' : ''%>/> 
  • sandbox/2.4.2-expresso1/prototype/modules/calendar/templates/index.ejs

    r6945 r6946  
    2727<link rel="Stylesheet" type="text/css" href="<?= PLUGINSURL ?>/timepicker/jquery-ui-timepicker-addon.css" /> 
    2828<link rel="stylesheet" type="text/css" href='<?= PLUGINSURL ?>/zebradialog/css/zebra_dialog.css'></link> 
     29<link rel="stylesheet" type="text/css" href='<?= PLUGINSURL ?>/jquery.spinner/jquery.spinner.css'></link> 
    2930 
    3031<link rel="stylesheet" type="text/css" href="<?= MODULESURL ?>/css/layout.css" /> 
     
    7172<script type="text/javascript" src="<?= PLUGINSURL ?>/qtip/jquery.qtip-1.0.0-rc3.min.js"></script> 
    7273<script type="text/javascript" src="<?= PLUGINSURL ?>/contextmenu/jquery.contextMenu.js"></script> 
     74<script type='text/javascript' src='<?= PLUGINSURL ?>/jquery.spinner/jquery.spinner.min.js'></script> 
    7375 
    7476<!-- JPicker --> 
     
    102104<script type="text/javascript" src="<?= MODULESURL ?>/js/drag_area.js"></script> 
    103105<script type="text/javascript" src="<?= MODULESURL ?>/js/desktop.notification.js"></script> 
    104  
    105106 
    106107</head> 
  • sandbox/2.4.2-expresso1/prototype/modules/calendar/templates/participants_add_itemlist.ejs

    r6876 r6946  
    22        <div style="overflow:hidden; width:100%; display:table;"> 
    33                <div class="attendee-options"> 
    4                         <%if( (!data[0].isDirty && data[0].notEvent) || (!data[0].isDirty && data[0].acl && (data[0].acl.organization || data[0].acl.write || data[0].acl.inviteGuests))){%> 
     4                        <%if( !data[0].isDelegate && (!data[0].isDirty && data[0].notEvent) || (!data[0].isDirty && data[0].acl && (data[0].acl.organization || data[0].acl.write || data[0].acl.inviteGuests))){%> 
    55                                <a href="#" class="button delegate attendee-options-button-delegate new">Delegar participação a este participante</a> 
    66                        <%}%> 
  • sandbox/2.4.2-expresso1/prototype/modules/calendar/templates/task_add.ejs

    r6945 r6946  
    5454                </p> 
    5555                <div class="subitem"> 
    56                                 % Conclusão: <input type="number" name="percentage" class="done" value="<%= data.task.percentage %>">  
     56                                % Conclusão: <input type="text" name="percentage" class="done" value="<%= data.task.percentage %>"></input>  
    5757                                <span style="margin:0 0 0 5px;">Status:<span>  
    5858                <select name="taskStatus" style="margin: 0 0 0 5px;"> 
    59                     <option <%= (data.task.taskStatus == '1') ? 'selected="selected"' : '' %> value="1">Sem ações</option> 
    60                     <option <%= (data.task.taskStatus == '2') ? 'selected="selected"' : '' %> value="2">Em Processo</option> 
    61                     <option <%= (data.task.taskStatus == '3') ? 'selected="selected"' : '' %> value="3">Finalizada</option> 
    62                                         <option <%= (data.task.taskStatus == '4') ? 'selected="selected"' : '' %> value="4">Cancelada</option> 
    63                                 </select> 
    64                                 <span style="margin:0 0 0 5px;">Prioridade<span>  
     59                    <option class="taskStatus-noAction"<%= (data.task.taskStatus == '1') ? 'selected="selected"' : '' %> value="1">Sem ações</option> 
     60                    <option class="taskStatus-inProcess"<%= (data.task.taskStatus == '2') ? 'selected="selected"' : '' %> value="2">Em Processo</option> 
     61                    <option class="taskStatus-finished"<%= (data.task.taskStatus == '3') ? 'selected="selected"' : '' %> value="3">Finalizada</option> 
     62                                        <option class="taskStatus-canceled"<%= (data.task.taskStatus == '4') ? 'selected="selected"' : '' %> value="4">Cancelada</option> 
     63                                </select> 
     64                                <span style="margin:0 0 0 5px;">Prioridade:<span>  
    6565                                <select name="priority"> 
    6666                                        <option <%= (data.task.priority == '1') ? 'selected="selected"' : '' %> value="1">Alta</option> 
     
    6868                                        <option <%= (data.task.priority == '3') ? 'selected="selected"' : '' %> value="3">Baixa</option> 
    6969                                </select> 
    70                 <span class="span_done"><img src="../prototype/modules/calendar/img/empty-status.png"/> Completo<span> 
     70                <span class="span_done"><label>Completo</label></span> 
    7171                </div> 
    7272        </fieldset> 
  • sandbox/2.4.2-expresso1/prototype/modules/calendar/templates/task_quick_add.ejs

    r6876 r6946  
    55 
    66        <fieldset class="menu-container footer-container menu-addevent"> 
    7                 <a class="button advanced" href="#">Avancado</a> 
     7                <a class="button advanced" href="#">Avançado</a> 
    88                <a class="button cancel" href="#">Cancelar</a> 
    99            <a class="button save" href="#">Salvar</a> 
Note: See TracChangeset for help on using the changeset viewer.