Commit Graph

3331 Commits

Author SHA1 Message Date
Waseem Daher 6656869a92 signup: Rotate through cute placeholder names.
(imported from commit 59c1523d35cd80e904a173fefc614da2543b391d)
2013-05-22 11:32:18 -04:00
Zev Benjamin b565b2adc9 Add a bunch of debugging support for mixpanel
Currently, some browsers don't seem to be sending metrics information
to mixpanel.  This commit will make said browsers noisy, but should
help debug what's going on.

(imported from commit c5050f66d985eb76e38117b2668594fedfc10702)
2013-05-22 10:43:57 -04:00
Leo Franchi 8cc3ed9c79 Add a --remote-debug option to our frontend test runner
(imported from commit 58e8717293f3c58cb7c3c499c7e5abd62ec22199)
2013-05-22 09:49:49 -04:00
Leo Franchi 4f92ce0fc0 Fix unread count test by being slightly more robust
Still not perfect, but now we move the pointer down and scroll
to make sure that the newly read messages are truly marked as read

(imported from commit 2b9a14d1c8695eac0ed9fb03484068dd9b08b940)
2013-05-22 09:46:32 -04:00
Zev Benjamin 10dbfd0985 Record narrow metrics
(imported from commit d312115d384dd1f33e05dcd1b3f1dadc86e3fdf3)
2013-05-21 17:56:49 -04:00
Zev Benjamin d35c8f0c81 Track what user action triggered a narrow
(imported from commit 2b110dc27334e4b823810bfef13c3d10d36b3886)
2013-05-21 17:56:49 -04:00
Zev Benjamin d1ac16ee3f Record compose metrics
(imported from commit 194a7d36650cf3e1e52f0dad3f453942179de122)
2013-05-21 17:56:49 -04:00
Zev Benjamin c60a500a8f Track what user action triggered a compose
(imported from commit 3e23dd1f7e9e3a742b0c3b9e1b0eeb85cfa4c736)
2013-05-21 17:56:49 -04:00
Zev Benjamin a4bda36ab4 Add a wrapper to mixpanel so that we can selectively enable metrics collection
(imported from commit 1d72f2e98c4c756a8a988d08731282e4195b8e1a)
2013-05-21 17:56:49 -04:00
Zev Benjamin 22e2eb3305 Use different mixpanel tokens while deployed vs in development
(imported from commit 4fac466a822d49cb0e1a7592dbd77d8ee019803e)
2013-05-21 17:56:49 -04:00
Zev Benjamin ae9be7298d Wrap render_to_response
(imported from commit d23aa3e5ad4c5243e83df098953ea4b1f7b3c294)
2013-05-21 17:56:49 -04:00
Waseem Daher 179b9a7e1f Make our landing page look good on wide monitors.
Constrain the meat of the page to the center 1440px or so.
This is achieved in a slightly more hackish way than I'd like,
but I think it's mostly necessary if you want the long color
bars that extend beyond that main area.

(I encourage you to view this diff with -w)

(imported from commit 10bf4462411146090b0147218d51cc444c3c91a2)
2013-05-21 17:39:14 -04:00
Steve Howell 5e64b9e90b Fix screen geometry for the tab bar.
Use tab_bar_underpadding to find out the top of viewport
that we can view.  Also, eliminate effective_page_size().

