Commit Graph

592 Commits

Author SHA1 Message Date
Zev Benjamin a85c1f62d2 Visually distinguish when a message is persistently vs. temporarily selected
(imported from commit d626b3460a3a3ad46bd9ebfb65d73a6c267c2251)
2012-10-15 13:25:39 -04:00
Zev Benjamin 0bf78df2f6 Display full names in narrow description for huddles
(imported from commit 665df20d129df4d7e516f145f064b90c6e0f34af)
2012-10-15 13:25:39 -04:00
Zev Benjamin b42cf1d4c8 Fix persistent message selection across narrows
(imported from commit 958ce299108f8bbc8579e7446053d7fc9f018b81)
2012-10-15 13:25:39 -04:00
Tim Abbott cd14988b47 Reset the failures count to 0 when restoring from suspend.
(imported from commit 11b03f8a0565063cc7381dd32a96af79bd26a0d1)
2012-10-15 13:20:54 -04:00
Tim Abbott 4062550ef7 Fix tab not toggling the compose window in Firefox.
(imported from commit 4dfd3d6eb3e81c519d0aefbfe0b3b1390adb241b)
2012-10-15 10:45:31 -04:00
Tim Abbott db3c40fad1 Don't display yourself on list of huddle recipients.
(imported from commit 17919c153ad380adbb0a9dc2c111ea1686603414)
2012-10-12 18:41:04 -04:00
Tim Abbott ec1533b0b1 Fix display of huddles.
(imported from commit c894411331fd0fa905d0c72d5cfa78317fad8c2b)
2012-10-12 18:37:34 -04:00
Tim Abbott 89aa539024 Display fullnames for headings on huddles and personals.
(imported from commit bfd296bd962b6c44d4da3e5dfa1a6791c4c46b8a)
2012-10-12 18:35:28 -04:00
Tim Abbott 41e935fd28 Send the sender_short_name to clients.
(imported from commit 1652f5cadbe9c90d4c6d53c97cb23305aaaaa34d)
2012-10-12 18:35:28 -04:00
Zev Benjamin 827cc31aa7 Be more efficient about adding new people to the people list
(imported from commit ff0a891fd8f60b01308c6be21d3f8eb645d4ee31)
2012-10-12 18:18:04 -04:00
Zev Benjamin 09deef9611 Improve autocomplete for multi-person huddles
(imported from commit 3dacbc6b8c8470177844987e509bc1d413a10766)
2012-10-12 17:29:52 -04:00
Zev Benjamin bc4487ebf9 Fix autocomplete
There were two issues:
* The people_list population changed and I failed to noticed
* Typeahead source updating never worked before because calling .typeahead()
  more than once does not change the data source

(imported from commit fda14029f4cd37260d82e7bb5689f5022e1b0d28)
2012-10-12 16:57:27 -04:00
Zev Benjamin 35342481dc Scope subject autocomplete to the stream
(imported from commit 6e9972c93d5f56f29db37b522e20768b8fb641df)
2012-10-12 13:15:06 -04:00
Zev Benjamin 88009b4854 Auto-complete huddle names based on full name.
This also makes the people_list a list of objects containing the person's full name and email.

(imported from commit cff9b3de8cab0c9b2690ffa60d65d666302b989f)
2012-10-12 11:35:45 -04:00
Zev Benjamin c4d35280ea Make Message's display_recipient field be an object with consistent names for both personals and huddles.
(imported from commit 8b00f16b036ed3fb3f7d56e7393271ec1d458ea5)
2012-10-12 11:34:42 -04:00
Waseem Daher 22099dfe9f Fix scrolling bug related to resize.
When Bootstrap shrinks the divs down into 'tablet' mode, our selected
message might end up being even lower in the screen than it was before
(because more text wraps). But our scrollbar does not automatically
advance to keep it in view -- so we do it manually.

This implementation is a little hackish in that it does some
unnecessary recenter_view-ing in big views (which can be a touch
disorienting) to optimize recentering on resizing for small views.

If that behavior is annoying, we can deal with it by being
smarter about when we trigger the recenter code.

(imported from commit 6834e11f7a37833982c388f15174df661d7f55b3)
2012-10-12 00:17:24 -04:00
Waseem Daher 04b0000d83 Embarrassing typo fixes.
(imported from commit 0ea86386e3d4269be63610f4729b1f1762cdc0b7)
2012-10-11 22:49:18 -04:00
Waseem Daher 3853bf6dd8 In case we start out very small, trigger resize handler on page ready.
(imported from commit b3492eee7299e89ded422527facf9c8e44421c73)
2012-10-11 22:44:28 -04:00
Waseem Daher 7d155850a9 Have the navbar,composewindow,narrowbar look OK in small windows.
(imported from commit 724ecfee79a263919e93c47513332ffdd3c6d286)
2012-10-11 22:44:28 -04:00
Zev Benjamin adf75d48e1 Make pressing escape also un-narrow
(imported from commit 17d2cc3e8074af332f98588ad201ec342476d51f)
2012-10-11 14:30:51 -04:00
Tim Abbott ac3f4393ff Rename instance to subject.
(imported from commit 6b4693da03f106448c137cf81cf9801cac44f2b8)
2012-10-10 18:01:39 -04:00
Tim Abbott 8dca315a18 Rename s/class/stream/ in code local to various js files.
(imported from commit c441f9d7d4155ff3c4b171a2a4a3db4ffbb60ac4)
2012-10-10 17:48:18 -04:00
Tim Abbott 5509419084 Rename #class* to #stream*.
(imported from commit a8f15f636f3801ba1152f1020e885240984d070e)
2012-10-10 17:48:17 -04:00
Tim Abbott 98ba39700c Rename is_class to is_stream.
(imported from commit 6a68581c8a3ab72b13907af651a772a4a190ac40)
2012-10-10 17:48:17 -04:00
Tim Abbott 873f8fd2bb Rename class-message to stream-message.
(imported from commit fe69222bdca28bab303adca8ea8448a6aac35e40)
2012-10-10 17:48:17 -04:00
Tim Abbott 413fdeb655 Rename class_name to stream_name.
(imported from commit e610f5de5edf756ef0a71c5361fcd507adbb1605)
2012-10-10 17:48:17 -04:00
Tim Abbott ef3b8a2ce5 Rename class_list to stream_list.
(imported from commit c9f5b10acdb20d3e923cf7f32bc5a3f37aa40705)
2012-10-10 17:48:17 -04:00
Tim Abbott 081f82c50c Rename narrow_class to narrow_stream.
(imported from commit 4654718c1226f7d0d945436f8dafdfa64d74c92c)
2012-10-10 17:48:17 -04:00
Tim Abbott 08e832e093 Change send_message to accept a stream, not a class.
(imported from commit 0f58de2502bec227f5f33e44692d03f2f28d6f63)
2012-10-10 17:48:17 -04:00
Tim Abbott 44e9e4cebf Rename Recipient.CLASS to Recipient.STREAM.
(imported from commit a530194163f7260c73921137fa1ff671f14516f6)
2012-10-10 17:47:13 -04:00
Tim Abbott 8daff2e05e Rename ZephyrClass to Stream.
(imported from commit ae51b7a9e03f322dfe2dfccd250cbfc23adfe32e)
2012-10-10 17:47:12 -04:00
Jessica McKellar c4dd4ea06f Clear compose error messages on New Message or message type tab toggle.
Also highlight a useful input box on tab toggle.

(imported from commit e046cd077039b42069e866267038b92536a05e1b)
2012-10-10 16:59:20 -04:00
Jessica McKellar 19823bdec8 Add a watchdog for your laptop waking up that wakes up polling more promptly.
Without this, if you suspend and resume you wait up to 90 seconds for
long polling to retry.

