Commit Graph

646 Commits

Author SHA1 Message Date
Jessica McKellar dbc0c036c3 Update /apps to get the iOS app from the iTunes Store.
(imported from commit 22468bad537ab116f6568d08b0bae83d72e4cb96)
2013-10-08 11:10:53 -04:00
Allen Rabinovich 5aac176da3 Fix for hello/ background color
(imported from commit 334309916fe031f0214a9a9fa842b3cfbb6db2ed)
2013-10-08 08:57:28 -04:00
Allen Rabinovich bb62b816f1 Hello pages fixes: minor layout fixes, new cover image
(imported from commit 744bf64ecab9e37f745f517d376117c5cc123fca)
2013-10-07 13:52:17 -07:00
Leo Franchi 51e0bea608 Autocomplete emails in sender: completion
(imported from commit 44dc337842d46349b103cf9631faa7d439be682c)
2013-10-07 14:55:58 -04:00
Leo Franchi 33dacae82d Split calculating of prefix from narrow operators into function
(imported from commit 940d7d7290e0357aad300ea00b6fcc59cd56cae1)
2013-10-07 14:54:05 -04:00
Steve Howell 265a3e2339 Turn on alert words for everyone.
(imported from commit d4281a3a23e6df97e0c621fdc757ec0b75db1de2)
2013-10-05 15:50:05 -04:00
Kevin Mehall 40ad01371f Don't close the compose box on right click in Firefox.
Trac #1737

Firefox has the slightly broken behavior that it emits a click event on
the document when you right click, but not on any of the child nodes, so
our #compose stopPropagation doesn't stop right-click events from closing
compose. Chrome never emits click events on right click.

(imported from commit 2519c542715c93877b6d38e5dcff1f3e011688e4)
2013-10-04 14:38:05 -04:00
Leo Franchi 8c081bceb2 Enable alert words for pixleeteam.com
(imported from commit 622d9497f6c7e0434601291a7343c663e2567865)
2013-10-04 14:23:12 -04:00
Leo Franchi 101a70a7ce Fix selector for gravatar url polling
(imported from commit e0f915a9e5894e3749ca90bab674f36ee9c15347)
2013-10-04 12:10:22 -04:00
Waseem Daher a9a50ac470 Enable muting for everyone.
(imported from commit d107df94561c4ccb46a79ae09663239c4fb52061)
2013-10-04 01:37:47 -04:00
Waseem Daher 0c52f4dd47 Consistently bold things in the sidebar popovers.
I'm not saying it's beautiful, but prior to this we bolded
the topic name, but we didn't bold the stream name or user name.
Now we uniformly bold the name of the thing you're taking
action on.

(imported from commit f48b9d267b73858263541a905f6fd7fd626068ba)
2013-10-04 01:36:34 -04:00
Waseem Daher 68e6370447 Rebrand "not in home view" as "muting".
There's one place where we don't really get this right, though,
which is the Streams page -- there's still a checkbox labeled
"include in home view".

I'm basically OK with that.

(imported from commit 55319b57f0c3d005a9937258a55254b9a91ce6ae)
2013-10-04 01:34:58 -04:00
Steve Howell 5ae5f6578c Turn on muting for CUSTOMER4
(imported from commit 2f02edeacc2ae49a88dfc16f0f92fe6f5dfd9524)
2013-10-03 17:09:31 -04:00
Allen Rabinovich 83b62211dd Proper inline image resizing
(imported from commit 77daa62181b759f566a8ccce3fd0c52f68461ac0)
2013-10-03 13:38:03 -07:00
Allen Rabinovich a6889080ce New styles for the portico pages.
(imported from commit 832ad6eb0c2a7be91152d33a6f1ed5d96880839c)
2013-10-03 09:30:21 -07:00
Leo Franchi 0d6ad56c29 Decode operand in filter.js in operator-aware way
When decoding an operand, a + can be converted to a space
only if the operand is not an email address.

(imported from commit 08fc36a579bbe6409137c60c0fa9579fe3ab2c43)
2013-10-02 12:11:15 -04:00
Leo Franchi 54d83a3a36 Add a Codebase integration
(imported from commit d1ea870cd6ac6bf5d00c03d8859d66638d3242e8)
2013-10-02 10:55:17 -04:00
Steve Howell d437f6602f Add muted_topic style to the topics stylebar.
If you mute a topic, it will show with opacity 0.25.

(imported from commit 72517550cc9f1daa779b3aac6cacd39831d5aa20)
2013-09-30 16:52:19 -04:00
Steve Howell 45434d3f89 Fix bug with muting topics that are all integers.
It's a bit of a contrived use case, but you could make a topic
called "12345" and then mute it from the sidebar, and it would
crash inside Dict.  We now call attr(), not data(), to avoid
string-to-integer conversions.

(imported from commit 89666f40d624df154d41077546e1c13a23ee7e67)
2013-09-30 16:52:19 -04:00
Steve Howell d94d2d71c5 Always show narrowed topic in the topic sidebar.
Before this change, you could narrow to an old topic, and it would
not show up in the sidebar unless it had unread messages.

(imported from commit f177a7378dac064e46a6417357cc86ada4475936)
2013-09-30 16:52:19 -04:00
Steve Howell fcb6a9b572 Use "topic_name" var/field in rebuild_recent_subjects().
This is part of nibbling away at deprecating "subject."

(imported from commit fbd26b5f1386a174de76e04298a68b3a7b18606e)
2013-09-30 16:52:18 -04:00
Steve Howell 10145c0e83 Simplified setting active topic.
The old code was looping through recent_subjects to find the
original subject name, but we already have logic in get_subject_filter_li()
to be case-insensitive.  I tried this with various casings of topics,
narrowing to topics, as well as narrowing to a stream (so no active topic)
and narrowing to an old topic.

(imported from commit 1decde13477cb742fd4bc82798f1afb282182bdf)
2013-09-30 16:52:18 -04:00
Steve Howell 6b8013c631 Don't mutate global recent_subjects when creating subject sidebar.
Create our own objects for handlebars, so that we can add transient
flags like is_zero without worrying about side effects to other
code.

(imported from commit b351a369cb3f36233e108e270c7abdd4ab8c5860)
2013-09-30 16:52:18 -04:00
Steve Howell ec1c82d6d7 Select closest id in MessageList.rerender().
When we call rerender() on MessageList, it is usually because
something big has happened, so it's reasonable that the pointer
may now be invalid.  As an example, the old pointed-to message
may been removed from the home view.  We have always just
moved the pointer under the hood, but now we do it in a way
that doesn't generate spurious blueslip errors.

