Adds a section to "View Zulip version" article for viewing the
mobile app version, and adds the mobile app installation guide
to the related articles section.
Part of #34748.
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm, --test-custom-db, Debian 12 production install with custom db name and user, bookworm) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:jammy, , Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga, jammy) (push) Has been cancelled
This commit adds the `banner-wrapper` class to the parent container of the
banner.
Added `margin-bottom: 10px` to the banner to improve its appearance.
Placed the event listener at the correct location with the $container
element so that it binds only once. Previously, it was being bound
every time the settings page was loaded, causing multiple event listeners
to be attached to the same element.
Additionally, the banner was not rendering when opening
Org settings > DEFAULT USER SETTINGS directly,
and this has been fixed by ensuring the banner is rendered correctly.
This commit cleans up the data URIs for the custom
chevron icons, and sets the same color as used on
select text.
Additionally, the background-image size now scales as
expected, so that browser-native <select> elements
have chevrons that much more closely resemble those
of button-based selects for our custom widgets.
This removes the previous slightly-lighter text shade
in light mode, and gets away from the trickiness of
`color: inherit` in dark mode.
While we could probably go with inheritance
everywhere, simply by removing the color: value on
these element, setting an explicit color variable on
the inputs here builds better confidence as to what
the color value will ultimately be.
Where a valid query is a string whose lowercase version
contains only ASCII lowercase letters.
@timabbott said:
>Note that the query being ascii is important
to how the comparisons are done, so that queries
with diacritics are handled properly to match
the exact diacritics used, for example.
This is a non-functional change done as a part of
a series of commits to eventually cache and use
diacritic-less full names instead of computing them
every time.
The eventual aim is to pass cached diacritic-less
full names directly to
`query_matches_string_in_order_assume_canonicalized`
when the query is plain ascii.
This commit adds a "Reset to default notifications" button in the
Notifications menu, to the right of the channel name, for which a
user has selected custom notifications and a confirmation
dialog to confirm this action.
Fixes#19860.
This commit contains the following changes:
- Updates the unmute stream icon in Personal settings
> Notifications to use the `icon-button-brand` CSS class.
- Adjusts the tooltip delay for the unmute icon.
- Removes unused CSS.
Prep commit for #19860.
To properly increment counters, and display lists of the
correct type when nested, we need to use child selectors
and not the previous, overly generic descendant selectors.
The `inside_list`, `go_down`, and `go_up` function defined
in `list_util.ts` is used in `hotkey.js`.
We made changes in 45e91daa14
to use `keydown` only in `hotkey.js`.
The event type of those three functions should be
`JQuery.KeyDownEvent` only.
This commit fixes that.
Unlike the deprecated `keypress` event, the `keydown` event is fired
for all keys, regardless of whether they produce a character value.
Our handlers only care about whether Enter key was pressed or not,
so even though the handlers will be executed for modifier keys
like `Option`, `Ctrl`, etc there is no change in the behaviour
practically.
We currently always show fa-ban icon and "Disable" text for
"Disabled" or "None selected" option in dropdown-list widget.
This commit adds code to provide an option for not showing the
fa-ban icon and having the option text be something other than
"Disable". This will be used in channel folder dropdown widget
where we want to have "None" text in the option without icon.
We do not need ".stream-creation-body" selector for this block
of CSS properties, since we apply these CSS properties to all
the required elements using ".stream-permissions" and
".advanced-configurations-container" selectors.
We got rid of the only two calls for
`initialize_restore_overlay_message_tooltip`
in the previous commits.
That is why it is safe to get rid of its
definition.
Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
Fixes
https://chat.zulip.org/#narrow/channel/9-issues/topic/Starred.20messages.20view.20performance/near/2184251.
Anchor for starred messages was `first_unread` and the query to find
first_unread in a user's starred messages can turn out to be expensive.
This commit ensures that we default to newest instead since first_unread
is not of important for the starred messages view.
By excluding starred messages from using `first_unread`, it will default
to newest based on the logic in message_view.ts.
Reproducer:
* Navigate to a channel using `near` link with no recent history
such that `all_messages_data` has no history cached for it.
The data for this channel narrow is not added to `all_messages_data`
to keep the history of `all_messages_data` contiguous.
* Press scroll down button, you will see an error.
Fixed by checking if the message list data is empty before narrowing
and asking server for messages if that's the case.
Renames the function called to open the web app modal to convert
a demo organization to a permanent organization to instead be
show_convert_demo_organization_modal, as "do_" functions in the
codebase typically means it's called after any checks/dialogs.
This commit adds an option to change the notification settings
of a channel from default to custom in the Notifications menu
of Personal settings.
Fixes#19849.
This commit introduces a class
`decorated-stream-name-dropdown-widget`. The class extracts
the styles applied to channel dropdowns in commit:
9ae704510f org_settings: Correctly display long channel names,
so they can be reused at other instances.
This commit ensures that long channel names, including those
containing multiple words, are properly abbreviated in the channel
dropdown widgets in organization settings.
Follow up to commit:
9ae704510f org_settings: Correctly display long channel names,
which handled long single-word channel names.
This commit adds a variable `push_notifications_disabled` to the
checkboxes used in the notifications table in Settings > Notifications.
The variable is used to control the mobile push notifications
disabled tooltip.
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm, --test-custom-db, Debian 12 production install with custom db name and user, bookworm) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:jammy, , Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga, jammy) (push) Has been cancelled
We shouldn't show duplicate suggestions in the typeahead, but
duplicate pills were still possible by typing a term twice in
the search bar and pressing enter after each one, and this
commit prevents that from putting duplicate pills in the search
bar.
Previously, typing "channels: public" would show "Channels public"
in the typeahead, which was especially confusing because we'd show
"All public channels" until the term was completely typed out.
Calling settings_data.user_can_access_all_other_users on every call to
this function could be expensive when using this function in loops
over every user in the organization.
After the previous commit, those calls are still somewhat expensive
for guest users.
This fixes an important issue where this function being called in a
loop can consume as much as 1ms per iteration for users who are in a
lot of groups.
This commit removes the deprecated `keypress` event.
Now, we use the `keydown` event.
Earlier, we used `keypress` because it allowed us to distinguish
between lowercase and uppercase characters using `event.which`.
For example:
* For 'r':
* keypress.which = 114
* keydown.which = 82
* For 'R':
* keypress.which = 82
* keydown.which = 82
As shown, `keydown.which` cannot distinguish between 'r' and 'R',
which is why `keypress` was helpful.
Now, modern browsers support `event.key` on `keydown`, which directly
gives 'r' or 'R' as needed. This makes `keypress` unnecessary, and
we can safely rely on `keydown` with `event.key` to get the exact
character.
An earlier commit in this PR #34825, in which we replaced
the `event.which` with `event.key` plays a major role as a prep
commit to help removing `keypress` event in this commit.
The `keydown` and `keypress` event handlers defined in
`emoji_picker.ts` were using `event.which`, which is deprecated.
This commit makes changes to use `event.key` instead.
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm, --test-custom-db, Debian 12 production install with custom db name and user, bookworm) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:jammy, , Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga, jammy) (push) Has been cancelled
With this we introduce selection expansion when
the selection spans across multiple inline expressions
or expressions within mutliple math blocks.
This makes the selection consistent with what is pasted
while also fixing some bugs encountered in cases such as:
1. Focus present in an inline math expression and
anchor present in a different inline math expression
and vice-versa.
2. Focus present in a math block and anchor present
in a different math expression outside that math block
and vice-versa.
3. When selecting expressions within a math block, the
first expression wasn't retained in the past because
of the selection not containing <annotation>.
Fixes#33676.
Also fixes
https://chat.zulip.org/#narrow/channel/9-issues/topic/.F0.9F.93.82.20pasting.20LaTeX/near/2159869
and other related issues.
Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
This commit adds a "Alphabetize choices" button for SELECT also known as
"List of options" type custom profile fields. The
options themselves can get out of order from either user text input, or
from list modifications like addition or drag.
We follow case-insensitive alphabetization such that "vim" comes before
"VS Code". This is similar to how we alphabetize elsewhere like stream
lists.
Fixes: #28607.
Co-authored-by: Tanmay Kumar <tnmdotkr@gmail.com>