(imported from commit 5e964c357f395d30107af5b2c934949058c0d3a8)
2012-10-10 15:09:16 -04:00
Waseem Daher 48cda57d84 Fix issue where arrowing-down near end of page would skip a message.
We had this fascinating behavior where pressing a down arrow near the
end of the page would advance the pointer, call recenter_view, which
would trigger a scroll event, which would call keep_pointer_in_view,
which would notice that we were at the end of the page and advance the
pointer again!

I split out that last part into its own function which is only called
on mousewheel events.

(imported from commit bc85443e762356e3055f8f88585940a1f11f9124)
2012-10-10 14:29:15 -04:00
Tim Abbott a0bb0d257b Set the URL to include which subpage we're on.
(imported from commit 9f7d3db53477a294ec72762dcc278341c4d183c7)
2012-10-10 14:22:19 -04:00
Tim Abbott 18cd32b042 Rename zephyr=>message in remaining local variables in zephyr.js.
(imported from commit 5641ea31b03079e9a0910b2c8451e961cc7cb285)
2012-10-10 10:35:48 -04:00
Tim Abbott 21260d0aca Rename zephyr=>message in add_zephyr_metadata.
(imported from commit 3b174cc645baa00023164c3407bec95e556cc6de)
2012-10-10 10:34:42 -04:00
Tim Abbott 42c05b9690 Rename the zephyr template to the message template.
(imported from commit c15e2cc08d3604a82d90a96efa4f70d101971df4)
2012-10-10 10:32:59 -04:00
Tim Abbott 2170c7a352 Rename zephyrs to messages in various local variables.
(imported from commit 91ac7e47c51fdcaf6559b06f07e36b041aad3e2c)
2012-10-10 10:29:48 -04:00
Tim Abbott 27b84f7705 Rename zephyr_row to message_row.
(imported from commit 5975c7fe5e792ec294e55764581474fa55f62b70)
2012-10-10 10:27:59 -04:00
Tim Abbott 0c89972c54 Do zephyr=>message rename for local variables in dom_access.js.
(imported from commit f6160f56730301c9e8e00e5edf79914d42eceeaf)
2012-10-10 10:24:02 -04:00
Tim Abbott dde773c7b5 Update comments in hotkey.js zephyr=>message.
(imported from commit 648fc45a8c6324d57c2c9e57f12bf162b438758f)
2012-10-10 10:22:10 -04:00
Tim Abbott 5e2d3ab74b Rename zephyr_mousedown/zephyr_mousemove => mousedown/mousemove.
(imported from commit e479ae44fd18099dc616591cef740c382dd7e0d0)
2012-10-10 10:21:40 -04:00
Tim Abbott a0f702089d Do zephyr=>message rename for local variables in ui.js.
(imported from commit d101787903ec1fdbf2a644739d4f63c2ae8fb41e)
2012-10-10 10:20:48 -04:00
Tim Abbott 26b5c11d64 Rename get_zephyr_row to get_message_row.
(imported from commit 2480b0bfe0be58cdb6bdf687760967b26ca38558)
2012-10-10 10:19:46 -04:00
Tim Abbott 06ffd206ae Rename respond_to_zephyr to respond_to_message.
(imported from commit 34e7793601ad6f41d71be2e2060c58138b9d3b53)
2012-10-10 10:18:51 -04:00
Tim Abbott 9a359c8d05 Rename selected_zephyr_* to selected_message_*
(imported from commit 04025c4472b893ce12764775e10c1dc89850b639)
2012-10-10 10:17:58 -04:00
Tim Abbott 75e01a3e62 Rename persistent_zephyr_id to persistent_message_id.
(imported from commit f8eca5fcec920f61aaf59b91ec7d11722da62164)
2012-10-09 22:42:20 -04:00
Tim Abbott ae97a88e72 Rename selected_zephyr_id to selected_message_id.
(imported from commit bbb368efdd5010b6dfdaaf60f3f48904b40671af)
2012-10-09 22:42:19 -04:00
Tim Abbott 363c658896 Rename zephyr_comp to message_comp.
(imported from commit 752b669c3298dd791ba26de9fd815faa1b4e8a73)
2012-10-09 22:42:19 -04:00
Tim Abbott 836971d3b3 Rename zephyr_content to message_content.
(imported from commit 05e255ec275a8aeaf3967d6a4305cc4440c81913)
2012-10-09 22:42:19 -04:00
Tim Abbott 760b540e55 Rename zephyr_sender_{name,email} to just sender_*.
(imported from commit 9bfa197a391e5dbdabf616244afb3634cdab1921)
2012-10-09 22:41:17 -04:00
Tim Abbott a62cd32107 Rename zephyr_compose* to compose*.
(imported from commit 103351bbdb7657720d7b7b9f57ee88e5957d09a4)
2012-10-09 22:41:17 -04:00
Tim Abbott f66124cbe2 Rename select_zephyr(_by_id) to select_message_*.
(imported from commit 91619adf0e610017fbef52d2796020cb16537653)
2012-10-09 22:40:13 -04:00
Tim Abbott f1e90cde8c Rename zephyr_dict and zephyr_array.
(imported from commit 5d93fddc1758c0ee47390cfe599732a60a8d817a)
2012-10-09 22:40:12 -04:00
Tim Abbott 78c303e44a Rename zephyr-type-tabs to message-type-tabs.
(imported from commit 623d226209bc6cbe20721be08a271e52185ea65e)
2012-10-09 22:40:12 -04:00
Tim Abbott dfc0b1a4d9 Rename next_zephyr local variables to next_message.
(imported from commit 88f3b5dc3fdde3340dcc4f040cf8ecc8554955bb)
2012-10-09 22:40:12 -04:00
Tim Abbott 864a26acd6 Rename the new_zephyr text area to new_message_content.
(imported from commit b5d09625a9c50865be7a6401e8da95efe06410fc)
2012-10-09 22:40:12 -04:00
Jessica McKellar fb62e808d7 Use an associative array for faster subscription checks.
This also helps us manage checking, case-insensitive, for
subscriptions while preserving the casing used by the class creator
for display.

It also fixes a bug where the class_list would become out of sync with
your true subscriptions, allowing you to appear to send messages to
classes to which you had unsubscribed.

(imported from commit 5e8d017bcfb27a71c52f7517733eda7b926d721b)
2012-10-09 17:28:21 -04:00
Tim Abbott 2f910a1629 Show success messages on the subscriptions page.
(imported from commit 771fa4459e6a09ffc4132ccff12372b204334de2)
2012-10-09 15:44:55 -04:00
Tim Abbott bcd958f051 Hide all status error messages when switching tabs.
(imported from commit 184802bc3bf5c02f992486353c7209d4c5d99b17)
2012-10-09 15:44:29 -04:00
Waseem Daher 8a620cb687 Group chat -> Huddle in narrowbar.
(imported from commit aa437792584849d008274886c6a0ca1858fb8ba7)
2012-10-09 15:11:10 -04:00
Waseem Daher e7dab1f757 Set title text in narrowbar as well (this lets us mouseover if it gets too long).
(imported from commit be1e1f604016c2964d7b89cc50bfbc4113215819)
2012-10-09 15:10:20 -04:00
Waseem Daher 86dfc93f96 Reintroduce composebox animation.
So what's now happening here is that the outer div (which we were
previously animating) doesn't get animated at all; instead it is
simply made visible or hidden.

I *believe* this means that it always continues to take the same
amount of space in the DOM; its being added and removed seemed to
cause a slight height-of-page change which caused the scrollHandler to
fire, causing the selected message indicator to move down the page.

So now that this height is fixed, we achieve the animation instead by
animating the inner div -- the one that actually contains the
composebox elements.

(imported from commit 95b2f95d52254e3792633460f42efaac27559efe)
2012-10-09 14:25:18 -04:00
Waseem Daher 8083a149b8 Fix selected-message glitch on composewindow by removing animation.
The issue with the animation is that it removes the composebox div
when it's done -- or more relevantly, it "adds" it when the composebox
appears, which causes some DOM elements to get reshuffled slightly
which causes some jitter.

