public function buildIconNavView(PhabricatorProject $project)
 {
     $this->setProject($project);
     $viewer = $this->getViewer();
     $id = $project->getID();
     $picture = $project->getProfileImageURI();
     $name = $project->getName();
     $columns = id(new PhabricatorProjectColumnQuery())->setViewer($viewer)->withProjectPHIDs(array($project->getPHID()))->execute();
     if ($columns) {
         $board_icon = 'fa-columns';
     } else {
         $board_icon = 'fa-columns grey';
     }
     $nav = new AphrontSideNavFilterView();
     $nav->setIconNav(true);
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
     $nav->addIcon("profile/{$id}/", $name, null, $picture);
     $class = 'PhabricatorManiphestApplication';
     if (PhabricatorApplication::isClassInstalledForViewer($class, $viewer)) {
         $phid = $project->getPHID();
         $nav->addIcon("board/{$id}/", pht('Workboard'), $board_icon);
         $query_uri = urisprintf('/maniphest/?statuses=open()&projects=%s#R', $phid);
         $nav->addIcon(null, pht('Open Tasks'), 'fa-anchor', null, $query_uri);
     }
     $nav->addIcon("feed/{$id}/", pht('Feed'), 'fa-newspaper-o');
     $nav->addIcon("members/{$id}/", pht('Members'), 'fa-group');
     $nav->addIcon("details/{$id}/", pht('Edit Details'), 'fa-pencil');
     return $nav;
 }
 public function buildIconNavView(PhabricatorUser $user)
 {
     $viewer = $this->getViewer();
     $picture = $user->getProfileImageURI();
     $name = $user->getUsername();
     $nav = new AphrontSideNavFilterView();
     $nav->setIconNav(true);
     $nav->setBaseURI(new PhutilURI('/p/'));
     $nav->addIcon("{$name}/", $name, null, $picture);
     $nav->addIcon("{$name}/feed/", pht('Feed'), 'fa-newspaper-o');
     $class = 'PhabricatorCalendarApplication';
     if (PhabricatorApplication::isClassInstalledForViewer($class, $viewer)) {
         $nav->addIcon("{$name}/calendar/", pht('Calendar'), 'fa-calendar');
     }
     $class = 'PhabricatorManiphestApplication';
     if (PhabricatorApplication::isClassInstalledForViewer($class, $viewer)) {
         $phid = $user->getPHID();
         $view_uri = sprintf('/maniphest/?statuses=open()&assigned=%s#R', $phid);
         $nav->addIcon('maniphest', pht('Open Tasks'), 'fa-anchor', null, $view_uri);
     }
     $class = 'PhabricatorDifferentialApplication';
     if (PhabricatorApplication::isClassInstalledForViewer($class, $viewer)) {
         $username = phutil_escape_uri($name);
         $view_uri = '/differential/?authors=' . $username;
         $nav->addIcon('differential', pht('Revisions'), 'fa-cog', null, $view_uri);
     }
     $class = 'PhabricatorAuditApplication';
     if (PhabricatorApplication::isClassInstalledForViewer($class, $viewer)) {
         $username = phutil_escape_uri($name);
         $view_uri = '/audit/?authors=' . $username;
         $nav->addIcon('audit', pht('Commits'), 'fa-code', null, $view_uri);
     }
     return $nav;
 }
 public static function newFromMenu(PHUIListView $menu)
 {
     $object = new AphrontSideNavFilterView();
     $object->setBaseURI(new PhutilURI('/'));
     $object->menu = $menu;
     return $object;
 }
 public function buildSideNavView()
 {
     $nav = new AphrontSideNavFilterView();
     $base_uri = new PhutilURI('/owners/');
     $nav->setBaseURI($base_uri);
     $nav->addLabel(pht('Packages'));
     $this->getExtraPackageViews($nav);
     $nav->addFilter('view/owned', pht('Owned'));
     $nav->addFilter('view/projects', pht('Projects'));
     $nav->addFilter('view/all', pht('All'));
     $nav->selectFilter($this->getSideNavFilter(), 'view/owned');
     $filter = $nav->getSelectedFilter();
     switch ($filter) {
         case 'view/owned':
             $title = pht('Owned Packages');
             break;
         case 'view/all':
             $title = pht('All Packages');
             break;
         case 'view/projects':
             $title = pht('Projects');
             break;
         case 'new':
             $title = pht('New Package');
             break;
         default:
             $title = pht('Package');
             break;
     }
     $crumbs = $this->buildApplicationCrumbs();
     $crumbs->addTextCrumb($title);
     $crumbs->addAction(id(new PHUIListItemView())->setName(pht('Create Package'))->setHref('/owners/new/')->setIcon('fa-plus-square'));
     $nav->setCrumbs($crumbs);
     return $nav;
 }
 public function buildSideNavView()
 {
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
     id(new DrydockLogSearchEngine())->setViewer($this->getRequest()->getUser())->addNavigationItems($nav->getMenu());
     $nav->selectFilter(null);
     return $nav;
 }
 public function buildSideNavView($for_app = false)
 {
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
     $viewer = $this->getRequest()->getUser();
     id(new PhabricatorPeopleLogSearchEngine())->setViewer($viewer)->addNavigationItems($nav->getMenu());
     return $nav;
 }
 protected function buildSideNavView()
 {
     $user = $this->getRequest()->getUser();
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
     id(new PhabricatorFeedSearchEngine())->setViewer($user)->addNavigationItems($nav->getMenu());
     $nav->selectFilter(null);
     return $nav;
 }
 public function buildSideNavView($for_app = false)
 {
     $user = $this->getRequest()->getUser();
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
     $this->getSearchEngine()->addNavigationItems($nav->getMenu());
     $nav->selectFilter(null);
     return $nav;
 }
 public function buildSideNavView()
 {
     $viewer = $this->getViewer();
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
     id(new PhortuneChargeSearchEngine())->setViewer($viewer)->addNavigationItems($nav->getMenu());
     $nav->selectFilter(null);
     return $nav;
 }
 public function buildSideNavView()
 {
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
     $engine = id(new DrydockRepositoryOperationSearchEngine())->setViewer($this->getViewer());
     $engine->addNavigationItems($nav->getMenu());
     $nav->selectFilter(null);
     return $nav;
 }
 protected function buildSideNavView($for_app = false)
 {
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
     if ($for_app) {
         $nav->addLabel(pht('Create'));
         $nav->addFilter('', pht('Add Authentication Provider'), $this->getApplicationURI('/config/new/'));
     }
     return $nav;
 }
