The "Your Account" and "Notifications" boxes on the Settings
page each had their own border and their own "Save changes"
button, but they were within the same form and sending to the
same back end point.
This commit creates a separate form and endpoint for each
of the two boxes.
(imported from commit 04d4d16938f20749a18d2c6887da3ed3cf21ef74)
Check that settings.html has at least balanced tags, and
automate the checking of those tags.
(imported from commit 35e9be269caa211803d64f2b54cb0287e13707b3)
The queued email gets deleted if the user signs up before it gets sent.
Otherwise, they are reminded in 2 days that they still haven't signed up.
This addressses Trac #1812
(imported from commit c1bdc09c03ac576b08986e56994de72d52fd293b)
These are some queries on API usage, desktop usage, and
Android usage that would be of interest to Waseem. These
will eventually be subsumed into /activity, but some interim
data issues may make them easier to keep separate for now.
(imported from commit 697a8496cbf4447d557a3fc89f64c1c4d3e67e70)
A customer gave us feedback that he didn't see the instructions
to create a bot, because it's below the fold. Also, the image
was horribly out of date. I moved the instructions up and
simplified them.
Please follow up with user1@customer10.invalid and thank
him for the feedback, once we push to prod.
(imported from commit 22fe3b3c5f94183c402c10005504b94b35e6f7e4)
Handled by the queue processor for signups. Added a management command
that accomplishes the same task, in case it's needed for manually added users,
or in case we goof and need to remove queued emails for a given user.
This addresses Trac #1807
(imported from commit 6727b82a07fa6a3ea3d827860c9e60fd0602297a)
Lots of users don't realize you can do this. This commit is probably
not sufficient but is a start.
(imported from commit 730a43c6966b9bc6db1bdd6fb3995953d35ffe89)
This will hopefully incentivize people to click one and get back into
the app.
We'll also need this for digest emails.
(imported from commit 57191c3fcca3b12df93a81e4692bb7eb8ccc83b2)
There's one place where we don't really get this right, though,
which is the Streams page -- there's still a checkbox labeled
"include in home view".
I'm basically OK with that.
(imported from commit 55319b57f0c3d005a9937258a55254b9a91ce6ae)
Add the number of person-minutes for the last 24 hours to the
realm report on the main tab of /activity.
(imported from commit 2ff46eacc4c8276ab0407fc6ff9f28f5137f1ed2)
For whatever reason, it makes it easier to compare the detail pages
when they are full width, since each column is in a more or less
consistent place every time.
(imported from commit cba47ac1a370884c0397d26d6028248f0b9cc9d7)
It shows domains and how many active users they have. A
user is consider active if they have done something at least
as active as updating their pointer in the last day. Domains
with no meaningful activity in the last two weeks are excluded
from the report.
(imported from commit 700cecfc7f1732e9ac3ea590177da18f75b01303)
A small functional change here was to eliminate an enormous "Usage"
headline that was already implicit from the tabs. It would have
complicated the refactoring to try to preserve it, and I don't think
anyone will miss it.
Extracting this template will give us a little more flexibility
to customize future tabs in the /activity page.
(imported from commit bdb0b7030c8ec1e20d4451dc059830c3f5ea7632)
We are still showing the same data points, but the logic to drill
down on details for a particular realm is now all server side,
not client side, and we are smarter about omitting fields. In
summary mode, we don't show empty Name or Email columns. In
detailed mode, we show the realm as a headline instead of a column.
In this version you do lose the ability to see all system users in
the same view, but Waseem is ok with this.
(imported from commit edd2e646ab4cf5783ea64232d0cd621debece8d4)
When you load the activity report, it will just show summary
counts for realms, but if you click on a realm, you will see
details about users in the realms. You can also click "Show all"
to see an interleaved view of realms and users.
(imported from commit b106557b1fae64d525071afc124b5a8aed319086)
Before these examples weren't obviously blocking calls (they seemed
more like a callback registration, which may make more sense in the future)
(imported from commit 78fdf98d791b19843526437c710901d8dff62e8c)
It makes bootstrap look up the href as a DOM element, which caused
a browser error because the path is not a CSS selector.
(imported from commit 196a5983ae6a31716b14ae577239fe7ab1416226)
We were previously using the true count of unread message for HTML
emails but the number of conversations for plaintext. Make them
consistent.
(imported from commit efb140abcc95faf00631c03580f518ca4d8ef58c)
"Subject" => "topic" in the prose description (though the API field is
still "subject"), and fix a misspelled word.
(imported from commit b5a65c87e419c2cacb9f87a03f32a1a8701b440d)
When creating a new stream, this option lets you announce its
creation to everyone who you didn't explicitly add.
(imported from commit ae4140b4268b73e8b4bb54f5a6eea12fe07cd110)
Specifically, add more clarity to whether users should use the web-hook
or plugin method.
(imported from commit 0b3b8626ccbe6d9a658e7e58d662c5f6127be32e)
This shows up when you're not running a Zephyr mirroring bot and lets
you use Webathena to have us run it. Obviously needs more docs.
Current problems include:
* supervisorctl reload ends up recreating /var/run/supervisor.sock
with the wrong permissions, so it only works once in a row before
you need to chmod that.
* /etc/supervisor/conf.d needs to be humbug-writeable; this is a clear
local root vulnerability
* This uses SSH and thus is kinda slow.
(imported from commit 7029979615ffd50b10f126ce2cf9a85a5eefd7a2)
This brings several improvements:
* The Dropbox script won't slow loading our app.
* If it fails to load, no traceback; Dropbox link just won't appear.
* For users with Dropbox disabled (most at this point), no loading at all.
(imported from commit e71ae5790fc85a185e622bdafb350109527b4eee)
Specifically:
* Add and style the sidebar toggle button to the header and remove the
gravatar.
* Add the logic for retracting the left side bar.
* Modify the logic for clicking on the referral pane to prevent it from
closing the sidebar.
* Modify the logic for clicking on the stream filters to prevent them
from closing the sidebar.
* Modify the logic for clicking on the stream settings dropdown and the
user info dropdown to prevent them from closing the sidebars.
(imported from commit 73e00eb834a6e87cb8d659fdcf6c2e06fff3731d)
As part of this commit:
* Add and style a top right button that controls the sidebar
* Add the necessary styles for the right sidebar when it's in that mode.
* Add the logic for controlling the sidebar expansion
* Modify the logic for prevent default click events to generally
hide popovers correctly.
(imported from commit ca8063f6c62b436799f952e88541ff0ae8ba85fe)
This one slipped through through a race between it being added and the
zerver migration.
(imported from commit 23ed79efa16584f062844fa05db3a95b8835060c)
Users were getting confused about why the unread count in the sidebar
/ notification bar / Dock was different from what the bankruptcy modal
said, so only show them the true server count until they've made a
decision.
(imported from commit 71d376cd4a85749ccf49936b251e6b8ac21361b7)
Specifically:
* Fix the settings menu positioning and appearance
* Restyle menu and add arrow on top
* Remove labels from new message buttons in narrow windows and adjust the close button on the composition pane
(imported from commit 586753b6526289b32ec0a90b62d8b2ac1c8182cd)
We now show a list of users and allow you to deactivate a user using the
same process as `python manage.py deactivate_user`.
We add a new menu item accessible from the gear icon which will eventually
have much more than just this, but we have a good start here.
Here we also add a property to UserProfile which determines whether you're
eligible to access the administration panel, and then have code which shows
the menu option if so.
This introduces a new JS file, admin.js.
(imported from commit 52296fdedb46b4f32d541df43022ffccfb277297)
* We now clear the validation errors when the input box is de-focused
* We make the left sidebar height accommodate the validation error messages
(imported from commit 4b39bfd3e8e8dd707722492a3f98967ee4ccf0ab)
The main changes are:
(1) Changing the input format for the example response so that it is
human-readable and editable
(2) Updating it to use the events API
(imported from commit 308fade9595d6877836d343d2307e3fceff3e7d4)
When we deploy this, we'll need to of course actually build and deploy
the new API tarball.
(imported from commit 03c853e8a9424a63f1c74bb83637d5a1e50a159a)
This needs to be deployed to both staging and prod at the same
off-peak time (and the schema migration run).
At the time it is deployed, we need to make a few changes directly in
the database:
(1) UPDATE django_content_type set app_label='zerver' where app_label='zephyr';
(2) UPDATE south_migrationhistory set app_name='zerver' where app_name='zephyr';
(imported from commit eb3fd719571740189514ef0b884738cb30df1320)
For now, we just get emails about referrals that we have to follow up
on manually.
I don't love using the name "referral" in some places and "invite" in
others, but we already use the verb "invite" to mean something else
and "invite" is a canonical noun.
(imported from commit 0814c18395952fcdef234c1584984f71ca1b6f37)
This is a bit wasteful on most systems, but will result in their
looking pretty sharp on Retina displays.
(I also go and actually fix up the size we request for a bunch of
these so that they actually match the size of the gravatar in the
document -- previously we were requesting a size 30 gravatar when we
were displaying it in a size 25 space, which leads to unnecessary
ugliness upon resize.)
(imported from commit 9152e6e128e0ac38d97d893cb8243e3b9185351b)
The link is broken on www.
The reason it links to www is a holdover from issue #1400 six weeks ago.
At the time, https://humbughq.com used TLS SNI and downloading via wget
gave a certificate error, so we changed it to www as a workaround.
However, https://zulip.com does not use SNI so it's safe to revert this
workaround.
(imported from commit c87a6eb3ceab92c377edb976216be615625fafce)
It's a long story, but we need to set the actual-dropdown-menu
class for the gear, since it messes with bootstrap's notion of
active.
(imported from commit 94f2d9ee65014bc954e088e6c913d9682b7322f6)
Previously, we'd render all the rows of the table except the first
(which is for creating new subscriptions) and append them all to the
table. This ends up being really slow. We now instead render the
entire tbody element and replace the existing tbody element.
When profiling on my laptop, this reduces the rendering time for a
few thousand streams from ~62 seconds to ~2 seconds.
(imported from commit 83a48e0e1f776f7663343662157298e89165ece3)
LENGTH LIMIT RULES
This limit is non-refundable unless issued at a fully refundable fare.
Some fares may not allow changes. If allowed, any change to your
itinerary may require payment of a change fee and increased fare.
Failure to appear for any personal message without notice to Zulip will
result in cancellation of your remaining reservation.
(imported from commit 75d5843677ce959d60d4015779efa9c2cf8f9a1c)
Reply help is higher, because it's more common to reply to messages
than to compose new messages.
(imported from commit 74439e8f36796e638bb99e2c7786470cced666f1)
Two reasons:
1. It helps group the up/down keys together.
2. It's the least guessable hotkey of the group, so it's worth emphasizing.
(imported from commit b9b29b8dcf37ce29526aa7e55871acb05d1ef4bc)
Tagged [manual] because we need the Zulip-latest.dmg,
zulip-latest.exe, and Linux updates to actually exist on prod.
(imported from commit 67a514a3f8844b939163ca330144ae80cf028132)
This sort of browser-based OS detection isn't perfect, and can be
really fragile, but in this case it's not a big deal if we don't get
it exactly right; the user can always pick a different one.
(imported from commit 70fdaf8f82252b17a3ffc347e239db5963363fbd)
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)
Instead of `compressed_js` in the `compress` library, we now use
`minified_js` from the `minified_js` library. (CSS is not affected by
the change.)
(imported from commit 07aea9efbc83d30b354a7e044070563e93f7525a)
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)
This is how Reddit does it, and in a way I actually find
it more intuitive -- it's more x => y.
(imported from commit 79e06f8d85d07eea417b9e1ff2d792c3af3f6acc)
This fix also cleans up the search operators so that @-mentions
and Private messages have a more similar naming convention.
(imported from commit fb1a2119aab5aa9e179c6e321a8d2ef2e90290cf)
This reduces roundtrips hopefully and will provide a friendlier error
message than what would otherwise be produced by Django.
(imported from commit 034aeef00043e3bf059583770f6c08c4f73ceeb5)
This allows us to inform users that the reason they are unable to log in
is because their account has been deactivated. This message (generated by
Django) is only shown when the correct credentials are used and is_active
is False.
(imported from commit 754a4c9af6ec05e8f18cf183bc08b67bacdeb3e0)
This reverts commit f8fbf70c8502370a78159e24f3cf9589fb9d384f, since
we're waiting on some Firefox and no-hover fixes.
(imported from commit 6b13f5bb9d907303ab311afd7da584bc06538c91)
I tried 30px at first, but I think a slightly bigger avatar helps
fill out the table a bit. It should be easier to tweek these in
CSS now, although Allen agrees with me that the tabular display
may be short lived when we add edit/delete features.
(imported from commit b4d69cddf63fa122374e20731a5755e7dec86304)
QTBUG-3467 prevents non-normal-face @font-face fonts from being used when
defined as such in CSS. To work around this, the desktop applications now
ship the Humbug font themselves, and this commit causes the server to no
longer send the problematic CSS rules to those clients.
We have some duplication insofar as we now have two minified CSS files, but
this is better than conditionally applying the CSS at page runtime.
(imported from commit 9a887f9fb8002d44171d366d1249ebbf21cc9c77)
(The file-input widgets that come with browsers are ugly and
nonstandard across browsers, so it is a common technique to
have your own button that controls the file upload, and it
delegates to a hidden copy of the browser file-input widget.
We also allow you to clear the file.)
(imported from commit b55ef655e75746330dc3cc396cb908670e5019cc)
The add-bots form used to have a landscape alignment, as it was
integrated into the same HTML table that showed your existing bots.
This became unwieldy once we allowed users to upload avatars.
(imported from commit 246a35be77ce1679d595271e6911dc339a6813ab)
This must be deployed after we update our running nginx configuration
to serve api.humbughq.com.
(imported from commit b5c34ebdd595f55eecd6dca6a18a37f105107bd5)
As does the hotkey "i". It's somewhat less appropriate because it's all actions,
but it's where our "info" menu used to be, and we can workshop a better one. "a"
feels weird to me, but maybe it's just me.
You can also hover on the .message_content to see a popover with extra message details
This is for Trac #1334.
(imported from commit f8fbf70c8502370a78159e24f3cf9589fb9d384f)
This mostly applies to the previous two commits. In principle,
this could be teased out and merged into them, but the hassle
here doesn't totally seem to be worth it.
(imported from commit ee2469ca3762c50c6db49b93eec02b32589eafe3)
The hope being that this is clearer that it's about inviting your
coworkers to your instance of the app, rather than about spreading the
love and telling your friends how great Humbug is.
(imported from commit 888576618cdb5469cbfa8964f2b53c7b5120627f)
wget users report certificate errors on the API download, apparently
due to wget's lack of support for TLS SNI until recently. Adding www
to the download link should work around this problem. (Trac #1400)
(imported from commit 517375eb22532304a774d66549c50691504ecc93)
This reverts commit 91b4577c20afaf3ee9f5bed7f4e3451020960cf5.
Upon discussing with acrefoot, my new conclusion is that
the page should only look this way if you're going through
the workflow outlined in Trac #1391 -- otherwise it should
remain the way it is.
(imported from commit 57a1989d73526a357b47a4ac68dc911e8f2531cf)
Some browsers don't support desktop notifications. Some people haven't allowed permissions
for humbug to have desktop notifications. This is a poor man's attempt at desktop notifications.
We are adding the bootstrap-notify package (http://nijikokun.github.io/bootstrap-notify/)
Resolves Trac #1336.
(imported from commit 6a54f7d1875e765dabd32d94ada8ebe4474a3d71)
There were a few things the W3C validator complained about that I
didn't bother fixing (like img tags without alt attributes and
obsolete tags). There also a few pages that were slightly more
annoying to get my local instance to render (like the 404 and 500
error pages), so I checked those by eye.
This does not cover the actual app at all.
(imported from commit 1cbe1ec11067e96718814ec23eaf5a8b4b68ef19)
Displaying the badge gets us a bunch of free mixpanel data points/month.
We only display the badge on the login page (which `/` redirects to)
and not on other portico pages.
(imported from commit 75871173a10ae888fdb7c92fe8e20586ce60c6bf)
Right now, the text can sort of visually collide with new messages.
Also, the text is really only of benefit to total novices; you
learn it once and then those 15px are ~forever useless to you.
(imported from commit 93915fc854c1b801de0fb6654f014b6c7f2edc08)
This change backs off from the always-open-compose-box paradigm,
so that when a user "closes" the compose box, they can no longer
type text, attach files, etc., and instead, they have buttons
to reopen the compose box.
(This change does not affect the feature that when you're in reply
mode, the compose box stays open.)
(imported from commit 32305d5b35f457a83f126a2265defdd98e885a2b)
Show user-uploaded avatars on the website for users who have
UserProfile.avatar_source == 'U'. (Continue to show gravatars
for other users.) This includes the home page, the visible-phone
div, and the settings page.
This fix does NOT address a few things:
* There is no GUI to actually upload user images yet on the website.
* The !gravatar syntax in bugdown will continue to show gravatar images
only.
* We are not changing identicon behavior.
(imported from commit 9f5ac0bbe21ba56528048233aab2430e4dd431aa)
ce4e860a introduced CSS `.alert{display:none;}` because alerts are
always included in `/signup/` and shown by JS. Use a new `.alert-hidden`
class for this purpose to avoid breaking other pages.
(imported from commit 199ba35dd3356bd4093aac2a54181331b3993ee8)
This, in effect, reverts ff0c27ccb177ddc69a31bf8997d31e7cfb5b78b5.
The rationale here is that actually we look pretty good with the
browser's own zoom/font-size-resize in Chrome and Firefox, and it's
better to let the browser handle these kinds of changes than us.
(imported from commit 5949b57bdaf20d4fdf2bbd7ed89d1285a8b8e453)
Give better examples, and rewrite options parsing to be more consistent across examples.
Make it more obvious that you can use "--user" and "--api-key" with our python examples.
This bumps our python bindings to v0.1.9
(imported from commit 297468088f864b7d585e567dc45523ea681f1856)
Since we've made it easy to use bots instead of creating entirely new user accounts
for things which act as bots, we've needed to update the documentation. This commit covers
the static html documentation we have on humbug's API.
(imported from commit 4ddbf0331588b0f463a9920b4cd363b68e811ca5)
In specific, this solves the problem of the links in the stream
"right-click menu" not having the little hand icon, uncovered
in our last usability study.
But even better, it also sets a more sane default -- if you're
an "a" and you *don't* want the hand, you have to explicitly
remove it.
(imported from commit 38c0b42f3b7fd5b2b3dff99e8c4c4a2e8aa62833)
In general it seems like the more intuitive way to organize this table
-- you're going to be first find the formatting you're trying to make
visually, and then look across to find its syntax, not the other way
around.
(imported from commit 59c932a8763d1d532e896903f597d7c0193b5de9)
Previously our receive API bindings were broken in our API tarballs
because we weren't including the receive API bindings which they used.
This requires our deploying the built API tarball to the prod server
when we deploy it so that the link on /api isn't broken.
(imported from commit 14ecaab34556f4e29c72f4f567d8af73c89d6297)
The malformed HTML caused the bots and user API key forms to be
merged. When the user clicked the "Show your API key" button, a
form-related event gets triggered, which jquery.validate tries to
handle. When it does so, it ends up throwing an exception because
the form element involved in the event does not have an associated
validator object attached to it.
(imported from commit 26100a443603dc8a6cc23b9f3e825632149faf7f)
The thought behind @-mentions:
1. More terse than "Mentioning messages".
2. Provides a cue that we support "@" syntax.
3. Shows users a way to talk about mentions with
doing a mention.
(imported from commit 0227888b9fd45401e5f1a1b0d3b3da8258e0770e)
Treat "mentioned" messages like "starred" messages for narrowing.
Lots of ugly copy/paste here. There might be opportunity for
some cleanup in places.
(imported from commit e7629890d42643c0000e1cc85422b2a0690f2cc4)
This reverts commit 13fb245f86ab84b1d2faea9d2a1f2145cd4aa907.
(Waseem wanted to hold off on adding more hot keys.)
(imported from commit 97c25ffa01fd7058fc90a278887d85b7d82a268a)
Also add a save button above the "Notification settings" area, to
avoid confusing users about what button to press to save password/name
changes with.
(imported from commit 8780d92dda58d9582077496ab2fad089d0201363)
This sets up the keys t and b to anchor your pointer to the top
and bottom of the viewport. It empowers keyboard users who
are otherwise at the mercy of Barnowl recentering, but of
course it doesn't affect users who don't want to opt in.
(imported from commit 13fb245f86ab84b1d2faea9d2a1f2145cd4aa907)
* Change the highlight colors for private and mention messages
* Put timestamp and message controls into a single line
* Modify layout to allow more flexibility in control placement
* Lighten narrowed view background color
* Adjust composition area columns
(imported from commit c7edca358b079da0ca76fa26d998946574bded6a)
* Modify the narrow icon in FontAwesome to make it better align to the pixel grid and display well on Windows+Chrome.
* Move the message controls to the right
* Hide the message info icon until the message is hovered / selected
* Switch the star to a gray version
* Increase the size of the gravatar
* Adjust the spacing
* Add the right-side message pointer
* Fix private message background colors and mention colors
* Modify star count test to account for new stars
* Bug fixes for stream subscription messages and other miscellanea.
(imported from commit 3d3d9de7e03f3658c5c78b492051b2b7f795487d)
Currently, some browsers don't seem to be sending metrics information
to mixpanel. This commit will make said browsers noisy, but should
help debug what's going on.
(imported from commit c5050f66d985eb76e38117b2668594fedfc10702)
Constrain the meat of the page to the center 1440px or so.
This is achieved in a slightly more hackish way than I'd like,
but I think it's mostly necessary if you want the long color
bars that extend beyond that main area.
(I encourage you to view this diff with -w)
(imported from commit 10bf4462411146090b0147218d51cc444c3c91a2)
Specifically:
* Leave the avatar image as inline and round it.
* Move timestamp to the left column.
* Replace the "Info" link with a permanent info sign.
* Move the pointer bar to the left.
* Remove borders
* Change selection background colors, and PM colors.
* Introduce the "narrowing" icon into our FontAwesome set.
* Modify the tests to account for the new "narrowing" icon and fixed a bug in star-finding.
* Clean up CSS and add a more prominent color to private messages
(imported from commit 8a8d6de8acccc52c0d16f5d1ce31aabdc72c88c8)
Windows, Mac, iPhone, Browser icons from http://www.endlessicons.com/ and modified
Macbook Air image from http://psdsonar.com/macbook-air-free-psd/ and modified
Linux icon from Wikimedia Commons and modified
Android icon from Wikimedia Commons and modified
(imported from commit 3cf8617cf49a833b706a2ff78b986e28c21e26cc)
This will help us track down errors in third-party javascript
libraries.
blueslip needs jQuery and the page_params, so those must come first.
(imported from commit f53f67d758298d4e1c2784ec27e09d6abf0b3223)
This removes the large "New stream message" and "New private message"
from the left sidebar. It also makes the default action when clicking
inside the composebox the same as the "New stream message" button used to
do (instead of replying to the stream-subject pair at the current cursor).
(imported from commit 316f03a35b781aca4c42555f74b99c4332ff42de)
We believe this was the source of the occational exception in dev for
page_params being undefined.
(imported from commit 3d085b7af831b4c936f492d02517652bf8509557)
We really should not be storing bot API keys in the DOM and should
require some sort of additional authentication before showing them,
but this seems reasonable for a first pass.
(imported from commit c7d75aa52e21894bf53917457e771c18de38bbcc)
What changed:
* Vector icons swapped in for the left sidebar buttons and filters
* Lighter font weight in the stream filters list
* Round color swatches in the stream filters list, with an inner shadow
* Tighter line height in the individual messages in the message pane
* Fixed button widths in the left sidebar (so the buttons are equal in width)
(imported from commit 337dc4a3d8e29945cfc8cfb9524ac76a7b038ad8)
Really, the "correct" way to do this is to undo "scrolltheworld", and
then just have a compose div that always lives underneath the message
list div. (This will also allow us to deal much more reasonably with
the whole "Is the composebox in focus" thing.)
In the interest of prototyping something more rapidly, though, we
adopt the somewhat more hackish approach, with the understanding that
much of it will probably be simplified later.
(imported from commit e2754be155c522b6dac28e7b84c62bd2030217c8)
This commit also fixes a bug where "starred messages" wouldn't get
bolded when you narrowed to starred messages. However, it also
introduces a regression where subjects aren't highlighted correctly
on load to a narrow which will be fixed shortly.
(imported from commit 411575d92762e41d04c1baf126c0ab1dfb4225a5)
This decouples from Chrome notifications, which gives us cross-platform
support in at least modern browsers.
We log this action so its replayable in our message logs.
This implements the model change indicated by the previous schema commit.
(imported from commit b21213cdde54f43670bbb0bf1f607147fc732b38)
Previously we used the value of gafyd_name in forms, which means that if
it was undefined we'd end up with a string literal "None" being passed to
the registration form by the confirmation redirector.
(imported from commit c8fbb749bb793c8e927e86603ce196bf810f3f6a)
This allows users on signup-eligible domains to sign up for Humbug using
Google Apps.
As part of this, we wrap the openid done view in our own code in order to
handle the "Unknown user" error. Therein, we create a PreregistrationUser
and then shunt the user through the rest of the confirmation process, pre-
filling in their name.
(imported from commit 066d9a1021384a6da2662352e62a701451bd6f44)
Changes include:
* New markup for the button in compose.html
* A hidden file input field in compose.html
* Added reference to the file input field in filedrop
initialization in compose.js
* A feature test and a click event binding for
the "Attach files" button in ui.js
* New paperclip icon reference in fonts.css
* New general hidden display classes in zephyr.css
* New composition pane button classes in zephyr.css
Fixes to the "Attach files" button commit e673bda...
Changes include:
* Fixed the feature test for (new XMLHttpRequest).upload so
it works in Firefox.
* Renamed .button to .message-control-button
* Removed stray newlines
(imported from commit c1f0834b74fd7120ec27db64ec380ffb3fa34633)
Pretty hackish for now since this is presumably going to all
be redone with Font Awesome icons in not too long.
(imported from commit 497d6cf18d7a8d6014a20c08d66d88c324478e55)
* renamed the 'icon-star' style to 'icon-vector-star' to keep backwards compatibility for icon-* classes
* changed relevant styles in zephyr.css; added FontAwesome assets
* changed relevant CSS classes in base.html, left-sidebar.html, ui.js, message.handlebars
* added new fonts.css to start consolidating all font-based assets
* added fonts.css to PIPELINE_CSS in settings.py under 'portico' and 'app'
* modified the stars test suite to reflect new star icon class name.
(imported from commit 3116fcfd4b5fb4edecd457da554fea616bb7081b)
And scroll there on any error (previously, we would scroll only if we end up
submitting the form).
(imported from commit 63597c4da78ac92cd5c2314d6d174d178b1caaf3)
Now that our plugin is in the Jenkins marketplace thing,
we don't need to have the user laboriously download it
from us and upload it themselves.
(imported from commit 25e9926f7f2314db8f3ea6c00c40514b6fd546c3)
This allows users to drag and drop content onto the compose box, storing
their data in Amazon S3.
New dependencies:
- python-boto
(imported from commit 339874e483db5c36312c9ceae56db29da6ca0d99)
This allows blueslip to catch exceptions from the event handlers on
these elements in addition to the other benefits that not using
inline handlers provide.
(imported from commit 2bdcb2496c6c08fa7228a20ce6164b527cf64e41)
...rather than embedding them into index.html.
This is only acceptable for dev, but the next commit adds an alternative
mechanism for prod.
There isn't actually a manual deployment step here. However, this commit won't
work on staging / prod without the next one (since we don't serve
zephyr/static/templates in prod).
(imported from commit dce7ddfe89e07afc3a96699bb972fd124335aa05)
Not needed for any specific reason, but we will need the .runtime.js file
eventually, and we should use a version of the library that matches the
Handlebars compiler.
(imported from commit 5600bc8d44b681999e2e5bbf04b890e2bb8477a1)
Apparently + is just how you used to encode spaces in aim:
urls in 1999, not in mailto: links.
(imported from commit 156708378e6b1d6955063a0979c8bee9d5b0e849)
Checked using the following (relevant for rebasing):
git grep url templates/ | grep -v "'django" | grep -v "'zephyr"
This appears to not have a good backwards-compatability story (well,
there is one involving a %load from the future, but it seems to not
work).
(imported from commit d740831658aa23cadbbb82082ac6a3738d449a1d)
This is a lot cleaner, and also cuts about 50-70 ms off of page load time in
local testing (with lots of users), presumably because there's less work to be
done by the slow Django template engine.
(imported from commit 257b700238ee5d9a4ae00a53011ed5bce018124c)
This will hopefully make stream privacy more noticeable. We still don't
allow people to modify privacy after stream creation, however.
Since we now use a radio box on the stream creation modal we had to change
the selector used by subs.js to determine if a new stream was to be invite-
only.
(imported from commit 641a4fab74301a9b3ecd4b3859f010dd4ece193e)
We were previously having an issue where the tutorial could
be pre-empted if you got a few messages while you were first
logging in.
I have some reservations about this being slightly fragile, and a
better approach might be to just have a bit that we use to determine
whether or not you've already seen a tutorial. (Or potentially that
checks whether or not you've ever sent a message.)
(imported from commit f8858f64a36bcd25887b76314caff283929f340c)
The new system, called blueslip, makes errors fatal when in debug
mode and only output a message when running in production. In the
future, it could also send user errors back to us automatically.
(imported from commit 1232607c0311e885c8b5a5e8a45ffb28822426e0)
We also grey out the box to prevent the user from clicking twice.
This closes trac #1030.
(imported from commit eec810e3fbc5b7c9350c2d91e448fb27d4c856f8)
I find that I never use it, and I don't totally like our
experience in the app to be different from our users'.
Admittedly, this is a small way in which that's the case :)
Finally, since we do usability studies in @humbughq.com,
the link appears there too, and I'd like it not to.
(imported from commit 1225c4ae79de52fa98b21ce00a6542df76b667ea)
Require POST method for /accounts/logout. This has the side effect of
automatically enabling Django's CSRF protection.
(imported from commit 44b1b6ebaadc1c03006e21ae54ac768e31234801)
This simplifies a bunch of fragile resizing logic in our code,
and also addresses the Chrome Canary bug where clicking in the
searchbox causes the navbar to get huge.
This fixes Trac #764 and Trac #1039
(imported from commit fc8c3995109de384b71dfba2b986a8500ff7f08d)
To see this bug, you need to trigger a multi-line
error message, like sending to stream 'asdfkljasdkfjasdfa'.
(imported from commit 11ea901ae491cd2cc4e0699888074fb71db46a21)
Prior to this commit, at 800px, e.g., the Google button
is smushed into the login form.
(imported from commit 422d1b677439460785f6b31ea2fe2c819e23e259)
To incorporate the site parsing fix from a couple weeks ago.
Before deploying this to prod we need to run build-api-tarball and
deploy the code to humbughq.com as for usual API releases.
(imported from commit f6711f5cc07d174c30866029032a595ecee785a3)
It's not quite what the CUSTOMER4 person wanted, but
I think it scratches the itch.
This fixes Trac #1023
(imported from commit 9186499c8f6bacb230a2d1ed6d5ca7ffa7416ac3)
I think this has burned in on staging long enough that I'm
comfortable showing it to the world when the prod deploy
goes out.
(imported from commit 19ceaaa3300d4bd65fdd357aaa3c48c7fcf1dec2)
To be fully responsive, we can basically never specify the width of
our container in a fixed number of pixels; otherwise we'll run into
the situation where there's an inordinate amount of wasted space on
our left and right.
So everything needs to change from, e.g. row to row-fluid,
and that has a whole cascading series of changes that that implies.
(imported from commit 7e2771d916f429548c65c0a00fc4c11397054656)
I had updated the file and the hyperlink, but missed the part in the
instructions. Making this a variable or something in the future might
save me from making this mistake again later.
(imported from commit 74e9c7add573826254793fff884a163c4c021206)
Should make it more clear that we're not looking for a username, though anyone
who really prefers to go by a username is free to do so.
Fixes#975.
(imported from commit 3d10f2fab4d5a4c14153dd706468caebb1b2a9c2)
This will allow us to continue to do prod pushes while allowing
this feature to burn in on staging for a while longer.
Determined users can get past this and enable enter-sends for
themselves, but I'm basically OK with that.
(imported from commit 0ee83ff14179c98104368f9bb16ed4fd543ea808)
This code adds a dependency on python-django-auth-openid, installable as
django-openid-auth from PyPI.
On prod, one needs to run a syncdb in order to create the required
tables. A database *migration* is not required, as these are new tables
only.
(imported from commit c902a0df8d589d93743b27e480154a04402b2c41)
I kind of expect this to work, and hopefully this'll help with
people getting stuck on the "Settings" page in the tutorial.
(imported from commit 1159d884dcd331bcfb74864a0176fa293e8c3714)
This keeps the name to the right of the bullet even if it overflows
onto two lines.
Fixes#909.
(imported from commit 60528bb30c2d9e29687b773abc76c18369a8a068)
This makes it possible to point users back at the instructions they
followed originally in the event that their Zephyr mirroring bot has
died.
(imported from commit 24ab2dc0df3dc88f8155d58761a89fe44c111fd9)
We need to run build-api-tarball and release it on prod when pushing
this commit to prod.
(imported from commit 09e86500d2d208b1972c87444b4c2d56faafc8e6)
Before pushing this to prod, we need to build the 0.1.2 API tarball
and deploy it to the appropriate place on our servers.
(imported from commit ec1a07b3cc2a3e360dac32823ff7cd9de9de1da2)
This is accomplished by continuning to have per-conversation PM counts
but then summing them up into a global count.
We may split this off into per-conversation counts in the future.
(imported from commit 311e3b74715c3a01c0b75837e397a386ab65505c)
The previous version had a NullPointerException
encountered by CUSTOMER2. This version fixes it.
(imported from commit 22b65f0e4b3e0ca5a174d6ae3b168f5543de8826)
Right now the table is too wide for my screen and I have to scroll it
to see some stuff I'm actually pretty interested in seeing; this
rearranges things to make that less the case.
(imported from commit b06088c59d9ba21ecc24fa55367226a2aa09d907)
(And to let you know that it's OK that you have no messages.)
This fixes Trac #850 for the case where you first log in.
(imported from commit 47741856e34f67bfc2cc91bdc21def75ab6fe09d)
The previous commit stopped the mousewheel event at .bottom_sidebar,
which means it was never getting to our individual scrolling lists.
(imported from commit 92d32c21bb596d0e14d887ff779a857223d45342)
Previously it would unnarrow you but not actually change your view
to the home view.
This fixes Trac #839.
(imported from commit 226bb70b850685ed2727d920fd1303a94b6a5dd1)
This lets us clean up the HTML a little bit in preparation
for a later change which will cause the stream and people
lists to scroll independently of one another.
Also it feels a bit more fun.
(imported from commit b3b49149d7ec2960fd752fe50b41e55d363c1a98)
The message timestamp is now always clickable, and the popover contains the
full long-form date and time. This addresses one problem from usability
testing (see #470).
(imported from commit ad502dff128ad1c934fc0d3faaf5e2931c91c37e)