Commit Graph

5523 Commits

Author SHA1 Message Date
Reid Barton 9e23907259 Add "Lurk" mode
/?lurk=foo will show all messages to the stream "foo", regardless of
whether you're subscribed.

(imported from commit 049d98b3ee8df19ef0a9dc392ae941dd463f8dd5)
2013-01-16 14:19:06 -05:00
Zev Benjamin cb8c67b325 Keep a dictionary of user email address to person object
(imported from commit 16d63fefff3bda33cfc2f90398539b5e2d9bb499)
2013-01-15 17:02:39 -05:00
Tim Abbott d121c51584 update-deployment: Delete pyc files on deploy.
(imported from commit 852258b1fd1b837807d11e5f4693012cd438c395)
2013-01-14 11:52:39 -05:00
Waseem Daher d9e50117be Frontend for invitations.
(imported from commit 8afab7cc5a4a5c14b605f1b27b48036c9414f7d0)
2013-01-14 10:25:26 -05:00
Tim Abbott af88c10c5e Add tools/test-backend script to run backend tests.
(imported from commit fde4c7deb1e64e8cca9d62cda905f13d90392961)
2013-01-10 16:59:36 -05:00
Jeff Arnold 7709e21a24 Notify the user when someone is speaking at them
(imported from commit 662ea67b2cf210bfd327ae2db6f924e4424d6d50)
2013-01-09 20:18:39 -05:00
Jeff Arnold db6f03d46d Make the back button work when narrowed
(imported from commit be922b06e7b53ec21751e67a490bb518333c3e6c)
2012-12-19 14:46:31 -05:00
Tim Abbott 15c83127ee Rename do-schema-change to something more scary.
(imported from commit e02b9e7a778d104fb0bdb346947f639622186aa7)
2012-12-14 17:57:23 -05:00
Zev Benjamin e6a26d1bb1 Adapt do-schema-change for Postgres
(imported from commit 3ab9054d110acf379c8d1686acaf56a92b4f90da)
2012-12-14 17:56:12 -05:00
Keegan McAllister 44b9925bfc Configure get_updates timeout in settings.py
(imported from commit 2a647bdd73c43ca5fed704925808efafc70da044)
2012-12-14 16:22:42 -05:00
Luke Faraone 5a0f1897bc Add humbug-send, a more full-featured sending tool.
(imported from commit 631f3c7320192a502b60bc4c4838d068ed60ee76)
2012-12-12 16:48:00 -05:00
Tim Abbott b14e4d2a57 Add tool to merge messages logs together for populate_db.
This tool hardcodes the paths to the input log files; we'll need to
change that down the line.

(imported from commit 8b067a6d3dc781694a001d549e5e60900d9c2596)
2012-12-11 17:17:38 -05:00
Tim Abbott feda941ac4 build-api-tarball: Fix prefixes.
(imported from commit 870ae9ab242c4d373a5901beec83b4c03d371d89)
2012-12-11 17:17:27 -05:00
Zev Benjamin 7e4776322d [manual] Unify huddles and personals into private messages on the receive path
feedback-bot and zephyr_mirror will need to be updated and restarted
when this is deployed to prod.

(imported from commit fe2b524424c174bcb1b717a851a5d3815fda3f69)
2012-12-04 18:01:51 -05:00
Zev Benjamin 3e1802bcea Add tool for deploying branches to origin/master
(imported from commit 0fb0b5d37ee5c8486791e55fa731d207477ba248)
2012-12-04 12:46:07 -05:00
Keegan McAllister 9125489c20 Rename class HumbugAPI to Client
(imported from commit 4270f31fc5febcd9c444d0d133a1dad3860618f0)
2012-12-03 15:54:54 -05:00
Keegan McAllister bd7b7adb6b Rename api.common to humbug
Fixes #482.

(imported from commit 1bd6a7fd993d8d5e225e0311c288dbce0c369a40)
2012-12-03 15:54:54 -05:00
Zev Benjamin 46f4a5eb38 Add util module
(imported from commit 3844e136fb799c6f57f8823255addf00a07ef686)
2012-11-30 15:04:46 -05:00
Jessica McKellar 37968bc9c7 If necessary, scroll to avoid occluding the message to which you are replying.
(imported from commit adf23d647a3d462d6236d8f1039da89a31b782d5)
2012-11-30 14:32:41 -05:00
Jeff Arnold b52dbe1ca9 Auto-invoke "Load older messages" when at the top of the page
Resolves Trac #445

