Commit Graph

430 Commits

Author SHA1 Message Date
Joelute cdad925add popover: Scroll to top of long message when viewing message actions.
Previously, when a user scrolls down a long text of message and presses
the hotkey for viewing the message actions, the popover menu would continue
to open where the message actions button. Thus, the popover menu would be
cut short and sometimes off the screen. These changes will scroll the
client to the top of the message and ensure that the popover menu is
always visible.

Fixes: #23774.
2023-04-18 17:06:24 -07:00
brijsiyag 0c30acbe39 streams: Fix notice appears even when the panel is not empty.
This fixes regression in 55bd3220b6,
Where notice gets rendered even when there are streams shown in panel.
Now the check var to render message conditionally checks for both
`subscribed` and `all streams` tabs. We are avoiding the fully use of DOM
in this context because if the filter results in no stream, then also
it will display a notice. Also this commits swaps order of calling
`stream_data.delete_sub()` and `stream_settings_ui.remove_stream()`
functions in server_events_dispatch because `update_empty_left_panel_message`
uses stream_data, which was giving outdated data.
2023-04-18 17:02:01 -07:00
brijsiyag 5cef364c74 upload: Open compose immediately on file drop or paste event.
This commit changes the way compose box responds to a file drop or paste.
Currently, the compose box expands only after the file is uploaded to the
server, which can cause confusion if the upload fails and there is also no
progress bar. With the update, the compose box will expand immediately upon
drop or paste events showing the status of upload. Also it was opening
the stream compose box even if we are in a direct message, now it starts
a reply.

Fixes #24654.
2023-04-18 16:37:56 -07:00
palashb01 3ad5e7dfc0 tippy: Prevent second appearance of tooltips for recipient bar icons.
There are four icons in the recipient bar that have tooltips, and
each of them shows a second appearance if we click on a button of
the topic menu that is just over the area of the icon. To prevent
the second tooltip, we have used the
'hide_tooltip_if_reference_removed' function to observe changes in
the DOM and hide the tooltip if the reference is removed.
2023-04-18 10:03:09 -07:00
Palash Baderia 054098fa01 tippy: Prevent appearance of second `view_user_card` tooltip.
With the recent migration of the topic_menu popover to Tippy,
some tooltips have been impacted. If we click on a popover menu
and then click on any button where the area is above the tooltip
icon, two tooltips appear. The first one is expected to appear over
the reference element, but the second tooltip appears on the top
left corner of the screen because the associated reference element
is hidden.

This commit fixes this issue for the view_user_card tooltip with
the help of the 'hide_tooltip_if_reference_removed' function.
We have set the attributes config to be 'true', since when the
tooltip appears, the parent div with classname
'message_row include_sender' is added with the value
'sender_name_hovered' in its className. We just need to observe
this classname change to hide the tooltip.
2023-04-18 10:03:09 -07:00
Sahil Batra 41f17bf392 popovers: Fix showing resolve topic option in sidebar popover.
We previously showed "Mark as unresolved" or "Mark as resolved"
option in topic sidebar popover only is user was allowed to
move messages between streams. This commit fixes it to show
if user is allow to move within stream, or in other words edit
the topic, since resolving or unresolving topics is essentially
topic ediitng only.

Note that we still cannot show or hide the option as per the time
limit setting (since client may not have the first message of the
topic locally), so we just show or hide it as per
move_messages_within_stream_policy setting.
2023-04-18 09:01:39 -07:00
Sahil Batra 8874328b87 stream_popover: Add "Rename topic" option in topic sidebar popover.
This commit adds "Rename topic" option in topic sidebar popover
which will be shown when user is only allowed to edit topics and
not streams.

Note that we still cannot show or hide the option as per the time
limit setting (since client may not have the first message of the
topic locally), so we just show or hide it as per
move_messages_within_stream_policy setting.

Fixes #19886.
2023-04-18 09:01:39 -07:00
Sahil Batra 0b608d7952 message_edit: Add buffer when checking time to disable move message inputs.
This commit adds 5 seconds buffer when checking the permission to edit
stream and topic for disabling the inputs in "Move message" and
"Move topic" modal.