(imported from commit 0e2d777790552e77d635989e496f3446cefccb1e)
2013-05-21 14:45:38 -04:00
Jessica McKellar 3e30ccfc74 Style the message edit form.
(imported from commit ddbdb3b90c421ed25b781a172a8fac2581ffb65c)
2013-05-21 14:19:56 -04:00
Jessica McKellar d8afec5cf2 Turn the edit message Save and Cancel links into buttons.
(imported from commit 7892b48269181ca7b7998ac2693202e7cdd24197)
2013-05-21 14:19:56 -04:00
Jessica McKellar 8609c59781 Only show edit subject hint on messages you sent.
(imported from commit 613a023bf22b07f879864690142e9d5e0a56f0ef)
2013-05-21 14:19:56 -04:00
Tim Abbott 917f892def Fix the record of the current schema in migration 0028.
(imported from commit 44138ff9ffbabcb7c540bb82db79a821fbf8d4fb)
2013-05-21 14:13:02 -04:00
Leo Franchi 813073ec32 Hide known warnings in unit test output
(imported from commit 484b383b7466f4428bbde55344775687149406b9)
2013-05-21 14:05:48 -04:00
Tim Abbott 6f42b90d23 casper: Increase wait_for_receive timeout again.
We're still failing frontend tests randomly due to this timeout being
too short.  Ultimately we should fix this by making the
wait_for_receive check smarter, but this will do for now.

(imported from commit ff4b18beb88b957c705fd98cd9064902c9985f62)
2013-05-21 13:46:08 -04:00
Jessica McKellar f4b99c8177 Fix that you have to save an edited message twice to complete the edit.
(imported from commit 87226d857845c6f16cb3bc0d6ab5bb748aca5987)
2013-05-21 11:04:56 -04:00
Jessica McKellar a6a3110bfb Encourage users to edit placeholder subjects with an edit icon.
(imported from commit 0bfe67876b237ea2fb4f523b23b9cdbbd9a4027a)
2013-05-21 11:04:56 -04:00
Jessica McKellar a3b6758315 Give a placeholder subject when users don't supply one.
(imported from commit ac6f0f7029c6a96c4c20562b02bee656436c70b2)
2013-05-21 11:04:54 -04:00
Jessica McKellar 17842cebd7 Make the subject box even smaller, to encourage shorter subjects.
(imported from commit b01d23db926972fa1618ef830936d65806d6c18d)
2013-05-21 10:24:47 -04:00
Leo Franchi 53415e6986 Restore narrow icon in crumbbar
(imported from commit 0c54d158f0035bb0e483a981b57e59a4e885e36a)
2013-05-20 23:55:03 -04:00
acrefoot 94c61f5507 [manual] Humbug testing databases now backed by postgres
Currently our test database is backed by sqlite; this commit moves
us to using postgres for our all database needs. This, in conjunction
with the patched django on github, allow us to have fewer hacks and
more true-to-life tests. It also sets the stage for testing the bulk_create
and schema search_path patches made to django.

Developers will need to run:
./tools/postgres-init-test-db
./tools/do-destroy-rebuild-test-database

this is assuming that they have already run:
./tools/postgres-init-db
./tools/do-destroy-rebuild-database

at some point on this pg_cluster. (The ordering is important; it will other-
wise complain about the south_migration table).

(imported from commit c56c6f27e13df7ae10b2e643e65d669dde61af3d)
2013-05-20 23:55:03 -04:00
Steve Howell 33dd01885a Fix autoscroll to use ui.message_viewport_info().
This will make it automatically work if we add new tab
bar like things.  The current version of ui.message_viewport_info()
is slightly broken; that's a separate fix.

(imported from commit fa1906b738433223831250e3191dfd8e87d67daf)
2013-05-20 23:55:03 -04:00
Steve Howell 8738f330c5 Fix lint error in unread.js.
(imported from commit 2b6736dfbd03cb8de93ab9e38f471430bdcf6d61)
2013-05-20 23:42:22 -04:00
Steve Howell 62d6360a48 Extracted model code out to unread.js.
Most of the model logic pertaining to unread counts had been in
zephyr.js, along with a couple global variables.  Now the code
is encapsulated in unread.js.  It was a pretty straightforward
extraction with some minor method name changes.  Also, a small
bit of the logic had also been in stream_list.js.

Conflicts:
	tools/jslint/check-all.js

(imported from commit f0abdd48f26ab20c5beaef203479eb5a70dacfff)
2013-05-20 23:42:11 -04:00
Steve Howell c587a18646 Animate "Private messages" when new private messages come in.
Set the background behind "Private messages" to green whenever
a user's unread count goes up for private messages.  Remove
the background after 3s.  Advanced browsers will fade the
green in and out over 6s (3s up, 3s down).