(imported from commit d7d96fe82e9e1cbef32e0dde284ce217e83aff55)
2012-11-29 14:18:38 -05:00
Tim Abbott aba2192ec2 Restore the time-travel functionality with Waseem's UI.
This restores the time-travel functionality and fixes Waseem's laundry
list of problems with its original UI.

(imported from commit e30e02c25af994435adb815d26284b3669c945a4)
2012-11-28 22:26:31 -05:00
Zev Benjamin 9edea3454a inject-messages: use new send_message API
(imported from commit a0ea83fcd1944d06d8b0d9e6bed49a33901b20fe)
2012-11-27 16:08:54 -05:00
Jeff Arnold 2f882b505a Show "how many messages have arrived while away" in the document title
(imported from commit 6e2a18be9953694048d107a56a03a67f8bc2bd5a)
2012-11-27 13:39:46 -05:00
Keegan McAllister 41e43cb707 Flush memcached on every deploy
This uses pylibmc, the same memcached client library we use from Django.  If
that becomes a problem for whatever reason, all we really need to do is send
"flush_all\n" to TCP port 11211 on localhost.

(imported from commit 0b9736bd31b0549b5dabd4b735706351635a9cf2)
2012-11-26 16:59:37 -05:00
Jeff Arnold 4cb0c6225e Add webkit desktop notifications
Partially addresses Trac #31

(imported from commit f1f04b5c50bf9f33b69c90926fd67015cd2dc219)
2012-11-26 14:43:55 -05:00
Tim Abbott c86fd609e2 Add tool to build an API tarball for distribution.
(imported from commit eeaf9f526f243cc628eede603fe1b1691c34977f)
2012-11-26 12:25:39 -05:00
Tim Abbott 7314c12527 api: Read the API key from ~/.humbug-api-key by default.
(imported from commit 309469a0955969eafd78fbdf89d9651cb530010d)
2012-11-26 12:25:38 -05:00
Tim Abbott 14494d6a1f Add "time travel" feature.
(imported from commit b7b6794ad635ec63269a2043cd48b02749fbffda)
2012-11-20 17:17:39 -05:00
Zev Benjamin 90e0fc6259 Module pattern for ui.js
(imported from commit 951984ec1006e93a0ffc7e299b52fa02c10eb976)
2012-11-19 23:31:22 -05:00
Zev Benjamin da6cc30134 Add abstraction for manipulating userinfo popovers
(imported from commit 155302f103cfef8475482339596eafc594467532)
2012-11-19 23:22:50 -05:00
Jeff Arnold 9ce4c103c0 Implement full history search by creating a narrow for a search term
(imported from commit 3f2df6a6e590458ff774bbd658bbd1d95076a4db)
2012-11-19 17:12:59 -05:00
Waseem Daher f214c2df75 Lay the groundwork for a "typeahead helper" module.
(imported from commit 0b73238e935fac7c13d7152b262d3e71a714f3ea)
2012-11-18 19:41:03 -05:00
Keegan McAllister 08a43f2f5c Add a tool to run all the test suites
(imported from commit 073f3f0595669ce7c2cc9334e7318bc2856e1e8e)
2012-11-16 15:33:38 -05:00
Keegan McAllister 88a76518ec run-dev: Print traceback on exception
We can't rely on the builtin exception printing, because killpg will kill the
process before that happens.

(imported from commit e7db6a39e0549e21653b4a705d2278eb3dc7b2d4)
2012-11-16 15:33:37 -05:00
Keegan McAllister 5d8b66bf33 run-dev: Don't leak servers when we fail to bind to the proxy port
(imported from commit da7cd1f62f3d073bdae6fe72e71f4127931f4d57)
2012-11-16 15:33:37 -05:00
Tim Abbott b8f65fb8aa review: Fix review with new to: sending.
(imported from commit 67f588afbc6ec6556d31827c8c9495fbaa59fadf)
2012-11-15 16:27:05 -05:00
Tim Abbott 411a7f6b4f [manual] send_message: Rename recipient/stream fields to 'to'.
This commit changes APIs and requires and update of all zephyr
mirroring bots to deploy properly.

