Differential D20303 Diff 48501 src/applications/project/controller/trigger/PhabricatorProjectTriggerViewController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/project/controller/trigger/PhabricatorProjectTriggerViewController.php
| Show All 15 Lines | public function handleRequest(AphrontRequest $request) { | ||||
| $trigger = id(new PhabricatorProjectTriggerQuery()) | $trigger = id(new PhabricatorProjectTriggerQuery()) | ||||
| ->setViewer($viewer) | ->setViewer($viewer) | ||||
| ->withIDs(array($id)) | ->withIDs(array($id)) | ||||
| ->executeOne(); | ->executeOne(); | ||||
| if (!$trigger) { | if (!$trigger) { | ||||
| return new Aphront404Response(); | return new Aphront404Response(); | ||||
| } | } | ||||
| $rules_view = $this->newRulesView($trigger); | |||||
| $columns_view = $this->newColumnsView($trigger); | $columns_view = $this->newColumnsView($trigger); | ||||
| $title = $trigger->getObjectName(); | $title = $trigger->getObjectName(); | ||||
| $header = id(new PHUIHeaderView()) | $header = id(new PHUIHeaderView()) | ||||
| ->setHeader($trigger->getDisplayName()); | ->setHeader($trigger->getDisplayName()); | ||||
| $timeline = $this->buildTransactionTimeline( | $timeline = $this->buildTransactionTimeline( | ||||
| $trigger, | $trigger, | ||||
| new PhabricatorProjectTriggerTransactionQuery()); | new PhabricatorProjectTriggerTransactionQuery()); | ||||
| $timeline->setShouldTerminate(true); | $timeline->setShouldTerminate(true); | ||||
| $curtain = $this->newCurtain($trigger); | $curtain = $this->newCurtain($trigger); | ||||
| $column_view = id(new PHUITwoColumnView()) | $column_view = id(new PHUITwoColumnView()) | ||||
| ->setHeader($header) | ->setHeader($header) | ||||
| ->setCurtain($curtain) | ->setCurtain($curtain) | ||||
| ->setMainColumn( | ->setMainColumn( | ||||
| array( | array( | ||||
| $rules_view, | |||||
| $columns_view, | $columns_view, | ||||
| $timeline, | $timeline, | ||||
| )); | )); | ||||
| $crumbs = $this->buildApplicationCrumbs() | $crumbs = $this->buildApplicationCrumbs() | ||||
| ->addTextCrumb($trigger->getObjectName()) | ->addTextCrumb($trigger->getObjectName()) | ||||
| ->setBorder(true); | ->setBorder(true); | ||||
| ▲ Show 20 Lines • Show All 83 Lines • ▼ Show 20 Lines | $header_view = id(new PHUIHeaderView()) | ||||
| ->setHeader(pht('Used by Columns')); | ->setHeader(pht('Used by Columns')); | ||||
| return id(new PHUIObjectBoxView()) | return id(new PHUIObjectBoxView()) | ||||
| ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) | ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) | ||||
| ->setHeader($header_view) | ->setHeader($header_view) | ||||
| ->setTable($table_view); | ->setTable($table_view); | ||||
| } | } | ||||
| private function newRulesView(PhabricatorProjectTrigger $trigger) { | |||||
| $viewer = $this->getViewer(); | |||||
| $rules = $trigger->getTriggerRules(); | |||||
| $rows = array(); | |||||
| foreach ($rules as $rule) { | |||||
| $value = $rule->getRecord()->getValue(); | |||||
| $rows[] = array( | |||||
| $rule->getRuleViewIcon($value), | |||||
| $rule->getRuleViewLabel(), | |||||
| $rule->getRuleViewDescription($value), | |||||
| ); | |||||
| } | |||||
| $table_view = id(new AphrontTableView($rows)) | |||||
| ->setNoDataString(pht('This trigger has no rules.')) | |||||
| ->setHeaders( | |||||
| array( | |||||
| null, | |||||
| pht('Rule'), | |||||
| pht('Action'), | |||||
| )) | |||||
| ->setColumnClasses( | |||||
| array( | |||||
| null, | |||||
| 'pri', | |||||
| 'wide', | |||||
| )); | |||||
| $header_view = id(new PHUIHeaderView()) | |||||
| ->setHeader(pht('Trigger Rules')) | |||||
| ->setSubheader( | |||||
| pht( | |||||
| 'When a card is dropped into a column that uses this trigger, '. | |||||
| 'these actions will be taken.')); | |||||
| return id(new PHUIObjectBoxView()) | |||||
| ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) | |||||
| ->setHeader($header_view) | |||||
| ->setTable($table_view); | |||||
| } | |||||
| private function newCurtain(PhabricatorProjectTrigger $trigger) { | private function newCurtain(PhabricatorProjectTrigger $trigger) { | ||||
| $viewer = $this->getViewer(); | $viewer = $this->getViewer(); | ||||
| $can_edit = PhabricatorPolicyFilter::hasCapability( | $can_edit = PhabricatorPolicyFilter::hasCapability( | ||||
| $viewer, | $viewer, | ||||
| $trigger, | $trigger, | ||||
| PhabricatorPolicyCapability::CAN_EDIT); | PhabricatorPolicyCapability::CAN_EDIT); | ||||
| Show All 19 Lines | |||||