(imported from commit 80ed9661d9eec1d697f3259854037d7e145615cd)
2013-05-20 23:41:40 -04:00
Tim Abbott fc5949d9b7 Properly quote subject value in message edit form.
(imported from commit aa81b300c4528ffe751348578008c8bee22ac6ae)
2013-05-20 23:41:35 -04:00
Tim Abbott 2bdecd130a Add user interface frontend for editing messages.
The only known outstanding bug with this is that it doesn't properly
handle the updating of a message's highlighting/presence in a narrowed
view (e.g. in theory, a message should disappear if it is edited such
that its subject doesn't match your narrow or it no longer matches
your search).  I think I'll just open a trac ticket about that once
this is merged, since it's a little hairy to deal with and kinda a
marginal use case.

Also it's not pretty, but that should be easy to tweak once we get the
framework merged.

Conflicts:
	tools/jslint/check-all.js

(imported from commit 2d0e3a440bcd885546bd8e28aff97bf379649950)
2013-05-20 23:40:57 -04:00
Tim Abbott d467a93877 Add support for updating messages after they've been received.
Currently the interface for editing messages is limited to a
command-line API tool; it's great for testing with e.g.:

./api/examples/edit-message --message=348135 --content="test $(date +%s)" --site=http://localhost:9991 --subject="test"

The next commit will add a user interface for actually doing the editing.

(imported from commit bdd408cec2946f31c2292e44f724f96ed5938791)
2013-05-20 23:40:26 -04:00
Luke Faraone 83508e8136 Enable two additional vector icons.
(imported from commit a14bc26114ab65afa65011366017162a99cdaf62)
2013-05-20 23:40:21 -04:00
Allen Rabinovich 93a2e23e96 Change the layout of the message boxes in the message pane and make other message-related adjustments.
Specifically:
   * Leave the avatar image as inline and round it.
   * Move timestamp to the left column.
   * Replace the "Info" link with a permanent info sign.
   * Move the pointer bar to the left.
   * Remove borders
   * Change selection background colors, and PM colors.
   * Introduce the "narrowing" icon into our FontAwesome set.
   * Modify the tests to account for the new "narrowing" icon and fixed a bug in star-finding.
   * Clean up CSS and add a more prominent color to private messages

(imported from commit 8a8d6de8acccc52c0d16f5d1ce31aabdc72c88c8)
2013-05-20 23:40:17 -04:00
Allen Rabinovich dc738d01a4 Added new "narrow" icon to FontAwesome and placed it in the message headers and composition pane header.
(imported from commit e8f927f464f78b680a03e1647128541abe872cde)
2013-05-20 23:40:12 -04:00
Leo Franchi 0846ebd4b5 Revert use of rest_dispatch for beanstalk
For beanstalk we need to provide a decorator that converts %40 to @ in the
http basic auth part of the URL. However, if we put our own wrapper around
rest_dispatch, the Django CSRF protection jumps in. This requires us to put
@csrf_exempt on our extra dispatch function, at which point we might as well
have avoided rest_dispatch in the first place and put a @csrf_exempt decorator
on our api_beanstalk_webhook.

(imported from commit b1f459aad26a5b80cce93f6c859240a53c11cc22)
2013-05-20 23:37:58 -04:00
Steve Howell bafbc777e8 Allow scrolling during compose.
(imported from commit 0e39ba2048e7f0d2d91cc48f13e07fc69a5c4fc1)
2013-05-20 23:37:57 -04:00
Steve Howell 4ce6a6ea25 Fix auto-scrolling by not calling within_viewport.
The geometry used by within_viewport() is a little off to
begin with, but we don't want to check it at all in this
situation, because if the last messages falls out of the
viewport, we still want to scroll.  The relevant thing
to check is that available_space_for_scroll exceeds zero.