(imported from commit 2672d2d07269379f7a865644aaeb6796d54183e1)
2012-11-15 15:30:06 -05:00
Waseem Daher a1c4aa6865 Modularize search.js.
(imported from commit 72f00f832846124d833071fdd46b026c99189512)
2012-11-14 15:29:18 -05:00
Keegan McAllister 122281553a Make csrf_token global
(imported from commit 734d9c886c3a77d2ba40bd449cb089a00807a656)
2012-11-14 13:35:24 -05:00
Zev Benjamin 796869863c review: fix for send_message API change
(imported from commit 2a171dc298449e2dacc2f8250e81577741122464)
2012-11-13 16:09:43 -05:00
Zev Benjamin 195bdb07c9 Unify huddles and personals into private messages on the send path
Personals are now just private messages between two people (which
sometimes manifests as a private message with one recipient).  The
new message type on the send path is 'private'.  Note that the receive
path still has 'personal' and 'huddle' message types.

(imported from commit 97a438ef5c0b3db4eb3e6db674ea38a081265dd3)
2012-11-13 15:40:53 -05:00
Zev Benjamin 33c23c0113 Use a JSON array for recipients in send_message
(imported from commit e2184f92b708cc2e8ef3e9ae79ee4241c0aa12a1)
2012-11-13 15:40:53 -05:00
Keegan McAllister eee951440d run-dev: Use a process group to kill all spawned processes
(imported from commit 9dfddd4d9cb45c70139a167b7949bd5c4fc2791a)
2012-11-13 10:59:02 -05:00
Keegan McAllister ed490c672f Allow running the dev server with the test database, on different ports
For use by frontend tests.

(imported from commit c8f81b862963f00e5b5517ba05b2d1adcab6d78a)
2012-11-13 10:59:02 -05:00
Jeff Arnold 5c7419307c Fix style mistakes we didn't catch the first time
(imported from commit ae1ca10ea8559702e4e73481715239ff456eca4b)
2012-11-11 13:24:44 -05:00
Tim Abbott b01407bd75 Move push notifications to a consistent subject.
(imported from commit 3b4acb39bbf564625e3c009f4f875da596a7a7ac)
2012-11-09 16:56:13 -05:00
Jessica McKellar 3af5e246be Don't cache your personal gravatar across gravatar updates.
(imported from commit 06f82faaa350db8a64cebef24b738b5e93bebb98)
2012-11-09 12:44:09 -05:00
Tim Abbott 97ce892e8d post-receive: Send via the staging server.
(imported from commit a876c7990219b1f317ae39aeeee48b98c5ec941c)
2012-11-08 12:55:57 -05:00
Jessica McKellar a2c6975ca2 Be case-insensitive about subjects when collapsing and narrowing.
(imported from commit 0baf20179c037c3eac82d8db20c6ec8062bb136a)
2012-11-07 14:51:51 -05:00
Jessica McKellar ed50c17582 check-all: add missing message mouseover globals.
(imported from commit c04770de18940bfff24598392c08f0ed1cec76d7)
2012-11-07 11:19:47 -05:00
Tim Abbott 9b8e5bc93f Bots: Send messages through staging.humbughq.com.
(imported from commit d9859bfe5f5b3b7c5efa5ef930d6cfaa5c0d1fc2)
2012-11-06 16:59:28 -05:00
Zev Benjamin 114339dc2a Remove some no-longer-extant globals in check-all.js
(imported from commit f83e19c891d438ed8a2ddd0e2849cd543562631b)
2012-11-06 16:40:52 -05:00
Zev Benjamin c7f2a29db4 inject-messages: occationally show how many messages have been sent
(imported from commit 98f59c252cf8a47ffa8320dd18a74fd46e90054f)
2012-11-06 16:40:52 -05:00
Jessica McKellar 4cad5f6e96 settings: Update name and gravatar without a reload.
(imported from commit 961c9f64d7c39b4345ece036062854e8d474d2c0)
2012-11-06 16:33:22 -05:00
Keegan McAllister 47e2f01f40 clean-branches: Print the abbrev SHA for of each deleted ref
This should make it somewhat easier to recover from accidents.

(imported from commit cf7650342a4f525ffb16e77850b6e451961831b1)
2012-11-06 15:45:24 -05:00
Keegan McAllister 207ca2f351 Add a tool to delete branches which have been merged to origin/master
(imported from commit 5fd2449126eb3f0df57af0472a14f6c94aaaac75)
2012-11-06 15:45:24 -05:00
Tim Abbott 33b9a9e8b4 post-receive: Add support for deploying to staging server.
After this commit, we're tracking two branches: "master" and "prod".
Pushed to "prod" deploy to production, while pushes to "master" deploy
to the staging server.

