Commit Graph

2945 Commits

Author SHA1 Message Date
Keegan McAllister 8f580352a8 retention_policy: Retain all metadata changes in logs
(imported from commit 28cfc452f1ceca8a3e6b04e32034911ba384a0a8)
2013-02-07 14:29:53 -05:00
Tim Abbott a306c28aa2 puppet: Add documentation on setting up the API distribution site.
(imported from commit ea298e8123bb5fee079cf969802fcb8201ed3111)
2013-02-07 14:28:06 -05:00
Waseem Daher 5dfd4485b5 Properly sort member list on streams page.
(imported from commit 702e78810278584fc8b2e217523ee38ff7907471)
2013-02-07 14:17:58 -05:00
Waseem Daher 87b1c91406 Don't show success notifications on subscribe.
A visual change in the form will already have made it clear
that the action succeeded.

(imported from commit 114bc3a9c9ee759993b8e2c80f7d9a479d365e21)
2013-02-07 14:17:58 -05:00
Waseem Daher bd6be38010 Slightly cleaner subscriptions page error handling.
Prior to this commit, successfully creating a stream (or unsubscribing
from a stream) didn't clear earlier error messages.

Here's how you could reproduce it:
* Try to subscribe to ""
  (You get an error)
* Now unsubscribe from something, or subscribe
  to a new stream
  (The error message does not go away)

(imported from commit c3c6fa6081df00378182ff0c3499e9d907577c04)
2013-02-07 14:17:58 -05:00
Waseem Daher 2660db7e18 api: Move integrations into their own subdirectory.
(imported from commit e1a64fbbc64e64e7a2c2fdda4cc9bc77ff3bc852)
2013-02-07 14:15:44 -05:00
Waseem Daher 75ebd7c7fb integrations: Update path to integrations.
(imported from commit 38382cf03afe259ec044de2cfcf497664a5bb0c8)
2013-02-07 14:12:02 -05:00
Keegan McAllister 5be28bbbb4 expunge_logs: Abort on keyboard interrupt
(imported from commit b1fe93859c15e447c0935fcfb0e83a200bc016ba)
2013-02-07 11:34:49 -05:00
Keegan McAllister a8ffa339de retention_policy: On unrecognized events, print the timestamp to full precision
(imported from commit 0f5908e0602fa8be7dea3d9e3b1ecbc437531df9)
2013-02-07 11:34:49 -05:00
Keegan McAllister d80dd021f1 retention_policy: Retain realm_created events
Previously these fell through and printed a warning message.

(imported from commit b3e488ff845b636e17c8b5b51d6cd84c1451bd2b)
2013-02-07 11:34:49 -05:00
Waseem Daher e57d8883af invite: Only clear email addresses after successful invite.
Prior to this commit, we also cleared out all of your checkboxes,
which is frustrating if you wanted to invite another person to the
exact same set of streams.

