Page MenuHomePhabricator

D11890.id28647.diff
No OneTemporary

D11890.id28647.diff

diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -353,8 +353,8 @@
'rsrc/js/application/auth/behavior-persona-login.js' => '9414ff18',
'rsrc/js/application/config/behavior-reorder-fields.js' => '14a827de',
'rsrc/js/application/conpherence/behavior-durable-column.js' => '0c404426',
- 'rsrc/js/application/conpherence/behavior-menu.js' => 'f0a41b9f',
- 'rsrc/js/application/conpherence/behavior-pontificate.js' => '2f6efe18',
+ 'rsrc/js/application/conpherence/behavior-menu.js' => 'b255d93b',
+ 'rsrc/js/application/conpherence/behavior-pontificate.js' => '86df5915',
'rsrc/js/application/conpherence/behavior-widget-pane.js' => '40b1ff90',
'rsrc/js/application/countdown/timer.js' => 'e4cc26b3',
'rsrc/js/application/dashboard/behavior-dashboard-async-panel.js' => '469c0d9e',
@@ -557,8 +557,8 @@
'javelin-behavior-boards-dropdown' => '0ec56e1d',
'javelin-behavior-choose-control' => '6153c708',
'javelin-behavior-config-reorder-fields' => '14a827de',
- 'javelin-behavior-conpherence-menu' => 'f0a41b9f',
- 'javelin-behavior-conpherence-pontificate' => '2f6efe18',
+ 'javelin-behavior-conpherence-menu' => 'b255d93b',
+ 'javelin-behavior-conpherence-pontificate' => '86df5915',
'javelin-behavior-conpherence-widget-pane' => '40b1ff90',
'javelin-behavior-countdown-timer' => 'e4cc26b3',
'javelin-behavior-dark-console' => '08883e8b',
@@ -1013,13 +1013,6 @@
'javelin-uri',
'javelin-util',
),
- '2f6efe18' => array(
- 'javelin-behavior',
- 'javelin-dom',
- 'javelin-util',
- 'javelin-workflow',
- 'javelin-stratcom',
- ),
'316b8fa1' => array(
'javelin-install',
'javelin-typeahead-source',
@@ -1464,6 +1457,13 @@
'85ea0626' => array(
'javelin-install',
),
+ '86df5915' => array(
+ 'javelin-behavior',
+ 'javelin-dom',
+ 'javelin-util',
+ 'javelin-workflow',
+ 'javelin-stratcom',
+ ),
'87cb6b51' => array(
'javelin-behavior',
'javelin-dom',
@@ -1648,6 +1648,17 @@
'javelin-dom',
'javelin-reactor-dom',
),
+ 'b255d93b' => array(
+ 'javelin-behavior',
+ 'javelin-dom',
+ 'javelin-util',
+ 'javelin-stratcom',
+ 'javelin-workflow',
+ 'javelin-behavior-device',
+ 'javelin-history',
+ 'javelin-vector',
+ 'phabricator-shaped-request',
+ ),
'b2b4fbaf' => array(
'javelin-behavior',
'javelin-dom',
@@ -1882,17 +1893,6 @@
'javelin-install',
'javelin-util',
),
- 'f0a41b9f' => array(
- 'javelin-behavior',
- 'javelin-dom',
- 'javelin-util',
- 'javelin-stratcom',
- 'javelin-workflow',
- 'javelin-behavior-device',
- 'javelin-history',
- 'javelin-vector',
- 'phabricator-shaped-request',
- ),
'f2441746' => array(
'javelin-dom',
'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
@@ -57,14 +57,6 @@
/**
* Selecting threads
*/
- JX.Stratcom.listen(
- 'conpherence-selectthread',
- null,
- function (e) {
- selectThreadByID(e.getData().id);
- }
- );
-
function selectThreadByID(id, update_page_data) {
var thread = JX.$(id);
selectThread(thread, update_page_data);
@@ -134,6 +126,7 @@
.start();
} else if (config.hasThread) {
_scrollMessageWindow();
+ _focusTextarea();
} else {
didRedrawThread();
}
@@ -269,22 +262,34 @@
* - notably when the widget selector is used to invoke the message pane.
* The following three functions get 'er done.
*/
- function didRedrawThread(build_device_widget_selector) {
- _scrollMessageWindow();
- JX.Stratcom.invoke(
- 'conpherence-did-redraw-thread',
- null,
- {
- widget : getDefaultWidget(),
- threadID : _thread.selected,
- buildDeviceWidgetSelector : build_device_widget_selector
- });
+ function didRedrawThread(build_device_widget_selector) {
+ _scrollMessageWindow();
+ _focusTextarea();
+ JX.Stratcom.invoke(
+ 'conpherence-did-redraw-thread',
+ null,
+ {
+ widget : getDefaultWidget(),
+ threadID : _thread.selected,
+ buildDeviceWidgetSelector : build_device_widget_selector
+ });
}
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;
}
+ function _focusTextarea() {
+ var root = JX.DOM.find(document, 'div', 'conpherence-layout');
+ var form_root = JX.DOM.find(root, 'div', 'conpherence-form');
+ var textarea = JX.DOM.find(form_root, 'textarea');
+ // We may have a draft so do this JS trick so we end up focused at the
+ // end of the draft.
+ var textarea_value = textarea.value;
+ textarea.value = '';
+ JX.DOM.focus(textarea);
+ textarea.value = textarea_value;
+ }
JX.Stratcom.listen(
'conpherence-redraw-thread',
null,
@@ -334,11 +339,7 @@
JX.$(r.conpherence_phid + '-nav-item'),
JX.$H(r.nav_item)
);
- JX.Stratcom.invoke(
- 'conpherence-selectthread',
- null,
- { id : r.conpherence_phid + '-nav-item' }
- );
+ selectThreadByID(r.conpherence_phid + '-nav-item');
} catch (ex) {
// Ignore; this view may not have a menu.
}
@@ -514,11 +515,7 @@
menu_root.scrollTop += scroll_y;
if (reselect_id) {
- JX.Stratcom.invoke(
- 'conpherence-selectthread',
- null,
- { id : reselect_id }
- );
+ selectThreadByID(reselect_id);
}
};
diff --git a/webroot/rsrc/js/application/conpherence/behavior-pontificate.js b/webroot/rsrc/js/application/conpherence/behavior-pontificate.js
--- a/webroot/rsrc/js/application/conpherence/behavior-pontificate.js
+++ b/webroot/rsrc/js/application/conpherence/behavior-pontificate.js
@@ -142,13 +142,9 @@
var textarea = JX.DOM.find(form, 'textarea');
textarea.value = '';
- JX.Stratcom.invoke(
- 'conpherence-selectthread',
- null,
- { id : r.conpherence_phid + '-nav-item' }
- );
-
JX.DOM.alterClass(form_root, 'loading', false);
+
+ setTimeout(function() { JX.DOM.focus(textarea); }, 100);
}));
sync_workflow(workflow, get_thread_data());

File Metadata

Mime Type
text/plain
Expires
Mar 22 2025, 12:55 PM (4 w, 5 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7704531
Default Alt Text
D11890.id28647.diff (6 KB)

Event Timeline