Page MenuHomePhabricator

D12396.id.diff
No OneTemporary

D12396.id.diff

diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -356,10 +356,10 @@
'rsrc/js/application/config/behavior-reorder-fields.js' => '14a827de',
'rsrc/js/application/conpherence/ConpherenceThreadManager.js' => '0a5192c4',
'rsrc/js/application/conpherence/behavior-durable-column.js' => '7ffa744f',
- 'rsrc/js/application/conpherence/behavior-menu.js' => 'e67cfd8c',
+ 'rsrc/js/application/conpherence/behavior-menu.js' => 'eaf57226',
'rsrc/js/application/conpherence/behavior-pontificate.js' => '21ba5861',
'rsrc/js/application/conpherence/behavior-quicksand-blacklist.js' => '7927a7d3',
- 'rsrc/js/application/conpherence/behavior-widget-pane.js' => '1ec93bcf',
+ 'rsrc/js/application/conpherence/behavior-widget-pane.js' => '31b18ee7',
'rsrc/js/application/countdown/timer.js' => 'e4cc26b3',
'rsrc/js/application/dashboard/behavior-dashboard-async-panel.js' => '469c0d9e',
'rsrc/js/application/dashboard/behavior-dashboard-move-panels.js' => '82439934',
@@ -559,9 +559,9 @@
'javelin-behavior-boards-dropdown' => '0ec56e1d',
'javelin-behavior-choose-control' => '6153c708',
'javelin-behavior-config-reorder-fields' => '14a827de',
- 'javelin-behavior-conpherence-menu' => 'e67cfd8c',
+ 'javelin-behavior-conpherence-menu' => 'eaf57226',
'javelin-behavior-conpherence-pontificate' => '21ba5861',
- 'javelin-behavior-conpherence-widget-pane' => '1ec93bcf',
+ 'javelin-behavior-conpherence-widget-pane' => '31b18ee7',
'javelin-behavior-countdown-timer' => 'e4cc26b3',
'javelin-behavior-dark-console' => '08883e8b',
'javelin-behavior-dashboard-async-panel' => '469c0d9e',
@@ -954,19 +954,6 @@
'javelin-dom',
'javelin-reactor-dom',
),
- '1ec93bcf' => array(
- 'javelin-behavior',
- 'javelin-dom',
- 'javelin-stratcom',
- 'javelin-workflow',
- 'javelin-util',
- 'phabricator-notification',
- 'javelin-behavior-device',
- 'phuix-dropdown-menu',
- 'phuix-action-list-view',
- 'phuix-action-view',
- 'conpherence-thread-manager',
- ),
'2035b9cb' => array(
'javelin-behavior',
'javelin-dom',
@@ -1056,6 +1043,19 @@
'javelin-install',
'javelin-typeahead-source',
),
+ '31b18ee7' => array(
+ 'javelin-behavior',
+ 'javelin-dom',
+ 'javelin-stratcom',
+ 'javelin-workflow',
+ 'javelin-util',
+ 'phabricator-notification',
+ 'javelin-behavior-device',
+ 'phuix-dropdown-menu',
+ 'phuix-action-list-view',
+ 'phuix-action-view',
+ 'conpherence-thread-manager',
+ ),
'331b1611' => array(
'javelin-install',
),
@@ -1888,19 +1888,6 @@
'javelin-behavior-device',
'phabricator-keyboard-shortcut',
),
- 'e67cfd8c' => array(
- 'javelin-behavior',
- 'javelin-dom',
- 'javelin-util',
- 'javelin-stratcom',
- 'javelin-workflow',
- 'javelin-behavior-device',
- 'javelin-history',
- 'javelin-vector',
- 'phabricator-title',
- 'phabricator-shaped-request',
- 'conpherence-thread-manager',
- ),
'e723c323' => array(
'javelin-behavior',
'javelin-stratcom',
@@ -1922,6 +1909,20 @@
'phabricator-phtize',
'javelin-dom',
),
+ 'eaf57226' => array(
+ 'javelin-behavior',
+ 'javelin-dom',
+ 'javelin-util',
+ 'javelin-stratcom',
+ 'javelin-workflow',
+ 'javelin-behavior-device',
+ 'javelin-history',
+ 'javelin-vector',
+ 'javelin-scrollbar',
+ 'phabricator-title',
+ 'phabricator-shaped-request',
+ 'conpherence-thread-manager',
+ ),
'efe49472' => array(
'javelin-install',
'javelin-util',
diff --git a/webroot/rsrc/js/application/conpherence/behavior-menu.js b/webroot/rsrc/js/application/conpherence/behavior-menu.js
--- a/webroot/rsrc/js/application/conpherence/behavior-menu.js
+++ b/webroot/rsrc/js/application/conpherence/behavior-menu.js
@@ -8,6 +8,7 @@
* javelin-behavior-device
* javelin-history
* javelin-vector
+ * javelin-scrollbar
* phabricator-title
* phabricator-shaped-request
* conpherence-thread-manager
@@ -23,6 +24,8 @@
node: null
};
+ var scrollbar = null;
+
// TODO - move more logic into the ThreadManager
var threadManager = new JX.ConpherenceThreadManager();
threadManager.setWillLoadThreadCallback(function() {
@@ -49,7 +52,7 @@
var messages_root = JX.DOM.find(root, 'div', 'conpherence-message-pane');
var messages = JX.DOM.find(messages_root, 'div', 'conpherence-messages');
JX.DOM.appendContent(messages, JX.$H(r.transactions));
- messages.scrollTop = messages.scrollHeight;
+ scrollbar.scrollTo(messages.scrollHeight);
});
threadManager.setWillSendMessageCallback(function () {
var root = JX.DOM.find(document, 'div', 'conpherence-layout');
@@ -71,7 +74,7 @@
// Ignore; maybe no files widget
}
JX.DOM.appendContent(messages, JX.$H(r.transactions));
- messages.scrollTop = messages.scrollHeight;
+ scrollbar.scrollTo(messages.scrollHeight);
if (fileWidget) {
JX.DOM.setContent(
@@ -116,6 +119,10 @@
}
markWidgetLoading(true);
onDeviceChange();
+ var root = JX.DOM.find(document, 'div', 'conpherence-layout');
+ var messages_root = JX.DOM.find(root, 'div', 'conpherence-message-pane');
+ var messages = JX.DOM.find(messages_root, 'div', 'conpherence-messages');
+ scrollbar = new JX.Scrollbar(messages);
}
init();
@@ -320,7 +327,7 @@
function _scrollMessageWindow() {
var root = JX.DOM.find(document, 'div', 'conpherence-layout');
var messages_root = JX.DOM.find(root, 'div', 'conpherence-messages');
- messages_root.scrollTop = messages_root.scrollHeight;
+ scrollbar.scrollTo(messages_root.scrollHeight);
}
function _focusTextarea() {
var root = JX.DOM.find(document, 'div', 'conpherence-layout');
@@ -373,7 +380,7 @@
new JX.Workflow.newFromForm(form, data)
.setHandler(JX.bind(this, function(r) {
JX.DOM.appendContent(messages, JX.$H(r.transactions));
- messages.scrollTop = messages.scrollHeight;
+ scrollbar.scrollTo(messages.scrollHeight);
JX.DOM.setContent(
header,
diff --git a/webroot/rsrc/js/application/conpherence/behavior-widget-pane.js b/webroot/rsrc/js/application/conpherence/behavior-widget-pane.js
--- a/webroot/rsrc/js/application/conpherence/behavior-widget-pane.js
+++ b/webroot/rsrc/js/application/conpherence/behavior-widget-pane.js
@@ -297,7 +297,7 @@
}
if (messages) {
JX.DOM.appendContent(messages, JX.$H(r.transactions));
- messages.scrollTop = messages.scrollHeight;
+ JX.Stratcom.invoke('conpherence-redraw-thread', null, {});
}
if (r.people_widget) {

File Metadata

Mime Type
text/plain
Expires
Mar 9 2025, 11:30 AM (4 w, 2 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7388527
Default Alt Text
D12396.id.diff (6 KB)

Event Timeline