Commit Graph

66 Commits

Author SHA1 Message Date
Raghav Jajodia 217b8f2a85 hotkeys: escape key press dismiss "invite-users" modal.
Pressing escape key dismiss the invite-user modal.

Fixes #4008.
2017-03-09 12:10:27 -08:00
Tim Abbott 9c02e59b66 hotkey: Fix K/J being treated as hotkeys in compose. 2017-03-08 16:02:33 -08:00
Tim Abbott e61b54b74a Fix spacebar being broken in the compose box.
This fixes a regression introduced in
8801158dfd.

Apparently the `page_up`/`page_down` hotkey definitions somewhat
confusingly called `spacebar` `page_down`, etc.  Probably worth doing
further cleanup on this.
2017-03-08 15:57:56 -08:00
Brock Whittaker 8801158dfd Add hotkey actions for page up/down in compose box.
The hotkey actions make the caret position go to the top of the compose
box or bottom respectively, while the compose box is open.

Fixes #1910.
2017-03-08 14:13:05 -08:00
Steve Howell 024168d85d bug fix: Fix hotkeys for compose preview.
We have special code for closing a "compose preview", but
it should only apply to the enter key.  Before this fix, we
would do the "enter" logic for other hotkeys like "j".
2017-03-03 12:22:57 -08:00
Steve Howell a6e1ab4fec hotkeys: Limit calls to ui.home_tab_obscured().
If you are typing a key like "q" in the compose box, there is no
need to check if the home tab is obscured, because the effect of
"q" is not limited by the message pane being opened.
2017-03-03 12:22:57 -08:00
Steve Howell bd6107cc1d hotkeys: Alphabetize switch/case code blocks. 2017-03-03 12:22:57 -08:00
Steve Howell 3c948be436 hotkeys: Extract focus_in_empty_compose().
This saves a bit of unnecessary computation when you type
non-arrow keys, which is especially important in the compose
box for characters that seem ordinary, like "j" and "q", but
which have mappings in some cases.
2017-03-03 12:22:57 -08:00
Steve Howell 64e0e65bac hotkeys: Limit calls to tab_up_down().
If you are not hitting an arrow key, we should prevent doing the
complex logic in tab_up_down().
2017-03-03 12:22:57 -08:00
Steve Howell a2653e3ff5 hotkeys: Process "ignored" hotkeys more efficiently. 2017-03-03 12:22:57 -08:00
Tim Abbott 31bf60d3d8 Fix accidentally overriding alt-left with edit-last-message hotkey.
Apparently, our logic was broken on systems where altKey and metaKey
are different, because we didn't ignore hotkey combinations that
included altKey.

Fixes #3738.
2017-03-01 11:18:40 -08:00
Raghav Jajodia 27f80e7741 hotkeys: 'Esc' key on topic field closes the message_edit form.
Pressing Escape key when on topic field closes the message_edit form
Fixes #3796.
2017-02-27 00:22:18 -08:00
Sampriti Panda 1929cc5190 Implement persistent drafts functionality
* Created a drafts modal to display/restore/delete drafts
* Created a Draft model to support storing draft data in localstorage
* Removed existing restore-draft functionality
* Added casper and node tests for drafts functionality

Fixes #1717.
2017-02-23 02:58:23 -08:00
Tim Abbott e29663a2b3 compose: Fix behavior hitting enter with the preview area open.
The new behavior is:
(1) If enter-sends is enabled, just send the messsage.
(2) If enter-sends is not enabled, return focus to the compose area.

Based on great work by khantaalaman in #3673.

Fixes #3489.
2017-02-18 23:31:54 -08:00
Tim Abbott a0aa2ca0f2 hotkey: Fix incorrect test for open subscriptions overlay. 2017-02-12 13:29:12 -08:00
Igor Tokarev 55cffa1e69 Added keyboard shortcut to edit the last message.
Tweaked significantly by tabbott to update Casper tests, document the
new feature, and fix hotkeys.

Fixes #1147.
2017-02-12 00:29:28 -08:00
Tim Abbott ce880b0d0c hotkey: Fix incorrect return value from informational overlays.
In theory, whenever an event is handled, it should return true.
2017-02-10 15:18:41 -08:00
Brock Whittaker 1500e93092 Convert overlay modals to unified modal system.
This converts three modals:

1. Markdown Help
2. Keyword Shortcuts
3. Search Operators