(imported from commit a0a6f0d23db2eab8d9f22fc9ad523031cf7f7ec2)
2013-05-20 23:37:57 -04:00
Steve Howell ecd3903007 Fix geometry for autoscrolling (part 1).
The prior code was subtracting out the compose box from the
calculation of available_place_for_scroll, which didn't make
sense when the compose box is at the bottom of the screen
and you're scrolling the current message up.  You could see
the symptom pretty clearly by seeing autoscroll stop exactly
the height of the compose box from the top.

(imported from commit cfceb85c8be80cca957ac4a3ad0bbf0de7425c48)
2013-05-20 23:37:57 -04:00
Leo Franchi 643384d1b3 Add missing Jira test fixture file
(imported from commit 320dd01781d1da355c500b239e482f9c6ce7b40f)
2013-05-20 23:37:57 -04:00
Steve Howell c2104e36c9 Fix geometry calculation for visible unread messages.
(imported from commit 91e5a6b83919c4cd935ea5e7586d84cc7a559cf6)
2013-05-20 23:37:57 -04:00
Leo Franchi cf3f62185c Handle unknown JIRA event types
(imported from commit 3760002996bac0a4c2b7b4cc8bff2026fb11978a)
2013-05-20 23:37:57 -04:00
Leo Franchi 3197a7fb89 Use rest_dispatch for beanstalk API
(imported from commit 9c261f648b39bb472718bbc763fd15883cbda4e9)
2013-05-20 23:37:57 -04:00
Leo Franchi a6486a1fa0 Add a tab bar at the top of the Message list to aid navigation
The intent is that this will also make it easier to tell when you are narrowed.

(imported from commit 5e37721fbad304d30fc725aacf2cc9e6560e9da2)
2013-05-20 23:37:57 -04:00
Luke Faraone 7ff3cd49af Update CSS to ensure that only the icons in the sidebar are coloured black.
(imported from commit 67e7cb12bec5361f75b80f25b5a5b821007042d1)
2013-05-20 23:29:56 -04:00
Luke Faraone 1bffb146f8 Revert "Make all fontawesome fonts black by default."
Otherwise the stars and info icons are no longer green.

This reverts commit f0571fc9e3005a4f2975174f230f77fed17adcfd.

(imported from commit fdf3c54dbba53917fe300ddbb641408edaddc44f)
2013-05-20 23:29:56 -04:00
Steve Howell 69977ce825 Fix unread count in favicon when focusing window.
This fixes a pretty subtle bug where the window-focus handler
wasn't updating the unread counts in the title, but it was
hard to notice, because as soon as you moved the mouse, the
problem fixed itself.

Apart from fixing the bug, this patch eliminates the expensive
mouseover handler, which is a big win.

The fix to the window-focus involved some unrelated cleanup.  I
decoupled update_title_count() from received_messages(), as the
former method will probably live somewhere else soon.

Also, in order to get window-focus to update the title count,
I went pretty deep in the stack and added a call to
update_title_count() inside of update_unread_counts().  This
fixes window-focus as well as restoring that behavior to
code paths that were calling received_messages().

You'll see that call to update_title_count() is now adjacent
to the call to update_dom_with_unread_counts(), which is
fairly sensible, but then are calls to similar methods like
notifications.received_messages() that happen higher up in
the call chain, which seems kind of inconsistent to me.  I
also don't like the fact that you have to go through a
mostly model-based function to get to view-based stuff, so
there are some refactorings coming.

(imported from commit 2261450f205f1aa81d30194b371a1c5ac6a7bdec)
2013-05-20 23:29:56 -04:00
Waseem Daher 1117278983 Clean up URL scheme a bit.
Nicer URLs:
	/login to login
	/register to register
	/signup to signup

(Step two is to remove, e.g. /accounts/home/)

Also make /login the default page when you're not logged in.

(Prior to this commit, it was annoyingly different on deployed
vs. not.)