We already do this for the message content edit UI.
2023-04-18 09:01:39 -07:00
Aman Agrawal d3dc26cbad header: Improve dropdown click handler.
Minor tweaks that make sense to do.
2023-04-18 08:54:55 -07:00
Aman Agrawal 2553858c91 portico-header: Fix navbar user dropdown not working.
As part of #24678, this code was accidentally removed. We just
add it back to fix the broken user profile dropdown in the navbar
of non corporate pages.
2023-04-18 08:54:55 -07:00
Sahil Batra c27ff12b8c user_groups: Update ID of overlay container element.
This commit renames ID of the container element of group
settings overlay to group_overlay_container. We also
rename the variables used for this element. This makes
it consistent with the container element of settings overlay.
2023-04-18 08:53:08 -07:00
Sahil Batra a5580264eb stream_settings: Update ID of overlay container element.
This commit renames ID of the container element of stream
settings overlay to streams_overlay_container. This makes
it consistent with the container element of settings overlay.
2023-04-18 08:53:08 -07:00
Tim Abbott c995e48e11 recent: Clarify recenter_focus_if_off_screen.
The previous name suggested it did something unconditionally.
2023-04-17 19:10:42 -07:00
Lakshay Mittal ce578423f8 popovers: Hide popovers during scroll in recent_conversations.
Previously, popovers scrolled oddly along with the content in the
Recent Conversations tab; copy our approach in the message feed of
closing them on scroll.
2023-04-17 19:10:42 -07:00
Aman Agrawal 5b71acf21b message_list_view: Change date of sticky header more carefully.
If the sticky recipient bar hides the date separator completely,
the recipient bar needs to show the correct date for the message
next to it, otherwise the user will see the wrong date for the
message.

To fix this, we show the date on the date separator as soon as
the sticky message header starts to overlap with the date separator.
2023-04-17 18:51:00 -07:00
Ishaan Singh 96b051bec4 left_sidebar: Fix 'more topics' view scroll position.
This is a preparatory work for #24360.

'DIRECT MESSAGES' are completely collapsed in the 'more topics' view.

Clicking on 'DIRECT MESSAGES' exits the 'more topics' view and
scrolls to it from that state. One wouldn't be able to open
'DIRECT MESSAGES' without leaving the 'more topics' view.

Fixes: #25035.

Signed-off-by: Ishaan Singh <asishaan.191cs124@nitk.edu.in>
2023-04-17 17:40:35 -07:00
Sahil Batra 2700ad7903 typeahead: Show stream privacy icons in typeahead options.
We now show the stream privacy icons along with their names
in the typeahead options.
2023-04-17 17:19:11 -07:00
Sahil Batra 0676629008 dropdown_list_widget: Show stream icon in the button.
We now show the stream privacy type icon for the option
selected in dropdown list widget.

This commit also includes a minor CSS change to make the
web-public better aligned in the dropdown list widget
"Move topic" and "Move message" modal. There is no visible
change for other pages and other icons due to this CSS
change.

Fixes part of #22355.
2023-04-17 17:19:11 -07:00
Hardik Dharmani 82bf1ba58a shortcuts: Update `Shift + M` shortcut to work for unmute topics too.
Renamed toggle_topic_mute function to toggle_topic_visibility_policy.

In toggle_topic_visibility_policy function if topic is either muted or
unmuted it will set the topic's visibility_policy to Inherit else, if
stream is muted or unmuted topic's visibility_policy will be set to
unmuted and muted respectively.

Updated set_user_topic_visibility_policy to only show feedback widget
in case of muting topics with hotkey.

Fixes #25125
2023-04-17 17:16:28 -07:00
Aman Agrawal 043d54d170 scheduled_messages: Add overlay to display and edit them.
Fixes #20971
2023-04-17 16:59:25 -07:00
Aman Agrawal ff52187289 compose: Add UI to schedule messages.
Fixes #20971
2023-04-17 16:59:25 -07:00
Palash Baderia a4a8fd7bf3 typo: Remove duplicate word in comment. 2023-04-17 15:42:21 -07:00
Aman Agrawal fbb2967ff0 message_body: Remove link from message time when locally echoed.
Fixes #25069

Since the locally echoed link of message doesn't work, it is
better to remove it.
2023-04-17 12:19:20 -07:00
Aman Agrawal 2c83efc6b4 message_row: Rename `local` class to be more verbose. 2023-04-17 12:19:20 -07:00
Aman Agrawal 7bd66891f0 css: Add background color for date row.
The logic to avoid first unread message with a date row to not
have an unread marker works purely based on `z-index` and seems
to be working nicely.

This avoids a bug where the background color of the date row
of the first unread message is different from others.
2023-04-17 12:12:41 -07:00
Sahil Batra 8293bbea28 message_edit: Show modal if user cannot resolve topics.
We show a modal if user is not allowed to resolve or unresolve
topics due to time limit. The modal just contains the text
mentioning user cannot resolve topic without stating the
count of messages that are within the time limit as we do
not recommend partial resolving of topics.

