Commit Graph

1032 Commits

Author SHA1 Message Date
Zev Benjamin
4c9e3a167e Move message selection to an event-based system
Messages are now selected on a MessageList, which triggers a
message_selected event that other parts of the code can listen for.

(imported from commit 1da9e4121425c0ac4461b41b7aea169072e1512b)
2013-02-21 13:29:17 -05:00
Zev Benjamin
ed51bd0432 Select messages on the MessageList instead of calling a global function
(imported from commit 0ea1c2695cda5ec415c42a450103e768cf2ff5db)
2013-02-21 13:29:17 -05:00
Zev Benjamin
9e9b4c8541 Make MessageList.selected_id an accessor method
(imported from commit 144d12ba8be2de02900ef06c3413f660144de8bf)
2013-02-21 13:29:17 -05:00
Zev Benjamin
36798c8d67 Select the closest message to the target after narrowing
(imported from commit e41fcb032af5a8653b7573cb87bbc879a2008343)
2013-02-21 13:29:17 -05:00
Zev Benjamin
a91aa7f8f5 Move message filtering from add_to_table to add_messages_helper
(imported from commit 45b1149771a0d96af4c6267fc8457e49c3d10799)
2013-02-21 13:29:17 -05:00
Zev Benjamin
9cac51d0b5 Add MessageList method for finding the closest id in the list to a given id
(imported from commit 244239f44e018940c26626388fd56ff7ac017a80)
2013-02-21 13:29:17 -05:00
Zev Benjamin
fc10556b84 Select a more correct message when narrowing by clicking on message's stream or subject
Previously we would select the first message in the block.  Now, we
only do that if a message that is selected will not be in the
resulting narrowed view.  If the selected message will be in the
narrowed view, we select that message once narrowed.

(imported from commit 4da5a3a0b597b58c2e028f1b29ac20ae3808a4d1)
2013-02-21 13:29:17 -05:00
Zev Benjamin
e9b915c2b9 Remove global selected_message_id and persistent_message_id variables
Each message list now has a selected message id.

(imported from commit 041abc54ea42c636c30e39df4a2e838bb830e1aa)
2013-02-21 13:29:17 -05:00
Zev Benjamin
97160d79d4 Use the new MessageList for storing messages
(imported from commit 38a04d2ff504aa49189997b972318af7c944d528)
2013-02-21 13:28:23 -05:00
Zev Benjamin
814e3d6385 Implement a message list structure for storing messages and related information
(imported from commit 171de93636a215d9357c7fc4ee8fb71696d23fb5)
2013-02-21 13:27:45 -05:00
Zev Benjamin
e19f9fd3d0 Also restore the scrollTop when the hash changes to '#'
(imported from commit 7b93c4692cca0a6e12b8e01560be7ae00240fa39)
2013-02-21 13:25:29 -05:00
Zev Benjamin
b2eb4530d3 Fix comment spelling error
(imported from commit 347a860dfb0de2c49c2810f3aa041bc5c4f427d0)
2013-02-21 13:25:29 -05:00
Leo Franchi
36d953e2af Show messages to streams we were just subscribed to
(imported from commit f852be239da1f3385f9fc9861a3ed07a7f47a6da)
2013-02-21 12:10:53 -05:00
Jessica McKellar
382f94b5b5 Move presence information to a right sidebar.
(imported from commit c5533988606f1fc05de6b83eeb39f8f913f6ad42)
2013-02-21 09:23:59 -05:00
Waseem Daher
6913d16f28 Make your name and gravatar clickable as a way of returning home.
I kind of expect this to work, and hopefully this'll help with
people getting stuck on the "Settings" page in the tutorial.

(imported from commit 1159d884dcd331bcfb74864a0176fa293e8c3714)
2013-02-21 14:05:40 +00:00
Tim Abbott
63d7279cce Some small improvements to the tutorial text.
Most of them are just typos or funny punctuation, but this also adds
the word "above" after "You and Humbug Tutorial Bot" since otherwise
the user might try to click the text in the message body and be
confused.

(imported from commit dccaf4acd24db713acab261440f0a9d03860e0f4)
2013-02-20 20:59:36 -05:00
Keegan McAllister
c7b88cc708 Disable backfilling 1,000 messages on idle
Right now the MIT realm has pretty bad UI lag with 1,200 messages loaded.  We
need to fix the root problem, but this commit at least makes reloading the page
a satisfactory remedy.

(imported from commit 93d47710891cfc4db9fa00beaa5ccd10113aa1c3)
2013-02-20 18:50:20 -05:00
Waseem Daher
af1327230a tutorial: A first draft of a tutorial.
Here I have a sketchy but functional framework for dealing with
all of the async stuff that a tutorial requires, and an early
draft of what such a tutorial might look like.

