Commit Graph

4110 Commits

Author SHA1 Message Date
Kevin Mehall 8b3cd91d39 Don't save the pointer on reload if we don't have one.
This fixes the bug where the pointer jumps to the top if it reloads
before finishing loading.

(imported from commit 6b2d80acab4d4232f6eb87695193592a83c4466a)
2013-07-18 17:36:04 -04:00
Jessica McKellar fbe55f733c Enable arrowing breaking out of an empty compose on prod.
(imported from commit 85a5826c3f454e268c3b31fc9487e58de1528d53)
2013-07-18 17:11:36 -04:00
Waseem Daher ea0e5c4754 Add :zulip: emoji.
(imported from commit 57e4232f8db6cf752244c4307d4c0cdbb570ec58)
2013-07-18 16:35:34 -04:00
Jessica McKellar b898db424e Don't fade all messages when you narrow to all PMs with the compose box open.
(imported from commit 4041d28988544733243aa3f2494aca9247acd324)
2013-07-18 16:26:01 -04:00
Allen Rabinovich dc7b59bc9f Removing shadow artifacts from composition area
(imported from commit f957f26f60d2aedcb106e555b9558c8363cf9d61)
2013-07-18 12:30:37 -07:00
Tim Abbott 18f94de07f Use standard functions for parsing/validating email addresses.
This adds two new functions for parsing out the domain and username
from an email address, and switches our backend to use them and
django.core.validators.valid_email() rather than custom parsing and
raw email.split("@").

(imported from commit 3d6e997d66908811eccb5f82f2f7fe349b40f238)
2013-07-18 13:58:16 -04:00
Tim Abbott bece588897 Include server deployment location and git commit in blueslip emails.
This should make it a bit easier to figure out exactly what was
running on the backend when an error happens.

(imported from commit d1002a92c24870b8d98d7133dff865eecf1cfffe)
2013-07-18 13:58:16 -04:00
Allen Rabinovich a486579a4f A group of changes to make the selection lighter and more elegant.
* Redo table borders as inset shadows to make them sharper
* Make the selection highlight a blue border with blue glow

(imported from commit 758884cc7e17952ba68e4aab6215f3e026dc8fe8)
2013-07-18 10:54:22 -07:00
Jeff Arnold e19238c905 Don't close the compose box on a click if the click selected text
Addresses Trac #1257

(imported from commit 10351752c4951b3a0f300391477d47f608332211)
2013-07-18 13:06:11 -04:00
Steve Howell 0e9e102324 Make the space key smarter for search typeaheads.
Hitting the space key accepts the current selection and allow you
to continue typing.

(imported from commit f902d051807b9296009896e40853bcefca434752)
2013-07-18 11:15:28 -04:00
Steve Howell fcb3999996 Support smartSpaceBar option in typeahead.
If you set the option, then hitting space will select the current
suggestion and allow you to keep typing.  If you don't set it,
then it's the old behavior where space allows you to continue
typing without acknowledging your selection.

(imported from commit 8125a322e5a748ac7716361d66fca18c56d5766e)
2013-07-18 11:15:28 -04:00
Tim Abbott 23beabb80c [manual] Rename manage.py subscribe_new_users to process_signups.
The old name was very confusing, and this fits the convention of "the
processor for the signups" queue a la "process_user_activity".

This requires doing a

supervisorctl stop humbug-workers:humbug-events-subscribe-new-users
puppet apply

to deploy the supervisord configuration changes and properly restart
the signups queue.

(imported from commit 0ee2dad837142afa64025446e22956709771a192)
2013-07-17 17:50:19 -04:00
Scott Feeney a33e6a5ec0 Fix @-mention autocompletes when no @ typed
Introduced by my fix to #1418 a few commits back, sorry about that!

(imported from commit 9df9cdaf4226012076ccdfe0c062606ca8026b38)
2013-07-17 15:46:41 -04:00
Steve Howell 3af905db66 search.js: extract get_suggestion_based_on_query
(imported from commit 6c242fa9dd9ad9f73976fe9b1265521610326c5d)
2013-07-17 15:39:35 -04:00
Steve Howell c9ec96cab3 search.js: Eliminate get_query and get_person
(imported from commit c785f33378a0a5a436d9a7cb236a4af29c94921a)
2013-07-17 15:39:35 -04:00
Steve Howell 98d2c5361f search.js: Simplify get_person_suggestions
(imported from commit 44f22923a73633c5693a99ae9ce788f10cd5f505)
2013-07-17 15:39:35 -04:00
Steve Howell c515ad4cbb search.js: Simplify get_stream_suggestions
(imported from commit 0fd00a2f22cc0241945767b4bf1151b811f00a63)
2013-07-17 15:39:35 -04:00
Steve Howell 6a8a403cc9 Make prefix_sort just use obj itself if get_item is not passed in
(This facilitates using prefix_sort for a list that doesn't require
a function call to get to the object of interest.)

(imported from commit 5a0e550c313b9c57f0434c7246fcea451219d1b8)
2013-07-17 15:39:35 -04:00
Steve Howell ed622c457b search.js: eliminate action concept
(imported from commit 224997bd656a1c1b39260cf7fdec97988f9854b6)
2013-07-17 15:39:35 -04:00
Steve Howell 87e025602c search.js: kill get_search_string
(imported from commit 5979832ba697386a660ca9cdc6487fa79257511b)
2013-07-17 15:39:35 -04:00
Steve Howell c201354e6b search.js: slice earlier when building typeahead objects
Slicing earlier means less work to do on items that were gonna
be sliced anyhow.

(imported from commit 743c51c478679a14f101e6cf7c14eafb9d719a58)
2013-07-17 15:39:34 -04:00
Steve Howell e6e56ef97e search.js: sort earlier when building typeahead objects
This sets up a later optimization.

(imported from commit 49d285ce4e30fff222c8160d12fd345b9afeb417)
2013-07-17 15:39:34 -04:00
Allen Rabinovich f1da624353 New selection highlight style
(imported from commit b23e8ddc08af131f74964ba7562eb071eaeb0a64)
2013-07-17 12:29:22 -07:00
Kevin Mehall 8863340e98 Fix scroll glitch when new messages are loaded at top.
`process_condensing` before updating the scroll position, because it can
change the height of messages.

(imported from commit ca500351447fcabc3b03bb01a55a8e25bf8e9578)
2013-07-17 15:25:22 -04:00
Kevin Mehall a0a91163fd Preserve pointer position on automatic reload.
The server only saves the maximum position the pointer has ever had. So
on reload, it often jumped to the end instead of where the user was.