(imported from commit 6ce429a1d6f606fb6136341dc393d93fd1228a21)
2012-11-06 14:12:18 -05:00
Tim Abbott 5e92cabb96 review: Send a humbug along with review requests.
I think it might be nice to have it also specify some information
about the new review request, but I think we benefit a lot from
getting this minimal version out the door.

(imported from commit cb04c72ee125763cff2d83a6afad3f5319d8ebc6)
2012-11-05 18:39:02 -05:00
Tim Abbott a9da4d2a72 review: Use a function to compute current user.
(imported from commit 9647650fad4015beb991983e06086ffb05f95180)
2012-11-05 18:39:02 -05:00
Luke Faraone 8a4f192c52 Implement USE_SENDMAIL env var to use sendmail instead of msmtp.
(imported from commit 5cff3ed87bf6b9ccdc886b797b60a677bd1ecee9)
2012-11-02 16:43:12 -04:00
Keegan McAllister 1b54e41eb6 Document procedure for deploying changes to post-receive
(imported from commit 1207f02f74fe45581ea166234fa08e554f89722b)
2012-11-02 14:57:38 -04:00
Keegan McAllister b88f9b02d7 do-schema-change: Add comment about collation order consequences
(imported from commit 19dc226e3af3ab6e6b17a35414617f2948d6de34)
2012-11-02 14:57:37 -04:00
Jessica McKellar c1cc9f0742 Don't re-focus on the search box after ending the search.
(imported from commit 35bffb245ad9dc58b394a1c5228b32db4830f2bd)
2012-11-02 11:04:16 -04:00
Waseem Daher 69b534c0ba Move composebox typeahead code into its own module.
This also cleans up the autocomplete source specifications,
making the three typeaheads all look fairly consistent.

(imported from commit e72655d715db74cfc9ab45b51e7e2ff9e8ea84c5)
2012-11-01 21:56:33 -04:00
Zev Benjamin a11cde077e Add tool for injecting large numbers of messages into site for testing
(imported from commit 44643cc95cd0e66d91fcc1ea576379f5de76ac67)
2012-10-31 17:18:50 -04:00
Keegan McAllister 1b316023af Add example msmtprc
(imported from commit 8fd934f6439b92c0b86e9db3bb56fdbab3e60a14)
2012-10-30 15:40:10 -04:00
Keegan McAllister 8c238f252c review: Send mail using msmtp
(imported from commit 7cf60baeb846df9a8c15500a6d14713aec45fc8c)
2012-10-30 15:40:10 -04:00
Keegan McAllister 5788c4c280 review: Update for python-git 0.3 instead of 0.1 (?)
(imported from commit 3e90459bfcf5dbd2f209836bff1a2ad9038f50bb)
2012-10-30 15:40:10 -04:00
Keegan McAllister d8b8e396a6 review: Customize for humbughq.com
(imported from commit f757954077f287a9d3092a7a5a475fd5c0c12a2f)
2012-10-30 15:40:10 -04:00
Keegan McAllister 26115c8232 review: Fix trailing whitespace
(imported from commit 6161f378913d3a939655dd903f7fe634e2b170f5)
2012-10-30 15:40:10 -04:00
Keegan McAllister a7fbb1c15f Import Ksplice code review script
From https://github.com/ksplice/code-review

(imported from commit ff6ca29832749ab8f2f6434eb64395a239031f1c)
2012-10-30 15:40:10 -04:00
Zev Benjamin 696a04743a Factor reload-related functionality into reload.js module
(imported from commit ef533f3416e8b406a03d28f67b45ca59523cef8e)
2012-10-29 17:38:44 -04:00
Waseem Daher 3c3877f1b5 Have Esc dismiss userinfo popover.
It's possible that the three places we can kill a popover
(body click, Esc, clicking on a new one) should be
refactored to use the same code.

(imported from commit ba7eab480fd2258abfb469c8f1155f29bc63f7f6)
2012-10-29 15:49:40 -04:00
Zev Benjamin cee3f87585 Use compose.finish() instead of manually calling ajaxSubmit() in multiple places
(imported from commit 3bbe4a03171d9eace413b576ae2c7ccf99141bf1)
2012-10-29 13:58:40 -04:00
Keegan McAllister 4c0d6eef00 print-all: Provide empty stdin to latex
_out takes a filename but _in takes the input itself.

(imported from commit dee2a1cc920ea3526045146c4e738ca44c38fb47)
2012-10-28 15:20:05 -04:00
Keegan McAllister 6ab646cd53 post-receive: Deploy to the new server
Eventually this should go to the staging server, and we'll have a separate
process to migrate changes from there to production.

