DEV: Define keyboard shortcuts help onShow, and un-define onClose (#9355)

This is so we don't have a big hash just sitting in the controller definition, it is only created when it is needed. From comment here #9318 (comment)
This commit is contained in:
Martin Brennan 2020-04-07 14:40:03 +10:00 committed by GitHub
parent 93c38cc175
commit 7e42963590
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -50,176 +50,188 @@ function buildShortcut(
export default Controller.extend(ModalFunctionality, { export default Controller.extend(ModalFunctionality, {
onShow() { onShow() {
this.set("modal.modalClass", "keyboard-shortcuts-modal"); this.set("modal.modalClass", "keyboard-shortcuts-modal");
this._defineShortcuts();
},
onClose() {
this.set("shortcuts", null);
}, },
showBookmarkShortcuts: setting("enable_bookmarks_with_reminders"), showBookmarkShortcuts: setting("enable_bookmarks_with_reminders"),
shortcuts: { _defineShortcuts() {
jump_to: { this.set("shortcuts", {
home: buildShortcut("jump_to.home", { keys1: ["g", "h"] }), jump_to: {
latest: buildShortcut("jump_to.latest", { keys1: ["g", "l"] }), home: buildShortcut("jump_to.home", { keys1: ["g", "h"] }),
new: buildShortcut("jump_to.new", { keys1: ["g", "n"] }), latest: buildShortcut("jump_to.latest", { keys1: ["g", "l"] }),
unread: buildShortcut("jump_to.unread", { keys1: ["g", "u"] }), new: buildShortcut("jump_to.new", { keys1: ["g", "n"] }),
categories: buildShortcut("jump_to.categories", { keys1: ["g", "c"] }), unread: buildShortcut("jump_to.unread", { keys1: ["g", "u"] }),
top: buildShortcut("jump_to.top", { keys1: ["g", "t"] }), categories: buildShortcut("jump_to.categories", { keys1: ["g", "c"] }),
bookmarks: buildShortcut("jump_to.bookmarks", { keys1: ["g", "b"] }), top: buildShortcut("jump_to.top", { keys1: ["g", "t"] }),
profile: buildShortcut("jump_to.profile", { keys1: ["g", "p"] }), bookmarks: buildShortcut("jump_to.bookmarks", { keys1: ["g", "b"] }),
messages: buildShortcut("jump_to.messages", { keys1: ["g", "m"] }), profile: buildShortcut("jump_to.profile", { keys1: ["g", "p"] }),
drafts: buildShortcut("jump_to.drafts", { keys1: ["g", "d"] }) messages: buildShortcut("jump_to.messages", { keys1: ["g", "m"] }),
}, drafts: buildShortcut("jump_to.drafts", { keys1: ["g", "d"] })
navigation: { },
back: buildShortcut("navigation.back", { keys1: ["u"] }), navigation: {
jump: buildShortcut("navigation.jump", { keys1: ["#"] }), back: buildShortcut("navigation.back", { keys1: ["u"] }),
up_down: buildShortcut("navigation.up_down", { jump: buildShortcut("navigation.jump", { keys1: ["#"] }),
keys1: ["k"], up_down: buildShortcut("navigation.up_down", {
keys2: ["j"], keys1: ["k"],
shortcutsDelimiter: "slash" keys2: ["j"],
}), shortcutsDelimiter: "slash"
open: buildShortcut("navigation.open", { keys1: ["o"], keys2: [ENTER] }), }),
next_prev: buildShortcut("navigation.next_prev", { open: buildShortcut("navigation.open", {
keys1: [SHIFT, "j"], keys1: ["o"],
keys2: [SHIFT, "k"], keys2: [ENTER]
keysDelimiter: PLUS, }),
shortcutsDelimiter: "slash" next_prev: buildShortcut("navigation.next_prev", {
}), keys1: [SHIFT, "j"],
go_to_unread_post: buildShortcut("navigation.go_to_unread_post", { keys2: [SHIFT, "k"],
keys1: [SHIFT, "l"], keysDelimiter: PLUS,
keysDelimiter: PLUS shortcutsDelimiter: "slash"
}) }),
}, go_to_unread_post: buildShortcut("navigation.go_to_unread_post", {
application: { keys1: [SHIFT, "l"],
hamburger_menu: buildShortcut("application.hamburger_menu", { keysDelimiter: PLUS
keys1: ["="] })
}), },
user_profile_menu: buildShortcut("application.user_profile_menu", { application: {
keys1: ["p"] hamburger_menu: buildShortcut("application.hamburger_menu", {
}), keys1: ["="]
create: buildShortcut("application.create", { keys1: ["c"] }), }),
show_incoming_updated_topics: buildShortcut( user_profile_menu: buildShortcut("application.user_profile_menu", {
"application.show_incoming_updated_topics", keys1: ["p"]
{ keys1: ["."] } }),
), create: buildShortcut("application.create", { keys1: ["c"] }),
search: buildShortcut("application.search", { show_incoming_updated_topics: buildShortcut(
keys1: ["/"], "application.show_incoming_updated_topics",
keys2: [CTRL, ALT, "f"], { keys1: ["."] }
keysDelimiter: PLUS ),
}), search: buildShortcut("application.search", {
help: buildShortcut("application.help", { keys1: ["?"] }), keys1: ["/"],
dismiss_new_posts: buildShortcut("application.dismiss_new_posts", { keys2: [CTRL, ALT, "f"],
keys1: ["x", "r"] keysDelimiter: PLUS
}), }),
dismiss_topics: buildShortcut("application.dismiss_topics", { help: buildShortcut("application.help", { keys1: ["?"] }),
keys1: ["x", "t"] dismiss_new_posts: buildShortcut("application.dismiss_new_posts", {
}), keys1: ["x", "r"]
log_out: buildShortcut("application.log_out", { }),
keys1: [SHIFT, "z"], dismiss_topics: buildShortcut("application.dismiss_topics", {
keys2: [SHIFT, "z"], keys1: ["x", "t"]
keysDelimiter: PLUS, }),
shortcutsDelimiter: "space" log_out: buildShortcut("application.log_out", {
}) keys1: [SHIFT, "z"],
}, keys2: [SHIFT, "z"],
composing: { keysDelimiter: PLUS,
return: buildShortcut("composing.return", { shortcutsDelimiter: "space"
keys1: [SHIFT, "c"], })
keysDelimiter: PLUS },
}), composing: {
fullscreen: buildShortcut("composing.fullscreen", { return: buildShortcut("composing.return", {
keys1: [SHIFT, "F11"], keys1: [SHIFT, "c"],
keysDelimiter: PLUS keysDelimiter: PLUS
}) }),
}, fullscreen: buildShortcut("composing.fullscreen", {
bookmarks: { keys1: [SHIFT, "F11"],
enter: buildShortcut("bookmarks.enter", { keys1: [ENTER] }), keysDelimiter: PLUS
later_today: buildShortcut("bookmarks.later_today", { })
keys1: ["l", "t"], },
shortcutsDelimiter: "space" bookmarks: {
}), enter: buildShortcut("bookmarks.enter", { keys1: [ENTER] }),
later_this_week: buildShortcut("bookmarks.later_this_week", { later_today: buildShortcut("bookmarks.later_today", {
keys1: ["l", "w"], keys1: ["l", "t"],
shortcutsDelimiter: "space" shortcutsDelimiter: "space"
}), }),
tomorrow: buildShortcut("bookmarks.tomorrow", { later_this_week: buildShortcut("bookmarks.later_this_week", {
keys1: ["n", "d"], keys1: ["l", "w"],
shortcutsDelimiter: "space" shortcutsDelimiter: "space"
}), }),
next_week: buildShortcut("bookmarks.next_week", { tomorrow: buildShortcut("bookmarks.tomorrow", {
keys1: ["n", "w"], keys1: ["n", "d"],
shortcutsDelimiter: "space" shortcutsDelimiter: "space"
}), }),
next_business_week: buildShortcut("bookmarks.next_business_week", { next_week: buildShortcut("bookmarks.next_week", {
keys1: ["n", "b", "w"], keys1: ["n", "w"],
shortcutsDelimiter: "space" shortcutsDelimiter: "space"
}), }),
next_business_day: buildShortcut("bookmarks.next_business_day", { next_business_week: buildShortcut("bookmarks.next_business_week", {
keys1: ["n", "b", "d"], keys1: ["n", "b", "w"],
shortcutsDelimiter: "space" shortcutsDelimiter: "space"
}), }),
custom: buildShortcut("bookmarks.custom", { next_business_day: buildShortcut("bookmarks.next_business_day", {
keys1: ["c", "r"], keys1: ["n", "b", "d"],
shortcutsDelimiter: "space" shortcutsDelimiter: "space"
}), }),
none: buildShortcut("bookmarks.none", { custom: buildShortcut("bookmarks.custom", {
keys1: ["n", "r"], keys1: ["c", "r"],
shortcutsDelimiter: "space" shortcutsDelimiter: "space"
}) }),
}, none: buildShortcut("bookmarks.none", {
actions: { keys1: ["n", "r"],
bookmark_topic: buildShortcut("actions.bookmark_topic", { keys1: ["f"] }), shortcutsDelimiter: "space"
reply_as_new_topic: buildShortcut("actions.reply_as_new_topic", { })
keys1: ["t"] },
}), actions: {
reply_topic: buildShortcut("actions.reply_topic", { bookmark_topic: buildShortcut("actions.bookmark_topic", {
keys1: [SHIFT, "r"], keys1: ["f"]
keysDelimiter: PLUS }),
}), reply_as_new_topic: buildShortcut("actions.reply_as_new_topic", {
reply_post: buildShortcut("actions.reply_post", { keys1: ["r"] }), keys1: ["t"]
quote_post: buildShortcut("actions.quote_post", { keys1: ["q"] }), }),
pin_unpin_topic: buildShortcut("actions.pin_unpin_topic", { reply_topic: buildShortcut("actions.reply_topic", {
keys1: [SHIFT, "p"], keys1: [SHIFT, "r"],
keysDelimiter: PLUS keysDelimiter: PLUS
}), }),
share_topic: buildShortcut("actions.share_topic", { reply_post: buildShortcut("actions.reply_post", { keys1: ["r"] }),
keys1: [SHIFT, "s"], quote_post: buildShortcut("actions.quote_post", { keys1: ["q"] }),
keysDelimiter: PLUS pin_unpin_topic: buildShortcut("actions.pin_unpin_topic", {
}), keys1: [SHIFT, "p"],
share_post: buildShortcut("actions.share_post", { keys1: ["s"] }), keysDelimiter: PLUS
like: buildShortcut("actions.like", { keys1: ["l"] }), }),
flag: buildShortcut("actions.flag", { keys1: ["!"] }), share_topic: buildShortcut("actions.share_topic", {
bookmark: buildShortcut("actions.bookmark", { keys1: ["b"] }), keys1: [SHIFT, "s"],
edit: buildShortcut("actions.edit", { keys1: ["e"] }), keysDelimiter: PLUS
delete: buildShortcut("actions.delete", { keys1: ["d"] }), }),
mark_muted: buildShortcut("actions.mark_muted", { keys1: ["m", "m"] }), share_post: buildShortcut("actions.share_post", { keys1: ["s"] }),
mark_regular: buildShortcut("actions.mark_regular", { like: buildShortcut("actions.like", { keys1: ["l"] }),
keys1: ["m", "r"] flag: buildShortcut("actions.flag", { keys1: ["!"] }),
}), bookmark: buildShortcut("actions.bookmark", { keys1: ["b"] }),
mark_tracking: buildShortcut("actions.mark_tracking", { edit: buildShortcut("actions.edit", { keys1: ["e"] }),
keys1: ["m", "t"] delete: buildShortcut("actions.delete", { keys1: ["d"] }),
}), mark_muted: buildShortcut("actions.mark_muted", { keys1: ["m", "m"] }),
mark_watching: buildShortcut("actions.mark_watching", { mark_regular: buildShortcut("actions.mark_regular", {
keys1: ["m", "w"] keys1: ["m", "r"]
}), }),
print: buildShortcut("actions.print", { mark_tracking: buildShortcut("actions.mark_tracking", {
keys1: [CTRL, "p"], keys1: ["m", "t"]
keysDelimiter: PLUS }),
}), mark_watching: buildShortcut("actions.mark_watching", {
defer: buildShortcut("actions.defer", { keys1: ["m", "w"]
keys1: [SHIFT, "u"], }),
keysDelimiter: PLUS print: buildShortcut("actions.print", {
}), keys1: [CTRL, "p"],
topic_admin_actions: buildShortcut("actions.topic_admin_actions", { keysDelimiter: PLUS
keys1: [SHIFT, "a"], }),
keysDelimiter: PLUS defer: buildShortcut("actions.defer", {
}) keys1: [SHIFT, "u"],
}, keysDelimiter: PLUS
search_menu: { }),
prev_next: buildShortcut("search_menu.prev_next", { topic_admin_actions: buildShortcut("actions.topic_admin_actions", {
keys1: ["↑"], keys1: [SHIFT, "a"],
keys2: ["↓"], keysDelimiter: PLUS
shortcutsDelimiter: "slash" })
}), },
insert_url: buildShortcut("search_menu.insert_url", { search_menu: {
keys1: ["a"] prev_next: buildShortcut("search_menu.prev_next", {
}) keys1: ["↑"],
} keys2: ["↓"],
shortcutsDelimiter: "slash"
}),
insert_url: buildShortcut("search_menu.insert_url", {
keys1: ["a"]
})
}
});
} }
}); });