(imported from commit 418ccb1144286c67503578020e88ae7b3869acd6)
2013-07-17 15:25:21 -04:00
Scott Feeney 7c39700549 Fixes for @-notification autocomplete bugs (#1418)
* Fixed highlighting of @-mention autocompletes in the new msg content box
* Fixed emojis activating not after a space (10:30, happy:smile)
* You can now autocomplete multiple names i.e. "@Jessica F"
  for Jessica Foo (this resolves Trac #1418)
* You can no longer autocomplete a full email address, e.g.
  "@lfaraone@h", the second @ stops the autocomplete. We may want to
  change this later, but for now it matches the server-side behavior
  which only completes `short_name`s.

(imported from commit 71fd195c3094484ea940a243102917cca61880d9)
2013-07-17 15:22:55 -04:00
Tim Abbott 4ffdcedae0 If multiple users match a mention, prefer the first one created.
(imported from commit e5e67c6f78a13432b19cff07bc04bddb3bd539e7)
2013-07-17 14:26:39 -04:00
Tim Abbott eecf96b520 Don't consider deactivated users for @-mentions.
(imported from commit 5e85f8c897e2ea9a3c0c37c3199666b490d6e07a)
2013-07-17 14:26:39 -04:00
Scott Feeney 1484bdf0ad Tweak edit box CSS to fit better
* line-height of 18px, same as messages you're not editing
* width of 100%, so word wrapping is more similar
* smaller margins

(imported from commit 81fc4628e0485f66615df90504462465e5805e91)
2013-07-17 14:05:16 -04:00
Scott Feeney 7a5853d41a Automatically size edit box to fit text (#1385)
(imported from commit 37cf8220334af1b70c4c9a781e66660430c19447)
2013-07-17 14:05:16 -04:00
Jessica McKellar 849b49b22d Make "subject" an alias for the "topic" operator.
(imported from commit 52c11ff48a286533906b99ed62839e6ae3e35b17)
2013-07-17 12:04:46 -04:00
Jessica McKellar 1defcf5718 Support operator aliases, and introduce the first, from: canonicalizing to sender:.
This also normalizes the casing of operators, which makes
Sender:wdaher@humbughq.com work when it would previously give an
"unknown operator" error.

(imported from commit fb3f748a474e1c9c710547ae3c05a4ace86c3230)
2013-07-17 12:04:46 -04:00
Jessica McKellar ae31988e42 tutorial: tweak how we describe topics.
(imported from commit 49fb4769a0954ac5bf7ed15989227e6a6f54c6dd)
2013-07-17 12:04:45 -04:00
Jessica McKellar dac5a46fa4 Rename user-visible uses of "subject" to "topic".
(imported from commit 19e08a13624686da8703fcb8b5eefe2e29edf64b)
2013-07-17 12:04:45 -04:00
Steve Howell d61ebc2385 Support J/K as hotkeys for page_down/page_up
(imported from commit f4d092e3a3ccd5fad5e39fb6e6c454fbfeddfa50)
2013-07-17 11:48:47 -04:00
acrefoot d8ad217bab Add sender actions to sender info popover
(imported from commit 803f7e6c51f40dc7131608b2ed295f6760925f8c)
2013-07-17 11:48:41 -04:00
Waseem Daher c7f031dc53 Don't partially color in the composebox on narrow.
(imported from commit 99c3744541b5f0d993d59c5e9589f5fd30495f9e)
2013-07-17 11:03:00 -04:00
Tim Abbott 2cda98609b subs: Update checkbox states when values are changed off-page.
Previously, if you toggled the in_home_view checkbox either in a
different browser or via the button in the sidebar menus, it didn't
actually update the visible checkbox state in the streams page,
resulting in some potentially very confusing interactions.

(imported from commit 3424430231f89a23e970a2f1bfec82c6eb0d6735)
2013-07-17 10:36:58 -04:00
Tim Abbott 56810391de Sync subscription property changes to client.
(imported from commit c0504840ea0f304da67d5e4561ab30465d4567a3)
2013-07-17 10:36:57 -04:00
Tim Abbott 8755fc05ca Move subscription_property state change code to actions.py.
(imported from commit 57056af4e4fe021fafa1d0d511a9c551cd53c74d)
2013-07-17 10:36:57 -04:00
Tim Abbott 907bb154b1 Support changing one's name without a reload.
(imported from commit 4e7aea017f016494e2674f11b96681e098816f2d)
2013-07-17 10:36:57 -04:00
Jessica McKellar fd0d8799ca Focus on the right text box when you initiate a message edit.
(imported from commit ac55ec174ade75c0ebd987f934e3857dd3d94849)
2013-07-17 10:24:54 -04:00
Allen Rabinovich 5b84b2db87 Add light blue background color on narrow
(imported from commit a007bdc48c802b36fa5185ed9d153503298150fc)
2013-07-16 15:52:18 -07:00
Scott Feeney 82e33881b5 Add failing test for #1511 (focus when composing)
Next step is to make the test pass.

(imported from commit a9401366c63166f39b8b73d6228c845af10c931a)
2013-07-16 17:57:54 -04:00
Scott Feeney bd63fdf81c Fix Trac #1511, compose focus when narrowed to PMs
(imported from commit a8fd2f018b6082599524d039826821d2337a6186)
2013-07-16 17:57:54 -04:00
Zev Benjamin eb93f20f95 On MIT, when narrowing to an unclass (or derivatives) also narrow to the base stream
Previously, narrowing to a stream also narrowed to
/^(un)*stream-name(.d)*$/, but not the other way around.

(imported from commit 6643f8d8306a737f4e96d473dd1fdbfdcd56e2a8)
2013-07-16 16:53:08 -04:00
Jessica McKellar 4ac64ed6eb If you unnarrow while scrolling, wait for the scroll to finish.
Otherwise you may end up scrolled to a random place.

(imported from commit 99d73b1876e3bde288b14b00bd48b1013f40e268)
2013-07-16 14:17:42 -04:00
Steve Howell 68f2991746 streams.js: Simplify narrow_or_search_for_term
(imported from commit 8b8faf7ec35acdb7c7506ea57890901e0e04af71)
2013-07-16 13:29:19 -04:00
Steve Howell e3392eeca6 search.js: label -> search_string
(imported from commit 5201c0d7d242d060d405692ff166f7febfc581cd)
2013-07-16 13:29:19 -04:00
Steve Howell 2d7d98adc7 Kill off typeahead_helper.update_autocomplete() and friends
(imported from commit f486c571911c0b5a62a43c976579c3a036881778)
2013-07-16 13:29:18 -04:00
Steve Howell f8cad17c75 search.js: kill off labels, mapped, update_typeahead()
(imported from commit e0320b5315762d1776ef198fe57663ee6b74d7f8)
2013-07-16 13:29:18 -04:00
Steve Howell 73f013f077 search.js: Simplify stream suggestions
(imported from commit b12395a2b3415065e0c25a637d22bc385dbdda8b)
2013-07-16 13:29:18 -04:00
Steve Howell 6e385bc85d search.js: Simplify people suggestions
(imported from commit ff3683f63e85e4d021de299d62bf2585fd6b99d9)
2013-07-16 13:29:18 -04:00
Steve Howell 82233a5de9 search.js: Introduce search_object var
(imported from commit ce4b32891011c548b0b9f6851537f3110d0f2329)
2013-07-16 13:29:18 -04:00
Steve Howell b4e05d3430 search.js: Construct descriptions while constructing suggestions.
(imported from commit 5de6d0799de6d132e6e7ac28658d0f25b71cc7ed)
2013-07-16 13:29:18 -04:00
Steve Howell d216069e29 search.js: Kill off get_object_parts()
(imported from commit fabfa6c3bf8cb0749ba1379882eda8cb9c8316ed)
2013-07-16 13:29:17 -04:00
Steve Howell ec7a5c0ea5 search.js: Simplify operators suggestion
(imported from commit 55f84b69be5e8f75a8e0ab5a7a00ba6f88873db8)
2013-07-16 13:29:17 -04:00
Steve Howell 9041b1f7ac search.js: Isolate person suggestions
(imported from commit afec996b39b662c5000f7f2217e139b872bee990)
2013-07-16 13:29:17 -04:00
Steve Howell 200a4d2d83 search.js: Isolate stream suggestions
(imported from commit 627a57d0be0b53ed4027408be949c060e6674224)
2013-07-16 13:29:17 -04:00
Steve Howell e2634042a0 search.js: Avoid sorter callback
(imported from commit d930af6e0beca6165c750dfecf85b092475e868c)
2013-07-16 13:29:17 -04:00
Steve Howell ba71dd212b search.js: Avoid matcher callback
(imported from commit aa5289b174dfeb3e89debc344b106a8446b4f6a5)
2013-07-16 13:29:17 -04:00
Steve Howell eca2ca675b search.js: Decouple object labeling from object rendering.
(imported from commit f761401d3e287aa2771ce4203f1b2b8f57c7ca86)
2013-07-16 13:29:17 -04:00
Steve Howell 0a7b5e5b6b Rename render_object_in_parts to get_object_parts
(imported from commit b040bb60d166a2f904c8d1280fb51693e0d50977)
2013-07-16 13:29:17 -04:00
Steve Howell b4dd0efc74 Move describe() from narrow.js to search.js.
(This function is only used in the search code.)

(imported from commit 44d53fbd73be56d9d416ebcafdc517c686e7adf8)
2013-07-16 13:29:16 -04:00
Tim Abbott 84a97f5c41 Document how our desktop notifications work.
(imported from commit 991d7541283d7d8d17836f5322abb0da780eba25)
2013-07-16 13:16:24 -04:00
Kevin Mehall 0975cfadf1 [third] Patch bootstrap-typeahead to hide when the source fn returns false.
On the next line, it checks and returns immediately if the source returns
false, but it should first hide the existing box or else it's just left
there until the next typeahead refresh.

This fixes the issue with the typeahead not closing properly when a space
is typed that was introduced in 7aa3f762.

(imported from commit cbe77e2152d889fe53d874e97f41cfc725166929)
2013-07-16 11:35:13 -04:00
Allen Rabinovich 4e043feeb1 Add proper Zulip wordmark to the top left - just retina version for now
(imported from commit 6160b85d742b374adca3299e2e5f48ae24b985d2)
2013-07-15 21:21:49 -04:00
Waseem Daher 6b91d8e51e Update app screenshot on /hello.
This one is also pretty bad, but it's at least correctly branded.

(imported from commit 7a8d7e0320e19809056483257b70e22c2956a06a)
2013-07-15 18:05:28 -04:00
Waseem Daher fc4a8af707 Update /apps screenshot for Windows and Mac.
(imported from commit 2886ffabb0fc7cea4ed30ffda4aba9ee8f5de03b)
2013-07-15 18:05:27 -04:00
Allen Rabinovich 5f60d12152 New zulip favicons
(imported from commit ff88af24bdfeeaaf015c04324467997aacc6407a)
2013-07-15 15:04:52 -07:00
Jessica McKellar 1e8386ee30 Change the names of bots to be Zulip bots.
(imported from commit 789dbd923af2d8e94f33ab8b741adc79f7b032e2)
2013-07-15 17:49:00 -04:00
Jessica McKellar f95662bd75 Switch to @zulip.com or the neutral @example.com in example uses of e-mail addresses.
(imported from commit 5d5c291d6d0d0d7c44eb092dddb4406cd278a0e3)
2013-07-15 17:49:00 -04:00
Jessica McKellar 4d19c784d8 Switch from the @humbughq.com to @zulip.com addresses users can contact.
In particular support@ and jobs@.

(imported from commit 8051ae5628b7378cde49b160d26b704e7e14bb24)
2013-07-15 17:49:00 -04:00
Jessica McKellar 7576942dbe Terms of service and privacy: Switch from Humbug to Zulip in user-visible text.
(imported from commit 7d6d0412a5da167d12789abee1bca4c70909112a)
2013-07-15 17:48:56 -04:00
Jessica McKellar 116ad8da5f models, forms, actions: Switch from Humbug to Zulip in user-visible text.
(imported from commit 97966e5f118276a00d116bba0b52616bbd83cb72)
2013-07-15 17:38:18 -04:00
Jessica McKellar 108ecb3b5b Error pages: Switch from Humbug to Zulip in user-visible text.
(imported from commit ce698d141564d0fce043539e7b1e9c2b9781fee3)
2013-07-15 17:38:18 -04:00
Jessica McKellar 636a5f13e1 JS: Switch from Humbug to Zulip in user-visible text.
(imported from commit 968d4f4ac84a6612492d8d063ede7dab5a2c5786)
2013-07-15 17:38:18 -04:00
Jessica McKellar d7ebd7ed84 Handlebars templates: Switch from Humbug to Zulip in user-visible text.
(imported from commit dc9ee6915454ce8f01bc4e4fafea1070d5be1cc7)
2013-07-15 17:38:18 -04:00
Jessica McKellar 81f6052fd2 views: Switch from Humbug to Zulip in user-visible text.
(imported from commit 86a6d26c751f0953b2bab1f91a8b7046236921c6)
2013-07-15 17:38:04 -04:00
Waseem Daher ba762dbac5 Remove stray <hr> at the bottom of the message info popover.
(imported from commit 9283fcb13b2a3deb265ead9da3f2b3b9b05853cb)
2013-07-15 15:27:09 -04:00
Kevin Mehall 79af591b41 Show an item for @all in the autocomplete list.
Trac #1509

(imported from commit 4bc5f088a354dea4ffaf98ac2d988d9d05b19d51)
2013-07-15 13:26:45 -04:00
Kevin Mehall 191c6b6412 Refactor emoji/mention autocomplete:
* Do the string processing to extract the current token once
   when autocomplete is started in `source` rather than repeating
   it once per potential completion in `match`.
 * Store a property for whether we're completing emoji or mention
   instead of performing different tests on each step.

This reduces the lag on emoji autocomplete.

(imported from commit 7aa3f762eaf4286608809a09a3cddbbe3dfcabf9)
2013-07-15 13:26:45 -04:00
Kevin Mehall 9d8765ac24 Don't compile an unused copy of the find_mentions regex.
(imported from commit 67e4cd89a5ed038e0e5a7459d5f88aa8d04b21d7)
2013-07-15 13:26:44 -04:00
Kevin Mehall ce131a7d69 Make the @-mention regex not match in the middle of the word.
Fixes issues with e.g. foo@hamlet.com (where hamlet is a user)

The \b was ineffective because @ made it always on a word boundary.
Instead, use the negative lookbehind trick from the URL regex.

(imported from commit fdca9bd686e4f8747e67b412cba1fa7c5c9391aa)
2013-07-15 13:26:44 -04:00
Scott Feeney 8fb286ae9a On Humbughq realm, match just "#1324" as Trac link
(imported from commit 1dd243586e1a6fadff1be09a6b727a46d655e635)
2013-07-15 13:15:56 -04:00
Scott Feeney b76b06591b Match patterns that don't start on a word boundary
This allows us to e.g. match "#1329" in "Bug #1329", even though the
place between a space and a # is not a word boundary.

Also this commit factors out some repeated code used for both in-message
and subject filters.

(imported from commit 5f7d80a58e76e51ea07fed050c88c5251faaaacd)
2013-07-15 13:15:56 -04:00
acrefoot 114eeab026 Revised message actions and message info popovers
Since f8fbf70c8502 had troubles in FF and people did not like the
message-info-on-hover, this commit hopefully will work better. Tables
are likely the culprit with using dropdowns in FF, so when we stop having
the messagelist be at table, we can switch back to dropdowns which are relatively
positioned rather than absolutely on the page.

(imported from commit c49a5cd45f3439d089146771e2aa0cee6431125a)
2013-07-15 11:29:59 -04:00
Zev Benjamin 347b222c79 Make the loading more messages indicator absolutely positioned
It now appears on top of message contents.

(imported from commit ac72a38f2a3062f7107db8125e11de78e40d927e)
2013-07-15 11:13:53 -04:00
Zev Benjamin c13c7f9661 Add support for absolutely positioned loading indicators
(imported from commit 749b1e866610c686c27cd0a5a492a04dc4d00bf6)
2013-07-15 11:13:53 -04:00
Zev Benjamin 3f7d01428c Only try to destroy a loading indicator once
This didn't /seem/ to be hurting anything before, but we really
shouldn't be doing it more than once.

(imported from commit 8d4ad7f8376227db723259ec9293262233b0a69a)
2013-07-15 11:13:53 -04:00
Zev Benjamin be0c29252e Make make_loading_indicator take its optional text via an options argument
(imported from commit 935f9049c00183f52bad80d54520f81efceb3e49)
2013-07-15 11:13:53 -04:00
Jessica McKellar b372c516cc Update the minimum message size, which is used in visible message calculations.
(imported from commit 196036b34596657c5a81250a05e1d650c41324b8)
2013-07-15 10:53:04 -04:00
Jessica McKellar 1acca8edfa Rewrite within_viewport much more cheaply using getBoundingClientRect.
(imported from commit b7a4434d426a258f89a276f472e71b04c1997df7)
2013-07-15 10:53:04 -04:00
Jessica McKellar 3ddf0187b9 Remove the narrow/unarrow opacity animation.
It increases the time to narrow without really helping indicate that
you are narrowed.

(imported from commit deacd4480cd07502905cd9f157eb34bc9391f377)
2013-07-15 10:53:03 -04:00
Jessica McKellar a1cea767fe Reduce repeated height calculations in get_new_heights.
(imported from commit bc5422519d048d6be6bc53e16bd1597d704c1ff5)
2013-07-15 10:53:03 -04:00
Jessica McKellar ea582d4e12 Use getBoundingClientRect() to more cheaply see if a messages could be condensed.
(imported from commit 34d45fbc95a3597d27d167c9c02e73f9325edbee)
2013-07-15 10:53:03 -04:00
Tim Abbott 5fc6fb5896 Include a link button after the subject when it matches a realm filter.
This way if you refer to "trac #253" in the subject, it's super
convenient to get from your recipient bar to the ticket.

A note on performance: this part of rendering for 1000 messages takes
about 3.5ms for messages with 1 match; this is small compared to the
overall time for to_dict_uncached for that many message objects, so I
think this is OK for now.

(imported from commit 5bdc2b8415d7599d59eb554739f545c485b78d5a)
2013-07-15 10:41:13 -04:00
Leo Franchi dfeb40db61 Fix typo to fetch user email from user_profile object
(imported from commit 3d6294e85dc56dae00e624e00d8add158ef6aabf)
2013-07-14 18:46:40 -04:00
Leo Franchi 92fc542872 Show a on-hover cog for going directly to stream settings page
(imported from commit 9ba04d88daacd475d9b85ce7c8bd925840290535)
2013-07-12 18:34:13 -04:00
Leo Franchi 550aea8c64 Show a light STREAMS title in the streams list
(imported from commit 675ebca52ba10b8075bb788adf70d293b4d58fde)
2013-07-12 18:34:13 -04:00
Scott Feeney 91831d5ba7 Refactor compose code to clarify API
Renamed show, hide and clear to show_box, hide_box, and clear_box,
to make it a little more obvious what each one does and make them
greppable.

Also, hide and clear weren't being used by any other modules, so
these functions are no longer exported.

This resolves Trac ticket #1503.

(imported from commit 904d596ef5b8dc2154dc01ed7c9c99a54dc9b31e)
2013-07-12 18:26:13 -04:00
Scott Feeney a7963a24f8 Remove compose.set_mode in favor of compose.start
From Trac ticket #1503:

All of the calls to compose.set_mode() should be calling compose.start()
instead. Nearly all are impossible to trigger while already composing,
and by calling compose.set_mode() they just do the stuff in set_mode()
twice. The only case where this would change behavior, that I can see,
is if you press C, Shift-Tab to unfocus the compose box without
dismissing it and then press c (or vice versa). I think it's okay if we
clear the input fields in that unlikely case.

(imported from commit ba7f181ec9d1df90a443b0a754462a3a201dcabb)
2013-07-12 18:26:13 -04:00
Leo Franchi 017bd6b8b1 Don't limit ourselves to webkit for audible notifications
Previously we were checking for webkit before checking for
$('<audio>') support, but that cuts out non-webkit browsers that support
the basics of the HTML5 audio api.

Now we actually run the feature test in order to enable it, and only
check for webkit when enabling webkit-specific desktop notifications

(imported from commit 851eed86af167d0530f7e1793e2ca1f9b4cdd71d)
2013-07-12 17:28:50 -04:00
Kevin Mehall 218a7dc1bd Send message on Ctrl/Cmd-Enter.
Trac #1445

(imported from commit d9d623ea260c1eaffdcdc49773152e8cf18d3f1c)
2013-07-12 16:17:22 -04:00
acrefoot 00684e1632 Sort our emoji list lexically as opposed to the order of emoji-cheat-sheet
For completions, since we have no representation of categories, users
might expect lexical ordering.

(imported from commit d2e27dd4d8452df6ac48d44551802d7e65519115)
2013-07-12 14:33:39 -04:00
Leo Franchi e5b855d883 Add a bulk invite page for the first user in a realm
(imported from commit cf85c9d475209da4591e2f06f142008fb19ac9d5)
2013-07-12 13:07:02 -04:00
Leo Franchi bd837936ce Refactor json_invite_users into do_invite_users
(imported from commit 053274a1fcfbb93fba27d136b246b65b3491f549)
2013-07-12 13:07:02 -04:00
Scott Feeney ffa8541818 Remove vestigial parts of old minify code
(imported from commit 692e292528a1697687f1b3024c58371b2cf9b5c9)
2013-07-12 11:59:11 -04:00
Scott Feeney 0f734fad2b Don't generate minified_assets.json
The new minification process no longer needs it.

(imported from commit cd192120f74f58b10165807903b3318ae0a2c2b6)
2013-07-12 11:59:11 -04:00
Scott Feeney 2c33320746 Reuse minified JS from previous deploys
This is a big change affecting lots of areas:

* Pipeline no longer deals with JS (though it still minifies CSS)
* A new script, tools/minify-js (called from update-prod-static),
  minifies JavaScripts
* A command-line argument --prev-deploy, if passed to minify-js or
  update-prod-static, is used to copy minified JS from a previous
  deploy (i.e., a previous git checkout), if the source files have
  not changed
* update-deployment passes --prev-deploy
* Scripts are now included with the minified_js template tag, rather
  than Pipeline's compressed_js

Also, as a side benefit of this commit, our Handlebars templates will
no longer be copied into prod-static/ and accessible in production.

Unminification is probably broken, but, per Zev and Trac ticket #1377,
it wasn't working perfectly before this change either.

(Based on code review, this commit has been revised to:
 * Warn if git returns an error in minify-js
 * Add missing output redirects in update-prod-static
 * Use DEPLOY_ROOT instead of manually constructing that directory
 * Use old style formatting)

(imported from commit e67722ea252756db8519d5c0bd6a421d59374185)
2013-07-12 11:59:04 -04:00
Kevin Mehall 7f7843020d Show server errors in the message edit form.
Refactor common code from compose into a util function.

Trac #1455, #1448

(imported from commit 6fb691ac952b833655584b05f6caedaefe41c1a0)
2013-07-12 11:35:09 -04:00
Kevin Mehall 77aeee118b Check that message subject and content are nonempty on edit.
Fixes: Trac #1455, #1448
See also: Trac #213

(imported from commit 0d839da13ac22e1648b0d2a7cf09d1c1218b98ae)
2013-07-12 11:35:09 -04:00
Scott Feeney 86151bb5ef Blueslip: on staging, save stacktrace for easy c&p
(imported from commit 5c6b3ddd789100b011aeef863495ae8cb5cdaac8)
2013-07-12 11:33:17 -04:00
Scott Feeney ccec989036 Set page_params.staging on anything that isn't a prod deploy
Until now, page_params.staging has been dependent on whether DEBUG =
True. On your local server, page_params.staging is true unless you set
DEBUG to False to test minification, in which case, it's false. This
situation still counts as staging IMHO, and the new behavior will be
more useful for testing as well as consistent.

Quick reference chart:

Is page_params.staging true...  without this commit?    with this commit?
                                --------------------    -----------------
On a local server, DEBUG=True          Yes                    Yes
On a local server, DEBUG=False          No                    Yes
On staging                             Yes                    Yes
On production                           No                     No

(imported from commit 6ea960e7945844dde0fbedbe901062508312b051)
2013-07-12 11:33:16 -04:00
Leo Franchi eb0f8bda09 Ensure the last_reminder datatetime is tz-aware
I don't fully understand the need for this, but I have seen some
tracebacks on app that complain:

File "/home/humbug/humbug-deployments/2013-07-11-19-28-10/zephyr/lib/actions.py", line 1289, in handle_missedmessage_emails
    timestamp - user_profile.last_reminder < waitperiod):
TypeError: can't subtract offset-naive and offset-aware datetimes

Since timestamp in this case comes from timestamp_to_datetime
that explicitly sets the tzinfo, we know it's tz-aware. The only
other possibility is that user_profile.last_reminder is **not**
tz-aware, though I am not sure why that would be the case.

(imported from commit 67e33f4510e91fa9de504f0c610515581312c98b)
2013-07-12 09:57:09 -04:00
Allen Rabinovich c534d7cde7 A better chevron for message actions dropdown
(imported from commit 4ef172175db927f5385aceb2b369349adc47201a)
2013-07-12 06:13:20 -07:00
Kevin Mehall c2b862e238 Bugfix for 7167ed0: fade class is `message_reply_fade_narrowed` when narrowed.
It would show the recipient bar unfaded over a faded message when
narrowed to a stream.

(imported from commit 576e7bd7bdf1fbb3f241f1ba8cd1548c4546257d)
2013-07-11 17:51:38 -04:00
Scott Feeney 4313f2ff1e Set initial user presences in O(n), not O(n²) time
Previous code iteratively called set_user_status() once for each user;
which in turn was rerendering the user sidebar, also once for each user.

I changed the API a bit by replacing activity.set_user_status() with
activity.set_user_statuses(), plural, that takes an object and updates
all the user statuses in one go before rendering.

(imported from commit 1111c9029264f892f25e76d2e5e5ff996dcbc7ca)
2013-07-11 16:48:29 -04:00
Scott Feeney 8fcf208815 Use one template for all user presence rows
This will hopefully fix some lagginess when logging in on the Hacker
School realm, especially on Firefox, as the user presence rows are
populated (previously requiring hundreds of template renders).

(imported from commit 67e2d7f91ad62d8d7a2e212ee7c7121bd73f010b)
2013-07-11 16:48:23 -04:00
Waseem Daher b2fa0d4b9f Don't have huge left-and-right margins in less-wide windows.
Having a margin of 20px on both sides is rather overkill, especially
when the screen isn't super-wide. (And when it is super-wide, we can
control the width with max-width anyway.)

This actually doesn't really free up that much space -- the main
constraint actually seems to be the width of the column itself -- but
psychologically I feel like it feels a bit better.

(imported from commit 6122f0bd3042ee2faf154921c946c0bd65c956ef)
2013-07-11 15:47:08 -04:00
Leo Franchi 3525b88fa1 Add messages to all our message lists before calculating unread
(imported from commit e216246a045a3ed2de43076e89eb99648c8bac56)
2013-07-11 15:06:32 -04:00
Kevin Mehall 862f07c9d8 Update fade when returning to home view.
Fix a minor bug where if you return to the home view with a recipient
filled out, it would be unfaded.

(imported from commit d81d974dcb054c63d8a5dd5afec7b072c99d4e3f)
2013-07-11 15:00:10 -04:00
Kevin Mehall 5062a148df Don't fade when subject box is empty.
Otherwise it fades all messages.

Trac #1468

(imported from commit 393514f9f3b2b7f46945878d93e8c12e4685afeb)
2013-07-11 15:00:10 -04:00
Kevin Mehall 219a72b3a0 bugdown linkify: Improve handling of email addresses.
* Allow email addresses surrounded by <>
  * Reject things that look like email addresses that have a path after them

This requires adding a new branch to the regex specifically for email addresses.

  * Fix comment whitespace

(imported from commit 0383cd4067ae9ee31f3802e6777a200ba1cbccd6)
2013-07-11 15:00:10 -04:00
Kevin Mehall 67f908e08c bugdown linkify: Fix links that have symbols directly before them.
Be more restrictive on what characters can be part of a URL and what
characters can precede a URL to prevent linkifying other strings that
come just before a valid URL. Allow : and , before a URL.

(imported from commit f072980b39ff652edf20de0585f256f072d04e88)
2013-07-11 15:00:10 -04:00
Tim Abbott eaf3dbd902 Fix scroll position when unnarrowing after a reload when narrowed.
(imported from commit cc2f9f3f202d8331ee6cd7b9a73611d1f1f193d3)
2013-07-11 14:59:45 -04:00
Jessica McKellar dd57e0490d subs: Rearrange some of the color logic to make the linter happy.
(imported from commit dd4b8b446dae4fc12d817165f67deb423cf06166)
2013-07-11 14:42:45 -04:00
Jessica McKellar 0ad6d7ead1 Display the correct stream color in the color picker when (re-)subscribing.
(imported from commit 56d96799f3a049a0c64cef3bab7f82c9d6420cca)
2013-07-11 14:42:45 -04:00
Kevin Mehall 8df4857524 Revert to old mark as unread on view behavior.
Effectively reverts 185e865 and b67e52d.

(imported from commit e9b95f1fd9e2ab7926f15910044e9e9879ea085f)
2013-07-11 14:01:26 -04:00
Kevin Mehall 674152dae1 Show the recipient bar when the compose box is open, as long as
it's on a message that isn't faded.

Trac #1464

(imported from commit 7167ed0877d3885316b7d38af5f11ec5523d5f7d)
2013-07-11 13:41:49 -04:00
acrefoot eccdb9505b Add missing emoji, normalize {white,black}_square variants
(imported from commit 474db3fb2eeafc7bc59260d8641cfa56a84933d6)
2013-07-11 11:58:29 -04:00
Leo Franchi f0ca927fb2 Only match : preceded by a space for 😧 📝 autocomplete
(imported from commit c2a6a5be733f538b0c7dad61a1c8fdb625fcd03e)
2013-07-11 11:43:39 -04:00
Leo Franchi 8c7156acfa Don't autocomplete emoji until the 2nd letter 💻
(imported from commit 25986e2c3d939b61c4eb71596944748522d2cb54)
2013-07-11 11:41:10 -04:00
Leo Franchi b5273b4c25 Focus the next open textarea when starting a compose
Previously we had fancy logic to determine where to focus, but immediately
clobbered any focus choice we made and forced the stream selection to be in focus.
We also incorrectly determined what to focus in the case of clicking the new PM
button when in a stream narrow.

(imported from commit 01e2cec8eca068ee1d45d3cfb21607b981d5034e)
2013-07-10 17:43:46 -04:00
Leo Franchi 2d4ba0ed4b Set Reply-To to noreply@ explicitly in all required cases
It seems that even though we set the From to be <noreply@humbughq.com>
it's possible that when sending mail via Google it automatically sets
the From: field to be humbug@humbughq.com. Here we set Reply-To to noreply@
in all cases explicitly in order to avoid having replies sent to our
inboxes.

(imported from commit 5fa643be2b78fd632e310836bf1be862d6f1d333)
2013-07-10 17:38:37 -04:00
Steve Howell e736e393aa Show errors when deleting bots.
It's pretty unlikely these will come up in practice.

(imported from commit 6d809a8c98bfa09e69541d7dfd02094c16273c18)
2013-07-10 17:23:20 -04:00
Steve Howell 97994ea7a9 Shorten private operator (private-message -> private).
(imported from commit f938bd56de05cc8fc0da18348d4dec8a18c96bb9)
2013-07-10 16:58:17 -04:00
Steve Howell 43602b589f Shorten mentioned operator (mentioned-message -> mentioned).
(imported from commit 5104f75a7ed19f533ab5bca466d3e017c72bd1b8)
2013-07-10 16:58:16 -04:00
Steve Howell 600964b1de Animate removal of bot from the list.
(imported from commit 4c7e7aa07fa58c924ed78dbdc1d81c6e4bb28756)
2013-07-10 16:19:22 -04:00
Steve Howell c27e1105e5 Allow users to deactivate their bots from the website.
(The back end had been in place already.)

(imported from commit ec4b7b3ea39d71d86b0bdc161740e494ce1e13f7)
2013-07-10 16:19:22 -04:00
Tim Abbott 227995e971 narrow: Don't crash computing then_select_offset for offscreen then_select_id.
Unlike the other cases where we do this sort of offset calculation,
we're working with a message which is not msg_list.selected_id() --
which means that this message might not actually be rendered at all.
Correct for this by just letting then_select_offset stay undefined in
that case.

(imported from commit ebb8a23bf34c52f9495aa88ceca8eb4458d50be1)
2013-07-10 13:21:08 -04:00
Kevin Mehall 54d85c68e2 Avoid the focus border around modals.
(imported from commit 9f0111f9d858ab2f058e2c75c8cb00a3716cdfed)
2013-07-10 12:31:32 -04:00
Kevin Mehall c190be38fe Make modals shrink to keep buttons on the screen.
This works down to about 330px height, and is probably about the
best you can do with current browsers in pure CSS.

See also: http://caniuse.com/#feat=viewport-units

Trac #786, Trac #1416

(imported from commit eeb931bb34aa6414fdf1b61db68c6aede1808a58)
2013-07-10 12:31:32 -04:00
Kevin Mehall 4f68cf939e Don't show the subject typeahead when it's not helpful.
When it's not offering any other suggestions, suggesting what
you've typed is unnecessary and confusing and it should just
hide completely instead.

Trac #1476

(imported from commit ff69bb53c661e0a3a193dbddde6e7a4ff8b10031)
2013-07-10 11:41:12 -04:00
Jessica McKellar 6719854961 Make the tutorial popovers visible even in thin windows.
(imported from commit 0cec5db8b3a881ac1850210bd5ff4563ce2ad699)
2013-07-10 11:20:22 -04:00
Tim Abbott 98f6a20900 Fix selector when picking a custom color.
This seems to have been somehow introduced in the refactoring to move
the popovers into their own file
(36ad3c61e4d7eb05751f9b886d15edceab656d71).

(imported from commit f5f58844a9c2da4b4433489be1772263f3aba350)
2013-07-10 11:09:56 -04:00
Steve Howell 86930191ae Show up to 5 subjects in left sidebar (8 -> 5).
(imported from commit 78888034a2b71617dd6f639b4e7db4beedbb5fa5)
2013-07-09 22:30:28 -04:00
Allen Rabinovich 2176ca0977 Fix unread indicator in FF by moving the pseudoselector to an inner div that supports relative positioning. Position the indicator based on whether the sender avatar and name are included in the message or not.
(imported from commit 305343bceb8656c380afd2100220afc0d0777540)
2013-07-09 15:12:51 -07:00
Tim Abbott b8c40119a2 Don't 500 when users try to make their name super long.
(imported from commit 0c5e8baa421ed8cbff431bc5085ffe78b0a8fc1e)
2013-07-09 17:43:47 -04:00
Tim Abbott ce365829f1 Fix traceback checking for new messages on empty narrows.
(imported from commit da0ba189f23fecdee376066db956e1320bca4deb)
2013-07-09 17:43:46 -04:00
Waseem Daher 7d7330df03 Bring the floating recipient bar closer to the tab bar.
I feel bad about this commit because it really only exists
to fix a math error elsewhere -- it's basically a hacky solution
to Trac #1426 that doesn't involve actually fixing the math
that exists in the app somewhere, but instead makes our app
conform to that math.

(imported from commit ad43bf9440b80fd768c5fa1cbe5cb4a683415c02)
2013-07-09 15:36:20 -04:00
Tim Abbott 9cb2cb07d5 populate_db: Tweak the humbughq.com realm's default streams.
(imported from commit c13e68e4e3de9d689eb494709c7de54c5a063060)
2013-07-09 14:35:02 -04:00
Tim Abbott 679f29ddf7 populate_db: Clear memcached when deleting database.
(imported from commit 58f01a6922cf8b20c08ca9157d08f3c553764da5)
2013-07-09 14:35:02 -04:00
Jessica McKellar 20a43706f4 When you change a stream color, also update the floating recipient bar if applicable.
(imported from commit 121f48887a18f22ec173ad5e540d040859f2bf62)
2013-07-09 14:22:42 -04:00
Jessica McKellar 2b10ccf03a When you change a stream color, also update the color in the crumb bar.
(imported from commit 187c1738f4a7bf3f888dfccca315feeeb2137f4d)
2013-07-09 14:22:38 -04:00
Jessica McKellar 3c1b59d840 Fix updating the stream color in messages.
(imported from commit 5d38cf7864ddeb489ca653ac568ee9c738577711)
2013-07-09 14:20:41 -04:00
Steve Howell 6347bdfcc8 Starring a message makes it read.
(imported from commit 80c1af9e34f4904266a64d89c57cd82e84c02b48)
2013-07-09 09:57:20 -04:00
Steve Howell 1edd9a1d9f Fix scroll-to-the-middle bug.
(imported from commit dcd102541c8ee2b341060def714c24b05f2db514)
2013-07-08 23:11:09 -04:00
Waseem Daher cf710708df Add a little space between startup checkboxes and their options.
(imported from commit 0168e9ba4173e92d0c0c01250c8f63e25918a016)
2013-07-08 23:02:56 -04:00
Waseem Daher c89b662ce6 Give up on "pin tab" and instead push for "get app".
(imported from commit 2aacc547bbe4578c19bc6044183eb06005f2e666)
2013-07-08 23:02:56 -04:00
Tim Abbott 849cf69f61 Fix scroll position when updating messages.
(imported from commit 8d6eb0c1cb980f3d5ad46370ae0f05355bcbeb33)
2013-07-08 22:26:17 -04:00
Allen Rabinovich c999019ae3 Add highlights to selected filters and streams/subjects in the left sidebars, as well as a pointer arrow
(imported from commit 5c799a19c5bde52705c60e1b9fdae832bd5474f0)
2013-07-08 19:09:52 -07:00
Steve Howell f87b27a9c3 Bold @-mentions link when you click on it.
This fix also cleans up the search operators so that @-mentions
and Private messages have a more similar naming convention.

(imported from commit fb1a2119aab5aa9e179c6e321a8d2ef2e90290cf)
2013-07-08 22:04:28 -04:00
Waseem Daher 58e57d7462 Revert "Increase bottom_whitespace to be most of the viewport height."
This scrolling behavior is driving me crazy on staging.
Reverting until we come up with a better alternative.

This reverts commit 41954fecd9efb43820ed1ccb5210283c17752f51.

(imported from commit 2db602cf51ca734b00ec1bd454c39204468fa024)
2013-07-08 21:04:52 -04:00
Allen Rabinovich 9c81056962 Remove gradient from unread messages
(imported from commit 1dbf0d81884bb45f3f67453e75acbc77aea43293)
2013-07-08 17:26:00 -07:00
Scott Feeney ba71013b7c Hide a popover when showing a different popover
This is one case I forgot from the last commit. For example, if the
message actions popover is open, and you open the user sidebar popover,
the message actions popover should close. It now does.

(imported from commit a241634cb1aabf8883cf95ebd5b8ba96f5ed9908)
2013-07-08 18:58:08 -04:00
Scott Feeney 6030abb888 Fix clicks not dismissing popovers (Trac #1435)
A cleaner, more general solution would be nice but this fixes at least
the most obvious cases for now.

(imported from commit fc7260e25a4f2172eee74af9c2d9384898947ad3)
2013-07-08 18:53:20 -04:00
Scott Feeney d23e8d8a30 Simplify and fix preventDefault -> stopPropagation
(imported from commit 3cb84804027b67662392e5a7c75bfb0603b9318d)
2013-07-08 18:53:03 -04:00
Scott Feeney c42bf9b9b2 Refactor popovers into their own file
(imported from commit 36ad3c61e4d7eb05751f9b886d15edceab656d71)
2013-07-08 18:53:03 -04:00
Luke Faraone cfe9e268f4 Do not specify cascade=True in deactivate_user_backend.
This was mistakenly included from a previous iteration of the do_deactivate()
function's interface.

(imported from commit 0a6ddc5ba1dfe944f2cc0087c590046da6a73531)
2013-07-08 15:44:01 -07:00
Tim Abbott 7540ad6234 Fix tracebacks from prepending messages after narrowing.
(imported from commit 6bed33975ee80c324270b518e0dcb807c1f1df41)
2013-07-08 18:18:48 -04:00
Luke Faraone 2c83d015a9 Refactor bot deactivation view to cover all users and expose via REST
(imported from commit 9f7afb3b43ed14db0bb4217dbae4114846bb840b)
2013-07-08 18:00:28 -04:00
Allen Rabinovich d4da8570bd Change the unread message style to a top-left corner marker and a full messagebox diagonal overlay gradient
(imported from commit dd171437bdd40219584774bc38c77798fa1568e2)
2013-07-08 14:36:55 -07:00
Tim Abbott 54c32992fd Fix hitting down-arrow at bottom of message list.
Previously the viewport.scrollTop() command that we ran in this case
would actually scroll far off the bottom of the site; it only did
something that looked reasonable because bottom_whitespace was small
and thus the scroll was truncated.

This version scrolls to 10% of the viewport away from the top.  We may
need to tweak that to instead be a fixed number of pixels or something.

(imported from commit 0176bf6e3662dfa24887f41b110b429bd8054cb0)
2013-07-08 17:32:18 -04:00
Tim Abbott 0e8c55395c Fix save/restoring scroll position when toggling in_home_view.
Previously the code to save/restore the scroll position when toggling
a stream in/out of the home view would only work if you were currently
not in the home tab -- because you used to only be able to do this
from other pages.

(imported from commit 4002a3980dfd87dabd570abee3ebc63417a78cc5)
2013-07-08 17:32:18 -04:00
Tim Abbott 641377e7e0 Add messages at bottom when message list is empty.
(imported from commit d15ff7ddb39e30ca08dd9d0eccf3dae75414a3ef)
2013-07-08 17:32:18 -04:00
Tim Abbott 43279b99ff message_list: Clear rendering window when clearing message list.
(imported from commit 5eefbced42e9ab987e4e2d60332f1d416df605af)
2013-07-08 17:32:18 -04:00
Tim Abbott 166a9c9635 Return the viewport to a corresponding position when unnarrowing.
(imported from commit d1cb35b175a23e18ed79537843ce7940ec370cf3)
2013-07-08 17:32:18 -04:00
Tim Abbott 0d5469f6ab Preserve the location of the selected message when narrowing.
(imported from commit 38230a79d3bb2c403e20ed9b40b04731c0312325)
2013-07-08 17:32:18 -04:00
Tim Abbott 9145246ace message_list: Don't leak date row headers when prepending messages.
(imported from commit 794c668dd79f89000e6559c0d96c78832e4e43d0)
2013-07-08 17:32:17 -04:00
Tim Abbott bdaacc5393 Don't call msg_list.append/prepend with empty arguments lists.
This can cause unnecessary work to be done.

(imported from commit a33d69598531b6a99520f92cbbac1fdb7eb9ee49)
2013-07-08 17:32:17 -04:00
Tim Abbott a158ee233a message_list: Preserve the scroll position when prepending.
Previously, we had some ugly complicated logic through which we
attempted to keep the selected message on screen when prepending
messages, but we didn't actually preserve the scroll position -- the
selected message would jump on the screen.  This fixes that, by just
saving/restoring the scroll position of the selected message.

This perhaps makes our model/view split even less clear, but at least
it's correct.

(imported from commit 0a01450bbbcdf1b45c891d0570c9fcfb11769315)
2013-07-08 17:32:17 -04:00
Tim Abbott 24055e894e message_list: Fix prepending of messages.
message_list.prepend() now actually only rerenders the new messages
when prepending using the where="top" functionality (previously it
would erroneously just adjust the message database and then wait for
message_list.append() to call _maybe_rerender(), determine that things
are awry, and rerender the whole message list).

(imported from commit c64b7b540a4f5332ad792de0fad9f20750e6db1c)
2013-07-08 17:32:17 -04:00
Tim Abbott e5c96fb3ad Increase bottom_whitespace to be most of the viewport height.
This has two benefits:

(1) Users can scroll their last message to near the top of the screen,
which decreases how often one needs to scroll down to track current
messages.

(2) It makes scrolling bugs near the bottom of the screen a lot easier
to find, because scrolling down too far isn't blocked by being unable
to scroll messages off the screen.

We should probably later convert this to some formula that varies
dynamically based on the height of the last message.

(imported from commit 41954fecd9efb43820ed1ccb5210283c17752f51)
2013-07-08 17:32:17 -04:00
Tim Abbott f48097b609 recenter_view: Always place the initial pointer at the center.
It turns out that this code tries to place the initial pointer 1/7
from the top; the only reason something reasonable happened
historically is that bottom_whitespace was only 40% of the screen, so
the pointer message ends up landing in the center anyway.

(imported from commit 56d4c2acd018d9a87551c82a43c214c6d80bfb90)
2013-07-08 17:32:17 -04:00
Tim Abbott f10d3d5517 Only autoscroll for messages that arrived via get_updates.
Previously we incorrectly would sometimes trigger autoscroll when
messages arrived via get_old_messages (i.e. we loaded some historical
messages from the server).  This resulted in some confusing and
erroneous scrolling behavior.

I kinda hate the fact that we need to pass these values all the way
through the rendering process, but fundamentally there's no other way
for _render to find out, and pushing the autoscrolling higher up in
the stack is hard since we don't return anything like the block of new
messages.

(imported from commit c5ed27f1b21691a21c68ed7e09cff8e3e4a75e76)
2013-07-08 17:32:17 -04:00
Steve Howell a90a155e03 Make narrow.by_recipient 'read' a message.
(imported from commit aadefa6be8f04a033d278050eb1d5135d5b1bdc5)
2013-07-08 17:12:32 -04:00
Steve Howell 0908f15109 Make narrow.by_subject 'read' its message.
(imported from commit e81140c440fecd283443eab46f0c65faffee8df1)
2013-07-08 17:12:32 -04:00
Steve Howell 465728da37 Move functions inside zephyr.js (cosmetic).
This is purely cosmetic, and just puts some similar functions
together in a way that JS lint won't complain about calling a
function before it was defined.

(imported from commit 8a5a81ae5b7ca7dbaa60147ae4f32f50b1cbbf3a)
2013-07-08 17:12:32 -04:00
Steve Howell 01d96ee7fb Mark messages as read when beginning a reply.
(imported from commit 9743e044dbb7570edcb341ca726369a673fc3db9)
2013-07-08 17:12:32 -04:00
Luke Faraone 09249ffa3b knight should dry-run unless you specify -f
(imported from commit fd0e5af1d941c6fadcbc14ff7f86f71a170a503e)
2013-07-08 17:07:55 -04:00
Luke Faraone 2daf8db3a5 Add a parameter to knight.py to remove user rights.
(imported from commit 4527955f688298ba56296e9f24d42e33f7d04948)
2013-07-08 17:07:55 -04:00
Luke Faraone f22abf2b8a Add a management command to create realm administrators.
(imported from commit ab2dd580a206f29086c0d5a4e717c1bfd65a7435)
2013-07-08 17:07:55 -04:00
Luke Faraone ae03ff408b [manual] Define realm.administer permission
To apply this to your system, run:
    python manage.py update_permissions

A rebuilt database will already have the correct permission defined.

(imported from commit 5b826b940257e14b3e9e44f9c32b20ed0183dedf)
2013-07-08 17:07:55 -04:00
Luke Faraone 6988490980 Add a management command to create objects for newly defined permissions
This script does not remove permissions that already exist.

(imported from commit 15d18266a05a84b9cac6cc7d2104668b41b48f35)
2013-07-08 17:07:55 -04:00
Luke Faraone 93ce1ff431 [schema] Add PermissionsMixin to UserProfile
This creates the required model fields to use the Django permissions
framework or various other third-party frameworks.

To apply this commit, run:

    python manage.py migrate zephyr

(imported from commit a14fa7552c5389522d15edecedfd8a34418bb23d)
2013-07-08 17:07:55 -04:00
Kevin Mehall 9cb5c23da9 Removed unused rendered_content argument
(imported from commit 214d0dac63bb4e7fc4fd477ab1e22a0f2e65227d)
2013-07-08 16:53:13 -04:00
Kevin Mehall a7c91bce1b If there is no rendered_content in the database, render it and
save it. This fixes the "Humbug note:" error on old messages that
do not have rendered_content in the DB.

(imported from commit f4664d712fc40e4af9eb12eae74f37d100499def)
2013-07-08 16:53:13 -04:00
Jessica McKellar dd53c1fbe3 Keep the compose box open on a buddy list-initiative PM.
(imported from commit aabfec328a3c1b64aab653ddcbe04568f5742727)
2013-07-08 16:36:32 -04:00
Allen Rabinovich 0e28fd608c Prevent mention overlaps
(imported from commit e39e9e00f7304d4b811169a5075c5dd98dadad61)
2013-07-08 13:03:31 -07:00