Commit Graph

51343 Commits

Author SHA1 Message Date
PALASH BADERIA 341f3a1ce2
tippy: Add message_list_tooltip helper to clear tooltips on rerender.
We've had a series of bugs where tooltips get leaked when a message list
is rerendered. For some tooltips, we used a 'mutation observer' to remove the tooltip
in this situation, but this was expensive and messy. We replace this with a Tippy
plugin to keep track of this class of tooltips, with a central hook to remove them
during rendering.

Message lists are rerendered in the background in a variety of situations;
a simple way to trigger it is clicking the mute/unmute topic/stream button in
the topic menu/stream menu and the clickable area overlaps with the
message list tooltips area. If a tooltip was visible at the time, the tooltip loses its
reference due to the re-rendering removing its DOM element, appearing at the top-left corner.

To prevent this behavior for all message list tooltips, we need to
store all instances of the message list tooltips and then destroy
them if the instances does refer to something else then document.body
using the 'destroy_all_message_list_instances' function just
before re-rendering.

Whenever the message list is rendered, all the message list tooltips
will be destroyed if they do not refer to document.body. This
prevents the double appearance of those tooltips if the reference
is removed from the DOM.

This plugin allows us to remove the mutation observers and net delete code
while hopefully fixing this bug for the whole app.
2023-04-30 22:33:14 -07:00
Tim Abbott 368d2aa27d compose: Fix misaligment of compose top right icons.
When composing a private message to a different recipient than the
current view, the go-to-compose-target icon looked vertically
misaligned with these icons. Fix this by removing the CSS rule that
made these other top-corner icons not centered within their row.
2023-04-30 21:02:21 -07:00
Hardik Dharmani 69779688f0 settings: Update disabled state of button in email change modal.
The new update_submit_disabled_state_on_change feature of the
dialog_widget component makes this simple.

Fixes #22683.
2023-04-30 20:56:51 -07:00
Hardik Dharmani 96d6fda2a7 dialog_widget: Add support for managing submit button disabled state.
The new update_submit_disabled_state_on_change parameter configures
the dialog_widget system to disable/enable the confirmation button
depending on whether any of the fields in the modal have values
differing from their initial values.

Fixes #22683.
2023-04-30 20:56:49 -07:00
sbansal1999 33705b6116 tooltips: Remove keyboard shortcuts from View Scheduled Messages modal.
This commit removes the keyboard shortcut from tooltips that
can be seen when hovering over the two buttons in
"View Scheduled Messages" modal.

This is a temporary change as the keyboard shortcut will be
added to the tooltips when the shortcuts are actually working.
2023-04-30 20:34:53 -07:00
Aman Agrawal eeb3ff26e1 css: Fix loading spinner position for messages loading indicator. 2023-04-29 07:21:19 -07:00
Lalit 3e179a2c58 actions_popover: Hide "Add emoji reaction" in action menu in spectator mode.
We should hide the "Add emoji reaction" from the message action menu while a
user is not logged in, that is user is in public access mode.

Fixes #25331.
2023-04-28 20:09:24 -07:00
palashb01 acba8518fb recent: Replace presence dot with bot icon for bots.
This commit replaces the presence dot with a bot icon for
private messages (PMs) with bots in the recent conversations
narrow.
2023-04-28 19:14:00 -07:00
palashb01 8eb90bbc7f left_sidebar: Fix the opacity of group,bot icons.
This commit fixes the opacity of the group-icon and bot-icon
in the left-sidebar direct message section to make them look
 more consistent with the other icons in the left sidebar.
2023-04-28 19:14:00 -07:00
palashb01 cee0cabd8d left_sidebar: Replace the presence dot with bot icon for bots.
This commit replaces the presence dot display with a bot icon
for bots in the left sidebar PM list.
2023-04-28 19:14:00 -07:00
palashb01 29377c7f32 user_card: Fix the padding of bot-icon with name.
This commit fixes the padding of the bot-icon with the name
to make it look consistent with the way it is displayed in
the message feed.
2023-04-28 19:14:00 -07:00
palashb01 bb4d2f5f5b profile_popover: Remove the display presence dot for bots.
This commit removes the presence dot display for bots and fixes
the gap between the bot name and bot icon in the user profile
popover. It also fixes the alignment of the bot icon.

