Commit Graph

251 Commits

Author SHA1 Message Date
Zev Benjamin 4cd194ec6a Minify our JS and CSS with third-party JS and CSS
(imported from commit e08d54c0ce09baff1f88db6b0c22386a556bc2df)
2013-05-30 13:51:47 -04:00
Keegan McAllister 52e0aa59a6 Minify third-party JavaScript and CSS in production
(imported from commit 943d712bc460640d7a689ac678922d9c5bf7aa9c)
2013-05-30 13:51:47 -04:00
Keegan McAllister 7d5f2cb2cd Switch away from CDN for jquery and jquery-validate
We're going to minify these together with everything else.

(imported from commit 929538ac119a82a0d96446a48da90c162a317417)
2013-05-30 13:51:46 -04:00
Keegan McAllister 243ccf10d0 Normalize directory names for jQuery plugins
(imported from commit 46a4c97f176066fcb56e7943f7b3c25cdc089e4d)
2013-05-30 13:51:46 -04:00
Zev Benjamin b46bc6004f Load blueslip as early as possible
This will help us track down errors in third-party javascript
libraries.

blueslip needs jQuery and the page_params, so those must come first.

(imported from commit f53f67d758298d4e1c2784ec27e09d6abf0b3223)
2013-05-20 23:29:54 -04:00
Zev Benjamin 39bb10a24a Only load jquery.validate where we need it
(imported from commit 9c6bcb95932c70bf7a8b34733d9ffacab971f33c)
2013-05-20 23:29:54 -04:00
Zev Benjamin f39bc69cf4 Execute our main app code after we load page_params
We believe this was the source of the occational exception in dev for
page_params being undefined.

(imported from commit 3d085b7af831b4c936f492d02517652bf8509557)
2013-05-17 01:02:33 -04:00
Luke Faraone f20f605376 [manual] Add file upload support.
This allows users to drag and drop content onto the compose box, storing
their data in Amazon S3.

New dependencies:
 - python-boto

(imported from commit 339874e483db5c36312c9ceae56db29da6ca0d99)
2013-04-05 13:07:13 -07:00
Keegan McAllister 5ebd281f38 Serve only the runtime part of Handlebars in prod
(imported from commit 8e55cb99deff680c832502396625b8cb1054e0cb)
2013-04-02 14:44:27 -04:00
Keegan McAllister 17d5406b55 [manual] Fetch Handlebars templates using Ajax
...rather than embedding them into index.html.

This is only acceptable for dev, but the next commit adds an alternative
mechanism for prod.

There isn't actually a manual deployment step here.  However, this commit won't
work on staging / prod without the next one (since we don't serve
zephyr/static/templates in prod).

(imported from commit dce7ddfe89e07afc3a96699bb972fd124335aa05)
2013-04-02 14:43:58 -04:00
Keegan McAllister 37c5e1acd5 Upgrade to Handlebars 1.0.0-rc.3
Not needed for any specific reason, but we will need the .runtime.js file
eventually, and we should use a version of the library that matches the
Handlebars compiler.

(imported from commit 5600bc8d44b681999e2e5bbf04b890e2bb8477a1)
2013-04-02 14:43:58 -04:00
Keegan McAllister 7309d57067 Output page_params as a single JSON object
This is a lot cleaner, and also cuts about 50-70 ms off of page load time in
local testing (with lots of users), presumably because there's less work to be
done by the slow Django template engine.

(imported from commit 257b700238ee5d9a4ae00a53011ed5bce018124c)
2013-03-26 13:51:21 -04:00
Keegan McAllister 6d9aca5f1a Move "page parameters" (email, enter_sends, etc) into a single object
(imported from commit 842b2371bf6364982f1358f1cd2d91118c7fb2bf)
2013-03-26 13:50:03 -04:00
Waseem Daher 33dc3a2fb7 Properly start tutorial on first run, even if you have new messages.
We were previously having an issue where the tutorial could
be pre-empted if you got a few messages while you were first
logging in.

I have some reservations about this being slightly fragile, and a
better approach might be to just have a bit that we use to determine
whether or not you've already seen a tutorial. (Or potentially that
checks whether or not you've ever sent a message.)

(imported from commit f8858f64a36bcd25887b76314caff283929f340c)
2013-03-12 09:56:57 -04:00
Zev Benjamin dc0913077a Add a new frontend error-reporting system
The new system, called blueslip, makes errors fatal when in debug
mode and only output a message when running in production.  In the
future, it could also send user errors back to us automatically.

