コード例 #1
1
 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;
 }
コード例 #2
0
 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();
         } else {
             $type_text = nonempty($panel->getPanelType(), pht('Unknown Type'));
         }
         $item->addAttribute($type_text);
         $properties = $panel->getProperties();
         $class = idx($properties, 'class');
         $item->addAttribute($class);
         if ($panel->getIsArchived()) {
             $item->setDisabled(true);
         }
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No panels found.'));
     return $result;
 }
コード例 #3
0
 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)->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('none', pht('Draft Post'));
         } else {
             $date = $post->getDatePublished();
             $item->setEpoch($date);
         }
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No blogs posts found.'));
     return $result;
 }
コード例 #4
0
 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();
     }
     $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);
             }
         }
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No dashboards found.'));
     return $result;
 }
コード例 #5
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;
 }
コード例 #6
0
 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;
 }
コード例 #7
0
 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())->setSubhead(pht('Merchant %d', $merchant->getID()))->setHeader($merchant->getName())->setHref('/phortune/merchant/' . $merchant->getID() . '/')->setObject($merchant)->setImageIcon('fa-bank');
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No merchants found.'));
     return $result;
 }
コード例 #8
0
 protected function renderResultList(array $services, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($services, 'AlmanacService');
     $viewer = $this->requireViewer();
     $list = new PHUIObjectItemListView();
     $list->setUser($viewer);
     foreach ($services as $service) {
         $item = id(new PHUIObjectItemView())->setObjectName(pht('Service %d', $service->getID()))->setHeader($service->getName())->setHref($service->getURI())->setObject($service)->addIcon($service->getServiceImplementation()->getServiceTypeIcon(), $service->getServiceImplementation()->getServiceTypeShortName());
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No Almanac Services found.'));
     return $result;
 }
コード例 #9
0
 protected function renderResultList(array $clients, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($clients, 'PhabricatorOauthServerClient');
     $viewer = $this->requireViewer();
     $list = id(new PHUIObjectItemListView())->setUser($viewer);
     foreach ($clients as $client) {
         $creator = $handles[$client->getCreatorPHID()];
         $item = id(new PHUIObjectItemView())->setObjectName(pht('Application %d', $client->getID()))->setHeader($client->getName())->setHref($client->getViewURI())->setObject($client)->addByline(pht('Creator: %s', $creator->renderLink()));
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No clients found.'));
     return $result;
 }
コード例 #10
0
 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);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No queues found.'));
     return $result;
 }
コード例 #11
0
 protected function renderResultList(array $urls, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($urls, 'PhabricatorPhurlURL');
     $viewer = $this->requireViewer();
     $list = new PHUIObjectItemListView();
     $handles = $viewer->loadHandles(mpull($urls, 'getAuthorPHID'));
     foreach ($urls as $url) {
         $item = id(new PHUIObjectItemView())->setUser($viewer)->setObject($url)->setHeader($viewer->renderHandle($url->getPHID()));
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No URLs found.'));
     return $result;
 }
 protected function renderResultList(array $packages, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($packages, 'PhabricatorOwnersPackage');
     $viewer = $this->requireViewer();
     $list = id(new PHUIObjectItemListView())->setUser($viewer);
     foreach ($packages as $package) {
         $id = $package->getID();
         $item = id(new PHUIObjectItemView())->setObject($package)->setObjectName(pht('Package %d', $id))->setHeader($package->getName())->setHref('/owners/package/' . $id . '/');
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No packages found.'));
     return $result;
 }
コード例 #13
0
 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);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No Almanac Networks found.'));
     return $result;
 }
コード例 #14
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();
         $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());
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No blogs found.'));
     return $result;
 }