(Similar to what was happening with the email addresses earlier.)

So instead of using display:none, we play with visibility:hidden,
which causes the thing not to show up, but doesn't cause it to
lose its place in the DOM.

(imported from commit a18dbdcd1784b2b54436d48d8425d5fdc8dfbba4)
2012-10-09 14:25:18 -04:00
Tim Abbott 48a0c65bd6 Clear the class/instance values when replying to a huddle message.
(imported from commit 8953c6a8911503b4d938588e94d2323773f21c6c)
2012-10-09 14:18:55 -04:00
Tim Abbott d5c89ffe9d Fix needing to hit escape twice immediately after hitting "c".
(imported from commit 8132d61c14bcd012239c4364a249c3e52dd488c3)
2012-10-09 14:13:58 -04:00
Tim Abbott 1defb363e5 Disable hotkey processing on non-home pages.
(imported from commit 0865d2962e94d80cd1451e696e98ca6f9630ba1b)
2012-10-09 14:11:22 -04:00
Tim Abbott 5568e1a79c Move hotkey.js jslint globals into check-all.js.
(imported from commit ec737e658e9f2251025e493abb92e4cf2a7aab72)
2012-10-09 14:11:22 -04:00
Tim Abbott a5c8b5dc7e Detect whether the user is currently in an input area correctly.
Rather than trying to keep track of whether the last thing that
happened was an input area being focused (which had all kinds of
bugs), just detect whether we're in an input area using the
appropriate jquery selector.  Hopefully this has OK performance.

(imported from commit 6150692ffcb0ab9b04244c3d053b5527847ded2d)
2012-10-09 14:11:22 -04:00
Jessica McKellar ad213fc810 Fix focus on create/sub buttons if you try to send to a new/unsubscribed class.
This is a regression introduced by switching from links to buttons,
which get blurred by hide_compose.

(imported from commit f5aa67cb949f3edc7f86a0ef0d7f48b43860138b)
2012-10-09 14:06:56 -04:00
Jessica McKellar 6050a0a251 Advance focus to the next input field after autocompleting class or instance.
(imported from commit 068009946f0581834e268f1ed3d5e7e6a940fcde)
2012-10-09 11:45:46 -04:00
Jessica McKellar e351439d0b Don't have clicking on a sender prepare a personal.
It is confusing, and clicking on it should behave like clicking
elsewhere in the message.

(imported from commit e56434e8e143f6fa58b095e1c7d311b4aa24313f)
2012-10-09 11:01:28 -04:00
Tim Abbott ad9f58d90a Rewrite respond_to_zephyr.
The new version is now the only codepath that we use in order to start
a reply to a message.

(imported from commit dd28316d2640fd5fd712f326690d480b7db59c4c)
2012-10-09 10:40:27 -04:00
Tim Abbott 19a0e4a690 Fix totally backwards comparison and don't recompute the result.
(imported from commit 90b6711b668449aa550e1fdd6412030866e459aa)
2012-10-09 10:27:52 -04:00
Tim Abbott 67c08dfaf2 Set huddle_recipient even when replying to class messages.
(imported from commit dc91d66d87fb1b4c70d7b1842b733282c80b3e4a)
2012-10-09 10:27:52 -04:00
Tim Abbott d510a62976 Rename huddle recipient field to #huddle_recipient.
(imported from commit 8670f06679aa1554003aa2832dec3ed6d00ad1c3)
2012-10-09 10:27:40 -04:00
Keegan McAllister 94e542e3de Modify the right table in add_to_table
(imported from commit 0b4171556cff1e1e46ab1e3c64ec8bc74ac45576)
2012-10-06 17:43:09 -04:00
Jessica McKellar 321c2df67e Autocomplete on each recipient when composing a huddle.
(imported from commit 0a95f431d960f8a39544d4598fd859a8090fbfa3)
2012-10-05 19:41:28 -04:00
Tim Abbott 358351d423 Use the new_zephyr form for personal zephyrs, rather than a duplicate.
(imported from commit 741a785efba9ea40b5c1022d710360f086a2d859)
2012-10-05 17:44:55 -04:00
Tim Abbott 71d87499d8 Fix bug where hotkeys would still work in the compose box.
Just for the record, here's what happened:

