Go to file
Steve Howell b3594c984a message scrolling: Fix "Scroll down to view" warning.
We recently added a feature to warn users that they
may need to scroll down to view messages that they
just sent, but it was broken due to various complexities
in the rendering code path.

Now we compute it a bit more rigorously.

It requires us to pass some info about rendering up
and down the stack, which is why it's kind of a long
commit, but the bulk of the logic is in these JS files:

    * message_list_view.js
    * notifications.js

I choose to pass structs around instead of booleans,
because I anticipate we may eventually add more metadata
about rendering to it, plus bools are just kinda brittle.
(The exceptions are that `_maybe_autoscroll`, which
is at the bottom of the stack, just passes back a simple
boolean, and `notify_local_mixes`, also at the bottom
of the stack, just accepts a simple boolean.)

This errs on the side of warning the user, even if the
new message is partially visible.

Fixes #11138
2019-01-07 17:17:55 -08:00
.circleci docs: Rename travis.md to continuous integration and add more content. 2018-12-29 15:26:36 -08:00
.github github: Suggest GIFs too in PR template. 2018-02-16 09:59:22 -08:00
.tx tx config: Update slug for mobile. 2018-06-17 17:32:25 -07:00
analytics billing: Do subscription management in-house instead of with Stripe Billing. 2018-12-22 13:39:30 -08:00
confirmation auth: Add an organization reactivation flow with admin confirmation. 2018-11-27 10:58:34 -08:00
corporate billing: Remove references to Realm.has_seat_based_plan. 2018-12-24 10:27:56 -08:00
docs tools: Add script to automate python dependency upgrade. 2019-01-07 10:25:35 -08:00
frontend_tests Refactor: Split up add_messages api. 2019-01-07 17:17:55 -08:00
pgroonga pgroonga: Upgrade to PGroonga 2 API. 2018-05-31 13:00:34 -07:00
puppet puppet: Ensure nginx sites-available & sites-enabled dirs exist on CentOS. 2019-01-07 17:09:42 -08:00
requirements requirements: Upgrade Sphinx to 1.8.3. 2019-01-07 10:30:49 -08:00
scripts setup-yum-repo: Add prod flag for doing IUS install on CentOS. 2019-01-05 15:49:02 -08:00
static message scrolling: Fix "Scroll down to view" warning. 2019-01-07 17:17:55 -08:00
stubs billing: Update /billing to work with new subscription model. 2018-12-23 00:18:21 -08:00
templates digest: Fix the styling of /digest page. 2019-01-07 13:09:29 -08:00
tools tools: Add script to automate python dependency upgrade. 2019-01-07 10:25:35 -08:00
zerver export: Add support for public-streams-only exports. 2019-01-07 16:52:02 -08:00
zilencer models: Deduplicate definitions of push tokens. 2018-12-18 13:05:23 -08:00
zproject compose: Add support for using Zoom as the video chat provider. 2019-01-07 10:00:02 -08:00
zthumbor thumbor: Fix handling of upgrades from 1.8.0 and older. 2019-01-02 13:33:41 -08:00
.codecov.yml Try to avoid codecov spam. 2017-12-29 07:23:26 -05:00
.editorconfig editorconfig: Declare max line lengths for JS/Python code. 2018-08-08 09:48:17 -07:00
.eslintignore zulip_ops: Delete the long-disused `stats1.zulip.net` config and its dependencies. 2017-08-15 17:30:31 -07:00
.eslintrc.json lint: Enforce semicolon spacing in eslint. 2019-01-05 15:31:30 -08:00
.gitattributes gitattributes: Treat .ogg files as binary. 2018-04-27 09:59:19 -07:00
.gitignore mypy: Add basic support for invoking dmypy to run-mypy. 2018-05-21 22:41:08 -07:00
.gitlint lint: Allow revert commit messages in gitlint. 2018-02-13 09:21:01 -08:00
.isort.cfg tornado: Fix logging of tornado activity level. 2018-04-17 15:59:01 -07:00
.npmignore
.stylelintrc tools: Add stylelint rule for eliminating hex values in CSS. 2018-10-16 13:14:19 -07:00
.travis.yml docs: Rename travis.md to continuous integration and add more content. 2018-12-29 15:26:36 -08:00
CODE_OF_CONDUCT.md repository: Add CODE_OF_CONDUCT.md. 2017-06-14 18:43:08 -07:00
CONTRIBUTING.md docs: Increase highlighting of our linters in documentation. 2018-11-29 14:17:13 -08:00
Dockerfile-dev locale: Fix incorrect use of locale-gen to generate locales. 2018-10-11 14:42:24 -07:00
Dockerfile-postgresql docker: Add PGroonga support to Postgresql Dockerfile. 2018-05-23 11:53:32 -07:00
LICENSE license: Move license application notice from LICENSE to NOTICE. 2018-10-02 12:04:44 -07:00
NOTICE license: Move license application notice from LICENSE to NOTICE. 2018-10-02 12:04:44 -07:00
README.md README: Normalize CircleCI badge styling. 2018-11-18 18:49:22 -08:00
Vagrantfile vagrant: Use id -g for finding a user's group. 2018-11-01 10:08:08 -07:00
manage.py tooling: Fix `manage.py` failing if `/etc/zulip/zulip.conf` exists. 2018-12-02 19:13:02 -08:00
mypy.ini docs: Add a warning about editing mypy stubs and the daemon. 2018-12-17 10:28:18 -08:00
package.json build_emoji: Add infrastructure for google-blob and twitter emojisets. 2018-08-31 11:52:24 -07:00
version.py version: Bump provision version to facilitate dependency upgrade. 2019-01-07 10:30:49 -08:00
yarn.lock build_emoji: Add infrastructure for google-blob and twitter emojisets. 2018-08-31 11:52:24 -07:00

README.md

Zulip overview

Zulip is a powerful, open source group chat application that combines the immediacy of real-time chat with the productivity benefits of threaded conversations. Zulip is used by open source projects, Fortune 500 companies, large standards bodies, and others who need a real-time chat system that allows users to easily process hundreds or thousands of messages a day. With over 300 contributors merging over 500 commits a month, Zulip is also the largest and fastest growing open source group chat project.

CircleCI branch Travis Build Status Coverage Status Mypy coverage GitHub release docs Zulip chat Twitter

Getting started

Click on the appropriate link below. If nothing seems to apply, join us on the Zulip community server and tell us what's up!

You might be interested in:

You may also be interested in reading our blog or following us on twitter. Zulip is distributed under the Apache 2.0 license.