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

Add 'Persist Chat' option in Conpherence notification menu

Summary: This exposes the chat window to a larger audience beside people who accidentaly hit `\`.

Test Plan:
Lots of clicks and reloads.

{F1856043}

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin

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

+75 -23
+16 -16
resources/celerity/map.php
··· 7 7 */ 8 8 return array( 9 9 'names' => array( 10 - 'conpherence.pkg.css' => 'b1547973', 10 + 'conpherence.pkg.css' => 'c8fbe125', 11 11 'conpherence.pkg.js' => '11f3e07e', 12 12 'core.pkg.css' => 'ade19c40', 13 - 'core.pkg.js' => '975d6a27', 13 + 'core.pkg.js' => '03c1cb09', 14 14 'darkconsole.pkg.js' => 'e7393ebb', 15 15 'differential.pkg.css' => 'e1d704ce', 16 16 'differential.pkg.js' => '634399e9', ··· 50 50 'rsrc/css/application/conpherence/header-pane.css' => '517de9fe', 51 51 'rsrc/css/application/conpherence/menu.css' => '78c7b811', 52 52 'rsrc/css/application/conpherence/message-pane.css' => '0d7dff02', 53 - 'rsrc/css/application/conpherence/notification.css' => '6cdcc253', 53 + 'rsrc/css/application/conpherence/notification.css' => '65dd0e79', 54 54 'rsrc/css/application/conpherence/participant-pane.css' => '7bba0b56', 55 55 'rsrc/css/application/conpherence/transaction.css' => '46253e19', 56 56 'rsrc/css/application/conpherence/update.css' => '53bc527a', ··· 438 438 'rsrc/js/application/config/behavior-reorder-fields.js' => 'b6993408', 439 439 'rsrc/js/application/conpherence/ConpherenceThreadManager.js' => '01774ab2', 440 440 'rsrc/js/application/conpherence/behavior-drag-and-drop-photo.js' => 'cf86d16a', 441 - 'rsrc/js/application/conpherence/behavior-durable-column.js' => 'e287689f', 441 + 'rsrc/js/application/conpherence/behavior-durable-column.js' => 'a0e564c2', 442 442 'rsrc/js/application/conpherence/behavior-menu.js' => '9eb55204', 443 443 'rsrc/js/application/conpherence/behavior-participant-pane.js' => '8604caa8', 444 444 'rsrc/js/application/conpherence/behavior-pontificate.js' => 'f2e58483', ··· 622 622 'conpherence-header-pane-css' => '517de9fe', 623 623 'conpherence-menu-css' => '78c7b811', 624 624 'conpherence-message-pane-css' => '0d7dff02', 625 - 'conpherence-notification-css' => '6cdcc253', 625 + 'conpherence-notification-css' => '65dd0e79', 626 626 'conpherence-participant-pane-css' => '7bba0b56', 627 627 'conpherence-thread-manager' => '01774ab2', 628 628 'conpherence-transaction-css' => '46253e19', ··· 699 699 'javelin-behavior-diffusion-pull-lastmodified' => 'f01586dc', 700 700 'javelin-behavior-doorkeeper-tag' => 'e5822781', 701 701 'javelin-behavior-drydock-live-operation-status' => '901935ef', 702 - 'javelin-behavior-durable-column' => 'e287689f', 702 + 'javelin-behavior-durable-column' => 'a0e564c2', 703 703 'javelin-behavior-editengine-reorder-configs' => 'd7a74243', 704 704 'javelin-behavior-editengine-reorder-fields' => 'b59e1e96', 705 705 'javelin-behavior-error-log' => '6882e80a', ··· 1774 1774 'javelin-util', 1775 1775 'phabricator-keyboard-shortcut', 1776 1776 ), 1777 + 'a0e564c2' => array( 1778 + 'javelin-behavior', 1779 + 'javelin-dom', 1780 + 'javelin-stratcom', 1781 + 'javelin-behavior-device', 1782 + 'javelin-scrollbar', 1783 + 'javelin-quicksand', 1784 + 'phabricator-keyboard-shortcut', 1785 + 'conpherence-thread-manager', 1786 + ), 1777 1787 'a155550f' => array( 1778 1788 'javelin-install', 1779 1789 'javelin-dom', ··· 2108 2118 'javelin-behavior', 2109 2119 'javelin-stratcom', 2110 2120 'javelin-dom', 2111 - ), 2112 - 'e287689f' => array( 2113 - 'javelin-behavior', 2114 - 'javelin-dom', 2115 - 'javelin-stratcom', 2116 - 'javelin-behavior-device', 2117 - 'javelin-scrollbar', 2118 - 'javelin-quicksand', 2119 - 'phabricator-keyboard-shortcut', 2120 - 'conpherence-thread-manager', 2121 2121 ), 2122 2122 'e292eaf4' => array( 2123 2123 'javelin-install',
+39 -3
src/applications/conpherence/controller/ConpherenceNotificationPanelController.php
··· 70 70 } 71 71 $content = $view->render(); 72 72 } else { 73 + $rooms_uri = phutil_tag( 74 + 'a', 75 + array( 76 + 'href' => '/conpherence/', 77 + 'class' => 'no-room-notification', 78 + ), 79 + pht('You have joined no rooms.')); 80 + 73 81 $content = phutil_tag_div( 74 - 'phabricator-notification no-notifications', 75 - pht('You have no messages.')); 82 + 'phabricator-notification no-notifications', $rooms_uri); 76 83 } 77 84 78 85 $content = hsprintf( 79 - '<div class="phabricator-notification-header">%s</div>'. 86 + '<div class="phabricator-notification-header grouped">%s%s</div>'. 80 87 '%s', 81 88 phutil_tag( 82 89 'a', ··· 84 91 'href' => '/conpherence/', 85 92 ), 86 93 pht('Rooms')), 94 + $this->renderPersistentOption(), 87 95 $content); 88 96 89 97 $unread = id(new ConpherenceParticipantCountQuery()) ··· 98 106 ); 99 107 100 108 return id(new AphrontAjaxResponse())->setContent($json); 109 + } 110 + 111 + private function renderPersistentOption() { 112 + $viewer = $this->getViewer(); 113 + $column_key = PhabricatorConpherenceColumnVisibleSetting::SETTINGKEY; 114 + $show = (bool)$viewer->getUserSetting($column_key, false); 115 + 116 + $view = phutil_tag( 117 + 'div', 118 + array( 119 + 'class' => 'persistent-option', 120 + ), 121 + array( 122 + javelin_tag( 123 + 'input', 124 + array( 125 + 'type' => 'checkbox', 126 + 'checked' => ($show) ? 'checked' : null, 127 + 'value' => !$show, 128 + 'sigil' => 'conpherence-persist-column', 129 + )), 130 + phutil_tag( 131 + 'span', 132 + array(), 133 + pht('Persistent Chat')), 134 + )); 135 + 136 + return $view; 101 137 } 102 138 103 139 }
+16 -1
webroot/rsrc/css/application/conpherence/notification.css
··· 27 27 width: 30px; 28 28 height: 30px; 29 29 background-size: 100%; 30 - box-shadow: {$borderinset}; 31 30 border-radius: 3px; 32 31 } 33 32 ··· 71 70 padding: 0 5px 1px; 72 71 font-size: {$smallestfontsize}; 73 72 } 73 + 74 + .phabricator-notification .no-room-notification { 75 + color: {$lightgreytext}; 76 + display: block; 77 + } 78 + 79 + .phabricator-notification-header .persistent-option { 80 + white-space: nowrap; 81 + float: right; 82 + } 83 + 84 + .phabricator-notification-header .persistent-option span { 85 + margin-left: 4px; 86 + font-weight: normal; 87 + color: {$greytext}; 88 + }
+4 -3
webroot/rsrc/js/application/conpherence/behavior-durable-column.js
··· 89 89 JX.Stratcom.invoke('resize'); 90 90 } 91 91 92 - new JX.KeyboardShortcut('\\', 'Toggle Conpherence Column') 93 - .setHandler(_toggleColumn) 94 - .register(); 92 + JX.Stratcom.listen( 93 + 'click', 94 + 'conpherence-persist-column', 95 + _toggleColumn); 95 96 96 97 JX.Stratcom.listen( 97 98 'click',