Changeset View
Changeset View
Standalone View
Standalone View
webroot/rsrc/js/core/behavior-keyboard-shortcuts.js
| /** | /** | ||||
| * @provides javelin-behavior-phabricator-keyboard-shortcuts | * @provides javelin-behavior-phabricator-keyboard-shortcuts | ||||
| * @requires javelin-behavior | * @requires javelin-behavior | ||||
| * javelin-workflow | * javelin-workflow | ||||
| * javelin-json | * javelin-json | ||||
| * javelin-dom | * javelin-dom | ||||
| * phabricator-keyboard-shortcut | * phabricator-keyboard-shortcut | ||||
| */ | */ | ||||
| /** | /** | ||||
| * Define global keyboard shortcuts. | * Define global keyboard shortcuts. | ||||
| */ | */ | ||||
| JX.behavior('phabricator-keyboard-shortcuts', function(config) { | JX.behavior('phabricator-keyboard-shortcuts', function(config) { | ||||
| var pht = JX.phtize(config.pht); | |||||
| var workflow = null; | var workflow = null; | ||||
| var desc = 'Show keyboard shortcut help for the current page.'; | new JX.KeyboardShortcut('?', pht('?')) | ||||
| new JX.KeyboardShortcut('?', desc) | |||||
| .setHandler(function(manager) { | .setHandler(function(manager) { | ||||
| if (workflow) { | if (workflow) { | ||||
| // Already showing the dialog. | // Already showing the dialog. | ||||
| return; | return; | ||||
| } | } | ||||
| var desc = manager.getShortcutDescriptions(); | var desc = manager.getShortcutDescriptions(); | ||||
| var data = {keys : JX.JSON.stringify(desc)}; | var data = {keys : JX.JSON.stringify(desc)}; | ||||
| workflow = new JX.Workflow(config.helpURI, data) | workflow = new JX.Workflow(config.helpURI, data) | ||||
| .setCloseHandler(function() { | .setCloseHandler(function() { | ||||
| workflow = null; | workflow = null; | ||||
| }); | }); | ||||
| workflow.start(); | workflow.start(); | ||||
| }) | }) | ||||
| .register(); | .register(); | ||||
| if (config.searchID) { | |||||
| new JX.KeyboardShortcut('/', pht('/')) | |||||
| .setHandler(function() { | |||||
| var search = JX.$(config.searchID); | |||||
| search.focus(); | |||||
| search.select(); | |||||
| }) | |||||
| .register(); | |||||
| } | |||||
| }); | }); | ||||