diff --git a/frontend_tests/node_tests/hotkey.js b/frontend_tests/node_tests/hotkey.js index e3d4c085a9..adc20632c2 100644 --- a/frontend_tests/node_tests/hotkey.js +++ b/frontend_tests/node_tests/hotkey.js @@ -225,7 +225,7 @@ function stubbing(func_name_to_stub, test_function) { // Check that they do nothing while in the settings overlay overlays.settings_open = return_true; - assert_unmapped('@*+rRjJkKsSuvi:GM'); + assert_unmapped('@*+-rRjJkKsSuvi:GM'); overlays.settings_open = return_false; // TODO: Similar check for being in the subs page @@ -233,6 +233,7 @@ function stubbing(func_name_to_stub, test_function) { assert_mapping('@', 'compose_actions.reply_with_mention'); assert_mapping('*', 'message_flags.toggle_starred'); assert_mapping('+', 'reactions.toggle_emoji_reaction'); + assert_mapping('-', 'condense.toggle_collapse'); assert_mapping('r', 'compose_actions.respond_to_message'); assert_mapping('R', 'compose_actions.respond_to_message', true); assert_mapping('j', 'navigate.down'); diff --git a/static/js/condense.js b/static/js/condense.js index 902b6f9593..41a33257c7 100644 --- a/static/js/condense.js +++ b/static/js/condense.js @@ -79,6 +79,19 @@ exports.collapse = function (row) { process_row(row); process_row(home_row); }; + +exports.toggle_collapse = function (message) { + var row = current_msg_list.get_row(message.id); + if (!row) { + return; + } + if (message.collapsed) { + condense.uncollapse(row); + } else { + condense.collapse(row); + } +}; + exports.clear_message_content_height_cache = function () { _message_content_height_cache = new Dict(); }; diff --git a/static/js/hotkey.js b/static/js/hotkey.js index eeafd0d122..904d74c516 100644 --- a/static/js/hotkey.js +++ b/static/js/hotkey.js @@ -81,6 +81,7 @@ var keydown_either_mappings = { var keypress_mappings = { 42: {name: 'star_message', message_view_only: true}, // '*' 43: {name: 'thumbs_up_emoji', message_view_only: true}, // '+' + 45: {name: 'toggle_message_collapse', message_view_only: true}, // '-' 47: {name: 'search', message_view_only: false}, // '/' 58: {name: 'open_reactions', message_view_only: true}, // ':' 63: {name: 'show_shortcuts', message_view_only: false}, // '?' @@ -665,6 +666,9 @@ exports.process_hotkey = function (e, hotkey) { case 'toggle_mute': muting_ui.toggle_mute(msg); return true; + case 'toggle_message_collapse': + condense.toggle_collapse(msg); + return true; } return false;