Ignore:
Timestamp:
07/17/12 16:07:52 (12 years ago)
Author:
acoutinho
Message:

Ticket #2966 - primeiras implementacoes de tarefas aninhamento de equipo

Location:
sandbox/2.4.2-expresso1/prototype/modules/calendar
Files:
3 added
9 edited

Legend:

Unmodified
Added
Removed
  • sandbox/2.4.2-expresso1/prototype/modules/calendar/constants.php

    r6295 r6797  
    22 
    33define('EVENT_ID', 1); 
     4define('TASK_ID', 2); 
     5 
     6define('SIGNATURE_TYPE_NORMAL', 0); 
     7define('SIGNATURE_TYPE_DEFAULT', 1); 
     8 
     9define('CALENDAR_TYPE_EVENT', 0); 
     10define('CALENDAR_TYPE_TASK_GROUP', 1); 
    411 
    512define('STATUS_CONFIRMED', 1); 
  • sandbox/2.4.2-expresso1/prototype/modules/calendar/css/layout.css

    r6476 r6797  
    404404/* -- calendar list styles -- */ 
    405405 
    406 .my-calendars .button.new { 
     406.my-calendars .button.new, .my-groups-task .button.new{ 
    407407  float:right; 
    408408  width: 15px; 
     
    410410} 
    411411 
    412 .my-calendars .status-list { 
     412.my-calendars .status-list, .my-groups-task  .status-list { 
    413413        display: inline-block; 
    414414        margin: 0px 0pc -4px -5px; 
     
    416416} 
    417417 
    418 .my-calendars .list-calendars-item, .signed-calendars .list-calendars-item{ 
     418.my-calendars .list-calendars-item, .signed-calendars .list-calendars-item, .my-groups-task .list-calendars-item{ 
    419419        position: relative;  
    420420        overflow: hidden; 
    421421} 
    422 .my-calendars .list-calendars-item div, .signed-calendars .list-calendars-item div{ 
     422.my-calendars .list-calendars-item div, .signed-calendars .list-calendars-item div, .my-groups-task .list-calendars-item div{ 
    423423        overflow:hidden;  
    424424        width:6000px;  
     
    426426} 
    427427 
    428 .my-calendars .cal-list-options-btn, .signed-calendars .cal-list-options-btn { 
     428.my-calendars .cal-list-options-btn, .signed-calendars .cal-list-options-btn, .my-groups-task .cal-list-options-btn { 
    429429        position: absolute; 
    430430        top: 2px; 
  • sandbox/2.4.2-expresso1/prototype/modules/calendar/css/style.css

    r6301 r6797  
    223223.block-vertical-toolbox .button.add { 
    224224    width:190px; 
    225 } 
     225    margin-bottom: 5px; 
     226} 
     227 
     228div.qtip div.add-simple-task input{width: 188px} 
     229div.qtip div.add-simple-task textarea{width: 184px} 
     230 
    226231 
    227232.fc-header .fc-state-active, .fc-header .ui-state-active { 
  • sandbox/2.4.2-expresso1/prototype/modules/calendar/interceptors/DBMapping.php

    r6788 r6797  
    1010class DBMapping extends Helpers { 
    1111 
    12     static function encodeCreateSchedulable(&$uri, &$params, &$criteria, $original) { 
    13         $params['type_id'] = EVENT_ID; 
     12    static function encodeCreateSchedulable(&$uri, &$params, &$criteria, $original)  
     13    { 
     14 
     15        if(isset($params['summary']) && $params['summary'] == '') 
     16            $params['summary'] = 'Evento sem título'; 
    1417 
    1518        if (!is_numeric($params['startTime'])) 
     
    3033        $params['dtstamp'] = (isset($params['dtstamp'])) ? $params['dtstamp'] : time() . '000'; 
    3134        $params['lastUpdate'] = (isset($params['lastUpdate'])) ? $params['lastUpdate'] : time() . '000'; 
    32         $params['type'] = EVENT_ID; 
    3335        $params['uid'] = isset($params['uid']) ? $params['uid'] : self::_makeUid(); 
    3436    } 
  • sandbox/2.4.2-expresso1/prototype/modules/calendar/js/calendar.codecs.js

    r6768 r6797  
    728728                id: form.idEvent, 
    729729                location: form.location, 
     730                type: 1, 
    730731                category: form.category, 
    731732                summary: form.summary, 
     
    953954                        attendee = DataLayer.get('participant', evt.participants[i]); 
    954955                        if(attendee.user == User.me.id) 
    955                             return (attendee.acl.indexOf('w') >= 0 || attendee.acl.indexOf('o') >= 0 ) ? { 
     956                                            return (attendee.acl.indexOf('w') >= 0 || attendee.acl.indexOf('o') >= 0 ) ?  
     957                                                { 
    956958                                selectable: true,  
    957959                                className: 'fullcalendar-context-menu  event-id-'+idEvent+' calendar-id-'+calendar.id+ (isRecurrence ? ' isRecurrence Recurrence-id-'+Recurrence : '') 
     
    979981                        return returns; 
    980982                    }                            
    981                     return DataLayer.merge({ 
     983                    return DataLayer.merge( 
     984                        { 
    982985                        editable: aclSignature.acl['write'] && !isRecurrence, 
    983986                        disableResizing : (((aclSignature.acl['busy'] && !aclSignature.acl['write']) || (!aclSignature.acl['write'] && aclSignature.acl['read'])) ? true : false), 
    984987                        disableDragging  : (((aclSignature.acl['busy'] && !aclSignature.acl['write']) || (!aclSignature.acl['write'] && aclSignature.acl['read'])) ? true: false), 
    985988                        className: mountClass(aclSignature.acl) 
    986                     }, aclSignature.acl['busy'] ? { 
    987                         title: 'Ocupado',  
    988                         selectable: false 
    989                     } : { 
    990                         selectable: true 
    991                     }); 
     989                        }, aclSignature.acl['busy'] ?  
     990                        { 
     991                            title: 'Ocupado',  
     992                            selectable: false 
     993                        } : { 
     994                            selectable: true 
     995                        });      
    992996                } 
    993                          
    994997            } 
    995998                 
     
    10081011                   
    10091012            for( var i = 0; i < occurrences.length; i++ ) 
    1010                 grouped[ evt.calendar ].push( DataLayer.merge({ 
     1013                grouped[ evt.calendar ].push( DataLayer.merge( 
     1014                { 
    10111015                    id: evt.URI || evt.id+ '-' + i, 
    10121016                    title: Encoder.htmlDecode(evt.summary), 
     
    10161020                    isRepeat: isRepeat, 
    10171021                    occurrence: i, 
     1022                    type: evt.type, 
    10181023                    calendar: evt.calendar 
    10191024                    }, eventEditable(evt.id, isRepeat, i ) ) ); 
  • sandbox/2.4.2-expresso1/prototype/modules/calendar/js/helpers.js

    r6718 r6797  
    20912091                }); 
    20922092        } 
     2093         
    20932094        doMenu(); 
     2095         
    20942096        $('#divAppbox').on('scroll',function(){ 
    20952097                if ($('.cal-list-options-btn.fg-menu-open.ui-state-active')){                    
     
    20992101                } 
    21002102        }); 
     2103         
    21012104        $('ul.list-calendars .cal-list-options-btn').on('click',function(){doMenu();});          
    21022105         
     
    22042207                         
    22052208            $('.qtip-active').keydown(function(event) { 
    2206                 if (event.keyCode == '27') { 
     2209                                        if (event.keyCode == '27')  
    22072210                    meu_container.find(".button.new").qtip('destroy'); 
    2208                 } 
    22092211            }); 
    22102212                         
  • sandbox/2.4.2-expresso1/prototype/modules/calendar/js/init.js

    r6768 r6797  
    11$(document).ready(function() { 
    2  
    32        //Remove o icone de configuraçõe padrão antigo do expresso 
    43        $('#sideboxdragarea').addClass('hidden'); 
     
    148147                        }, true ); 
    149148                }); 
     149                /* Quick add task 
     150        -----------------------------------------------------------------*/ 
     151                $(".button.add.add-task").click(function(event){ 
     152                        var componente = $(this); 
     153 
     154                        $(componente).qtip({ 
     155                            show: { 
     156                                ready: true,  
     157                                solo: true,  
     158                                when: { 
     159                                        event: 'click' 
     160                                } 
     161                                }, 
     162                                hide: false, 
     163                                content: { 
     164                                        text: $('<div></div>').html( DataLayer.render( 'templates/task_quick_add.ejs', {} ) ), 
     165                                        title: { 
     166                                                text:'Nova tarefa',  
     167                                                button: '<a class="button close" href="#">close</a>' 
     168                                        } 
     169                                }, 
     170                                style: { 
     171                                        name: 'blue',  
     172                                tip: { 
     173                                                corner: 'leftMiddle' 
     174                                        },  
     175                                border: { 
     176                                                width: 4,  
     177                                            radius: 8 
     178                                        },  
     179                                width: { 
     180                                                min: 225,  
     181                                            max:225 
     182                                        } 
     183                                }, 
     184                        position: { 
     185                                corner: { 
     186                                            target: 'rightMiddle', 
     187                                            tooltip: 'leftMiddle' 
     188                                }, 
     189                                adjust: { 
     190                                            x:0,  
     191                                            y:0 
     192                                } 
     193                        } 
     194                    }) 
     195                .qtip("api").onShow = function(arg0) { 
     196 
     197                        /*------------------------------------------------------------------------*/ 
     198                        /*               Seta os valores padrões nos inputs do qtip               */ 
     199                        $('div.qtip div.add-simple-task input.task').Watermark("Tarefa sem título"); 
     200                                $('div.qtip div.add-simple-task textarea').Watermark("Descrição"); 
     201                                /*------------------------------------------------------------------------*/ 
     202 
     203                            $('.qtip-active .button.close').button({ 
     204                                icons: { 
     205                                    primary: "ui-icon-close" 
     206                                }, 
     207                                text: false 
     208                            }) 
     209                            .click(function(){ 
     210                                        $(componente).qtip('destroy'); 
     211                            }); 
     212                                                         
     213                            $('.qtip-active .button.save').button().click(function(){ 
     214                                 
     215                                var title = $('div.qtip div.add-simple-task input.task').val(); 
     216                                        var description = $('div.qtip div.add-simple-task textarea').val(); 
     217 
     218                                        var calendar, timezone = ''; 
     219 
     220                                        for (var i = 0; i < Calendar.signatures.length; i++){ 
     221                                                if(Calendar.signatures[i].type == 1 && Calendar.signatures[i].calendar.type == 1){ 
     222                                                        calendar = Calendar.signatures[i].calendar.id; 
     223                                                        timezone = Calendar.signatures[i].calendar.timezone; 
     224                                                        break; 
     225                                                } 
     226                                        } 
     227 
     228 
     229                                DataLayer.put('schedulable',  
     230                                { 
     231                                        summary: title,  
     232                                        description: description,  
     233                                        type: '2',  
     234                                        calendar: calendar,  
     235                                        timezone: timezone, 
     236                                        startTime: new Date().toString('yyyy-MM-dd 00:00:00'), 
     237                                        endTime: new Date().toString('yyyy-MM-dd 00:00:00'), 
     238                                        allDay: '1' 
     239                                }); 
     240                                //DataLayer.commit(); 
     241 
     242                                $(componente).qtip('destroy'); 
     243                            }); 
     244 
     245                            $('.qtip-active .button.advanced').button().click(function(){ 
     246                                $(componente).qtip('destroy'); 
     247                                alert('Nova Tela de criação tarefas'); 
     248                            }); 
     249                                                                 
     250                                $('.qtip-active .button.cancel').button().click(function(){ 
     251                                        $(componente).qtip('destroy'); 
     252                            });                                  
     253                                                         
     254                            $('.button').button(); 
     255                                                         
     256                        }; 
     257                }); 
    150258 
    151259        var calendar = $('#calendar').fullCalendar(DataLayer.merge({  
     
    190298                        year: 'ano' 
    191299                }, 
     300                 
     301                eventRender: function( event, element, view ){ 
    192302                /* 
    193                 eventRender: function( event, element, view ){ 
    194                         $(element).attr( 'event-id', event.id ); 
    195                 }, 
    196                 */ 
     303                         * TODO - Encontrar icones mais filé 
     304                         */ 
     305            element.find(".fc-event-inner.fc-event-skin").prepend($('<img class="" src="../prototype/modules/calendar/img/' + ( (event.type == 1) ? "event" : "task" ) + '.png"></img>')); 
     306                }, 
     307                 
    197308                select: function( start, end, allDay, event, view ){ 
    198309                        if (view.name == "month") { 
     
    286397                eventClick: function( evt, event, view ){ 
    287398                        evt.id = evt.id.split('-')[0]; 
     399             
     400                        if(evt.type == 1){ 
     401 
    288402                        if(evt.selectable){ 
    289403                            if(evt.isRepeat){ 
     
    309423                                        } 
    310424                                }); 
    311                                  
    312425                            }else{ 
    313426                                var schedulable = DataLayer.get( "schedulable", evt.id); 
    314427                                schedulable.calendar = evt.calendar; 
    315428                                eventDetails( schedulable, true); 
    316                                  
    317429                            } 
    318                                  
    319430                        } 
     431            }else 
     432                                alert('Editar Tarefa'); 
    320433                }, 
    321434                 
  • sandbox/2.4.2-expresso1/prototype/modules/calendar/templates/calendar_list.ejs

    r5927 r6797  
     1<% 
     2    var signatures = {'calendar': [], 'taskGroup': [], 'sharedCalendar': []}; 
     3    for(var i = 0; i < data.signatures.length; i++) 
     4    { 
     5        if(data.signatures[i].calendar.type == 1){ 
     6            signatures['taskGroup'].push(data.signatures[i]); 
     7        }else{ 
     8            signatures[data.signatures[i].isOwner == 1 ? 'calendar' : 'sharedCalendar'].push(data.signatures[i]);     
     9        } 
     10    } 
     11%> 
     12 
    113<div class="all-list-calendars"> 
    2     <% var signature = data.signatures %> 
    3     <% var external = false %> 
     14 
     15    <div class="my-groups-task"> 
     16        <a title='Grupos de tarefas' class="title-my-calendars" aria-expanded='false' role='button' tabindex='0'>Grupos de tarefas</a> 
     17        <span class="status-list ui-icon ui-icon-triangle-1-s"></span> 
     18        <a href="#" class="button new new-calendar">Novo Grupo</a> 
     19        <ul class="list-calendars my-list-calendars"> 
     20            <% for (var i=0; i < signatures['taskGroup'].length; i++) {%> 
     21            <li class="list-calendars-item list-calendars-item-<%= signatures['taskGroup'][i].calendar.id %>" title="<%= signatures['taskGroup'][i].calendar.name %>"> 
     22 
     23                <div> 
     24                    <input class="calendar-view" type="checkbox" name="" value="<%= signatures['taskGroup'][i].calendar.id %>" checked="checked"/> 
     25                    <label><%= signatures['taskGroup'][i].calendar.name %></label> 
     26 
     27                </div>  
     28                <a class="cal-list-options-btn my-cal-list-options-btn-<%= signatures['taskGroup'][i].calendar.id %>" style="background-color:#<%=signatures['taskGroup'][i].backgroundColor%>; border-color:#<%= signatures['taskGroup'][i].borderColor%>;"> 
     29                    <img src="../prototype/modules/calendar/img/arrow_down.png" width="10" height="10" class="cal-list-img"/> 
     30                </a> 
     31 
     32 
     33                <div class="cal-list-options my-cal-list-options-<%= signatures['taskGroup'][i].calendar.id %> hidden"> 
     34                    <ul> 
     35                        <li><a href="#" onclick="add_tab_configure_calendar(<%= signatures['taskGroup'][i].calendar.id%>);">Configurações</a></li> 
     36                        <li><a href="#" onclick="show_modal_import_export(0, <%= signatures['taskGroup'][i].calendar.id%>);">Importar</a></li> 
     37                        <li><a href="#" onclick="show_modal_import_export(1, <%= signatures['taskGroup'][i].calendar.id%>);">Exportar</a></li> 
     38                        <li><a href="#" onclick="show_modal_shared(<%= signatures['taskGroup'][i].calendar.id%>);">Compartilhar agenda</a></li> 
     39                        <li><a href="#" onclick="remove_calendar();">Remover agenda</a></li> 
     40                    </ul> 
     41 
     42                </div> 
     43            </li> 
     44            <%}%> 
     45 
     46        </ul> 
     47    </div> 
     48 
    449    <div class="my-calendars"> 
    550        <a title='Minhas agendas' class="title-my-calendars" aria-expanded='false' role='button' tabindex='0'>Minhas agendas</a> 
     
    752        <a href="#" class="button new new-calendar">Nova Agenda</a> 
    853        <ul class="list-calendars my-list-calendars"> 
    9             <% for (var i=0; i < signature.length; i++) { 
    10             if(signature[i].isOwner == 1){ 
    11             %> 
    12             <li class="list-calendars-item list-calendars-item-<%= signature[i].calendar.id %>" title="<%= signature[i].calendar.name %>"> 
     54            <% for (var i=0; i < signatures.calendar.length; i++) {%> 
     55            <li class="list-calendars-item list-calendars-item-<%= signatures['calendar'][i].calendar.id %>" title="<%= signatures['calendar'][i].calendar.name %>"> 
    1356 
    1457                <div> 
    15                     <input class="calendar-view" type="checkbox" name="" value="<%= signature[i].calendar.id %>" checked="checked"/> 
    16                     <label><%= signature[i].calendar.name %></label> 
     58                    <input class="calendar-view" type="checkbox" name="" value="<%= signatures['calendar'][i].calendar.id %>" checked="checked"/> 
     59                    <label><%= signatures['calendar'][i].calendar.name %></label> 
    1760 
    1861                </div>  
    19                 <a class="cal-list-options-btn my-cal-list-options-btn-<%= signature[i].calendar.id %>" style="background-color:#<%=signature[i].backgroundColor%>; border-color:#<%= signature[i].borderColor%>;"> 
     62                <a class="cal-list-options-btn my-cal-list-options-btn-<%= signatures['calendar'][i].calendar.id %>" style="background-color:#<%=signatures['calendar'][i].backgroundColor%>; border-color:#<%= signatures['calendar'][i].borderColor%>;"> 
    2063                    <img src="../prototype/modules/calendar/img/arrow_down.png" width="10" height="10" class="cal-list-img"/> 
    2164                </a> 
    2265 
    2366 
    24                 <div class="cal-list-options my-cal-list-options-<%= signature[i].calendar.id %> hidden"> 
     67                <div class="cal-list-options my-cal-list-options-<%= signatures['calendar'][i].calendar.id %> hidden"> 
    2568                    <ul> 
    26                         <li><a href="#" onclick="add_tab_configure_calendar(<%= signature[i].calendar.id%>);">Configurações</a></li> 
    27                         <li><a href="#" onclick="show_modal_import_export(0, <%= signature[i].calendar.id%>);">Importar</a></li> 
    28                         <li><a href="#" onclick="show_modal_import_export(1, <%= signature[i].calendar.id%>);">Exportar</a></li> 
    29                         <li><a href="#" onclick="show_modal_shared(<%= signature[i].calendar.id%>);">Compartilhar agenda</a></li> 
     69                        <li><a href="#" onclick="add_tab_configure_calendar(<%= signatures['calendar'][i].calendar.id%>);">Configurações</a></li> 
     70                        <li><a href="#" onclick="show_modal_import_export(0, <%= signatures['calendar'][i].calendar.id%>);">Importar</a></li> 
     71                        <li><a href="#" onclick="show_modal_import_export(1, <%= signatures['calendar'][i].calendar.id%>);">Exportar</a></li> 
     72                        <li><a href="#" onclick="show_modal_shared(<%= signatures['calendar'][i].calendar.id%>);">Compartilhar agenda</a></li> 
    3073                        <li><a href="#" onclick="remove_calendar();">Remover agenda</a></li> 
    3174                    </ul> 
     
    3376                </div> 
    3477            </li> 
    35             <%           
    36             }else 
    37             external = true; 
    38             } 
    39             %> 
     78            <%}%> 
    4079 
    4180        </ul> 
     
    4786        <a href="#" class="button new new-calendar-shared tiny">Nova Agenda</a> 
    4887 
    49         <% if (external) { %>    
    5088        <ul class="list-calendars signed-list-calendars"> 
    51             <% for (var i=0; i < signature.length; i++) { 
    52             if(signature[i].isOwner == 0){ 
    53             %> 
    54             <li class="list-calendars-item list-calendars-item-<%= signature[i].calendar.id %>" title="<%= signature[i].calendar.name %>"> 
     89            <% for (var i=0; i < signatures['sharedCalendar'].length; i++) {%> 
     90                <li class="list-calendars-item list-calendars-item-<%= signatures['sharedCalendar'][i].calendar.id %>" title="<%= signatures['sharedCalendar'][i].calendar.name %>"> 
    5591                 <div> 
    56                     <input class="calendar-view" type="checkbox" name="" value="<%= signature[i].calendar.id %>" checked="checked"/> 
    57                     <label><%= signature[i].calendar.name %></label> 
    58                  </div> 
    59                 <a class="cal-list-options-btn my-cal-list-options-btn-<%= signature[i].calendar.id %>" style="background-color:#<%=signature[i].backgroundColor%>; border-color:#<%= signature[i].borderColor%>;"> 
     92                            <input class="calendar-view" type="checkbox" name="" value="<%= signatures['sharedCalendar'][i].calendar.id %>" checked="checked"/> 
     93                            <label><%= signatures['sharedCalendar'][i].calendar.name %></label> 
     94                         </div> 
     95                <a class="cal-list-options-btn my-cal-list-options-btn-<%= signatures['sharedCalendar'][i].calendar.id %>" style="background-color:#<%=signatures['sharedCalendar'][i].backgroundColor%>; border-color:#<%= signatures['sharedCalendar'][i].borderColor%>;"> 
    6096                    <img src="../prototype/modules/calendar/img/arrow_down.png" width="10" height="10" class="cal-list-img"/></a> 
    61                 <div class="cal-list-options my-cal-list-options-<%= signature[i].calendar.id  %> hidden"> 
     97                <div class="cal-list-options my-cal-list-options-<%= signatures['sharedCalendar'][i].calendar.id  %> hidden"> 
    6298                    <ul> 
    63                         <li><a href="#" onclick="add_tab_configure_calendar(<%= signature[i].calendar.id %>);">Configurações</a></li> 
    64                         <li><a href="#" onclick="show_modal_import_export(0, <%= signature[i].calendar.id %>);">Importar</a></li> 
    65                         <li><a href="#" onclick="show_modal_import_export(1, <%= signature[i].calendar.id %>);">Exportar</a></li> 
    66                         <%if(!signature[i].permission.acl['required']){%> 
    67                             <li><a href="#" onclick="cancel_signature(<%= signature[i].id %>);">Cancelar assinatura</a></li> 
     99                        <li><a href="#" onclick="add_tab_configure_calendar(<%= signatures['sharedCalendar'][i].calendar.id %>);">Configurações</a></li> 
     100                        <li><a href="#" onclick="show_modal_import_export(0, <%= signatures['sharedCalendar'][i].calendar.id %>);">Importar</a></li> 
     101                        <li><a href="#" onclick="show_modal_import_export(1, <%= signatures['sharedCalendar'][i].calendar.id %>);">Exportar</a></li> 
     102                        <%if(!signatures['sharedCalendar'][i].permission.acl['required']){%> 
     103                            <li><a href="#" onclick="cancel_signatures['sharedCalendar'](<%= signatures['sharedCalendar'][i].id %>);">Cancelar assinatura</a></li> 
    68104                        <%}%> 
    69105                    </ul> 
     
    72108 
    73109            </li> 
    74             <%           
    75             } 
    76             } 
    77             %> 
     110            <%}%> 
    78111        </ul> 
    79         <% } %> 
    80112    </div> 
    81113</div> 
  • sandbox/2.4.2-expresso1/prototype/modules/calendar/templates/index.ejs

    r6768 r6797  
    122122                <div class="block-vertical-toolbox"> 
    123123                        <a class="button add add-event" href="#">Adicionar evento</a> 
     124                        <a class="button add add-task" href="#">Adicionar tarefa</a> 
    124125                        <!--<a class="button add" href="#" onclick="add_events_list();">Lista de Eventos</a>--> 
    125126                        <div class="mini-calendar"></div> 
Note: See TracChangeset for help on using the changeset viewer.