(imported from commit 1232607c0311e885c8b5a5e8a45ffb28822426e0)
2013-03-11 13:22:12 -04:00
Reid Barton 6bb9ad4e3c Avoid cross-site logout attacks
Require POST method for /accounts/logout. This has the side effect of
automatically enabling Django's CSRF protection.

(imported from commit 44b1b6ebaadc1c03006e21ae54ac768e31234801)
2013-03-06 19:10:04 -05:00
Waseem Daher 3ce48f8a45 Make layout more responsive.
To be fully responsive, we can basically never specify the width of
our container in a fixed number of pixels; otherwise we'll run into
the situation where there's an inordinate amount of wasted space on
our left and right.

So everything needs to change from, e.g. row to row-fluid,
and that has a whole cascading series of changes that that implies.

(imported from commit 7e2771d916f429548c65c0a00fc4c11397054656)
2013-03-03 11:04:57 -05:00
Waseem Daher f78966d306 Move left and right sidebars into their own templates.
This is purely a "move HTML around" commit; nothing should have changed.

(imported from commit 09968a0e838cbdff86cd824ab9c0fb39d20c78f3)
2013-03-02 19:45:44 -05:00
Jeff Arnold fcd033e33e [schema] Save enter_sends on the server in the database.
(imported from commit 4d82f6aaf5918f155a930253c9cc334dbcc0d97a)
2013-02-27 17:25:29 -05:00
Zev Benjamin fc085cbd77 Add a bottom border to the left sidebar streams list
The idea here is to better hint that the list is scrollable.

(imported from commit 75a415535f47807ef146d4dc9a2806d193d31fe7)
2013-02-26 17:18:56 -05:00
Zev Benjamin e7604e170a Make left sidebar HTML more standards-compliant
(imported from commit 4cfc7789d4b930ea074596ddf06d16638e91c9a2)
2013-02-26 17:18:56 -05:00
Keegan McAllister 49e16b0ba6 Add portico and misc CSS and JS to Pipeline
Fixes #963.

(imported from commit 63ec313a41fd13350657c78356efc16422a5fff1)
2013-02-25 16:18:35 -05:00
Keegan McAllister 56d183ea06 Remove lurk mode from web client and API examples
See #796.

(imported from commit e238ce571c3f30d8312b630df7048ad1d9cad6d2)
2013-02-21 15:11:10 -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
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
Keegan McAllister 947d450a6d Draw user presence dots as actual list bullets
This keeps the name to the right of the bullet even if it overflows
onto two lines.

Fixes #909.

(imported from commit 60528bb30c2d9e29687b773abc76c18369a8a068)
2013-02-19 18:26:58 -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 eaec3c03d4 Import jQuery Caret plugin
(imported from commit 814f32cd68c07be224b3f793670e764c5d470679)
2013-02-19 11:25:03 -05:00
Keegan McAllister e25d9a8492 Remove unused Notificon library
(imported from commit 8c0717b4e305d28f30b9088a974e99d510ab3021)
2013-02-15 16:19:58 -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
Jeff Arnold d0f422979b Change the favicon on notification (great for pinned tabs)
(imported from commit 025ad165d15b2e6d979c246776148f13ebc555fb)
2013-02-12 16:27:07 -05:00
Waseem Daher c3cb9a6246 Allow the stream and user lists to scroll with mousewheel.
The previous commit stopped the mousewheel event at .bottom_sidebar,
which means it was never getting to our individual scrolling lists.

(imported from commit 92d32c21bb596d0e14d887ff779a857223d45342)
2013-02-12 11:54:34 -05:00
Waseem Daher 7975b36a45 Reorganize the sidebar slightly.
Until we have filters, let's keep Home and All Private Messages together.

(imported from commit 8737ceee21d692169df0abf9bbc9052916d244d2)
2013-02-12 11:54:34 -05:00
Waseem Daher 3a25361a74 Make clicking "Home" in the sidebar from, e.g. Settings, actually work.
Previously it would unnarrow you but not actually change your view
to the home view.

This fixes Trac #839.

(imported from commit 226bb70b850685ed2727d920fd1303a94b6a5dd1)
2013-02-12 10:07:35 -05:00
Waseem Daher 30bed51a65 Style the green 'online now' dot entirely in CSS.
This lets us clean up the HTML a little bit in preparation
for a later change which will cause the stream and people
lists to scroll independently of one another.

