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)