Fixes: #25066
2023-04-28 19:14:00 -07:00
evykassirer 199afbe8eb messagebox: Update background-color for mentions.
This is part of #22059.
2023-04-28 19:06:50 -07:00
Tim Abbott 56c5c8902b scheduled_messages: Disallow dates in the past in the UI.
The server will probably accept them and just send the message
immediately, which seems OK, but we probably want to discourage
scheduling a message to be sent in the past, since that's unlikely to
be intentional and would make it hard to undo.
2023-04-28 19:01:40 -07:00
Tim Abbott cef1e3363c compose: Increase size of recipient menu.
We should do a better long-term fix, but the current menu feels cramped.
2023-04-28 18:44:11 -07:00
Tim Abbott 798391824b compose: Refactor dropdown-menu CSS rules. 2023-04-28 18:43:51 -07:00
Karl Stolley e4ae4c5b75 send_later: Remove send_later_input_group.
This removes the HTML structure and CSS styles previously associated
with the element in the scheduling modal.

Preserving this all in its own commit in case it needs to be
restored.
2023-04-28 17:50:54 -07:00
Karl Stolley 8180cc786f send_later: Pick time from 'Custom time' link.
This introduces a 'Custom time' link to the bottom of the scheduling
modal's options. Clicking on it pulls up the date picker.

Additionally, clicking on the 'Custom time' link, then clicking
elsewhere to close the time-picker, then subsequently clicking
'Custom time' again reveals the time-picker.

However, repeatedly clicking the 'Custom time' link while the
date-picker is already open will cause the date-picker to redraw
each time.
2023-04-28 17:50:54 -07:00
Karl Stolley 865cba834b send_later: Cancel scheduling from popover. 2023-04-28 17:50:54 -07:00
Aman Agrawal e89cbf0ac1 send_later: Move some options to a modal. 2023-04-28 17:50:54 -07:00
Tim Abbott 13592b4495 scheduled_messages: Fix date formatting call.
d42ac60d61 accidentally lost the "new Date" part.
2023-04-28 17:50:54 -07:00
Tim Abbott d42ac60d61 scheduled_message: Fix i18n for scheduled time. 2023-04-28 17:25:00 -07:00
Lauryn Menard d41f12495d api-docs: Document create/edit scheduled message endpoint and events.
Adds API changelog update for the new endpoint added for creating
or editing scheduled messages, for the events sent for scheduled
messages (add, update, delete), and for the `scheduled_messages`
field in the register response.

Adds a specific API markdown documentation file for the create
or update scheduled messages endpoint, so that the parameters in
the cURL examples are accurate for the type of message (direct or
stream) and action (create or edit).

Bumps the API feature level, adds Changes notes to API documentation
and adds the scheduled message endpoints to the API documentation
sidebar.
2023-04-28 17:25:00 -07:00
Lauryn Menard 15c6d67e9c populate-db: Add scheduled message to test database.
Prep commit for adding the scheduled-message endpoints to the API
documentation.

Adds a scheduled message for Iago in the test database so that it
can be deleted in the delete cURL example in the api-test suite.
2023-04-28 17:25:00 -07:00
Aman Agrawal bd2545b0d7 scheduled_message: Send CRUD events to clients. 2023-04-28 17:25:00 -07:00
Aman Agrawal f40855bad2 reminder: Remove feature from zulip.
This is being removed to make the code simpler. We have plans
to add it as a feature in the future , but it will most likely
not use the same code.
2023-04-28 17:25:00 -07:00
Aman Agrawal 6bff396711 scheduled_messages: Remove unnecessary compose_fade call.
We just need to call clear_compose_box() here similar to when
sending a message.
2023-04-28 17:25:00 -07:00
Aman Agrawal 5baa0dc313 compose: Use the new endpoint to create scheduled messages. 2023-04-28 17:25:00 -07:00
Aman Agrawal d60d6e9115 urls: Add new endpoint to create scheduled messages.
This will help us remove scheduled message and reminder logic
from `/messages` code path.

Removes `deliver_at`/`defer_until` and `tz_guess` parameters. And
adds the `scheduled_delivery_timestamp` instead. Also updates the
scheduled message dicts to return `scheduled_delivery_timestamp`.

Also, revises some text in `/delete-scheduled-message` endpoint
and in the `ScheduledMessage` schema in the API documentation.
2023-04-28 17:25:00 -07:00
Lauryn Menard 7739703111 scheduled-messages: Update scheduled message objects in the API for type.
Updates the objects in the API for scheduled messages so that those
for stream messages return the `to` property as an integer since it
is always the unique stream ID and so that those for direct messages
do not have a `topic` property since direct messages never have a
topic.