I could probably go and remove the first-run message, but I'll
keep it around for now in the unlikely event that something I
haven't anticipated goes wrong in starting up the tutorial.

(imported from commit de9779a66a1b3fe790082decb324c90ec180b39b)
2013-02-20 23:04:50 +00:00
Waseem Daher
b51dc36667 Add a tutorial.js file.
(imported from commit 58b72d08c0cd7815c3c54bd37c4a8033f32cc7ad)
2013-02-20 23:04:49 +00:00
Reid Barton
8b8f2707e7 Fix bolding of "Home", "All messages", "All private messages" when active
(imported from commit 759729b4b2c0ebac3e3f1c9f74617a2dbea50223)
2013-02-20 17:50:26 -05:00
Reid Barton
873f171fb3 Only perform scrolling functions when the home tab is active
(imported from commit a6bcbadfd94f6312af62648a90a9e4e9b0e97dbc)
2013-02-20 17:50:26 -05:00
Leo Franchi
af58956f9e Only show All messages link in sidebar if there are non-homeview streams
(imported from commit b247b651e531debbac2ad34a15b9a758de936348)
2013-02-20 14:24:49 -05:00
Leo Franchi
8162d46d5c Mark as unread messages loaded in a narrow view older than pointer
(imported from commit 37362d1fbb4932f064753a5d3d335d9b2bec2964)
2013-02-20 14:05:49 -05:00
Leo Franchi
0e6ba5ebf4 Hide message table when adding/removing large number of entries
This fixes the issue where toggling show/hide on a stream in the home
view scrolls the page, because the removing and adding of rows in the
still-visible message table causes the cursor and scroll position to jump

(imported from commit 7454284a44af26379a0d2e7fce3683d98e3e4c48)
2013-02-20 13:49:24 -05:00
Keegan McAllister
4c037a938c Add title text to presence entries
(imported from commit 3c27607e59df222c4c8b3113a5efe7cdb23aa37d)
2013-02-19 18:31:26 -05:00
Keegan McAllister
bf21c29ce1 Clean up and simplify ui.set_presence_list
(imported from commit edeadfbfc623150e87b7f47c9e46212e24784154)
2013-02-19 18:31:26 -05:00
Keegan McAllister
cb45d88cea Get rid of constants activity.user_{active,away,idle}
We don't typically have these (see message type, etc.) and removing
them will allow simplifying the code.

(imported from commit fbefb08ee9b08c73f32c8150a6fa1060957aa8ad)
2013-02-19 18:27:36 -05:00
Keegan McAllister
0b5ba3090a Rename presence CSS classes for clarity
(imported from commit 14b3e80deaf5066210ff7e540b517597884219f3)
2013-02-19 18:27:36 -05:00
Leo Franchi
75fc80be60 Do not show self in presence list for MIT
(imported from commit adbbe0dd9728d4c88fa6865f3d5ae54e715868cc)
2013-02-19 17:36:22 -05:00
Reid Barton
61350d65d1 Render recent dates as weekdays, part 2.
This commit does the actual work of formatting recent dates as weekday
names and updating the format when the date is sufficiently far in the
past.

Also, silence a bogus jslint warning.

(imported from commit 503286fbd9c1e33a81cc7d78cf8d08d5e7f78c1a)
2013-02-19 15:58:25 -05:00
Reid Barton
59dab21fcd Render recent dates as weekdays, part 1.
This commit just moves time rendering logic to its own file, and does
not make any functionality changes.

(imported from commit d111d03c6abc8d9550fcf65e4f89eab8056d1ed4)
2013-02-19 15:58:25 -05:00
Leo Franchi
5d79bb6a20 Add a 'show in home view' toggle to the stream settings
(imported from commit af8bcc4df6fcd9f6ffed4ccb1b9be5261ffe619d)
2013-02-19 15:43:27 -05:00
Luke Faraone
85b6b551f2 Add a notion of "All messages" to the sidebar.
(imported from commit 740711d1fa925055b26249071f79fc0b287d78c1)
2013-02-19 15:43:26 -05:00
Keegan McAllister
ebbbc4d8c2 Apply stream bar color class to the compose window as well
(imported from commit 3c3f3d1073a95ceff74a571f1b2c985a7b820c8e)
2013-02-19 15:33:35 -05:00
Keegan McAllister
bb5f59d310 Use white text for recipient labels on streams set to dark colors
Fixes #577.