Into a system in which they all appear in the same overlay now.
2017-02-10 15:18:41 -08:00
Brock Whittaker 1143ed7219 redesign: Change /#settings and /#administration to an overlay.
This also adds a box-shadow to the #deactivate_self_modal so that it
looks similar to the old backdrop.
2017-02-09 23:35:10 -08:00
khantaalaman 04591d1ce5 js: Fix pressing escape with modals open.
Previously, if you pressed the escape key with various modals open
(keyboard shortcuts, markdown help, etc.), the modals would close but
also the compose box would close and the user would be unnarrowed.
This changes makes it so all that happens is the modal closes.

Fixes #3472.
2017-01-28 15:54:36 -08:00
Brock Whittaker ac710be9ae On enter, submit content editable.
On the enter key, the value of the content editable box should be
submitted.
2017-01-27 12:20:21 -08:00
Brock Whittaker eaeb0e32a7 Stream Description Content Editable Piece.
This makes the stream description a content-editable piece.
2017-01-27 12:04:37 -08:00
Brock Whittaker eccca8fc61 Unify subs modal closing with subs.close().
The new subs.close() function should unify all closing events of the
subscriptions overlay. The function also now tracks whether the
subscription overlay is in a closed or open state.
2017-01-19 14:23:25 -08:00
Tim Abbott 998dff9e50 lint: Add dangling commas in JavaScript objects. 2017-01-11 15:23:42 -08:00
Tim Abbott 81a19375d2 hotkey: Fix exiting the subscriptions page with "escape".
This had apparently regressed because it was checking the wrong
selector, and also didn't do the right thing to exit.
2017-01-06 23:45:03 -08:00
Brock Whittaker d8fc30a776 Change escape key interception with subscription overlay.
The escape key used to be intercepted if the subscription pay display
was set to “block”, but now since we use the class “show” and lack to
hide and show the overlay, the query needs to change.
2017-01-03 17:55:22 -08:00
lonerz e1d4fb90d7 hotkeys: Add '@' as a hotkey to compose message with mention. 2016-12-29 15:43:35 -08:00
Brock Whittaker 1886f0a015 redesign: Convert subscriptions page to overlay.
This is a major change to the /#subscriptions page, converting it to
by a side-by-side list of streams and their settings in an overlay.
There are no new features added/removed, but it's a huge changeset,
because it replaces the old navigation logic and moves the stream
creation modal to appear in the right side of this overlay.
2016-12-09 11:08:08 -08:00
Rafid Aslam 7856217a63 Migrate JS modules to CommonJS style.
Closes #1488.
2016-12-07 16:11:52 -08:00
lonerz a8b39e6c0f Switch yoda eslint rule from warning to error (in .eslintrc) 2016-12-04 19:48:10 -08:00
AZtheAsian ed0bc831be eslint: change one-var from warning to error and fix violations 2016-12-02 11:25:16 -07:00
Tommy Ip b3f4feb996 eslint: change max-len from warning to error and fix violations. 2016-12-02 14:16:33 +00:00
Ilona Brand 4bf908c2d6 Add emoji map to the compose box.
- Expand a box full of emojis into the
compose window for users to graphically select emojis.

- Append an emoji to the end of the message when a user
clicks the emoji in the emoji box.

- Trap the escape key to always close the emoji box
before closing anything else if the box is open.

- Fixes: #147.
2016-10-10 16:12:25 -07:00
Brock Whittaker f097581497 hotkeys: Fix escape key unnarrow/close lightbox interaction.
There is an issue where the unnarrow on escape was firing before the
overlay would escape. This shouldn’t happen because then when you try
to close out the overlay you also lose your spot on the page.

By changing the order, all is restored with the world.
2016-09-29 14:08:10 -07:00
Tim Abbott 66c63abfb9 hotkey: Prevent escape in lightbox from also unnarrowing. 2016-09-28 20:05:51 -07:00
Tim Abbott cfaba35b9a hotkey: Fix tab_up_down detection of arrow keys.
The new code in 65ab368ff0 incorrectly
used the closest list as a bool, and thus broken using the normal
arrow key hotkeys.
2016-09-28 00:25:32 -07:00
Brock Whittaker 87afe61860 Add overlay lightbox for displaying inline image previews.
This adds an event listener (by way of delegation) to the
.message_inline_image elements that pops up the overlay and hides it
when the overlay exit is clicked.