If you click on a class message to start a reply, then click outside
to unfocus, then click on a huddle message to reply to that instead,
the system would end up calling the focus handler twice and _then_ the
unfocus handler once (why are we unfocusing something?  Because we
have two compose windows -- new_zephyr and new_personal_zephyr, and
we're switching between them).  the end result is that we'd re-enable
hotkeys with that unfocus handler.

Fix this by being sure to explicitly disable hotkeys after we setup a
reply to a message.

(imported from commit a7735d9a63f0c3c9f6c12d94e8bb107bf3675f44)
2012-10-05 16:38:09 -04:00
Waseem Daher 56bb7ae614 Make extra room when you press down on the last message.
This essentially reverts commit 0d6c3e4d0a70e06b9b2f6e5830b3a9650e44441a,
though also adds support for this behavior with the 'j' key.

(imported from commit 36c51e0f6bd03c53b84abddc75097cb06fc04e16)
2012-10-05 16:32:47 -04:00
Jessica McKellar a282f7b32b Have PageDown at the bottom/PageUp at the top select the last/first zephyr.
As opposed to inching towards it message by message.

(imported from commit 31e833dd06bf27336d9b1f293ab992e99537bc21)
2012-10-05 16:06:10 -04:00
Luke Faraone 6e4daba2aa Implement respond-to-author bound to the 'R' keypress.
(imported from commit d38b57d175a10423c566549371ae70032b02c29d)
2012-10-05 15:53:40 -04:00
Luke Faraone b16c3f1982 Make hotkeys case sensitive.
Previously we triggered all hotkeys on keydown. Now, if the keydown event
is in the range of a character we bail and wait for it to be handled by the
keypress function instead.

We also redefine all of the keycodes for characters to be their lowercase
versions.

(imported from commit 534199de92174c2858220abb21ce774e1ee0e1d3)
2012-10-05 15:53:40 -04:00
Luke Faraone 6094f46b3a Rename simulate_keypress; we're really faking a keydown event.
(imported from commit 2574afb738787311bc32885d36eaed862925d39c)
2012-10-05 15:53:39 -04:00
Tim Abbott c02c6cc954 Display the date when either it or the recipient changes.
This is somewhat experimental and we may need to work on the condition
when it shows up (or move it elsewhere).

Also, maybe it should say "Today/Yesterday" for times super close to
now -- the main issue with doing this is whether it needs to update
without your reloading the page to avoid being super confusing.

(imported from commit e29faf30c83b9574e5d233213f42a24175f9a616)
2012-10-05 15:44:15 -04:00
Tim Abbott fc71233b9a Show the sender line again if there is a delay between messages.
(imported from commit fffdb5d5fb5804c44af24e8e8037a7b4af14833a)
2012-10-05 15:42:54 -04:00
Waseem Daher 0c3ace82d5 Use throttling on our handling of scroll events.
This actually is a bit cleaner than our last approach,
because (I believe) we run our scroll handler code
even after the final scroll event, which prevents the
pointer from getting hidden by rapid scrolls.

(imported from commit 3bde4e8f067cd2406f90c04425c6e4ffb81ea784)
2012-10-05 15:39:10 -04:00
Jessica McKellar 7a88fd71e6 Fix broken math for scrolling at the top or bottom of a stream.
(imported from commit 2ba6ab58800b86cd5b31a1b6e235c0be51d985c1)
2012-10-05 14:50:28 -04:00
Jessica McKellar 3166921057 Implement Barnowl-style pointer centering.
This keeps the pointer in the middle 3/5ths of the screen and
asymmetrically handles going above or below those bounds.

(imported from commit 9a6033f53365e6d6cd8f82eb096af849e3b22542)
2012-10-05 14:50:28 -04:00
Waseem Daher 0eb6817d6b Remember scrollbar position as you switch tabs.
(imported from commit d71112acd81901fd5e6c6d8ddfae3c9f0a8ff4db)
2012-10-05 14:25:27 -04:00
Waseem Daher 32758e2e4b Don't have scrollhandler fire when the 'home' tab isn't active.
(imported from commit 242591730e5ce108c511e4eeaad7589d768b1b94)
2012-10-05 13:35:23 -04:00
Luke Faraone 8fc22ab5b4 Clicking on a zsender should populate the stream box, too.
(imported from commit d933053c9b081457cb523d90fee4daa0cc65fae1)
2012-10-04 17:59:04 -04:00
Keegan McAllister 8bf693224c Fix up attributes on links (whether auto-linkified or not)
(imported from commit cf362db2a2c9500f62b03a89055ac4585ba00a96)
2012-10-04 16:52:10 -04:00
Keegan McAllister 2ebd708a8d Remove client-side linkification
It causes problems when [un]narrowing, and we already do the rest of formatting
on the server side.

This reverts commit 90af0192b37bbebbf56d5e7c50f182485ddbca10.
This reverts commit df7e355648d2c4d6319de049933547ed96402fd8.

(imported from commit 99d87f0826ec2f49741f86fad6524ed93e76723f)
2012-10-04 16:52:08 -04:00
Waseem Daher e28373ec13 Properly handle refocusing pointer on both scroll and mousewheel events.
When you're at the top of the page, you don't get scroll events
anymore if you're scrolling with a mousewheel. So we need
to listen to mousewheel as well as scroll.

(Why not *just* mousewheel? Because then the scrolling done by
 PageUp and PageDown no longer causes the pointer to refocus,
 because those trigger scroll events.)

(imported from commit 4ee23004f6e090abaabb836f0a9d7b59d0394ced)
2012-10-04 15:47:21 -04:00
Waseem Daher 93dbb21aff Prevent glitching on scrolling.
This duplicate call to scrollTop is the source of our problems.

(imported from commit 4374e0837d2af5eb20545449469fade7b5d47aca)
2012-10-04 15:47:21 -04:00
Waseem Daher 14daa08726 Restore scrolling behavior in this brave new scrolltheworld world.
There still seems to be some glitching when arrowing around,
which still needs some investigation.

(imported from commit 9c4d8f2b0b55fda5077e2fba70cbe4bcd50b823a)
2012-10-04 15:47:21 -04:00
Waseem Daher fe3fcd334e Remove dead code.
This code is the start of something that would make your
narrowed-on message remain in the same place post-narrow,
which is possibly a good idea.

(imported from commit 0a557d6492de470928245b33f95ae8c0102db0a6)
2012-10-04 15:47:20 -04:00
Waseem Daher 0fcec1aad9 Remove high water mark code.
(imported from commit 308148b2b54709354d219fd7c0ba1ae63f7e7503)
2012-10-04 15:47:20 -04:00
Waseem Daher c7175f5f43 Delete code that repositioned window on last message.
I believe we'll get this for free with the new version of
select_zephyr and our bottom_whitespace div.

(imported from commit 0d6c3e4d0a70e06b9b2f6e5830b3a9650e44441a)
2012-10-04 15:47:20 -04:00
Waseem Daher 1f669e1c85 Do a little handling of Home, End, PgUp, PgDn ourselves.
It turns out it's marginally easier for us to completely handle Home
and End ourselves rather than let the browser do it, because home
scrolls to the top of the page, but it does not select the topmost
message.

With PgUp and PgDn, the default browser behavior is fine,
but it seems like PgUp on a screen where you're already
"scrolled to the top" should not be a no-op.

(imported from commit 609d639f3a4313e75e1fd6138966f15447b70f2e)
2012-10-04 15:47:06 -04:00
Tim Abbott 2a79ff0cc8 Rename 'zephyrs' => 'messages' when formatting a message list to send to clients.
(imported from commit bfbb556f2444aca8277f54c363eccb678b6bf2dc)
2012-10-04 14:42:38 -04:00
Luke Faraone 15a99f6be2 Remove errant console.log.
(imported from commit 3cfb7991e01417274387ab0e36c1c950a0a865c6)
2012-10-04 13:33:59 -04:00
Keegan McAllister c456e2850a Allow console.log in debug.js
(imported from commit fe965c9687f0080c639ab3526b245ca3304e5672)
2012-10-04 12:36:59 -04:00
Keegan McAllister f30f10b71d Remove console.log calls in get_updates
We haven't needed these lately.  If we see more problems that need diagnosis
"in the wild" then we can revert this commit.

(imported from commit 3885183d08aefa1f7fd7aa8c2c060e917bf215fb)
2012-10-04 12:35:53 -04:00
Keegan McAllister c1c8ce9e53 More style fixes for signup.js
(imported from commit 15303c4e0dbf342da752d5f215cbcb0e8c6652f5)
2012-10-04 11:05:34 -04:00
Keegan McAllister fcfcf834a1 Replace 'in' with .hasOwnProperty
(imported from commit 209aef184f0a6117d1c14e755e7b916a866b8702)
2012-10-04 11:04:26 -04:00
Keegan McAllister bdf1e7e25c Introduce a function for controlling whether keydown is interpreted as message input
(imported from commit 88194bf560257ec0c4033076703d24c670a2c4ba)
2012-10-04 11:04:26 -04:00
Keegan McAllister 46a788202d Move go_to_high_water_mark back to zephyr.js
(imported from commit 843199811bf16afd4b54c2b0467b3b18d431b73a)
2012-10-04 11:04:25 -04:00
Keegan McAllister 0830799ce4 Move persistent_zephyr_id to the file where it is used
(imported from commit 1960e61b638a7c2eb832648b71d6f49f6b409b36)
2012-10-04 11:04:25 -04:00
Keegan McAllister c944c08e79 Drop JSLint directives
(imported from commit 5a091b4cb23bae5c307ad19cb772b878d605fbfe)
2012-10-04 11:04:25 -04:00
Luke Faraone 120d0aa99d Validate the register.html page.
(imported from commit 10ce8b637ae40ab733c01c2adbf6a2ad61a85d82)
2012-10-04 10:59:43 -04:00
Keegan McAllister 2f749afc8d Tweak JSLint options
(imported from commit 7e7582a48228b879ea29c2a27eb22e46e093f9dc)
2012-10-03 18:26:00 -04:00
Keegan McAllister 1cbceeec87 Fix more problems uncovered by lint
(imported from commit 7fb8432f362f22770334e6bd1161a61b0bc0e528)
2012-10-03 18:26:00 -04:00
Keegan McAllister 9c6bf90fad Misc. style fixes
(imported from commit b1f32a19a280e3efacf207bfe22bd10eb3aec537)
2012-10-03 18:26:00 -04:00
Keegan McAllister d4217b4383 Add jslint options to each file
(imported from commit f49cdbfd655d8d8fdff792f525c7abc58951dacb)
2012-10-03 18:26:00 -04:00
Keegan McAllister 8e47b33645 Move still more validation
(imported from commit a98d145168abc743888fb4a88dc00c925f138b00)
2012-10-03 18:26:00 -04:00
Keegan McAllister 2508e87d03 Fix an undefined variable
(imported from commit ed2432b4414617e97d61c84c9636e771e9c05b81)
2012-10-03 18:26:00 -04:00
Keegan McAllister 534cf77265 Simplify validation logic
(imported from commit aec56185fae88c3c51611a15fc11d44fa120951e)
2012-10-03 18:26:00 -04:00
Keegan McAllister d619618fed Move more validation
(imported from commit 62d660a3c34f4aeb170771ee85580362a2c1b8a7)
2012-10-03 18:26:00 -04:00
Keegan McAllister 0c76788ed5 Move some validation functions
(imported from commit e482108981b2b4caa6159060729766b4d224db23)
2012-10-03 18:25:59 -04:00
Keegan McAllister c2ddde2053 Move some settings stuff into ui.js
(imported from commit dea0a6fac11fb3349ac09e90c01d9313ee69c001)
2012-10-03 18:25:59 -04:00
Keegan McAllister ffff63eaad Move some subscriptions-related code
(imported from commit 49f6e525e3aa8a7a5336f713c94e81fee6546dfa)
2012-10-03 18:25:59 -04:00
Keegan McAllister 8d17de1247 Move some early setup code
(imported from commit ca57718e4a71f43bbf229d2a6e8c70174bb3583f)
2012-10-03 18:25:59 -04:00
Keegan McAllister 50d84e9ca8 Move some UI-related code
(imported from commit 28dc554ed91c14f8a8b4be282a211d3d50cf9873)
2012-10-03 18:25:59 -04:00
Keegan McAllister 37f8445318 Split more files out of zephyr.js
I would like to have split this into several commits, but it's hard to do
incrementally, because functions need to be defined before their use in global
data.

(imported from commit 31533396b236f3b657950b073982c317256f082a)
2012-10-03 18:25:59 -04:00
Keegan McAllister f2a73985c9 Fix my own variable typo (whoops)
(imported from commit d12467db2756281fe0710645825c54c269ab6781)
2012-10-03 17:39:14 -04:00
Keegan McAllister db224c1c24 Fix other problems in signup.js
(imported from commit c4562cae29a635454990f093932ff8dd9879ead3)
2012-10-03 17:34:53 -04:00
Keegan McAllister d18a79ad07 Fix wtf control flow in signup.js
(imported from commit d4cb46cda138c542884e0373b4498b4f7890ef51)
2012-10-03 17:34:53 -04:00
Keegan McAllister 5a6247288a Fix typo'd variable
(imported from commit 971e5d28cb14826b020d6e130cd62e600d88a168)
2012-10-03 17:34:53 -04:00
Luke Faraone 3a7dda5099 Replace usage of send_status.toggle() with the more clear .show()
(imported from commit 0593222b16bf845b7bcd9075d02c156a05764c12)
2012-10-03 13:56:35 -04:00
Waseem Daher 2c294694fd Restyle narrowbar to avoid wrapping.
Previously, when we narrowed on a super-long class/instance or
a huddle with lots of people, the box overflowed. This is an
attempt to fix that, even if it isn't the prettiest.

(imported from commit 4eb58726a4c4714bd5435a791ad8fea0eabb58ed)
2012-10-03 13:38:33 -04:00
Keegan McAllister 66265aa5bf Get rid of the send status bar for non-error conditions
(imported from commit 999ca5a02e95f4756e00b4769260f5a84e2440da)
2012-10-03 13:15:22 -04:00
Jessica McKellar 97542d1eb5 Re-focus on new subscription input box on an invalid subscription.
(imported from commit d4876dc43eabe73655928db58ca5ad1ed74fa336)
2012-10-03 13:08:33 -04:00
Jessica McKellar aa2e4efc2c Fix typo preventing focus on new subscriptions box after tabbing over.
(imported from commit 45a6dd8e514a2233517cfaea5a5c0b8d94c62f46)
2012-10-03 13:05:58 -04:00
Jessica McKellar f4e04a045a Focus on new subscription text box after adding a new subscription.
(imported from commit d23bc2d15cce67bc75c2f4ef406de73373b8f3ea)
2012-10-03 13:05:58 -04:00
Keegan McAllister 6cdd1c3e8b Re-select the selected message by ID after prepending
(imported from commit 24f6f17bee8c041fce39a710b8b77f14d3ef7dbe)
2012-10-02 18:39:21 -04:00
Keegan McAllister f03efcd788 Simplify initial pointer selection
This code had decayed from something more substantial into a kind of silly loop.

(imported from commit a6668c19bd6d50325460ac4fa4146d7f82fec58b)
2012-10-02 18:24:54 -04:00
Keegan McAllister 8bc01c85f1 Collapse new with old messages when prepending
(imported from commit 0279183c9a2c70b1fe42f60f4423327aaf2dc7b8)
2012-10-02 18:24:54 -04:00
Keegan McAllister 6baacf6815 Exit add_to_table early if we have no messages
(imported from commit 3860d97344f6008d57829c0040363eb8491ec231)
2012-10-02 18:24:48 -04:00
Keegan McAllister 10201460c8 Allow passing the table name to get_zephyr_row
(imported from commit 098e64b5003eb7844f8d5ccd8aefd982af1b5c6e)
2012-10-02 18:24:03 -04:00
Keegan McAllister b8cca0a094 Track the groups of collapsed messages in each table
(imported from commit 26df33856966f2ac4dc86de9f3436b4499c17089)
2012-10-02 18:24:03 -04:00
Tim Abbott d2884ba456 Make connection errors disappear more efficiently.
Previously, connection errors would stick around after a problem with
the server until (1) the server was fixed and (2) we later received a
message.  This code change eliminates condition (2) by having the
server return immediately with no messages in the event that the
client has accumulated a large number of errors.

(imported from commit 6a9b08e534db6daea0041a71556ef5b708e935ed)
2012-10-02 17:46:06 -04:00
Keegan McAllister 5fe3787ded Maintain one layout-setting row at the top of each table
(imported from commit b375ea78d79ca39b486d124256d0d4e89558d83a)
2012-10-02 17:21:20 -04:00
Jessica McKellar 52327a0484 Give a more accurate error message on new subs from home view.
(imported from commit 5521e27ad63717d5a8ba325172726619bc8114cf)
2012-10-02 17:17:27 -04:00
Jessica McKellar abb47a6a7d Fix bad class name comparison in add_zephyr_metadata.
(imported from commit 7e03ba4a4b3b8af5b080a273a0b480743b1b7e90)
2012-10-02 15:58:17 -04:00
Jessica McKellar 588db5b4c5 Make class names case-insensitive.
(imported from commit e76e50156ca8dab1f7b3124351997e75ef08e521)
2012-10-02 15:16:26 -04:00
Jessica McKellar 2f1a3dd39c Don't allow empty class/instance/recipient/message on zephyrs.
(imported from commit 2f8e6e0d6a2f046208f5d10d495e50d72197f79f)
2012-10-01 18:14:27 -04:00
Keegan McAllister ae228a9a70 Remove unused get_all_zephyr_rows
Arguably incorrect in the multiple-tables world.

(imported from commit 6902972a12c6484e78750d055292510d9637cf42)
2012-10-01 16:42:00 -04:00
Jessica McKellar 28e668bb46 Handle home view subscriptions error cases.
(imported from commit 7f31b5c4837c524c3ad5a0538ca1f01ad73141a3)
2012-10-01 15:36:10 -04:00
Luke Faraone 160744788a Disable hotkeys when preparing a huddle after clicking on a username.
(imported from commit a27ed2734dc3e8ca1a9a1aba8f672c10a6a6fb92)
2012-10-01 15:20:25 -04:00
Keegan McAllister 4bd3f009c0 Prepend to zephyr_array if where === 'top'
(imported from commit f1150f36bedd07275749ca7c8dfd84296ebc9438)
2012-10-01 15:03:16 -04:00
Keegan McAllister 25eeaabe47 On load, send a range around the pointer, then fill in later, then earlier
This still doesn't handle collapsing entirely correctly for the backfilled
messages.

(imported from commit d1fa3e2249968208e735454c27b8cab20bb78d3f)
2012-09-28 19:40:45 -04:00
Keegan McAllister 8d906c9b6f Allow the server to prepend a block of messages
This doesn't handle collapsing yet.

(imported from commit 85a2284f398dea33cc891297924ff7504304be94)
2012-09-28 18:37:12 -04:00
Keegan McAllister 1c48599824 Refactor add_messages slightly
(imported from commit 61ac3285c9a55202f390a3b4473483656449cf44)
2012-09-28 18:37:12 -04:00
Keegan McAllister e9f70c1efb Track the first received message
We don't use this information, yet.

(imported from commit 24a9466823f3e7a287027969d3841c7638954e76)
2012-09-28 18:37:11 -04:00
Jessica McKellar 1fa3bbead9 Update the class subscriptions upon subscription removal.
This fixes a bug where if you unsubbed from a class and then tried to
send a message to it, you could without error and wouldn't see the
message.

(imported from commit 7a4da2a6cb5bbecfc236628dda7b61972b3082e1)
2012-09-28 17:24:45 -04:00
Waseem Daher 8b08cffcbb Faster composebox show and hide.
(imported from commit 55f0465e9aded7c1b8cfe6e53b25bd1bc1185311)
2012-09-28 16:17:29 -04:00
Jessica McKellar 1adb10d1ae Allow copying and pasting from zephyrs without triggering a compose.
(imported from commit f98a14155904dda11d85ed81acee783494377e4d)
2012-09-28 15:27:39 -04:00
Waseem Daher ecfed97bc6 Attempt at restyling personals for more emphasis.
(imported from commit 28adc1c6144632bf973272b096a22d8315648502)
2012-09-28 13:32:59 -04:00
Jessica McKellar f2b808a976 Now that mouseover doesn't select, show_email needs to take an ID.
(imported from commit dfa737e78da0772e99fda34318ed879896fb5655)
2012-09-28 10:59:39 -04:00
Jessica McKellar 9cbdbc4893 Don't update the selected zephyr on mouseover.
But do keep the pointer on the screen as you scroll, and smoothly
scroll all the way up to the top or all the way down to the bottom.

(imported from commit 6acad2a16339ee5eeeebd62a853000c21e4b7152)
2012-09-28 10:59:38 -04:00
Keegan McAllister 3429e77178 Don't display the "Loading..." indicator if the user has no messages
(imported from commit a050218ccde3b82c570a9373cbab5e3fb22abcde)
2012-09-27 16:15:10 -04:00
Keegan McAllister 20240d869c Rename get_updates_longpoll to get_updates
(imported from commit 15635904584b324bdfa1414caea12c3bc4ce54c8)
2012-09-27 15:46:36 -04:00
Luke Faraone b58e2ee575 Enable j/k keyboard shortcuts
(imported from commit 1a172fc6d49506060534ffc52a27160ca0bbca72)
2012-09-27 12:32:46 -04:00
Keegan McAllister 9323abddd9 Don't jump the pointer if the user already selected a message during load
(imported from commit 69a3f11059ee4764f1625df7774ff611fff99537)
2012-09-26 17:53:06 -04:00
Keegan McAllister 35dcc04822 Add an interim "Loading..." indicator
We will probably re-style this eventually.

Also, the animation freezes during template rendering.  And the HTML is a "give
up and use tables" situation.

(imported from commit 847374b616dc7ce909834f23d5ed9522aa457254)
2012-09-26 17:11:00 -04:00
Keegan McAllister 1e02fc140b Make add_messages do everything relating to message adding
Now that it's only called from get_updates_longpoll, we don't need to break out
specific parts that are only needed there.

(imported from commit 60d1cb25d0044ed1b2325d977b869617587e6a0f)
2012-09-26 17:11:00 -04:00
Keegan McAllister 017c5e87bd Update autocomplete only once per batch
...not up to three times per message.

(imported from commit 1da13c0bc1311627f1bcdce6719097836d9616ca)
2012-09-26 17:11:00 -04:00
Keegan McAllister 21d76b3398 Don't send instance_list in index.html
It gets populated from the zephyrs we receive in the initial get_updates_longpoll.

(imported from commit 83c773d211ea323233a986ccf12fd797236c08a5)
2012-09-26 17:11:00 -04:00
Keegan McAllister 12e458df80 Get initial messages from get_updates_longpoll
(imported from commit 2bb9c51409735abe23bad758338b13121aea4c99)
2012-09-26 17:10:59 -04:00
Keegan McAllister ee75f7ae8d get_{next,prev}_visible: Handle undefined argument
(imported from commit 07956fb7595e8c39fd052aaf0a16df4c3e574f8d)
2012-09-26 17:10:59 -04:00
Luke Faraone 9cf6bc17f7 Display validation errors produced by jQuery.validate in a special div.
This way we don't push things around on the screen.

(imported from commit a8bbe6660e3089676fc0c169f540537fdff7f4fe)
2012-09-26 16:42:10 -04:00
Luke Faraone ae6cfee818 Implement a new login redesign per Waseem. Be a little cute about it.
Split off some content previously placed into base back into index.html.
Move content previously localised in accounts_home to a new content_base
for use in the non-app version of the site.

We wrote up some copy and styled it according to taste.

In our new signup form, we no longer collect a short name and instead
extrapolate from the email.

(imported from commit cd734b13a4bda7f304129379524c4cc96b77b24b)
2012-09-26 16:42:10 -04:00
Tim Abbott df01b016cb Display short_names rather than email addresses for huddles.
(imported from commit 6509305f1b0ee90cfe5c93c74e03350a557a0cc5)
2012-09-26 15:32:35 -04:00
Keegan McAllister bec1b55930 Use switch/case in respond_to_zephyr
(imported from commit 4afef9103075a00772f3c0e29d634a28cb5d5b5a)
2012-09-26 15:25:46 -04:00
Keegan McAllister d8714ae3ff Use switch/case in add_zephyr_metadata
(imported from commit f5a2357a4359d3e16d22a0c561561c5f54b16538)
2012-09-26 15:25:45 -04:00
Tim Abbott d374312509 Use email address for huddle display recipients.
This fixes replying to huddle messages.

(imported from commit 8e6f9ce7d690c926b19c50016ec972d767428994)
2012-09-26 13:24:08 -04:00
Jessica McKellar f60e9de1f2 Linkify URLs in zephyrs.
(imported from commit df7e355648d2c4d6319de049933547ed96402fd8)
2012-09-26 10:33:33 -04:00
Jessica McKellar 455b9863d5 Always clear compose inputs on New Message.
(imported from commit 7c32f8bdc2366695c488563698c282d2f25b65a1)
2012-09-25 13:39:23 -04:00
Jessica McKellar 14ceb7e888 Add hotkeys for composing a new message and toggling betweeen message types.
(imported from commit 5778b12d204f803a4c46b0f32ec19d9410108b36)
2012-09-25 13:00:43 -04:00
Jessica McKellar 810229288b Track and be able to return to your high water mark.
(imported from commit 52a1ce8c84ad3f4eea16b7abaf075ebffc794c9a)
2012-09-25 10:04:34 -04:00
Jessica McKellar 6685bfdd10 Add page up and down arrows to the zephyr list.
(imported from commit e66dfc4eef150e5b84d98ab7346d4d66852699b3)
2012-09-25 10:04:34 -04:00
Keegan McAllister 613e042b7c Get rid of current_view_predicate
Use 'narrowed' for the same role.  (Functions are always true-ish in
Javascript.)

Also, don't add messages to the narrowed table if not narrowed (my bad).

(imported from commit 31707d39abb97472a36d3816c62482e39e732fdc)
2012-09-24 18:42:04 -04:00
Keegan McAllister 877954aa55 Render all new zephyrs with a single template invocation
(imported from commit 13803e0e96901d129d4aefcd5fde63548deb4dc0)
2012-09-24 17:45:52 -04:00
Keegan McAllister 934e3461df Split add_to_table into preprocessing, templating, and postprocessing
(imported from commit ef17ff33f4496fcf619170bda1a46f14734d3e43)
2012-09-24 17:45:52 -04:00
Keegan McAllister 6fb5fc57ce Change bad CSS class names
(imported from commit 962f91a593b4ca65bd7aae7d71117fc159c2627a)
2012-09-24 17:45:52 -04:00
Keegan McAllister 6ccf3818d6 Rename add_to_tables -> add_to_table
It only adds to one table.

(imported from commit 7c106331527ceaa056b23214be3c981029c9c005)
2012-09-24 17:45:52 -04:00
Keegan McAllister ad0bed506a Add messages in batches
Not immediately useful, but it will help us speed up templating later.

(imported from commit 48cd554b322eede506b0cbcd4b26ef427cb2c804)
2012-09-24 17:45:52 -04:00
Keegan McAllister 40ac817f4e More JSLint options
(imported from commit a5b7aea68de5403c3f9deb7220f05102de971747)
2012-09-24 17:45:51 -04:00
Keegan McAllister 4793cee888 Switch to Handlebars templating
Benchmarks [1] show it's much faster than ICanHaz, though we will have to work
to realize those gains.

[1] http://jsperf.com/jquery-template-table-performance/77

(imported from commit b037a6f15e27fd49af88f814ff949811dbcd48f2)
2012-09-24 17:45:51 -04:00
Keegan McAllister b21d197418 Factor out same_sender too
(imported from commit 831a24817cd4669507bac9797abf30d644c6a3d9)
2012-09-24 15:43:28 -04:00
Keegan McAllister 67349eca33 Factor out the test for whether two messages have the same recipient
(imported from commit a8cc4858d1eb7933c437adb0dd4c9a612c40e389)
2012-09-24 15:43:28 -04:00
Jessica McKellar d6a6516687 Have the pointer stay in view as you page up/down.
(imported from commit 72b58f30d82b103542f53ebeff2363407c4997b6)
2012-09-24 14:14:37 -04:00
Jessica McKellar b276596855 Add page up/down support for all tabs.
This does not yet try to keep the pointer in view.

(imported from commit 865413ba70e271ed12d5cc45d13e56ff9a3275f9)
2012-09-24 14:03:18 -04:00
Keegan McAllister 2a96542e9a Clean up do_narrow calls
(imported from commit 51a694e3dbe7310127580e50fbac0a796f1b09c2)
2012-09-24 13:55:30 -04:00
Keegan McAllister 32f806c032 Save the current view "original message" implicitly in closures
There's no need to pass this around separately and store it in a global
variable.

(imported from commit bb464b1c87fcc9e97aa85a7d139186d4a7169674)
2012-09-24 13:41:22 -04:00
Keegan McAllister 0379d828e1 Don't store into zephyr_dict in get_updates_longpoll
add_message already does this.

(imported from commit 77e6ebf7c02794f6d4e0e9f8a42ecedc44d0402a)
2012-09-24 11:58:37 -04:00
Keegan McAllister 07e1314462 Rename initial_zephyr_array -> zephyr_array
We keep adding stuff to it in get_updates_longpoll.

(imported from commit be33421c9df16191112e5bcc7c4a476080d52859)
2012-09-24 11:58:37 -04:00
Keegan McAllister 2605f29988 Rename get_zephyr -> get_zephyr_row
Now that the primary data store is not these DOM elements.

(imported from commit c8f5b24ea1baf2ed69278fb0e8658a3bf0a85cd0)
2012-09-24 11:41:26 -04:00
Jessica McKellar 703a1cd6d9 Add error handling for subscription AJAX requests.
(imported from commit 9ed019da01aaa85302000ad62441b85786c2c528)
2012-09-24 10:16:22 -04:00
Keegan McAllister f3aefde0df Simplify goto hotkey code
(imported from commit 2e424b488c82125b036d264baf66fdc3328be0f3)
2012-09-21 18:34:26 -04:00
Keegan McAllister 3f0a6b6087 Fix and clean up Home/End key processing
We had the wrong keycode for End, and much duplication of code.

(imported from commit 0aaa5ab45e45fc9d7209ec1768198abefc08dc86)
2012-09-21 17:55:17 -04:00
Keegan McAllister 4c45baa045 Refactor hotkey narowing
(imported from commit d1559cbe3505090085229271bdb7bc69060e43b2)
2012-09-21 17:55:16 -04:00
Keegan McAllister a3fcf3417d Move get_{next,prev,first,last}_visible into a sensible order
(imported from commit 80697ba55c1fb9bf52a4fffd2f15471b8892f07c)
2012-09-21 17:55:16 -04:00
Keegan McAllister f3ee3fa6eb Simplify get_{next,prev,first,last}_visible
Now that we have two tables, the adjacent zephyrs will always be visible.

(imported from commit a1ac000bfba32faea109d1b35a84fdd30ccc4891)
2012-09-21 17:54:11 -04:00
Keegan McAllister a53cbc9f36 Move hotkeys into a new file
(imported from commit a589cd4623c4707122d5d5936aa0bc555c38557a)
2012-09-21 17:52:02 -04:00
Waseem Daher f1aa17cf1d Change some URLs associated with subscriptions.
Put all the 'API'-ish URLs in the /json/ namespace so that
/subscriptions and /subscriptions/add, etc. can be real
user-facing URLs if we want them to be.

(imported from commit 1455a32d27e44547ab1874b6289243cb40c85dde)
2012-09-21 17:36:29 -04:00
Keegan McAllister f4483832b2 Force select_zephyr when narrowing even if id has not changed
Fixes a bug where the pointer would vanish.

(imported from commit 0ed950fbc3d5a8673b0bc62556f426cccb5a6459)
2012-09-21 17:33:00 -04:00
Tim Abbott 76c1dfc1ed Make home and end go to first and less messages, respectively.
(imported from commit f85b811f51227cd1ae113c119a430381230d141c)
2012-09-21 17:13:07 -04:00
Waseem Daher 230e725446 Allow spaces in classnames.
(imported from commit 9ef71240ee5e6e0ed9ca0b50d9461b539538b437)
2012-09-21 17:09:46 -04:00
Tim Abbott 919ddfdc31 Send recipient_id values to client and track them there.
(imported from commit 77446f7a226d8a26a287e069d08f28e4beb0b2e3)
2012-09-21 16:57:04 -04:00
Tim Abbott 12013cd7b7 Fix collapsing of huddle messages.
(imported from commit 31391a278f5fe70ab56379bf7cc3fad2d0663007)
2012-09-21 16:44:30 -04:00
Waseem Daher 5a164f19c2 Clean up subscription functions.
Now that 'manage_subscriptions' only removes subscriptions,
let's name it that. Also, since both functions now only
act on one subscription at a time, use them in the singular.

(imported from commit 52cfc7b36eb1533da7aec1bc3a6e460151a56da8)
2012-09-21 16:30:29 -04:00
Waseem Daher a27edbce7d Restyle subscriptions page.
(imported from commit 41339c5af38ae5ea4801fc1e23b7184c277145f3)
2012-09-21 16:04:44 -04:00
Tim Abbott ed46a453ba Add (mostly unstyled) settings page.
(imported from commit 492c5f498c2fec452e6c724555bc4a5a2c4c151a)
2012-09-21 14:47:26 -04:00
Tim Abbott fc12e6ffbb Fix collapsing with new email addresses instead of usernames.
(imported from commit 26a2391ac1f965f78feaff5092b42cf49f57215f)
2012-09-21 11:15:08 -04:00
Tim Abbott ee8f28a084 Use email addresses as unique identifiers rather than usernames.
Note that this code still assumes one's email address (stripped of
domain) is unique.