(imported from commit d399a101f36b744a423ea7da80dda8352440c6c9)
2013-09-30 16:18:18 -04:00
Jessica McKellar 3d1fd4a1e9 Add Redmine integration documentation.
(imported from commit ef68b6e1e97b26b2ba47e6811403c338f93e41af)
2013-09-30 11:30:04 -04:00
Steve Howell 3ff0ee6b21 Turn off collapsing on staging.
For now, I am just turning off the feature.  I will remove
the code in a couple days.

(imported from commit e9988fb2ead6e711274b60d6402326ec4c344cce)
2013-09-30 10:42:58 -04:00
Steve Howell cdb7737a78 Turn on muting for Iceland (customer8.invalid)
(imported from commit ab587777cf20947160dd8fa900151ca2800ffd01)
2013-09-29 22:44:09 -04:00
Steve Howell 8f1498c766 [important] Fix stacktrace in unread.js.
There is a scenario where we call process_read_message()
for a message that we haven't recorded as unread before.
I'm not sure how it happens, but I put back code to
guard against crashing.  The regression happened in
5752458c821.

(imported from commit 5ce15d2e236b738b445ed88f1733aa0612be0ff3)
2013-09-29 22:42:33 -04:00
Steve Howell f67acb3157 Filter duplicate messages more aggresively.
This fixes a blueslip error where we were trying to add the same
message into a MessageList twice.  Muting complicates our duplicate
detection, because empty() can return true even when we already
are storing messages that just aren't shown (because of muting).

The name empty() should probably be fixed in light of muting,
but filtering with self.get() is not really a problem here.

(imported from commit 83b0890471c9a0aa21996f3d0d3be4a238f23e65)
2013-09-28 15:48:38 -04:00
Steve Howell ea7fda59d3 Reset _all_items in MessageList.clear
(imported from commit 3e319578500480ebfe0da6c4541628a61f8b5ff9)
2013-09-28 15:48:37 -04:00
Steve Howell 49232d9173 Preserve muting preferences across reloads.
We have been persisting muting preferences on the back end for
a while, but we haven't been adding them to page_params for the
client to have at reload/startup time.

(imported from commit d9ca68aa0e4d22bfb0e6ce67fc0bc63981175c8b)
2013-09-28 15:48:37 -04:00
Steve Howell c79e3a95b1 Avoid selecting hidden message ids.
With the muting/hiding features, it has become the case that
this._hash can have entries that don't map to actually visible
rows, so this.get() can return true on an id that shouldn't
actually be selected, causing downstream code to explode.  Now
we call this.closest_id() regardless of whether the hash is
populated, to be safe, but then we still call blueslip.error
if the pointer moved.

(imported from commit 348e8ff67ce3a6d61aaeb31f80549386518af2d0)
2013-09-28 15:48:36 -04:00
Steve Howell a48af3bd6c Make muting rerender properly when getting updates.
If you have two browsers open for the same account, muting in one
browser will now be reflected in the other browser.  This got
regressed when changing the approach from collapsing to hiding.
The new code should be less brittle, as we encapsulate re-rendering
in muting.rerender().

(imported from commit 4e65e265b64513d38f518770453b7436cb92b4ca)
2013-09-28 15:48:36 -04:00
Steve Howell 2a4cd3c69a Exclude muted topics from stream/home unread counts.
Update get_counts() so that it ignores counts for muted topics
when calculating stream/home unread counts.

(imported from commit 9b4e4da4346c225c535e97d709d3dee032603cc5)
2013-09-28 14:53:11 -04:00
Steve Howell c7b7f8d79a Inlined unread_hashkey() function.
The indirection was more confusing than helpful, especially
since the function had side effects, despite its getter-like
name.

(imported from commit 85d9cf642b4177f62488136f0e0f7f6c9304942e)
2013-09-28 14:53:11 -04:00
Steve Howell 8d3f4366f8 Collapse unread_counts.private to unread_privates.
After killing off unread_counts.stream, the only field of
unread_counts was "private", so I just made unread_privates.

(imported from commit 9678f5b03524afb883ec4fa638b059e698888e78)
2013-09-28 14:53:11 -04:00
Steve Howell 664cb2460d Clean up references to unread_counts.stream.
The prior commit makes it so that we no longer use unread_counts.stream
in get_counts().  This commit removes the code that updates the
data structure.

(imported from commit 5752458c8212bf02cf9c8733ce349fc35b204a9b)
2013-09-28 14:53:10 -04:00
Steve Howell 534edfaf33 Compute stream/home unread counts from unread.unread_subjects.
These two data structures are kind of redundant:

  unread_counts['stream']
  unread_subjects

We are deprecating the former.  The latter is more flexible for
features like muting.

Now, in get_counts(), we compute home counts and stream counts
in the same loop that computes subject counts.

(imported from commit c8d0ea12a56d0128811e0aa165de9882546906a5)
2013-09-28 14:53:10 -04:00
Leo Franchi c5183427f3 Respect enter-to-send in edit box
(imported from commit 6e3fc6495b7012aa12728a78b8bdd95701bb21e1)
2013-09-27 13:52:14 -04:00
Leo Franchi 87858a6050 Don't autocomplete mentions while message editing
(imported from commit c4b402d5c0e50a7dd85f658f660633f3a3df5d54)
2013-09-27 13:32:02 -04:00
Leo Franchi 4ea15758cd Enable compose-box typeaheads in the edit message box
(imported from commit 8cf1ec74854889061e822f091c16cb817f00c56b)
2013-09-27 13:32:02 -04:00
Leo Franchi f2ae7f55c5 Use focused element for typeahead rather than hardcoding composebox
(imported from commit 1e9fed51e350f5dadec73c25238c0f3657af7f1f)
2013-09-27 13:32:02 -04:00
Leo Franchi 4f0f469a8e Factor out compose typeahead into individual functions
(imported from commit 293c61d5793ced7792c57713210a34736d851ae8)
2013-09-27 13:29:22 -04:00
Waseem Daher 219bbe255b activity: Only make the summary table not-full-width.
For whatever reason, it makes it easier to compare the detail pages
when they are full width, since each column is in a more or less
consistent place every time.

(imported from commit cba47ac1a370884c0397d26d6028248f0b9cc9d7)
2013-09-26 15:29:29 -04:00
Steve Howell 2944f12ba7 Make tables in /activity auto width.
(imported from commit 527c49f1cca050f8574eec811c7762654535c88e)
2013-09-26 14:36:28 -04:00
Steve Howell 9110ebd208 Improve the UI for /activity.
We are still showing the same data points, but the logic to drill
down on details for a particular realm is now all server side,
not client side, and we are smarter about omitting fields.  In
summary mode, we don't show empty Name or Email columns.  In
detailed mode, we show the realm as a headline instead of a column.