Also makes small update so that web app scheduled messages overlay
has the correct stream ID.
2023-04-28 17:25:00 -07:00
Aman Agrawal 4718eaa213 scheduled_messages: Extract method to get undelivered scheduled messages.
This also changes key for `ID` of scheduled message from `message_id`
to `scheduled_message_id`.
2023-04-28 17:25:00 -07:00
Aman Agrawal 4cb238fb6e models: Add method to convert ScheduleMessage objects into dicts. 2023-04-28 17:25:00 -07:00
Aman Agrawal 963fe566d7 scheduled_messages: Use scheduled_message_id instead of message_id.
Using `message_id` can be confusing for API users since it can be
mistaken for the ID of the message that will be sent.
2023-04-28 17:25:00 -07:00
Aman Agrawal 7bf0793c94 scheduled_messages: Move database related function to /actions.
This would match the pattern we use for other modules and also
shrink the giant message_send.py.
2023-04-28 17:25:00 -07:00
Aman Agrawal cddf25656f test_message_send: Move out scheduled message tests. 2023-04-28 17:25:00 -07:00
Hardik Dharmani a2b36bbabb user_card: Fix user_card background for dark theme for width < $md_min.
Previously, in the dark theme, the `background-color: #18222f` of the
`.popover` class took precedence over the
`background-color: hsla(0,0%,0%,.7)` of the `.message-info-popover`
and `.user-info-popover` classes. This commit fixes this issue by
adding !important to the background-color property of
`.message-info-popover, .user-info-popover` classes.
2023-04-28 15:35:43 -07:00
Hardik Dharmani d43c5e6071 tooltips: Convert edit notice tooltips to tippy. 2023-04-28 15:34:59 -07:00
Hardik Dharmani 15860c8b13 tooltips: Convert recipient row tooltips to tippy. 2023-04-28 15:34:59 -07:00
Tim Abbott 95c81ba029 emails: Fix CSS type for no-content-explanation. 2023-04-28 15:20:53 -07:00
Tim Abbott 58dba63324 policies: Update Zulip Cloud EU Representative. 2023-04-28 13:40:56 -07:00
Aman Agrawal b33438eb55 css: Move `10px` navbar bottom padding above message header.
This is a more natural place for this extra padding than below the
navbar. Padding below navbar was primarily needed to hide the
message content above the sticky header while scrolling the message feed.
We are still able to do with this change without partially hiding the
loading message indicator.

Fixes #25159
2023-04-28 12:48:10 -07:00
Lalit 0d51e2d1f9 left_sidebar: Add same styles to schedule messages row as all other rows.
This fixes the bug where the schedule message whole row was not clickable
and had some padding issues. By adding same styles as all other rows in
left sidebar we eliminate those bugs.
2023-04-28 12:44:59 -07:00
Karl Stolley df508659db css: Lighten button border for visibility.
This replaces the previous dark border.

A pure white border looked a little too garish, so this dials back the
alpha channel just a bit.

Fixes: #25303.
2023-04-28 12:44:30 -07:00
Karl Stolley 942eb7b375 css: Pad send button for click comfort. 2023-04-28 12:44:30 -07:00
Karl Stolley d9654f4f0a css: Introduce padded vdots for send later.
This uses eyeballed vertical padding on the nested .zulip-icon class
to ensure that the entire send-later button area is clickable (and
not merely hoverable).
2023-04-28 12:44:30 -07:00
Alex Vandiver 4f2417cfc4 soft_reactivation: Add a partial index to speed up event lookups.
The full auditlog table is moderately large, and the previously-chosen
index (on `modified_user_id`) is not terribly specific.
2023-04-28 12:43:34 -07:00
Alex Vandiver a56da4be76 soft_deactivation: Only fetch necessary columns.
Existing tests verify that this does not add more queries.
2023-04-28 12:43:34 -07:00
Alex Vandiver ae7485a96e soft_deactivation: Do not bother to fetch stream data as well.
This prefetch is unnecessary and makes this query load more data than
needed.

Existing tests verify that this does not add more queries.
2023-04-28 12:43:34 -07:00
Aman Agrawal 2deec692f6 dark_theme: Fix dark recipient background in light theme for spectators.
Since, we didn't update `user_settings.color_scheme` for spectators
and our recipient bar color calculations were based on it, this
resulted in a wrong recipient bar color if the OS default color
scheme of the user was different from `spectator-theme-preference`
set by the user using the gear menu.

To reproduce the bug:
* Set preferred color scheme to `dark` in your OS settings / Chrome
  dev tools.
* Login as spectator in Incognito.
* Switch to light theme.

You will see dark background colors in recipient bars.
2023-04-28 12:39:46 -07:00
Lauryn Menard f574bd4952 narrow: Fix "pm-with" narrow in scheduled messages. 2023-04-28 12:38:29 -07:00