mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 22:13:26 +00:00
hotkeys: Add "p" to narrow to next unread PM thread.
This works simimlar to the "n" key for next topics.
This commit does a few things:
* It wires up the hotkey to an existing function
that could change narrows.
* It adds documentation.
* It adds logic to make sure the compose box does
not open.
@showell helped a bit with the wording of comments here.
Fixes #4874
This commit is contained in:
committed by
Steve Howell
parent
68664acf1f
commit
a75f0aa594
@@ -148,7 +148,7 @@ function stubbing(func_name_to_stub, test_function) {
|
||||
|
||||
// Unmapped keys should immediately return false, without
|
||||
// calling any functions outside of hotkey.js.
|
||||
assert_unmapped('abefhlmoptxyz');
|
||||
assert_unmapped('abefhlmotxyz');
|
||||
assert_unmapped('BEFHILNOQTUWXYZ');
|
||||
|
||||
// We have to skip some checks due to the way the code is
|
||||
@@ -286,6 +286,7 @@ function stubbing(func_name_to_stub, test_function) {
|
||||
// Test keys that work when a message is selected and
|
||||
// also when the message list is empty.
|
||||
assert_mapping('n', 'narrow.narrow_to_next_topic');
|
||||
assert_mapping('p', 'narrow.narrow_to_next_pm_string');
|
||||
|
||||
global.current_msg_list.empty = return_true;
|
||||
assert_mapping('n', 'narrow.narrow_to_next_topic');
|
||||
|
||||
@@ -384,7 +384,17 @@ exports.quote_and_reply = function (opts) {
|
||||
});
|
||||
};
|
||||
|
||||
exports.on_narrow = function () {
|
||||
exports.on_narrow = function (opts) {
|
||||
// We use force_close when jumping between PM narrows with the "p" key,
|
||||
// so that we don't have an open compose box that makes it difficult
|
||||
// to cycle quickly through unread messages.
|
||||
if (opts.force_close) {
|
||||
// This closes the compose box if it was already open, and it is
|
||||
// basically a noop otherwise.
|
||||
exports.cancel();
|
||||
return;
|
||||
}
|
||||
|
||||
if (narrow_state.narrowed_by_topic_reply()) {
|
||||
exports.on_topic_narrow();
|
||||
return;
|
||||
|
||||
@@ -94,6 +94,7 @@ var keypress_mappings = {
|
||||
106: {name: 'vim_down', message_view_only: true}, // 'j'
|
||||
107: {name: 'vim_up', message_view_only: true}, // 'k'
|
||||
110: {name: 'n_key', message_view_only: false}, // 'n'
|
||||
112: {name: 'p_key', message_view_only: false}, // 'p'
|
||||
113: {name: 'query_streams', message_view_only: false}, // 'q'
|
||||
114: {name: 'reply_message', message_view_only: true}, // 'r'
|
||||
115: {name: 'narrow_by_recipient', message_view_only: true}, // 's'
|
||||
@@ -630,6 +631,9 @@ exports.process_hotkey = function (e, hotkey) {
|
||||
case 'n_key':
|
||||
narrow.narrow_to_next_topic();
|
||||
return true;
|
||||
case 'p_key':
|
||||
narrow.narrow_to_next_pm_string();
|
||||
return true;
|
||||
case 'open_drafts':
|
||||
drafts.launch();
|
||||
return true;
|
||||
|
||||
@@ -248,7 +248,7 @@ exports.activate = function (raw_operators, opts) {
|
||||
$('#search_query').val(Filter.unparse(operators));
|
||||
search.update_button_visibility();
|
||||
|
||||
compose_actions.on_narrow();
|
||||
compose_actions.on_narrow(opts);
|
||||
|
||||
var current_filter = narrow_state.get_current_filter();
|
||||
|
||||
@@ -361,8 +361,8 @@ exports.narrow_to_next_topic = function () {
|
||||
exports.activate(filter_expr, opts);
|
||||
};
|
||||
|
||||
|
||||
exports.narrow_to_next_pm_string = function () {
|
||||
|
||||
var curr_pm = narrow_state.pm_string();
|
||||
|
||||
var next_pm = topic_generator.get_next_unread_pm_string(curr_pm);
|
||||
@@ -379,8 +379,10 @@ exports.narrow_to_next_pm_string = function () {
|
||||
{operator: 'pm-with', operand: pm_with},
|
||||
];
|
||||
|
||||
// force_close parameter is true to not auto open compose_box
|
||||
var opts = {
|
||||
select_first_unread: true,
|
||||
force_close: true,
|
||||
};
|
||||
|
||||
exports.activate(filter_expr, opts);
|
||||
|
||||
@@ -35,6 +35,8 @@ below, and add more to your repertoire as needed.
|
||||
|
||||
* **Next unread topic**: `n`
|
||||
|
||||
* **Next unread private message**: `p`
|
||||
|
||||
* **All private messages**: `P`
|
||||
|
||||
* **Search messages**: `/`
|
||||
@@ -66,6 +68,8 @@ below, and add more to your repertoire as needed.
|
||||
|
||||
* **Narrow to next unread topic**: `n`
|
||||
|
||||
* **Narrow to next unread private message**: `p`
|
||||
|
||||
* **Narrow to stream**: `s`
|
||||
|
||||
* **Narrow to topic**: `S`
|
||||
|
||||
@@ -40,6 +40,10 @@
|
||||
<td class="hotkey">n</td>
|
||||
<td class="definition">{% trans %}Next unread topic{% endtrans %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="hotkey">p</td>
|
||||
<td class="definition">{% trans %}Next unread private message{% endtrans %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="hotkey">P</td>
|
||||
<td class="definition">{% trans %}All private messages{% endtrans %}</td>
|
||||
@@ -170,6 +174,10 @@
|
||||
<td class="hotkey">n</td>
|
||||
<td class="definition">{% trans %}Narrow to next unread topic{% endtrans %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="hotkey">p</td>
|
||||
<td class="definition">{% trans %}Narrow to next unread private message{% endtrans %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="hotkey">A, D</td>
|
||||
<td class="definition">{% trans %}Cycle between stream narrows{% endtrans %}</td>
|
||||
|
||||
Reference in New Issue
Block a user