This commit does not include any changes for resolving or
unresolving topic using "Move topic" or "Move message" modals,
as we will still consider them as simple topic move and show
the same modal that is shown in general for moving message.
2023-04-17 11:25:28 -07:00
Aman Agrawal a941545523 drafts: Add abstract classes for messages in an overlay.
This will help up achieve 2 things:

* Have a lot of common CSS for drafts and scheduled messages.
* Have common JS for things like keyboard navigation between drafts
  and scheduled messages.
2023-04-14 17:38:37 -07:00
Aman Agrawal c8878ed6a5 drafts: Use new tooltip design to show keyboard shortcuts. 2023-04-14 17:38:37 -07:00
Joelute 5d69a54849 time_picker: Reduce increment of minutes to one.
After some discussions in CZO, it was decided that we should reduce the
increment of minutes to one because the up/down arrow isn't very helpful
at all. Most of the time, users would manual type their desired time and
micro adjust with the arrow keys if needed.

This change also solves the issue where the time picker only counts
multiples of 5s as valid time as it was tied to the increment of minutes.
2023-04-14 11:02:10 -07:00
Hardik Dharmani d7d3126f80 settings: Use `place_caret_at_end` for New Email input field.
Used updated `place_caret_at_end` function from ui_utils to focus
`New Email` input field and place the cursor at end on modal render.
2023-04-14 10:59:42 -07:00
Hardik Dharmani 17ae99f436 ui_util: Update `place_caret_at_end` to also work for input fields.
Previously, `place_caret_at_end` was only used for HTMLElement with
contenteditable="true", updated it so it takes HTMLElement as
argument and use logic to place cursor at end as per type of
element passed(i.e HTMLElement or HTMLInputElement).
2023-04-14 10:59:42 -07:00
sbansal1999 f0ef0f7157 tooltip: Change placement of tooltip according to the popover menu.
This commits changes the placement of "Add streams" tooltip
and "Filter streams" tooltip to "bottom" when the
"Add streams" popover menu is opened and changes its back
to "top" when the popover menu is closed.

It makes use of the "id" attribute that has been assigned
to those tooltips in commit 01e6121e5a.

Fixes: #20675.
2023-04-13 16:46:15 -07:00
sbansal1999 2cf9e354c0 tooltip: Append tooltips to "document.body".
This commit appends the "Add streams" and "Filter streams"
tooltip to "document.body". It was required to make sure
the tooltip appears at the top when space in
"Direct Messages" section was not enough (when only 1 Direct
Message was present).

This commit also removes the "tippy-zulip-tooltip" class
from tooltips or else the tooltips would have shown their
default behaviour.
2023-04-13 16:46:15 -07:00
sbansal1999 44ffc9c9ca tooltip: Add id attribute to "Add streams" and "Filter streams" tooltip.
This commits adds an "id" attribute to the "Add streams" and
"Filter streams" tooltip. "Add streams" tooltip has been given
the id "add_streams_tooltip" and the "Filter streams" tooltip
has been given the id "filter_streams_tooltip".

This has been done to get access of these tooltips later.
2023-04-13 16:46:15 -07:00
sbansal1999 be9fbff5cd tippyjs: Combine "delegate" functions with same functionality.
This commits combines two different "delegate" functions that
provide identical functionality by combining values of the
"target" array in the function.
2023-04-13 16:46:15 -07:00
Mateusz Mandera ef42065cec billing: Allow exempt_from_license_number_check any number of licenses.
exempt_from_license_number_check was initially added allowing
organizations with it enabled to invite new users above their number of
licenses.

However, an organization with this permission enabled,
cannot upgrade if they weren't on a plan already - because when choosing
Manual license management, you cannot enter a number of licenses lower
than the current seat count. However, an organization like that probably
already has some users that they get free of charge - and thus they need
to be able to enter a lower number of licenses in order to upgrade.
2023-04-13 15:26:44 -07:00
Alex Vandiver 2d5c678614 blueslip: Only show in dev mode, or report to Sentry.
This removes the production reporting to `/json/report/error` upon
`blueslip.error`, and replaces it with reporting to Sentry, if
enabled.  Sentry provides better reporting and grouping for exceptions
than the email- and `#errors`-reporting provided by the
`/json/report/error` endpoint.

The development behaviour of rendering `blueslip.error` messages and
stacktraces immediately, and stopping execution, is preserved.