(imported from commit e98f96601ad109811978fc00b1165e97d8f7b185)
2012-09-21 09:43:22 -04:00
Luke Faraone 1050300ded Render Huddle titles the way Waseem detailed in his original mockup.
This actually involved refactoring a good bit of existing code; we
in this commit introduce a new property of zephyr called .reply_to, which
is the fully rendered-to-string and pretty-printable version of the person
to which any reply should be addressed.

This is useful for grouping personals, where if you simply went by the
.display_recipient or .sender you would have to check them against
eachother.

We also introduce a new narrow_classish command, which is triggered on
clicking on the "Huddle with…" text. This method intelligently determines
which sort of narrowing to do; we essentially moved out code from the 'r'
key handling section and put it in its own function.

(imported from commit 2406ee0f6f83b990eec83190d2e8858865c06238)
2012-09-20 16:36:49 -04:00
Keegan McAllister fbec2b8d76 Use DOM ids in get_zephyr
This greatly reduces lag on mouseover selection.

(imported from commit 7d9bc0ebce2aa9781c316033d3e9d21e9da6ee3f)
2012-09-20 15:23:41 -04:00
Keegan McAllister 1dabe1cf81 Give each zephyr row a unique DOM id
(imported from commit 4530d0bbbfc94fb86ebba9c6d73074de38e4a78a)
2012-09-20 15:23:41 -04:00
Keegan McAllister 48fea66e34 More consistent naming for #table and #filtered_table
(imported from commit 966ab97522a79fb5cf6dc1e215487ceba01f6d11)
2012-09-20 15:23:41 -04:00
Keegan McAllister d4985ef5f4 Optimize select_zephyr_by_id for the already-selected case
Saves a call to get_zephyr.