In this version you do lose the ability to see all system users in
the same view, but Waseem is ok with this.

(imported from commit edd2e646ab4cf5783ea64232d0cd621debece8d4)
2013-09-26 13:20:00 -04:00
Jessica McKellar 4d730c1691 Close the compose box on a stream sidbar narrow.
(imported from commit 6d7d80d29c4e7dc68807a7fcb9ce2d8573c1c3e0)
2013-09-26 11:49:54 -04:00
Steve Howell 3fc352788d Turn on 24-hour time for customer8.invalid (Iceland).
I added myself as well.

(imported from commit 44c631de4ef157f055258ffa609666bb58d163f9)
2013-09-25 22:10:44 -04:00
Steve Howell e2126b78ab Enable compose fading for CUSTOMER4.
(imported from commit 3be5b169b530c7bf6d5a9499710950fefa3cbde1)
2013-09-25 14:43:43 -04:00
Steve Howell be9eea6cd4 Disable compose fading for incomplete/wrong stream names
(imported from commit 2b6a0dbcd1464767e24704f270eeac2875be0d51)
2013-09-25 14:43:43 -04:00
Steve Howell 4d5842cdcd Add summary view to the /activity report.
When you load the activity report, it will just show summary
counts for realms, but if you click on a realm, you will see
details about users in the realms.  You can also click "Show all"
to see an interleaved view of realms and users.

(imported from commit b106557b1fae64d525071afc124b5a8aed319086)
2013-09-25 11:33:11 -04:00
Kevin Mehall d9185cf455 Fix JS error when un-summarizing old messages.
`Cannot read property 'flags' of undefined` in the
_.each callback in expand_summary_row.

Messages loaded when you scroll up in a narrow are not added to
all_msg_list. Because the user just clicked the message, we know
the message is in current_msg_list, so use that instead.

(imported from commit e76449a2a2748b96f69a2ab05d288b708d9e3ac0)
2013-09-25 10:19:03 -04:00
Waseem Daher e0f9f68219 Tweak UI for 'Rename stream'.
(imported from commit 7be2b92b796b6e0925ea604251442b3606e54da7)
2013-09-24 16:19:54 -04:00
Steve Howell 9df7ee454d Eliminate transitional email forwarding flags
(imported from commit cc9305e554a381de5a36b7c353bbf53b71b2d43c)
2013-09-24 16:19:54 -04:00
Steve Howell 49a55ca6fa Call blueslip.warn from stream_data.js functions.
It used to be calling blueslip.warning(), i.e. the wrong name,
and would crash.

(imported from commit ddc953488cdb22dd37ddf674dddf1e05f34eaec9)
2013-09-24 16:19:53 -04:00
Allen Rabinovich d9ecf6499c Show topic chevrons only on hover and with proper offset
(imported from commit f19770bac4ec99eac83cf8211fc4d97e34c5aaa1)
2013-09-24 16:19:53 -04:00
Steve Howell a387535d2d Enable muting for internal MIT users.
(imported from commit 82dc8c620c5f9af5b7a366bd16aee9125b9ba634)
2013-09-24 16:19:53 -04:00
Kevin Mehall e31fb25d64 Correct cursor on the desktop apps alert close button.
Trac #1818.

(imported from commit 507b19c8f333de9446a663b9a2ec05e1ba74e6ce)
2013-09-24 16:19:53 -04:00
Jessica McKellar a0ff47a449 Add frontend support for newer realms receiving stream notifications by default.
(imported from commit 6b7f8d7bc85177d0d85384ac4bed508afdec7e83)
2013-09-24 16:19:53 -04:00
Zev Benjamin f5761401b7 Make LazyLoad copyright notice conform to our third-party JS standards
(imported from commit a7eba8569bf52e82f150f9fb3b2f3abfb0eb0c2b)
2013-09-23 11:25:58 -04:00
Steve Howell 660475bd0c Hide muted messages.
Instead of collapsing muted messages, just hide them altogether
in view where it makes sense to hide them.

(imported from commit 1c2c987ff302ceb135a025753cf421b4de1aea71)
2013-09-23 10:53:06 -04:00
Steve Howell 6c6816491d Add muting_enabled option to MessageList.
(imported from commit c86772b7dea864c49091c988772e17aae5efa5bc)
2013-09-23 10:53:06 -04:00
Steve Howell 022ef6e9b9 Add narrow.muting_enabled()
(imported from commit 8972d1e3ca347397664094a7f150ec86fd2f8f8e)
2013-09-23 10:53:06 -04:00
Steve Howell 21b30664b6 Create MessageList.add_messages() from zulip.js code.
I moved code into MessageList to further encapsulate details
of filtering.  The MessageList instances should be their own
gatekeepers for what messages they care about.

(imported from commit ee6cd7f6eabf97962d724a05d7d0b0a3e6ab19e5)
2013-09-22 14:35:53 -04:00
Allen Rabinovich 9ed05a1f85 Fix to list height computation
(imported from commit c43b07fa25f41146c8410bc41d90278c1a90a34b)
2013-09-20 12:11:31 -07:00
Waseem Daher aa6a3e1299 Enable alert_words for MIT.
(imported from commit 1765e9f6cd72fece834ef482f898096eb4a4f552)
2013-09-20 14:18:43 -04:00
Zev Benjamin 7c74983370 Ensure select_on_focus handlers are not called recursively
This fixes #1696.

(imported from commit 4d7ba3a1e34aa48d2675178913de30d081653762)
2013-09-19 19:10:45 -04:00
Allen Rabinovich 0b9b01e96a Revert to old logo
(imported from commit 0e4ccff295797d36ee89ffb078bef06b5a5edca0)
2013-09-19 13:20:27 -07:00
Steve Howell e79e74ade4 Add narrowed_to_topic() helper function.
(imported from commit 9190caa9b183893fb7ae883686b9bdbd661d5895)
2013-09-19 15:41:00 -04:00
Kevin Mehall 0da1d974bd Check the 'Get our apps' checkbox if you click any of the links to the apps page
(imported from commit 85795fae8a5ee78f0138aa08f09f645f75c5e9e7)
2013-09-19 13:23:35 -04:00
Kevin Mehall a77746e9fd Pull code that only has to run once out of the loop
(imported from commit 8c31c4bda6bf41e130fc4704d5520f500b9321f8)
2013-09-19 13:23:35 -04:00
Kevin Mehall bc36aad698 Show desktop apps alert when tutorial completes
(imported from commit 7719ec798dbcca519fd79ac8da9196e1a862764f)
2013-09-19 13:23:35 -04:00
Allen Rabinovich 1b4ee0c027 An alert informing about the desktop app
(imported from commit 627351b4bcd8caea22c8e83b0a09e18dd08a1ee1)
2013-09-19 13:23:35 -04:00
Jeff Arnold f063921260 Enable summarizing for everyone
(imported from commit c03d48ad9c0fe6dfe86539fbff1f501b42b3b6d1)
2013-09-19 10:51:29 -04:00
Steve Howell c6a9297f1a Add blueslip warnings to stream_data functions.
Warn inside these functions when you get data on streams that you
are not subscribed to:

  add_subscriber
  remove_subscriber
  user_is_subscribed

