Ignore:
Timestamp:
03/08/13 16:32:58 (11 years ago)
Author:
douglas
Message:

Ticket #3378 - Importação automatica de eventos nos participantes

Location:
branches/2.5/prototype
Files:
1 added
9 edited

Legend:

Unmodified
Added
Removed
  • branches/2.5/prototype/config/participant.ini

    r7377 r7982  
    2121[after.create] 
    2222createParticipantHistoric = modules/calendar/interceptors/DBMapping.php 
     23autoImportCalendar = modules/calendar/interceptors/DBMapping.php 
    2324 
    2425[before.create] 
  • branches/2.5/prototype/modules/calendar/interceptors/DBMapping.php

    r7978 r7982  
    169169    public function schedulableSecurity(&$uri, &$params, &$criteria, $original)  
    170170    { 
     171  
    171172        if( !isset($criteria['filter'][1]) || !$criteria['filter'][1] == 'uid')  
    172173        {  
     
    763764            } 
    764765        } 
     766    }  
     767  
     768    static function autoImportCalendar(&$uri, &$params, &$criteria, $original){  
     769        $autoCommit = Controller::service('PostgreSQL')->execResultSql('Select config_value FROM phpgw_config WHERE config_app = \'expressoCalendar\' AND config_name = \'expressoCalendar_autoImportCalendars\'');  
     770  
     771  
     772        if(isset($autoCommit[0]) && $autoCommit[0]['config_value'] == 'true')  
     773        {  
     774            if(isset($original['properties']) && isset($original['properties']['user'])  && isset($original['properties']['isOrganizer']) &&  $original['properties']['isOrganizer'] != '1')  
     775            {  
     776                $defaultCalendar = Controller::find(array('concept' => 'modulePreference'), array('value') , array('filter' => array( 'and' , array('=' , 'name' , 'dafaultImportCalendar') , array('=' , 'module' , 'expressoCalendar') , array('=' , 'user' , $original['properties']['user'])  )) );  
     777                if(isset($defaultCalendar[0]) && $defaultCalendar[0]['value'] > 0)  
     778                {  
     779                    Controller::create(array('concept' => 'calendarToSchedulable'),  
     780                        array('schedulable' => $original['properties']['schedulable'],  
     781                            'calendar' => $defaultCalendar[0]['value']  
     782                        )  
     783                    );  
     784                }  
     785            }  
     786        }  
    765787    } 
    766788 
     
    13781400 
    13791401    public function deleteCalendarSignatureDependences(&$uri, &$params, &$criteria, $original) { 
    1380         $signature = Controller::read($uri, array('isOwner', 'calendar')); 
     1402        $signature = Controller::read($uri, array('isOwner', 'calendar','user')); 
    13811403 
    13821404        if ($signature['isOwner'] == '1') { 
     
    13921414 
    13931415            Controller::delete(array('concept' => 'calendar', 'id' => $signature['calendar'])); 
    1394                  
    1395                 $permissions = Controller::find(array('concept' => 'calendarToPermission'), array('id'), array('filter' => array('=', 'calendar', $signature['calendar']))); 
    1396  
    1397                  
    1398                  
     1416  
     1417        $autoCommit = Controller::service('PostgreSQL')->execResultSql('Select config_value FROM phpgw_config WHERE config_app = \'expressoCalendar\' AND config_name = \'expressoCalendar_autoImportCalendars\'');  
     1418  
     1419        if(isset($autoCommit[0]) && $autoCommit[0]['config_value'] == 'true')  
     1420        {  
     1421            $defaultCalendar = Controller::find(array('concept' => 'modulePreference'), array('value','id') , array('filter' => array( 'and' , array('=' , 'name' , 'dafaultImportCalendar') , array('=' , 'module' , 'expressoCalendar') , array('=' , 'user' , $signature['user'])  )) );  
     1422  
     1423  
     1424            self::lg($defaultCalendar);  
     1425            if(isset($defaultCalendar[0])  && $defaultCalendar[0]['value'] == $signature['calendar'] )  
     1426            {  
     1427                Controller::delete(array('concept' => 'modulePreference', 'id' => $defaultCalendar[0]['id']));  
     1428            }  
     1429        }  
     1430  
     1431        $permissions = Controller::find(array('concept' => 'calendarToPermission'), array('id'), array('filter' => array('=', 'calendar', $signature['calendar'])));  
     1432  
    13991433                if($permissions && count($permissions) > 0){ 
    14001434                        $ids = array(); 
     
    15431577                } 
    15441578 
    1545                     DAViCalAdapter::importCollection($v->url, $calCreated['id']); 
     1579                if($i == 0)  
     1580                {  
     1581                    $pref = array();  
     1582                    $pref['user'] = $_SESSION['wallet']['user']['uidNumber'];  
     1583                    $pref['value'] = $calCreated['id'];  
     1584                    $pref['name'] = 'dafaultImportCalendar' ;  
     1585                    $pref['module'] = 'expressoCalendar';  
     1586                    Controller::create(array('concept' => 'modulePreference'), $pref);  
     1587                }  
     1588  
    15461589                } 
    15471590            } else { 
     
    15651608 
    15661609                $sigCreated = Controller::create(array('concept' => 'calendarSignature'), $sig); 
     1610  
     1611  
     1612            $pref = array();  
     1613            $pref['user'] = $_SESSION['wallet']['user']['uidNumber'];  
     1614            $pref['value'] = $calCreated['id'];  
     1615            $pref['name'] = 'dafaultImportCalendar' ;  
     1616            $pref['module'] = 'expressoCalendar';  
     1617            Controller::create(array('concept' => 'modulePreference'), $pref);  
     1618  
     1619  
    15671620        } 
    15681621     
  • branches/2.5/prototype/modules/calendar/js/calendar.codecs.js

    r7969 r7982  
    18561856                                occurrence: occurrences[i], 
    18571857                                type: typeEvent, 
    1858                                 calendar: evt.calendar 
     1858                                calendar: evt.calendar,  
     1859                unanswered: evt.unanswered,  
    18591860                                }, (parseInt(typeEvent) == 1 ? eventEditable(evt.id, isRepeat, i ) : (parseInt(typeEvent) == 2 ? taskEditable(evt.id) : {editable: false, disableResizing: true, disableDragging: true})))); 
    18601861        } 
  • branches/2.5/prototype/modules/calendar/js/helpers.js

    r7970 r7982  
    15591559        DataLayer.render( 'templates/preferences_calendar.ejs', { 
    15601560            preferences:User.preferences,  
    1561             calendars: Calendar.calendars 
     1561            calendars: Calendar.calendars,  
     1562        signatureOf : Calendar.signatureOf  
    15621563            }, function( template ){ 
    15631564            var tabPrefCalendar = jQuery('#preference_tab').html( template ).find('.preferences-win'); 
    15641565                 
    1565             tabPrefCalendar.find('option[value="'+User.preferences.defaultCalendar+'"]').attr('selected','selected').trigger('change'); 
    1566                  
    1567             DataLayer.render( 'templates/timezone_list.ejs', {}, function( timezones_options ){ 
     1566            tabPrefCalendar.find('select[name="defaultCalendar"] option[value="'+User.preferences.defaultCalendar+'"]').attr('selected','selected').trigger('change');  
     1567        tabPrefCalendar.find('select[name="dafaultImportCalendar"] option[value="'+User.preferences.dafaultImportCalendar+'"]').attr('selected','selected').trigger('change');  
     1568  
     1569        DataLayer.render( 'templates/timezone_list.ejs', {}, function( timezones_options ){  
     1570 
    15681571                tabPrefCalendar.find('select[name="timezone"]').html(timezones_options).find('option[value="'+User.preferences.timezone+'"]').attr('selected','selected').trigger('change'); 
    15691572            }); 
  • branches/2.5/prototype/modules/calendar/js/init.js

    r7968 r7982  
    358358 
    359359                        var img_icon = ""; 
     360  
     361            if( !!parseInt(event.unanswered)  ){  
     362  
     363                img_icon = "mini-attention.png";  
     364  
     365            }else{  
     366  
    360367                        if(event.type == 1) 
    361368                                img_icon = "mini-event.png"; 
     
    365372                                img_icon = "mini-activity.png"; 
    366373 
    367                          
     374        } 
     375                 
    368376            element.find(".fc-event-inner.fc-event-skin").prepend($('<img style="width: 11px; height: 13px;" class="" src="../prototype/modules/calendar/img/' + img_icon + '"></img>')); 
    369377                }, 
  • branches/2.5/prototype/modules/calendar/schedules.php

    r7967 r7982  
    158158            $attend = Controller::read(array('concept' => 'participant'), null, array('filter' => array('AND', array('=','schedulable',$v['id']), array('=','user', Config::me('uidNumber'))  ))); 
    159159 
     160            $result[$i]['unanswered'] = 0;  
     161  
    160162            if(count($attend) > 0 && !empty($attend)){ 
    161  
    162163                if(array_key_exists(0, $attend)) 
    163164                    $attend = $attend[0]; 
    164165 
    165166                $result[$i]['editable'] = (strstr($attend['acl'],"w") || strstr($attend['acl'],"o") || $attend['isOrganizer'] == '1') ? 1 : 0; 
     167  
     168                if($attend['status'] == STATUS_UNANSWERED)  
     169                    $result[$i]['unanswered'] = 1;  
    166170 
    167171            }else{ 
  • branches/2.5/prototype/modules/calendar/templates/attendee_add.ejs

    r7388 r7982  
    1111                                                <option value="3" <%= data.event.status=='3' ? 'selected="selected"':'' %>>Eu não vou</option> 
    1212                                                <option value="2" <%= data.event.status=='2' ? 'selected="selected"':'' %>>Talvez</option> 
    13                                                 <option class="hidden" value="5">Delegado</option> 
     13                        <option value="4" <%= data.event.status=='4' ? 'selected="selected"':'' %>>Sem resposta </option>  
     14                                            <option class="hidden" value="5" >Delegado</option>  
    1415                                        <%}%> 
    1516                                <%}else{%> 
  • branches/2.5/prototype/modules/calendar/templates/event_detail_list.ejs

    r7702 r7982  
    33    var encoder = {}; 
    44    encoder.alarm = {'1':'do evento','2':'da tarefa','3':'da atividade'}; 
    5     encoder.status = {'1':'Eu vou', '2':'Talvez', '3':'Eu não vou'}; 
     5    encoder.status = {'1':'Eu vou', '2':'Talvez', '3':'Eu não vou' , '4':'Sem resposta'}; 
    66    encoder.statusEvent = {1: 'Sem ações', 2: 'Em processo', 3: 'Completo', 4: 'Cancelado'}; 
    77    encoder.priority = {1: 'Alta', 2: 'Normal', 3: 'Baixa'}; 
  • branches/2.5/prototype/modules/calendar/templates/preferences_calendar.ejs

    r7143 r7982  
    7272 
    7373                        <p class="input-group">  
    74                 <label for="defaultCalendar">Agenda padrão:</label>  
     74                <label for="defaultCalendar">Agenda padrão para Criação de Eventos:</label>  
    7575                <select name="defaultCalendar" >  
    7676                    <%for(var i = 0; i < data.calendars.length; i++){%>  
     
    7979                </select> 
    8080                        </p> 
     81  
     82            <p class="input-group">  
     83                <label for="dafaultImportCalendar">Agenda padrão para Importação de Eventos :</label>  
     84                <select name="dafaultImportCalendar" >  
     85                    <option value=""> </option>  
     86                    <%for(var i = 0; i < data.calendars.length; i++){  
     87                     if(data.signatureOf[data.calendars[i].id].isOwner == '1'){  
     88                    %>  
     89                    <option value="<%=data.calendars[i].id%>"> <%= data.calendars[i].name %></option>  
     90                    <%}}%>  
     91                </select>  
     92            </p>  
    8193 
    8294                        <p class="input-group"> 
Note: See TracChangeset for help on using the changeset viewer.