(imported from commit 9ce9f2af7e4d8eb5e3a76a3c0ddbfb7f5896a583)
2012-09-20 15:23:41 -04:00
Keegan McAllister a00227c864 Implicitly choose the selected zephyr for showing email address
I erroneously switched halfway in ce4f6289491722d4c1aa84fe8b88b3a5932a3f2a, so
let's just do it for real.

(imported from commit 4c09a7805f6e2322cbbab2f8534e9d362acdc826)
2012-09-20 15:23:39 -04:00
Keegan McAllister 8d994bdb21 Make sure only one email address is displayed at a time
(imported from commit 51b5b2268a154d1136b03185d6658fad7f2922aa)
2012-09-20 15:22:08 -04:00
Keegan McAllister 81ff352ac3 Simplify bookend creation
(imported from commit 8faf260037b7e0508d9e4acea24687ebc06ea0ef)
2012-09-20 00:08:46 -04:00
Keegan McAllister 7d894d8dd1 Merge update_pointer and select_zephyr
Having both is confusing.

(imported from commit becd1ac7a8bab583c4fafdd77256c57f3dc98ea1)
2012-09-19 17:55:58 -04:00
Keegan McAllister 5ff4d22859 Note get_zephyr performance
(imported from commit 215a457d30f5a355d18882a9703ff671248b054f)
2012-09-19 17:55:58 -04:00
Keegan McAllister c3f3a1ef14 Cache the selected zephyr jQuery object
(imported from commit ce4f6289491722d4c1aa84fe8b88b3a5932a3f2a)
2012-09-19 17:35:18 -04:00
Keegan McAllister 5ba760a8f3 Use the zephyr IDs we already have
(imported from commit 6506f30be02cd4d4ee660709fbf8b7530a9276a9)
2012-09-19 16:43:45 -04:00
Keegan McAllister af5282abd4 Add client-side debugging tools
(imported from commit faa87e85f366e91fe33e0f24e00ae1197403605d)
2012-09-19 16:25:23 -04:00
Keegan McAllister 72b98d1d01 Hotkeys: don't go from zephyr to zid and back
(imported from commit e7e80bdc2e0af5dfe9ec4f885cae814543c038de)
2012-09-19 16:25:23 -04:00
Luke Faraone c0805e4846 Remove spurious lines at the top, add lines to the bottom of the view.
We previously weren't actually applying collapsed_parent to any zephyrs,
switching from .children to .find fixes this.

