Exemplo n.º 1
0
 public final function addActionToCrumbs(PHUICrumbsView $crumbs)
 {
     $viewer = $this->getViewer();
     $can_create = $this->hasCreateCapability();
     if ($can_create) {
         $configs = $this->loadUsableConfigurationsForCreate();
     } else {
         $configs = array();
     }
     $dropdown = null;
     $disabled = false;
     $workflow = false;
     $menu_icon = 'fa-plus-square';
     if (!$configs) {
         if ($viewer->isLoggedIn()) {
             $disabled = true;
         } else {
             // If the viewer isn't logged in, assume they'll get hit with a login
             // dialog and are likely able to create objects after they log in.
             $disabled = false;
         }
         $workflow = true;
         if ($can_create) {
             $create_uri = $this->getEditURI(null, 'nodefault/');
         } else {
             $create_uri = $this->getEditURI(null, 'nocreate/');
         }
     } else {
         $config = head($configs);
         $form_key = $config->getIdentifier();
         $create_uri = $this->getEditURI(null, "form/{$form_key}/");
         if (count($configs) > 1) {
             $menu_icon = 'fa-caret-square-o-down';
             $dropdown = id(new PhabricatorActionListView())->setUser($viewer);
             foreach ($configs as $config) {
                 $form_key = $config->getIdentifier();
                 $config_uri = $this->getEditURI(null, "form/{$form_key}/");
                 $item_icon = 'fa-plus';
                 $dropdown->addAction(id(new PhabricatorActionView())->setName($config->getDisplayName())->setIcon($item_icon)->setHref($config_uri));
             }
         }
     }
     $action = id(new PHUIListItemView())->setName($this->getObjectCreateShortText())->setHref($create_uri)->setIcon($menu_icon)->setWorkflow($workflow)->setDisabled($disabled);
     if ($dropdown) {
         $action->setDropdownMenu($dropdown);
     }
     $crumbs->addAction($action);
 }
 public final function addActionToCrumbs(PHUICrumbsView $crumbs, array $parameters = array())
 {
     $viewer = $this->getViewer();
     $specs = $this->newCreateActionSpecifications($parameters);
     $head = head($specs);
     $menu_uri = $head['uri'];
     $dropdown = null;
     if (count($specs) > 1) {
         $menu_icon = 'fa-caret-square-o-down';
         $menu_name = $this->getObjectCreateShortText();
         $workflow = false;
         $disabled = false;
         $dropdown = id(new PhabricatorActionListView())->setUser($viewer);
         foreach ($specs as $spec) {
             $dropdown->addAction(id(new PhabricatorActionView())->setName($spec['name'])->setIcon($spec['icon'])->setHref($spec['uri'])->setDisabled($head['disabled'])->setWorkflow($head['workflow']));
         }
     } else {
         $menu_icon = $head['icon'];
         $menu_name = $head['name'];
         $workflow = $head['workflow'];
         $disabled = $head['disabled'];
     }
     $action = id(new PHUIListItemView())->setName($menu_name)->setHref($menu_uri)->setIcon($menu_icon)->setWorkflow($workflow)->setDisabled($disabled);
     if ($dropdown) {
         $action->setDropdownMenu($dropdown);
     }
     $crumbs->addAction($action);
 }