Commit Graph

2140 Commits

Author SHA1 Message Date
Waseem Daher c5f3018431 Simplify hotkey handling when combinations are involved.
This makes the "handle hotkeys" code path a lot simpler, and also
fixes the "copy not working" issue we were seeing on Firefox 17.

(imported from commit 8ab96d12895da2876f60da58f373372612f4ba32)
2012-11-11 17:56:41 -05:00
Waseem Daher d76442c7e4 Process the whole key event through the hotkey handler, not just the key code.
(imported from commit c356dd09f7c2620c45d5bada61c0a5b261768888)
2012-11-11 16:35:45 -05:00
Jeff Arnold 8bd2e5abf3 onchange is not needed for these compose box input fields
And having the onchange there e.g. breaks shift+tab in the subject
field after you've entered new text into the subject field

(imported from commit 080e81bd847a1b6d3defadb62b6c3640910e5aa0)
2012-11-11 13:25:17 -05:00
Jeff Arnold 5c7419307c Fix style mistakes we didn't catch the first time
(imported from commit ae1ca10ea8559702e4e73481715239ff456eca4b)
2012-11-11 13:24:44 -05:00
Jeff Arnold 8ba2d2ea8b Chrome prefers onclick="this.select()" to onfocus="this.select()"
http://stackoverflow.com/questions/2939122/problem-with-chrome-form-handling-input-onfocus-this-select

(imported from commit 15e87a3e79172e31cb76e68319014b5eb1d6deac)
2012-11-11 13:24:38 -05:00
Jeff Arnold 7ada59fe88 Clicking in subject/stream/huddle boxes should select all
Resolves Trac #86

(imported from commit 0e4d470fce01d7c4b1ad9103fe5f1dc726dcd984)
2012-11-11 12:28:26 -05:00
Jeff Arnold e7807742cb Pressing "enter" in the compose box fields should not submit the form
Resolves Trac #333

(imported from commit 2a824c5d38a6b53a425c72f5eb3534fe26d75faf)
2012-11-11 12:28:26 -05:00
Waseem Daher da571f16ff Fix "resizing window breaks in Firefox" issue.
So, in Firefox, $(window).width() does not include the width of the
scrollbar. However, the CSS media-query max-width DOES include the
width of the scrollbar -- so the Bootstrap change and our change do
not happen at the same time.

window.innerWidth does take into account the width of the scrollbar,
though, and seems to have reasonable cross-browser support, so we use
that instead.

