Changeset 6331 for trunk/prototype/modules
- Timestamp:
- 05/28/12 21:17:51 (12 years ago)
- Location:
- trunk/prototype/modules/calendar
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/prototype/modules/calendar/interceptors/DBMapping.php
r6299 r6331 373 373 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 374 374 375 public function updateCalendar(&$uri, &$params, &$criteria, $original) { 376 if (isset($params['calendar'])) { 377 $calendarObjects = self::schedulable2calendarToObject($uri['id']); 378 $params2['calendar'] = $params['calendar']; 379 380 foreach ($calendarObjects as $calendarObject) 375 public function updateCalendar(&$uri, &$params, &$criteria, $original) { 376 if (isset($params['calendar'])) { 377 if(isset($params['lastCalendar'])){ 378 $calendarObjects = self::referenceCalendarToObject($uri['id'], $params['lastCalendar']); 379 $params2['calendar'] = $params['calendar']; 380 }else{ 381 $calendarObjects = self::schedulable2calendarToObject($uri['id']); 382 $params2['calendar'] = $params['calendar']; 383 } 384 385 foreach ($calendarObjects as $calendarObject) 381 386 Controller::update(array('concept' => 'calendarToSchedulable', 'id' => $calendarObject['calendar_to_calendar_object']), $params2); 382 387 … … 717 722 $idCalendar = $criteria['filter'][2][2]; 718 723 719 if(!self::ownerSchedulable($idSchedulable )){724 if(!self::ownerSchedulable($idSchedulable, $criteria['filter'][3][2])){ 720 725 $isPermissionFromOwner = self::permissionFromCalendarSignature($idCalendar, $idSchedulable); 721 726 … … 727 732 728 733 foreach($calendarsToSchedulable as $value) 729 if($value['calendar_id'] == $idCalendar){ 734 if($value['calendar_id'] == $idCalendar){ 735 736 $participant = Controller::read(array('concept' => 'participant'), array('id'), array('filter' => 737 array('AND', 738 array('=', 'user', $criteria['filter'][3][2]), 739 array('=', 'schedulable', $idSchedulable) 740 ))); 741 742 Controller::call(('update'), array('concept' => 'participant', 'id' => $participant[0]['id']), array('status' => STATUS_CANCELLED)); 730 743 Controller::delete(array('concept' => 'calendarToSchedulable', 'id' => $value['calendar_to_calendar_object'])); 731 744 break; … … 740 753 $calendarsToSchedulable = self::schedulable2calendarToObject($uri['id']); 741 754 742 if (!self::ownerSchedulable($uri['id'] ) && !self::isAllowDeleteInCalendar($calendarsToSchedulable[0]['calendar_id'])) {755 if (!self::ownerSchedulable($uri['id'], Config::me('uidNumber')) && !self::isAllowDeleteInCalendar($calendarsToSchedulable[0]['calendar_id'])) { 743 756 744 757 foreach ($calendarsToSchedulable as $i => $v) { … … 750 763 751 764 /* Seta o participante como rejeitado */ 752 Controller::update(array('concept' => 'participant'), array('status' => STATUS_CANCELLED), array('filter' =>765 $participant = Controller::read(array('concept' => 'participant'), array('id'), array('filter' => 753 766 array('AND', 754 767 array('=', 'user', Config::me('uidNumber')), 755 array('=', 'schedulable', $uri['id']) 756 ))); 768 array('=', 'schedulable', $idSchedulable) 769 ))); 770 771 Controller::call(('update'), array('concept' => 'participant', 'id' => $participant[0]['id']), array('status' => STATUS_CANCELLED)); 757 772 758 773 return false; /* Mata o restante da execução */ … … 1017 1032 1018 1033 1019 private static function ownerSchedulable($id ) {1034 private static function ownerSchedulable($id, $me) { 1020 1035 1021 1036 $isOwner = Controller::find(array('concept' => 'participant'), array('id'), array('filter' => 1022 1037 array('AND', 1023 1038 array('=', 'isOrganizer', '1'), 1024 array('=', 'user', $ _SESSION['wallet']['user']['uidNumber']),1039 array('=', 'user', $me), 1025 1040 array('=', 'schedulable', $id) 1026 1041 ))); … … 1028 1043 return ( isset($isOwner[0]['id']) ) ? true : false; 1029 1044 } 1030 1045 1046 1047 private static function referenceCalendarToObject($schedulable, $calendar) { 1048 return Controller::service('PostgreSQL')->execResultSql('SELECT calendar_to_calendar_object.id as calendar_to_calendar_Object FROM calendar_to_calendar_object' 1049 . ' WHERE calendar_to_calendar_object.calendar_id = '. $calendar 1050 . ' AND calendar_to_calendar_object.calendar_object_id = ' . addslashes($schedulable)); 1051 } 1052 1031 1053 private static function schedulable2calendarToObject($Schedulable) { 1032 1054 return Controller::service('PostgreSQL')->execResultSql('SELECT calendar_to_calendar_object.id as calendar_to_calendar_Object , calendar.name as calendar_name ,calendar.location as calendar_location, calendar.id as calendar_id FROM calendar_to_calendar_object , calendar , calendar_signature' -
trunk/prototype/modules/calendar/interceptors/Notifications.php
r6190 r6331 92 92 if (isset($updated)) { 93 93 $psUpdated = Controller::find(array('concept' => 'participant'), false, array('deepness' => '1', 'filter' => array('IN', 'id', $updated))); 94 94 95 foreach ($psUpdated as $i => $pUpdated) { 95 96 if ($pUpdated['isOrganizer'] == '1') … … 237 238 */ 238 239 public static function participantDelegatedStatusChange(&$partID, &$schedulable, $organizer, &$type = false) { 239 240 240 $delegatedParams = array(); 241 241 … … 270 270 } 271 271 272 public static function mountStruture( $partID, &$schedulable, $type = false, &$data, &$subject, &$ical, &$part = false, &$method, &$notificationType, $regSet = false) {272 public static function mountStruture(&$partID, &$schedulable, $type = false, &$data, &$subject, &$ical, &$part = false, &$method, &$notificationType, $regSet = false) { 273 273 274 274 if ((Config::regGet('ical://' . $schedulable['id'] . '/' . $method) === false) || ($method == 'CANCEL')) { //Verifica se o ical ja não esta no reg … … 327 327 $part = self::_getAttendeeById($partID, $schedulable); 328 328 $data['participant'] = isset($part['user']['name']) ? $part['user']['name'] : $part['user']['mail']; 329 $partID = $part; 329 330 break; 330 331 case 'othersAttendees': … … 344 345 $subject['endDate'] = date_format($eTime, 'd/m/Y'); 345 346 $subject['endTime'] = ($schedulable['allDay']) ? '' : date_format($eTime, 'H:i'); 346 $subject['participant'] = Config::me('uid');347 $subject['participant'] = (is_array($partID) && isset($partID['user']) )? $partID['user']['uid'] : Config::me('uid'); 347 348 } 348 349 … … 379 380 * @access public 380 381 */ 381 public static function participantStatusChange(&$partID, &$schedulable, &$organizer, $type, $delegatedParams = false) { 382 public static function participantStatusChange(&$partID, &$schedulable, &$organizer, $type, $delegatedParams = false) { 382 383 $method = 'REPLY'; 383 384 $notificationType = 'Convite Aceito'; … … 412 413 } 413 414 414 self::sendMail($data, $ical, $organizer['user']['mail'], $subject, $tpl, false);415 self::sendMail($data, $ical, $organizer['user']['mail'], $subject, $tpl, $partID); 415 416 } 416 417 -
trunk/prototype/modules/calendar/js/calendar.codecs.js
r6300 r6331 153 153 delete DataLayer.tasks[this.clookRefresh]; 154 154 155 this.clookRefresh = (parseInt(($.now()) / 1000) + this.timeRefresh); 156 157 DataLayer.task( this.clookRefresh , function(){ 158 Calendar.rerenderView(true); 159 }); 160 155 //Realiza agendamentos de atualização de view somente se o módulo aberto for expressoCalendar 156 if(User.moduleName == "expressoCalendar"){ 157 this.clookRefresh = (parseInt(($.now()) / 1000) + this.timeRefresh); 158 159 DataLayer.task( this.clookRefresh , function(){ 160 Calendar.rerenderView(true); 161 }); 162 } 161 163 } 162 164 } … … 516 518 var pref = User.preferences; 517 519 518 var Owner = decodeOwnerCalendar(evtObj .calendar);520 var Owner = decodeOwnerCalendar(evtObj[0].calendar); 519 521 520 522 var res = $.map(evtObj, function( form ){ 521 523 522 return {524 return DataLayer.merge({ 523 525 id: form.idEvent, 524 calendar: form.calendar,525 526 participants : $.map(form.attendee, function( attendee, i ){ 526 527 if(isNaN(attendee)){ … … 536 537 if(DataLayer.get('participant', attendee).user == Owner.id){ 537 538 var me = { 538 user: User.id,539 user: Owner.id, 539 540 status: form.status, 540 541 id: attendee, … … 580 581 }; 581 582 }) 582 } 583 }, (Owner.id == User.me.id) ? (form.calendar != form.lastCalendar ? {calendar: form.calendar, lastCalendar: form.lastCalendar} : {}) : {}) 583 584 }); 584 585 return notArray ? res[0] : res; … … 641 642 attachments: $.map(objEvent.attachments || [], function( attachment, i ){ 642 643 var attach = DataLayer.get('schedulableToAttachment', attachment, false); 643 //TODO - Verificar na API retorno de id sobre os conceitos em que s ão utilizados tabelas de ligação644 //TODO - Verificar na API retorno de id sobre os conceitos em que s?o utilizados tabelas de liga??o 644 645 if(!attach.name) return(null); 645 646 … … 838 839 var Owner = decodeOwnerCalendar(form.calendar); 839 840 840 return {841 return DataLayer.merge({ 841 842 "class": form["class"], 842 843 startTime: Date.parseExact(form.startDate + (!!form.allDay ? " 00:00": " "+$.trim(form.startHour)) , formatString ).toString('yyyy-MM-dd HH:mm:00'), … … 846 847 location: form.location, 847 848 category: form.category, 848 calendar: form.calendar,849 849 summary: form.summary, 850 850 description: form.description, … … 901 901 }; 902 902 }) 903 } ;903 }, form.lastCalendar ? (( form.lastCalendar == form.calendar ) ? {} : {calendar: form.calendar, lastCalendar: form.lastCalendar}) : {calendar: form.calendar}); 904 904 }); 905 905 -
trunk/prototype/modules/calendar/js/helpers.js
r6286 r6331 623 623 $(this).parent().remove().find('li').is(':empty'); 624 624 }); 625 626 /*Seleciona a agenda padrão para criação de um evento*/ 627 628 if(objEvent.calendar != undefined) 629 var selectedCalendar = objEvent.calendar; 630 else 631 var selectedCalendar = User.preferences.defaultCalendar; 632 633 UI.dialogs.addEvent.find('option[value="'+selectedCalendar+'"]').attr('selected','selected').trigger('change'); 625 626 var myCalendar = function(){ 627 for(var i in Calendar.signatures) 628 if(Calendar.signatures[i].isOwner == "1") 629 return Calendar.signatures[i].calendar.id; 630 } 634 631 635 632 /*Adicionar alarms padrões, quando alterado a agenda do usuário*/ … … 691 688 .filter('.mail').html(User.me.mail).attr('title',User.me.mail); 692 689 } 693 694 695 696 697 690 }); 698 691 699 692 /*Checkbox adicionar alarms padrões*/ 700 693 UI.dialogs.addEvent.find('input[name="defaultAlarm"]').click(function(){ … … 781 774 canDiscardEventDialog = true; 782 775 /* Remove por filtro */ 783 DataLayer.removeFilter('schedulable', {filter: ['AND', ['=', 'id', objEvent.id], ['=', 'calendar', objEvent.calendar] ]});776 DataLayer.removeFilter('schedulable', {filter: ['AND', ['=', 'id', objEvent.id], ['=', 'calendar', objEvent.calendar], ['=','user',(objEvent.me.user ? objEvent.me.user.id : objEvent.me.id)]]}); 784 777 Calendar.rerenderView(true); 785 778 /********************/ … … 1510 1503 1511 1504 disponibily(objEvent, path, attendees); 1512 1505 1506 /*Seleciona a agenda padrão para criação de um evento*/ 1507 var selectedCalendar = (objEvent.calendar != undefined) ? objEvent.calendar : (User.preferences.defaultCalendar ? User.preferences.defaultCalendar : myCalendar()); 1508 UI.dialogs.addEvent.find('option[value="'+selectedCalendar+'"]').attr('selected','selected').trigger('change'); 1509 1513 1510 UI.dialogs.addEvent.find(':input').change(function(event){ 1514 1511 if (event.keyCode != '27' && event.keyCode != '13') … … 1915 1912 'onClose': function(clicked) { 1916 1913 if(clicked == 'Sim'){ 1917 DataLayer.removeFilter('schedulable', {filter: ['AND', ['=','id',eventId], ['=','calendar',idCalendar]]}) 1914 1915 var schedulable = DataLayer.get('schedulable', '88'); 1916 1917 schedulable.calendar = idCalendar; 1918 1919 var schudableDecode = DataLayer.encode( "schedulable:preview", schedulable); 1920 var me = schudableDecode.me.user ? schudableDecode.me.user.id : schudableDecode.me.id; 1921 1922 DataLayer.removeFilter('schedulable', {filter: ['AND', ['=','id',eventId], ['=','calendar',idCalendar], ['=','user', me]]}) 1918 1923 Calendar.rerenderView(true); 1919 1924 } … … 2635 2640 2636 2641 var schedulable = DataLayer.get('schedulable', event+''); 2637 2642 2638 2643 calendar = !!calendar ? calendar : schedulable.calendar; 2639 2644 … … 2644 2649 if(parseInt(type) == 0){ 2645 2650 2646 schedulable.calendar = calendar; 2651 schedulable.lastCalendar = schedulable.calendar; 2652 schedulable.calendar = calendar; 2647 2653 DataLayer.put('schedulable', schedulable); 2648 2654 -
trunk/prototype/modules/calendar/templates/event_add.ejs
r6302 r6331 8 8 <% if( data.event.id ){ %> 9 9 <input type="hidden" class="id-event" name="idEvent" value="<%= data.event.id %>"/> 10 <% } %> 11 <% if( data.event.calendar ){ %> 12 <input type="hidden" class="last-calendar" name="lastCalendar" value="<%= data.event.calendar %>"/> 10 13 <% } %> 11 14 </p>
Note: See TracChangeset
for help on using the changeset viewer.