protected function processRecordIds(array $ids, $entity_id, $gridField, $request) { $summit_id = intval($request->param('ID')); if ((is_null($ids) || count($ids) === 0) && strstr($entity_id, '_ALL') !== false) { $entity_id = explode('_', $entity_id); $entity_id = intval($entity_id[0]); $query = <<<SQL INSERT INTO SummitEvent_AllowedSummitTypes ( `SummitEventID`, `SummitTypeID`) SELECT ID, {$entity_id} FROM SummitEvent WHERE SummitID = {$summit_id} AND ClassName = '{$gridField->getModelClass()}' AND NOT EXISTS (SELECT 1 FROM SummitEvent_AllowedSummitTypes WHERE SummitEvent_AllowedSummitTypes.SummitEventID = SummitEvent.ID AND SummitEvent_AllowedSummitTypes.SummitTypeID = {$entity_id}); SQL; DB::query($query); } else { foreach ($ids as $id) { $event = SummitEvent::get()->byID($id); if (is_null($event)) { continue; } $event->AllowedSummitTypes()->add($entity_id); } } }
public function getCMSFields() { $summit_id = isset($_REQUEST['SummitID']) ? $_REQUEST['SummitID'] : Summit::ActiveSummitID(); Requirements::javascript('summit/javascript/SummitPushNotification.js'); $f = new FieldList($rootTab = new TabSet("Root", $tabMain = new Tab('Main'))); $f->addFieldToTab('Root.Main', $txt = new TextareaField('Message', 'Message')); $txt->setAttribute('required', 'true'); $f->addFieldToTab('Root.Main', $ddl_channel = new DropdownField('Channel', 'Channel', singleton('SummitPushNotification')->dbObject('Channel')->enumValues())); $f->addFieldToTab('Root.Main', $ddl_events = new DropdownField('EventID', 'Event', SummitEvent::get()->filter(['Published' => 1, 'SummitID' => $summit_id])->sort('Title', 'ASC')->Map('ID', 'FormattedTitle'))); $f->addFieldToTab('Root.Main', $ddl_groups = new DropdownField('GroupID', 'Group', Group::get()->sort('Title', 'ASC')->Map('ID', 'Title'))); $f->addFieldToTab('Root.Main', new HiddenField('SummitID', 'SummitID')); $ddl_channel->setEmptyString('--SELECT A CHANNEL--'); $ddl_channel->setAttribute('required', 'true'); $ddl_events->setEmptyString('--SELECT AN EVENT--'); $ddl_events->addExtraClass('hidden'); $ddl_groups->setEmptyString('--SELECT A GROUP--'); $ddl_groups->addExtraClass('hidden'); $config = GridFieldConfig_RelationEditor::create(50); $config->removeComponentsByType('GridFieldAddExistingAutocompleter'); $config->removeComponentsByType('GridFieldAddNewButton'); $config->addComponent($auto_completer = new CustomGridFieldAddExistingAutocompleter('buttons-before-right')); $auto_completer->setResultsFormat('$Title ($Email)'); $recipients = new GridField('Recipients', 'Member Recipients', $this->Recipients(), $config); $f->addFieldToTab('Root.Main', $recipients); return $f; }
protected function processRecordIds(array $ids, $entity_id) { foreach ($ids as $id) { $event = SummitEvent::get()->byID($id); if (is_null($event)) { continue; } $event->AllowedSummitTypes()->add($entity_id); } }
protected function processRecordIds(array $ids, $entity_id, $gridField, $request) { foreach ($ids as $id) { $event = SummitEvent::get()->byID($id); if (is_null($event)) { continue; } $event->TypeID = $entity_id; $event->write(); } }
public function getAllowedSchedule() { $summit = $this->Summit(); if (is_null($summit)) { $summit = Summit::get()->byID(intval($_REQUEST['SummitID'])); } return SummitEvent::get()->filter(array('Published' => true, 'SummitID' => $summit->ID)); }
public function editEvent(SS_HTTPRequest $request) { $summit_id = intval($request->param('SummitID')); $summit = Summit::get()->byID($summit_id); $event_id = intval($request->param('EventID')); $event = SummitEvent::get()->byID($event_id); Requirements::css('summit/css/simple-sidebar.css'); Requirements::css('themes/openstack/bower_assets/chosen/chosen.min.css'); Requirements::css('themes/openstack/bower_assets/sweetalert/dist/sweetalert.css'); Requirements::javascript('themes/openstack/bower_assets/sweetalert/dist/sweetalert.min.js'); Requirements::javascript('themes/openstack/bower_assets/jquery-validate/dist/jquery.validate.min.js'); Requirements::javascript('themes/openstack/bower_assets/jquery-validate/dist/additional-methods.min.js'); Requirements::javascript('themes/openstack/bower_assets/chosen/chosen.jquery.min.js'); Requirements::javascript('themes/openstack/bower_assets/bootstrap3-typeahead/bootstrap3-typeahead.min.js'); Requirements::javascript('summit/javascript/simple-sidebar.js'); Requirements::javascript('summit/javascript/summitapp-editevent.js'); return $this->getViewer('EditEvent')->process($this->customise(array('Summit' => $summit, 'Event' => $event))); }
/** * @param int $summit_id * @return array */ public function getCurrentPublished($summit_id) { $summit = Summit::get()->byID($summit_id); if (is_null($summit)) { throw new InvalidArgumentException('summit not found!'); } $current_date = gmdate('d/m/Y H:i:s'); $list = SummitEvent::get()->filter(array('SummitID' => $summit_id, 'Published' => 1))->where("StartDate < '{$current_date}' AND EndDate > '{$current_date}'"); return $list; }
/** * @param ISummit $summit_id * @param array $days * @param string $start_time * @param string $end_time * @param array $locations * @return array */ public function getPublishedByTimeAndVenue(ISummit $summit, $days, $start_time, $end_time, $locations) { $where_clause = ''; if (!empty($days)) { $where_clause .= "("; foreach ($days as $day) { $start_date = $summit->convertDateFromTimeZone2UTC($day . ' ' . $start_time); $end_date = $summit->convertDateFromTimeZone2UTC($day . ' ' . $end_time); $where_clause .= "(StartDate < '{$end_date}' AND EndDate > '{$start_date}') OR "; } $where_clause = substr($where_clause, 0, -4) . ")"; } if (!empty($locations)) { $locations_string = implode(',', $locations); $where_clause .= " AND LocationID IN ({$locations_string})"; } $events = SummitEvent::get()->filter(array('SummitID' => $summit->getIdentifier(), 'Published' => 1))->where($where_clause)->sort('LocationID,StartDate')->toArray(); return $events; }
/** * Implement this method in the task subclass to * execute via the TaskRunner */ public function run($request) { set_time_limit(0); $summit_id = intval($request->getVar('summit_id')); if (empty($summit_id)) { throw new InvalidArgumentException('missing summit_id param!'); } $client = new GuzzleHttp\Client(); $query = array('api_key' => SCHED_API_KEY, 'format' => 'json'); $response = $client->get("http://openstacksummitoctober2015tokyo.sched.org/api/session/list", array('query' => $query)); if ($response->getStatusCode() !== 200) { throw new Exception('invalid status code!'); } $content_type = $response->getHeader('content-type'); if (empty($content_type)) { throw new Exception('invalid content type!'); } if ($content_type !== 'application/json') { throw new Exception('invalid content type!'); } $summit = Summit::get()->byID($summit_id); if (is_null($summit)) { throw new InvalidArgumentException('missing summit_id param!'); } $json = $response->getBody()->getContents(); $events = json_decode($json, true); foreach ($events as $sched_event) { try { if ($sched_event["active"] !== "Y") { continue; } $title = $sched_event["name"]; $start_date = $sched_event["event_start"]; $end_date = $sched_event["event_end"]; $event_type = isset($sched_event["event_type"]) ? $sched_event["event_type"] : $title; $venue = $sched_event["venue"]; $event = SummitEvent::get()->filter(array("SummitID" => $summit_id, "Title" => trim($title), "StartDate" => $summit->convertDateFromTimeZone2UTC($start_date), "EndDate" => $summit->convertDateFromTimeZone2UTC($end_date)))->first(); if (is_null($event)) { $event = SummitEvent::get()->filter(array("SummitID" => $summit_id, "Title" => trim($title)))->first(); } $location = SummitVenueRoom::get()->filter(array("SummitID" => $summit_id, "Name" => trim($venue)))->first(); if (is_null($location) && $venue !== 'TBA') { // create location $main_venue = SummitVenue::get()->filter(array("SummitID" => $summit_id))->first(); $location = new SummitVenueRoom(); $location->SummitID = $summit_id; $location->Name = trim($venue); $location->VenueID = $main_venue->ID; $location->write(); } if (is_null($event)) { // create event and event type ... if (isset($sched_event['speakers'])) { continue; } $type = SummitEventType::get()->filter(array("SummitID" => $summit_id, "Type" => trim($event_type)))->first(); if (is_null($type)) { $type = new SummitEventType(); $type->SummitID = $summit_id; $type->Type = trim($event_type); $type->write(); } $event = new SummitEvent(); $event->TypeID = $type->ID; $event->SummitID = $summit_id; $event->Title = trim($title); $event->write(); } $event->StartDate = $start_date; $event->EndDate = $end_date; if (!is_null($location)) { $event->LocationID = $location->ID; } $event->write(); if ($event->isPublished()) { continue; } $event_id = $event->ID; if (intval($event->AllowedSummitTypes()->count()) === 0) { DB::query("INSERT INTO SummitEvent_AllowedSummitTypes\n(SummitEventID, SummitTypeID)\nSELECT SummitEvent.ID, SummitType.ID FROM SummitEvent, SummitType WHERE SummitEvent.ID = {$event_id} ;\n"); } $event->publish(); $event->write(); } catch (ValidationException $ex) { SS_Log::log($ex->getMessage(), SS_Log::ERR); } } }
return; } $speaker_id = $item->ID; $event = new SummitEntityEvent(); $event->EntityClassName = 'SpeakerFromPresentation'; $event->EntityID = $speaker_id; $event->Type = 'DELETE'; $event->OwnerID = Member::currentUserID(); $event->SummitID = $presentation->SummitID; $event->Metadata = json_encode(array('event_id' => $presentation_id)); $event->write(); } if ($item instanceof SummitType && $list->getJoinTable() === 'SummitEvent_AllowedSummitTypes') { // removed summit type from event $event_id = intval($list->getForeignID()); $summit_event = SummitEvent::get()->byID($event_id); if (is_null($summit_event)) { return; } $summit_type_id = $item->ID; $event = new SummitEntityEvent(); $event->EntityClassName = 'SummitTypeFromEvent'; $event->EntityID = $summit_type_id; $event->Type = 'DELETE'; $event->OwnerID = Member::currentUserID(); $event->SummitID = $summit_event->SummitID; $event->Metadata = json_encode(array('event_id' => $event_id)); $event->write(); } if ($item instanceof PresentationCategory && $list->getJoinTable() === 'PresentationCategoryGroup_Categories') { $group_id = intval($list->getForeignID());
public function hasRSVPSubmission($event_id) { $event = SummitEvent::get()->byID($event_id); if (!$event) { return false; } return $event->RSVPSubmissions()->filter('SubmittedByID', $this->ID)->count() > 0; }
public function room_metrics(SS_HTTPRequest $request) { $summit_id = intval($request->param('SummitID')); $summit = Summit::get()->byID($summit_id); Requirements::css('summit/css/simple-sidebar.css'); Requirements::css('summit/css/summit-admin-room-metrics.css'); Requirements::css('themes/openstack/bower_assets/sweetalert/dist/sweetalert.css'); Requirements::css('themes/openstack/bower_assets/jquery-ui/themes/smoothness/jquery-ui.css'); Requirements::css("themes/openstack/bower_assets/jqplot-bower/dist/jquery.jqplot.min.css"); Requirements::javascript("themes/openstack/bower_assets/jqplot-bower/dist/jquery.jqplot.min.js"); Requirements::javascript("themes/openstack/bower_assets/jqplot-bower/dist/plugins/jqplot.canvasTextRenderer.min.js"); Requirements::javascript("themes/openstack/bower_assets/jqplot-bower/dist/plugins/jqplot.canvasAxisLabelRenderer.min.js"); Requirements::javascript("themes/openstack/bower_assets/jqplot-bower/dist/plugins/jqplot.dateAxisRenderer.min.js"); Requirements::javascript("themes/openstack/bower_assets/jqplot-bower/dist/plugins/jqplot.highlighter.min.js"); Requirements::javascript("themes/openstack/bower_assets/jqplot-bower/dist/plugins/jqplot.cursor.min.js"); Requirements::javascript('themes/openstack/bower_assets/sweetalert/dist/sweetalert.min.js'); Requirements::javascript('summit/javascript/simple-sidebar.js'); Requirements::javascript('themes/openstack/javascript/jquery-ajax-loader.js'); $current_events = $this->event_repository->getCurrentPublished($summit_id); $current_events = SummitEvent::get()->where("ID = 14960"); return $this->getViewer('room_metrics')->process($this->customise(array('Summit' => $summit, 'Events' => $current_events))); }
/** * @param int $event_id * @return string */ public function getGoogleCalEventId($event_id) { $event = SummitEvent::get()->byID($event_id); if (is_null($event)) { return false; } if (!$this->isAttendee($event->SummitID)) { return false; } return $this->owner->getSummitAttendee($event->SummitID)->getGoogleCalEventId($event); }