(imported from commit 2a712758844524fdf2f23f798baf6b607d056b9a)
2012-10-27 11:39:03 -04:00
Keegan McAllister 582cb799dd Get rid of the selected_message_class global
Instead we infer this from narrow.active(), with the ability to override during
the narrowing procedure.

(imported from commit fab9c6861f19aedf0ee8af094c1ef4e8a0a73d80)
2012-10-26 21:05:04 -04:00
Keegan McAllister 465bbf5614 print-all: Fix incorrect progress output
(imported from commit 266b9da0a4aee094c2df6502766ff06c2a967a2d)
2012-10-26 17:52:47 -04:00
Keegan McAllister b0d669aa03 print-all: Use psnup rather than pdfnup
Our printer strongly dislikes the pdfnup output.

(imported from commit 0539def995191143365ed1e62f1fbf6ec572627e)
2012-10-26 17:49:38 -04:00
Jessica McKellar 92593b7cc8 Add basic up/down search functionality, including across narrows.
(imported from commit c82acad95e97733b87d65287c685caf7533a774e)
2012-10-26 14:31:05 -04:00
Keegan McAllister 3f9cf64eba Add a tool to print out the entire codebase (!) as a PDF
(imported from commit 51199eb81735137a66a2e441d0392b142ce197d0)
2012-10-26 13:59:34 -04:00
Zev Benjamin 967acc763c Make output of check-all red
(imported from commit d0a9c4ee6aeea116ecccdabd7dc5f08d1fd50d2f)
2012-10-25 15:55:58 -04:00
Tim Abbott 6f1f2a15a1 tools/check-all: Optimize computing the list of Python files.
For reasons I don't totally understand, the previous code took like 2
seconds to compute the list of Python files.

(imported from commit 23668e7d79f1d69e1225389be7d8c8a3fbb6fad1)
2012-10-25 15:06:47 -04:00
Keegan McAllister a01d641b2a check-all: Look for any shebang containing 'python'
Such as #!/usr/bin/env python

(imported from commit bc3ebdb3bafc9a6256a32c435a52717559bce82b)
2012-10-25 14:53:15 -04:00
Tim Abbott 7976262ed8 check-all: Detect non-.py Python files by #! line, not a whitelist.
(imported from commit e36ad2fd66688092ed0c81b479b9ff81952751fa)
2012-10-25 13:53:34 -04:00
Zev Benjamin bb64eb717f Make select_message and friends take an options argument
The select_and_show_by_id function is now subsumed by select_message_by_id.

(imported from commit 3dbe9cf9d253b64733f269b6dc78c144100927ca)
2012-10-22 16:06:38 -04:00
Keegan McAllister ae7c4b302b Add a bot to send yourself reminders of Google Calendar events
Run ./api/gcal-bot with no arguments for usage information.

(imported from commit cdc160aeffc16f54072b64370868aca3acc6ad67)
2012-10-21 18:21:12 -04:00
Keegan McAllister f619c765e7 check-all: Check some Python files whose names don't end in .py
(imported from commit ddcc80f02fd0436e08181d3c08f4de6974d3a59a)
2012-10-19 21:00:05 -04:00
Keegan McAllister d9195cd189 update-deployment: Fix undefined name
(imported from commit 3b9ffea14b1e643dd2dacf1212f9f2fbd9e2f33e)
2012-10-19 20:51:56 -04:00
Zev Benjamin 88e09c6166 Only reload the page when the user is idle
Also, clean up reload-related function names a bit

(imported from commit 4c2e17c06d7567e71b92f6e1b04a44aeff419bff)
2012-10-19 15:53:05 -04:00
Keegan McAllister f109d23bba Restart runtornado on deploy, as well
We need this for client auto-reload on static file changes, because the server
generation comes from get_updates.

(imported from commit c5e97421883383c12891fdcb177d0f6fda4b4857)
2012-10-18 16:50:01 -04:00
Keegan McAllister 95f8eea14b Module pattern for subs.js
(imported from commit adfe466ea892fbfe5f13a5f346e4fd00f194c42a)
2012-10-18 15:46:58 -04:00
Keegan McAllister 2a2c0187c5 Rename subscribe.js -> subs.js
(imported from commit c3ce92e31916548206ad5752da8911f22d23f106)
2012-10-18 15:42:08 -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 01061e95e0 Rename dom_access -> rows
(imported from commit 66f6f88cf15f5be614440b826433d5c1cfd6803e)
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
Keegan McAllister c4bf81a312 Module pattern for narrow.js
(imported from commit f1df2e884216560cfe80f29a7e3eda5cea17cefe)
2012-10-18 14:41:24 -04:00
Keegan McAllister 1398641aa3 Module pattern for hotkey.js
(imported from commit 56616bc8eeaa594ca70bb92bf17a88f97027fd35)
2012-10-18 14:35:42 -04:00
Keegan McAllister d0db047035 post-receive: Send the bot message before killing the server
Otherwise the server isn't running when we try to send.