(imported from commit 389f27ec35dc9bf8c9058c5ffa867929ac90f674)
2013-02-06 20:18:00 -05:00
Waseem Daher e98b4b9f1e invite: Draw lock by invite-only streams (and don't select by default).
(imported from commit 1ad8a033801f70d3c6491691eebef79bbce82b77)
2013-02-06 20:15:12 -05:00
Waseem Daher a44aa44e6c Add a somewhat cheeky explanation of what an integration is.
(imported from commit 76d3627333a4df04019101315c368136963887bf)
2013-02-06 19:30:22 -05:00
Waseem Daher 8bc57ecf42 Fix some integrations page issues.
* tickybox -> checkbox
* Fix up the "register" URL (a stray linebreak  was messing them up)
* Fix image blurriness issues
  (style != class)
* Wrap a long line

(imported from commit 47fd8bf5c9c2c9665aaf8a0cb3c65d08b399b3b0)
2013-02-06 19:17:30 -05:00
Zev Benjamin 1618ee09fc Make integral easter-egg not move the word "Humbug"
(imported from commit 7fa8088343bf5cd049c17f511495d0220faa497d)
2013-02-06 18:07:51 -05:00
Waseem Daher f57caf08d1 bots: Import new copy of our Trac bot.
(imported from commit 17ce8162317f6e4f642ee4e9ee65413bbbdd9bbd)
2013-02-06 18:07:51 -05:00
Waseem Daher 209a1bee3b integrations: Trac documentation.
(imported from commit 14978913711e3386ce3c845e434fc8e16ed0adf0)
2013-02-06 17:37:44 -05:00
Waseem Daher 8f573fac4c Simplify the Trac integration plugin options slightly.
(imported from commit 4588d70f4e7664a9ba85be7003e17d4e8f55a333)
2013-02-06 17:37:44 -05:00
Waseem Daher d8b9151a31 Initial documentation page for integrations.
(imported from commit cd73c63306ab7ed8c886c30488d5ab928fac6c06)
2013-02-06 16:53:13 -05:00
Waseem Daher e1ea71b130 gitignore: Add .DS_Store
The Mac will sometimes make this file in directories with images.

(imported from commit 49fd5efe44e3500e4e6aa789a1207e1efc77b9b0)
2013-02-06 16:31:55 -05:00
Jessica McKellar d7080bf649 zephyr mirror: remove unused imports.
(imported from commit 3ba0629f0a9009087b90fb6f795e855b569c2a67)
2013-02-06 14:22:17 -05:00
Jessica McKellar 5c89deed2f zephyr mirror: update subscription reporting to accomodate new results format.
(imported from commit 94a680d509f727962a07c18bc89edcb1146d8772)
2013-02-06 14:22:17 -05:00
Waseem Daher c7447e19d9 Add a footer to all our portico content.
This makes /api look less abruptly cut off at the end.

(imported from commit 296e431dad2aa1f72b02bb59f5572c0bf33a7bc9)
2013-02-06 14:11:00 -05:00
Keegan McAllister 59bfe38448 Fix wait condition in subscriptions frontend test
Waiting for text "Waseemio" to appear isn't reliable, because the "create
stream" modal already contains that text.  Instead, do a more specific check
for a .subscription_name element.

(imported from commit 54689aeb9d243c3fb62d1765b2b4fb93d3bb40db)
2013-02-06 13:49:37 -05:00
Zev Benjamin 526995316f Use the new tsvector cache column for full text search
Note that the tsvector cache column should be fully populated before
commit is deployed.  Otherwise, full text search will be broken until
it's populated.

(imported from commit 23c36fb7d146c289148e8243c3d6a9a6494cfc62)
2013-02-06 12:09:49 -05:00
Zev Benjamin 88937655fd [manual] Add a ts_vector cache column on zephyr_message along with the appropriate trigger and index
This needs to be done in three South migrations to not block users
from sending messages for a long time.  Adding the column requires a
write lock on the zephyr_message table and populating the new column
takes a long time.  Thus, we can't do them both in the same
transaction (which South forces on migrations).  Additionally,
creating the index takes a lot of computation and needs to lock the
table when not done CONCURRENTLY, which can't be done inside of a
transaction.

To do this manual change, you need to run:
    python manage.py migrate zephyr 0007
    ssh postgres.humbughq.com 'echo "CREATE INDEX CONCURRENTLY zephyr_message_search_tsvector ON zephyr_message USING gin(search_tsvector);" | psql'
    python manage.py migrate zephyr 0008

on staging. No action is required on prod since the database is
shared.

Note that this migration must be done completely before we switch to
using the tsvector cache column.

(imported from commit b6a27013a60c1fd196eabb095d2d11d20bba5aac)
2013-02-06 12:09:49 -05:00
Leo Franchi c637b9cf44 Handle chars at end of link better
(imported from commit 53842bc17bbb9cfb555738ee6b72291d7ce61d67)
2013-02-06 11:51:52 -05:00
Zev Benjamin b0b304e58b Add a copy of our Trac integration (with example constants) to the API examples
(imported from commit 4e7bfaf92842ae0bb24c28ae1187d83ca5c44b0e)
2013-02-06 11:45:43 -05:00
Zev Benjamin 4cc4691335 Polish Humbug Trac bot for external distribution
This change adds a copyright notice and moves our site-specific bits
to global constants at the top of the file.

(imported from commit ccc8cf10f2d0d70c7500b12c7849406268313bae)
2013-02-06 11:45:38 -05:00
Waseem Daher bff57ad983 Only draw the subscriptions-page lock icon at render time.
Because a stream can never stop being invite-only, we don't
actually need any Javascript to manipulate this besides what's
in the Handlebars template.

(imported from commit 30dc3b0baf623d88d03a643f18cd411dbe3eacfb)
2013-02-05 17:24:29 -05:00
Waseem Daher 4da5c83f64 Optionally draw a lock icon by the stream name in the main view.
If it's an invite-only stream.

(imported from commit 02bb80fee6df2cd32ded0c6f2c2b918b8aa8ac05)
2013-02-05 17:24:29 -05:00
Waseem Daher f20bd27cf9 Expose our invite-only bit to subs.js's stream object.
(imported from commit bd4d6f62331262cef5c9763d7e0e9acfd4890396)
2013-02-05 17:24:29 -05:00
Waseem Daher 99edd920c5 tests: Make sure that our subscriptions list properly returns the invite-only bit.
(imported from commit c060c6b350d335d5e94c07314fcfe7c766f2efcd)
2013-02-05 17:24:29 -05:00
Waseem Daher af45236968 tests: Cause existing tests to pass after change to gather_subscriptions.
(imported from commit 3524a5d69d9228810ae863fdea9a9f007a1ca7db)
2013-02-05 17:24:29 -05:00
Waseem Daher 66850b5dcd Make gather_subscriptions pass along whether or not a stream is invite-only.
(imported from commit f71c171185a0552dba4917967d3feffb9c92c4fe)
2013-02-05 17:24:29 -05:00
Luke Faraone 71e98baad4 We no longer require requests<<1
(imported from commit 2ddfca4f969a4f0cba3851c8123b1a3427f63509)
2013-02-05 16:35:45 -05:00
Luke Faraone 61d8183a71 Be more explicit as to where .humbugrc goes
(imported from commit 3e229d61ebfef64e29ca45cc57eca04ec207ae86)
2013-02-05 16:35:45 -05:00
Luke Faraone fc7b6e9fb0 Invert check for .json() vs .json in requests.
dd74cadb incorrectly used .json when it should have used .json(), and
vice-versa.

(imported from commit 2a1d0bbaece77e6765c430ddf3e8de5d987194ae)
2013-02-05 16:34:16 -05:00
Luke Faraone ff59e28f53 Catch all exceptions when sending a message from AdminHumbugHandler
If the database is down and the Handler crashes, we get an email with an
obnoxiously long subject line and without proper sanitization performed.

By wrapping internal_send_message in a try-except, we eliminate the most
common (read: to date, only) cause of crashes in our Handlers.

(imported from commit fd59e931ad0a4fff574d3cafa47348eacacb858f)
2013-02-05 16:12:48 -05:00
Luke Faraone e7762422e4 Filter out all cookies and the csrfmiddlewaretoken.
We also remove META here since it rarely contains anything useful, and
often contains sensitive environment vars.

(imported from commit 2909613f9f52684bef9175600961801104644c75)
2013-02-05 16:12:48 -05:00
Tim Abbott a5f2bec873 api: Fix running with requests 1.0.x.
I would prefer to be testing the attribute itself rather than the
version, but it's not easy to access without an actual request object,
and I'd prefer to compute this once-and-for-all on startup, rather
than on each request, since the latter just seems fragile.

(imported from commit dd74cadb1b2359faeb3e1b482faeee4003dfad77)
2013-02-05 16:08:46 -05:00
Keegan McAllister e4d6a6d3cd review: Send @username syntax rather than @username@humbughq.com
(imported from commit ab7d1120aba829fd629e705409b3677e6cb49dbd)
2013-02-05 15:51:22 -05:00
Keegan McAllister c57368d71e Fix missing close brace in zephyr.css
This was introduced in d19991c7.  Fixes code highlighting when minified.

(imported from commit ea4360f8dcc51da464619b4d570884edb0de8e26)
2013-02-05 15:43:56 -05:00
Luke Faraone 914aa336c7 Don't send "in" operators to the server, as this is a client-side filter.
(imported from commit 1f3d3c09e24093e038d83985003af0b1c87d4ed8)
2013-02-05 15:34:37 -05:00
Luke Faraone 77d0a07e4f Don't add messages to zhome if the message's Stream has in_home_view=false.
We also introduce support narrowing to "home" and "all".

(imported from commit 53b8dea9c6045a0cde368b3163f6fd6ecde1c649)
2013-02-05 15:34:37 -05:00
Luke Faraone 3de93f2b2b Pass stream information in initial template.
This allows us to remove fetch_colors() entirely, and should speed up page
load a bit.

We also JSONEncoderForHTML instead of dumps so that the result is safe
to embed.

(imported from commit 013630911960e2ac1d0bae6f5df31ad342750594)
2013-02-05 15:34:37 -05:00
Luke Faraone ac0dbd0864 Return in_home_view in gather_subscriptions.
This enables us to do client-side filtering on messages by the value of
this setting.

(imported from commit e69a7772dc90c67cb91ea8f630f5b78c902e8fa8)
2013-02-05 15:34:37 -05:00
Luke Faraone e8afaa8b8e Return a dictionary in subscriptions/list instead of a tuple.
This will give us flexibility in the future to add new properties to the
list.

In order to support that, we now do a list comprehension rather than just
returning the gather_subscriptions list in get_stream_colors.

(imported from commit a3c0f749a3320f647440f800105942434da08111)
2013-02-05 15:34:37 -05:00
Luke Faraone 1c3c3cc33f Add call to toggle whether a view is in the home view.
(imported from commit 5ece7b74a5ac4929a46d3d66ae5d838e1f418b44)
2013-02-05 15:34:37 -05:00
Luke Faraone 2a01b355a4 Correctly return a JSON error if property value is not passed.
Previously we checked if property was false after doing .strip(). Since
you can't call string methods on a NoneType, we were 500ing.

The code now does a normal dictionary get via [] and catches the
KeyError.

(imported from commit da7f28febf0865f44e92bcac1791f817c3d370f3)
2013-02-05 15:34:37 -05:00