(imported from commit 0518e33b96bc0028fc80d533f6b8ec35fd5cdc04)
2013-02-19 15:33:35 -05:00
Keegan McAllister
da7f6e0fe8 Add a helper util.memoize
(imported from commit 16b5c49580e30a51583bc0bc8b11293bba595b3a)
2013-02-19 15:33:35 -05:00
Reid Barton
968d1cd9ee Only show "More messages below" when there are unread messages
Fixes Trac #838.

(imported from commit 9b02820946698cf6ef76f1836b5fd6c3c50ed0f4)
2013-02-19 13:43:34 -05:00
Reid Barton
37b5a84af4 Track total number of unread messages
(imported from commit 0a6f270b8a4debf0cbb7e869ecbff59f39f22049)
2013-02-19 13:43:34 -05:00
Reid Barton
bec83b2bc3 Minor style changes to process_unread_counts
(imported from commit 1cf468e4c2d6237772b3424e4941ee2481dc9bfd)
2013-02-19 13:43:34 -05:00
Keegan McAllister
00445c843e Restore the cursor position when shift-tabbing back from send button to content
Fixes #806.

(imported from commit ccdab39b52f3aee387be17f13c91ecfabee2b214)
2013-02-19 11:25:03 -05:00
Keegan McAllister
45dd9e8ec9 Remove Safari Tab-Enter workaround
These days we explicitly handle the Tab hotkey in composebox_typeahead.js

(imported from commit e554a20bf0517f928359ad83f8ba83abb22aa68e)
2013-02-19 11:25:02 -05:00
Jessica McKellar
2852692de5 Hide floating recipient bar on mousewheel scroll but not keypress.
That way it is visible more consistently when arrowing through
messages (arrowing causes scroll events).

(imported from commit ba629b907e4e593032a61a10b04f00e592fe8427)
2013-02-18 21:17:29 -05:00
Jessica McKellar
1b02928806 Only update floating recipient bar at end of scroll.
This makes scrolling much cheaper and reduces jerky scrolling.

(imported from commit 38b620bb13c498556a21962113a94e35a209d52b)
2013-02-18 14:58:58 -05:00
Waseem Daher
2b7b39fe1f Make 'New stream' and 'New PM' buttons work when not on home tab.
This fixes Trac #898.

Prior to this commit, we only changed the tab to #home in
compose.start; i.e. when a compose was not already in progress. This
means that if the composebox was open and we were on the settings
page, clicking one of these buttons would not work.

(imported from commit aa88a605cdcb61d5b6a1ece6292001c5f5a19c66)
2013-02-17 17:45:53 -05:00
Keegan McAllister
ddcf2cb86e Set favicon from our generated images rather than using Notificon
We've been noticing a long delay between switching to a window with unread
messages and the time that those messages actually appear.  This got much worse
around the time we added Notificon.

Our hypothesis (supported by some testing) is that the work done by Notificon
in creating a <canvas>, drawing into it, serializing it to PNG, etc. is using
up some quota of background operations that would be better spent rendering
messages.

Switching to precomputed images should mitigate this problem.

Resolves #896.

May resolve #882 to our satisfaction.

(imported from commit a2d98a163486bdd35fdfb5351f96c5529ba5c7e9)
2013-02-15 16:19:50 -05:00
Keegan McAllister
c0054f6335 notifications: Remove duplicated code
(imported from commit 3b6fe986ed51a3698460b2e6f984df6f71cc5f6f)
2013-02-15 16:18:24 -05:00
Leo Franchi
a1234afc4b Make sure we have a full name for a user before accessing it
(imported from commit 20165ada3f04edd714e5d2e8ee31a388a1ff00de)
2013-02-15 15:56:14 -05:00
Jessica McKellar
b8ad7f235a Replace the pipe character between stream and subject with a '>'.
It helps to clarify the relationship between subjects and streams.

(imported from commit 53ed623f3875939c5b6f812de54ccbe616cdb1db)
2013-02-15 11:01:06 -05:00
Waseem Daher
f37f6b2d37 Don't show popover on right-click.
I experimented briefly with window.getSelection to try to determine if
any text was highlighted (and then we could've done something like
"Don't popover if text is highlighted"), but I couldn't quickly get it
to work in a robust way, so for now I am removing the feature.

(imported from commit 76048b8fd070675b480a2d29e2c8d7d6018633ec)
2013-02-15 10:50:17 -05:00
Luke Faraone
32a406a5cf Display a total count of the number of PMs you have pending.
This is accomplished by continuning to have per-conversation PM counts
but then summing them up into a global count.

We may split this off into per-conversation counts in the future.

(imported from commit 311e3b74715c3a01c0b75837e397a386ab65505c)
2013-02-14 17:32:22 -05:00