(If we wanted to be slicker, we could use a media query a la
https://developer.mozilla.org/en-US/docs/DOM/window.matchMedia ,
but that's not supported in IE <10.)

This resolves Trac #35.

(imported from commit ca35321c02d5e79e4f9c439a662805c016a333ed)
2012-11-10 14:52:53 -05:00
Zev Benjamin c3a17de14c Don't switch to the not-composing state if the server did not accept our message
This fixes #349

(imported from commit 4e54f3ab3e9c91c5f23ccf22269775b01550f757)
2012-11-09 18:08:31 -05:00
Zev Benjamin ef99a53465 api: Generically convert non-string values to JSON in python bindings
(imported from commit 820bc20d469832b5785b434726c81e59a3f67ea5)
2012-11-09 18:08:31 -05:00
Zev Benjamin d41fde7d92 Rename parameter for clarity
(imported from commit c69a5a57467664631ba812c5237641e0203e1aaa)
2012-11-09 18:08:31 -05:00
Zev Benjamin d980afcf25 Actually convert to JSON instead of hacking it with string concatenation
Old browsers might not have the global JSON object, so we may have to
include something like https://github.com/douglascrockford/JSON-js
for old browsers in the future.

(imported from commit e30a291d1212f2a00b543551b3a77082c7406eec)
2012-11-09 18:08:31 -05:00
Jeff Arnold c800186553 Make tab not autocomplete on the compose box subject field
(imported from commit 7b305a3ca5ae5864255c4eca5464560f92b708b0)
2012-11-09 17:57:20 -05:00
Jeff Arnold ef585cf1f6 [third] Create a Typeahead option tabSelects for whether tab autocompletes
(imported from commit d1602e998b54d39eb515d0866e7ed2d158fe97d8)
2012-11-09 17:57:20 -05:00
Tim Abbott 7cafd7c6d0 zephyr_mirror: Support whitespace-only zephyr instances.
Previously messages sent to zephyr instance " " wouldn't be forwarded
zephyr=>humbug because the target instance is the null instance; I
learned this when we got a few tracebacks in the zephyr_mirror log, so
clearly this does happen.

(imported from commit 08bd7470e75ac6af24ac83696b6cf68d70654664)
2012-11-09 17:32:15 -05:00
Waseem Daher cb0f48b59d Restyle subscriptions 'undo button' slightly.
Some stylistic tweaking to the solution to Trac #127.

(imported from commit 5f9a84c91716e6e57cce2cef1d8ca0915e4b135f)
2012-11-09 17:13:15 -05:00
Tim Abbott cdd9c80499 zephyr_mirror: Catch IOError from zephyr.init().
(imported from commit d657fede53ee3754e76edf66b10bef09ad1f9577)
2012-11-09 16:56:14 -05:00
Tim Abbott 6716126c6e api: Sometimes python-requests raises an SSLError on timeout.
(imported from commit 7f64659acf124819c04b5ecd67eaa5b5fddc71fd)
2012-11-09 16:56:14 -05:00
Tim Abbott 957a996322 api: Distinguish Requests connection errors from server 500s.
(imported from commit 1879ea4030c2441c049d9c68684b33a1d2444572)
2012-11-09 16:56:13 -05:00
Tim Abbott 1f3cf7bbd0 Fix sending to cross-realm Zephyr users.
(imported from commit 1eebf286e149aa1242d6d26096003eb696fb18f2)
2012-11-09 16:56:13 -05:00
Tim Abbott b01407bd75 Move push notifications to a consistent subject.
(imported from commit 3b4acb39bbf564625e3c009f4f875da596a7a7ac)
2012-11-09 16:56:13 -05:00
Jessica McKellar d6ad978c1a activity monitor: style tables and make them sortable.
(imported from commit 03c5002e6a289ca123b47f99c065b41cfc013762)
2012-11-09 16:45:18 -05:00
Jessica McKellar a800904183 Add sorttable JS library.
(imported from commit a60799d0301a590a599fe70f1058006e1398faa9)
2012-11-09 16:45:17 -05:00
Jeff Arnold 7e3536960a [third] Make tab move to the next field without autocompleting
(imported from commit 232d3662a0a910d8056ba838d7f07c8e774b23a1)
2012-11-09 15:50:05 -05:00
Luke Faraone ed1caec147 Document the selctors in signup.js per trac #327
(imported from commit b21f5c4dbdc1b4dc5dbdc5a3152fdc8cbbb872ef)
2012-11-09 15:03:08 -05:00
Luke Faraone 7605eaf646 Document confirm_preregistrationuser.html per trac #314
(imported from commit d9a19fa18fa4a8933cf4dbb9b286da28aa036956)
2012-11-09 15:03:08 -05:00
Tim Abbott 8e973adb5b api: Add 55 second timeout when longpolling.
(imported from commit c5c1f9fcfa9ec5eff84f9bc7e98042f87193e98c)
2012-11-09 14:32:06 -05:00
Tim Abbott 30b43ebee2 Uniformize /json/ and /api/ URLs to end with no trailing slash.
(imported from commit c35b30bcc43982db3a2f774ea69269e5424a6159)
2012-11-09 14:30:10 -05:00
Zev Benjamin 565edc3c5a Fix tests failing due to changes in error message text
(imported from commit 1b0a869d427b33a0e8fcec4e2aa083bd94eee640)
2012-11-09 14:21:06 -05:00
Zev Benjamin 50b3cdd637 Make failures parameter in get_updates_backend optional
This was causing our tests to fail and would have also
affected API users not using our Python bindings

(imported from commit 2d81496892e9042e328279edea94be8ee4d21c1b)
2012-11-09 14:21:06 -05:00
Tim Abbott 831316c6a6 Fix tests failing due to new activity tracking.
(imported from commit 9c7ddfd4ad40cd2dfd38ac41537e058e02797085)
2012-11-09 14:16:52 -05:00
Tim Abbott 16c8baf99b Fix running tests when the default database is MySQL.
(imported from commit b692b64219fb67792cdfd3bd208df2c6103d23ad)
2012-11-09 14:16:52 -05:00
Jessica McKellar 3af5e246be Don't cache your personal gravatar across gravatar updates.
(imported from commit 06f82faaa350db8a64cebef24b738b5e93bebb98)
2012-11-09 12:44:09 -05:00
Tim Abbott 85423bc010 Add a /activity page displaying data on user activity on the site.
(imported from commit 3877be49e4e0b89cadfead88b5c51f955759a996)
2012-11-09 12:28:38 -05:00
Zev Benjamin 1e91310ee6 @has_request_variables: tell users what their bad value was in the error message
(imported from commit 0e5e576da74c6492c2f9189bcf725c336cd9b2d7)
2012-11-09 12:27:40 -05:00
Zev Benjamin 8a0bef6c42 @has_request_variables: don't apply the converter to default values
(imported from commit 44fecac26268c4c1b7f69b4d5013cfbff2010744)
2012-11-09 12:27:40 -05:00
Zev Benjamin 472480a4b6 Move @has_request_variables decorator from return_messages_immediately to get_updates_backend
return_messages_immediately's return value is not returned, so the
argument validation in @has_request_variables didn't work correctly.
@has_request_variables would return a json_error, but
send_with_safety_check expects a dict.

(imported from commit 86b6bccb7861dbf523c06b606b87374e339059a4)
2012-11-09 12:27:40 -05:00
Zev Benjamin fd51cf343b Make client_id parameter in api_get_messages optional
(imported from commit a3221fe73f63c2cfa8f87b6059283a9aa0e8b8e4)
2012-11-09 12:27:40 -05:00
Jessica McKellar 3df5d0faf3 Don't disable hotkeys on buttons in general -- just the send button.
The original check has become too broad now that we have more buttons,
and specifically this lets you use the search hotkey to start a new
search after you've been searching up and down.

(imported from commit 0e691ff55ff9d4be8d406d1eb47fc2062758d28b)
2012-11-09 11:44:06 -05:00
Tim Abbott 9e9438153c [schema] Store analytics on usage of our product.
(imported from commit 4fbf8215225fc8f505b9c749ccf80c556af13e87)
2012-11-08 18:00:57 -05:00
Tim Abbott de4548dcb5 populate_db: Don't give huddle senders 2 UserMessage rows per message.
This bug was caught by our new unique_together constraints.

(imported from commit 5392c12cdc8e5c9603652ba2a32ae4400375f14b)
2012-11-08 18:00:46 -05:00
Tim Abbott 2be66f0e8a populate_db: Don't create huddles with 2 copies of the same person in them.
Bug caught by our new unique_together constraints.

(imported from commit 37c1fc459b98050417e907653a5a4fc97004903b)
2012-11-08 17:59:31 -05:00
Tim Abbott 5ab0cccf41 Pass the user's user_profile to authenticated view functions.
This change substantially increases the number of view functions where
the API and JSON versions are actually identical code.

(imported from commit 2eee55a8943cf9a684bec2ba1f6d7afcb2b91948)
2012-11-08 17:59:31 -05:00
Tim Abbott e6ea910f18 zephyr_mirror: Forward messages sent to the empty instance more clearly.
(imported from commit 1fb5e4f8ce9941b3ca89688821d325d7ae49aee5)
2012-11-08 17:48:15 -05:00
Tim Abbott 72a4d065cb zephyr_mirror: Add a test mode that just prints messages.
This is useful for trying out new versions of the forwarding code
while the mirroring bot is still running in production.

(imported from commit bcdaf91fed55ac0974b1efe31dd13ed006b6fd06)
2012-11-08 17:48:15 -05:00
Zev Benjamin 506a5b729b Add note to @has_request_variables about when it is inappropriate to use
(imported from commit 952341aad07e07d762ea3ec66a5b167bcb40ecea)
2012-11-08 16:40:07 -05:00
Zev Benjamin 95cd3f8ee6 Use the new @has_request_variables decorator
(imported from commit 2aa99140bf19e7e236f872960abd1b84b6a713be)
2012-11-08 16:40:07 -05:00
Zev Benjamin 27cf7e09d3 Add magic request variable extractor decorator
Functions with the @has_request_variables decorator can have some of
their arguments extracted from the HTTP request.  For each such
argument, its default value should be an instance of the POST class.
The arguments to the POST constructor control the request variable
name that the function parameter should be populated from (it
defaults to the same as the parameter name), whether the value should
be converted before being passed, and whether a default value should
be supplied if the parameter is missing from the request.

(imported from commit ba1c25d73ba3980e44abec1458e6496807fcdaa4)
2012-11-08 16:36:14 -05:00
Zev Benjamin dc8c54e6db Move view decorators into decorator.py
(imported from commit 737cff552b395493f44864ac06e901b0ba17fa29)
2012-11-08 16:35:31 -05:00
Zev Benjamin b278db110f Move json response functions into their own file
(imported from commit 91a786849bfa30dcacecef6b8339d8f1a9365156)
2012-11-08 16:30:57 -05:00