Index: src/applications/auth/controller/PhabricatorAuthConfirmLinkController.php =================================================================== --- src/applications/auth/controller/PhabricatorAuthConfirmLinkController.php +++ src/applications/auth/controller/PhabricatorAuthConfirmLinkController.php @@ -70,13 +70,8 @@ $dialog->appendChild($form); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Confirm Link')) - ->setHref($panel_uri)); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($provider->getProviderName())); + $crumbs->addTextCrumb(pht('Confirm Link'), $panel_uri); + $crumbs->addTextCrumb($provider->getProviderName()); return $this->buildApplicationPage( array( Index: src/applications/auth/controller/PhabricatorAuthLinkController.php =================================================================== --- src/applications/auth/controller/PhabricatorAuthLinkController.php +++ src/applications/auth/controller/PhabricatorAuthLinkController.php @@ -115,13 +115,8 @@ } $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Link Account')) - ->setHref($panel_uri)); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($provider->getProviderName($name))); + $crumbs->addTextCrumb(pht('Link Account'), $panel_uri); + $crumbs->addTextCrumb($provider->getProviderName($name)); return $this->buildApplicationPage( array( Index: src/applications/auth/controller/PhabricatorAuthLoginController.php =================================================================== --- src/applications/auth/controller/PhabricatorAuthLoginController.php +++ src/applications/auth/controller/PhabricatorAuthLoginController.php @@ -202,20 +202,12 @@ $crumbs = $this->buildApplicationCrumbs(); if ($this->getRequest()->getUser()->isLoggedIn()) { - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Link Account')) - ->setHref($provider->getSettingsURI())); + $crumbs->addTextCrumb(pht('Link Account'), $provider->getSettingsURI()); } else { - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Login')) - ->setHref($this->getApplicationURI('start/'))); + $crumbs->addTextCrumb(pht('Login'), $this->getApplicationURI('start/')); } - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($provider->getProviderName())); + $crumbs->addTextCrumb($provider->getProviderName()); return $this->buildApplicationPage( array( Index: src/applications/auth/controller/PhabricatorAuthRegisterController.php =================================================================== --- src/applications/auth/controller/PhabricatorAuthRegisterController.php +++ src/applications/auth/controller/PhabricatorAuthRegisterController.php @@ -401,17 +401,11 @@ $crumbs = $this->buildApplicationCrumbs(); if ($is_setup) { - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Setup Admin Account'))); + $crumbs->addTextCrumb(pht('Setup Admin Account')); $title = pht('Welcome to Phabricator'); } else { - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Register'))); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($provider->getProviderName())); + $crumbs->addTextCrumb(pht('Register')); + $crumbs->addTextCrumb($provider->getProviderName()); $title = pht('Phabricator Registration'); } Index: src/applications/auth/controller/PhabricatorAuthStartController.php =================================================================== --- src/applications/auth/controller/PhabricatorAuthStartController.php +++ src/applications/auth/controller/PhabricatorAuthStartController.php @@ -126,9 +126,7 @@ $login_message = phutil_safe_html($login_message); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Login'))); + $crumbs->addTextCrumb(pht('Login')); return $this->buildApplicationPage( array( Index: src/applications/auth/controller/PhabricatorEmailLoginController.php =================================================================== --- src/applications/auth/controller/PhabricatorEmailLoginController.php +++ src/applications/auth/controller/PhabricatorEmailLoginController.php @@ -133,9 +133,7 @@ ->setError($e_captcha)); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Reset Password'))); + $crumbs->addTextCrumb(pht('Reset Password')); $dialog = new AphrontDialogView(); $dialog->setUser($request->getUser()); Index: src/applications/auth/controller/PhabricatorEmailVerificationController.php =================================================================== --- src/applications/auth/controller/PhabricatorEmailVerificationController.php +++ src/applications/auth/controller/PhabricatorEmailVerificationController.php @@ -82,9 +82,7 @@ ->appendChild($content); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Verify Email'))); + $crumbs->addTextCrumb(pht('Verify Email')); return $this->buildApplicationPage( array( Index: src/applications/auth/controller/config/PhabricatorAuthEditController.php =================================================================== --- src/applications/auth/controller/config/PhabricatorAuthEditController.php +++ src/applications/auth/controller/config/PhabricatorAuthEditController.php @@ -281,9 +281,7 @@ } $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($crumb)); + $crumbs->addTextCrumb($crumb); $xaction_view = null; if (!$is_new) { Index: src/applications/auth/controller/config/PhabricatorAuthListController.php =================================================================== --- src/applications/auth/controller/config/PhabricatorAuthListController.php +++ src/applications/auth/controller/config/PhabricatorAuthListController.php @@ -86,9 +86,7 @@ pht('Add Authentication Provider')))); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Auth Providers'))); + $crumbs->addTextCrumb(pht('Auth Providers')); $config_name = 'auth.email-domains'; $config_href = '/config/edit/'.$config_name.'/'; Index: src/applications/auth/controller/config/PhabricatorAuthNewController.php =================================================================== --- src/applications/auth/controller/config/PhabricatorAuthNewController.php +++ src/applications/auth/controller/config/PhabricatorAuthNewController.php @@ -87,9 +87,7 @@ ->setForm($form); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Add Provider'))); + $crumbs->addTextCrumb(pht('Add Provider')); return $this->buildApplicationPage( array( Index: src/applications/chatlog/controller/PhabricatorChatLogChannelListController.php =================================================================== --- src/applications/chatlog/controller/PhabricatorChatLogChannelListController.php +++ src/applications/chatlog/controller/PhabricatorChatLogChannelListController.php @@ -23,10 +23,7 @@ $crumbs = $this ->buildApplicationCrumbs() - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Channel List')) - ->setHref($this->getApplicationURI())); + ->addTextCrumb(pht('Channel List'), $this->getApplicationURI()); return $this->buildApplicationPage( array( Index: src/applications/chatlog/controller/PhabricatorChatLogChannelLogController.php =================================================================== --- src/applications/chatlog/controller/PhabricatorChatLogChannelLogController.php +++ src/applications/chatlog/controller/PhabricatorChatLogChannelLogController.php @@ -183,10 +183,7 @@ $crumbs = $this ->buildApplicationCrumbs() - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($channel->getChannelName()) - ->setHref($uri)); + ->addTextCrumb($channel->getChannelName(), $uri); $form = id(new AphrontFormView()) ->setUser($user) Index: src/applications/conduit/controller/PhabricatorConduitAPIController.php =================================================================== --- src/applications/conduit/controller/PhabricatorConduitAPIController.php +++ src/applications/conduit/controller/PhabricatorConduitAPIController.php @@ -380,15 +380,9 @@ $method_uri = $this->getApplicationURI('method/'.$method.'/'); - $crumbs = $this->buildApplicationCrumbs(); - $crumbs - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($method) - ->setHref($method_uri)) - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Call'))); + $crumbs = $this->buildApplicationCrumbs() + ->addTextCrumb($method, $method_uri) + ->addTextCrumb(pht('Call')); return $this->buildApplicationPage( array( Index: src/applications/conduit/controller/PhabricatorConduitConsoleController.php =================================================================== --- src/applications/conduit/controller/PhabricatorConduitConsoleController.php +++ src/applications/conduit/controller/PhabricatorConduitConsoleController.php @@ -116,9 +116,7 @@ ->setForm($form); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($method->getAPIMethodName())); + $crumbs->addTextCrumb($method->getAPIMethodName()); return $this->buildApplicationPage( array( Index: src/applications/conduit/controller/PhabricatorConduitLogController.php =================================================================== --- src/applications/conduit/controller/PhabricatorConduitLogController.php +++ src/applications/conduit/controller/PhabricatorConduitLogController.php @@ -40,9 +40,7 @@ $table = $this->renderCallTable($calls, $conns); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Call Logs'))); + $crumbs->addTextCrumb(pht('Call Logs')); return $this->buildApplicationPage( array( Index: src/applications/conduit/controller/PhabricatorConduitTokenController.php =================================================================== --- src/applications/conduit/controller/PhabricatorConduitTokenController.php +++ src/applications/conduit/controller/PhabricatorConduitTokenController.php @@ -49,9 +49,7 @@ ->appendRemarkupInstructions($post_instructions); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Install Certificate'))); + $crumbs->addTextCrumb(pht('Install Certificate')); $object_box = id(new PHUIObjectBoxView()) ->setHeaderText(pht('Certificate Token')) Index: src/applications/config/controller/PhabricatorConfigAllController.php =================================================================== --- src/applications/config/controller/PhabricatorConfigAllController.php +++ src/applications/config/controller/PhabricatorConfigAllController.php @@ -56,9 +56,7 @@ $crumbs = $this ->buildApplicationCrumbs() - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title)); + ->addTextCrumb($title); $panel = new AphrontPanelView(); $panel->appendChild($table); Index: src/applications/config/controller/PhabricatorConfigEditController.php =================================================================== --- src/applications/config/controller/PhabricatorConfigEditController.php +++ src/applications/config/controller/PhabricatorConfigEditController.php @@ -199,22 +199,13 @@ ->setForm($form); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Config')) - ->setHref($this->getApplicationURI())); + $crumbs->addTextCrumb(pht('Config'), $this->getApplicationURI()); if ($group) { - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($group->getName()) - ->setHref($group_uri)); + $crumbs->addTextCrumb($group->getName(), $group_uri); } - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($this->key) - ->setHref('/config/edit/'.$this->key)); + $crumbs->addTextCrumb($this->key, '/config/edit/'.$this->key); $xactions = id(new PhabricatorConfigTransactionQuery()) ->withObjectPHIDs(array($config_entry->getPHID())) Index: src/applications/config/controller/PhabricatorConfigGroupController.php =================================================================== --- src/applications/config/controller/PhabricatorConfigGroupController.php +++ src/applications/config/controller/PhabricatorConfigGroupController.php @@ -28,14 +28,8 @@ $crumbs = $this ->buildApplicationCrumbs() - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Config')) - ->setHref($this->getApplicationURI())) - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($options->getName()) - ->setHref($this->getApplicationURI())); + ->addTextCrumb(pht('Config'), $this->getApplicationURI()) + ->addTextCrumb($options->getName(), $this->getApplicationURI()); return $this->buildApplicationPage( array( Index: src/applications/config/controller/PhabricatorConfigIssueListController.php =================================================================== --- src/applications/config/controller/PhabricatorConfigIssueListController.php +++ src/applications/config/controller/PhabricatorConfigIssueListController.php @@ -30,10 +30,7 @@ $crumbs = $this ->buildApplicationCrumbs($nav) - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Setup')) - ->setHref($this->getApplicationURI('issue/'))); + ->addTextCrumb(pht('Setup'), $this->getApplicationURI('issue/')); $nav->setCrumbs($crumbs); Index: src/applications/config/controller/PhabricatorConfigIssueViewController.php =================================================================== --- src/applications/config/controller/PhabricatorConfigIssueViewController.php +++ src/applications/config/controller/PhabricatorConfigIssueViewController.php @@ -38,14 +38,8 @@ $crumbs = $this ->buildApplicationCrumbs() - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Setup Issues')) - ->setHref($this->getApplicationURI('issue/'))) - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title) - ->setHref($request->getRequestURI())); + ->addTextCrumb(pht('Setup Issues'), $this->getApplicationURI('issue/')) + ->addTextCrumb($title, $request->getRequestURI()); return $this->buildApplicationPage( array( Index: src/applications/config/controller/PhabricatorConfigListController.php =================================================================== --- src/applications/config/controller/PhabricatorConfigListController.php +++ src/applications/config/controller/PhabricatorConfigListController.php @@ -26,10 +26,7 @@ $crumbs = $this ->buildApplicationCrumbs() - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Config')) - ->setHref($this->getApplicationURI())); + ->addTextCrumb(pht('Config'), $this->getApplicationURI()); $nav->setCrumbs($crumbs); Index: src/applications/countdown/controller/PhabricatorCountdownEditController.php =================================================================== --- src/applications/countdown/controller/PhabricatorCountdownEditController.php +++ src/applications/countdown/controller/PhabricatorCountdownEditController.php @@ -90,18 +90,11 @@ $cancel_uri = '/countdown/'; if ($countdown->getID()) { $cancel_uri = '/countdown/'.$countdown->getID().'/'; - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName('C'.$countdown->getID()) - ->setHref($cancel_uri)); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit'))); + $crumbs->addTextCrumb('C'.$countdown->getID(), $cancel_uri); + $crumbs->addTextCrumb(pht('Edit')); $submit_label = pht('Save Changes'); } else { - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Create Countdown'))); + $crumbs->addTextCrumb(pht('Create Countdown')); $submit_label = pht('Create Countdown'); } Index: src/applications/countdown/controller/PhabricatorCountdownViewController.php =================================================================== --- src/applications/countdown/controller/PhabricatorCountdownViewController.php +++ src/applications/countdown/controller/PhabricatorCountdownViewController.php @@ -36,9 +36,7 @@ $crumbs = $this ->buildApplicationCrumbs() - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName("C{$id}")); + ->addTextCrumb("C{$id}"); $header = id(new PHUIHeaderView()) ->setHeader($title) Index: src/applications/daemon/controller/PhabricatorDaemonConsoleController.php =================================================================== --- src/applications/daemon/controller/PhabricatorDaemonConsoleController.php +++ src/applications/daemon/controller/PhabricatorDaemonConsoleController.php @@ -211,9 +211,7 @@ $queued_panel->setNoBackground(); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Console'))); + $crumbs->addTextCrumb(pht('Console')); $nav = $this->buildSideNavView(); $nav->selectFilter('/'); Index: src/applications/daemon/controller/PhabricatorDaemonLogEventViewController.php =================================================================== --- src/applications/daemon/controller/PhabricatorDaemonLogEventViewController.php +++ src/applications/daemon/controller/PhabricatorDaemonLogEventViewController.php @@ -29,14 +29,11 @@ $daemon_id = $event->getLogID(); - $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Daemon %s', $daemon_id)) - ->setHref($this->getApplicationURI("log/{$daemon_id}/"))); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Event %s', $event->getID()))); + $crumbs = $this->buildApplicationCrumbs() + ->addTextCrumb( + pht('Daemon %s', $daemon_id), + $this->getApplicationURI("log/{$daemon_id}/")) + ->addTextCrumb(pht('Event %s', $event->getID())); return $this->buildApplicationPage( Index: src/applications/daemon/controller/PhabricatorDaemonLogListController.php =================================================================== --- src/applications/daemon/controller/PhabricatorDaemonLogListController.php +++ src/applications/daemon/controller/PhabricatorDaemonLogListController.php @@ -19,9 +19,7 @@ $daemon_table->setDaemonLogs($logs); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('All Daemons'))); + $crumbs->addTextCrumb(pht('All Daemons')); $nav = $this->buildSideNavView(); $nav->selectFilter('log'); Index: src/applications/daemon/controller/PhabricatorDaemonLogViewController.php =================================================================== --- src/applications/daemon/controller/PhabricatorDaemonLogViewController.php +++ src/applications/daemon/controller/PhabricatorDaemonLogViewController.php @@ -26,9 +26,7 @@ $log->getID()); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Daemon %s', $log->getID()))); + $crumbs->addTextCrumb(pht('Daemon %s', $log->getID())); $header = id(new PHUIHeaderView()) ->setHeader($log->getDaemon()); Index: src/applications/daemon/controller/PhabricatorWorkerTaskDetailController.php =================================================================== --- src/applications/daemon/controller/PhabricatorWorkerTaskDetailController.php +++ src/applications/daemon/controller/PhabricatorWorkerTaskDetailController.php @@ -58,9 +58,7 @@ } $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title)); + $crumbs->addTextCrumb($title); return $this->buildApplicationPage( array( Index: src/applications/differential/controller/DifferentialDiffCreateController.php =================================================================== --- src/applications/differential/controller/DifferentialDiffCreateController.php +++ src/applications/differential/controller/DifferentialDiffCreateController.php @@ -88,9 +88,7 @@ ->setForm($form); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Create Diff'))); + $crumbs->addTextCrumb(pht('Create Diff')); if ($errors) { $errors = id(new AphrontErrorView()) Index: src/applications/differential/controller/DifferentialDiffViewController.php =================================================================== --- src/applications/differential/controller/DifferentialDiffViewController.php +++ src/applications/differential/controller/DifferentialDiffViewController.php @@ -146,9 +146,7 @@ ->setUser($request->getUser()); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Diff %d', $diff->getID()))); + $crumbs->addTextCrumb(pht('Diff %d', $diff->getID())); return $this->buildApplicationPage( array( Index: src/applications/differential/controller/DifferentialRevisionEditController.php =================================================================== --- src/applications/differential/controller/DifferentialRevisionEditController.php +++ src/applications/differential/controller/DifferentialRevisionEditController.php @@ -153,16 +153,14 @@ if ($revision->getID()) { if ($diff) { $title = pht('Update Differential Revision'); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName('D'.$revision->getID()) - ->setHref('/differential/diff/'.$diff->getID().'/')); + $crumbs->addTextCrumb( + 'D'.$revision->getID(), + '/differential/diff/'.$diff->getID().'/'); } else { $title = pht('Edit Differential Revision'); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName('D'.$revision->getID()) - ->setHref('/D'.$revision->getID())); + $crumbs->addTextCrumb( + 'D'.$revision->getID(), + '/D'.$revision->getID()); } } else { $title = pht('Create New Differential Revision'); @@ -173,9 +171,7 @@ ->setFormError($error_view) ->setForm($form); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title)); + $crumbs->addTextCrumb($title); return $this->buildApplicationPage( array( Index: src/applications/differential/controller/DifferentialRevisionViewController.php =================================================================== --- src/applications/differential/controller/DifferentialRevisionViewController.php +++ src/applications/differential/controller/DifferentialRevisionViewController.php @@ -421,10 +421,7 @@ ); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($object_id) - ->setHref('/'.$object_id)); + $crumbs->addTextCrumb($object_id, '/'.$object_id); $prefs = $user->loadPreferences(); Index: src/applications/diffusion/controller/DiffusionLintController.php =================================================================== --- src/applications/diffusion/controller/DiffusionLintController.php +++ src/applications/diffusion/controller/DiffusionLintController.php @@ -139,9 +139,7 @@ if ($this->diffusionRequest) { $title[] = $drequest->getCallsign(); } else { - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('All Lint'))); + $crumbs->addTextCrumb(pht('All Lint')); } if ($this->diffusionRequest) { Index: src/applications/diffusion/controller/DiffusionRepositoryCreateController.php =================================================================== --- src/applications/diffusion/controller/DiffusionRepositoryCreateController.php +++ src/applications/diffusion/controller/DiffusionRepositoryCreateController.php @@ -181,9 +181,7 @@ } $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title)); + $crumbs->addTextCrumb($title); return $this->buildApplicationPage( array( Index: src/applications/diffusion/controller/DiffusionRepositoryEditActionsController.php =================================================================== --- src/applications/diffusion/controller/DiffusionRepositoryEditActionsController.php +++ src/applications/diffusion/controller/DiffusionRepositoryEditActionsController.php @@ -59,9 +59,7 @@ $content = array(); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit Actions'))); + $crumbs->addTextCrumb(pht('Edit Actions')); $title = pht('Edit Actions (%s)', $repository->getName()); Index: src/applications/diffusion/controller/DiffusionRepositoryEditBasicController.php =================================================================== --- src/applications/diffusion/controller/DiffusionRepositoryEditBasicController.php +++ src/applications/diffusion/controller/DiffusionRepositoryEditBasicController.php @@ -67,9 +67,7 @@ } $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit Basics'))); + $crumbs->addTextCrumb(pht('Edit Basics')); $title = pht('Edit %s', $repository->getName()); Index: src/applications/diffusion/controller/DiffusionRepositoryEditBranchesController.php =================================================================== --- src/applications/diffusion/controller/DiffusionRepositoryEditBranchesController.php +++ src/applications/diffusion/controller/DiffusionRepositoryEditBranchesController.php @@ -88,9 +88,7 @@ $content = array(); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit Branches'))); + $crumbs->addTextCrumb(pht('Edit Branches')); $title = pht('Edit Branches (%s)', $repository->getName()); Index: src/applications/diffusion/controller/DiffusionRepositoryEditController.php =================================================================== --- src/applications/diffusion/controller/DiffusionRepositoryEditController.php +++ src/applications/diffusion/controller/DiffusionRepositoryEditController.php @@ -11,20 +11,12 @@ $repo_uri = $this->getRepositoryControllerURI($repository, ''); $edit_uri = $this->getRepositoryControllerURI($repository, 'edit/'); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName('r'.$repository->getCallsign()) - ->setHref($repo_uri)); + $crumbs->addTextCrumb('r'.$repository->getCallsign(), $repo_uri); if ($is_main) { - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit Repository'))); + $crumbs->addTextCrumb(pht('Edit Repository')); } else { - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit')) - ->setHref($edit_uri)); + $crumbs->addTextCrumb(pht('Edit'), $edit_uri); } } Index: src/applications/diffusion/controller/DiffusionRepositoryEditEncodingController.php =================================================================== --- src/applications/diffusion/controller/DiffusionRepositoryEditEncodingController.php +++ src/applications/diffusion/controller/DiffusionRepositoryEditEncodingController.php @@ -57,9 +57,7 @@ } $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit Encoding'))); + $crumbs->addTextCrumb(pht('Edit Encoding')); $title = pht('Edit %s', $repository->getName()); Index: src/applications/diffusion/controller/DiffusionRepositoryEditHostingController.php =================================================================== --- src/applications/diffusion/controller/DiffusionRepositoryEditHostingController.php +++ src/applications/diffusion/controller/DiffusionRepositoryEditHostingController.php @@ -67,9 +67,7 @@ } $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit Hosting'))); + $crumbs->addTextCrumb(pht('Edit Hosting')); $title = pht('Edit Hosting (%s)', $repository->getName()); @@ -172,9 +170,7 @@ } $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit Protocols'))); + $crumbs->addTextCrumb(pht('Edit Protocols')); $title = pht('Edit Protocols (%s)', $repository->getName()); Index: src/applications/diffusion/controller/DiffusionRepositoryEditLocalController.php =================================================================== --- src/applications/diffusion/controller/DiffusionRepositoryEditLocalController.php +++ src/applications/diffusion/controller/DiffusionRepositoryEditLocalController.php @@ -29,9 +29,7 @@ $errors = array(); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit Local'))); + $crumbs->addTextCrumb(pht('Edit Local')); $title = pht('Edit %s', $repository->getName()); Index: src/applications/diffusion/controller/DiffusionRepositoryEditPolicyController.php =================================================================== --- src/applications/diffusion/controller/DiffusionRepositoryEditPolicyController.php +++ src/applications/diffusion/controller/DiffusionRepositoryEditPolicyController.php @@ -67,9 +67,7 @@ $content = array(); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit Policies'))); + $crumbs->addTextCrumb(pht('Edit Policies')); $title = pht('Edit Policies (%s)', $repository->getName()); Index: src/applications/diffusion/controller/DiffusionRepositoryEditSubversionController.php =================================================================== --- src/applications/diffusion/controller/DiffusionRepositoryEditSubversionController.php +++ src/applications/diffusion/controller/DiffusionRepositoryEditSubversionController.php @@ -70,9 +70,7 @@ $content = array(); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit Subversion Info'))); + $crumbs->addTextCrumb(pht('Edit Subversion Info')); $title = pht('Edit Subversion Info (%s)', $repository->getName()); Index: src/applications/diffusion/controller/DiffusionRepositoryNewController.php =================================================================== --- src/applications/diffusion/controller/DiffusionRepositoryNewController.php +++ src/applications/diffusion/controller/DiffusionRepositoryNewController.php @@ -67,9 +67,7 @@ ->addCancelButton($this->getApplicationURI())); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('New Repository'))); + $crumbs->addTextCrumb(pht('New Repository')); $form_box = id(new PHUIObjectBoxView()) ->setHeaderText(pht('Create or Import Repository')) Index: src/applications/diviner/controller/DivinerAtomController.php =================================================================== --- src/applications/diviner/controller/DivinerAtomController.php +++ src/applications/diviner/controller/DivinerAtomController.php @@ -59,18 +59,15 @@ $atom = $symbol->getAtom(); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($book->getShortTitle()) - ->setHref('/book/'.$book->getName().'/')); + $crumbs->addTextCrumb( + $book->getShortTitle(), + '/book/'.$book->getName().'/'); $atom_short_title = $atom->getDocblockMetaValue( 'short', $symbol->getTitle()); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($atom_short_title)); + $crumbs->addTextCrumb($atom_short_title); $header = id(new PHUIHeaderView()) ->setHeader($this->renderFullSignature($symbol)) Index: src/applications/diviner/controller/DivinerBookController.php =================================================================== --- src/applications/diviner/controller/DivinerBookController.php +++ src/applications/diviner/controller/DivinerBookController.php @@ -27,10 +27,9 @@ $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($book->getShortTitle()) - ->setHref('/book/'.$book->getName().'/')); + $crumbs->addTextCrumb( + $book->getShortTitle(), + '/book/'.$book->getName().'/'); $header = id(new PHUIHeaderView()) ->setHeader($book->getTitle()) Index: src/applications/diviner/controller/DivinerLegacyController.php =================================================================== --- src/applications/diviner/controller/DivinerLegacyController.php +++ src/applications/diviner/controller/DivinerLegacyController.php @@ -43,9 +43,7 @@ } $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Documentation'))); + $crumbs->addTextCrumb(pht('Documentation')); $header = id(new PHUIHeaderView()) ->setHeader(pht('Documentation')); Index: src/applications/drydock/controller/DrydockBlueprintEditController.php =================================================================== --- src/applications/drydock/controller/DrydockBlueprintEditController.php +++ src/applications/drydock/controller/DrydockBlueprintEditController.php @@ -80,12 +80,8 @@ $title = pht('Edit Blueprint'); $header = pht('Edit Blueprint %d', $blueprint->getID()); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Blueprint %d', $blueprint->getID()))); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit'))); + $crumbs->addTextCrumb(pht('Blueprint %d', $blueprint->getID())); + $crumbs->addTextCrumb(pht('Edit')); if ($request->isAjax()) { $dialog = id(new AphrontDialogView()) Index: src/applications/drydock/controller/DrydockBlueprintListController.php =================================================================== --- src/applications/drydock/controller/DrydockBlueprintListController.php +++ src/applications/drydock/controller/DrydockBlueprintListController.php @@ -18,10 +18,7 @@ $blueprint_list = $this->buildBlueprintListView($blueprints); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title) - ->setHref($request->getRequestURI())); + $crumbs->addTextCrumb($title, $request->getRequestURI()); $crumbs->addAction( id(new PHUIListItemView()) Index: src/applications/drydock/controller/DrydockBlueprintViewController.php =================================================================== --- src/applications/drydock/controller/DrydockBlueprintViewController.php +++ src/applications/drydock/controller/DrydockBlueprintViewController.php @@ -42,9 +42,7 @@ $crumbs = $this->buildApplicationCrumbs(); $crumbs->setActionList($actions); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Blueprint %d', $blueprint->getID()))); + $crumbs->addTextCrumb(pht('Blueprint %d', $blueprint->getID())); $object_box = id(new PHUIObjectBoxView()) ->setHeader($header) Index: src/applications/drydock/controller/DrydockLeaseListController.php =================================================================== --- src/applications/drydock/controller/DrydockLeaseListController.php +++ src/applications/drydock/controller/DrydockLeaseListController.php @@ -31,10 +31,7 @@ )); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title) - ->setHref($request->getRequestURI())); + $crumbs->addTextCrumb($title, $request->getRequestURI()); $nav->setCrumbs($crumbs); return $this->buildApplicationPage( Index: src/applications/drydock/controller/DrydockLeaseViewController.php =================================================================== --- src/applications/drydock/controller/DrydockLeaseViewController.php +++ src/applications/drydock/controller/DrydockLeaseViewController.php @@ -40,10 +40,7 @@ $crumbs = $this->buildApplicationCrumbs(); $crumbs->setActionList($actions); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title) - ->setHref($lease_uri)); + $crumbs->addTextCrumb($title, $lease_uri); $object_box = id(new PHUIObjectBoxView()) ->setHeader($header) Index: src/applications/drydock/controller/DrydockLogController.php =================================================================== --- src/applications/drydock/controller/DrydockLogController.php +++ src/applications/drydock/controller/DrydockLogController.php @@ -43,10 +43,7 @@ )); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title) - ->setHref($this->getApplicationURI('/logs/'))); + $crumbs->addTextCrumb($title, $this->getApplicationURI('/logs/')); $nav->setCrumbs($crumbs); return $this->buildApplicationPage( Index: src/applications/drydock/controller/DrydockResourceListController.php =================================================================== --- src/applications/drydock/controller/DrydockResourceListController.php +++ src/applications/drydock/controller/DrydockResourceListController.php @@ -20,10 +20,7 @@ $resource_list = $this->buildResourceListView($resources); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title) - ->setHref($request->getRequestURI())); + $crumbs->addTextCrumb($title, $request->getRequestURI()); $nav = $this->buildSideNav('resource'); $nav->setCrumbs($crumbs); Index: src/applications/drydock/controller/DrydockResourceViewController.php =================================================================== --- src/applications/drydock/controller/DrydockResourceViewController.php +++ src/applications/drydock/controller/DrydockResourceViewController.php @@ -49,9 +49,7 @@ $crumbs = $this->buildApplicationCrumbs(); $crumbs->setActionList($actions); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Resource %d', $resource->getID()))); + $crumbs->addTextCrumb(pht('Resource %d', $resource->getID())); $object_box = id(new PHUIObjectBoxView()) ->setHeader($header) Index: src/applications/feed/controller/PhabricatorFeedDetailController.php =================================================================== --- src/applications/feed/controller/PhabricatorFeedDetailController.php +++ src/applications/feed/controller/PhabricatorFeedDetailController.php @@ -30,9 +30,7 @@ $feed_view = phutil_tag_div('phabricator-feed-frame', $feed_view); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title)); + $crumbs->addTextCrumb($title); return $this->buildApplicationPage( Index: src/applications/files/controller/PhabricatorFileInfoController.php =================================================================== --- src/applications/files/controller/PhabricatorFileInfoController.php +++ src/applications/files/controller/PhabricatorFileInfoController.php @@ -47,10 +47,9 @@ $timeline = $this->buildTransactionView($file, $xactions); $crumbs = $this->buildApplicationCrumbs(); $crumbs->setActionList($actions); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName('F'.$file->getID()) - ->setHref($this->getApplicationURI("/info/{$phid}/"))); + $crumbs->addTextCrumb( + 'F'.$file->getID(), + $this->getApplicationURI("/info/{$phid}/")); $object_box = id(new PHUIObjectBoxView()) ->setHeader($header); Index: src/applications/files/controller/PhabricatorFileUploadController.php =================================================================== --- src/applications/files/controller/PhabricatorFileUploadController.php +++ src/applications/files/controller/PhabricatorFileUploadController.php @@ -60,10 +60,7 @@ ->appendChild($instructions); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Upload')) - ->setHref($request->getRequestURI())); + $crumbs->addTextCrumb(pht('Upload'), $request->getRequestURI()); $title = pht('Upload File'); Index: src/applications/harbormaster/controller/HarbormasterBuildViewController.php =================================================================== --- src/applications/harbormaster/controller/HarbormasterBuildViewController.php +++ src/applications/harbormaster/controller/HarbormasterBuildViewController.php @@ -37,9 +37,7 @@ $this->buildPropertyLists($box, $build, $actions); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title)); + $crumbs->addTextCrumb($title); $build_targets = id(new HarbormasterBuildTargetQuery()) ->setViewer($viewer) Index: src/applications/harbormaster/controller/HarbormasterBuildableEditController.php =================================================================== --- src/applications/harbormaster/controller/HarbormasterBuildableEditController.php +++ src/applications/harbormaster/controller/HarbormasterBuildableEditController.php @@ -119,18 +119,11 @@ $crumbs = $this->buildApplicationCrumbs(); if ($is_new) { - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('New Buildable'))); + $crumbs->addTextCrumb(pht('New Buildable')); } else { $id = $buildable->getID(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName("B{$id}") - ->setHref("/B{$id}")); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit'))); + $crumbs->addTextCrumb("B{$id}", "/B{$id}"); + $crumbs->addTextCrumb(pht('Edit')); } return $this->buildApplicationPage( Index: src/applications/harbormaster/controller/HarbormasterBuildableViewController.php =================================================================== --- src/applications/harbormaster/controller/HarbormasterBuildableViewController.php +++ src/applications/harbormaster/controller/HarbormasterBuildableViewController.php @@ -94,9 +94,7 @@ $this->buildPropertyLists($box, $buildable, $actions); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName("B{$id}")); + $crumbs->addTextCrumb("B{$id}"); return $this->buildApplicationPage( array( Index: src/applications/harbormaster/controller/HarbormasterPlanController.php =================================================================== --- src/applications/harbormaster/controller/HarbormasterPlanController.php +++ src/applications/harbormaster/controller/HarbormasterPlanController.php @@ -5,10 +5,9 @@ public function buildApplicationCrumbs() { $crumbs = parent::buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Build Plans')) - ->setHref($this->getApplicationURI('plan/'))); + $crumbs->addTextCrumb( + pht('Build Plans'), + $this->getApplicationURI('plan/')); return $crumbs; } Index: src/applications/harbormaster/controller/HarbormasterPlanEditController.php =================================================================== --- src/applications/harbormaster/controller/HarbormasterPlanEditController.php +++ src/applications/harbormaster/controller/HarbormasterPlanEditController.php @@ -93,18 +93,13 @@ $crumbs = $this->buildApplicationCrumbs(); if ($is_new) { - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('New Build Plan'))); + $crumbs->addTextCrumb(pht('New Build Plan')); } else { $id = $plan->getID(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht("Plan %d", $id)) - ->setHref($this->getApplicationURI("plan/{$id}/"))); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit'))); + $crumbs->addTextCrumb( + pht("Plan %d", $id), + $this->getApplicationURI("plan/{$id}/")); + $crumbs->addTextCrumb(pht('Edit')); } return $this->buildApplicationPage( Index: src/applications/harbormaster/controller/HarbormasterPlanViewController.php =================================================================== --- src/applications/harbormaster/controller/HarbormasterPlanViewController.php +++ src/applications/harbormaster/controller/HarbormasterPlanViewController.php @@ -51,9 +51,7 @@ $this->buildPropertyLists($box, $plan, $actions); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht("Plan %d", $id))); + $crumbs->addTextCrumb(pht("Plan %d", $id)); $step_list = $this->buildStepList($plan); Index: src/applications/harbormaster/controller/HarbormasterStepEditController.php =================================================================== --- src/applications/harbormaster/controller/HarbormasterStepEditController.php +++ src/applications/harbormaster/controller/HarbormasterStepEditController.php @@ -132,13 +132,10 @@ $crumbs = $this->buildApplicationCrumbs(); $id = $plan->getID(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht("Plan %d", $id)) - ->setHref($this->getApplicationURI("plan/{$id}/"))); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit Step'))); + $crumbs->addTextCrumb( + pht("Plan %d", $id), + $this->getApplicationURI("plan/{$id}/")); + $crumbs->addTextCrumb(pht('Edit Step')); return $this->buildApplicationPage( array( Index: src/applications/herald/controller/HeraldNewController.php =================================================================== --- src/applications/herald/controller/HeraldNewController.php +++ src/applications/herald/controller/HeraldNewController.php @@ -89,9 +89,7 @@ $crumbs = $this ->buildApplicationCrumbs() - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Create Rule'))); + ->addTextCrumb(pht('Create Rule')); return $this->buildApplicationPage( array( Index: src/applications/herald/controller/HeraldRuleController.php =================================================================== --- src/applications/herald/controller/HeraldRuleController.php +++ src/applications/herald/controller/HeraldRuleController.php @@ -194,9 +194,7 @@ $crumbs = $this ->buildApplicationCrumbs() - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title)); + ->addTextCrumb($title); return $this->buildApplicationPage( array( Index: src/applications/herald/controller/HeraldRuleEditHistoryController.php =================================================================== --- src/applications/herald/controller/HeraldRuleEditHistoryController.php +++ src/applications/herald/controller/HeraldRuleEditHistoryController.php @@ -37,10 +37,9 @@ $crumbs = $this ->buildApplicationCrumbs($can_create = false) - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit History')) - ->setHref($this->getApplicationURI('herald/history'))); + ->addTextCrumb( + pht('Edit History'), + $this->getApplicationURI('herald/history')); $nav = $this->buildSideNavView(); $nav->selectFilter('history'); Index: src/applications/herald/controller/HeraldRuleViewController.php =================================================================== --- src/applications/herald/controller/HeraldRuleViewController.php +++ src/applications/herald/controller/HeraldRuleViewController.php @@ -44,9 +44,7 @@ $id = $rule->getID(); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName("H{$id}")); + $crumbs->addTextCrumb("H{$id}"); $object_box = id(new PHUIObjectBoxView()) ->setHeader($header) Index: src/applications/herald/controller/HeraldTestConsoleController.php =================================================================== --- src/applications/herald/controller/HeraldTestConsoleController.php +++ src/applications/herald/controller/HeraldTestConsoleController.php @@ -112,13 +112,10 @@ ->setForm($form); $crumbs = id($this->buildApplicationCrumbs()) - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Transcripts')) - ->setHref($this->getApplicationURI('/transcript/'))) - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Test Console'))); + ->addTextCrumb( + pht('Transcripts'), + $this->getApplicationURI('/transcript/')) + ->addTextCrumb(pht('Test Console')); return $this->buildApplicationPage( $box, Index: src/applications/herald/controller/HeraldTranscriptController.php =================================================================== --- src/applications/herald/controller/HeraldTranscriptController.php +++ src/applications/herald/controller/HeraldTranscriptController.php @@ -97,13 +97,10 @@ } $crumbs = id($this->buildApplicationCrumbs()) - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Transcripts')) - ->setHref($this->getApplicationURI('/transcript/'))) - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($xscript->getID())); + ->addTextCrumb( + pht('Transcripts'), + $this->getApplicationURI('/transcript/')) + ->addTextCrumb($xscript->getID()); $nav->setCrumbs($crumbs); return $this->buildApplicationPage( Index: src/applications/herald/controller/HeraldTranscriptListController.php =================================================================== --- src/applications/herald/controller/HeraldTranscriptListController.php +++ src/applications/herald/controller/HeraldTranscriptListController.php @@ -72,9 +72,7 @@ $nav->appendChild($panel); $crumbs = id($this->buildApplicationCrumbs()) - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Transcripts'))); + ->addTextCrumb(pht('Transcripts')); $nav->setCrumbs($crumbs); return $this->buildApplicationPage( Index: src/applications/legalpad/controller/LegalpadDocumentEditController.php =================================================================== --- src/applications/legalpad/controller/LegalpadDocumentEditController.php +++ src/applications/legalpad/controller/LegalpadDocumentEditController.php @@ -173,8 +173,7 @@ ->setForm($form); $crumbs = $this->buildApplicationCrumbs($this->buildSideNav()); - $crumbs->addCrumb( - id(new PhabricatorCrumbView())->setName($short)); + $crumbs->addTextCrumb($short); $preview = id(new PHUIRemarkupPreviewPanel()) Index: src/applications/legalpad/controller/LegalpadDocumentViewController.php =================================================================== --- src/applications/legalpad/controller/LegalpadDocumentViewController.php +++ src/applications/legalpad/controller/LegalpadDocumentViewController.php @@ -81,10 +81,9 @@ $crumbs = $this->buildApplicationCrumbs($this->buildSideNav()); $crumbs->setActionList($actions); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName('L'.$document->getID()) - ->setHref($this->getApplicationURI('view/'.$document->getID()))); + $crumbs->addTextCrumb( + 'L'.$document->getID(), + $this->getApplicationURI('view/'.$document->getID())); $object_box = id(new PHUIObjectBoxView()) ->setHeader($header) Index: src/applications/macro/controller/PhabricatorMacroAudioController.php =================================================================== --- src/applications/macro/controller/PhabricatorMacroAudioController.php +++ src/applications/macro/controller/PhabricatorMacroAudioController.php @@ -132,15 +132,8 @@ $title = pht('Edit Audio Behavior'); $crumb = pht('Edit Audio'); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setHref($view_uri) - ->setName(pht('Macro "%s"', $macro->getName()))); - - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setHref($request->getRequestURI()) - ->setName($crumb)); + $crumbs->addTextCrumb(pht('Macro "%s"', $macro->getName()), $view_uri); + $crumbs->addTextCrumb($crumb, $request->getRequestURI()); $upload_form = id(new AphrontFormView()) ->setEncType('multipart/form-data') Index: src/applications/macro/controller/PhabricatorMacroEditController.php =================================================================== --- src/applications/macro/controller/PhabricatorMacroEditController.php +++ src/applications/macro/controller/PhabricatorMacroEditController.php @@ -219,19 +219,13 @@ $title = pht('Edit Image Macro'); $crumb = pht('Edit Macro'); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setHref($view_uri) - ->setName(pht('Macro "%s"', $macro->getName()))); + $crumbs->addTextCrumb(pht('Macro "%s"', $macro->getName()), $view_uri); } else { $title = pht('Create Image Macro'); $crumb = pht('Create Macro'); } - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setHref($request->getRequestURI()) - ->setName($crumb)); + $crumbs->addCrumb($crumb, $request->getRequestURI()); $upload = null; if ($macro->getID()) { Index: src/applications/macro/controller/PhabricatorMacroViewController.php =================================================================== --- src/applications/macro/controller/PhabricatorMacroViewController.php +++ src/applications/macro/controller/PhabricatorMacroViewController.php @@ -30,10 +30,9 @@ $crumbs = $this->buildApplicationCrumbs(); $crumbs->setActionList($actions); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setHref($this->getApplicationURI('/view/'.$macro->getID().'/')) - ->setName($title_short)); + $crumbs->addTextCrumb( + $title_short, + $this->getApplicationURI('/view/'.$macro->getID().'/')); $properties = $this->buildPropertyView($macro, $actions); if ($file) { Index: src/applications/mailinglists/controller/PhabricatorMailingListsEditController.php =================================================================== --- src/applications/mailinglists/controller/PhabricatorMailingListsEditController.php +++ src/applications/mailinglists/controller/PhabricatorMailingListsEditController.php @@ -117,13 +117,9 @@ ->addCancelButton($this->getApplicationURI())); if ($list->getID()) { - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit Mailing List'))); + $crumbs->addTextCrumb(pht('Edit Mailing List')); } else { - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Create Mailing List'))); + $crumbs->addTextCrumb(pht('Create Mailing List')); } $form_box = id(new PHUIObjectBoxView()) Index: src/applications/maniphest/controller/ManiphestBatchEditController.php =================================================================== --- src/applications/maniphest/controller/ManiphestBatchEditController.php +++ src/applications/maniphest/controller/ManiphestBatchEditController.php @@ -144,9 +144,7 @@ $title = pht('Batch Editor'); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title)); + $crumbs->addTextCrumb($title); $form_box = id(new PHUIObjectBoxView()) ->setHeaderText(pht('Batch Edit Tasks')) Index: src/applications/maniphest/controller/ManiphestReportController.php =================================================================== --- src/applications/maniphest/controller/ManiphestReportController.php +++ src/applications/maniphest/controller/ManiphestReportController.php @@ -55,9 +55,7 @@ $nav->appendChild($core); $nav->setCrumbs( $this->buildApplicationCrumbs() - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Reports')))); + ->addTextCrumb(pht('Reports'))); return $this->buildApplicationPage( $nav, Index: src/applications/maniphest/controller/ManiphestTaskDetailController.php =================================================================== --- src/applications/maniphest/controller/ManiphestTaskDetailController.php +++ src/applications/maniphest/controller/ManiphestTaskDetailController.php @@ -367,11 +367,8 @@ $object_name = 'T'.$task->getID(); $actions = $this->buildActionView($task); - $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($object_name) - ->setHref('/'.$object_name)) + $crumbs = $this->buildApplicationCrumbs() + ->addTextCrumb($object_name, '/'.$object_name) ->setActionList($actions); $header = $this->buildHeaderView($task); Index: src/applications/maniphest/controller/ManiphestTaskEditController.php =================================================================== --- src/applications/maniphest/controller/ManiphestTaskEditController.php +++ src/applications/maniphest/controller/ManiphestTaskEditController.php @@ -667,15 +667,10 @@ $crumbs = $this->buildApplicationCrumbs(); if ($task->getID()) { - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName('T'.$task->getID()) - ->setHref('/T'.$task->getID())); + $crumbs->addTextCrumb('T'.$task->getID(), '/T'.$task->getID()); } - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($header_name)); + $crumbs->addTextCrumb($header_name); return $this->buildApplicationPage( array( Index: src/applications/meta/controller/PhabricatorApplicationDetailViewController.php =================================================================== --- src/applications/meta/controller/PhabricatorApplicationDetailViewController.php +++ src/applications/meta/controller/PhabricatorApplicationDetailViewController.php @@ -24,9 +24,7 @@ $title = $selected->getName(); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($selected->getName())); + $crumbs->addTextCrumb($selected->getName()); $header = id(new PHUIHeaderView()) ->setHeader($title) Index: src/applications/meta/controller/PhabricatorApplicationEditController.php =================================================================== --- src/applications/meta/controller/PhabricatorApplicationEditController.php +++ src/applications/meta/controller/PhabricatorApplicationEditController.php @@ -146,13 +146,8 @@ ->addCancelButton($view_uri)); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($application->getName()) - ->setHref($view_uri)); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit Policies'))); + $crumbs->addTextCrumb($application->getName(), $view_uri); + $crumbs->addTextCrumb(pht('Edit Policies')); $header = id(new PHUIHeaderView()) ->setHeader(pht('Edit Policies: %s', $application->getName())); Index: src/applications/nuance/controller/NuanceSourceViewController.php =================================================================== --- src/applications/nuance/controller/NuanceSourceViewController.php +++ src/applications/nuance/controller/NuanceSourceViewController.php @@ -47,9 +47,7 @@ $title = pht('%s', $source->getName()); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title)); + $crumbs->addTextCrumb($title); $header = $this->buildHeaderView($source); $actions = $this->buildActionView($source); Index: src/applications/owners/controller/PhabricatorOwnersController.php =================================================================== --- src/applications/owners/controller/PhabricatorOwnersController.php +++ src/applications/owners/controller/PhabricatorOwnersController.php @@ -45,9 +45,7 @@ } $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title)); + $crumbs->addTextCrumb($title); $crumbs->addAction( id(new PHUIListItemView()) Index: src/applications/passphrase/controller/PassphraseCredentialCreateController.php =================================================================== --- src/applications/passphrase/controller/PassphraseCredentialCreateController.php +++ src/applications/passphrase/controller/PassphraseCredentialCreateController.php @@ -55,9 +55,7 @@ $title = pht('New Credential'); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Create'))); + $crumbs->addTextCrumb(pht('Create')); $box = id(new PHUIObjectBoxView()) ->setHeaderText(pht('Create New Credential')) Index: src/applications/passphrase/controller/PassphraseCredentialEditController.php =================================================================== --- src/applications/passphrase/controller/PassphraseCredentialEditController.php +++ src/applications/passphrase/controller/PassphraseCredentialEditController.php @@ -219,19 +219,14 @@ if ($is_new) { $title = pht('Create Credential'); $header = pht('Create New Credential'); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Create'))); + $crumbs->addTextCrumb(pht('Create')); } else { $title = pht('Edit Credential'); $header = pht('Edit Credential %s', 'K'.$credential->getID()); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName('K'.$credential->getID()) - ->setHref('/K'.$credential->getID())); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit'))); + $crumbs->addTextCrumb( + 'K'.$credential->getID(), + '/K'.$credential->getID()); + $crumbs->addTextCrumb(pht('Edit')); } if ($request->isAjax()) { Index: src/applications/passphrase/controller/PassphraseCredentialViewController.php =================================================================== --- src/applications/passphrase/controller/PassphraseCredentialViewController.php +++ src/applications/passphrase/controller/PassphraseCredentialViewController.php @@ -41,9 +41,7 @@ $title = pht('%s %s', 'K'.$credential->getID(), $credential->getName()); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName('K'.$credential->getID())); + $crumbs->addTextCrumb('K'.$credential->getID()); $header = $this->buildHeaderView($credential); $actions = $this->buildActionView($credential); Index: src/applications/paste/controller/PhabricatorPasteEditController.php =================================================================== --- src/applications/paste/controller/PhabricatorPasteEditController.php +++ src/applications/paste/controller/PhabricatorPasteEditController.php @@ -212,13 +212,9 @@ $crumbs = $this->buildApplicationCrumbs($this->buildSideNavView()); if (!$is_create) { - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName('P'.$paste->getID()) - ->setHref('/P'.$paste->getID())); + $crumbs->addTextCrumb('P'.$paste->getID(), '/P'.$paste->getID()); } - $crumbs->addCrumb( - id(new PhabricatorCrumbView())->setName($short)); + $crumbs->addTextCrumb($short); return $this->buildApplicationPage( array( Index: src/applications/paste/controller/PhabricatorPasteViewController.php =================================================================== --- src/applications/paste/controller/PhabricatorPasteViewController.php +++ src/applications/paste/controller/PhabricatorPasteViewController.php @@ -88,10 +88,7 @@ $crumbs = $this->buildApplicationCrumbs($this->buildSideNavView()) ->setActionList($actions) - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName('P'.$paste->getID()) - ->setHref('/P'.$paste->getID())); + ->addTextCrumb('P'.$paste->getID(), '/P'.$paste->getID()); $xactions = id(new PhabricatorPasteTransactionQuery()) ->setViewer($request->getUser()) Index: src/applications/people/controller/PhabricatorPeopleEditController.php =================================================================== --- src/applications/people/controller/PhabricatorPeopleEditController.php +++ src/applications/people/controller/PhabricatorPeopleEditController.php @@ -23,21 +23,12 @@ return new Aphront404Response(); } $base_uri = '/people/edit/'.$user->getID().'/'; - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit User')) - ->setHref('/people/edit/')); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($user->getFullName()) - ->setHref($base_uri)); + $crumbs->addTextCrumb(pht('Edit User'), '/people/edit/'); + $crumbs->addTextCrumb($user->getFullName(), $base_uri); } else { $user = new PhabricatorUser(); $base_uri = '/people/edit/'; - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Create New User')) - ->setHref($base_uri)); + $crumbs->addTextCrumb(pht('Create New User'), $base_uri); } $nav = new AphrontSideNavFilterView(); Index: src/applications/people/controller/PhabricatorPeopleLdapController.php =================================================================== --- src/applications/people/controller/PhabricatorPeopleLdapController.php +++ src/applications/people/controller/PhabricatorPeopleLdapController.php @@ -38,10 +38,9 @@ ->appendChild($form); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Import Ldap Users')) - ->setHref($this->getApplicationURI('/ldap/'))); + $crumbs->addTextCrumb( + pht('Import Ldap Users'), + $this->getApplicationURI('/ldap/')); $nav = $this->buildSideNavView(); $nav->setCrumbs($crumbs); Index: src/applications/people/controller/PhabricatorPeopleLogsController.php =================================================================== --- src/applications/people/controller/PhabricatorPeopleLogsController.php +++ src/applications/people/controller/PhabricatorPeopleLogsController.php @@ -207,10 +207,7 @@ $filter = new AphrontListFilterView(); $filter->appendChild($form); $crumbs = $this->buildApplicationCrumbs($this->buildSideNavView()); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Activity Logs')) - ->setHref('/people/logs/')); + $crumbs->addTextCrumb(pht('Activity Logs'), '/people/logs/'); $nav = $this->buildSideNavView(); $nav->selectFilter('logs'); Index: src/applications/people/controller/PhabricatorPeopleProfileController.php =================================================================== --- src/applications/people/controller/PhabricatorPeopleProfileController.php +++ src/applications/people/controller/PhabricatorPeopleProfileController.php @@ -71,9 +71,7 @@ $properties = $this->buildPropertyView($user, $actions); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($user->getUsername())); + $crumbs->addTextCrumb($user->getUsername()); $feed = $this->renderUserFeed($user); $object_box = id(new PHUIObjectBoxView()) Index: src/applications/people/controller/PhabricatorPeopleProfileEditController.php =================================================================== --- src/applications/people/controller/PhabricatorPeopleProfileEditController.php +++ src/applications/people/controller/PhabricatorPeopleProfileEditController.php @@ -61,13 +61,8 @@ $title = pht('Edit Profile'); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($user->getUsername()) - ->setHref($profile_uri)); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title)); + $crumbs->addTextCrumb($user->getUsername(), $profile_uri); + $crumbs->addTextCrumb($title); $form = id(new AphrontFormView()) ->setUser($viewer); Index: src/applications/people/controller/PhabricatorPeopleProfilePictureController.php =================================================================== --- src/applications/people/controller/PhabricatorPeopleProfilePictureController.php +++ src/applications/people/controller/PhabricatorPeopleProfilePictureController.php @@ -91,13 +91,8 @@ $title = pht('Edit Profile Picture'); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($user->getUsername()) - ->setHref($profile_uri)); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title)); + $crumbs->addTextCrumb($user->getUsername(), $profile_uri); + $crumbs->addTextCrumb($title); $form = id(new PHUIFormLayoutView()) ->setUser($viewer); Index: src/applications/phame/controller/blog/PhameBlogEditController.php =================================================================== --- src/applications/phame/controller/blog/PhameBlogEditController.php +++ src/applications/phame/controller/blog/PhameBlogEditController.php @@ -176,10 +176,7 @@ ->setForm($form); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($page_title) - ->setHref($this->getApplicationURI('blog/new'))); + $crumbs->addTextCrumb($page_title, $this->getApplicationURI('blog/new')); $nav = $this->renderSideNavFilterView(); $nav->selectFilter($this->id ? null : 'blog/new'); Index: src/applications/phame/controller/blog/PhameBlogListController.php =================================================================== --- src/applications/phame/controller/blog/PhameBlogListController.php +++ src/applications/phame/controller/blog/PhameBlogListController.php @@ -48,10 +48,7 @@ $blog_list->setPager($pager); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title) - ->setHref($this->getApplicationURI())); + $crumbs->addTextCrumb($title, $this->getApplicationURI()); $nav->appendChild( array( Index: src/applications/phame/controller/blog/PhameBlogViewController.php =================================================================== --- src/applications/phame/controller/blog/PhameBlogViewController.php +++ src/applications/phame/controller/blog/PhameBlogViewController.php @@ -58,10 +58,7 @@ $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($blog->getName()) - ->setHref($this->getApplicationURI())); + $crumbs->addTextCrumb($blog->getName(), $this->getApplicationURI()); $object_box = id(new PHUIObjectBoxView()) ->setHeader($header) Index: src/applications/phame/controller/post/PhamePostEditController.php =================================================================== --- src/applications/phame/controller/post/PhamePostEditController.php +++ src/applications/phame/controller/post/PhamePostEditController.php @@ -177,10 +177,9 @@ ->setForm($form); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($page_title) - ->setHref($this->getApplicationURI('/post/view/'.$this->id.'/'))); + $crumbs->addTextCrumb( + $page_title, + $this->getApplicationURI('/post/view/'.$this->id.'/')); $nav = $this->renderSideNavFilterView(null); $nav->appendChild( Index: src/applications/phame/controller/post/PhamePostListController.php =================================================================== --- src/applications/phame/controller/post/PhamePostListController.php +++ src/applications/phame/controller/post/PhamePostListController.php @@ -78,10 +78,7 @@ ->appendChild($post_list); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title) - ->setHref($this->getApplicationURI())); + $crumbs->addTextCrumb($title, $this->getApplicationURI()); $nav->appendChild( array( Index: src/applications/phame/controller/post/PhamePostNewController.php =================================================================== --- src/applications/phame/controller/post/PhamePostNewController.php +++ src/applications/phame/controller/post/PhamePostNewController.php @@ -69,10 +69,7 @@ $nav->selectFilter('post/new'); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title) - ->setHref($view_uri)); + $crumbs->addTextCrumb($title, $view_uri); $nav->appendChild($crumbs); if (!$blogs) { Index: src/applications/phame/controller/post/PhamePostPublishController.php =================================================================== --- src/applications/phame/controller/post/PhamePostPublishController.php +++ src/applications/phame/controller/post/PhamePostPublishController.php @@ -51,10 +51,7 @@ ->setForm($form); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Preview')) - ->setHref($view_uri)); + $crumbs->addTextCrumb(pht('Preview'), $view_uri); $nav = $this->renderSideNavFilterView(null); $nav->appendChild( Index: src/applications/phame/controller/post/PhamePostViewController.php =================================================================== --- src/applications/phame/controller/post/PhamePostViewController.php +++ src/applications/phame/controller/post/PhamePostViewController.php @@ -36,10 +36,9 @@ $crumbs = $this->buildApplicationCrumbs(); $crumbs->setActionList($actions); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($post->getTitle()) - ->setHref($this->getApplicationURI('post/view/'.$post->getID().'/'))); + $crumbs->addTextCrumb( + $post->getTitle(), + $this->getApplicationURI('post/view/'.$post->getID().'/')); $nav->appendChild($crumbs); Index: src/applications/phlux/controller/PhluxEditController.php =================================================================== --- src/applications/phlux/controller/PhluxEditController.php +++ src/applications/phlux/controller/PhluxEditController.php @@ -164,16 +164,10 @@ if ($is_new) { $title = pht('Create Variable'); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title) - ->setHref($request->getRequestURI())); + $crumbs->addTextCrumb($title, $request->getRequestURI()); } else { $title = pht('Edit %s', $this->key); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title) - ->setHref($request->getRequestURI())); + $crumbs->addTextCrumb($title, $request->getRequestURI()); } $form_box = id(new PHUIObjectBoxView()) Index: src/applications/phlux/controller/PhluxListController.php =================================================================== --- src/applications/phlux/controller/PhluxListController.php +++ src/applications/phlux/controller/PhluxListController.php @@ -31,10 +31,7 @@ $title = pht('Variable List'); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title) - ->setHref($this->getApplicationURI())); + $crumbs->addTextCrumb($title, $this->getApplicationURI()); return $this->buildApplicationPage( array( Index: src/applications/phlux/controller/PhluxViewController.php =================================================================== --- src/applications/phlux/controller/PhluxViewController.php +++ src/applications/phlux/controller/PhluxViewController.php @@ -25,10 +25,7 @@ $title = $var->getVariableKey(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title) - ->setHref($request->getRequestURI())); + $crumbs->addTextCrumb($title, $request->getRequestURI()); $header = id(new PHUIHeaderView()) ->setHeader($title) Index: src/applications/pholio/controller/PholioImageHistoryController.php =================================================================== --- src/applications/pholio/controller/PholioImageHistoryController.php +++ src/applications/pholio/controller/PholioImageHistoryController.php @@ -69,14 +69,8 @@ $crumbs = $this->buildApplicationCrumbs(); $crumbs - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName('M'.$mock->getID()) - ->setHref('/M'.$mock->getID())) - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName('Image History') - ->setHref($request->getRequestURI())); + ->addTextCrumb('M'.$mock->getID(), '/M'.$mock->getID()) + ->addTextCrumb('Image History', $request->getRequestURI()); $content = array( $crumbs, Index: src/applications/pholio/controller/PholioMockEditController.php =================================================================== --- src/applications/pholio/controller/PholioMockEditController.php +++ src/applications/pholio/controller/PholioMockEditController.php @@ -326,10 +326,7 @@ ->setForm($form); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title) - ->setHref($this->getApplicationURI())); + $crumbs->addTextCrumb($title, $this->getApplicationURI()); $content = array( $crumbs, Index: src/applications/pholio/controller/PholioMockViewController.php =================================================================== --- src/applications/pholio/controller/PholioMockViewController.php +++ src/applications/pholio/controller/PholioMockViewController.php @@ -98,10 +98,7 @@ $crumbs = $this->buildApplicationCrumbs(); $crumbs->setActionList($actions); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName('M'.$mock->getID()) - ->setHref('/M'.$mock->getID())); + $crumbs->addTextCrumb('M'.$mock->getID(), '/M'.$mock->getID()); $object_box = id(new PHUIObjectBoxView()) ->setHeader($header) Index: src/applications/phortune/controller/PhortuneAccountViewController.php =================================================================== --- src/applications/phortune/controller/PhortuneAccountViewController.php +++ src/applications/phortune/controller/PhortuneAccountViewController.php @@ -24,10 +24,7 @@ $title = $account->getName(); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Account')) - ->setHref($request->getRequestURI())); + $crumbs->addTextCrumb(pht('Account'), $request->getRequestURI()); $header = id(new PHUIHeaderView()) ->setHeader($title); Index: src/applications/phortune/controller/PhortunePaymentMethodEditController.php =================================================================== --- src/applications/phortune/controller/PhortunePaymentMethodEditController.php +++ src/applications/phortune/controller/PhortunePaymentMethodEditController.php @@ -159,14 +159,8 @@ ->setHeader($title); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Account')) - ->setHref($account_uri)); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Payment Methods')) - ->setHref($request->getRequestURI())); + $crumbs->addTextCrumb(pht('Account'), $account_uri); + $crumbs->addTextCrumb(pht('Payment Methods'), $request->getRequestURI()); return $this->buildApplicationPage( array( Index: src/applications/phortune/controller/PhortuneProductEditController.php =================================================================== --- src/applications/phortune/controller/PhortuneProductEditController.php +++ src/applications/phortune/controller/PhortuneProductEditController.php @@ -135,14 +135,12 @@ $title = pht('Edit Product'); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Products')) - ->setHref($this->getApplicationURI('product/'))); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($is_create ? pht('Create') : pht('Edit')) - ->setHref($request->getRequestURI())); + $crumbs->addTextCrumb( + pht('Products'), + $this->getApplicationURI('product/')); + $crumbs->addTextCrumb( + $is_create ? pht('Create') : pht('Edit'), + $request->getRequestURI()); $header = id(new PHUIHeaderView()) ->setHeader(pht('Edit Product')); Index: src/applications/phortune/controller/PhortuneProductListController.php =================================================================== --- src/applications/phortune/controller/PhortuneProductListController.php +++ src/applications/phortune/controller/PhortuneProductListController.php @@ -17,10 +17,7 @@ $title = pht('Product List'); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName('Products') - ->setHref($this->getApplicationURI('product/'))); + $crumbs->addTextCrumb('Products', $this->getApplicationURI('product/')); $crumbs->addAction( id(new PHUIListItemView()) ->setName(pht('Create Product')) Index: src/applications/phortune/controller/PhortuneProductViewController.php =================================================================== --- src/applications/phortune/controller/PhortuneProductViewController.php +++ src/applications/phortune/controller/PhortuneProductViewController.php @@ -50,14 +50,12 @@ $crumbs = $this->buildApplicationCrumbs(); $crumbs->setActionList($actions); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Products')) - ->setHref($this->getApplicationURI('product/'))); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('#%d', $product->getID())) - ->setHref($request->getRequestURI())); + $crumbs->addTextCrumb( + pht('Products'), + $this->getApplicationURI('product/')); + $crumbs->addTextCrumb( + pht('#%d', $product->getID()), + $request->getRequestURI()); $properties = id(new PHUIPropertyListView()) ->setUser($user) Index: src/applications/phragment/controller/PhragmentController.php =================================================================== --- src/applications/phragment/controller/PhragmentController.php +++ src/applications/phragment/controller/PhragmentController.php @@ -41,15 +41,11 @@ protected function buildApplicationCrumbsWithPath(array $fragments) { $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName('/') - ->setHref('/phragment/')); + $crumbs->addTextCrumb('/', '/phragment/'); foreach ($fragments as $parent) { - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($parent->getName()) - ->setHref('/phragment/browse/'.$parent->getPath())); + $crumbs->addTextCrumb( + $parent->getName(), + '/phragment/browse/'.$parent->getPath()); } return $crumbs; } Index: src/applications/phragment/controller/PhragmentCreateController.php =================================================================== --- src/applications/phragment/controller/PhragmentCreateController.php +++ src/applications/phragment/controller/PhragmentCreateController.php @@ -111,9 +111,7 @@ $this->getApplicationURI('browse/'.$parent_path))); $crumbs = $this->buildApplicationCrumbsWithPath($parents); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Create Fragment'))); + $crumbs->addTextCrumb(pht('Create Fragment')); $box = id(new PHUIObjectBoxView()) ->setHeaderText('Create Fragment') Index: src/applications/phragment/controller/PhragmentPolicyController.php =================================================================== --- src/applications/phragment/controller/PhragmentPolicyController.php +++ src/applications/phragment/controller/PhragmentPolicyController.php @@ -88,9 +88,7 @@ $this->getApplicationURI('browse/'.$fragment->getPath()))); $crumbs = $this->buildApplicationCrumbsWithPath($parents); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit Fragment Policies'))); + $crumbs->addTextCrumb(pht('Edit Fragment Policies')); $box = id(new PHUIObjectBoxView()) ->setHeaderText(pht('Edit Fragment Policies: %s', $fragment->getPath())) Index: src/applications/phragment/controller/PhragmentSnapshotCreateController.php =================================================================== --- src/applications/phragment/controller/PhragmentSnapshotCreateController.php +++ src/applications/phragment/controller/PhragmentSnapshotCreateController.php @@ -154,9 +154,7 @@ ->appendInstructions($container); $crumbs = $this->buildApplicationCrumbsWithPath($parents); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Create Snapshot'))); + $crumbs->addTextCrumb(pht('Create Snapshot')); $box = id(new PHUIObjectBoxView()) ->setHeaderText(pht('Create Snapshot of %s', $fragment->getName())) Index: src/applications/phragment/controller/PhragmentSnapshotViewController.php =================================================================== --- src/applications/phragment/controller/PhragmentSnapshotViewController.php +++ src/applications/phragment/controller/PhragmentSnapshotViewController.php @@ -40,9 +40,7 @@ } $crumbs = $this->buildApplicationCrumbsWithPath($parents); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('"%s" Snapshot', $snapshot->getName()))); + $crumbs->addTextCrumb(pht('"%s" Snapshot', $snapshot->getName())); $children = id(new PhragmentSnapshotChildQuery()) ->setViewer($viewer) Index: src/applications/phragment/controller/PhragmentUpdateController.php =================================================================== --- src/applications/phragment/controller/PhragmentUpdateController.php +++ src/applications/phragment/controller/PhragmentUpdateController.php @@ -62,9 +62,7 @@ $this->getApplicationURI('browse/'.$fragment->getPath()))); $crumbs = $this->buildApplicationCrumbsWithPath($parents); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Update Fragment'))); + $crumbs->addTextCrumb(pht('Update Fragment')); $box = id(new PHUIObjectBoxView()) ->setHeaderText(pht('Update Fragment: %s', $fragment->getPath())) Index: src/applications/phragment/controller/PhragmentVersionController.php =================================================================== --- src/applications/phragment/controller/PhragmentVersionController.php +++ src/applications/phragment/controller/PhragmentVersionController.php @@ -31,9 +31,7 @@ $current = idx($parents, count($parents) - 1, null); $crumbs = $this->buildApplicationCrumbsWithPath($parents); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('View Version %d', $version->getSequence()))); + $crumbs->addTextCrumb(pht('View Version %d', $version->getSequence())); $phids = array(); $phids[] = $version->getFilePHID(); Index: src/applications/phriction/controller/PhrictionDiffController.php =================================================================== --- src/applications/phriction/controller/PhrictionDiffController.php +++ src/applications/phriction/controller/PhrictionDiffController.php @@ -107,21 +107,16 @@ $crumbs->addCrumb($view); } - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('History')) - ->setHref(PhrictionDocument::getSlugURI($slug, 'history'))); - + $crumbs->addTextCrumb( + pht('History'), + PhrictionDocument::getSlugURI($slug, 'history')); $title = pht("Version %s vs %s", $l, $r); $header = id(new PHUIHeaderView()) ->setHeader($title); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title) - ->setHref($request->getRequestURI())); + $crumbs->addTextCrumb($title, $request->getRequestURI()); $comparison_table = $this->renderComparisonTable( Index: src/applications/phriction/controller/PhrictionEditController.php =================================================================== --- src/applications/phriction/controller/PhrictionEditController.php +++ src/applications/phriction/controller/PhrictionEditController.php @@ -241,17 +241,12 @@ $crumbs = $this->buildApplicationCrumbs(); if ($document->getID()) { - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($content->getTitle()) - ->setHref(PhrictionDocument::getSlugURI($document->getSlug()))); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit'))); + $crumbs->addTextCrumb( + $content->getTitle(), + PhrictionDocument::getSlugURI($document->getSlug())); + $crumbs->addTextCrumb(pht('Edit')); } else { - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Create'))); + $crumbs->addTextCrumb(pht('Create')); } return $this->buildApplicationPage( Index: src/applications/phriction/controller/PhrictionHistoryController.php =================================================================== --- src/applications/phriction/controller/PhrictionHistoryController.php +++ src/applications/phriction/controller/PhrictionHistoryController.php @@ -138,11 +138,9 @@ foreach ($crumb_views as $view) { $crumbs->addCrumb($view); } - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('History')) - ->setHref( - PhrictionDocument::getSlugURI($document->getSlug(), 'history'))); + $crumbs->addTextCrumb( + pht('History'), + PhrictionDocument::getSlugURI($document->getSlug(), 'history')); $header = new PHUIHeaderView(); $header->setHeader(pht('Document History for %s', Index: src/applications/ponder/controller/PonderAnswerEditController.php =================================================================== --- src/applications/ponder/controller/PonderAnswerEditController.php +++ src/applications/ponder/controller/PonderAnswerEditController.php @@ -86,13 +86,8 @@ ->addCancelButton($answer_uri)); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName("Q{$qid}") - ->setHref($answer_uri)); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit Answer'))); + $crumbs->addTextCrumb("Q{$qid}", $answer_uri); + $crumbs->addTextCrumb(pht('Edit Answer')); $form_box = id(new PHUIObjectBoxView()) ->setHeaderText(pht('Edit Answer')) Index: src/applications/ponder/controller/PonderAnswerHistoryController.php =================================================================== --- src/applications/ponder/controller/PonderAnswerHistoryController.php +++ src/applications/ponder/controller/PonderAnswerHistoryController.php @@ -46,17 +46,9 @@ $aid = $answer->getID(); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName("Q{$qid}") - ->setHref("/Q{$qid}")); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName("A{$aid}") - ->setHref("/Q{$qid}#{$aid}")); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('History'))); + $crumbs->addTextCrumb("Q{$qid}", "/Q{$qid}"); + $crumbs->addTextCrumb("A{$aid}", "/Q{$qid}#{$aid}"); + $crumbs->addTextCrumb(pht('History')); return $this->buildApplicationPage( array( Index: src/applications/ponder/controller/PonderQuestionEditController.php =================================================================== --- src/applications/ponder/controller/PonderQuestionEditController.php +++ src/applications/ponder/controller/PonderQuestionEditController.php @@ -117,17 +117,10 @@ $id = $question->getID(); if ($id) { - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName("Q{$id}") - ->setHref("/Q{$id}")); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit'))); + $crumbs->addTextCrumb("Q{$id}", "/Q{$id}"); + $crumbs->addTextCrumb(pht('Edit')); } else { - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Ask Question'))); + $crumbs->addTextCrumb(pht('Ask Question')); } return $this->buildApplicationPage( Index: src/applications/ponder/controller/PonderQuestionHistoryController.php =================================================================== --- src/applications/ponder/controller/PonderQuestionHistoryController.php +++ src/applications/ponder/controller/PonderQuestionHistoryController.php @@ -45,13 +45,8 @@ $qid = $question->getID(); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName("Q{$qid}") - ->setHref("/Q{$qid}")); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('History'))); + $crumbs->addTextCrumb("Q{$qid}", "/Q{$qid}"); + $crumbs->addTextCrumb(pht('History')); return $this->buildApplicationPage( array( Index: src/applications/ponder/controller/PonderQuestionViewController.php =================================================================== --- src/applications/ponder/controller/PonderQuestionViewController.php +++ src/applications/ponder/controller/PonderQuestionViewController.php @@ -56,10 +56,7 @@ $crumbs = $this->buildApplicationCrumbs($this->buildSideNavView()); $crumbs->setActionList($actions); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName('Q'.$this->questionID) - ->setHref('/Q'.$this->questionID)); + $crumbs->addTextCrumb('Q'.$this->questionID, '/Q'.$this->questionID); return $this->buildApplicationPage( array( Index: src/applications/project/controller/PhabricatorProjectCreateController.php =================================================================== --- src/applications/project/controller/PhabricatorProjectCreateController.php +++ src/applications/project/controller/PhabricatorProjectCreateController.php @@ -112,10 +112,9 @@ ->addCancelButton('/project/')); $crumbs = $this->buildApplicationCrumbs($this->buildSideNavView()); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Create Project')) - ->setHref($this->getApplicationURI().'create/')); + $crumbs->addTextCrumb( + pht('Create Project'), + $this->getApplicationURI().'create/'); $form_box = id(new PHUIObjectBoxView()) ->setHeaderText(pht('Create New Project')) Index: src/applications/project/controller/PhabricatorProjectHistoryController.php =================================================================== --- src/applications/project/controller/PhabricatorProjectHistoryController.php +++ src/applications/project/controller/PhabricatorProjectHistoryController.php @@ -37,14 +37,11 @@ ->setObjectPHID($project->getPHID()) ->setTransactions($xactions); - $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($project->getName()) - ->setHref($this->getApplicationURI("view/{$id}/"))); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('History'))); + $crumbs = $this->buildApplicationCrumbs() + ->addTextCrumb( + $project->getName(), + $this->getApplicationURI("view/{$id}/")) + ->addTextCrumb(pht('History')); return $this->buildApplicationPage( array( Index: src/applications/project/controller/PhabricatorProjectMembersEditController.php =================================================================== --- src/applications/project/controller/PhabricatorProjectMembersEditController.php +++ src/applications/project/controller/PhabricatorProjectMembersEditController.php @@ -111,15 +111,11 @@ ->setHeaderText($title) ->setForm($form); - $crumbs = $this->buildApplicationCrumbs($this->buildSideNavView()); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($project->getName()) - ->setHref('/project/view/'.$project->getID().'/')); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit Members')) - ->setHref($this->getApplicationURI())); + $crumbs = $this->buildApplicationCrumbs($this->buildSideNavView()) + ->addTextCrumb( + $project->getName(), + '/project/view/'.$project->getID().'/') + ->addTextCrumb(pht('Edit Members'), $this->getApplicationURI()); return $this->buildApplicationPage( array( Index: src/applications/project/controller/PhabricatorProjectProfileController.php =================================================================== --- src/applications/project/controller/PhabricatorProjectProfileController.php +++ src/applications/project/controller/PhabricatorProjectProfileController.php @@ -73,9 +73,7 @@ $properties = $this->buildPropertyListView($project, $profile, $actions); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($project->getName())) + $crumbs->addTextCrumb($project->getName()) ->setActionList($actions); $object_box = id(new PHUIObjectBoxView()) Index: src/applications/project/controller/PhabricatorProjectProfileEditController.php =================================================================== --- src/applications/project/controller/PhabricatorProjectProfileEditController.php +++ src/applications/project/controller/PhabricatorProjectProfileEditController.php @@ -165,15 +165,11 @@ ->setFormError($error_view) ->setForm($form); - $crumbs = $this->buildApplicationCrumbs($this->buildSideNavView()); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($project->getName()) - ->setHref('/project/view/'.$project->getID().'/')); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit Project')) - ->setHref($this->getApplicationURI())); + $crumbs = $this->buildApplicationCrumbs($this->buildSideNavView()) + ->addTextCrumb( + $project->getName(), + '/project/view/'.$project->getID().'/') + ->addTextCrumb(pht('Edit Project'), $this->getApplicationURI()); return $this->buildApplicationPage( array( Index: src/applications/project/controller/PhabricatorProjectProfilePictureController.php =================================================================== --- src/applications/project/controller/PhabricatorProjectProfilePictureController.php +++ src/applications/project/controller/PhabricatorProjectProfilePictureController.php @@ -89,13 +89,8 @@ $title = pht('Edit Project Picture'); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($project->getName()) - ->setHref($project_uri)); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title)); + $crumbs->addTextCrumb($project->getName(), $project_uri); + $crumbs->addTextCrumb($title); $form = id(new PHUIFormLayoutView()) ->setUser($viewer); Index: src/applications/releeph/controller/ReleephProjectController.php =================================================================== --- src/applications/releeph/controller/ReleephProjectController.php +++ src/applications/releeph/controller/ReleephProjectController.php @@ -135,10 +135,7 @@ $project_id = $project->getID(); $project_uri = $this->getApplicationURI("project/{$project_id}/"); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setHref($project_uri) - ->setName($project->getName())); + $crumbs->addCrumb($project->getName(), $project_uri); } catch (Exception $ex) { // TODO: This is derps. } @@ -146,10 +143,7 @@ try { $branch = $this->getReleephBranch(); $branch_uri = $branch->getURI(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setHref($branch_uri) - ->setName($branch->getDisplayNameWithDetail())); + $crumbs->addCrumb($branch->getDisplayNameWithDetail(), $branch_uri); } catch (Exception $ex) { // TODO: This is also derps. } Index: src/applications/releeph/controller/branch/ReleephBranchCreateController.php =================================================================== --- src/applications/releeph/controller/branch/ReleephBranchCreateController.php +++ src/applications/releeph/controller/branch/ReleephBranchCreateController.php @@ -99,9 +99,7 @@ ->addCancelButton($project_uri)); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('New Branch'))); + $crumbs->addTextCrumb(pht('New Branch')); return $this->buildApplicationPage( array( Index: src/applications/releeph/controller/branch/ReleephBranchEditController.php =================================================================== --- src/applications/releeph/controller/branch/ReleephBranchEditController.php +++ src/applications/releeph/controller/branch/ReleephBranchEditController.php @@ -86,9 +86,7 @@ $releeph_branch->getDisplayNameWithDetail()); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit'))); + $crumbs->addTextCrumb(pht('Edit')); return $this->buildApplicationPage( array( Index: src/applications/releeph/controller/branch/ReleephBranchHistoryController.php =================================================================== --- src/applications/releeph/controller/branch/ReleephBranchHistoryController.php +++ src/applications/releeph/controller/branch/ReleephBranchHistoryController.php @@ -32,9 +32,7 @@ ->setTransactions($xactions); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('History'))); + $crumbs->addTextCrumb(pht('History')); return $this->buildApplicationPage( array( Index: src/applications/releeph/controller/project/ReleephProjectCreateController.php =================================================================== --- src/applications/releeph/controller/project/ReleephProjectCreateController.php +++ src/applications/releeph/controller/project/ReleephProjectCreateController.php @@ -114,9 +114,7 @@ ->setForm($form); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('New Project'))); + $crumbs->addTextCrumb(pht('New Project')); return $this->buildApplicationPage( array( Index: src/applications/releeph/controller/project/ReleephProjectHistoryController.php =================================================================== --- src/applications/releeph/controller/project/ReleephProjectHistoryController.php +++ src/applications/releeph/controller/project/ReleephProjectHistoryController.php @@ -32,9 +32,7 @@ ->setTransactions($xactions); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('History'))); + $crumbs->addTextCrumb(pht('History')); return $this->buildApplicationPage( array( Index: src/applications/releeph/controller/request/ReleephRequestEditController.php =================================================================== --- src/applications/releeph/controller/request/ReleephRequestEditController.php +++ src/applications/releeph/controller/request/ReleephRequestEditController.php @@ -272,20 +272,13 @@ $title = pht('Edit Releeph Request'); $submit_name = pht('Save'); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName('RQ'.$rq->getID()) - ->setHref('/RQ'.$rq->getID())); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Edit'))); + $crumbs->addTextCrumb('RQ'.$rq->getID(), '/RQ'.$rq->getID()); + $crumbs->addTextCrumb(pht('Edit')); } else { $title = pht('Create Releeph Request'); $submit_name = pht('Create'); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('New Request'))); + $crumbs->addTextCrumb(pht('New Request')); } $form->appendChild( Index: src/applications/releeph/controller/request/ReleephRequestViewController.php =================================================================== --- src/applications/releeph/controller/request/ReleephRequestViewController.php +++ src/applications/releeph/controller/request/ReleephRequestViewController.php @@ -74,18 +74,13 @@ ->setSubmitButtonName('Comment'); $crumbs = $this->buildApplicationCrumbs() - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($releeph_project->getName()) - ->setHref($releeph_project->getURI())) - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($releeph_branch->getDisplayNameWithDetail()) - ->setHref($releeph_branch->getURI())) - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName('RQ'.$releeph_request->getID()) - ->setHref('/RQ'.$releeph_request->getID())); + ->addTextCrumb($releeph_project->getName(), $releeph_project->getURI()) + ->addTextCrumb( + $releeph_branch->getDisplayNameWithDetail(), + $releeph_branch->getURI()) + ->addTextCrumb( + 'RQ'.$releeph_request->getID(), + '/RQ'.$releeph_request->getID()); return $this->buildStandardPageResponse( array( Index: src/applications/search/controller/PhabricatorApplicationSearchController.php =================================================================== --- src/applications/search/controller/PhabricatorApplicationSearchController.php +++ src/applications/search/controller/PhabricatorApplicationSearchController.php @@ -260,9 +260,7 @@ $crumbs = $parent ->buildApplicationCrumbs() - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht("Search"))); + ->addTextCrumb(pht("Search")); $nav->setCrumbs($crumbs); @@ -344,10 +342,7 @@ $crumbs = $parent ->buildApplicationCrumbs() - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht("Saved Queries")) - ->setHref($engine->getQueryManagementURI())); + ->addTextCrumb(pht("Saved Queries"), $engine->getQueryManagementURI()); $nav->selectFilter('query/edit'); $nav->setCrumbs($crumbs); Index: src/applications/search/controller/PhabricatorSearchController.php =================================================================== --- src/applications/search/controller/PhabricatorSearchController.php +++ src/applications/search/controller/PhabricatorSearchController.php @@ -275,9 +275,7 @@ } $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName(pht('Search'))); + $crumbs->addTextCrumb(pht('Search')); return $this->buildApplicationPage( array( Index: src/applications/search/controller/PhabricatorSearchEditController.php =================================================================== --- src/applications/search/controller/PhabricatorSearchEditController.php +++ src/applications/search/controller/PhabricatorSearchEditController.php @@ -98,9 +98,7 @@ ->setForm($form); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title)); + $crumbs->addTextCrumb($title); return $this->buildApplicationPage( array( Index: src/applications/slowvote/controller/PhabricatorSlowvoteEditController.php =================================================================== --- src/applications/slowvote/controller/PhabricatorSlowvoteEditController.php +++ src/applications/slowvote/controller/PhabricatorSlowvoteEditController.php @@ -244,9 +244,7 @@ ->addCancelButton($cancel_uri)); $crumbs = $this->buildApplicationCrumbs($this->buildSideNavView()); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title)); + $crumbs->addTextCrumb($title); $form_box = id(new PHUIObjectBoxView()) ->setHeaderText($title) Index: src/applications/slowvote/controller/PhabricatorSlowvotePollController.php =================================================================== --- src/applications/slowvote/controller/PhabricatorSlowvotePollController.php +++ src/applications/slowvote/controller/PhabricatorSlowvotePollController.php @@ -50,9 +50,7 @@ $properties = $this->buildPropertyView($poll, $actions); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addCrumb( - id(new PhabricatorCrumbView()) - ->setName('V'.$poll->getID())); + $crumbs->addTextCrumb('V'.$poll->getID()); $xactions = $this->buildTransactions($poll); $add_comment = $this->buildCommentForm($poll); Index: src/applications/tokens/controller/PhabricatorTokenGivenController.php =================================================================== --- src/applications/tokens/controller/PhabricatorTokenGivenController.php +++ src/applications/tokens/controller/PhabricatorTokenGivenController.php @@ -60,9 +60,7 @@ $nav = $this->buildSideNav(); $nav->setCrumbs( $this->buildApplicationCrumbs() - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title))); + ->addTextCrumb($title)); $nav->selectFilter('given/'); $nav->appendChild($list); Index: src/applications/tokens/controller/PhabricatorTokenLeaderController.php =================================================================== --- src/applications/tokens/controller/PhabricatorTokenLeaderController.php +++ src/applications/tokens/controller/PhabricatorTokenLeaderController.php @@ -42,9 +42,7 @@ $nav = $this->buildSideNav(); $nav->setCrumbs( $this->buildApplicationCrumbs() - ->addCrumb( - id(new PhabricatorCrumbView()) - ->setName($title))); + ->addTextCrumb($title)); $nav->selectFilter('leaders/'); $nav->appendChild($list); Index: src/view/layout/PhabricatorCrumbsView.php =================================================================== --- src/view/layout/PhabricatorCrumbsView.php +++ src/view/layout/PhabricatorCrumbsView.php @@ -10,6 +10,22 @@ return false; } + + /** + * Convenience method for adding a simple crumb with just text, or text and + * a link. + * + * @param string Text of the crumb. + * @param string? Optional href for the crumb. + * @return this + */ + public function addTextCrumb($text, $href = null) { + return $this->addCrumb( + id(new PhabricatorCrumbView()) + ->setName($text) + ->setHref($href)); + } + public function addCrumb(PhabricatorCrumbView $crumb) { $this->crumbs[] = $crumb; return $this;