1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-23 15:22:41 +01:00

Fix AphrontCrumbView (phutil_tag)

Summary: Proper fix is to do some layout work in Diffusion. Short of that, make this escape properly.

Test Plan: Viewed various crumbs, no more overescaping for non-diffusion crumbs.

Reviewers: vrana

Reviewed By: vrana

CC: aran

Differential Revision: https://secure.phabricator.com/D4641
This commit is contained in:
epriestley 2013-01-25 17:07:07 -08:00
parent b9f394164f
commit a1ff679f41
2 changed files with 15 additions and 25 deletions

View file

@ -246,9 +246,9 @@ abstract class DiffusionController extends PhabricatorController {
break;
case 'change':
$view_name = 'Change';
$crumb_list[] = $crumb->setRawName(
phutil_escape_html($path).' ('.$commit_link.')'
);
$crumb_list[] = $crumb->setName(
phutil_safe_html(
phutil_escape_html($path).' ('.$commit_link.')'));
return $crumb_list;
}
@ -293,7 +293,7 @@ abstract class DiffusionController extends PhabricatorController {
$path_sections = '/'.implode('/', $path_sections);
$crumb_list[] = id(new PhabricatorCrumbView())
->setRawName($path_sections);
->setName(phutil_safe_html($path_sections));
}
$last_crumb = array_pop($crumb_list);
@ -308,13 +308,14 @@ abstract class DiffusionController extends PhabricatorController {
) + $uri_params),
),
'Jump to HEAD');
$last_crumb->setRawName(
$last_crumb->getNameForRender() . " @ {$commit_link} ({$jump_link})"
);
$name = $last_crumb->getName();
$name = phutil_safe_html($name." @ {$commit_link} ({$jump_link})");
$last_crumb->setName($name);
} else if ($spec['view'] != 'lint') {
$last_crumb->setRawName(
$last_crumb->getNameForRender() . " @ HEAD"
);
$name = $last_crumb->getName();
$name = phutil_safe_html($name.' @ HEAD');
$last_crumb->setName($name);
}
$crumb_list[] = $last_crumb;

View file

@ -6,25 +6,14 @@ final class PhabricatorCrumbView extends AphrontView {
private $href;
private $icon;
private $isLastCrumb;
private $rawName;
/**
* Allows for custom HTML inside the name field.
*
* NOTE: you must handle escaping user text if you use this method.
*/
public function setRawName($raw_name) {
$this->rawName = $raw_name;
return $this;
}
public function setName($name) {
$this->name = $name;
return $this;
}
public function getNameForRender() {
return nonempty($this->rawName, phutil_escape_html($this->name));
public function getName() {
return $this->name;
}
public function setHref($href) {
@ -63,12 +52,12 @@ final class PhabricatorCrumbView extends AphrontView {
'');
}
$name = phutil_render_tag(
$name = phutil_tag(
'span',
array(
'class' => 'phabricator-crumb-name',
),
$this->getNameForRender());
$this->name);
$divider = null;
if (!$this->isLastCrumb) {