protected final function queueDataImport(PhabricatorCalendarImport $import, $data) { $import->newLogMessage(PhabricatorCalendarImportQueueLogType::LOGTYPE, array('data.size' => strlen($data), 'data.limit' => self::QUEUE_BYTE_LIMIT)); // When we queue on this pathway, we're queueing in response to an explicit // user action (like uploading a big `.ics` file), so we queue at normal // priority instead of bulk/import priority. PhabricatorWorker::scheduleTask('PhabricatorCalendarImportReloadWorker', array('importPHID' => $import->getPHID(), 'via' => PhabricatorCalendarImportReloadWorker::VIA_BACKGROUND), array('objectPHID' => $import->getPHID())); }
private function buildImportedEvents(PhabricatorCalendarImport $import) { $viewer = $this->getViewer(); $engine = id(new PhabricatorCalendarEventSearchEngine())->setViewer($viewer); $saved = $engine->newSavedQuery()->setParameter('importSourcePHIDs', array($import->getPHID())); $pager = $engine->newPagerForSavedQuery($saved); $pager->setPageSize(25); $query = $engine->buildQueryFromSavedQuery($saved); $results = $engine->executeQuery($query, $pager); $view = $engine->renderResults($results, $saved); $list = $view->getObjectList(); $list->setNoDataString(pht('No imported events.')); $all_uri = $this->getApplicationURI(); $all_uri = (string) id(new PhutilURI($all_uri))->setQueryParam('importSourcePHID', $import->getPHID())->setQueryParam('display', 'list'); $all_button = id(new PHUIButtonView())->setTag('a')->setText(pht('View All'))->setIcon('fa-search')->setHref($all_uri); $header = id(new PHUIHeaderView())->setHeader(pht('Imported Events'))->addActionLink($all_button); return id(new PHUIObjectBoxView())->setHeader($header)->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)->setObjectList($list); }