コード例 #15
0
 protected function renderResultList(array $items, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($items, 'NuanceItem');
     $viewer = $this->requireViewer();
     $list = new PHUIObjectItemListView();
     $list->setUser($viewer);
     foreach ($items as $item) {
         $impl = $item->getImplementation();
         $view = id(new PHUIObjectItemView())->setObjectName(pht('Item %d', $item->getID()))->setHeader($item->getDisplayName())->setHref($item->getURI());
         $view->addIcon($impl->getItemTypeDisplayIcon(), $impl->getItemTypeDisplayName());
         $list->addItem($view);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No items found.'));
     return $result;
 }
 protected function renderResultList(array $imports, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($imports, 'PhabricatorCalendarImport');
     $viewer = $this->requireViewer();
     $list = new PHUIObjectItemListView();
     foreach ($imports as $import) {
         $item = id(new PHUIObjectItemView())->setViewer($viewer)->setObjectName(pht('Import %d', $import->getID()))->setHeader($import->getDisplayName())->setHref($import->getURI());
         if ($import->getIsDisabled()) {
             $item->setDisabled(true);
         }
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No imports found.'));
     return $result;
 }
コード例 #17
0
 protected function renderResultList(array $devices, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($devices, 'AlmanacDevice');
     $viewer = $this->requireViewer();
     $list = new PHUIObjectItemListView();
     $list->setUser($viewer);
     foreach ($devices as $device) {
         $item = id(new PHUIObjectItemView())->setObjectName(pht('Device %d', $device->getID()))->setHeader($device->getName())->setHref($device->getURI())->setObject($device);
         if ($device->isClusterDevice()) {
             $item->addIcon('fa-sitemap', pht('Cluster Device'));
         }
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No Almanac Devices found.'));
     return $result;
 }
コード例 #18
0
 protected function renderResultList(array $blueprints, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($blueprints, 'DrydockBlueprint');
     $viewer = $this->requireViewer();
     $view = new PHUIObjectItemListView();
     foreach ($blueprints as $blueprint) {
         $item = id(new PHUIObjectItemView())->setHeader($blueprint->getBlueprintName())->setHref($this->getApplicationURI('/blueprint/' . $blueprint->getID()))->setObjectName(pht('Blueprint %d', $blueprint->getID()));
         if (!$blueprint->getImplementation()->isEnabled()) {
             $item->setDisabled(true);
         }
         $item->addAttribute($blueprint->getImplementation()->getBlueprintName());
         $view->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($view);
     $result->setNoDataString(pht('No blueprints found.'));
     return $result;
 }
コード例 #19
0
 protected function renderResultList(array $keys, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($keys, 'PhabricatorAuthSSHKey');
     $viewer = $this->requireViewer();
     $list = new PHUIObjectItemListView();
     $list->setUser($viewer);
     foreach ($keys as $key) {
         $item = id(new PHUIObjectItemView())->setObjectName(pht('SSH Key %d', $key->getID()))->setHeader($key->getName())->setHref($key->getURI());
         if (!$key->getIsActive()) {
             $item->setDisabled(true);
         }
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No matching SSH keys.'));
     return $result;
 }
コード例 #20
0
 protected function renderResultList(array $badges, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($badges, 'PhabricatorBadgesBadge');
     $viewer = $this->requireViewer();
     $list = id(new PHUIObjectItemListView());
     foreach ($badges as $badge) {
         $quality = idx($badge->getQualityNameMap(), $badge->getQuality());
         $mini_badge = id(new PHUIBadgeMiniView())->setHeader($badge->getName())->setIcon($badge->getIcon())->setQuality($badge->getQuality());
         $item = id(new PHUIObjectItemView())->setHeader($badge->getName())->setBadge($mini_badge)->setHref('/badges/view/' . $badge->getID() . '/')->addAttribute($quality)->addAttribute($badge->getFlavor());
         if ($badge->isClosed()) {
             $item->setDisabled(true);
             $item->addIcon('fa-ban', pht('Archived'));
         }
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No badges found.'));
     return $result;
 }
コード例 #21
0
 protected function renderResultList(array $spaces, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($spaces, 'PhabricatorSpacesNamespace');
     $viewer = $this->requireViewer();
     $list = new PHUIObjectItemListView();
     $list->setUser($viewer);
     foreach ($spaces as $space) {
         $item = id(new PHUIObjectItemView())->setObjectName($space->getMonogram())->setHeader($space->getNamespaceName())->setHref('/' . $space->getMonogram());
         if ($space->getIsDefaultNamespace()) {
             $item->addIcon('fa-certificate', pht('Default Space'));
         }
         if ($space->getIsArchived()) {
             $item->setDisabled(true);
         }
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No spaces found.'));
     return $result;
 }
コード例 #22
0
 protected function renderResultList(array $plans, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($plans, 'HarbormasterBuildPlan');
     $viewer = $this->requireViewer();
     $list = new PHUIObjectItemListView();
     foreach ($plans as $plan) {
         $id = $plan->getID();
         $item = id(new PHUIObjectItemView())->setObjectName(pht('Plan %d', $plan->getID()))->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}/"));
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No build plans found.'));
     return $result;
 }
 protected function renderResultList(array $exports, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($exports, 'PhabricatorCalendarExport');
     $viewer = $this->requireViewer();
     $list = new PHUIObjectItemListView();
     foreach ($exports as $export) {
         $item = id(new PHUIObjectItemView())->setViewer($viewer)->setObjectName(pht('Export %d', $export->getID()))->setHeader($export->getName())->setHref($export->getURI());
         if ($export->getIsDisabled()) {
             $item->setDisabled(true);
         }
         $mode = $export->getPolicyMode();
         $policy_icon = PhabricatorCalendarExport::getPolicyModeIcon($mode);
         $policy_name = PhabricatorCalendarExport::getPolicyModeName($mode);
         $policy_color = PhabricatorCalendarExport::getPolicyModeColor($mode);
         $item->addIcon("{$policy_icon} {$policy_color}", $policy_name);
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No exports found.'));
     return $result;
 }
コード例 #24
0
 protected function renderResultList(array $blueprints, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($blueprints, 'DrydockBlueprint');
     $viewer = $this->requireViewer();
     if ($blueprints) {
         $edge_query = id(new PhabricatorEdgeQuery())->withSourcePHIDs(mpull($blueprints, 'getPHID'))->withEdgeTypes(array(PhabricatorProjectObjectHasProjectEdgeType::EDGECONST));
         $edge_query->execute();
     }
     $view = new PHUIObjectItemListView();
     foreach ($blueprints as $blueprint) {
         $impl = $blueprint->getImplementation();
         $item = id(new PHUIObjectItemView())->setHeader($blueprint->getBlueprintName())->setHref($blueprint->getURI())->setObjectName(pht('Blueprint %d', $blueprint->getID()));
         if (!$impl->isEnabled()) {
             $item->setDisabled(true);
             $item->addIcon('fa-chain-broken grey', pht('Implementation'));
         }
         if ($blueprint->getIsDisabled()) {
             $item->setDisabled(true);
             $item->addIcon('fa-ban grey', pht('Disabled'));
         }
         $impl_icon = $impl->getBlueprintIcon();
         $impl_name = $impl->getBlueprintName();
         $impl_icon = id(new PHUIIconView())->setIcon($impl_icon, 'lightgreytext');
         $item->addAttribute(array($impl_icon, ' ', $impl_name));
         $phid = $blueprint->getPHID();
         $project_phids = $edge_query->getDestinationPHIDs(array($phid));
         if ($project_phids) {
             $project_handles = $viewer->loadHandles($project_phids);
             $item->addAttribute(id(new PHUIHandleTagListView())->setLimit(4)->setSlim(true)->setHandles($project_handles));
         }
         $view->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($view);
     $result->setNoDataString(pht('No blueprints found.'));
     return $result;
 }
コード例 #25
0
 protected function renderResultList(array $credentials, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($credentials, 'PassphraseCredential');
     $viewer = $this->requireViewer();
     $list = new PHUIObjectItemListView();
     $list->setUser($viewer);
     foreach ($credentials as $credential) {
         $item = id(new PHUIObjectItemView())->setObjectName('K' . $credential->getID())->setHeader($credential->getName())->setHref('/K' . $credential->getID())->setObject($credential);
         $item->addAttribute(pht('Login: %s', $credential->getUsername()));
         if ($credential->getIsDestroyed()) {
             $item->addIcon('fa-ban', pht('Destroyed'));
             $item->setDisabled(true);
         }
         $type = PassphraseCredentialType::getTypeByConstant($credential->getCredentialType());
         if ($type) {
             $item->addIcon('fa-wrench', $type->getCredentialTypeName());
         }
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No credentials found.'));
     return $result;
 }
コード例 #26
0
 protected function renderResultList(array $transcripts, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($transcripts, 'HeraldTranscript');
     $viewer = $this->requireViewer();
     $list = new PHUIObjectItemListView();
     foreach ($transcripts as $xscript) {
         $view_href = phutil_tag('a', array('href' => '/herald/transcript/' . $xscript->getID() . '/'), pht('View Full Transcript'));
         $item = new PHUIObjectItemView();
         $item->setObjectName($xscript->getID());
         $item->setHeader($view_href);
         if ($xscript->getDryRun()) {
             $item->addAttribute(pht('Dry Run'));
         }
         $item->addAttribute($handles[$xscript->getObjectPHID()]->renderLink());
         $item->addAttribute(pht('%s ms', new PhutilNumber((int) (1000 * $xscript->getDuration()))));
         $item->addIcon('none', phabricator_datetime($xscript->getTime(), $viewer));
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No transcripts found.'));
     return $result;
 }
コード例 #27
0
 protected function renderResultList(array $repositories, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($repositories, 'PhabricatorRepository');
     $viewer = $this->requireViewer();
     $list = new PHUIObjectItemListView();
     foreach ($repositories as $repository) {
         $id = $repository->getID();
         $item = id(new PHUIObjectItemView())->setUser($viewer)->setObject($repository)->setHeader($repository->getName())->setObjectName($repository->getMonogram())->setHref($repository->getURI());
         $commit = $repository->getMostRecentCommit();
         if ($commit) {
             $commit_link = DiffusionView::linkCommit($repository, $commit->getCommitIdentifier(), $commit->getSummary());
             $item->setSubhead($commit_link);
             $item->setEpoch($commit->getEpoch());
         }
         $item->addIcon('none', PhabricatorRepositoryType::getNameForRepositoryType($repository->getVersionControlSystem()));
         $size = $repository->getCommitCount();
         if ($size) {
             $history_uri = $repository->generateURI(array('action' => 'history'));
             $item->addAttribute(phutil_tag('a', array('href' => $history_uri), pht('%s Commit(s)', new PhutilNumber($size))));
         } else {
             $item->addAttribute(pht('No Commits'));
         }
         $project_handles = array_select_keys($handles, $repository->getProjectPHIDs());
         if ($project_handles) {
             $item->addAttribute(id(new PHUIHandleTagListView())->setSlim(true)->setHandles($project_handles));
         }
         if (!$repository->isTracked()) {
             $item->setDisabled(true);
             $item->addIcon('disable-grey', pht('Inactive'));
         } else {
             if ($repository->isImporting()) {
                 $item->addIcon('fa-clock-o indigo', pht('Importing...'));
             }
         }
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No repositories found for this query.'));
     return $result;
 }
コード例 #28
0
 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;
 }
コード例 #29
0
 protected function renderResultList(array $flags, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($flags, 'PhabricatorFlag');
     $viewer = $this->requireViewer();
     $list = id(new PHUIObjectItemListView())->setUser($viewer);
     foreach ($flags as $flag) {
         $id = $flag->getID();
         $phid = $flag->getObjectPHID();
         $class = PhabricatorFlagColor::getCSSClass($flag->getColor());
         $flag_icon = phutil_tag('div', array('class' => 'phabricator-flag-icon ' . $class), '');
         $item = id(new PHUIObjectItemView())->addHeadIcon($flag_icon)->setHeader($flag->getHandle()->getFullName())->setHref($flag->getHandle()->getURI());
         $status_open = PhabricatorObjectHandle::STATUS_OPEN;
         if ($flag->getHandle()->getStatus() != $status_open) {
             $item->setDisabled(true);
         }
         $item->addAction(id(new PHUIListItemView())->setIcon('fa-pencil')->setHref($this->getApplicationURI("edit/{$phid}/"))->setWorkflow(true));
         $item->addAction(id(new PHUIListItemView())->setIcon('fa-times')->setHref($this->getApplicationURI("delete/{$id}/"))->setWorkflow(true));
         if ($flag->getNote()) {
             $item->addAttribute($flag->getNote());
         }
         $item->addIcon('none', phabricator_datetime($flag->getDateCreated(), $viewer));
         $list->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($list);
     $result->setNoDataString(pht('No flags found.'));
     return $result;
 }
コード例 #30
0
 protected function renderResultList(array $questions, PhabricatorSavedQuery $query, array $handles)
 {
     assert_instances_of($questions, 'PonderQuestion');
     $viewer = $this->requireViewer();
     $proj_phids = array();
     foreach ($questions as $question) {
         foreach ($question->getProjectPHIDs() as $project_phid) {
             $proj_phids[] = $project_phid;
         }
     }
     $proj_handles = id(new PhabricatorHandleQuery())->setViewer($viewer)->withPHIDs($proj_phids)->execute();
     $view = id(new PHUIObjectItemListView())->setUser($viewer);
     foreach ($questions as $question) {
         $color = PonderQuestionStatus::getQuestionStatusTagColor($question->getStatus());
         $icon = PonderQuestionStatus::getQuestionStatusIcon($question->getStatus());
         $full_status = PonderQuestionStatus::getQuestionStatusFullName($question->getStatus());
         $item = new PHUIObjectItemView();
         $item->setObjectName('Q' . $question->getID());
         $item->setHeader($question->getTitle());
         $item->setHref('/Q' . $question->getID());
         $item->setObject($question);
         $item->setStatusIcon($icon . ' ' . $color, $full_status);
         $project_handles = array_select_keys($proj_handles, $question->getProjectPHIDs());
         $created_date = phabricator_date($question->getDateCreated(), $viewer);
         $item->addIcon('none', $created_date);
         $item->addByline(pht('Asked by %s', $handles[$question->getAuthorPHID()]->renderLink()));
         $item->addAttribute(pht('%d Answer(s)', $question->getAnswerCount()));
         if ($project_handles) {
             $item->addAttribute(id(new PHUIHandleTagListView())->setLimit(4)->setSlim(true)->setHandles($project_handles));
         }
         $view->addItem($item);
     }
     $result = new PhabricatorApplicationSearchResultView();
     $result->setObjectList($view);
     $result->setNoDataString(pht('No questions found.'));
     return $result;
 }