Also it feels a bit more fun.

(imported from commit b3b49149d7ec2960fd752fe50b41e55d363c1a98)
2013-02-11 23:15:19 -05:00
Leo Franchi 83011f7f47 Show a user activity list in the sidebar
(imported from commit 95aaa55c7e4cc39f844518b5308866bedf2cd1c5)
2013-02-11 18:05:57 -05:00
Keegan McAllister 16d62fe5de Combine the actions popover with the timeinfo popover
The message timestamp is now always clickable, and the popover contains the
full long-form date and time.  This addresses one problem from usability
testing (see #470).

(imported from commit ad502dff128ad1c934fc0d3faaf5e2931c91c37e)
2013-02-11 13:59:18 -05:00
Keegan McAllister 520d7b1f97 Rename userinfo_popover -> actions_popover
(imported from commit fab5a44af1acaf93640a2f57ffc25b3e97f55d2e)
2013-02-11 13:59:18 -05:00
Luke Faraone fd1d790b72 Don't show the stream list on Humbug for MIT.
(imported from commit d9f952aaeb910a7c57ce1174141686331224c8c0)
2013-02-08 12:02:05 -05:00
Luke Faraone 686c709788 Add a link to filter to all private messages
(imported from commit 115f84b42c14acdc8d1827bd8d914a9ac6acab43)
2013-02-07 15:35:46 -05:00
Luke Faraone 9c86db20fc Add support for "labels" in the left sidebar.
(imported from commit 5e942a8d0c7f459148a4961736f4c5305e0c51b4)
2013-02-07 15:35:46 -05:00
Luke Faraone 3de93f2b2b Pass stream information in initial template.
This allows us to remove fetch_colors() entirely, and should speed up page
load a bit.

We also JSONEncoderForHTML instead of dumps so that the result is safe
to embed.

(imported from commit 013630911960e2ac1d0bae6f5df31ad342750594)
2013-02-05 15:34:37 -05:00
Jessica McKellar 018f45d151 subscriptions: add HTML and templates for new stream creation modal.
(imported from commit d19991c7fcdd29feafa877ca8203034028b1e0b2)
2013-02-05 10:01:44 -05:00
Waseem Daher 2c954c8f82 Move navbar code into its own "navbar.html".
(imported from commit 4fa1c5d5ffa0af0ae8d608fad762470bf737205c)
2013-02-01 10:36:17 -05:00
Waseem Daher f3bbb7b294 Move all of the "alerts" into a row in our navbar.
This is literally a pure "move HTML" operation; no actual code
changes.

This will make them always visible, even when we're in skinny mode
(and will also make more room for our list-of-streams-and-people
sidebar on the left.)

This does have the side-effect that the errors cover up the rest of
the application (in particular, the floating narrowbar). I don't view
this as the end of the world, though the more robust solution would be
for navbar-spacer to grow when the navbar does, and for everything
else to be correspondingly pushed down.

You can visualize an extreme version of what this looks like with
   $(".alert").show()
in the Javascript console.

This fixes Trac #720.

(imported from commit 7a3b12aebcca389465bd1e5852cef5d08fafe3e7)
2013-02-01 10:32:51 -05:00
Keegan McAllister 6990260b59 [manual] Minify JavaScript and CSS in production
Manual deployment steps: The same Nginx reload as for "Get rid of the
static-access-control mechanism".  If deploying both commits at once,
just do it once.

(imported from commit dd8dbbf14b95fce0a4b6f66f462fa0a6b50bfb8c)
2013-01-31 15:41:01 -05:00
Keegan McAllister 5e9b0ba79d [manual] Get rid of the static-access-control mechanism
We will minify our code, rather than trying to restrict who can see the
un-minified code.  Removing access control first simplifies things.

Manual deployment steps:

    scp servers/puppet/files/nginx/humbug-include/app root@staging.humbughq.com:/etc/nginx/humbug-include/
    ssh root@staging.humbughq.com service nginx reload

and then the same for app.humbughq.com once deployed to prod.

(imported from commit 63788aa3fa7ba5fd97fcf85b05760abb5e7cae4b)
2013-01-31 15:34:12 -05:00
Zev Benjamin 1ba381c4a9 Account for the new top navigation bar when setting the main div height
This fixes #704

(imported from commit 5e73bf38cf0cda661a4c7070eea760934b30e454)
2013-01-25 14:09:30 -05:00