We also don't add a bookend in front of the first zephyr.

Also, borders are handled by the zephyr trs themselves as opposed to the
bookend tr.

(imported from commit 8bdc9bd812833288c85c13a102459a5ef1e36225)
2012-09-19 13:15:12 -04:00
Luke Faraone fed4cd3891 Limit № of autocomplete results so the list doesn't fall off the screen
(imported from commit 311376c1dec35a16ddfb66fc01161501c2eafff0)
2012-09-19 13:11:13 -04:00
Luke Faraone 72eb05dfc5 Switch to Boostrap Typeahead instead of JQuery-UI Autocomplete.
This reduces the number of CSS/JS files we need to load, which is awesome.

(imported from commit 3d34276a185e61f698163402cff2fd2c75ce0bd7)
2012-09-19 11:51:53 -04:00
Luke Faraone b634d26017 Post the newly selected zephyr ID, rather than the old zephyr ID.
Previously update_pointer POSTed the selected_zephyr_id, which in reality
was the ID of the zephyr we just moved off of, rather than the current
zephyr we just higlighted.

(imported from commit 2b143b34d3042a789b3f6a999117115dd6243782)
2012-09-19 11:13:43 -04:00
Jessica McKellar 3ec50a921d Fix loading subscriptions on the live site.
For some reason on both my and Waseem's local instances the lack of a
trailing slash was not an issue, but this does fix the issue on the
live site.