To better chain exception information, the whole previous exception is
passed to `blueslip.error`, not just the stack, and the second
parameter is formalized to be an object to map to Sentry's "context"
concept.
2023-04-13 14:59:58 -07:00
Alex Vandiver 7152278463 blueslip: Remove unused blueslip.timings store.
This was a write-only store which was never accessed.
2023-04-13 14:59:58 -07:00
Alex Vandiver 6882ec8087 blueslip: Remove unused preview_node.
It is unused, and an XSS waiting to happen if misused.
2023-04-13 14:59:58 -07:00
Alex Vandiver 52c4cae239 blueslip: Remove unused ui_message / show_ui_msg codepath.
This was last used in 71e14674aa, a decade ago.
2023-04-13 14:59:58 -07:00
Alex Vandiver 1833afee6a js: Enable cross-origin error debugging with crossorigin="anonymous".
If the script comes from a different origin than the requesting page,
and is not marked `crossorigin="anonymous"`, the `window.onerror`
handler receives no information other than "Script error." in the
event of a runtime error.

This effectively silences blueslip errors in development if the user
is developing on a remote host (such as a DigitalOcean droplet), since
static resources are served from `hostname.zulipdev.org`, and the
realm is served from `realmname.hostname.zulipdev.org`.  It also
silenced blueslip reporting in production for any non-default (non-"")
realms.  Sentry reporting, Vagrant developments, and truly ancient or
insecure browsers were unaffected.

Add the necessary `crossorigin="anonymous"` attribute to the
`<script>` tag to allow blueslip access to this error information.
2023-04-13 14:59:58 -07:00
Joelute a96cfb58bd timerender: Remove "Active just now" user status.
Currently, we only show the "Active just now" status once a user has gone
offline within the last 2 minutes. This ends up never showing up the
threshhold which the client marks an user as user is longer than 3 minutes.
Thus deemingthe user status as useless. After a discussion on CZO, it was
decided that we should remove this status altogether as the phrasing doesn't
make sense as well.
2023-04-13 14:59:08 -07:00
Joseph Ho 1e98a659c1 timerender: Revert extra changes to time in recent conversations.
In #25012, which was intended to only modify the buddy list, we
accidentally changed the rendering of times for several other code
paths, including recent conversations, that were using the
last_status_from_time function, whose name really suggested it only
was used for the buddy list.

Extract a new function with a better name for the more common relative
time use case.
2023-04-13 14:59:08 -07:00
PALASH BADERIA 85029d604a
tippy: Use delay on all compose and message feed tooltips.
Currently, most of the Tippy tooltips on icons in both the message feed
and the compose box have a delay, so they don't appear immediately
on hover, which can be distracting.

This commit adds this same delay to a few elements in these components
that had an inconsistent essentially 0 delay; the buttons located on the right side
of the compose box as well as the messagebox copy codeblock button tooltip.

Fixes part of #24825.
2023-04-13 13:16:18 -07:00
Daniil Fadeev a385f65126 tooltips: Fix text overflowing. 2023-04-13 11:29:11 -07:00
sayamsamal 9f6f77f6bc icons: Change bot icon from GitHub logo to Google material icon.
We currently use the GitHub logo to show the bots settings in both
personal and organization settings. This icon is not a correct
representation since we use have support for several different bots
including but not limited to a GitHub integration bot.

This commit replaces the GitHub logo with Smart Toy material icon
from Google, while also adding the required licencing details at
docs/THIRDPARTY.

Part of #19797.
2023-04-13 10:47:09 -07:00
Sahil Batra c29ccb6a3f app_components: Refactor css from stream-privacy-type-icon.
This commit refactors the CSS for stream-privacy-type-icon
element to avoid duplication.
2023-04-13 10:46:14 -07:00
Sahil Batra 2b84b86027 templates: Fix vertical alignment of globe icon.
This commit fixes the vertical alignement of globe icon in
inline_decorated_stream_name template by setting it using
relative units instead of px so that it is better aligned
at multiple places with different sizes.
2023-04-13 10:46:14 -07:00
Sahil Batra 66b6151f61 dropdown_list_widget: Add privacy icons for stream options.
This commit adds privacy icons before the stream names in
dropdown-list widget for "New user announcements",
"New stream announcements" settings and for stream dropdown
in "Move message" and "Move topic" modal.

Fixes part of #22355.
2023-04-13 10:46:14 -07:00
Sahil Batra 067c71adc4 templates: Use new lock and hashtag icons for stream privacy.
This commit updates inline_decorated_stream_name template to
use the new lock and hashtag icons for stream privacy added
in 8c744752.
2023-04-13 10:46:14 -07:00