Exemplo n.º 12
0
 public function buildStandardPageResponse($view, array $data)
 {
     $page = $this->buildStandardPageView();
     $page->setApplicationName('Herald');
     $page->setBaseURI('/herald/');
     $page->setTitle(idx($data, 'title'));
     $page->setGlyph("☿");
     $doclink = PhabricatorEnv::getDoclink('article/Herald_User_Guide.html');
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI('/herald/'))->addLabel('Rules')->addFilter('new', 'Create Rule');
     $rules_map = HeraldContentTypeConfig::getContentTypeMap();
     $first_filter = null;
     foreach ($rules_map as $key => $value) {
         $nav->addFilter('view/' . $key, $value);
         if (!$first_filter) {
             $first_filter = 'view/' . $key;
         }
     }
     $nav->addSpacer()->addLabel('Utilities')->addFilter('test', 'Test Console')->addFilter('transcript', 'Transcripts');
     $user = $this->getRequest()->getUser();
     if ($user->getIsAdmin()) {
         $nav->addSpacer()->addLabel('Admin');
         $view_PHID = nonempty($this->getRequest()->getStr('phid'), null);
         foreach ($rules_map as $key => $value) {
             $nav->addFilter('all/view/' . $key, $value);
         }
     }
     $nav->selectFilter($this->getFilter(), $first_filter);
     $nav->appendChild($view);
     $page->appendChild($nav);
     $tabs = array('help' => array('href' => $doclink, 'name' => 'Help'));
     $page->setTabs($tabs, null);
     $response = new AphrontWebpageResponse();
     return $response->setContent($page->render());
 }
 public function buildSideNavView($filter = null, $for_app = false)
 {
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
     $nav->addLabel(pht('Guides'));
     $modules = PhabricatorGuideModule::getEnabledModules();
     foreach ($modules as $key => $module) {
         $nav->addFilter($key . '/', $module->getModuleName());
     }
     return $nav;
 }
 public function buildSideNav($for_app = false)
 {
     $user = $this->getRequest()->getUser();
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
     $engine = id(new LegalpadDocumentSignatureSearchEngine())->setViewer($user);
     if ($this->document) {
         $engine->setDocument($this->document);
     }
     $engine->addNavigationItems($nav->getMenu());
     return $nav;
 }
 private function renderSideNav($oauth_providers)
 {
     $sidenav = new AphrontSideNavFilterView();
     $sidenav->setBaseURI(new PhutilURI('/settings/page/'))->addLabel('Account Information')->addFilter('account', 'Account')->addFilter('profile', 'Profile')->addSpacer()->addLabel('Email')->addFilter('email', 'Email Address')->addFilter('emailpref', 'Email Preferences')->addSpacer()->addLabel('Authentication');
     if (PhabricatorEnv::getEnvConfig('account.editable') && PhabricatorEnv::getEnvConfig('auth.password-auth-enabled')) {
         $sidenav->addFilter('password', 'Password');
     }
     $sidenav->addFilter('conduit', 'Conduit Certificate');
     if (PhabricatorUserSSHKeysSettingsPanelController::isEnabled()) {
         $sidenav->addFilter('sshkeys', 'SSH Public Keys');
     }
     $sidenav->addSpacer();
     $sidenav->addLabel('Application Settings');
     $sidenav->addFilter('preferences', 'Display Preferences');
     $sidenav->addFilter('search', 'Search Preferences');
     $items = array();
     foreach ($oauth_providers as $provider) {
         if (!$provider->isProviderEnabled()) {
             continue;
         }
         $key = $provider->getProviderKey();
         $name = $provider->getProviderName();
         $items[$key] = $name . ' Account';
     }
     if ($items) {
         $sidenav->addSpacer();
         $sidenav->addLabel('Linked Accounts');
         foreach ($items as $key => $name) {
             $sidenav->addFilter($key, $name);
         }
     }
     return $sidenav;
 }
 public function buildSideNavView()
 {
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
     $nav->addLabel('Mail Logs');
     $nav->addFilter('sent', 'Sent Mail', $this->getApplicationURI());
     $nav->addFilter('received', 'Received Mail');
     $nav->addSpacer();
     if ($this->getRequest()->getUser()->getIsAdmin()) {
         $nav->addLabel('Diagnostics');
         $nav->addFilter('send', 'Send Test');
         $nav->addFilter('receive', 'Receive Test');
     }
     return $nav;
 }
 public function buildNav()
 {
     $user = $this->getRequest()->getUser();
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI('/'));
     $nav->addLabel('Phabricator');
     $nav->addFilter('home', 'Tactical Command', '/');
     $nav->addFilter('jump', 'Jump Nav');
     $nav->addFilter('feed', 'Feed');
     $nav->addSpacer();
     $nav->addFilter('applications', 'More Stuff');
     return $nav;
 }
 public function buildNav()
 {
     $user = $this->getRequest()->getUser();
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI('/'));
     $applications = id(new PhabricatorApplicationQuery())->setViewer($user)->withInstalled(true)->withUnlisted(false)->withLaunchable(true)->execute();
     $pinned = $user->loadPreferences()->getPinnedApplications($applications, $user);
     // Force "Applications" to appear at the bottom.
     $meta_app = 'PhabricatorApplicationsApplication';
     $pinned = array_fuse($pinned);
     unset($pinned[$meta_app]);
     $pinned[$meta_app] = $meta_app;
     $applications[$meta_app] = PhabricatorApplication::getByClass($meta_app);
     $tiles = array();
     $home_app = new PhabricatorHomeApplication();
     $tiles[] = id(new PhabricatorApplicationLaunchView())->setApplication($home_app)->setApplicationStatus($home_app->loadStatus($user))->addClass('phabricator-application-launch-phone-only')->setUser($user);
     foreach ($pinned as $pinned_application) {
         if (empty($applications[$pinned_application])) {
             continue;
         }
         $application = $applications[$pinned_application];
         $tile = id(new PhabricatorApplicationLaunchView())->setApplication($application)->setApplicationStatus($application->loadStatus($user))->setUser($user);
         $tiles[] = $tile;
     }
     $nav->addCustomBlock(phutil_tag('div', array('class' => 'application-tile-group'), $tiles));
     $nav->addFilter('', pht('Customize Applications...'), '/settings/panel/home/');
     $nav->addClass('phabricator-side-menu-home');
     $nav->selectFilter(null);
     return $nav;
 }
 protected function buildSideNavView(PhabricatorCalendarEvent $status = null)
 {
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
     $nav->addLabel(pht('Calendar'));
     $nav->addFilter('/', pht('My Events'));
     $nav->addFilter('all/', pht('View All'));
     $nav->addFilter('event/create/', pht('Create Event'));
     if ($status && $status->getID()) {
         $nav->addFilter('event/edit/' . $status->getID() . '/', pht('Edit Event'));
     }
     $nav->addFilter('event/', pht('Upcoming Events'));
     return $nav;
 }
 public function buildStandardPageResponse($view, array $data)
 {
     $page = $this->buildStandardPageView();
     $page->setApplicationName('Conduit');
     $page->setBaseURI('/conduit/');
     $page->setTitle(idx($data, 'title'));
     $page->setGlyph("⇵");
     if ($this->showSideNav()) {
         $nav = new AphrontSideNavFilterView();
         $nav->setBaseURI(new PhutilURI('/conduit/'));
         $method_filters = $this->getMethodFilters();
         foreach ($method_filters as $group => $methods) {
             $nav->addLabel($group);
             foreach ($methods as $method) {
                 $method_name = $method['full_name'];
                 $display_name = $method_name;
                 switch ($method['status']) {
                     case ConduitAPIMethod::METHOD_STATUS_DEPRECATED:
                         $display_name = '(' . $display_name . ')';
                         break;
                 }
                 $nav->addFilter('method/' . $method_name, $display_name);
             }
             $nav->addSpacer();
         }
         $nav->selectFilter($this->getFilter());
         $nav->appendChild($view);
         $body = $nav;
     } else {
         $body = $view;
     }
     $page->appendChild($body);
     $response = new AphrontWebpageResponse();
     return $response->setContent($page->render());
 }
 public function processRequest()
 {
     $classes = id(new PhutilSymbolLoader())->setAncestorClass('PhabricatorUIExample')->setConcreteOnly(true)->selectAndLoadSymbols();
     $classes = ipull($classes, 'name', 'name');
     foreach ($classes as $class => $ignored) {
         $classes[$class] = newv($class, array());
     }
     $classes = msort($classes, 'getName');
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI('view/')));
     foreach ($classes as $class => $obj) {
         $name = $obj->getName();
         $nav->addFilter($class, $name);
     }
     $selected = $nav->selectFilter($this->class, head_key($classes));
     require_celerity_resource('phabricator-ui-example-css');
     $example = $classes[$selected];
     $example->setRequest($this->getRequest());
     $result = $example->renderExample();
     if ($result instanceof AphrontResponse) {
         // This allows examples to generate dialogs, etc., for demonstration.
         return $result;
     }
     $nav->appendChild('<div class="phabricator-ui-example-header">' . '<h1 class="phabricator-ui-example-name">' . phutil_escape_html($example->getName()) . ' (' . get_class($example) . ')' . '</h1>' . '<p class="phabricator-ui-example-description">' . $example->getDescription() . '</p>' . '</div>');
     $nav->appendChild($result);
     return $this->buildApplicationPage($nav, array('title' => 'UI Example', 'device' => true));
 }
 protected function buildSideNavView(PhabricatorFileImageMacro $macro = null)
 {
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
     $nav->addLabel('Create');
     $nav->addFilter('edit', 'Create Macro');
     $nav->addSpacer();
     $nav->addLabel('Macros');
     $nav->addFilter('', 'All Macros');
     return $nav;
 }
 protected function buildSideNavView()
 {
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
     $nav->addLabel(pht('Daemons'));
     $nav->addFilter('/', pht('Console'));
     $nav->addFilter('log', pht('All Daemons'));
     $nav->addLabel(pht('Bulk Jobs'));
     $nav->addFilter('bulk', pht('Manage Bulk Jobs'));
     return $nav;
 }
