@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.)
hq.recaptime.dev/wiki/Phorge
phorge
phabricator
1<?php
2
3final 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}