@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
fork

Configure Feed

Select the types of activity you want to include in your feed.

Conpherence - add application search in a few more places.

Summary: Ref T7584. In Conpherence main view, this adds a "search" link right in the "Rooms" header. This piece addresses an outstanding item on T7584. This diff also adds a search button in the durable column that takes you to the application search. This kind of a big product bet that rooms are going to be dominating things and its most useful to find another room quickly from this view. That said, I think the application search should get massaged slightly to allow searching threads and this won't be much of a trade off at all.

Test Plan: verified new search links took me to correct place and displayed reasonably.

Reviewers: chad, epriestley

Reviewed By: epriestley

Subscribers: Korvin, epriestley

Maniphest Tasks: T7584

Differential Revision: https://secure.phabricator.com/D12215

+66 -18
+4 -4
resources/celerity/map.php
··· 44 44 'rsrc/css/application/config/config-welcome.css' => '6abd79be', 45 45 'rsrc/css/application/config/setup-issue.css' => '22270af2', 46 46 'rsrc/css/application/config/unhandled-exception.css' => '37d4f9a2', 47 - 'rsrc/css/application/conpherence/durable-column.css' => 'e2011d85', 48 - 'rsrc/css/application/conpherence/menu.css' => '2c1c727c', 47 + 'rsrc/css/application/conpherence/durable-column.css' => 'caa12d4a', 48 + 'rsrc/css/application/conpherence/menu.css' => 'beef0920', 49 49 'rsrc/css/application/conpherence/message-pane.css' => '44154798', 50 50 'rsrc/css/application/conpherence/notification.css' => '04a6e10a', 51 51 'rsrc/css/application/conpherence/update.css' => '1099a660', ··· 514 514 'changeset-view-manager' => '58562350', 515 515 'config-options-css' => '7fedf08b', 516 516 'config-welcome-css' => '6abd79be', 517 - 'conpherence-durable-column-view' => 'e2011d85', 518 - 'conpherence-menu-css' => '2c1c727c', 517 + 'conpherence-durable-column-view' => 'caa12d4a', 518 + 'conpherence-menu-css' => 'beef0920', 519 519 'conpherence-message-pane-css' => '44154798', 520 520 'conpherence-notification-css' => '04a6e10a', 521 521 'conpherence-thread-manager' => 'bb928342',
+2
src/applications/conpherence/application/PhabricatorConpherenceApplication.php
··· 40 40 '(?:query/(?P<queryKey>[^/]+)/)?' => 'ConpherenceRoomListController', 41 41 'new/' => 'ConpherenceNewRoomController', 42 42 ), 43 + 'search/(?:query/(?P<queryKey>[^/]+)/)?' 44 + => 'ConpherenceRoomListController', 43 45 'panel/' => 'ConpherenceNotificationPanelController', 44 46 'widget/(?P<id>[1-9]\d*)/' => 'ConpherenceWidgetController', 45 47 'update/(?P<id>[1-9]\d*)/' => 'ConpherenceUpdateController',
+1 -1
src/applications/conpherence/controller/ConpherenceNewRoomController.php
··· 56 56 ->execute(); 57 57 58 58 $submit_uri = $this->getApplicationURI('room/new/'); 59 - $cancel_uri = $this->getApplicationURI('room/'); 59 + $cancel_uri = $this->getApplicationURI('search/'); 60 60 61 61 $dialog = $this->newDialog() 62 62 ->setWidth(AphrontDialogView::WIDTH_FORM)
+1 -2
src/applications/conpherence/controller/ConpherenceRoomListController.php
··· 8 8 $controller = id(new PhabricatorApplicationSearchController()) 9 9 ->setQueryKey($request->getURIData('queryKey')) 10 10 ->setSearchEngine( 11 - id(new ConpherenceThreadSearchEngine()) 12 - ->setIsRooms(true)) 11 + new ConpherenceThreadSearchEngine()) 13 12 ->setNavigation($this->buildRoomsSideNavView()); 14 13 15 14 return $this->delegateToController($controller);
+2 -6
src/applications/conpherence/query/ConpherenceThreadSearchEngine.php
··· 67 67 } 68 68 69 69 protected function getURI($path) { 70 - if ($this->isRooms) { 71 - return '/conpherence/room/'.$path; 72 - } else { 73 - // TODO - will need a path if / when "thread" search happens 74 - } 70 + return '/conpherence/search/'.$path; 75 71 } 76 72 77 73 protected function getBuiltinQueryNames() { ··· 83 79 ); 84 80 85 81 if ($this->requireViewer()->isLoggedIn()) { 86 - $names['participant'] = pht('Participated'); 82 + $names['participant'] = pht('Joined Rooms'); 87 83 } 88 84 } 89 85
+19
src/applications/conpherence/view/ConpherenceDurableColumnView.php
··· 261 261 ), 262 262 '')); 263 263 } 264 + $icons[] = $this->buildSearchButton(); 265 + 264 266 return $icons; 267 + } 268 + 269 + private function buildSearchButton() { 270 + return phutil_tag( 271 + 'div', 272 + array( 273 + 'class' => 'conpherence-durable-column-search-button', 274 + ), 275 + id(new PHUIButtonBarView()) 276 + ->addButton( 277 + id(new PHUIButtonView()) 278 + ->setTag('a') 279 + ->setHref('/conpherence/search/') 280 + ->setColor(PHUIButtonView::GREY) 281 + ->setIcon( 282 + id(new PHUIIconView()) 283 + ->setIconFont('fa-search')))); 265 284 } 266 285 267 286 private function buildHeader() {
+9 -2
src/applications/conpherence/view/ConpherenceThreadListView.php
··· 144 144 array $conpherences, 145 145 array $policy_objects) { 146 146 147 - $header = $this->renderMenuItemHeader(pht('Rooms')); 147 + $header = $this->renderMenuItemHeader( 148 + pht('Rooms'), 149 + 'conpherence-room-list-header'); 150 + $header->appendChild( 151 + id(new PHUIIconView()) 152 + ->setIconFont('fa-search') 153 + ->setHref('/conpherence/search/') 154 + ->setText(pht('Search'))); 148 155 $menu->addMenuItem($header); 149 156 150 157 if (empty($conpherences)) { 151 158 $join_item = id(new PHUIListItemView()) 152 159 ->setType(PHUIListItemView::TYPE_LINK) 153 - ->setHref('/conpherence/room/') 160 + ->setHref('/conpherence/search/') 154 161 ->setName(pht('Join a Room')); 155 162 $menu->addMenuItem($join_item); 156 163
+15 -3
webroot/rsrc/css/application/conpherence/durable-column.css
··· 75 75 76 76 .conpherence-durable-column-icon-bar { 77 77 height: 38px; 78 - padding: 4px 8px; 78 + padding: 4px; 79 79 background-color: {$lightgreybackground}; 80 80 } 81 81 82 82 .conpherence-durable-column-icon-bar .conpherence-durable-column-thread-icon { 83 83 float: left; 84 84 display: block; 85 - width: 34px; 86 85 height: 34px; 87 - margin: 0 4px 0 0; 86 + width: 34px; 88 87 border: 2px solid transparent; 89 88 border-radius: 3px; 89 + margin: 0 4px 0 0; 90 + } 91 + 92 + .conpherence-durable-column-icon-bar .conpherence-durable-column-search-button { 93 + margin: 4px 0px 0px 0px; 94 + } 95 + .conpherence-durable-column-icon-bar .phui-button-bar { 96 + } 97 + .conpherence-durable-column-icon-bar .phui-button-bar a.button.has-icon { 98 + height: 21px; 99 + } 100 + .conpherence-durable-column-icon-bar .phui-button-bar .button .phui-icon-view { 101 + top: 8px; 90 102 } 91 103 92 104 .conpherence-durable-column-icon-bar
+13
webroot/rsrc/css/application/conpherence/menu.css
··· 47 47 padding: 10px 0 9px 8px; 48 48 } 49 49 50 + .conpherence-menu-pane .conpherence-room-list-header 51 + .phui-icon-view { 52 + font-weight: bold; 53 + float: right; 54 + text-transform: none; 55 + margin: 0px 8px 0px 0px; 56 + } 57 + 58 + .conpherence-menu-pane .conpherence-room-list-header 59 + .phui-icon-view:hover { 60 + color: {$sky}; 61 + } 62 + 50 63 .conpherence-menu-pane .conpherence-message-list-header { 51 64 margin-top: 12px; 52 65 }