The back end should be smart enough not to spam us with subscriber
info that we don't care about.

(imported from commit b27644be2abc37c11ddff884ef392ea208bd1bd3)
2013-09-19 08:52:54 -04:00
Allen Rabinovich b50fd7c16d Remove user list top margin
(imported from commit e70fb95a4417b497c13a35a29e4e9b1b49423489)
2013-09-18 13:35:16 -07:00
Jessica McKellar e73e3d1bac Don't error out on a name change for a stream you're not on.
(imported from commit 8438087b3b6c66f41b9d9152661a93f01a086b28)
2013-09-18 16:09:48 -04:00
Leo Franchi ce4a850bfc Remove all user we insert into autocomplete when alerting
(imported from commit 34521b5e9e312b5026f9dc015cc35de837d0e2a3)
2013-09-18 15:46:30 -04:00
Allen Rabinovich 5622e59b48 CUSTOMER7-specific left side user list at narrow widths.
(imported from commit 7504d86fe57e4e96f85dee18ede663c542d0144d)
2013-09-18 12:17:32 -07:00
Leo Franchi c588c7938c Allow message topic changing to propagate backwards
(imported from commit 470178ef5f7aaf09d4528c88ae6e33f17538fcaf)
2013-09-18 13:27:58 -04:00
Steve Howell fd81e04e16 Remove topic popovers when redrawing topics
(imported from commit 5350e5026dcfc9542c44b576ee967423adaf2c91)
2013-09-18 12:25:19 -04:00
Leo Franchi d3d4a41419 Block mit.edu from showing mention invitations
(imported from commit e8e85cad0198103a072cd452feb78a67b05b185c)
2013-09-18 11:50:58 -04:00
Steve Howell 80d634aced Add mute/unmute to topic sidebar menu
(imported from commit 96abc03e840ed6d720da8355f29242d9a070563e)
2013-09-17 18:53:28 -04:00
Steve Howell 8429105c24 Add chevron menu for topics in left sidebar.
The first menu option supported is to narrow to the topic.

The chevron only shows up if you turn on feature_flags.muting.

(imported from commit 17482f538a6d3e4ff96a36c042bad972d34f4b11)
2013-09-17 18:53:27 -04:00
Steve Howell cc30f658b2 Add stream-sidebar-arrow class
(imported from commit f26e797dce1b1f612872d4026dcf6c10f9cfbba6)
2013-09-17 18:31:52 -04:00
Leo Franchi 0cf588cd25 Show a warning and action button when @-mentioning someone not on the stream
(imported from commit 464d5a028f6a8f2698683e7317972dc0c7b9e336)
2013-09-17 16:49:47 -04:00
Jessica McKellar 91e8ec454c Remove stream list flicker on a stream rename.
(imported from commit f85b26c3c2179757d191090584f61576459ffdc0)
2013-09-17 16:23:08 -04:00
Steve Howell b8e68a5a17 Use fold_case:true for stream_info Dict
(imported from commit f592ac4438f21a55ff5bf62957c8050c4e8b92df)
2013-09-17 10:32:14 -04:00
Steve Howell e1b881629c Use fold_case:true for subscribers Dict
(imported from commit 8acc794cb5369baadef512a9fcdb3537231dd604)
2013-09-17 10:32:13 -04:00
Steve Howell 031f5f5333 Call stream_data.set_subscribers() from subs.create_sub().
Use the stream_data API to set up subscribers, so we don't
leak the data structure details into subs.js

(imported from commit e95616f2eb535ecf0e1cef35a143a71ad88de5bc)
2013-09-17 10:32:12 -04:00
Steve Howell 4b90f1685d Add stream_data.set_subscribers() method.
This allows us to encapsulate our use of Dict for the internal
data structure.

(imported from commit e8acc50b4c17d339015cb9db9939b9452a62cc8b)
2013-09-17 10:32:11 -04:00
Allen Rabinovich 176346183b Visual updates to the navbar
(imported from commit c55988ce1f1af105662ee4e8c9d4cccf4ef847c2)
2013-09-16 19:29:21 -07:00
Jessica McKellar 6cd33870e9 Add the frontend UI for realm admins to rename streams.
(imported from commit ab52fe8639c312be118f0807615c9d5712d410e9)
2013-09-16 16:16:13 -04:00
Zev Benjamin b9da1e1976 Make login form validation errors not wrap
(imported from commit b5173df6b3a98517f3127bc0b9fee63fd85a043f)
2013-09-16 14:20:43 -04:00
Steve Howell e83c026a27 Set focus-related flags correctly after a server reload
(imported from commit 408469c0da0cfa5513e6838329816cd88665981f)
2013-09-16 12:29:34 -04:00
Jessica McKellar 272921800a Open the composebox on sidebar subject selection.
This was requested by CUSTOMER28 and would also bring symmetry with
the user sidebar, which already does this.

(imported from commit 4dca3c957d3a710f00bbb34a7cd7dfe6074da8f7)
2013-09-12 06:04:03 -04:00
Leo Franchi f86c8255bb Safety check for stream_data:[add|remove]_subscriber
Though this should not be common, getting a peer subscribed/
unsubscribed notification to a stream we don't yet know about should
not be fatal

(imported from commit ee28b163e0efc9adfad31e1b321e986dfe56271e)
2013-09-11 18:10:17 -04:00
Steve Howell 0165dc54ad Create blueslip error for undefined keys in Dict.
We create a blueslip error for undefined keys in Dict.  This led
to a straightforward change in the unit tests for Dict.  For the
unread test, to avoid the blueslip error, we had to be more specific
in setting up a user in one place, but this reduced our coverage,
leading to another small test being added.

