Skip to content

Commit 1a303e7

Browse files
aviveyepriestley
authored and
epriestley
committedJul 8, 2016
Make "/" focus the search input again
Summary: See D1902, T989, T11263, D15984, T4103 , D15976, https://secure.phabricator.com/w/changelog/2016.22/, T2527, T11231, T8286, T11264 for discussion! When we get another copy of T989, I will rename it to "Build a complicated keybinding settings page like a cool video game" and leave it open forever. Test Plan: Pressed "/" in Firefox, had my pristine browsing experience inexplicably hijacked by this horrible application. Reviewers: avivey, chad Reviewed By: avivey Subscribers: Korvin Differential Revision: https://secure.phabricator.com/D15984
1 parent 444e353 commit 1a303e7

File tree

3 files changed

+31
-13
lines changed

3 files changed

+31
-13
lines changed
 

‎resources/celerity/map.php

+10-10
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
return array(
99
'names' => array(
1010
'core.pkg.css' => '2fbe65a2',
11-
'core.pkg.js' => '49f8bdc0',
11+
'core.pkg.js' => '1bcca0f3',
1212
'darkconsole.pkg.js' => 'e7393ebb',
1313
'differential.pkg.css' => '3e81ae60',
1414
'differential.pkg.js' => '634399e9',
@@ -491,7 +491,7 @@
491491
'rsrc/js/core/behavior-history-install.js' => '7ee2b591',
492492
'rsrc/js/core/behavior-hovercard.js' => 'bcaccd64',
493493
'rsrc/js/core/behavior-keyboard-pager.js' => 'a8da01f0',
494-
'rsrc/js/core/behavior-keyboard-shortcuts.js' => '7835f8c9',
494+
'rsrc/js/core/behavior-keyboard-shortcuts.js' => '01fca1f0',
495495
'rsrc/js/core/behavior-lightbox-attachments.js' => 'f8ba29d7',
496496
'rsrc/js/core/behavior-line-linker.js' => '1499a8cb',
497497
'rsrc/js/core/behavior-more.js' => 'a80d0378',
@@ -654,7 +654,7 @@
654654
'javelin-behavior-phabricator-gesture' => '3ab51e2c',
655655
'javelin-behavior-phabricator-gesture-example' => '558829c2',
656656
'javelin-behavior-phabricator-keyboard-pager' => 'a8da01f0',
657-
'javelin-behavior-phabricator-keyboard-shortcuts' => '7835f8c9',
657+
'javelin-behavior-phabricator-keyboard-shortcuts' => '01fca1f0',
658658
'javelin-behavior-phabricator-line-linker' => '1499a8cb',
659659
'javelin-behavior-phabricator-nav' => '56a1ca03',
660660
'javelin-behavior-phabricator-notification-example' => '8ce821c5',
@@ -921,6 +921,13 @@
921921
'javelin-workflow',
922922
'phabricator-draggable-list',
923923
),
924+
'01fca1f0' => array(
925+
'javelin-behavior',
926+
'javelin-workflow',
927+
'javelin-json',
928+
'javelin-dom',
929+
'phabricator-keyboard-shortcut',
930+
),
924931
'031cee25' => array(
925932
'javelin-behavior',
926933
'javelin-request',
@@ -1499,13 +1506,6 @@
14991506
'multirow-row-manager',
15001507
'javelin-json',
15011508
),
1502-
'7835f8c9' => array(
1503-
'javelin-behavior',
1504-
'javelin-workflow',
1505-
'javelin-json',
1506-
'javelin-dom',
1507-
'phabricator-keyboard-shortcut',
1508-
),
15091509
'7927a7d3' => array(
15101510
'javelin-behavior',
15111511
'javelin-quicksand',

‎src/view/page/menu/PhabricatorMainMenuView.php

+9-1
Original file line numberDiff line numberDiff line change
@@ -186,9 +186,17 @@ private function renderSearch() {
186186
}
187187

188188
$result = $search;
189+
$keyboard_config['searchID'] = $search->getID();
189190
}
190191

191-
Javelin::initBehavior('phabricator-keyboard-shortcuts', $keyboard_config);
192+
$keyboard_config['pht'] = array(
193+
'/' => pht('Give keyboard focus to the search box.'),
194+
'?' => pht('Show keyboard shortcut help for the current page.'),
195+
);
196+
197+
Javelin::initBehavior(
198+
'phabricator-keyboard-shortcuts',
199+
$keyboard_config);
192200

193201
if ($result) {
194202
$result = id(new PHUIListItemView())

‎webroot/rsrc/js/core/behavior-keyboard-shortcuts.js

+12-2
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111
* Define global keyboard shortcuts.
1212
*/
1313
JX.behavior('phabricator-keyboard-shortcuts', function(config) {
14+
var pht = JX.phtize(config.pht);
1415
var workflow = null;
1516

16-
var desc = 'Show keyboard shortcut help for the current page.';
17-
new JX.KeyboardShortcut('?', desc)
17+
new JX.KeyboardShortcut('?', pht('?'))
1818
.setHandler(function(manager) {
1919
if (workflow) {
2020
// Already showing the dialog.
@@ -30,4 +30,14 @@ JX.behavior('phabricator-keyboard-shortcuts', function(config) {
3030
})
3131
.register();
3232

33+
if (config.searchID) {
34+
new JX.KeyboardShortcut('/', pht('/'))
35+
.setHandler(function() {
36+
var search = JX.$(config.searchID);
37+
search.focus();
38+
search.select();
39+
})
40+
.register();
41+
}
42+
3343
});

0 commit comments

Comments
 (0)
Failed to load comments.