Commit Graph

127 Commits

Author SHA1 Message Date
Keegan McAllister 6d0cebb6c2 Simplify update_floating_recipient_bar
The transformation here is

    $($('foo')[0]) -> $('foo:first')

(imported from commit 79ea257c9935eea01c5a2f7afb171045692eff01)
2012-10-26 21:38:39 -04:00
Keegan McAllister 138721ebbb ui.js: Wrap an extremely long line
(imported from commit e8bef501249cc11655780ab87c425c91e2ad4db5)
2012-10-26 20:41:08 -04:00
Waseem Daher b0406ee1d2 update_floating_recipient_bar: Don't loop infinitely if no message selected.
(imported from commit a75cfd41ed8a8ce5256d1caa29f6c5bc0689e7d2)
2012-10-26 15:10:30 -04:00
Keegan McAllister f8540dcdae Wrap some other extremely long lines
(imported from commit e7d55f318c8865ca953bf4520d1b07f7e84a4aeb)
2012-10-25 15:22:18 -04:00
Tim Abbott bcfe06c69c Don't show floating recipient bar when narrowed to huddle/subject.
(imported from commit b7cbd83035292ed447a3da666df9326d75aac35e)
2012-10-23 18:29:54 -04:00
Tim Abbott bf007776ce Fix selecting huddles using the mouse type-tabs.
(imported from commit 6b9981cf6d5a5aaf9d644a18cc04397f3cf0dead)
2012-10-20 10:35:39 -04:00
Waseem Daher 34fc2266ce Pop up a little box of info/actions when you click a name or gravatar.
Known issues:
* Not all of the options in the menu are functional yet
* The wording isn't totally perfect on some of these options;
   I kind of want to use a 'first name' in some of them.

(imported from commit 5a333fb939fcca7e0d0ecb2c43e79501139ac0db)
2012-10-18 21:19:49 -04:00
Keegan McAllister 2fe034d161 Rename subs.add -> subs.add_for_send
This has some logic specific to the "Create and send" / "Subscribe and send"
buttons.

(imported from commit 5f9e314ebde31ec1e6a183513816d1ade361e4cc)
2012-10-18 16:25:58 -04:00
Keegan McAllister 95f8eea14b Module pattern for subs.js
(imported from commit adfe466ea892fbfe5f13a5f346e4fd00f194c42a)
2012-10-18 15:46:58 -04:00
Keegan McAllister eb9140a0a2 Pseudo-module pattern for rows.js
It's actually simpler than a full module, due to lack of local state or functions.

(imported from commit b9180f1cdc26aed3f2e1f35dfae9ed4240b64446)
2012-10-18 15:11:25 -04:00
Keegan McAllister e7661f7b2f Module pattern for compose.js
(imported from commit 8ea9d949b793285e8722bebcef30991d06e5673e)
2012-10-18 15:11:25 -04:00
Waseem Daher 0fba2d2df3 Attempt at making stream names more prominent when skimming.
Known issues:
 * Narrowing links sort of broken
 * "S/H" is a terrible selector

(imported from commit 14d309b55dfaa4c4bc5cb1310a111a46f2fb7e20)
2012-10-17 18:12:32 -04:00
Tim Abbott ae3e24458c Add a UI for requesting your API key.
(imported from commit 07c40caf73f3b6c1c502a6c8e18109532dd28cc3)
2012-10-17 17:09:46 -04:00
Tim Abbott 5c50375e02 Display a message and disable compose while reloading.
(imported from commit f998d2e4053e7e2d676f7fe08ee274118dd9faba)
2012-10-17 14:59:49 -04:00
Waseem Daher 93954177f9 Code a little more defensively in update_floating_recipient_bar.
That andSelf is only necessary if a .recipient_row were immediately
followed by a .bookend_tr, which, I don't know, after a redesign could
very well be the case, so let's guard against it now, especially since
our performance on scroll is currently pretty good.

(imported from commit 1011555fbfd30943b4aa917997d6e35bcce959fc)
2012-10-16 17:26:02 -04:00
Waseem Daher ea7770c4b7 Properly handle mousewheel events when we're simultaneously at top and bottom.
(imported from commit 72efb1c52b5aed759150d9d2fe82ca619a25ff35)
2012-10-16 12:16:26 -04:00
Waseem Daher ca7855e03e Use outerHeight instead of height.
I think this'll allow for a slighlty more accurate drawing of our
floating recipient row in the even that some of these things have
borders and others don't.