(imported from commit 33e14795500d9283de2a7c03c4c58aec11cea4b8)
2013-09-11 18:07:37 -04:00
Steve Howell e9adaaa0c0 Avoid Dict crashes for undefined keys when fold_case is true.
The exceptions were cryptic before, and they were inconsistent with
the fold_case: false behavior.

(imported from commit a40704d1a22bcdc60d91be832ee3c81eb416c6dd)
2013-09-11 18:07:37 -04:00
Jeff Arnold 651aefbe65 Updated top /hello screenshots
(imported from commit c1a4e706dc82d7877bc0b5366fc23c5487619454)
2013-09-11 17:37:24 -04:00
Steve Howell 6c25a70788 Avoid double-rendering muting updates
(imported from commit 359fdc03862d78729c5b5fbe6df277e571c7315c)
2013-09-11 16:47:38 -04:00
Steve Howell a1addad450 Handle muting updates
(imported from commit 219a817c494f7bc27642d96f203f686df28bb361)
2013-09-11 16:47:37 -04:00
Steve Howell b4b6fa14d3 Persist muting preferences to the back end
(imported from commit db2d4362a0601f35a75b798cf6945556e44532fb)
2013-09-11 16:47:37 -04:00
Steve Howell 042f5bda26 Add unmuting to message actions menu
(imported from commit 5188a36ec73aa2913b0d82f7e7ce12be78f4ccee)
2013-09-11 16:47:37 -04:00
Steve Howell b65f9b678b Add muting to message actions menu
(imported from commit 26568e36f2a41f2b85413ab4d069a689c9901aac)
2013-09-11 16:47:36 -04:00
Steve Howell c6131b630b Handle undefined keys in muting.is_topic_muted
(imported from commit 96a9f0253e1c0e72a2b05577118dac438d190994)
2013-09-11 16:47:36 -04:00
Steve Howell f616148181 Make muting case insensitive for streams and topics
(imported from commit 6e731a5305a6d19896c61300aedf0fb4a387e148)
2013-09-11 16:47:36 -04:00
Steve Howell 0641e693fa Add muting.set_muted_topics
(imported from commit c84cd085e513d57e3913543d40cd8fd6b5d45b67)
2013-09-11 16:47:36 -04:00
Steve Howell 04c6a8198a Add muting.get_muted_topics
(imported from commit 5edb1d36ae66dfc42cf534edc452959df8306661)
2013-09-11 16:47:36 -04:00
Steve Howell 8626276dc3 Add muting.unmute_topic
(imported from commit c3aa08b7d50c70cba86b43c12d618ba1d96832b4)
2013-09-11 16:47:35 -04:00
Allen Rabinovich 3560ecf429 Better date separator rendering
Split up long string

(imported from commit 51bab3cbb2d77f0e130d6bb0d486f2d7feba0909)
2013-09-11 11:50:17 -07:00
Steve Howell 8d67fc2775 Add semantic classes for expanding/collapsing messages
(imported from commit 9d71fd46667058ba92d941b79d6e2c822c721efe)
2013-09-11 14:42:25 -04:00
Steve Howell 8cab575854 Add cursor:pointer style for expand/collapse icons
(imported from commit 31b0aa1e3d6a2a4406fbc6e9bad6d436258b9a72)
2013-09-11 14:15:16 -04:00
Steve Howell fcc268b44f Add expectOne() check when clicking to expand/collapse
(imported from commit 7224f618f49de82bd41a5a1f4b0677cf490b5856)
2013-09-11 14:13:17 -04:00
Steve Howell 4bec9dced9 Add expectOne() check when hitting enter to expand
(imported from commit 21b76133c95a4a48873d34ca905a688637cef2b7)
2013-09-11 14:13:17 -04:00
Jeff Arnold effccb12ab Enable summarizing for CUSTOMER4
(imported from commit ce9f4a50a49a005e4801df73661299e2a8de7abf)
2013-09-10 16:48:47 -04:00
Tim Abbott 9fcca3df4e [schema] Collect data on when users are active on site.
These engagement data will be useful both for making pretty graphs of
how addicted our users are as well as for allowing us to check whether
a new deployment is actually using the product or not.

This measures "number of minutes during which each user had checked
the app within the previous 15 minutes".  It should correctly not
count server-initiated reloads.

It's possible that we should use something less aggressive than
mousemove; I'm a little torn on that because you really can check the
app for new messages without doing anything active.

This is somewhat tested but there are a few outstanding issues:

* Mobile apps don't report these data.  It should be as easy as having
  them send in update_active_status queries with new_user_input=true.

* The semantics of this should be better documented (e.g. the
  management script should print out the spec above)x.

(imported from commit ec8b2dc96b180e1951df00490707ae916887178e)
2013-09-10 13:25:59 -04:00
Steve Howell 290be4c130 Roll out email forwarding to everybody
(imported from commit 1057272df8390c418890a2ac0939c05e0c1c403c)
2013-09-09 13:19:03 -04:00
Steve Howell 320eddcf6e Remove feature_flags.edit_appears_on_hover.
(imported from commit ff8b820d8f5c1bfe25ccb6856b5f206bd03663e0)
2013-09-09 13:16:11 -04:00
Kevin Mehall 810dd89621 Maintain a list of people in the realm.
people_list and people_dict include the feedback bot and anyone you've
cross-realm PM'd with. Useful for autocomplete, but not for admin and
stream settings views.

Fixes the UI part of Trac #1772.

(imported from commit cdefd4e86980447aad5190e7fc8ae3666d66e3c3)
2013-09-09 12:13:33 -04:00
Kevin Mehall 45b14a0c96 Set up people_dict before DOM load.
hashchange, which calls admin.setup_page, runs in another onready
event handler before zulip.js main().

(imported from commit 5d4e71f4666baf0a53e3fe9804561ce6cdc06261)
2013-09-09 12:13:33 -04:00
Steve Howell 682414e13c Move code to alert_words_ui.js
(imported from commit 78797e690ced954fc79f854efebe5945dd360bde)
2013-09-09 12:06:45 -04:00
Scott Feeney 5d800c5186 Fade users when composing
This is feature-flagged to staging only.

There are basically 3 parts to the implementation:

1. In response to typing, fade/unfade the user list.
2. When a compose is aborted, unfade all users.
3. When the presence list is redrawn, fade/unfade the user list again.

(imported from commit cd416de232849a9f69dcacdc8b0fcfc20e3848a2)
2013-09-06 23:13:48 -04:00
Scott Feeney 9c454dfe02 Track peer_add/peer_remove events on client side
This is the last step in getting a consistent client-side picture of who
is on a stream (provided non-MIT realm, and provided the local user is
subscribed to that stream).

