function findBySpecialId($special_id) { return EventInvitations::findOne(array('conditions' => array('`special_id` = ?', $special_id))); }
function allowed_users_view_events() { $comp_array = array(); $actual_user_id = isset($_GET['user']) ? $_GET['user'] : logged_user()->getId(); $wspace_id = isset($_GET['ws_id']) ? $_GET['ws_id'] : 0; $ws = Projects::findByCSVIds($wspace_id); $evid = array_var($_GET, 'evid'); $companies = Companies::findAll(); $i = 0; foreach ($companies as $comp) { $users = $comp->getUsersOnWorkspaces($ws); if (is_array($users)) { foreach ($users as $k => $user) { // removing event creator from notification list $keep = false; foreach ($ws as $w) { if (can_read_type($user, $w, 'ProjectEvents')) { $keep = true; } } if (!$keep) { unset($users[$k]); } } if (count($users) > 0) { $comp_data = array('id' => $i++, 'object_id' => $comp->getId(), 'name' => $comp->getName(), 'logo_url' => $comp->getLogoUrl(), 'users' => array()); foreach ($users as $user) { $comp_data['users'][] = array('id' => $user->getId(), 'name' => $user->getDisplayName(), 'avatar_url' => $user->getAvatarUrl(), 'invited' => $evid == 0 ? $user->getId() == $actual_user_id : EventInvitations::findOne(array('conditions' => "`event_id` = {$evid} and `user_id` = " . $user->getId())) != null, 'mail' => $user->getEmail()); } $comp_array[] = $comp_data; } } } $object = array("totalCount" => count($comp_array), "start" => 0, "companies" => array()); $object['companies'] = $comp_array; ajx_extra_data($object); ajx_current("empty"); }
function allowed_users_view_events() { $comp_array = array(); $actual_user_id = isset($_GET['user']) ? $_GET['user'] : logged_user()->getId(); $evid = array_var($_GET, 'evid'); $i = 0; $companies_tmp = Contacts::findAll(array("conditions" => "is_company = 1")); $companies = array("0" => array('id' => $i++, 'name' => lang('without company'), 'logo_url' => '#')); foreach ($companies_tmp as $comptmp) { $companies[$comptmp->getId()] = array( 'id' => $i++, 'name' => $comptmp->getObjectName(), 'logo_url' => $comptmp->getPictureUrl() ); } $context_plain = array_var($_GET, 'context'); if (is_null($context_plain) || $context_plain == "") $context = active_context(); else $context = build_context_array($context_plain); $users = allowed_users_in_context(ProjectEvents::instance()->getObjectTypeId(), $context, ACCESS_LEVEL_READ); foreach ($companies as $id => $comp) { if (is_array($users) && count($users) > 0) { $comp_data = array( 'id' => $comp['id'], 'object_id' => $id, 'name' => $comp['name'], 'logo_url' => $comp['logo_url'], 'users' => array() ); foreach ($users as $user) { if ($user->getCompanyId() == $id) { $comp_data['users'][] = array( 'id' => $user->getId(), 'name' => $user->getObjectName(), 'avatar_url' => $user->getPictureUrl(), 'invited' => $evid == 0 ? ($user->getId() == $actual_user_id) : (EventInvitations::findOne(array('conditions' => "`event_id` = $evid and `contact_id` = ".$user->getId())) != null), 'mail' => $user->getEmailAddress() ); } } if (count($comp_data['users']) > 0) { $comp_array[] = $comp_data; } } } $object = array( "totalCount" => count($comp_array), "start" => 0, "companies" => $comp_array ); ajx_extra_data($object); ajx_current("empty"); }
private function update_event_on_google_calendar($event, $ext_calendar, $ext_user, $service) { $insert_event = false; //update event if ($event->getSpecialID() != "") { //First retrieve the event from the google API. try { $newEvent = $service->events->get($ext_calendar->getOriginalCalendarId(), $event->getSpecialID()); } catch (Exception $e) { Logger::log("Fail to get event from google: " . $event->getId()); Logger::log($e->getMessage()); throw $e; } } //insert event if (!$newEvent instanceof Google_Service_Calendar_Event) { //create google event $newEvent = new Google_Service_Calendar_Event(); $insert_event = true; } $newEvent->setSummary($event->getObjectName()); $newEvent->setDescription($event->getDescription()); $start = new Google_Service_Calendar_EventDateTime(); $end = new Google_Service_Calendar_EventDateTime(); //All day event if ($event->getTypeId() == 2) { $star_time = date("Y-m-d", $event->getStart()->getTimestamp()); $end_time = date("Y-m-d", $event->getDuration()->getTimestamp()); $start->setDate($star_time); $end->setDate($end_time); } else { $star_time = date(DATE_RFC3339, $event->getStart()->getTimestamp()); $end_time = date(DATE_RFC3339, $event->getDuration()->getTimestamp()); $start->setDateTime($star_time); $end->setDateTime($end_time); } $newEvent->setStart($start); $newEvent->setEnd($end); try { if ($insert_event) { // insert event $createdEvent = $service->events->insert($ext_calendar->getOriginalCalendarId(), $newEvent); } else { // update event $createdEvent = $service->events->update($ext_calendar->getOriginalCalendarId(), $newEvent->getId(), $newEvent); } } catch (Exception $e) { Logger::log("Fail to add event: " . $event->getId()); Logger::log($e->getMessage()); throw $e; } $event->setSpecialID($createdEvent->getId()); $event->setUpdateSync(ExternalCalendarController::date_google_to_sql($createdEvent->getUpdated())); $event->setExtCalId($ext_calendar->getId()); $event->save(); $invitation = EventInvitations::findOne(array('conditions' => array('contact_id = ' . $ext_user->getContactId() . ' AND event_id =' . $event->getId()))); if ($invitation) { $invitation->setUpdateSync(ExternalCalendarController::date_google_to_sql($createdEvent->getUpdated())); $invitation->setSpecialId($createdEvent->getId()); $invitation->save(); } }