(imported from commit 21adb7a94f03256098d15b2e608d793d3ddb5b23)
2013-05-20 23:29:55 -04:00
Waseem Daher 69b3397076 Send signups for not-yet-created realms to our waitlist form.
(imported from commit 7fac71d63e1ff7a27546c19dc4819665aa7b2358)
2013-05-20 23:29:55 -04:00
Waseem Daher 4480693f1a Signup page to collect beta customer info.
(imported from commit ce4e860aa6781aa74ca954c79ae133aa50a057f1)
2013-05-20 23:29:55 -04:00
Waseem Daher 8862efc964 Add a Humbug landing page at /hello.
Windows, Mac, iPhone, Browser icons from http://www.endlessicons.com/ and modified
Macbook Air image from http://psdsonar.com/macbook-air-free-psd/ and modified
Linux icon from Wikimedia Commons and modified
Android icon from Wikimedia Commons and modified

(imported from commit 3cf8617cf49a833b706a2ff78b986e28c21e26cc)
2013-05-20 23:29:55 -04:00
Tim Abbott ce65bdce2e populate_db: Add stubs for remaining known event types.
(imported from commit 6721c9303e153a072d6aaf572dd7760c7b3202f3)
2013-05-20 23:29:55 -04:00
Tim Abbott 665a58b639 populate_db: Fix buggy subscription property event parsing.
(imported from commit 58b1ea62819c633bb5621d8d5b4ade1278f2104f)
2013-05-20 23:29:55 -04:00
Tim Abbott 0cf2626f3d populate_db: Fix typo in password change handling.
(imported from commit 046a106e5778695223e634bf9aff15f4123ba3ce)
2013-05-20 23:29:55 -04:00
Tim Abbott 5195451519 populate_db: Fix parsing of user_email_changed events.
Note that this doesn't actually handle them properly -- it just parses
them.

(imported from commit eca061c9657a970ae6c0d622958a16097ed99ac5)
2013-05-20 23:29:55 -04:00
Tim Abbott fe987fb1c3 [manual] Excise South migrations prior to the User merge.
South doesn't properly deal with removing the Django User model, so
this commit redoes our South history to instead start after that
migration has already been applied.  This allows us to get rid of some
annoying hacks.

Note that developers and staging will need to run

./manage.py migrate --delete-ghost-migrations zephyr

in order to clear out the old versions of the migrations.

(imported from commit 7f45ea601b809dde33720f76e7dfb0ab348b0e65)
2013-05-20 23:29:54 -04:00
Tim Abbott 56949b4788 Create subscription objects in bulk by user_profile.
This, combined with acrefoot's work on sending the notifications in
bulk, resolves trac #1142 -- we do only 10 database queries and the
whole operation completes in about 300ms on my laptop.

(imported from commit 36b5bb836bc6c713903d1ca72e39af87775dc469)
2013-05-20 23:29:54 -04:00
Steve Howell f146362ea9 Simplified streamlist code.
I renamed set_count_internal to update_count_in_dom, because "internal"
was redundant in terms of saying the function was private, and it misled
me into thinking it was internal-only in impact, but it actually updates
the DOM.

I also removed the synchronous callback functions, since they both
led to simply hiding the count_span and clearing the text of the
value_span.

(imported from commit dea27d6414dc1b33818b24662f8246d687530b71)
2013-05-20 23:29:54 -04:00
Tim Abbott c325794f3c Send Markdown parser failures to the errors stream.
(imported from commit 8638744ec45d6505fe3a7be87df0a70943f23996)
2013-05-20 23:29:54 -04:00
Zev Benjamin 26b1192445 Defer some Javascript initialization code until the DOM is ready
This allows us to load our own code before most dependencies are
loaded.  Our compiled Handlebars files still need the Handlebars
runtime, so we can't move all of our minified code before
dependencies yet.

(imported from commit e2d0fa13f05a08fc3c2519790f7382e5eef6eca2)
2013-05-20 23:29:53 -04:00
Zev Benjamin f0f6af2b45 Don't try to show the user blueslip messages if ui.js hasn't been loaded yet
The user will probably get another error message later, anyway.

