private function buildApplyTranscriptPanel(HeraldTranscript $xscript) { $handles = $this->handles; $adapter = $this->getAdapter(); $rule_type_global = HeraldRuleTypeConfig::RULE_TYPE_GLOBAL; $action_names = $adapter->getActionNameMap($rule_type_global); $list = new PHUIObjectItemListView(); $list->setStates(true); $list->setNoDataString(pht('No actions were taken.')); foreach ($xscript->getApplyTranscripts() as $apply_xscript) { $target = $apply_xscript->getTarget(); switch ($apply_xscript->getAction()) { case HeraldAdapter::ACTION_NOTHING: $target = null; break; case HeraldAdapter::ACTION_FLAG: $target = PhabricatorFlagColor::getColorName($target); break; case HeraldAdapter::ACTION_BLOCK: // Target is a text string. $target = $target; break; default: if (is_array($target) && $target) { foreach ($target as $k => $phid) { if (isset($handles[$phid])) { $target[$k] = $handles[$phid]->getName(); } } $target = implode(', ', $target); } else { if (is_string($target)) { $target = $target; } else { $target = '<empty>'; } } break; } $item = new PHUIObjectItemView(); if ($apply_xscript->getApplied()) { $item->setState(PHUIObjectItemView::STATE_SUCCESS); } else { $item->setState(PHUIObjectItemView::STATE_FAIL); } $rule = idx($action_names, $apply_xscript->getAction(), pht('Unknown Action "%s"', $apply_xscript->getAction())); $item->setHeader(pht('%s: %s', $rule, $target)); $item->addAttribute($apply_xscript->getReason()); $item->addAttribute(pht('Outcome: %s', $apply_xscript->getAppliedReason())); $list->addItem($item); } $box = new PHUIObjectBoxView(); $box->setHeaderText(pht('Actions Taken')); $box->appendChild($list); return $box; }