Improve messaging of special policy rules in applications
Summary: Ref T603. When the user encounters an action which is controlled by a special policy rule in the application, make it easier for applications to show the user what policy controls the action and what the setting is. I took this about halfway before and left a TODO, but turn it into something more useful. Test Plan: See screenshots. Reviewers: btrahan, chad Reviewed By: chad CC: chad, aran Maniphest Tasks: T603 Differential Revision: https://secure.phabricator.com/D7265
This commit is contained in:
@@ -364,9 +364,46 @@ abstract class PhabricatorController extends AphrontController {
|
||||
$capability);
|
||||
}
|
||||
|
||||
protected function explainApplicationCapability($capability, $message) {
|
||||
// TODO: Render a link to get more information.
|
||||
return $message;
|
||||
protected function explainApplicationCapability(
|
||||
$capability,
|
||||
$positive_message,
|
||||
$negative_message) {
|
||||
|
||||
$can_act = $this->hasApplicationCapability($capability);
|
||||
if ($can_act) {
|
||||
$message = $positive_message;
|
||||
$icon_name = 'enable-grey';
|
||||
} else {
|
||||
$message = $negative_message;
|
||||
$icon_name = 'lock';
|
||||
}
|
||||
|
||||
$icon = id(new PHUIIconView())
|
||||
->setSpriteSheet(PHUIIconView::SPRITE_ICONS)
|
||||
->setSpriteIcon($icon_name);
|
||||
|
||||
require_celerity_resource('policy-css');
|
||||
|
||||
$phid = $this->getCurrentApplication()->getPHID();
|
||||
$explain_uri = "/policy/explain/{$phid}/{$capability}/";
|
||||
|
||||
$message = phutil_tag(
|
||||
'div',
|
||||
array(
|
||||
'class' => 'policy-capability-explanation',
|
||||
),
|
||||
array(
|
||||
$icon,
|
||||
javelin_tag(
|
||||
'a',
|
||||
array(
|
||||
'href' => $explain_uri,
|
||||
'sigil' => 'workflow',
|
||||
),
|
||||
$message),
|
||||
));
|
||||
|
||||
return array($can_act, $message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user