(imported from commit 31714f7356604e1d9c64bcc7f6fd14b8a02a99b5)
2012-10-15 22:47:42 -04:00
Waseem Daher b76422d8d0 Cache the window selector as 'viewport' in an attempt to improve performance.
(imported from commit 3e01382260938737fbee663f6a9e94ad495ef21e)
2012-10-15 22:47:42 -04:00
Waseem Daher 45629a362d Break apart the scroll and mousewheel handlers.
I'm actually not sure if this is a performance gain or not; I guess it
depends if any of the stuff inside mousewheel or scroll took longer
than 50ms to call (and right now it does).

(imported from commit e3fcc4a14cd8787fa2357a43ed878ab08646e4f2)
2012-10-15 22:47:42 -04:00
Waseem Daher d51aec272d Rename. More consistent references to floating_recipient_bar.
(imported from commit 7bfd2bf55ede0604349faf06944c551a0d23fb73)
2012-10-15 22:47:42 -04:00
Waseem Daher 1c56ad00c9 Optimize update_floating_recipient_bar's showing-and-hiding code.
(imported from commit 6cd67d9c7bf418ae78288363636ee75fdc3fcada)
2012-10-15 22:47:42 -04:00
Waseem Daher 1781a4a616 Optimize update_floating_recipient_bar's "pick a subject/stream" code.
(imported from commit a6e615a3939fb072cc9cd310e653f13d690a55cc)
2012-10-15 22:47:42 -04:00
Waseem Daher daf06b9beb Hack around visibility: collapse for Chrome.
(imported from commit 25e6453fe6fa1c5a3c72f56bec2e4bbb089edb4f)
2012-10-15 22:47:42 -04:00
Waseem Daher 4d914df68b Rename things.
narrowbox -> top_statusbar
narrowcontent -> narrowed_to_bar

floating_indicator -> floating_recipient_bar
fixed_narrowbox -> table.floating_recipient

(imported from commit 7b5bbb17aeff9372275311ab09cd3cbf8262ea13)
2012-10-15 22:47:41 -04:00
Waseem Daher acb75ecf67 Only float narrowbar when #home is active.
(imported from commit a2da9b5a41e5a645d0c72ef48ff4a856558bed15)
2012-10-15 22:47:41 -04:00
Waseem Daher a80ba151b0 Eliminate scroll direction detection.
(imported from commit 2aa8665c9ffa137830fc871061d7e72ba5ccfc6f)
2012-10-15 22:47:41 -04:00
Waseem Daher 6015d1d928 Refactor the 'floating stream/subject' bar.
(imported from commit 76528653c29809bc461693b069140bfdfbeec97b)
2012-10-15 22:47:41 -04:00
Waseem Daher d95b4a30e2 Resize the narrowbox, not the 'narrowcontent' when we shrink.
This allows us to put other stuff in the narrowbox and have
it also magically get resized. At least in theory.

(imported from commit 92975e3d0893b34d52cad910462cbf2ccaed2eab)
2012-10-15 22:47:41 -04:00
Jessica McKellar d07f4c05f3 Keep the top-most recipient row floating at the top of the screen as you scroll.
(imported from commit e597b60c86f5b38a55dc78df80d84dfe112c8d8f)
2012-10-15 22:47:41 -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
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
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 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 08e832e093 Change send_message to accept a stream, not a class.
(imported from commit 0f58de2502bec227f5f33e44692d03f2f28d6f63)
2012-10-10 17:48:17 -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
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 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 760b540e55 Rename zephyr_sender_{name,email} to just sender_*.
(imported from commit 9bfa197a391e5dbdabf616244afb3634cdab1921)
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 78c303e44a Rename zephyr-type-tabs to message-type-tabs.
(imported from commit 623d226209bc6cbe20721be08a271e52185ea65e)
2012-10-09 22:40:12 -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
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 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 d510a62976 Rename huddle recipient field to #huddle_recipient.
(imported from commit 8670f06679aa1554003aa2832dec3ed6d00ad1c3)
2012-10-09 10:27:40 -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 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
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
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
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 c944c08e79 Drop JSLint directives
(imported from commit 5a091b4cb23bae5c307ad19cb772b878d605fbfe)
2012-10-04 11:04:25 -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 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 50d84e9ca8 Move some UI-related code
(imported from commit 28dc554ed91c14f8a8b4be282a211d3d50cf9873)
2012-10-03 18:25:59 -04:00