(imported from commit 8bca722f169860ad4c1c92fdcb70d62c60f70fed)
2013-09-06 23:13:48 -04:00
Scott Feeney 232804c480 Add a warning comment to stream_data.js
(imported from commit c179a6983ee2f15fee4dd901eaa66b3aa498ea78)
2013-09-06 23:13:48 -04:00
Scott Feeney 7d3727d3bd Import subscribers list client-side when you subscribe to a stream
(imported from commit d42dfd6afc3778740934dad869ca86515dc966e5)
2013-09-06 23:13:48 -04:00
Scott Feeney dfaca2e9c7 Import initial subscriber lists from page_params.stream_list
(imported from commit b9679d30e4235efb6f47c2fa6c006790df616564)
2013-09-06 23:13:47 -04:00
Scott Feeney 17cad06a2d Add Dict.from_array()
(imported from commit 0650edb2217afa2c37be1bbc4f9e2ac40f4c0e2c)
2013-09-06 23:13:47 -04:00
Scott Feeney eb59d06aab Simplify subs member list rendering
(imported from commit 8772bc09341a89245c6013dcf106ce52c81abe7a)
2013-09-06 23:13:47 -04:00
Leo Franchi 828557c73e Niceties for alert_word editing: add on enter, handle tab properly
(imported from commit 317be7774c02d507ba69548fdc28c1aca75d6e70)
2013-09-06 16:49:56 -04:00
Allen Rabinovich a6dc890686 Standardize unread counts for user list
(imported from commit 2b82fbb6cbf89b8590a3319ce5e30dadf18cc87b)
2013-09-06 09:05:40 -07:00
Allen Rabinovich 30ab909182 Standardize unread counts for global filters
(imported from commit 0158206d40e873309999c266f5aa4d79e17c5760)
2013-09-06 08:36:14 -07:00
Allen Rabinovich 67f05f4df4 Remove email from user info and add name linebreak
(imported from commit e76b6dba7fa6c3e9c179d91c575b809977774d94)
2013-09-06 08:33:05 -07:00
Steve Howell ca8b497f1b Double the max height of the compose box
(imported from commit acf0ae068208153f027da84b636c307a20dccf43)
2013-09-06 10:58:49 -04:00
Steve Howell b97c60b635 Restore the compose box's original size after hitting send.
This fix required upgrading to 1.1.17, but it's not squashed
with the upgrade, because that would complicate keeping the
copyright-fixing commit separate from the upgrading commit.

The new version of the plugin makes it so we can trigger a
resize event, but it's backward incompatible with our old
compose box code.

A minor cleanup here is that we also don't trigger a resize
right before hiding the compose box.

(imported from commit 6b0cb9ccd2ddef919fd375a80cfca535b5b74c0f)
2013-09-06 10:58:48 -04:00
Steve Howell c0d1481e83 [third] Fix copyright for jquery.autosize.js
(imported from commit c680058ad5dc5e51e76308f5e79bd84a96c1de6a)
2013-09-06 10:58:48 -04:00
Steve Howell 7d3dfff9c7 [third] Upgrade jquery.autosize.js from 1.13 to 1.17.7
(imported from commit c6a3a911b4481a53000b3f937ea5a3b85a5be8d2)
2013-09-06 10:58:48 -04:00
Scott Feeney 70dd92efa0 Size emoji to be 20px by 20px
The previous setting of 1.4em translates to about 19.6px. In the case of
the CUSTOMER4 emoji, 19.6px looks bad in Firefox on Linux while 20px
looks fine.

(imported from commit 01de911076e5f54e4aee96dc9edd3d40f03a4bb3)
2013-09-05 17:35:31 -04:00
Kevin Mehall 5b8aa359dd Make #notifications-area fully go away when hidden.
It had an invisible part that didn't hide, which covered the send button
in skinny, leading to Trac #1776.

(imported from commit faec9413539238c40c584ab636fc4d75618a5935)
2013-09-05 12:10:03 -04:00
Leo Franchi 663fd4653f Feature-flag alert words to staging + reddit
(imported from commit 1fe9c596b26ce6676514719e4ed2e185108685cb)
2013-09-05 10:21:39 -04:00
Leo Franchi 41b286232d Allow filtering to alerted messages with is:alerted
(imported from commit 99834f1ee1b9b2e0f5c7427afa1494bf404e3626)
2013-09-05 10:18:41 -04:00
Leo Franchi 802ea78fb0 Add a settings option to configure per-user alert words
(imported from commit b24d352fffdde13f2cf0467b31c706ebf0534d6a)
2013-09-05 10:18:41 -04:00
Leo Franchi 897dd87b94 Add a span around alert words to mark them visually
(imported from commit 9b8fbbd957086f1eeaa3409e5830aa6d7974fbe8)
2013-09-05 10:18:40 -04:00
Kevin Mehall 9428f40422 Add a `.expectOne` method to jQuery objects.
It asserts that the result set is exactly one element.

(imported from commit c78ff131deb4a13c65c2a68e4b8e09279ece3ea0)
2013-09-04 16:44:33 -04:00
Allen Rabinovich 2f8bd32ef8 Add background to 'You and' and adjust vertical alignment
(imported from commit 3bec31298c030299509e48596662a0618c359994)
2013-09-04 13:08:04 -07:00
Kevin Mehall e780502372 propagate_topic_edits feature flag: staging and CUSTOMER7
(imported from commit aca356a7c7f98066b13a51ede55c4925b95a476b)
2013-09-04 14:51:46 -04:00
Kevin Mehall 19a835e7d5 Add a checkbox that propagates topic edits to subsequent messages.
Trac #1348

(imported from commit 28e2a8cb3ecda5ec50d17501f4ccbd8644212065)
2013-09-04 14:51:46 -04:00
Scott Feeney 6f5cb9bf17 Document Desk.com integration
(imported from commit bcd48f3446cd8f65b25d928136bd09275d8196ea)
2013-09-04 13:19:23 -04:00
acrefoot 0cb72c6259 Unread counts on the toggle buttons when in skinny mode
(imported from commit 99102d1bf752c077ee4c23bf1aa0b095a9f739d7)
2013-09-04 12:35:48 -04:00
Steve Howell fdc589de3a Extract mit_edu_topic_name_match() in filter.js
(imported from commit e062cf7e987ca5af20417fe49785efa35574f628)
2013-09-04 10:39:00 -04:00
Steve Howell 26a8aee2d0 Extracted mit_edu_stream_name_match() in filter.js.
The original code was buried inside a switch statement inside
a for statement.

