This commit changes the code in such a way that the
"Start new conversation" button open the compose box with the channel
picker open, as we do when no channels is selected.
Fixes#28410.
Co-authored-by: Kunal Sharma <v.shm.kunal@gmail.com>
This commit updates the logic to disable the reply button based on the
user's permissions in the stream.
Fixes part of #28410.
Co-authored-by: Kunal Sharma <v.shm.kunal@gmail.com>
The "cancel-legacy-server-upgrade-button" class attribute was not
being used in CSS rules or frontend biling code, so these changes
remove it instead of renaming it.
Change alignment of footer rows to flex-start a bit earlier.
`1280px` is chosen since that's the standard `max-width` for
the screens on the page and that is width around which the
massive gap before the first item on the footer is diminished which
allows us to left align the elements.
If the user has enabled the option to automatically offer to update
their profile time zone with the browser's time zone, we show an alert
offering that.
Clicking on "Yes" updates the timezone.
Clicking on "No, don't ask again" disables (unchecks) the option.
A feedback toast is displayed to indicate the success/failure of the
request.
The alert is also shown if the user has not set their time zone.
Fixes#16957.
We add a variable `browser_time_zone` to track the same
separately from `display_time_zone`.
This is used to check whether the user profile time zone matches
the browser's time zone, as a part of #16957, and will later be
used in #16958.
We also add methods to check whether a given timezone is the same
as that of the browser, making use of the browser's own
canonicalization process.
Tests are added to ensure that the time zone comparison
logic works for timezones observing DST.
Fixes part of #16957
Added a checkbox to toggle the option to automatically offer
to update the time zone with the browser time zone,
which is handled by the user profile field
"web_suggest_update_timezone".
A tooltip is also attached explaining the feature.
Fixes part of #16957
This field tracks whether the user should be shown an
alert offering to update their profile time zone to the
time zone of the browser in case they differ.
The field is added to RealmUserDefault and UserProfile
models with a default value of True.
Fixes part of #16957
Removes deprecated `user` object from reactions objects returned by
the API as it is redundant because of the presence of `user_id` field in
the API and is not used by any clients now.
Since the initial fetch has a lot of messages, it can add many topics
to the left sidebar which can move the selected topic out of the view.
Note that `has_scrolled` is triggered even for the scrolls not triggered
by user since it is not easy to differentiate between the two events.
So, it is okay to ignore it initially.
This commit prepares for a future change where the logic
will switch from returning "topic_jump" in
`tokenize_compose_str`, which causes the typeahead to close,
to returning the sliced token starting from '#'.
A test has been updated to validate the change.
To accommodate typeahead triggers for long stream and
topic names, the token limit is increased from 25 to 40
characters.
This commit restructures the layout of the move messages and move topic
modals to follow standard patterns from other modals (e.g., the invite
user modal). It includes the following changes:
- The intro text is removed from the modal for renaming a topic,
moving a topic, and moving messages between topics.
- The intro text is moved to the modal heading.
- If the heading doesn't fit on one line, it is abbreviated using
ellipsis.
Fixes#32168.
* Uses em for width instead of px, matching the width of
the emoji style picker.
* Uses grid to line up columns, instead of flex with pixel widths
for the preview column.
* Add overflow hidden to look better on small widths.
Added a feature to the move message confirmation box to display the
count of messages that will be moved. The count updates dynamically
based on the selected option in the dropdown.
Fixes#23115.
In the right side-bar, the popover states "Active x minutes ago",
even though the user could have been idle before going offline.
In that case we are stating something false, as the user was not
"Active x minutes ago", they were "Idle x minutes ago". Always
prioritizing the active_timestamp if possbile rather than taking
the max of active_timestamp and idle_timestamp fixes this issue.