Exemplo n.º 24
0
 protected final function buildSideNav($selected)
 {
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI('/drydock/'));
     $nav->addFilter('resource', 'Resources');
     $nav->addFilter('lease', 'Leases');
     $nav->addSpacer();
     $nav->addFilter('log', 'Logs');
     $nav->selectFilter($selected, 'resource');
     return $nav;
 }
 public function buildSideNavView()
 {
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
     // These are only used on mobile.
     $nav->addFilter('blueprint', pht('Blueprints'));
     $nav->addFilter('resource', pht('Resources'));
     $nav->addFilter('lease', pht('Leases'));
     $nav->addFilter('operation', pht('Repository Operations'));
     $nav->selectFilter(null);
     return $nav;
 }
 public function buildSideNavView($filter = null, $for_app = false)
 {
     $user = $this->getRequest()->getUser();
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
     $nav->addLabel(pht('Site Configuration'));
     $nav->addFilter('/', pht('Option Groups'));
     $nav->addFilter('all/', pht('All Settings'));
     $nav->addFilter('issue/', pht('Setup Issues'));
     $nav->addFilter('welcome/', pht('Welcome Screen'));
     return $nav;
 }
 private function renderSideNav(array $panels)
 {
     $nav = new AphrontSideNavFilterView();
     if ($this->isSelf()) {
         $base_uri = 'panel/';
     } else {
         $base_uri = $this->getUser()->getID() . '/panel/';
     }
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI($base_uri)));
     $group = null;
     foreach ($panels as $panel) {
         if ($panel->getPanelGroup() != $group) {
             $group = $panel->getPanelGroup();
             $nav->addLabel($group);
         }
         $nav->addFilter($panel->getPanelKey(), $panel->getPanelName());
     }
     return $nav;
 }