This could be because we are running Django 1.4.1 and the deployment
server is running 1.4.0.

(imported from commit 613732d75f204fd654247382088d92879780560b)
2012-09-19 10:21:34 -04:00
Luke Faraone 7d4693a063 Unbreak adding messages in get_updates_longpoll.
(imported from commit 4dbf0b151c7ac243f23b74feeb85dac2b410c7b9)
2012-09-18 18:02:53 -04:00
Luke Faraone 5b32048ade Implement borders using CSS rather than brs, style the way Waseem wants.
(imported from commit f4e23721a6eb0ffdd2d6e859b28417f0fdfbfe87)
2012-09-18 17:19:29 -04:00
Luke Faraone c5d1897ab3 Reimplement collapsing, for realsies this time.
We no longer break random things! Its pretty grand, actually.

This reworks and reverts commit fbadd6e854722e41cccd2535748ee47f4efd657b.

Conflicts:
	zephyr/static/js/zephyr.js

(imported from commit 534a120290855d3bf2cf979ac174267c2d07bf68)
2012-09-18 15:56:01 -04:00
Jessica McKellar a8484cb967 Remove subscriptions with an AJAX request.
(imported from commit d34154b31a38ac66cc8f97785c312c98dd53286c)
2012-09-18 12:33:07 -04:00
Jessica McKellar 2126e38ae2 Get and display new subscriptions with an AJAX request.
(imported from commit c9efa7596898ac4b74ec9184ae773566eda65ec3)
2012-09-18 12:32:52 -04:00
Waseem Daher a70e8dee4d Refactor our different pages into separate templates.
They are all included by index.html in different divs.

(imported from commit bd8b485516007075d33c2614b1de9f08999e927c)
2012-09-18 12:26:29 -04:00
Waseem Daher 5ebac29508 Switch back to 'Home' view when composing new message.
For now the idea is that if you're in the search view (or the
subscriptions view) and you click 'New Message', we should
snap you back to the main view.

This may or may not be the right behavior in the long term.

(imported from commit 43c24e1af9e80225ff9be8a62f4c8c925960436a)
2012-09-18 12:15:24 -04:00
Waseem Daher 5f49616753 Refactor: Put the zephyr <tr>s in the template.
(imported from commit 8a822d7c8463c248d536f97f07bfb19ca242b83f)
2012-09-18 10:46:11 -04:00
Waseem Daher d5bdd84ab7 Colorize the view differently when in narrowed mode.
(imported from commit c7b2d23386ff0895caaea8e9f6e3c116e6744c53)
2012-09-17 17:04:39 -04:00
Keegan McAllister 7152fe2f73 Format messages with Markdown
(imported from commit 014a4dddd4d3db61d85c6f6bf1987aff6093fb52)
2012-09-17 15:24:41 -04:00
Jessica McKellar 72168b8275 Put focus on class field when you click New Message to compose.
Previously no focus was set and the shown tab was whichever tab you'd
last seen.

(imported from commit 2ca731373327aa71de7472220725b518cb1861d0)
2012-09-17 14:39:32 -04:00