@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 - make `ZXXX` monograms a bit more useful.

Summary: Ref T7756. Now viewing individual threads in Conpherence is `ZXXX` driven. Also adds remarkup support.

Test Plan: clicked around on list of conpherences in full view and it worked. selected 'view in conpherence' action from column and loaded correct `ZXXX` uri. Typed `ZXXX` in Maniphest and saw it link to Conpherence room.

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin, epriestley

Maniphest Tasks: T7756

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

+50 -24
+16 -16
resources/celerity/map.php
··· 356 356 'rsrc/js/application/config/behavior-reorder-fields.js' => '14a827de', 357 357 'rsrc/js/application/conpherence/ConpherenceThreadManager.js' => '0a5192c4', 358 358 'rsrc/js/application/conpherence/behavior-durable-column.js' => '7ffa744f', 359 - 'rsrc/js/application/conpherence/behavior-menu.js' => 'eaf57226', 359 + 'rsrc/js/application/conpherence/behavior-menu.js' => 'e5826953', 360 360 'rsrc/js/application/conpherence/behavior-pontificate.js' => '21ba5861', 361 361 'rsrc/js/application/conpherence/behavior-quicksand-blacklist.js' => '7927a7d3', 362 362 'rsrc/js/application/conpherence/behavior-widget-pane.js' => '31b18ee7', ··· 559 559 'javelin-behavior-boards-dropdown' => '0ec56e1d', 560 560 'javelin-behavior-choose-control' => '6153c708', 561 561 'javelin-behavior-config-reorder-fields' => '14a827de', 562 - 'javelin-behavior-conpherence-menu' => 'eaf57226', 562 + 'javelin-behavior-conpherence-menu' => 'e5826953', 563 563 'javelin-behavior-conpherence-pontificate' => '21ba5861', 564 564 'javelin-behavior-conpherence-widget-pane' => '31b18ee7', 565 565 'javelin-behavior-countdown-timer' => 'e4cc26b3', ··· 1874 1874 'javelin-workflow', 1875 1875 'javelin-magical-init', 1876 1876 ), 1877 + 'e5826953' => array( 1878 + 'javelin-behavior', 1879 + 'javelin-dom', 1880 + 'javelin-util', 1881 + 'javelin-stratcom', 1882 + 'javelin-workflow', 1883 + 'javelin-behavior-device', 1884 + 'javelin-history', 1885 + 'javelin-vector', 1886 + 'javelin-scrollbar', 1887 + 'phabricator-title', 1888 + 'phabricator-shaped-request', 1889 + 'conpherence-thread-manager', 1890 + ), 1877 1891 'e58bf807' => array( 1878 1892 'javelin-behavior', 1879 1893 'javelin-util', ··· 1908 1922 'javelin-aphlict', 1909 1923 'phabricator-phtize', 1910 1924 'javelin-dom', 1911 - ), 1912 - 'eaf57226' => array( 1913 - 'javelin-behavior', 1914 - 'javelin-dom', 1915 - 'javelin-util', 1916 - 'javelin-stratcom', 1917 - 'javelin-workflow', 1918 - 'javelin-behavior-device', 1919 - 'javelin-history', 1920 - 'javelin-vector', 1921 - 'javelin-scrollbar', 1922 - 'phabricator-title', 1923 - 'phabricator-shaped-request', 1924 - 'conpherence-thread-manager', 1925 1925 ), 1926 1926 'efe49472' => array( 1927 1927 'javelin-install',
+2
src/__phutil_library_map__.php
··· 258 258 'ConpherenceThreadListView' => 'applications/conpherence/view/ConpherenceThreadListView.php', 259 259 'ConpherenceThreadMailReceiver' => 'applications/conpherence/mail/ConpherenceThreadMailReceiver.php', 260 260 'ConpherenceThreadQuery' => 'applications/conpherence/query/ConpherenceThreadQuery.php', 261 + 'ConpherenceThreadRemarkupRule' => 'applications/conpherence/remarkup/ConpherenceThreadRemarkupRule.php', 261 262 'ConpherenceThreadSearchEngine' => 'applications/conpherence/query/ConpherenceThreadSearchEngine.php', 262 263 'ConpherenceThreadTestCase' => 'applications/conpherence/__tests__/ConpherenceThreadTestCase.php', 263 264 'ConpherenceTransaction' => 'applications/conpherence/storage/ConpherenceTransaction.php', ··· 3451 3452 'ConpherenceThreadListView' => 'AphrontView', 3452 3453 'ConpherenceThreadMailReceiver' => 'PhabricatorObjectMailReceiver', 3453 3454 'ConpherenceThreadQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 3455 + 'ConpherenceThreadRemarkupRule' => 'PhabricatorObjectRemarkupRule', 3454 3456 'ConpherenceThreadSearchEngine' => 'PhabricatorApplicationSearchEngine', 3455 3457 'ConpherenceThreadTestCase' => 'ConpherenceTestCase', 3456 3458 'ConpherenceTransaction' => 'PhabricatorApplicationTransaction',
+8
src/applications/conpherence/application/PhabricatorConpherenceApplication.php
··· 22 22 return "\xE2\x9C\x86"; 23 23 } 24 24 25 + public function getRemarkupRules() { 26 + return array( 27 + new ConpherenceThreadRemarkupRule(), 28 + ); 29 + } 30 + 25 31 public function getEventListeners() { 26 32 return array( 27 33 new ConpherenceHovercardEventListener(), ··· 30 36 31 37 public function getRoutes() { 32 38 return array( 39 + '/Z(?P<id>[1-9]\d*)' => 'ConpherenceViewController', 33 40 '/conpherence/' => array( 34 41 '' => 'ConpherenceListController', 35 42 'thread/(?P<id>[1-9]\d*)/' => 'ConpherenceListController', ··· 62 69 public function getQuicksandURIPatternBlacklist() { 63 70 return array( 64 71 '/conpherence/.*', 72 + '/Z\d+', 65 73 ); 66 74 } 67 75
+1 -1
src/applications/conpherence/phid/PhabricatorConpherenceThreadPHIDType.php
··· 31 31 $data = $thread->getDisplayData($query->getViewer()); 32 32 $handle->setName($data['title']); 33 33 $handle->setFullName($data['title']); 34 - $handle->setURI('/conpherence/'.$thread->getID().'/'); 34 + $handle->setURI('/'.$thread->getMonogram()); 35 35 } 36 36 } 37 37
+19
src/applications/conpherence/remarkup/ConpherenceThreadRemarkupRule.php
··· 1 + <?php 2 + 3 + final class ConpherenceThreadRemarkupRule 4 + extends PhabricatorObjectRemarkupRule { 5 + 6 + protected function getObjectNamePrefix() { 7 + return 'Z'; 8 + } 9 + 10 + protected function loadObjects(array $ids) { 11 + $viewer = $this->getEngine()->getConfig('viewer'); 12 + $threads = id(new ConpherenceThreadQuery()) 13 + ->setViewer($viewer) 14 + ->withIDs($ids) 15 + ->execute(); 16 + return mpull($threads, null, 'getID'); 17 + } 18 + 19 + }
+1 -1
src/applications/conpherence/view/ConpherenceDurableColumnView.php
··· 408 408 array( 409 409 'name' => pht('View in Conpherence'), 410 410 'disabled' => false, 411 - 'href' => '/conpherence/'.$conpherence->getID().'/', 411 + 'href' => '/'.$conpherence->getMonogram(), 412 412 'icon' => 'fa-comments', 413 413 'key' => 'go_conpherence', 414 414 ),
+1 -1
src/applications/conpherence/view/ConpherenceThreadListView.php
··· 70 70 71 71 $user = $this->getUser(); 72 72 73 - $uri = $this->baseURI.$thread->getID().'/'; 73 + $uri = '/'.$thread->getMonogram(); 74 74 $data = $thread->getDisplayData($user); 75 75 $icon = null; 76 76 if ($thread->getIsRoom()) {
+2 -5
webroot/rsrc/js/application/conpherence/behavior-menu.js
··· 155 155 } 156 156 157 157 function updatePageData(data) { 158 - var uri_suffix = _thread.selected + '/'; 159 - if (data.use_base_uri) { 160 - uri_suffix = ''; 161 - } 162 - JX.History.replace(config.baseURI + uri_suffix); 158 + var uri = '/Z' + _thread.selected; 159 + JX.History.replace(uri); 163 160 if (data.title) { 164 161 JX.Title.setTitle(data.title); 165 162 } else if (_thread.node) {