Keegan McAllister
74c97e7d59
Remove duplication between do_narrow and select_zephyr
...
(imported from commit 84c3e5a0d5682fd8790bd6e277e05e54a47d9aac)
2012-09-06 15:48:15 -04:00
Keegan McAllister
d78e1f1bcb
Remember the selected zephyr in a Javascript variable rather than querying the DOM
...
And related cleanups.
(imported from commit aa64980b4e66a64e92735c736159a8e2f717ea09)
2012-09-06 15:48:15 -04:00
Keegan McAllister
03d2a087a7
Organize global variables a bit
...
(imported from commit d3ad323bad4cda98e55a54ed3c9aec81ccd4008b)
2012-09-06 15:48:15 -04:00
Keegan McAllister
84e618a902
Use 'var' at top level consistently.
...
This has no effect but is stylistically consistent.
(imported from commit 71d7f615ea140195cc5081fb331677bc5d856fed)
2012-09-06 15:48:15 -04:00
Luke Faraone
3d1e956069
Don't check for class existence if we're not sending to a class.
...
(imported from commit 832de3f899d90ee727cebeede061de6a409b7845)
2012-09-06 15:19:56 -04:00
Luke Faraone
f6b481546f
Offer to subscribe / create classes if user zwrites to a non-subbed class
...
Here we check if a class exists. If not, we prompt the user to create, sub,
and send his message to the class. If the class exists but we're not subbed
we prompt the user to sub.
This commit also added a decorator to views.py and refactored out some
redundant code.
(imported from commit 7234ef6c080f2a6de6ff0922635dddd90032f7fe)
2012-09-06 14:33:55 -04:00
Jessica McKellar
cede8e59fb
Return a 400 and error message instead of 500ing on a personal to an invalid user.
...
(imported from commit b8cdf342f2919aa0dbd2e30764c7662b6756aa57)
2012-09-05 18:01:06 -04:00
Keegan McAllister
0788f2efe6
get_updates_longpoll: Retry indefinitely, with exponential backoff
...
The client still won't recognize when it's reconnected, if there is no traffic.
Probably we should have the server send periodic heartbeat messages to the
clients, and make the clients look for them.
(imported from commit 4dab3ddf20bf3c48a65b9395c1e24b635b70aa81)
2012-09-05 16:37:20 -04:00
Keegan McAllister
c3aaf54468
get_updates_longpoll: Timeout and retry
...
We're currently proxying through Apache, which will eventually drop an idle
connection to the app server. Before that happens, drop it on the client and
retry. This may also help with flaky Internet connections. This timeout isn't
really an error condition and is naturally rate-limited, so we retry
indefinitely.
(imported from commit 45fbf812af63ed331fe046d85c64c97c1ec57611)
2012-09-05 16:37:10 -04:00
Keegan McAllister
53690d757f
Avoid infinite tail recursion in get_updates_longpoll
...
Javascript doesn't guarantee tail-call optimization. Also we should yield
control back to the browser in case it needs to catch up on rendering.
(imported from commit 1c35c0c2c39f13311b98bfb6221a1bac1fb22de8)
2012-09-05 14:06:19 -04:00
Keegan McAllister
1f522eddac
Move zephyr rendering inside longpoll success callback
...
(imported from commit f7c2bbb0a31b339892a033e4192e44cb53b0d62c)
2012-09-05 14:06:08 -04:00
Keegan McAllister
162cb075b7
DEBUG: report longpoll events in JS console
...
(imported from commit f82edf2fcec66ec119319a691281726a16a46b31)
2012-09-05 14:00:56 -04:00
Tim Abbott
8eb778dc32
Fix display of which people we're showing personals with.
...
(imported from commit 4e2f2554c9af4b176dcbbe6300b72c2ce69bc8bd)
2012-09-05 11:48:35 -04:00
Keegan McAllister
5ac4b4345e
Point at the first zephyr if the initial pointer is invalid
...
(imported from commit 7661a7d23f1d161815f2a22048cd23ede76e1758)
2012-09-05 11:24:29 -04:00
Keegan McAllister
7cb3c05b40
Cleanup / local var in hotkeys
...
(imported from commit 8df3d84495d0d50b0987037dceb8b16023866119)
2012-09-05 11:24:28 -04:00
Keegan McAllister
49704b84f3
Clean up select_zephyr
...
Eliminate some global variables, and other style fixes.
(imported from commit 95dfbaa024d709f5b98238afcf904f3e92c8a260)
2012-09-05 11:24:28 -04:00
Tim Abbott
08b55de0af
Add support for replying to huddle messages.
...
(imported from commit 21c760838fa87bf524ff178eab6473dfa3c6921c)
2012-09-05 11:19:31 -04:00
Tim Abbott
d13e7d5c2a
Clean up prepare_personal function.
...
(imported from commit 497ff1ff2162eba879728755cf37e6317530a641)
2012-09-05 11:19:31 -04:00
Tim Abbott
6e427d4aa1
Remove trailing whitespace in zephyr.js.
...
(imported from commit d003d9c337239e90f6dbda16f6624c42909a88b7)
2012-09-05 11:19:31 -04:00
Jessica McKellar
2694183a9d
Make clicking on a personals user narrow to the conversation with that user.
...
Previously, clicking would narrow to all personals. The gp hotkey
combo still does that -- we'll need to think about the UI for making
both types of narrowing easy.
(imported from commit acce1da52de1b9b757ef76a9734d61f399f81a01)
2012-09-05 11:03:53 -04:00
Luke Faraone
3db1766015
Fix broken narrowing on classes with keyboard shortcuts.
...
(imported from commit e829c55e88a57c4dbe4693c41f15eaf27a025daa)
2012-09-05 10:56:59 -04:00
Tim Abbott
2ff6a39976
Some huddle cleanups.
...
(imported from commit 244bfde4da2a4faeb150182f232937f0cb3a9a85)
2012-09-04 19:41:42 -04:00
Tim Abbott
4d284d8a92
[schema] Add support for multi-user personals ("huddles").
...
This is controlled by listing multiple comma-separate usernames in the
personal message sending box.
(imported from commit 06c9dadb7977b98f88ad31e5df453b59f1afad96)
2012-09-04 19:15:07 -04:00
Tim Abbott
84ece4b3fe
Combine the zephyr() and personal_zephyr() functions.
...
(imported from commit a39b70f019901d0dd6994d4c440002111e4c29e1)
2012-09-04 19:14:46 -04:00
Luke Faraone
974b560659
Add autocomplete for personals, classes, and instances.
...
Here we pull in the jqueryui library and a style sheet to provide a widget
to do autocomplete for various fields. We populate a list of all ever-seen
classes, instances, and people (C/I/P) into JS arrays and then pass them to
jqueryui.
Each time a new C/I/P appears, we reinitialise the autocomplete functions
so they will notice the new data.
(imported from commit f1ab69c99d21f68ccf40c015bd43960f463c6ff2)
2012-09-04 16:14:48 -04:00
Keegan McAllister
ac2553cdff
Replace get_state with a variable embedded into index.html
...
(imported from commit 3ef4a0163107248618a25e242ab30fdff5da17e0)
2012-09-04 13:01:00 -04:00
Keegan McAllister
e86216dff0
Add missing semicolons
...
(imported from commit f562f6e63368d5cb48ccba3b72981ff36a9cff30)
2012-09-04 13:01:00 -04:00
Keegan McAllister
9b5e47cd45
Don't select a zephyr until we've loaded them.
...
(imported from commit 04f72ae1e2ca67dfc1220baee11940008e0d2c91)
2012-09-04 13:01:00 -04:00
Keegan McAllister
2e8b1fa14a
Use client-side templating to render zephyrs
...
(imported from commit 5ac650c3df0fa8caa823407d9d1a65a38f7e63c6)
2012-09-04 13:01:00 -04:00
Tim Abbott
d85e80483f
Eliminate the dummy row.
...
(imported from commit 4f0cd12e77cbe4d6a29baed9902c7c7074fcff27)
2012-09-04 11:49:13 -04:00
Tim Abbott
87188e2575
Filter newly arriving messages by the current view.
...
(imported from commit db23824bfc584d3b1bc0d6239d04988ca1b3ca4a)
2012-09-04 11:49:13 -04:00
Tim Abbott
633aceb054
Keep track of the current narrowing rules.
...
(imported from commit 0af6fc38f0f17a57428f64570139171dbede30fe)
2012-09-04 11:49:13 -04:00
Jessica McKellar
f556702804
Add a missing semicolon.
...
(imported from commit c0676f077ee8655abd33a382cd01b0330eff4e82)
2012-09-04 11:38:10 -04:00
Jessica McKellar
e51ab0cdfa
Get pointer state from the server on page load, and scroll to that zephyr.
...
(imported from commit a1387d89378494a55f084f56ed9eb33c4f719dcb)
2012-09-04 11:36:36 -04:00
Tim Abbott
b784202128
Unify the various narrowing interfaces.
...
(imported from commit e2ddd5ae3ecaa385f1adf80b75a64534dd5b3950)
2012-08-31 17:58:20 -04:00
Tim Abbott
8506656df1
Fix bug in scroll_to_zephyr removal.
...
(imported from commit 4aca6534889012fd1b0e59dc88a156494b6ec51f)
2012-08-31 17:58:17 -04:00
Tim Abbott
6369da671b
Clean up narrowing code to all use the same pattern.
...
(imported from commit 7f213ccdb31522a0fcb63cb69e2ea7677e3b352c)
2012-08-31 17:16:39 -04:00
Tim Abbott
e4e3fde8a5
Rename narrow to narrow_class.
...
(imported from commit 8bd0f91ac7496d2da4706128b7d2c32acfad081c)
2012-08-31 17:16:09 -04:00
Keegan McAllister
115edb57b2
Eliminate tab characters from source code
...
(imported from commit 60c0742b8998ee08189b576b38cd0b4416f22b66)
2012-08-31 16:51:46 -04:00
Luke Faraone
cd5b623cfd
Reply to the recipient instead of the sender if replying to my own personal
...
Previously, if hamlet wrote to iago, and then hit "r" on his own message,
the form would prompt hamlet to reply to himself. Now, Humbug will DTRT and
prefill the form with iago instead.
(imported from commit cb3260d1d0bc89b184dac84ebf1e5642d0bc1606)
2012-08-31 16:50:24 -04:00
Luke Faraone
29a41d992e
Blur buttons on submitting a zephyrgram.
...
This way the user can continue using the keyboard to navigate
after sending a message, without pressing additional keys.
(imported from commit 014997194f546fe56da063e19d3818e949a3ee7e)
2012-08-31 16:29:00 -04:00
Luke Faraone
3223d2e0ba
Make scrolling Correct (a la Barnowl) without losing messages
...
Previously the wedge sometimes got lost when you scroll. Now, on a
scrolling action the selected message is moved in to the middle.
We also now use scroll_to_selected as opposed to scroll_to_zephyr because
there wasn't really a usecase for scrolling to a non-selected zephyr.
(imported from commit 5091b3a715f2253dfe302d4c7ea8a087ff9d508e)
2012-08-31 16:20:20 -04:00
Keegan McAllister
2d30c9440d
Retry if long polling fails
...
(imported from commit fc2d09976231974bf48efbcf5dfc480be36e26ec)
2012-08-31 15:33:04 -04:00
Keegan McAllister
d07a1b914c
Code style consistency
...
(imported from commit a5345b0fda9701c62b65c367f71ac871a7e15d60)
2012-08-31 15:04:15 -04:00
Keegan McAllister
57bdc40b87
Fix superfluous use of .html
...
(imported from commit 4f165669c1d09efa811169c26e1e7541fbfb45f6)
2012-08-31 14:55:28 -04:00
Luke Faraone
8342c2c2ee
Ensure that the ▶ stays after clicking on a selected message.
...
(imported from commit 2af024f0090383f429bd5727fe3ceb8b32cd2021)
2012-08-31 14:43:49 -04:00
Luke Faraone
6a7b183e06
Clicking on a Zephyr now sets the pointer to that Zephyr.
...
(imported from commit 2707f22997892c1414965c988a80609ef8d93388)
2012-08-31 11:10:19 -04:00
Luke Faraone
266f6397a2
Correctly handle 'r' for personals.
...
(imported from commit 7f60fbc6aa737d32d710b2ec2c5c9d6fe9b047e4)
2012-08-30 17:45:06 -04:00
Luke Faraone
148738447c
Select the value of "content" when replying to a zephyr.
...
(imported from commit ef8759911b602a67b594f085772d33251ad94dde)
2012-08-30 17:45:06 -04:00
Luke Faraone
833cf8b1ff
Implement hotkeys for filters, let ESC break out of input boxes.
...
Here we added code to enable users to use shortcuts like "g-c" or "g-a" to
go between zoomed-to-class and showing-all and related forms.
Documented on the wiki in (Hotkeys).
(imported from commit ee3bdf070a560d503c6537ccb1d213707bc11f66)
2012-08-30 17:45:06 -04:00
Luke Faraone
e9ee6e365a
Only allow hotkeys when not focused on input/textarea/button elements.
...
Here we bind to the focus and blur events to keep track of when elements
we care about are in focus. Elsewhere, we test whether hotkeys are allowed
before... using hotkeys.
(imported from commit 50f8f8cb4874209411db59512f77c8dd33d837f5)
2012-08-30 17:45:05 -04:00
Keegan McAllister
41adbfc92d
Allow the user to dismiss send errors
...
(imported from commit bcce5f0a1cdc0d5eec2586e72f8a5945574697ad)
2012-08-30 16:41:09 -04:00
Keegan McAllister
2313498891
Build zephyrs using DOM manipulation rather than string munging
...
(imported from commit 521fafe3a393ffffa215cee42519edeee8d48b3f)
2012-08-30 16:41:09 -04:00
Keegan McAllister
d57d19e562
Move all zephyr HTML generation to the client
...
(imported from commit 3afec768a5cd220c14ce615e03c29ee22754fdf2)
2012-08-30 16:41:09 -04:00
Keegan McAllister
ddacce81b7
More responsive UI for sending messages
...
(imported from commit 8a6c4e78788f46dde4fe166e17828eb9e7bdcaff)
2012-08-30 16:19:44 -04:00
Keegan McAllister
a1a7291fe5
Send zephyrs via Ajax
...
(imported from commit cdfd69079212d36a9e4e9d2d01dc7b6a93b6a4e0)
2012-08-30 16:19:44 -04:00
Tim Abbott
9afd63692f
Implement long polling using Tornado.
...
(imported from commit 4385304b27d7fe55a57a23133cd214fe8fc33482)
2012-08-30 14:29:34 -04:00
Keegan McAllister
9714cf920e
Focus first text field on tab switch
...
(imported from commit 10b03b741f689d6dc80c968c7e057d72a88fb12e)
2012-08-29 17:25:04 -04:00
Keegan McAllister
556837d3a6
Indicate clickability on labels
...
(imported from commit cc3c48879d50c0808d465492c20a887bef408a91)
2012-08-29 17:25:04 -04:00
Jessica McKellar
a47adef065
Add missing recipient textarea to check for focus.
...
(imported from commit e7af941dbc0e76d54f573b3b6dd92ae3331394d8)
2012-08-29 17:23:28 -04:00
Jessica McKellar
d85c0d6ad8
Suppress displaying the 'r' in the content box on r-to-start-composing-zephyr.
...
(imported from commit 1216b3739737a9dbf203fe105b16c6672bccd272)
2012-08-29 17:09:33 -04:00
Jessica McKellar
ebb08446e2
When you hit 'r', only try to start a zephyr if you weren't in the middle of one.
...
(imported from commit 36779bf955e28c3a10713829e93cd207fbbb36f3)
2012-08-29 17:08:16 -04:00
Jessica McKellar
a8fa6b156a
Turn newlines into linebreaks.
...
(imported from commit 67999641a8cff471be1430e421f259b1c558444d)
2012-08-29 16:47:53 -04:00
Keegan McAllister
13ee85f886
Enforce minimum height for main_div
...
(imported from commit 291e5e0fc8680db63dec55b7339c4fe72d6acb76)
2012-08-29 16:32:12 -04:00
Keegan McAllister
a0e59fbbc9
Narrow on all personals together
...
(imported from commit 2dc2646344767acbda7f1d8d6f847f8a69d597cf)
2012-08-29 16:23:56 -04:00
Keegan McAllister
452b218ab6
Hide personals when narrowing on class or instance
...
(imported from commit 1bd5a8ea05fcb6e3d8c7b68821faa9664cf5586b)
2012-08-29 16:02:26 -04:00
Keegan McAllister
03a087a654
Rework display of personals
...
Code cleanup, and add an arrow to indicate sender and recipient
(imported from commit 24881ee1e5f3bc9209f9ec485195dcd7178d86fb)
2012-08-29 15:53:38 -04:00
Keegan McAllister
6e88482977
Remove debugging code
...
(imported from commit 6e128f9f97fd433464bf14fc728d577e7e4fa0e4)
2012-08-29 15:40:30 -04:00
Keegan McAllister
6832fa9489
Use 'BLACK RIGHT-POINTING TRIANGLE' for the 'selected' indicator
...
(imported from commit 713b24521f080e7772991d2d9808324ef6219ac5)
2012-08-29 15:40:10 -04:00
Keegan McAllister
738ed46941
Factor out the HTML for #selected
...
(imported from commit 2de461dca6ee22bcb701e0c5c2ec49bbcad496e4)
2012-08-29 15:40:09 -04:00
Keegan McAllister
a2777eaed4
Resize main_div to exactly take up remaining vertical space
...
Unfortunately, it's not so easy to do this with CSS only.
(imported from commit 93b58a53e20aae9ee651aa66b3163f68549a3982)
2012-08-29 15:40:09 -04:00
Keegan McAllister
a1d852d124
Jump to personals tab on prepare_personal
...
(imported from commit 5f3fbc7a84a0af6742ceb1f1ab8806234870445f)
2012-08-29 15:40:09 -04:00
Keegan McAllister
395001d8db
Indicate narrowing
...
(imported from commit 19682fc07393f0848481abf72339eefd56b30ab2)
2012-08-29 15:40:09 -04:00
Keegan McAllister
1b587fc2c6
Style class / instance / username labels
...
(imported from commit 2e0c9d72aa17971bdc12750dad62a59c46f646f1)
2012-08-29 15:40:09 -04:00
Jessica McKellar
1f56ac9e60
Make the zephyr highlighting for new zephyrs consistent with those on page load.
...
(imported from commit 28dbdb564b4dff479af1f71551a393f8dd54d597)
2012-08-29 14:54:00 -04:00
Tim Abbott
cc01ad04bf
Move javascript into its own file.
...
(imported from commit b0e9a5e2700e85f31f8cd5922ab489000c96781c)
2012-08-29 12:04:57 -04:00