Example #1
0
 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);
 }
Example #2
0
 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;
 }