protected function loadPage() { $table = new NuanceSource(); $conn = $table->establishConnection('r'); $data = queryfx_all($conn, '%Q FROM %T %Q %Q %Q', $this->buildSelectClause($conn), $table->getTableName(), $this->buildWhereClause($conn), $this->buildOrderClause($conn), $this->buildLimitClause($conn)); return $table->loadAllFromArray($data); }
public function loadPage() { $table = new NuanceSource(); $conn_r = $table->establishConnection('r'); $data = queryfx_all($conn_r, 'SELECT * FROM %T %Q %Q %Q', $table->getTableName(), $this->buildWhereClause($conn_r), $this->buildOrderClause($conn_r), $this->buildLimitClause($conn_r)); return $table->loadAllFromArray($data); }
private function buildPropertyView(NuanceSource $source) { $viewer = $this->getViewer(); $properties = id(new PHUIPropertyListView())->setViewer($viewer); $definition = $source->getDefinition(); $properties->addProperty(pht('Source Type'), $definition->getName()); return $properties; }
/** * Gives a @{class:NuanceSourceDefinition} object for a given * @{class:NuanceSource}. Note you still need to @{method:setActor} * before the @{class:NuanceSourceDefinition} object will be useful. */ public static function getDefinitionForSource(NuanceSource $source) { $definitions = self::getAllDefinitions(); $map = mpull($definitions, null, 'getSourceTypeConstant'); $definition = $map[$source->getType()]; $definition->setSourceObject($source); return $definition; }
private function buildActionView(NuanceSource $source) { $viewer = $this->getRequest()->getUser(); $id = $source->getID(); $actions = id(new PhabricatorActionListView())->setObjectURI($source->getURI())->setUser($viewer); $can_edit = PhabricatorPolicyFilter::hasCapability($viewer, $source, PhabricatorPolicyCapability::CAN_EDIT); $actions->addAction(id(new PhabricatorActionView())->setName(pht('Edit Source'))->setIcon('fa-pencil')->setHref($this->getApplicationURI("source/edit/{$id}/"))->setDisabled(!$can_edit)->setWorkflow(!$can_edit)); return $actions; }
private function buildActionView(NuanceSource $source) { $viewer = $this->getViewer(); $id = $source->getID(); $actions = id(new PhabricatorActionListView())->setUser($viewer); $can_edit = PhabricatorPolicyFilter::hasCapability($viewer, $source, PhabricatorPolicyCapability::CAN_EDIT); $actions->addAction(id(new PhabricatorActionView())->setName(pht('Edit Source'))->setIcon('fa-pencil')->setHref($this->getApplicationURI("source/edit/{$id}/"))->setDisabled(!$can_edit)->setWorkflow(!$can_edit)); $request = $this->getRequest(); $definition = $source->requireDefinition(); $source_actions = $definition->getSourceViewActions($request); foreach ($source_actions as $source_action) { $actions->addAction($source_action); } return $actions; }
public function processRequest() { $can_edit = $this->requireApplicationCapability(NuanceSourceManageCapability::CAPABILITY); $request = $this->getRequest(); $user = $request->getUser(); $source_id = $this->getSourceID(); $is_new = !$source_id; if ($is_new) { $source = NuanceSource::initializeNewSource($user); } else { $source = id(new NuanceSourceQuery())->setViewer($user)->withIDs(array($source_id))->requireCapabilities(array(PhabricatorPolicyCapability::CAN_VIEW, PhabricatorPolicyCapability::CAN_EDIT))->executeOne(); } if (!$source) { return new Aphront404Response(); } $definition = NuanceSourceDefinition::getDefinitionForSource($source); $definition->setActor($user); $response = $definition->buildEditLayout($request); if ($response instanceof AphrontResponse) { return $response; } $layout = $response; $crumbs = $this->buildApplicationCrumbs(); return $this->buildApplicationPage(array($crumbs, $layout), array('title' => $definition->getEditTitle())); }
protected function newEditableObject() { $viewer = $this->getViewer(); $definition = $this->getSourceDefinition(); if (!$definition) { throw new PhutilInvalidStateException('setSourceDefinition'); } return NuanceSource::initializeNewSource($viewer, $definition); }
public function handleRequest(AphrontRequest $request) { $can_edit = $this->requireApplicationCapability(NuanceSourceManageCapability::CAPABILITY); $viewer = $this->getViewer(); $sources_uri = $this->getApplicationURI('source/'); $source_id = $request->getURIData('id'); $is_new = !$source_id; if ($is_new) { $source = NuanceSource::initializeNewSource($viewer); $type = $request->getURIData('type'); $map = NuanceSourceDefinition::getAllDefinitions(); if (empty($map[$type])) { return new Aphront404Response(); } $source->setType($type); $cancel_uri = $sources_uri; } else { $source = id(new NuanceSourceQuery())->setViewer($viewer)->withIDs(array($source_id))->requireCapabilities(array(PhabricatorPolicyCapability::CAN_VIEW, PhabricatorPolicyCapability::CAN_EDIT))->executeOne(); if (!$source) { return new Aphront404Response(); } $cancel_uri = $source->getURI(); } $definition = NuanceSourceDefinition::getDefinitionForSource($source); $definition->setActor($viewer); $response = $definition->buildEditLayout($request); if ($response instanceof AphrontResponse) { return $response; } $layout = $response; $crumbs = $this->buildApplicationCrumbs(); $crumbs->addTextCrumb(pht('Sources'), $sources_uri); if ($is_new) { $crumbs->addTextCrumb(pht('New')); } else { $crumbs->addTextCrumb($source->getName(), $cancel_uri); $crumbs->addTextCrumb(pht('Edit')); } return $this->buildApplicationPage(array($crumbs, $layout), array('title' => $definition->getEditTitle())); }
public final function newEmptyCursorData(NuanceSource $source) { return id(new NuanceImportCursorData())->setCursorKey($this->getCursorKey())->setCursorType($this->getCursorType())->setSourcePHID($source->getPHID()); }
public function setSourceObject(NuanceSource $source) { $source->setType($this->getSourceTypeConstant()); $this->sourceObject = $source; return $this; }