(imported from commit a5ed6ef2111d426c44914c607444dc09b2e33b59)
2012-10-18 10:47:28 -04:00
Keegan McAllister 2c9cc7d393 Restart runfcgi on deploy
(imported from commit b6316135b5ab9e7fcedf404e81dc74b2cf9495c5)
2012-10-17 23:47:10 -04:00
Keegan McAllister 6de3321f02 run-dev: Update for new get_updates URL
(imported from commit 2617ddd1c2ec377d6f17f1aafd0da251226d39b8)
2012-10-17 18:24:15 -04:00
Keegan McAllister 91209f9304 Get initial server generation from first get_updates result
Embedding this in index.html won't work anymore, because the Django FastCGI and
the Tornado servers might have been started at different times.

(imported from commit 187909d0593449cf2989857671f9ca526723e451)
2012-10-17 18:24:15 -04:00
Keegan McAllister 21ed4d2506 Add a script for running a local dev instance of the app
(imported from commit 29813060ef17360d3a7dcc6fe1873992404457c2)
2012-10-17 18:23:01 -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
Tim Abbott 8a7779ad49 Tab should toggle stream/huddle even if you clicked the compose botton.
(imported from commit a705c7cd0d6067dc05da7a64f29fb3ef42838785)
2012-10-17 12:05:43 -04:00
Keegan McAllister bd8a4cb4ab post-receive: Use a different subject name for each push
(imported from commit 983c34faa52bec9a7af4d26a326bbb8cc4a08bea)
2012-10-17 01:11:33 -04:00
Keegan McAllister 2c9830ac5b post-receive: Truncate long commit subjects
(imported from commit 9d4b04cb4000d6f03d31ecdd5106ca53ba96c152)
2012-10-17 01:11:33 -04:00
Keegan McAllister 110a7afec5 post-receive: Conspicuously display commits removed by a push -f
(imported from commit 6ed7810c2f20e5f7ac618b31880142ca7da63419)
2012-10-17 01:11:33 -04:00
Keegan McAllister 94bc4dae2a post-receive: Use Gravatars in bot message
(imported from commit 7e662173653aed98d47e5204900947bfb12be96c)
2012-10-17 01:11:33 -04:00
Keegan McAllister e843427e6c post-receive: Split into update_deployment and send_bot_message
(imported from commit 3e89cb21cf4aa192f6a31457fd91aa5f52e6baa8)
2012-10-17 01:01:19 -04:00
Zev Benjamin fab64fd7b0 Make the client reload the page when it detects a server restart
If the client is not composing a message, we can just force a page
reload.  However, if he is composing a message, we must preserve that
message while still reloading as soon as possible.

We take the following approach: if the client has not completed the
composition after 5 minutes, do a compose-preserving reload
(described below).  If he sends the message before the timeout
expires, reload the page after a successful send.  If the send fails
(not due to server timeout), however, we do a compose-perserving
reload in case the error was due to the data format changing.  If the
send failed due to server timeout, we don't reload because the reload
will probably also fail.

In a compose-preserving reload, we redirect to an URI that has a
fragment indicating we are doing a reload and containing all the
necessary information for restoring the compose window to its
previous state.  On page load, we check the fragment to see if we
just did a compose-preserving reload, and, if we did, we restore the
compose window (or just try the send again in the case of send
failure).  The URI fragment looks like:

(imported from commit af4eeb3930c24118e088057d4da456748fbd2229)
2012-10-16 15:30:41 -04:00
Zev Benjamin 103bf321b4 Have client and server exchange a server generation number
This will allow the client to detect when the server has restarted.

(imported from commit 89e75916719d967beb2520be6263f79f897d9ec1)
2012-10-16 15:30:09 -04:00
Keegan McAllister 2bd9a6953c django-template-graph: Replace slashes with newlines
Makes the graph fit better on the screen.

