Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/conpherence/controller/ConpherenceRoomListController.php
12262 views
1
<?php
2
3
final class ConpherenceRoomListController extends ConpherenceController {
4
5
public function shouldAllowPublic() {
6
return true;
7
}
8
9
public function handleRequest(AphrontRequest $request) {
10
$user = $request->getUser();
11
12
$controller = id(new PhabricatorApplicationSearchController())
13
->setQueryKey($request->getURIData('queryKey'))
14
->setSearchEngine(
15
new ConpherenceThreadSearchEngine())
16
->setNavigation($this->buildRoomsSideNavView());
17
18
return $this->delegateToController($controller);
19
}
20
21
public function buildApplicationMenu() {
22
return $this->buildRoomsSideNavView(true)->getMenu();
23
}
24
25
private function buildRoomsSideNavView($for_app = false) {
26
$user = $this->getRequest()->getUser();
27
28
$nav = new AphrontSideNavFilterView();
29
$nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
30
31
if ($for_app) {
32
$nav->addFilter('new/', pht('Create Room'));
33
}
34
35
id(new ConpherenceThreadSearchEngine())
36
->setViewer($user)
37
->addNavigationItems($nav->getMenu());
38
39
$nav->selectFilter(null);
40
41
return $nav;
42
}
43
44
45
}
46
47