protected function renderResultList(array $countdowns, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($countdowns, 'PhabricatorCountdown');
     $viewer = $this->requireViewer();
     $list = new PHUIObjectItemListView();
     $list->setUser($viewer);
     foreach ($countdowns as $countdown) {
         $id = $countdown->getID();
         $ended = false;
         $epoch = $countdown->getEpoch();
         if ($epoch <= PhabricatorTime::getNow()) {
             $ended = true;
         }
         $item = id(new PHUIObjectItemView())->setUser($viewer)->setObject($countdown)->setObjectName("C{$id}")->setHeader($countdown->getTitle())->setHref($this->getApplicationURI("{$id}/"))->addByline(pht('Created by %s', $handles[$countdown->getAuthorPHID()]->renderLink()));
         if ($ended) {
             $item->addAttribute(pht('Launched on %s', phabricator_datetime($epoch, $viewer)));
             $item->setDisabled(true);
         } else {
             $time_left = $epoch - PhabricatorTime::getNow();
             $num = round($time_left / (60 * 60 * 24));
             $noun = pht('Days');
             if ($num < 1) {
                 $num = round($time_left / (60 * 60), 1);
                 $noun = pht('Hours');
             }
             $item->setCountdown($num, $noun);
             $item->addAttribute(phabricator_datetime($epoch, $viewer));
         }
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No countdowns found.'));
     return $result;
 }
 public function render()
 {
     $list = new PHUIObjectItemListView();
     $list->setFlush(true);
     foreach ($this->edits as $edit) {
         $name = nonempty($edit->getRuleName(), 'Unknown Rule');
         $rule_name = phutil_tag('strong', array(), $name);
         switch ($edit->getAction()) {
             case 'create':
                 $details = pht("Created rule '%s'.", $rule_name);
                 break;
             case 'delete':
                 $details = pht("Deleted rule '%s'.", $rule_name);
                 break;
             case 'edit':
             default:
                 $details = pht("Edited rule '%s'.", $rule_name);
                 break;
         }
         $editor = $this->handles[$edit->getEditorPHID()]->renderLink();
         $date = phabricator_datetime($edit->getDateCreated(), $this->user);
         $item = id(new PHUIObjectItemView())->setObjectName(pht('Rule %d', $edit->getRuleID()))->setSubHead($details)->addIcon('none', $date)->addByLine(pht('Editor: %s', $editor));
         $list->addItem($item);
     }
     $list->setNoDataString(pht('No edits for rule.'));
     return $list;
 }
 protected function renderResultList(array $plans, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($plans, 'HarbormasterBuildPlan');
     $viewer = $this->requireViewer();
     if ($plans) {
         $edge_query = id(new PhabricatorEdgeQuery())->withSourcePHIDs(mpull($plans, 'getPHID'))->withEdgeTypes(array(PhabricatorProjectObjectHasProjectEdgeType::EDGECONST));
         $edge_query->execute();
     }
     $list = new PHUIObjectItemListView();
     foreach ($plans as $plan) {
         $id = $plan->getID();
         $item = id(new PHUIObjectItemView())->setObjectName(pht('Plan %d', $id))->setHeader($plan->getName());
         if ($plan->isDisabled()) {
             $item->setDisabled(true);
         }
         if ($plan->isAutoplan()) {
             $item->addIcon('fa-lock grey', pht('Autoplan'));
         }
         $item->setHref($this->getApplicationURI("plan/{$id}/"));
         $phid = $plan->getPHID();
         $project_phids = $edge_query->getDestinationPHIDs(array($phid));
         $project_handles = $viewer->loadHandles($project_phids);
         $item->addAttribute(id(new PHUIHandleTagListView())->setLimit(4)->setNoDataString(pht('No Projects'))->setSlim(true)->setHandles($project_handles));
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No build plans found.'));
     return $result;
 }
 protected function renderResultList(array $panels, PhabricatorSavedQuery $query, array $handles)
 {
     $viewer = $this->requireViewer();
     $list = new PHUIObjectItemListView();
     $list->setUser($viewer);
     foreach ($panels as $panel) {
         $item = id(new PHUIObjectItemView())->setObjectName($panel->getMonogram())->setHeader($panel->getName())->setHref('/' . $panel->getMonogram())->setObject($panel);
         $impl = $panel->getImplementation();
         if ($impl) {
             $type_text = $impl->getPanelTypeName();
             $type_icon = 'none';
         } else {
             $type_text = nonempty($panel->getPanelType(), pht('Unknown Type'));
             $type_icon = 'fa-question';
         }
         $item->addIcon($type_icon, $type_text);
         if ($panel->getIsArchived()) {
             $item->setDisabled(true);
         }
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No panels found.'));
     return $result;
 }
 private function buildIssueList(array $issues, $group)
 {
     assert_instances_of($issues, 'PhabricatorSetupIssue');
     $list = new PHUIObjectItemListView();
     $list->setStackable(true);
     $ignored_items = array();
     $items = 0;
     foreach ($issues as $issue) {
         if ($issue->getGroup() == $group) {
             $items++;
             $href = $this->getApplicationURI('/issue/' . $issue->getIssueKey() . '/');
             $item = id(new PHUIObjectItemView())->setHeader($issue->getName())->setHref($href)->addAttribute($issue->getSummary());
             if (!$issue->getIsIgnored()) {
                 $item->setBarColor('yellow');
                 $list->addItem($item);
             } else {
                 $item->addIcon('fa-eye-slash', pht('Ignored'));
                 $item->setDisabled(true);
                 $item->setBarColor('none');
                 $ignored_items[] = $item;
             }
         }
     }
     foreach ($ignored_items as $item) {
         $list->addItem($item);
     }
     if ($items == 0) {
         return null;
     } else {
         return $list;
     }
 }
 protected function renderResultList(array $pastes, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($pastes, 'PhabricatorPaste');
     $viewer = $this->requireViewer();
     $lang_map = PhabricatorEnv::getEnvConfig('pygments.dropdown-choices');
     $list = new PHUIObjectItemListView();
     $list->setUser($viewer);
     foreach ($pastes as $paste) {
         $created = phabricator_date($paste->getDateCreated(), $viewer);
         $author = $handles[$paste->getAuthorPHID()]->renderLink();
         $snippet_type = $paste->getSnippet()->getType();
         $lines = phutil_split_lines($paste->getSnippet()->getContent());
         $preview = id(new PhabricatorSourceCodeView())->setLines($lines)->setTruncatedFirstBytes($snippet_type == PhabricatorPasteSnippet::FIRST_BYTES)->setTruncatedFirstLines($snippet_type == PhabricatorPasteSnippet::FIRST_LINES)->setURI(new PhutilURI($paste->getURI()));
         $source_code = phutil_tag('div', array('class' => 'phabricator-source-code-summary'), $preview);
         $created = phabricator_datetime($paste->getDateCreated(), $viewer);
         $line_count = count($lines);
         $line_count = pht('%s Line(s)', new PhutilNumber($line_count));
         $title = nonempty($paste->getTitle(), pht('(An Untitled Masterwork)'));
         $item = id(new PHUIObjectItemView())->setObjectName('P' . $paste->getID())->setHeader($title)->setHref('/P' . $paste->getID())->setObject($paste)->addByline(pht('Author: %s', $author))->addIcon('none', $created)->addIcon('none', $line_count)->appendChild($source_code);
         if ($paste->isArchived()) {
             $item->setDisabled(true);
         }
         $lang_name = $paste->getLanguage();
         if ($lang_name) {
             $lang_name = idx($lang_map, $lang_name, $lang_name);
             $item->addIcon('none', $lang_name);
         }
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No pastes found.'));
     return $result;
 }
 public function render()
 {
     $resources = $this->resources;
     $viewer = $this->getUser();
     $view = new PHUIObjectItemListView();
     foreach ($resources as $resource) {
         $name = pht('Resource %d', $resource->getID()) . ': ' . $resource->getName();
         $item = id(new PHUIObjectItemView())->setHref('/drydock/resource/' . $resource->getID() . '/')->setHeader($name);
         $status = DrydockResourceStatus::getNameForStatus($resource->getStatus());
         $item->addAttribute($status);
         switch ($resource->getStatus()) {
             case DrydockResourceStatus::STATUS_PENDING:
                 $item->setBarColor('yellow');
                 break;
             case DrydockResourceStatus::STATUS_OPEN:
                 $item->setBarColor('green');
                 break;
             case DrydockResourceStatus::STATUS_DESTROYED:
                 $item->setBarColor('black');
                 break;
             default:
                 $item->setBarColor('red');
                 break;
         }
         $view->addItem($item);
     }
     return $view;
 }
 public function handleRequest(AphrontRequest $request)
 {
     $viewer = $request->getViewer();
     $pager = new PHUIPagerView();
     $pager->setURI($request->getRequestURI(), 'page');
     $pager->setOffset($request->getInt('page'));
     $query = id(new PhabricatorTokenReceiverQuery());
     $objects = $query->setViewer($viewer)->executeWithOffsetPager($pager);
     $counts = $query->getTokenCounts();
     $handles = array();
     $phids = array();
     if ($counts) {
         $phids = mpull($objects, 'getPHID');
         $handles = id(new PhabricatorHandleQuery())->setViewer($viewer)->withPHIDs($phids)->execute();
     }
     $list = new PHUIObjectItemListView();
     foreach ($phids as $object) {
         $count = idx($counts, $object, 0);
         $item = id(new PHUIObjectItemView());
         $handle = $handles[$object];
         $item->setHeader($handle->getFullName());
         $item->setHref($handle->getURI());
         $item->addAttribute(pht('Tokens: %s', $count));
         $list->addItem($item);
     }
     $title = pht('Token Leader Board');
     $box = id(new PHUIObjectBoxView())->setHeaderText($title)->setObjectList($list);
     $nav = $this->buildSideNav();
     $nav->setCrumbs($this->buildApplicationCrumbs()->addTextCrumb($title));
     $nav->selectFilter('leaders/');
     $nav->appendChild($box);
     $nav->appendChild($pager);
     return $this->newPage()->setTitle($title)->appendChild($nav);
 }
 public function handleRequest(AphrontRequest $request)
 {
     $viewer = $this->getViewer();
     $pager = new AphrontCursorPagerView();
     $pager->readFromRequest($request);
     $query = id(new PhluxVariableQuery())->setViewer($viewer);
     $vars = $query->executeWithCursorPager($pager);
     $view = new PHUIObjectItemListView();
     $view->setFlush(true);
     foreach ($vars as $var) {
         $key = $var->getVariableKey();
         $item = new PHUIObjectItemView();
         $item->setHeader($key);
         $item->setHref($this->getApplicationURI('/view/' . $key . '/'));
         $item->addIcon('none', phabricator_datetime($var->getDateModified(), $viewer));
         $view->addItem($item);
     }
     $crumbs = $this->buildApplicationCrumbs();
     $box = id(new PHUIObjectBoxView())->setHeaderText('Variables')->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)->appendChild($view);
     $title = pht('Variable List');
     $header = id(new PHUIHeaderView())->setHeader($title)->setHeaderIcon('fa-copy');
     $crumbs->addTextCrumb($title, $this->getApplicationURI());
     $crumbs->setBorder(true);
     $view = id(new PHUITwoColumnView())->setHeader($header)->setFooter(array($box, $pager));
     return $this->newPage()->setTitle($title)->setCrumbs($crumbs)->appendChild($view);
 }
 protected function renderResultList(array $documents, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($documents, 'PhrictionDocument');
     $viewer = $this->requireViewer();
     $list = new PHUIObjectItemListView();
     $list->setUser($viewer);
     foreach ($documents as $document) {
         $content = $document->getContent();
         $slug = $document->getSlug();
         $author_phid = $content->getAuthorPHID();
         $slug_uri = PhrictionDocument::getSlugURI($slug);
         $byline = pht('Edited by %s', $handles[$author_phid]->renderLink());
         $updated = phabricator_datetime($content->getDateCreated(), $viewer);
         $item = id(new PHUIObjectItemView())->setHeader($content->getTitle())->setHref($slug_uri)->addByline($byline)->addIcon('none', $updated);
         $item->addAttribute($slug_uri);
         switch ($document->getStatus()) {
             case PhrictionDocumentStatus::STATUS_DELETED:
                 $item->setDisabled(true);
                 $item->addIcon('delete', pht('Deleted'));
                 break;
             case PhrictionDocumentStatus::STATUS_MOVED:
                 $item->setDisabled(true);
                 $item->addIcon('arrow-right', pht('Moved Away'));
                 break;
         }
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No documents found.'));
     return $result;
 }
 private function buildIssueList(array $issues, $group, $fonticon)
 {
     assert_instances_of($issues, 'PhabricatorSetupIssue');
     $list = new PHUIObjectItemListView();
     $list->setBig(true);
     $ignored_items = array();
     $items = 0;
     foreach ($issues as $issue) {
         if ($issue->getGroup() == $group) {
             $items++;
             $href = $this->getApplicationURI('/issue/' . $issue->getIssueKey() . '/');
             $item = id(new PHUIObjectItemView())->setHeader($issue->getName())->setHref($href)->addAttribute($issue->getSummary());
             if (!$issue->getIsIgnored()) {
                 $icon = id(new PHUIIconView())->setIcon($fonticon)->setBackground('bg-sky');
                 $item->setImageIcon($icon);
                 $list->addItem($item);
             } else {
                 $icon = id(new PHUIIconView())->setIcon('fa-eye-slash')->setBackground('bg-grey');
                 $item->setDisabled(true);
                 $item->setImageIcon($icon);
                 $ignored_items[] = $item;
             }
         }
     }
     foreach ($ignored_items as $item) {
         $list->addItem($item);
     }
     if ($items == 0) {
         return null;
     } else {
         return $list;
     }
 }
 private function processImportRequest($request)
 {
     $admin = $request->getUser();
     $usernames = $request->getArr('usernames');
     $emails = $request->getArr('email');
     $names = $request->getArr('name');
     $notice_view = new PHUIInfoView();
     $notice_view->setSeverity(PHUIInfoView::SEVERITY_NOTICE);
     $notice_view->setTitle(pht('Import Successful'));
     $notice_view->setErrors(array(pht('Successfully imported users from LDAP')));
     $list = new PHUIObjectItemListView();
     $list->setNoDataString(pht('No users imported?'));
     foreach ($usernames as $username) {
         $user = new PhabricatorUser();
         $user->setUsername($username);
         $user->setRealname($names[$username]);
         $email_obj = id(new PhabricatorUserEmail())->setAddress($emails[$username])->setIsVerified(1);
         try {
             id(new PhabricatorUserEditor())->setActor($admin)->createNewUser($user, $email_obj);
             id(new PhabricatorExternalAccount())->setUserPHID($user->getPHID())->setAccountType('ldap')->setAccountDomain('self')->setAccountID($username)->save();
             $header = pht('Successfully added %s', $username);
             $attribute = null;
             $color = 'fa-check green';
         } catch (Exception $ex) {
             $header = pht('Failed to add %s', $username);
             $attribute = $ex->getMessage();
             $color = 'fa-times red';
         }
         $item = id(new PHUIObjectItemView())->setHeader($header)->addAttribute($attribute)->setStatusIcon($color);
         $list->addItem($item);
     }
     return array($notice_view, $list);
 }
 protected function renderResultList(array $posts, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($posts, 'PhamePost');
     $viewer = $this->requireViewer();
     $list = new PHUIObjectItemListView();
     $list->setUser($viewer);
     foreach ($posts as $post) {
         $id = $post->getID();
         $blog = $post->getBlog();
         $blog_name = $viewer->renderHandle($post->getBlogPHID())->render();
         $blog_name = pht('Blog: %s', $blog_name);
         $item = id(new PHUIObjectItemView())->setUser($viewer)->setObject($post)->setObjectName($post->getMonogram())->setHeader($post->getTitle())->setStatusIcon('fa-star')->setHref($post->getViewURI())->addAttribute($blog_name);
         if ($post->isDraft()) {
             $item->setStatusIcon('fa-star-o grey');
             $item->setDisabled(true);
             $item->addIcon('fa-star-o', pht('Draft Post'));
         } else {
             if ($post->isArchived()) {
                 $item->setStatusIcon('fa-ban grey');
                 $item->setDisabled(true);
                 $item->addIcon('fa-ban', pht('Archived Post'));
             } else {
                 $date = $post->getDatePublished();
                 $item->setEpoch($date);
             }
         }
         $item->addAction(id(new PHUIListItemView())->setIcon('fa-pencil')->setHref($post->getEditURI()));
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No blogs posts found.'));
     return $result;
 }
 public function handleRequest(AphrontRequest $request)
 {
     $viewer = $this->getViewer();
     $configs = id(new PhabricatorAuthProviderConfigQuery())->setViewer($viewer)->execute();
     $list = new PHUIObjectItemListView();
     $can_manage = $this->hasApplicationCapability(AuthManageProvidersCapability::CAPABILITY);
     foreach ($configs as $config) {
         $item = new PHUIObjectItemView();
         $id = $config->getID();
         $edit_uri = $this->getApplicationURI('config/edit/' . $id . '/');
         $enable_uri = $this->getApplicationURI('config/enable/' . $id . '/');
         $disable_uri = $this->getApplicationURI('config/disable/' . $id . '/');
         $provider = $config->getProvider();
         if ($provider) {
             $name = $provider->getProviderName();
         } else {
             $name = $config->getProviderType() . ' (' . $config->getProviderClass() . ')';
         }
         $item->setHeader($name);
         if ($provider) {
             $item->setHref($edit_uri);
         } else {
             $item->addAttribute(pht('Provider Implementation Missing!'));
         }
         $domain = null;
         if ($provider) {
             $domain = $provider->getProviderDomain();
             if ($domain !== 'self') {
                 $item->addAttribute($domain);
             }
         }
         if ($config->getShouldAllowRegistration()) {
             $item->addAttribute(pht('Allows Registration'));
         } else {
             $item->addAttribute(pht('Does Not Allow Registration'));
         }
         if ($config->getIsEnabled()) {
             $item->setStatusIcon('fa-check-circle green');
             $item->addAction(id(new PHUIListItemView())->setIcon('fa-times')->setHref($disable_uri)->setDisabled(!$can_manage)->addSigil('workflow'));
         } else {
             $item->setStatusIcon('fa-ban red');
             $item->addIcon('fa-ban grey', pht('Disabled'));
             $item->addAction(id(new PHUIListItemView())->setIcon('fa-plus')->setHref($enable_uri)->setDisabled(!$can_manage)->addSigil('workflow'));
         }
         $list->addItem($item);
     }
     $list->setNoDataString(pht('%s You have not added authentication providers yet. Use "%s" to add ' . 'a provider, which will let users register new Phabricator accounts ' . 'and log in.', phutil_tag('strong', array(), pht('No Providers Configured:')), phutil_tag('a', array('href' => $this->getApplicationURI('config/new/')), pht('Add Authentication Provider'))));
     $crumbs = $this->buildApplicationCrumbs();
     $crumbs->addTextCrumb(pht('Auth Providers'));
     $crumbs->setBorder(true);
     $guidance_context = new PhabricatorAuthProvidersGuidanceContext();
     $guidance = id(new PhabricatorGuidanceEngine())->setViewer($viewer)->setGuidanceContext($guidance_context)->newInfoView();
     $button = id(new PHUIButtonView())->setTag('a')->setColor(PHUIButtonView::SIMPLE)->setHref($this->getApplicationURI('config/new/'))->setIcon('fa-plus')->setDisabled(!$can_manage)->setText(pht('Add Provider'));
     $list->setFlush(true);
     $list = id(new PHUIObjectBoxView())->setHeaderText(pht('Providers'))->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)->appendChild($list);
     $title = pht('Auth Providers');
     $header = id(new PHUIHeaderView())->setHeader($title)->setHeaderIcon('fa-key')->addActionLink($button);
     $view = id(new PHUITwoColumnView())->setHeader($header)->setFooter(array($guidance, $list));
     return $this->newPage()->setTitle($title)->setCrumbs($crumbs)->appendChild($view);
 }
 public function render()
 {
     $leases = $this->leases;
     $viewer = $this->getUser();
     $view = new PHUIObjectItemListView();
     foreach ($leases as $lease) {
         $item = id(new PHUIObjectItemView())->setUser($viewer)->setHeader($lease->getLeaseName())->setHref('/drydock/lease/' . $lease->getID() . '/');
         if ($lease->hasAttachedResource()) {
             $resource = $lease->getResource();
             $resource_href = '/drydock/resource/' . $resource->getID() . '/';
             $resource_name = $resource->getName();
             $item->addAttribute(phutil_tag('a', array('href' => $resource_href), $resource_name));
         }
         $status = DrydockLeaseStatus::getNameForStatus($lease->getStatus());
         $item->addAttribute($status);
         $item->setEpoch($lease->getDateCreated());
         // TODO: Tailor this for clarity.
         if ($lease->isActivating()) {
             $item->setStatusIcon('fa-dot-circle-o yellow');
         } else {
             if ($lease->isActive()) {
                 $item->setStatusIcon('fa-dot-circle-o green');
             } else {
                 $item->setStatusIcon('fa-dot-circle-o red');
             }
         }
         $view->addItem($item);
     }
     return $view;
 }
 public function render()
 {
     $viewer = $this->getUser();
     $authorizations = $this->authorizations;
     $view = new PHUIObjectItemListView();
     $nodata = $this->getNoDataString();
     if ($nodata) {
         $view->setNoDataString($nodata);
     }
     $handles = $viewer->loadHandles(mpull($authorizations, 'getObjectPHID'));
     foreach ($authorizations as $authorization) {
         $id = $authorization->getID();
         $object_phid = $authorization->getObjectPHID();
         $handle = $handles[$object_phid];
         $item = id(new PHUIObjectItemView())->setHref("/drydock/authorization/{$id}/")->setObjectName(pht('Authorization %d', $id))->setHeader($handle->getFullName());
         $item->addAttribute($handle->getTypeName());
         $object_state = $authorization->getObjectAuthorizationState();
         $item->addAttribute(DrydockAuthorization::getObjectStateName($object_state));
         $state = $authorization->getBlueprintAuthorizationState();
         $icon = DrydockAuthorization::getBlueprintStateIcon($state);
         $name = DrydockAuthorization::getBlueprintStateName($state);
         $item->setStatusIcon($icon, $name);
         $view->addItem($item);
     }
     return $view;
 }
Esempio n. 17
0
 protected function renderResultList(array $blogs, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($blogs, 'PhameBlog');
     $viewer = $this->requireViewer();
     $list = new PHUIObjectItemListView();
     $list->setUser($viewer);
     foreach ($blogs as $blog) {
         $id = $blog->getID();
         if ($blog->getDomain()) {
             $domain = $blog->getDomain();
         } else {
             $domain = pht('Local Blog');
         }
         $item = id(new PHUIObjectItemView())->setUser($viewer)->setObject($blog)->setHeader($blog->getName())->setImageURI($blog->getProfileImageURI())->setDisabled($blog->isArchived())->setHref($this->getApplicationURI("/blog/view/{$id}/"))->addAttribute($domain);
         if (!$blog->isArchived()) {
             $button = id(new PHUIButtonView())->setTag('a')->setText('New Post')->setHref($this->getApplicationURI('/post/edit/?blog=' . $id));
             $item->setLaunchButton($button);
         }
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No blogs found.'));
     return $result;
 }
 public function render()
 {
     $resources = $this->resources;
     $viewer = $this->getUser();
     $view = new PHUIObjectItemListView();
     foreach ($resources as $resource) {
         $id = $resource->getID();
         $item = id(new PHUIObjectItemView())->setHref("/drydock/resource/{$id}/")->setObjectName(pht('Resource %d', $id))->setHeader($resource->getResourceName());
         $status = DrydockResourceStatus::getNameForStatus($resource->getStatus());
         $item->addAttribute($status);
         switch ($resource->getStatus()) {
             case DrydockResourceStatus::STATUS_PENDING:
                 $item->setStatusIcon('fa-dot-circle-o yellow');
                 break;
             case DrydockResourceStatus::STATUS_ACTIVE:
                 $item->setStatusIcon('fa-dot-circle-o green');
                 break;
             case DrydockResourceStatus::STATUS_DESTROYED:
                 $item->setStatusIcon('fa-times-circle-o black');
                 break;
             default:
                 $item->setStatusIcon('fa-dot-circle-o red');
                 break;
         }
         $view->addItem($item);
     }
     return $view;
 }
 public function handleRequest(AphrontRequest $request)
 {
     $viewer = $request->getViewer();
     $view = $request->getURIData('view');
     if (!$view) {
         $view = 'all';
     }
     $pager = new PHUIPagerView();
     $pager->setOffset($request->getInt('page'));
     switch ($view) {
         case 'sampled':
             $clause = 'sampleRate > 0';
             $show_type = false;
             break;
         case 'my-runs':
             $clause = qsprintf(id(new PhabricatorXHProfSample())->establishConnection('r'), 'sampleRate = 0 AND userPHID = %s', $request->getUser()->getPHID());
             $show_type = false;
             break;
         case 'manual':
             $clause = 'sampleRate = 0';
             $show_type = false;
             break;
         case 'all':
         default:
             $clause = '1 = 1';
             $show_type = true;
             break;
     }
     $samples = id(new PhabricatorXHProfSample())->loadAllWhere('%Q ORDER BY id DESC LIMIT %d, %d', $clause, $pager->getOffset(), $pager->getPageSize() + 1);
     $samples = $pager->sliceResults($samples);
     $pager->setURI($request->getRequestURI(), 'page');
     $list = new PHUIObjectItemListView();
     foreach ($samples as $sample) {
         $file_phid = $sample->getFilePHID();
         $item = id(new PHUIObjectItemView())->setObjectName($sample->getID())->setHeader($sample->getRequestPath())->setHref($this->getApplicationURI('profile/' . $file_phid . '/'))->addAttribute(number_format($sample->getUsTotal()) . " μs");
         if ($sample->getController()) {
             $item->addAttribute($sample->getController());
         }
         $item->addAttribute($sample->getHostName());
         $rate = $sample->getSampleRate();
         if ($rate == 0) {
             $item->addIcon('flag-6', pht('Manual Run'));
         } else {
             $item->addIcon('flag-7', pht('Sampled (1/%d)', $rate));
         }
         $item->addIcon('none', phabricator_datetime($sample->getDateCreated(), $viewer));
         $list->addItem($item);
     }
     $list->setPager($pager);
     $list->setNoDataString(pht('There are no profiling samples.'));
     $crumbs = $this->buildApplicationCrumbs();
     $crumbs->addTextCrumb(pht('XHProf Samples'));
     $title = pht('XHProf Samples');
     return $this->newPage()->setTitle($title)->setCrumbs($crumbs)->appendChild($list);
 }
 public function render()
 {
     $rows = array();
     if (!$this->user) {
         throw new PhutilInvalidStateException('setUser');
     }
     $env_hash = PhabricatorEnv::calculateEnvironmentHash();
     $list = new PHUIObjectItemListView();
     $list->setFlush(true);
     foreach ($this->daemonLogs as $log) {
         $id = $log->getID();
         $epoch = $log->getDateCreated();
         $item = id(new PHUIObjectItemView())->setObjectName(pht('Daemon %s', $id))->setHeader($log->getDaemon())->setHref("/daemon/log/{$id}/")->addIcon('none', phabricator_datetime($epoch, $this->user));
         $status = $log->getStatus();
         switch ($status) {
             case PhabricatorDaemonLog::STATUS_RUNNING:
                 if ($env_hash != $log->getEnvHash()) {
                     $item->setStatusIcon('fa-warning yellow');
                     $item->addAttribute(pht('This daemon is running with an out of date configuration and ' . 'should be restarted.'));
                 } else {
                     $item->setStatusIcon('fa-rocket green');
                     $item->addAttribute(pht('This daemon is running.'));
                 }
                 break;
             case PhabricatorDaemonLog::STATUS_DEAD:
                 $item->setStatusIcon('fa-warning red');
                 $item->addAttribute(pht('This daemon is lost or exited uncleanly, and is presumed ' . 'dead.'));
                 $item->addIcon('fa-times grey', pht('Dead'));
                 break;
             case PhabricatorDaemonLog::STATUS_EXITING:
                 $item->addAttribute(pht('This daemon is exiting.'));
                 $item->addIcon('fa-check', pht('Exiting'));
                 break;
             case PhabricatorDaemonLog::STATUS_EXITED:
                 $item->setDisabled(true);
                 $item->addAttribute(pht('This daemon exited cleanly.'));
                 $item->addIcon('fa-check grey', pht('Exited'));
                 break;
             case PhabricatorDaemonLog::STATUS_WAIT:
                 $item->setStatusIcon('fa-clock-o blue');
                 $item->addAttribute(pht('This daemon encountered an error recently and is waiting a ' . 'moment to restart.'));
                 $item->addIcon('fa-clock-o grey', pht('Waiting'));
                 break;
             case PhabricatorDaemonLog::STATUS_UNKNOWN:
             default:
                 $item->setStatusIcon('fa-warning orange');
                 $item->addAttribute(pht('This daemon has not reported its status recently. It may ' . 'have exited uncleanly.'));
                 $item->addIcon('fa-warning', pht('Unknown'));
                 break;
         }
         $list->addItem($item);
     }
     return $list;
 }
 public function render()
 {
     $handles = $this->handles;
     require_celerity_resource('maniphest-task-summary-css');
     $list = new PHUIObjectItemListView();
     if ($this->noDataString) {
         $list->setNoDataString($this->noDataString);
     } else {
         $list->setNoDataString(pht('No tasks.'));
     }
     $status_map = ManiphestTaskStatus::getTaskStatusMap();
     $color_map = ManiphestTaskPriority::getColorMap();
     $priority_map = ManiphestTaskPriority::getTaskPriorityMap();
     if ($this->showBatchControls) {
         Javelin::initBehavior('maniphest-list-editor');
     }
     foreach ($this->tasks as $task) {
         $item = id(new PHUIObjectItemView())->setUser($this->getUser())->setObject($task)->setObjectName('T' . $task->getID())->setHeader($task->getTitle())->setHref('/T' . $task->getID());
         if ($task->getOwnerPHID()) {
             $owner = $handles[$task->getOwnerPHID()];
             $item->addByline(pht('Assigned: %s', $owner->renderLink()));
         }
         $status = $task->getStatus();
         $pri = idx($priority_map, $task->getPriority());
         $status_name = idx($status_map, $task->getStatus());
         $tooltip = pht('%s, %s', $status_name, $pri);
         $icon = ManiphestTaskStatus::getStatusIcon($task->getStatus());
         $color = idx($color_map, $task->getPriority(), 'grey');
         if ($task->isClosed()) {
             $item->setDisabled(true);
             $color = 'grey';
         }
         $item->setStatusIcon($icon . ' ' . $color, $tooltip);
         $item->addIcon('none', phabricator_datetime($task->getDateModified(), $this->getUser()));
         if ($this->showSubpriorityControls) {
             $item->setGrippable(true);
         }
         if ($this->showSubpriorityControls || $this->showBatchControls) {
             $item->addSigil('maniphest-task');
         }
         $project_handles = array_select_keys($handles, array_reverse($task->getProjectPHIDs()));
         $item->addAttribute(id(new PHUIHandleTagListView())->setLimit(4)->setNoDataString(pht('No Projects'))->setSlim(true)->setHandles($project_handles));
         $item->setMetadata(array('taskID' => $task->getID()));
         if ($this->showBatchControls) {
             $href = new PhutilURI('/maniphest/task/edit/' . $task->getID() . '/');
             if (!$this->showSubpriorityControls) {
                 $href->setQueryParam('ungrippable', 'true');
             }
             $item->addAction(id(new PHUIListItemView())->setIcon('fa-pencil')->addSigil('maniphest-edit-task')->setHref($href));
         }
         $list->addItem($item);
     }
     return $list;
 }
 private function renderBlogList(array $blogs, PhabricatorUser $user, $nodata)
 {
     $view = new PHUIObjectItemListView();
     $view->setNoDataString($nodata);
     $view->setUser($user);
     foreach ($blogs as $blog) {
         $item = id(new PHUIObjectItemView())->setHeader($blog->getName())->setHref($this->getApplicationURI('blog/view/' . $blog->getID() . '/'))->setObject($blog);
         $view->addItem($item);
     }
     return $view;
 }
 protected function renderResultList(array $merchants, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($merchants, 'PhortuneMerchant');
     $viewer = $this->requireViewer();
     $list = new PHUIObjectItemListView();
     $list->setUser($viewer);
     foreach ($merchants as $merchant) {
         $item = id(new PHUIObjectItemView())->setObjectName(pht('Merchant %d', $merchant->getID()))->setHeader($merchant->getName())->setHref('/phortune/merchant/' . $merchant->getID() . '/')->setObject($merchant);
         $list->addItem($item);
     }
     return $list;
 }
 private function renderBlogList(array $blogs, PhabricatorUser $viewer, $nodata)
 {
     $view = new PHUIObjectItemListView();
     $view->setNoDataString($nodata);
     $view->setUser($viewer);
     foreach ($blogs as $blog) {
         $id = $blog->getID();
         $item = id(new PHUIObjectItemView())->setUser($viewer)->setObject($blog)->setHeader($blog->getName())->setStatusIcon('fa-star')->setHref($this->getApplicationURI("/blog/view/{$id}/"))->addAttribute($blog->getSkin())->addAttribute($blog->getDomain());
         $view->addItem($item);
     }
     return $view;
 }
 private function buildConfigOptionsList(array $groups)
 {
     assert_instances_of($groups, 'PhabricatorApplicationConfigOptions');
     $list = new PHUIObjectItemListView();
     $list->setStackable(true);
     $groups = msort($groups, 'getName');
     foreach ($groups as $group) {
         $item = id(new PHUIObjectItemView())->setHeader($group->getName())->setHref('/config/group/' . $group->getKey() . '/')->addAttribute($group->getDescription());
         $list->addItem($item);
     }
     return $list;
 }
 protected function renderResultList(array $queues, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($queues, 'NuanceQueue');
     $viewer = $this->requireViewer();
     $list = new PHUIObjectItemListView();
     $list->setUser($viewer);
     foreach ($queues as $queue) {
         $item = id(new PHUIObjectItemView())->setObjectName(pht('Queue %d', $queue->getID()))->setHeader($queue->getName())->setHref($queue->getURI());
         $list->addItem($item);
     }
     return $list;
 }
 public function handleRequest(AphrontRequest $request)
 {
     $viewer = $request->getViewer();
     $channels = id(new PhabricatorChatLogChannelQuery())->setViewer($viewer)->execute();
     $list = new PHUIObjectItemListView();
     foreach ($channels as $channel) {
         $item = id(new PHUIObjectItemView())->setHeader($channel->getChannelName())->setHref('/chatlog/channel/' . $channel->getID() . '/')->addAttribute($channel->getServiceName())->addAttribute($channel->getServiceType());
         $list->addItem($item);
     }
     $crumbs = $this->buildApplicationCrumbs()->addTextCrumb(pht('Channel List'), $this->getApplicationURI());
     $box = id(new PHUIObjectBoxView())->setHeaderText('Channel List')->setObjectList($list);
     return $this->newPage()->setTitle(pht('Channel List'))->setCrumbs($crumbs)->appendChild($box);
 }
 public function processRequest()
 {
     $request = $this->getRequest();
     $user = $request->getUser();
     $channels = id(new PhabricatorChatLogChannelQuery())->setViewer($user)->execute();
     $list = new PHUIObjectItemListView();
     foreach ($channels as $channel) {
         $item = id(new PHUIObjectItemView())->setHeader($channel->getChannelName())->setHref('/chatlog/channel/' . $channel->getID() . '/')->addAttribute($channel->getServiceName())->addAttribute($channel->getServiceType());
         $list->addItem($item);
     }
     $crumbs = $this->buildApplicationCrumbs()->addTextCrumb(pht('Channel List'), $this->getApplicationURI());
     return $this->buildApplicationPage(array($crumbs, $list), array('title' => pht('Channel List')));
 }
 protected function renderResultList(array $networks, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($networks, 'AlmanacNetwork');
     $viewer = $this->requireViewer();
     $list = new PHUIObjectItemListView();
     $list->setUser($viewer);
     foreach ($networks as $network) {
         $id = $network->getID();
         $item = id(new PHUIObjectItemView())->setObjectName(pht('Network %d', $id))->setHeader($network->getName())->setHref($this->getApplicationURI("network/{$id}/"))->setObject($network);
         $list->addItem($item);
     }
     return $list;
 }
 protected function renderResultList(array $dashboards, PhabricatorSavedQuery $query, array $handles)
 {
     $dashboards = mpull($dashboards, null, 'getPHID');
     $viewer = $this->requireViewer();
     if ($dashboards) {
         $installs = id(new PhabricatorDashboardInstall())->loadAllWhere('objectPHID IN (%Ls) AND dashboardPHID IN (%Ls)', array(PhabricatorHomeApplication::DASHBOARD_DEFAULT, $viewer->getPHID()), array_keys($dashboards));
         $installs = mpull($installs, null, 'getDashboardPHID');
     } else {
         $installs = array();
     }
     $proj_phids = array();
     foreach ($dashboards as $dashboard) {
         foreach ($dashboard->getProjectPHIDs() as $project_phid) {
             $proj_phids[] = $project_phid;
         }
     }
     $proj_handles = id(new PhabricatorHandleQuery())->setViewer($viewer)->withPHIDs($proj_phids)->execute();
     $list = new PHUIObjectItemListView();
     $list->setUser($viewer);
     $list->initBehavior('phabricator-tooltips', array());
     $list->requireResource('aphront-tooltip-css');
     foreach ($dashboards as $dashboard_phid => $dashboard) {
         $id = $dashboard->getID();
         $item = id(new PHUIObjectItemView())->setObjectName(pht('Dashboard %d', $id))->setHeader($dashboard->getName())->setHref($this->getApplicationURI("view/{$id}/"))->setObject($dashboard);
         if (isset($installs[$dashboard_phid])) {
             $install = $installs[$dashboard_phid];
             if ($install->getObjectPHID() == $viewer->getPHID()) {
                 $attrs = array('tip' => pht('This dashboard is installed to your personal homepage.'));
                 $item->addIcon('fa-user', pht('Installed'), $attrs);
             } else {
                 $attrs = array('tip' => pht('This dashboard is the default homepage for all users.'));
                 $item->addIcon('fa-globe', pht('Installed'), $attrs);
             }
         }
         $project_handles = array_select_keys($proj_handles, $dashboard->getProjectPHIDs());
         $item->addAttribute(id(new PHUIHandleTagListView())->setLimit(4)->setNoDataString(pht('No Projects'))->setSlim(true)->setHandles($project_handles));
         if ($dashboard->isClosed()) {
             $item->setDisabled(true);
         }
         $can_edit = PhabricatorPolicyFilter::hasCapability($viewer, $dashboard, PhabricatorPolicyCapability::CAN_EDIT);
         $href_view = $this->getApplicationURI("manage/{$id}/");
         $item->addAction(id(new PHUIListItemView())->setName(pht('Manage'))->setIcon('fa-th')->setHref($href_view));
         $href_edit = $this->getApplicationURI("edit/{$id}/");
         $item->addAction(id(new PHUIListItemView())->setName(pht('Edit'))->setIcon('fa-pencil')->setHref($href_edit)->setDisabled(!$can_edit));
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No dashboards found.'));
     return $result;
 }