(imported from commit 768c4ee8596cb63b2caa14c5b113cc867db90293)
2013-09-04 10:38:59 -04:00
Allen Rabinovich 400f03fa60 Fix Firefox descender cutoff
(imported from commit 58f92325f137c80e9c98fd7b391af6393d4d3ca6)
2013-09-03 20:35:22 -07:00
Allen Rabinovich 4aa9798f29 Move the lock to the left and widen the topic input field
(imported from commit 1d70afdc82b653239f7d016997c7e9cbe9eb5f14)
2013-09-03 20:15:17 -07:00
acrefoot a3753d8521 fixup 4c6c956118ae09fedca042e797a6029fdd26e00c
(imported from commit 2c1204b1da049e452a8af651c8ab90393d0c1e67)
2013-09-03 14:00:40 -04:00
Allen Rabinovich 6eeeb631c3 Fix lock icon position
(imported from commit 5f48abc8dc568cb501fdca648b7eb17d39d5830e)
2013-09-03 08:59:24 -07:00
Allen Rabinovich ef937ec1a5 Update the styles and layout of the composition pane
(imported from commit 030318ffe4b898e224f2e7c709dd876194121b8f)
2013-09-03 08:33:32 -07:00
Leo Franchi 01c53e825f Update beanstalk sample message to new design
(imported from commit e23313d88f503b63561f75f87e716521f1b88f87)
2013-09-03 09:17:02 -04:00
acrefoot 08157d6f62 Render both the above and below time on date_row
If the date_row is between two messages, it tells you when the message
below was sent, but not when the message above was sent--for that you'd
either have to click on a message or keep scrolling up. This is especially
annoying when there are sometimes gap days on a particular stream (you shouldn't
assume that the message above is simply from the previous day).

This adds the date of the previous message (the time above) to the date_row.

(imported from commit 4c6c956118ae09fedca042e797a6029fdd26e00c)
2013-08-30 16:05:05 -04:00
Jessica McKellar 864ae3ad51 Enable the email forwarding UI for CUSTOMER6.
(imported from commit 587159412ad208d1f5e44479f50ca2f25a98f70a)
2013-08-29 18:13:21 -04:00
Jeff Arnold 6a9b441853 Clear a desktop notification once its source message has been read.
Addresses Trac #1698.

(imported from commit 859fc7d436904f21427d15f6363c4e0ca859e02a)
2013-08-29 17:16:11 -04:00
acrefoot a25b77287e Documentation on the integrations page for the Basecamp mirror script
(imported from commit 302fbd4e14ca92e4462ddf19e5b874a69d4a96f3)
2013-08-30 20:06:32 +00:00
Scott Feeney f386d87f8e Add "announce stream" option to frontend UI
When creating a new stream, this option lets you announce its
creation to everyone who you didn't explicitly add.

(imported from commit ae4140b4268b73e8b4bb54f5a6eea12fe07cd110)
2013-08-29 10:32:37 -04:00
Waseem Daher dd6ddc0e1e Revert "Prevent unread counts from overflowing."
This reverts commit 728a5415c8aa2ee18405c77746a0ea9543a20d98.

(imported from commit 7d91b564549e4e444fe656c2d8b811e2fcbff2d3)
2013-08-28 18:02:09 -04:00
Allen Rabinovich 98f7870150 Prevent unread counts from overflowing.
(imported from commit 728a5415c8aa2ee18405c77746a0ea9543a20d98)
2013-08-28 13:54:47 -07:00
Jessica McKellar ea1420d201 Add a (?) popover hint next to stream email addresses.
(imported from commit f365afcf7bd256d0417e67c69f9fa67c5b15d418)
2013-08-28 16:43:40 -04:00
Jessica McKellar a7023cac17 Add a landing page just for new MIT users.
(imported from commit 023151e9d057b37f93c0a589e08429b14cc94225)
2013-08-28 16:30:18 -04:00
Scott Feeney c98deb5988 Toggle user sidebar popover when chevron clicked again
Fixes Trac #1679.

(imported from commit 998f3497f22f83297c9afd7c3e8ea6446b8a06db)
2013-08-28 16:10:33 -04:00
Waseem Daher ae4d53f977 Push inline message editing button to everyone.
Leaving the feature flag in in case certain realms don't like it,
so we can easily blacklist them from this feature.

(imported from commit 2a5884008be05216d195a582a327d7641bc419d5)
2013-08-28 13:48:45 -04:00
Steve Howell 857680102f Remove enforce_arity checks from Dict
(imported from commit 8fdb6d8807e5c16349c7fcf71f25ce73348a5fe1)
2013-08-28 12:29:11 -04:00
Jessica McKellar 9ffc292a57 Update a stream name in the UI when it has been changed.
(imported from commit 1fb90a83a62243997d870e1b5da0590402bd8529)
2013-08-28 10:23:39 -04:00
Jessica McKellar 081ae7771a Add a MessageList method to update message recipients.
(imported from commit 3c24f045aa5726fcab8b9acd91105044e7783b63)
2013-08-28 10:23:39 -04:00
Allen Rabinovich ddd790e642 Change edit button CSS to keep it from jumping
(imported from commit 17a03ca9294765256af0d4c6eb292b755d06158e)
2013-08-27 15:11:40 -07:00
Tim Abbott 8601c2d766 Disable Webathena-related UI for desktop app.
(imported from commit 4de9ecbd5acd90826da1941593fe03aa8a6bd80c)
2013-08-27 16:21:41 -04:00
Steve Howell 04a0e88724 Add recipient bar features to summary bar.
The summary bar now has the following features:
  * invite-only locks
  * narrowing links to stream/topic/person
  * exterior topic links

(imported from commit ddb987b8e04e7dfc2d602c958270b7bc0e37fb5f)
2013-08-27 15:46:33 -04:00
Steve Howell 03b58e1528 Make narrowing click handlers work more generally.
Previously, narrowing would only work from recipient rows, not
other message table rows (e.g. summary rows).  This led to the trap
that you could add a narrows_by_recipient class to an element,
expect that narrowing would work, but the actual handler would
break or silently fail if it weren't part of a recipient row.

Now the click handler looks for the closest table row (tr).  It's
encapsulated in rows.get_closest_row(), so if we go to a
non-table-based design, it should be easy to address in one
place.