(imported from commit 7d42caca478634143c6b291f47a4642acfdd1128)
2012-10-16 01:45:37 -04:00
Keegan McAllister 37c51b80cc Add a tool to draw the Django template inheritance graph
(imported from commit e10bb719d62a76abfea76c7fc69093a3cc33272e)
2012-10-16 01:33:15 -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
Keegan McAllister 80e60c3120 check-all: Show unused imports if passed --imports
(imported from commit ecae64a3257b3ebd40656717718177270d02111a)
2012-10-15 16:16:10 -04:00
Zev Benjamin 084608ebda Clear compose box when replying to a message
(imported from commit 1fe21a6d1a5f6f946e14583dc81ede961dbf57c9)
2012-10-15 15:45:15 -04:00
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 b42cf1d4c8 Fix persistent message selection across narrows
(imported from commit 958ce299108f8bbc8579e7446053d7fc9f018b81)
2012-10-15 13:25:39 -04:00
Keegan McAllister deffda072f Add a tool for removing stale *.pyc files
(imported from commit c0fcfb171932f523fff13f14f09ecf5b3a6b21de)
2012-10-12 13:28:09 -04:00
Zev Benjamin 35342481dc Scope subject autocomplete to the stream
(imported from commit 6e9972c93d5f56f29db37b522e20768b8fb641df)
2012-10-12 13:15:06 -04:00
Tim Abbott 2f1d68e09a do-schema-change: Recreate the auth_user email index.
This index is important since we are searching by email address.

(imported from commit 49c8dab68a0c7857d1c9620b856e4de5c4b8c669)
2012-10-12 11:09:53 -04:00
Zev Benjamin adf75d48e1 Make pressing escape also un-narrow
(imported from commit 17d2cc3e8074af332f98588ad201ec342476d51f)
2012-10-11 14:30:51 -04:00
Keegan McAllister b3c029472a post-receive: Include an abbrev sha1 in the message
(imported from commit 97eea18bb4426270d085e398680f1db8028235db)
2012-10-11 11:49:24 -04:00
Tim Abbott b5bb6b9921 Rename test-settings.py to test_settings.py
(imported from commit c9ad55821bc66a7c11668ac0b40ca13c2e05986e)
2012-10-10 18:13:45 -04:00
Tim Abbott ac3f4393ff Rename instance to subject.
(imported from commit 6b4693da03f106448c137cf81cf9801cac44f2b8)
2012-10-10 18:01:39 -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
Tim Abbott 44e9e4cebf Rename Recipient.CLASS to Recipient.STREAM.
(imported from commit a530194163f7260c73921137fa1ff671f14516f6)
2012-10-10 17:47:13 -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 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 ae97a88e72 Rename selected_zephyr_id to selected_message_id.
(imported from commit bbb368efdd5010b6dfdaaf60f3f48904b40671af)
2012-10-09 22:42:19 -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
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 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 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
Jessica McKellar 367feda747 check-all: add new viewport globals.
(imported from commit e163dc07ad196ffd2731f7ccc67bfaada8e8580a)
2012-10-05 16:29:59 -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 12cd44bd0f check-all: Only check python files in git.
(imported from commit 1c633e048cad0cc4f629977363df6a8300dac65c)
2012-10-05 14:58:42 -04:00
Keegan McAllister c9623ee370 post-receive: Include author names
(imported from commit 7914f47364d014bd17115db7defd0cc634f4ac60)
2012-10-04 17:37:18 -04:00
Keegan McAllister bfa24d75b6 post-receive: Send test-post-receive pushes to class test
(imported from commit 8f187464a4d82da071ffed79abf33ea05b999b95)
2012-10-04 17:37:18 -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
Keegan McAllister 3e57097ccc Exclude test-settings.py from check-all
(imported from commit d12d38b85846fa5ea42f123dd81674ae85e92667)
2012-10-04 16:50:27 -04:00
Keegan McAllister b6b647143a check-all: Don't canonicalize directory name
Instead just cd to the repository root for pyflakes.  This is a marginally
worse user experience, but should work on Mac OS where we don't have readlink
-f.

