Go to file
palashb01 047bffe257 compose_box: Convert dynamic closed compose box tooltips to tippyjs.
This commit converts the dynamic closed_compose_box
tooltip to template-based tippy.js tooltips. The functions in
the compose_closed_ui.js file are refactored to dynamically change
the 'data-tooltip-template-id' attribute according to the situation.

The title parameter is removed from the functions in
compose_closed_ui.js so that we can change the tooltip within the
caller functions themselves, according to the situation. Since there
is no way to match the title in existing functions with different
languages to change the tooltip attribute dynamically, it is better
to change the tooltip attribute within the caller function according
to the situation, rather than passing the title as a parameter.

In the case of the reply button, we disable it when direct messages
are not allowed. However, tippy.js tooltips do not appear in the
case of disabled elements, so we have to use the container element
around it to show the tooltip. This approach is used in the case of
the reply button, where the span element wraps the button.

We used to have two titles for the reply button: one is the usual
'Reply to selected message', and the other is for the disabled state.
However, in the case of recent conversations, it makes more sense
to have a new tooltip title: 'Reply to selected conversation'.

To ensure that the tooltip content changes dynamically, it is
required to destroy the tooltip instance and then reinitialize it
every time.

Fixes: #25096
2023-04-24 11:45:56 -07:00
.github ci: Enable XML coverage report to fix Codecov uploads. 2023-03-31 15:51:43 -07:00
.tx provision: Replace transifex-client with new transifex-cli. 2022-12-13 12:34:08 -08:00
.vscode vscode: Recommend remote development extension. 2021-11-03 16:03:46 -07:00
analytics support: Add option to upgrade an org to Plus plan on /activity/support. 2023-04-10 17:32:45 -07:00
api_docs api-changelog: Fix feature level 174 note. 2023-04-21 08:32:19 -07:00
confirmation ruff: Fix DJ012 Order of model's inner classes, methods, and fields. 2023-04-12 17:32:38 -07:00
corporate billing: Allow exempt_from_license_number_check any number of licenses. 2023-04-13 15:26:44 -07:00
docs docs: Update development version warning text to be more explicit. 2023-04-20 10:37:30 -07:00
help compose: Change video call url text to "Join video call.". 2023-04-20 15:04:26 -07:00
locale i18n: Update translation data from Transifex. 2023-03-15 15:57:26 -07:00
pgroonga migrations: Import BaseDatabaseSchemaEditor from its canonical module. 2023-03-05 14:46:28 -08:00
puppet puppet: Move logrotate config into app_frontend_base. 2023-04-19 09:34:37 -07:00
requirements requirements: Add uri-template. 2023-04-19 12:20:49 -07:00
scripts install: Write out a zulip-git-version upon install. 2023-04-19 16:56:14 -07:00
static help: Update Message formatting section and page on Mentions. 2023-04-20 10:42:49 -07:00
stubs/taint actions: Split out zerver.actions.message_send. 2022-04-14 17:14:34 -07:00
templates welcome-emails: Revise text in onboarding_zulp_guide. 2023-04-24 10:04:47 -07:00
tools compose: Extract a compose_recipient module. 2023-04-20 16:09:55 -07:00
var/puppeteer puppeteer_tests: Port to TypeScript. 2021-02-22 16:03:10 -08:00
web compose_box: Convert dynamic closed compose box tooltips to tippyjs. 2023-04-24 11:45:56 -07:00
zerver export: Skip PreregistrationRealm data. 2023-04-24 09:48:25 -07:00
zilencer zilencer: Delete duplicate remote push registrations. 2023-04-13 15:17:20 -07:00
zproject urls: Move jwt_fetch_api_key endpoint to v1_api_mobile_patterns. 2023-04-18 15:44:31 -07:00
.codecov.yml
.codespellignore codespell: Fix newly found typos. 2023-04-03 22:39:21 -07:00
.editorconfig editorconfig: Restore indent_size = 2 for Markdown. 2021-08-20 23:14:37 -07:00
.eslintignore web: Move web app to ‘web’ directory. 2023-02-23 16:04:17 -08:00
.eslintrc.json eslint: Enable @typescript-eslint/strict configuration. 2023-04-19 16:52:39 -07:00
.gitattributes .gitattributes: Mark *.bmp, *.bson, *.mp3, *.pdf as binary. 2022-02-07 18:51:06 -08:00
.gitignore dependencies: Switch to pnpm. 2023-03-20 15:48:29 -07:00
.gitlint gitlint-rules: Rename to gitlint_rules. 2023-03-03 18:02:38 -08:00
.mailmap mailmap: Add entry for rht. 2022-11-17 00:05:17 -08:00
.npmignore
.npmrc dependencies: Switch to pnpm. 2023-03-20 15:48:29 -07:00
.prettierignore dependencies: Switch to pnpm. 2023-03-20 15:48:29 -07:00
.pyre_configuration pysa: Update .pyre_configuration to point to typeshed. 2020-09-22 15:44:47 -07:00
.readthedocs.yaml readthedocs: Add a configuration file. 2023-02-03 16:36:54 -08:00
.sonarcloud.properties
CODE_OF_CONDUCT.md contributor docs: Add guidelines on moderating the Zulip community. 2022-12-02 16:57:41 -08:00
CONTRIBUTING.md docs: Remove paragraph about getting help finding issues in contributing. 2023-01-17 14:51:53 -08:00
Dockerfile-postgresql docker: Document the PostgreSQL Dockerfile build steps. 2022-04-26 18:00:00 -07:00
LICENSE license: Move copyright notice from LICENSE to NOTICE. 2021-02-05 09:28:12 -08:00
NOTICE docs: Bump copyright year. 2021-02-05 09:28:15 -08:00
README.md README: Update Ruff badge. 2023-03-21 11:46:20 -07:00
SECURITY.md SECURITY.md: Reorder and make clearer how to subscribe to announcements. 2022-01-07 15:56:26 -08:00
Vagrantfile vagrant: Add Fedora 36 support. 2022-09-08 16:12:59 -07:00
manage.py ruff: Fix SIM102 nested `if` statements. 2023-01-23 11:18:36 -08:00
package.json linkifier: Support URL templates for linkifiers. 2023-04-19 12:20:49 -07:00
pnpm-lock.yaml linkifier: Support URL templates for linkifiers. 2023-04-19 12:20:49 -07:00
prettier.config.js prettier: Disable embedded language formatting for Markdown. 2021-08-20 23:14:37 -07:00
pyproject.toml report_error: Remove API endpoint for client error reporting. 2023-04-13 14:59:58 -07:00
stylelint.config.js web: Use `uri` instead of `url`. 2023-04-10 10:26:48 -07:00
tsconfig.json ts: Convert `emoji.js` to TypeScript. 2023-04-05 10:29:01 -07:00
version.py api-version: Bump to feature level 176 for URL templates for linkifiers. 2023-04-21 08:32:19 -07:00

README.md

Zulip overview

Zulip is an open-source team collaboration tool with unique topic-based threading that combines the best of email and chat to make remote work productive and delightful. Fortune 500 companies, leading open source projects, and thousands of other organizations use Zulip every day. Zulip is the only modern team chat app that is designed for both live and asynchronous conversations.

Zulip is built by a distributed community of developers from all around the world, with 74+ people who have each contributed 100+ commits. With over 1000 contributors merging over 500 commits a month, Zulip is the largest and fastest growing open source team chat project.

Come find us on the development community chat!

GitHub Actions build status coverage status Mypy coverage Ruff code style: black code style: prettier GitHub release docs Zulip chat Twitter GitHub Sponsors

Getting started

You may also be interested in reading our blog, and following us on Twitter and LinkedIn.

Zulip is distributed under the Apache 2.0 license.