(imported from commit e116b7573c4bb06599ced84a0adcf8dc23d63593)
2013-08-27 15:46:33 -04:00
Tim Abbott e95a81addb Add Webathena login button to our mirroring page.
(imported from commit 43d8323bb502299027436a8c94c04f55d87bf953)
2013-08-27 15:41:43 -04:00
Scott Feeney 967d0f7473 Don't wait for DOM ready to register Handlebars helpers
This fixes a bug (hit by a branch of mine) wherein you could not
render Handlebars templates from a DOM-ready callback in a file that
came before templates.js alphabetically.

(imported from commit 48091d016776eb6f12d33db199781e776af18fc5)
2013-08-27 15:32:20 -04:00
Scott Feeney bee38a43f0 Fix incorrect use of self-closing tags
<td /> is not valid HTML.

(imported from commit e7914f88a7eedde887a8f6751d7516de1ccf99bf)
2013-08-27 15:32:20 -04:00
Allen Rabinovich f6ec501505 Modify lock icon styles to display it in the stream list swatch or to the right of the stream name in the list
(imported from commit b70ed2520b38229ccaed62ed84786cb9152e50a9)
2013-08-27 12:20:08 -07:00
Jessica McKellar 908abbbd8b tutorial: adjust the placement of the stream and subject popovers.
(imported from commit e61df7b0ac25d63601763a37007d9f4cefded081)
2013-08-27 15:09:28 -04:00
Jessica McKellar eacd27dc8f Don't let the tutorial popovers get clipped on long names or small windows.
(imported from commit 069016ab38eb2d0d09b751ca22a53aba9d6980ba)
2013-08-27 15:09:28 -04:00
Allen Rabinovich 2bb6f45af2 Add a data-name attribute to stream elements in the stream list and modify the test accordingly
(imported from commit 24791703015a47ae89fdf628d6511736b9d0f026)
2013-08-27 09:44:57 -07:00
Allen Rabinovich 7f807f7c8d Make unread counts appear as lozenges to the right of stream/subject names
In particular:
   * Pull the count containers out of the containers that cut off overflow text
   * Make them lozenge-like
   * Add logic for shortening the overflow container when a count container is
     present

(imported from commit a2b3d237cbfe4fadfbbc3a931d2de85dfba10d04)
2013-08-27 09:15:16 -07:00
Jessica McKellar 2ba75d2bfa Report a distinct string including version as the client for desktop app users.
(imported from commit 58115e0cdd32f19f3694a1ffbf8664561175cf55)
2013-08-27 10:24:36 -04:00
Tim Abbott 134da30fdf Add webathena authentication button for Zephyr users.
This shows up when you're not running a Zephyr mirroring bot and lets
you use Webathena to have us run it.  Obviously needs more docs.

Current problems include:

* supervisorctl reload ends up recreating /var/run/supervisor.sock
  with the wrong permissions, so it only works once in a row before
  you need to chmod that.

* /etc/supervisor/conf.d needs to be humbug-writeable; this is a clear
  local root vulnerability

* This uses SSH and thus is kinda slow.

(imported from commit 7029979615ffd50b10f126ce2cf9a85a5eefd7a2)
2013-08-26 18:17:25 -04:00
Tim Abbott 545a07cd51 [third] Import winchan.js.
(imported from commit 75c2f5f7309a700d7c2c637494b188b001fcd496)
2013-08-26 18:17:25 -04:00
Leo Franchi e252954bf2 Expose an event listener for uploading raw image data on a paste
(imported from commit 441d977b947e70be7438aaf13a4b779050eb9fec)
2013-08-26 17:58:46 -04:00
Steve Howell 8c1f20a8be Fix topic highlighting in search result
(imported from commit 8ef6575eeb69314c37033ee63af550104608efc8)
2013-08-26 17:06:16 -04:00
Steve Howell 5ef5d98a99 Fix hover for collapsible recipient bars
(imported from commit 75f93c705fd7e9b3433c4adb374df47ba5b585b4)
2013-08-26 16:38:34 -04:00
Steve Howell 7fb99761e1 You can only expand rows by clicking on [+].
(imported from commit 23a52feca13232bf36038cd7f59c520f9106ee2c)
2013-08-26 16:38:34 -04:00
Waseem Daher 78e52bcfc4 hello: Landing page text refinements.
Largely suggested by jrv.

(imported from commit aac2a1d90b50fdce6b6dcf9201a9fc2a9d78e354)
2013-08-26 15:31:22 -04:00
Scott Feeney bf0909a94d Lazy load Dropbox widget, and only when enabled
This brings several improvements:

* The Dropbox script won't slow loading our app.
* If it fails to load, no traceback; Dropbox link just won't appear.
* For users with Dropbox disabled (most at this point), no loading at all.

(imported from commit e71ae5790fc85a185e622bdafb350109527b4eee)
2013-08-26 13:13:00 -04:00
Scott Feeney 95719a91cf [third] Add Lazyload.js
This is a small, MIT-licensed lib from https://github.com/rgrove/lazyload

(imported from commit c6e43c06dfe3fa8559b2a3d28a48d9e0a6848283)
2013-08-26 13:02:57 -04:00
Steve Howell 1821005dfe Restore subject counts for Uppercase streams
(imported from commit ef0e78d39c56da67544441a73ea257f215fefd94)
2013-08-26 11:21:29 -04:00
Steve Howell 09241ae2de Use Dict more in unread.js.
The setdefault() and num_items() methods are handy, and it was a
little tough to keep track of which objects were Dicts vs. {}.

(imported from commit 6ca81ac411943c59bef6d6bae39c7641feb5574b)
2013-08-26 11:21:29 -04:00
Steve Howell 06065d50bf Add dict.num_items()
(imported from commit 209a01b61d18d4b65b54e473cf727065aada68e8)
2013-08-26 11:21:29 -04:00
Jeff Arnold e97f07605a Push message summarization (and its unread model) to MIT
(imported from commit 42ba7c56af5ea9f9281cb8b4a5ddc491b8446a22)
2013-08-26 11:17:24 -04:00
Jeff Arnold 147362f87d Make the gravatar etc in the upper left change the mouse cursor.
(imported from commit e1e1c4ef8e13182ff1212cc5182ca0d8e9f71105)
2013-08-24 00:05:57 -04:00
Kevin Mehall 7f1a1dba9d Show realm emoji in typeahead and update the list via events.
(imported from commit bd8b8be5d088d503cac2b72cf228e769827e2308)
2013-08-23 21:39:29 -04:00
Steve Howell 63fa194139 Turn off the "muted" topic special case
(imported from commit ea34ea060eb29864c4816d0f14ee106dcb10be9d)
2013-08-23 18:33:48 -04:00