(imported from commit 4f52925600826366a8349fefc85d43b6e1923087)
2013-05-20 23:29:53 -04:00
Tim Abbott 1fae5cfed4 casper: Increase timeout for receiving messages.
Empirically we were having test failures due to not waiting long enough here.

(imported from commit f9269f00c0ba2f740dca786773b5bedf9fba0cde)
2013-05-20 23:29:53 -04:00
Tim Abbott 1df794efdc Don't use all_msg_list to memoize add_message_metadata.
The problem is that if you load a browser window in a stream narrow,
add_message_metadata will be called for the messages in the narrowed
view before it is called for the messages going into the main view
(thus inserting them into all_msg_list), resulting in duplicate
copies of messages.

This would be mostly OK except that we call
process_message_for_recent_subjects inside add_message_metadata, and
that function assumes it is only called once on each message
(otherwise it'll double-count the message).

(imported from commit a3e7f85874100cd93a6d07684605da04d9cc80c7)
2013-05-20 23:29:53 -04:00
Steve Howell 64fffc5b23 Account for navbar/composebox/etc. in determining visible messages.
Created a function message_viewport_info() to return more accurate
effective viewport info and called it from process_visible_unread_messages().
Also killed off a tiny bit of dead code in process_visible_unread_messages().

(imported from commit 985fcf2fb447dbf1026e2de37574c255a9bd6196)
2013-05-20 23:29:53 -04:00
Steve Howell e744c0ced6 Ensure we process visible messages on narrowing event.
Whenever we get a narrowing event, it's possible for new messages
to appear visible, and we need to call process_visible_unread_messages().
This has been a bug, but it's mostly obscured by the fact that we
call process_visible_unread_messages() as part of focus/scrolling
events.

(imported from commit b9447977f8e2272d45865ca67b436cacafd58a03)
2013-05-20 23:29:53 -04:00
Luke Faraone 3f37f88255 Grey out sidebar streams if they're not in the home view.
(imported from commit 4fdd1cb13ba36264803facb59ecf05c40056a59a)
2013-05-20 23:29:53 -04:00
Luke Faraone f9b82f2ab8 Add a dropdown menu to the sidebar.
This allows you to compose to a stream, narrow, or hide it from your home
view.

(imported from commit 183eb85af3401de592bae61a61409ffcc116eb45)
2013-05-20 23:29:52 -04:00
Luke Faraone e3163e8cc2 Make all fontawesome fonts black by default.
This makes it consistent with Bootstrap's halflings.

(imported from commit c8f958ca973175b6a7941b534ac13ccab231da9d)
2013-05-20 23:29:52 -04:00
Luke Faraone 6dc3ef5ea8 Break out toggling a stream in the home view into a separate export.
(imported from commit 175b5f47685e60100d6fb7c4f9c4c18ffbe12cbe)
2013-05-20 23:29:52 -04:00
acrefoot 6b8e9a738f No more wordwrap on pre blocks for humbugs with code in them
(imported from commit e894133c2e1dc3934ec5cadc2341e38ed537a96a)
2013-05-17 01:02:35 -04:00
Zev Benjamin 0f6c9e7b6f search: Handle quoted, multi-word queries
This does the simple thing, which will work as long as the phrase
doesn't have any punctuation and contains the exact text being
searched for.  We really want phrase search (check if the lexemes in
the query occur in sequence in the input lexeme string), but Postgres
doesn't support that natively.

(imported from commit 67bf36883ed21743fcad3f02ad5b319ab188f816)
2013-05-17 01:02:35 -04:00
Zev Benjamin 60e479bdf1 search: Parse quoted strings as single tokens
(imported from commit 252f2657881ad4184a2564d16bf11558613efead)
2013-05-17 01:02:34 -04:00
Zev Benjamin aa761aad1a Placate the closure compiler
This works fine on prod, but after a new install-server, the closure
compiler complains about a side-effect-free for loop init.

(imported from commit aa0e4d788abe4c819d4d912d6a526fab4f676675)
2013-05-17 01:02:34 -04:00
Leo Franchi 1902f6f149 Handle any malformed JSON input instead of just an empty body
(imported from commit a8a99173697ab6fb1ec60cf499e40cde8b8549d5)
2013-05-17 01:02:33 -04:00
Leo Franchi 9ffbc6d4ab Gracefully handle a jira POST request with no content
(imported from commit d11eb4462216c5344f1231bf92159bad84a8a583)
2013-05-17 01:02:33 -04:00
acrefoot 47c8062e2f Compose box doesn't reply, and remove new stream/PM buttons
This removes the large "New stream message" and "New private message"
from the left sidebar. It also makes the default action when clicking
inside the composebox the same as the "New stream message" button used to
do (instead of replying to the stream-subject pair at the current cursor).

(imported from commit 316f03a35b781aca4c42555f74b99c4332ff42de)
2013-05-17 01:02:33 -04:00
Tim Abbott c7f44f97d6 rest_dispatch: Apply process_as_post automatically.
(imported from commit 35a4710e2050efe268ed6d2e63a41eea1ebc1d24)
2013-05-17 01:02:33 -04:00
Allen Rabinovich 93b66737ce Update Source Sans to include all available glyphs, and fix the block quote thin font issue.
(imported from commit c9c82268ac08d3b603021b35c1075118a02b06eb)
2013-05-17 01:02:32 -04:00
Luke Faraone 96048ca140 Record the realm of users in Mailchimp
THE CENSUS OF HUMBUG

Now it happened that at this time Waseem Daher issued a decree that
a census should be made of the whole users of Humbug.

This census -- the first -- took place while Faraone was governor of
MailChimp, and everyone went to be registered, each to his own realm.

So Alice Humbugger set out from the town of MIT for MailChimp in order to
be registered.

(imported from commit fca7714ebffd0b39b9b1337058f67975985f4039)
2013-05-17 01:02:32 -04:00
Steve Howell 763782a6f0 Isolate stream_list.js's DOM manipulation when updating unread counts.
This refactoring basically splits off two functions from update_unread_counts(),
which then becomes a simple three-liner.

The function get_unread_counts() is extracted, and it's purely functional
computation.  It paves the way for a more pull-based approach to getting "unread"
counts, where other parts of the program can just call it to get values as
needed without worrying about side effects.  It is staying in zephyr.js for
now.

The other function is stream_list.update_dom_with_unread_counts(), which
has a new home in stream_list.js.  It handles all the DOM manipulation
aspect of unread counts in the left pane, mostly by delegating to smaller
functions within stream_list.  Some of those smaller functions can now
be turned into private methods FWIW, but I'm not sure it's worth the
trouble.

(imported from commit 799f9ebbaed8d530829a4741ef14be04bd8abf5a)
2013-05-14 15:21:27 -04:00
Steve Howell f024a7ab14 Call process_loaded_for_unread() more directly.
This is a prefactoring to eventually eliminate the home_unread_messages
global variable.  More commits to follow.

In order to set up process_loaded_for_unread() not to modify
global variable to get its job done, we want to pull it out of
add_messages(), so that add_messages() doesn't have to pass back
state to the 9 different places in the codebase where it's called.
There are only 2 places where process_loaded_for_unread() get
called after this commit.

In order to facilitate pulling up process_loaded_for_unread(), I
made it so that the contract for add_messages() was to accept
already-hydrated messages.  This way I could hydrate the messages
before calling process_loaded_for_unread() without have to
worry about double-caching them in add_messages.  This will
slightly improve performance, but it was mostly done for code
clarity.

(imported from commit ad5aaad5b1f22c31647370f4c9dcb5f89d7d99a7)
2013-05-14 15:21:27 -04:00
Tim Abbott b8e1809f94 Fix is_super_user_api for REST API.
(imported from commit 94ba18656ca3b0636da9d5ca7969872b31ae970b)
2013-05-14 15:18:21 -04:00
Tim Abbott 6664ac8014 Set request.user in API views.
(imported from commit f8cd82a60ef72055b595dfab88ab0058b120251c)
2013-05-14 15:18:21 -04:00
Jessica McKellar 8a3f51dca0 Put a prominent Feedback icon to the right of your feed.
(imported from commit a18cb1f73d342a683515270956305ce387b3af19)
2013-05-14 13:43:58 -04:00
Luke Faraone 1bb9def157 Only contact embed.ly if we have items that are not cached to fetch.
(imported from commit 8016d1f5dac6a75ced63bec8f0f11d9e4020cccb)
2013-05-14 08:00:37 -07:00
Tim Abbott a4c5c24029 Use the event system to sync onboarding steps across browser tabs.
(imported from commit 29311390133aca8f3a3d79fbe06dbbcabc4fb6ea)
2013-05-14 10:27:40 -04:00
Jessica McKellar 976ceb2a1d Display onboarding steps, waiting until after the tutorial for new users.
(imported from commit 2b6a1cfdad98349995c48c376caede64ed391241)
2013-05-14 10:27:40 -04:00
Jessica McKellar bd9d7bb2dc Update onboarding checklist on message sends.
(imported from commit 0d7f8b53432b22c7d3593fe51e7f0cdd8e13c8ba)
2013-05-14 10:27:40 -04:00
Jessica McKellar f37540bbda Add onboarding UI functions for displaying and completing setup items.
(imported from commit 9ba9cb09d5ad2845ceeda436f89f7d22a19c3fbc)
2013-05-14 10:27:40 -04:00
Jessica McKellar 76a57e78ed Enumerate onboarding steps client-side, and give a way to update them.
(imported from commit 0a993976e898cdb20ebb814a19d520572ef8b7e6)
2013-05-14 10:27:39 -04:00
Jessica McKellar c6da73ade9 onboarding: add endpoint for updating your onboarding steps.
(imported from commit 30c326b50cd2273099aa464f2d9502f929a3d48f)
2013-05-14 10:27:39 -04:00
Jessica McKellar 24bb8ad797 onboarding: give new users a list of uncompleted onboarding steps.
(imported from commit 068a6e2112db98965ec5a1c5fc69a9fe285c0333)
2013-05-14 10:27:39 -04:00
Jessica McKellar b5e22bf6b6 [schema] Add the migration for adding an onboarding_steps field to UserProfile.
(imported from commit e0dea167d5d0f54a8471524b6ab6717e4c3226ef)
2013-05-14 10:27:39 -04:00
Jessica McKellar bfdf3bceae templates: Add a popover with tab pinning instructions.
We'll pop this up in an onboarding checklist step.

(imported from commit b3ef325bc7551de814f8dd88e5c18775218eb54e)
2013-05-14 10:27:39 -04:00
Jessica McKellar 4dd0a3d1be Add space for an onboarding checklist in the right sidebar.
(imported from commit 69f1c14f4050de8e527a7044f5f9cf90bc7b4a59)
2013-05-14 10:27:39 -04:00
Jessica McKellar 0304014274 fonts: Enumerate empty and full checkmarks.
We'll use this in an onboarding checklist.

(imported from commit 511602b0afb7a024fc2137617ac22475a600b981)
2013-05-14 10:27:39 -04:00
Leo Franchi d9d1ece5a4 Typo fix, log num of memcached queries not as timing
(imported from commit 60087a38a3204187ed9957a5897b5e81ef875b27)
2013-05-14 09:31:17 -04:00
Tim Abbott c6f04a2c75 Do memcached accounting on the memcached repopulating commands.
(imported from commit 56b30c04e7aee9c9d8493d872b3b367f2be14262)
2013-05-13 17:11:31 -04:00
Leo Franchi 32dcc75b08 Use path instead of full path for statsd logging
(imported from commit 48ddab1ed5b9fd6c6b87a2eb8c5119eb686f23ee)
2013-05-13 12:23:28 -04:00
Leo Franchi f7850d741a Graph time spent in memcached and num queries sent to memcached
(imported from commit 1214679d52448aac1a19aaa878ea078b2a16b8c9)
2013-05-13 12:23:28 -04:00