Changeset 6295
- Timestamp:
- 05/24/12 16:26:24 (12 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/inc/class.db_functions.inc.php
r6105 r6295 434 434 $_REQUEST['params']['calendar'] = $params['selected']; 435 435 $_REQUEST['readable'] = $params['readable'] ? true : false; 436 436 $_REQUEST['analize'] = isset($params['analize']) ? true : false; 437 437 $_REQUEST['params']['status'] = $params['status']; 438 $_REQUEST['params']['fromPermission'] = $params['fromPermission']; 438 439 $_REQUEST['params']['owner'] = $_SESSION['phpgw_info']['expressomail']['user']['account_id']; 439 440 if(isset($params['acceptedSuggestion'])){ -
trunk/expressoMail1_2/js/main.js
r6288 r6295 3617 3617 3618 3618 var createDialog = function(typeImport, propaget){ 3619 3619 3620 if(typeof(typeImport) == "object"){ 3621 var calendarPermission = typeImport.calendar; 3622 typeImport = typeImport.action; 3623 } 3624 3620 3625 switch(parseInt(typeImport)){ 3621 3626 case 1: 3622 3627 case 7: 3623 $("#select-agenda").html('');3624 for(var id in Calendar.calendars){3625 var doc = document .createElement("OPTION"); 3626 doc.value = Calendar.calendars[id].id;3627 doc.innerHTML = Calendar.calendars[id].name; 3628 $("#select-agenda").append(doc);3629 3630 };3631 $("#import-dialog" ).dialog({3632 buttons:{3633 Cancel: function() {3634 $( this ).dialog( "close" );3635 }, 3636 "Importar" : function(){3637 3638 $.ajax({3639 url: "controller.php?action="+import_url+'&from_ajax=true&selected='+$("#select-agenda option:selected").val()+'&status='+$("#select-status option:selected").val(),3640 success: function(msg){3641 3642 var alt = ( (msg = connector.unserialize(msg)) == "ok") ? "Importado com sucesso para " : "Ocorreu um erro ao importar o evento para a agenda ";3643 alert( alt + $("#select-agenda option:selected").text() );3644 }3645 });3646 3647 $( this ).dialog( "close" );3648 }3628 case 10: 3629 $("#select-agenda").html(''); 3630 3631 var shared = '', options = ''; 3632 3633 if(typeImport == 10){ 3634 shared = '&fromPermission='+calendarPermission; 3635 3636 options += '<option value="'+calendarPermission+'">'+Calendar.signatureOf[calendarPermission].calendar.name+'</option>' 3637 }else{ 3638 for(var id in Calendar.calendars) 3639 options += '<option value="'+Calendar.calendars[id].id+'">'+Calendar.calendars[id].name+'</option>'; 3640 3641 $("#select-agenda").append(options); 3642 } 3643 $("#import-dialog" ).dialog({ 3644 buttons: { 3645 Cancel: function() { 3646 $( this ).dialog( "close" ); 3647 }, 3648 "Importar" : function(){ 3649 $.ajax({ 3650 url: "controller.php?action="+import_url+'&from_ajax=true&selected='+$("#select-agenda option:selected").val()+'&status='+$("#select-status option:selected").val()+shared, 3651 success: function(msg){ 3652 var alt = ( (msg = connector.unserialize(msg)) == "ok") ? "Importado com sucesso para " : "Ocorreu um erro ao importar o evento para a agenda "; 3653 alert( alt + $("#select-agenda option:selected").text() ); 3649 3654 } 3650 }); 3651 3652 if(typeImport == 7){ 3653 $("#import-dialog").find('#select-status option[value=1]').attr('selected','selected').trigger('change'); 3654 $("#import-dialog").find('#select-status').attr('disabled','disabled'); 3655 } 3656 break; 3655 }); 3656 $( this ).dialog( "close" ); 3657 } 3658 } 3659 }); 3660 3661 if(typeImport == 7){ 3662 $("#import-dialog").find('#select-status option[value=1]').attr('selected','selected').trigger('change'); 3663 $("#import-dialog").find('#select-status').attr('disabled','disabled'); 3664 } 3665 break; 3657 3666 case 3: 3658 3667 $.ajax({ … … 3686 3695 case 9: 3687 3696 alert('Seu evento não possui alterações!'); 3697 return; 3698 break; 3699 case 11: 3700 alert('Este evento já fora importando por algum dos particpantes e já se encontra disponível em sua agenda compartilhada!'); 3688 3701 return; 3689 3702 break; -
trunk/prototype/modules/calendar/constants.php
r5879 r6295 31 31 define('ICAL_ACTION_ORGANIZER_UPDATE', 8); 32 32 define('ICAL_ACTION_ORGANIZER_NONE', 9); 33 define('ICAL_ACTION_IMPORT_FROM_PERMISSION', 10); 34 define('ICAL_ACTION_NONE_FROM_PERMISSION', 11); 33 35 34 36 define('ATTENDEE_ACL_ORGANIZATION', 'o'); -
trunk/prototype/modules/calendar/interceptors/DBMapping.php
r6286 r6295 819 819 //Veirifica pois o usuário pode ter varias assinaturas mas não ser dona de nenhuma 820 820 if (count($result) > 0) { 821 foreach ($result as $ key) {822 if ( $key['isOwner'] != 0)821 foreach ($result as $value) { 822 if (isset($value['isOwner']) && $value['isOwner'] != 0) 823 823 $isValidSignature = true; 824 824 } -
trunk/prototype/modules/calendar/js/calendar.codecs.js
r6286 r6295 656 656 }) 657 657 }; 658 me .id = attend.id;658 me = attend; 659 659 return(null); 660 660 }; … … 685 685 alarms: !!participantInfo.user ? participantInfo.user.alarms : [], 686 686 status: !!participantInfo.user ? participantInfo.user.status : 1, 687 acl: isShared ? constantAcl(Calendar.signatureOf[objEvent.calendar].permission.aclValues) : (!!participantInfo.user ? constantAcl(participantInfo.user.acl) : ( ( !objEvent.id || isAttendee ) ? constantAcl( 'rowi' ) : constantAcl( 'r' ))),687 acl: constantAcl(me.acl || 'roiw'), 688 688 isShared: isShared, 689 689 isAttendee: (isAttendee ? true : (objEvent.id && isShared ? false : true)), 690 me: ((!objEvent.id) || ( objEvent.id && isAttendee)) ? (!!participantInfo.user ? DataLayer.merge(participantInfo.user, me) : DataLayer.merge(isShared ? participantInfo.organizer : me, { 691 acl: !isShared ? 'rowi' : Calendar.signatureOf[objEvent.calendar].permission.aclValues, 692 delegatedFrom: 0, 693 receiveNotification: 1 694 })) : (DataLayer.merge( ( participantInfo.organizer || me), { 695 acl: 'r' 696 } ) ), 690 me: me, 697 691 delegatedFrom: delegatedFrom, 698 699 692 statusParticipants: statusParticipants 700 693 }; -
trunk/prototype/modules/calendar/templates/attendee_add.ejs
r6066 r6295 39 39 <dd class="attendee-list"> 40 40 <ul class="attendee-list"> 41 <li class="organizer <%= (data.event.acl.organization || !data.event.isAttendee) ? "hidden" : "" %>">41 <li class="organizer <%= (data.event.acl.organization) ? "hidden" : "" %>"> 42 42 <div style="overflow:hidden; width:100%; display:table;"> 43 43 <span class="space-status ui-icon <%=iconStatus[data.event.organizer.status]%>" title="<%=legendStatus[data.event.organizer.status]%>"></span> -
trunk/prototype/services/iCal.php
r6248 r6295 248 248 $calendarToSchedulable['schedulable'] = $schedulable['id']; 249 249 $interation['calendarToSchedulable://' . mt_rand() . '(Formatter)'] = $calendarToSchedulable; 250 250 251 251 if (isset($params['status'])) { 252 $pID = self::_getParticipantByMail(Config::me('mail'), $schedulable['participants']); 252 if(isset($params['fromPermission'])){ 253 $signaturesOfOwner = Controller::Read(array('concept' => 'calendarSignature'), false, array('filter' => array('AND', array('=', 'calendar', $params['fromPermission']) , array('=','isOwner','1')), 'deepness' => 2 )); 254 $pID = self::_getParticipantByMail($signaturesOfOwner[0]['user']['mail'], $schedulable['participants']); 255 }else 256 $pID = self::_getParticipantByMail(Config::me('mail'), $schedulable['participants']); 253 257 $interation['participant://' . $pID]['status'] = $params['status']; 254 258 } … … 265 269 266 270 if (isset($params['status'])) { 267 $pID = self::_getParticipantByMail(Config::me('mail'), $schedulable['participants']); 271 if(isset($params['fromPermission'])){ 272 $signaturesOfOwner = Controller::Read(array('concept' => 'calendarSignature'), false, array('filter' => array('AND', array('=', 'calendar', $params['fromPermission']) , array('=','isOwner','1')), 'deepness' => 2 )); 273 $pID = self::_getParticipantByMail($signaturesOfOwner[0]['user']['mail'], $schedulable['participants']); 274 }else 275 $pID = self::_getParticipantByMail(Config::me('mail'), $schedulable['participants']); 268 276 //Verifica a importação de eventos em que não participo 269 277 if ($pID) { … … 566 574 $interation = ($isOrganizer) ? ICAL_ACTION_ORGANIZER_NONE : ICAL_ACTION_NONE; 567 575 } 568 if (!$isParticipant) 569 $interation = ICAL_ACTION_ORGANIZER_NONE; 576 if (!$isParticipant){ 577 $interation = self::_checkParticipantByPermissions($schedulable); 578 } 570 579 }else 571 580 $interation = ICAL_ACTION_IMPORT; … … 651 660 } 652 661 662 private static function _checkParticipantByPermissions($schedulable) { 663 664 $calendarIds = Controller::find(array('concept' => 'calendarSignature'), array('calendar'), array('filter' => array('AND', array('=','isOwner','0'), array('=', 'user', Config::me("uidNumber"))))); 665 666 if($calendarIds && isset($calendarIds[0])){ 667 $ids = array(); 668 foreach($calendarIds as $value) 669 array_push($ids, $value['calendar']); 670 671 $signaturesOfOwners = Controller::find(array('concept' => 'calendarSignature'), false, array('filter' => array('AND', array('IN', 'calendar', $ids) , array('=','isOwner','1')), 'deepness' => 2 )); 672 673 foreach($signaturesOfOwners as $value){ 674 if(self::_getParticipantByMail($value['user']['mail'], $schedulable['participants'])){ 675 $eventoFromCalendar = Controller::read( array( 'concept' => 'calendarToSchedulable') , false, array('filter' => array('AND', array('=','schedulable',$schedulable['id']), array('=','calendar', $value['calendar']['id'])))); 676 677 return ($eventoFromCalendar && isset($eventoFromCalendar[0])) ? ICAL_ACTION_NONE_FROM_PERMISSION : array('action' => ICAL_ACTION_IMPORT_FROM_PERMISSION, 'calendar' => $value['calendar']['id'] ); 678 } 679 } 680 } 681 return ICAL_ACTION_ORGANIZER_NONE; 682 } 683 684 653 685 private static function _getParticipantByMail($mail, &$participants) { 654 686 if ($participants && $participants != '')
Note: See TracChangeset
for help on using the changeset viewer.