Fixes #654.
2016-09-27 17:50:51 -07:00
Brock Whittaker 65ab368ff0 Add arrow tab sections to home page.
This lets you use up and down arrows in certain sections on the site to
navigate lists. It also prevents potentially unwanted actions caused by
using up/down arrows in those sections.

Fixes: #1696.
2016-09-27 16:57:31 -07:00
Vishnu Ks e4b72c3a65 Move respond_to_message to compose.js. 2016-06-29 13:04:02 -07:00
Michael Cordover a51ec44005 Search streams from left sidebar (resolves #565).
Assigns hotkey 'w' to search streams.
Only show search box when active. Activate with hotkey or by clicking
STREAMS.
Filter matches at the beginning of words in stream name.
Behaviour is otherwise almost identical to user search.
Casper tests.
2016-06-23 17:21:57 -07:00
Michael Cordover 53e23743ca Refactor hotkey logic.
Place all hotkey names into a set of three objects in hotkeys.js:

 * hotkeys_shift_insensitive
   These are keys where the behaviour is the same whether they are
   pressed with shift or not.

 * hotkeys_no_modifiers
   These are keys where the event should only be fired when shift
   is not being pressed.

 * hotkeys_shift
   These are keys where the event should only be fired when the key
   is pressed simultaneously with shift.

Each object is a dictionary of key value pairs, with the key being
the keyscan code (e.which) for the key. This is normally the ASCII
key code. The value is an object with two properties, name (which
is the event name) and message_view_only, a boolean. Hotkeys with
message_view_only set to true will not be fired when the home tab
is obscured.
2016-06-13 15:43:49 -07:00
Steve Howell be2a1c2893 Move resizing code to resize.js.
(imported from commit b6df0007307872751e1a4200af740076e08b5c11)
2014-03-14 20:48:55 -04:00
Steve Howell 63097f32e5 Let arrow keys do the right thing for select widgets.
This helps the edit form in particular, when you change a
topic and need to select the propagation option.

(imported from commit c9dd1e62cd9e0b2142855685f04baa06eecf7226)
2014-03-12 21:15:21 -04:00
Leo Franchi 748e5b6da6 Remove disabled summarization code
This experiment has been disabled for everyone for a while: if we
bring something like this back, it is not likely to be exactly the same,
and will be different enough to require a different implementation.

As it is, the summarization code was making a few code paths (rendering
especially) more complex, and is worth removing for simplicity's sake.

(imported from commit 6ac8cdc9f7077a5a1da01ab4268aba3db0bc43f8)
2014-02-27 20:25:23 -05:00
Luke Faraone 8075c6e5a8 Allow cycling between streams with shift+{A,D}
Closes trac #2273.

(imported from commit 858ffd47aa6dbb372d426fe94b860dfe1c1cce34)
2014-02-20 13:27:43 -05:00
Steve Howell 2c6d7e8e18 Support q hotkey to Search people.
(imported from commit eafaf5900461e2df52de9ddbdc49823bf6d9e403)
2014-02-18 13:04:36 -05:00
Steve Howell 2d09036466 Have ESC blur Search people if it is empty.
(imported from commit d816c8b24cabfbea964fec9cb043f8a00c05f205)
2014-02-18 13:04:35 -05:00
Steve Howell 1887b59504 Have the ENTER key blur people searches.
This is important for hotkey users to be able to use other hotkeys.
Since ESC clears a search, we need ENTER to merely blur the search;
otherwise, hotkey users will need to mouse away from the search box
if they want to keep the search sticky.

(imported from commit 204704435c7821c1ad3b7b750ffe3545adaff9aa)
2014-01-15 16:05:52 -05:00
Steve Howell aae001fa8e Have ESC key clear people searches.
(imported from commit a3f4cf0416f4f2ea76660bf68790988edc5675e2)
2014-01-15 16:05:52 -05:00
acrefoot 59bbe33954 Cinch up whitespace during some cases. This is for when enable_autoscroll_past_unread is set
basically this tries to turn scroll-the-world into not-scroll-the-world
This is not very good--maybe Allen has a better idea. The best solution would be to
turn off scroll-the-world. Look for it after the tables->divs change happens.

(imported from commit ae0b6976bca57986f95022f2470bc7117eda7fa3)
2013-12-13 11:50:11 -05:00