Exemplo n.º 28
0
 public function buildSideNavView()
 {
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
     $engine = id(new DrydockLogSearchEngine())->setViewer($this->getRequest()->getUser());
     $blueprint = $this->getBlueprint();
     if ($blueprint) {
         $engine->setBlueprint($blueprint);
     }
     $resource = $this->getResource();
     if ($resource) {
         $engine->setResource($resource);
     }
     $lease = $this->getLease();
     if ($lease) {
         $engine->setLease($lease);
     }
     $engine->addNavigationItems($nav->getMenu());
     $nav->selectFilter(null);
     return $nav;
 }
 public function handleRequest(AphrontRequest $request)
 {
     $id = $request->getURIData('class');
     $classes = id(new PhutilSymbolLoader())->setAncestorClass('PhabricatorUIExample')->loadObjects();
     $classes = msort($classes, 'getName');
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI('view/')));
     foreach ($classes as $class => $obj) {
         $name = $obj->getName();
         $nav->addFilter($class, $name);
     }
     $selected = $nav->selectFilter($id, head_key($classes));
     $example = $classes[$selected];
     $example->setRequest($this->getRequest());
     $result = $example->renderExample();
     if ($result instanceof AphrontResponse) {
         // This allows examples to generate dialogs, etc., for demonstration.
         return $result;
     }
     require_celerity_resource('phabricator-ui-example-css');
     $crumbs = $this->buildApplicationCrumbs();
     $crumbs->addTextCrumb($example->getName());
     $note = id(new PHUIInfoView())->setTitle(pht('%s (%s)', $example->getName(), get_class($example)))->appendChild($example->getDescription())->setSeverity(PHUIInfoView::SEVERITY_NODATA);
     $nav->appendChild(array($crumbs, $note, $result));
     return $this->buildApplicationPage($nav, array('title' => $example->getName()));
 }
 public function processRequest()
 {
     $classes = id(new PhutilSymbolLoader())->setAncestorClass('PhabricatorUIExample')->loadObjects();
     $classes = msort($classes, 'getName');
     $nav = new AphrontSideNavFilterView();
     $nav->setBaseURI(new PhutilURI($this->getApplicationURI('view/')));
     foreach ($classes as $class => $obj) {
         $name = $obj->getName();
         $nav->addFilter($class, $name);
     }
     $selected = $nav->selectFilter($this->class, head_key($classes));
     $example = $classes[$selected];
     $example->setRequest($this->getRequest());
     $result = $example->renderExample();
     if ($result instanceof AphrontResponse) {
         // This allows examples to generate dialogs, etc., for demonstration.
         return $result;
     }
     require_celerity_resource('phabricator-ui-example-css');
     $crumbs = $this->buildApplicationCrumbs();
     $crumbs->addTextCrumb($example->getName());
     $header = id(new PHUIHeaderView())->setHeader(pht('%s (%s)', $example->getName(), get_class($example)))->setSubheader($example->getDescription())->setNoBackground(true);
     $nav->appendChild(array($crumbs, $header, phutil_tag('br'), $result));
     return $this->buildApplicationPage($nav, array('title' => $example->getName()));
 }