(imported from commit f3d1bfb086ff05642e438c16094415d98a6dab92)
2012-10-04 15:29:03 -04:00
Tim Abbott 89c73ca25f Replace 'zephyr' => 'message' in code internal to models.py.
(imported from commit 16449713202a915d12d3de2e4b4b6ac56e6d6237)
2012-10-04 14:38:07 -04:00
Keegan McAllister 48f0386d26 Add an all-in-one lint checking script
(imported from commit 1fbbfd2c775729295a7a061ead67812a963dc924)
2012-10-04 14:31:55 -04:00
Keegan McAllister ffcbd1ea7e check-all: use strict
(imported from commit 6a4c721be90631d250ca35ba9e26925803f2dd34)
2012-10-04 13:48:24 -04:00
Keegan McAllister 277eb66cf6 check-all: Display actual relative paths
(imported from commit 2c7ed1deb7aadd7b9286d363494437162e8975f6)
2012-10-04 13:41:07 -04:00
Keegan McAllister 3816ca6dfb check-all: Use more fs / path functions
(imported from commit f2b2970efa9b93068f835cd70ca3e3cc7ec22c38)
2012-10-04 13:41:07 -04:00
Keegan McAllister cf85c2e4c3 JSLint: Disallow console.log in general
(imported from commit 8cdff0a702ce2857a4596144d66ac285559226da)
2012-10-04 12:37:15 -04:00
Keegan McAllister 7edfd3458c Add a new tool for running JSLint
(imported from commit 35256825be8793f7e649eb8237111afa05320b32)
2012-10-04 11:04:25 -04:00
Keegan McAllister e7db8857ea Import JSLint
(imported from commit c1380fd9a2d75d84ac33c6a7b3457abcd0f9e4f5)
2012-10-04 11:04:25 -04:00
Keegan McAllister 8d7b598939 do-schema-change: Run syncdb without input
(imported from commit f27142bda30df50207071291b287f837621cf76b)
2012-10-04 11:03:13 -04:00
Keegan McAllister 2c7c378fde do-schema-change: Use COLLATE utf8_general_ci not utf8_bin
Amazingly the choice of collation affects whether Django returns bytestring or Unicode values.

(imported from commit f3fcff302ebdeae4ad15bd8fbe063106c6be9cb1)
2012-10-04 11:03:13 -04:00
Keegan McAllister 6784e8cbf4 post-receive: Style branch name
(imported from commit 33f075095c163f8954dac104cd5d39e9171a99d2)
2012-10-03 18:08:36 -04:00
Keegan McAllister 3848d79f10 post-receive: Print commits in top-down chronological order
(imported from commit 952c4e0d4488cd41a02d75bc890fceacbb9f6273)
2012-10-03 18:07:35 -04:00
Tim Abbott 303bc7c6b8 post-receive: Sleep a bit to give the Humbug server time to restart.
(imported from commit 95e9e7110dcca19347e3cb3952ac18960b500586)
2012-10-03 17:01:15 -04:00
Keegan McAllister 901b87dd77 post-receive: Loop over all pushed refs
(imported from commit 7f101732b3e521b9ef4a41204e0dbbba67f035f5)
2012-10-03 15:20:20 -04:00
Tim Abbott e53dbbd756 Fix post-receive hook's API postings.
(imported from commit 98021d3ee5e84b533e17ec741538be60925b4e87)
2012-10-03 14:48:51 -04:00
Tim Abbott d5d3694451 Update post-receive hook to send messages via the API.
(imported from commit 81f4c9e55c44f19208c42d9a8e8db33ce44b02ac)
2012-10-03 14:32:05 -04:00
Tim Abbott 78dae6a11d Add tool to replace the production server's database schema.
(imported from commit 2aeab792275e43549f3644875a5c360b0f0582a1)
2012-10-02 16:17:48 -04:00
Tim Abbott 1e60511bf6 post-receive: Do deployments over ssh to app.humbughq.com.
(imported from commit cec99b18a7e686243e64d69d1882edc6354c5c9a)
2012-09-17 11:47:20 -04:00
Keegan McAllister e9ae8b0e0d Remove obsolete wiki user script
Replaced by server-side config.

(imported from commit 54b749e37955111439da5e27a2233ff596214971)
2012-09-04 20:50:34 -04:00
Keegan McAllister 647d6ab288 Add a user script which sets a default commit message on the wiki
(imported from commit ed76dae4f8d55d7859a6ddffa5fc392f98aadf28)
2012-08-31 16:24:55 -04:00
Tim Abbott 71dd5aed0a Update automated deployment code.
Will warn about schema changes based on '[schema]' appearing anywhere
in the commit message.

(imported from commit 0092f12c1a2dad3f909ec1934c162776d72263b4)
2012-08-31 14:44:36 -04:00
Tim Abbott 260e646abc Add continuous integration automation scripts.
(imported from commit 61fc5fa1540732b0d1ad02faa95724cc6e2699c0)
2012-08-31 13:53:56 -04:00