Commit Graph

3399 Commits

Author SHA1 Message Date
N-Shar-ma afba77300a typeahead: Prefer word boundary matches to arbitrary substring matches.
So far, when ordering typeahead suggestions, any query matches that did
not occur at the start of the target string were considered equally. So
for example, for the query "ok", "squared_ok" and "smoking" were
allotted equal priority, which does not make sense.

Now, matches from a word boundary (space, hyphen, underscore or slash)
are given priority (after exact matches and beginning matches), so that
in the above example, "squared_ok" is regarded as a better match than
"smoking".

Since recipients' sorting is complex, and needs word boundary matches
separately for decoupled sorting post triage, `triage_raw` is extracted
from `triage` to return the raw matches.

Fixes: #24127.
2024-01-29 17:24:11 -08:00
N-Shar-ma 2d21e71b93 typeahead: Clean up variable names to follow snake_case convention. 2024-01-29 17:24:11 -08:00
N-Shar-ma b89cd43588 typeahead: Sort exact matches too, in case there are multiple. 2024-01-29 17:24:11 -08:00
Anders Kaseorg 1a9441ec70 dependencies: Upgrade JavaScript dependencies.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-01-29 16:14:26 -08:00
Anders Kaseorg 24ecafbdd2 eslint: Fix @typescript-eslint/no-useless-template-literals.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-01-29 16:14:26 -08:00
Anders Kaseorg 2dca29ce5a eslint: Fix @typescript-eslint/no-unnecessary-type-assertion.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-01-29 16:14:26 -08:00
roanster007 04013cdec1 left_sidebar: Add mark all messages unread to three dot topic menu.
This commit adds a new option to the three-dot topic menu in the
left sidebar to mark all the messages of topic as unread, provided
the topic's messages are already read before choosing this option.

This is done with the help of bulk_update_read_flags_for_narrow
method to remove the read flag on bulk of messages.

Fixes #25085
2024-01-29 16:07:19 -08:00
roanster007 b1ca1fd606 unread_ops: Refactor bulk_mark_messages_as_read method.
This commit renames the bulk_mark_messages_as_read method to
bulk_update_read_flags_for_narrow, and takes in an additional
parameter - op, which takes in values of add or remove, indicating
whether to add or remove the read flag for bulk messages.

This is a preparatory commit to bulk mark multiple messages as unread.
2024-01-29 16:07:19 -08:00
Prakhar Pratyush edec29e0b6 support: Add support to configure fixed_price plan. 2024-01-29 11:23:20 -08:00
Lauryn Menard 15ba9cf8ec bootstrap: Remove bootstrap.btn classes from support view buttons.
Moves CSS styles for support view buttons to
`web/styles/portico.activity.css`.

Also removed the "sea-green" and "small" classes from a few buttons
as no CSS rules were being applied and most of those buttons will
be removed when these forms are refactored to use a modal.
2024-01-29 10:59:33 -08:00
evykassirer ea04f7d27d topic list: Convert module to typescript. 2024-01-29 10:22:35 -08:00
evykassirer 7154539e80 typeahead_helper: Convert module to typescript. 2024-01-29 10:06:18 -08:00
evykassirer fdb6f212d0 Remove User type from types.ts. 2024-01-29 10:06:18 -08:00
Sahil Batra 5f82bf0002 css: Remove bootstrap css for "fade" class.
We do not use "fade" class in our app anymore so we can
remove its CSS from boostrap.app.css.
2024-01-29 09:55:32 -08:00
Sahil Batra d375921eb4 settings: Do not use bootstrap "fade" class.
We used bootstrap "fade" class to show the password strength
only after password_quality module is imported. Adding "fade"
class was only hiding the bar by setting opacity and the
transition defined in bootstrap was not used as it was
overridden by transition in progress_bar.css. So, we just
hide and show the bootstrap by using "hide" class and remove
the use of "fade" as part of the bootstrap removal project.
2024-01-29 09:55:32 -08:00
Sahil Batra 69d0c78f1e settings: Remove unnecessary code.
We do not use "#pw_change_controls" element any more as it
was removed in 2ca0fb412.
2024-01-29 09:55:32 -08:00
Tim Abbott 41fa2e7174 css: Remove unused portico tab-content CSS rules. 2024-01-28 16:08:30 -08:00
Tim Abbott 065dc8fc5d css: Remove several unused Bootstrap rules from portico. 2024-01-28 16:08:30 -08:00
Tim Abbott b44c3d321d css: Delete unused Bootstrap close rules from portico. 2024-01-28 16:08:30 -08:00
Tim Abbott 00aa0631fe css: Move Bootstrap alerts CSS to separate file. 2024-01-28 16:08:30 -08:00
Tim Abbott db9ee6237e css: Remove portico copy of Bootstrap typeahead CSS.
We don't use the typeahead component in portico pages.
2024-01-28 16:08:30 -08:00
Tim Abbott 56a884e0be css: Extract Bootstrap Typeahead CSS to its own file. 2024-01-28 16:08:30 -08:00
Tim Abbott 73aca658f6 css: Remove unused Bootstrap dropdown-backdrop rules. 2024-01-28 16:08:30 -08:00
Tim Abbott 4395c54c23 css: Remove unused Bootstrap CSS for nav elements. 2024-01-28 16:08:30 -08:00
Tim Abbott ee97d018af css: Remove unused Bootstrap dropup CSS. 2024-01-28 16:08:30 -08:00
Tim Abbott 3818969f04 css: Remove overridden body styles from app. 2024-01-28 16:08:30 -08:00
Tim Abbott 98637e3a88 css: Remove unused Bootstrap text-* styles from app. 2024-01-28 16:08:30 -08:00
Tim Abbott 49ff0dc2e2 css: Remove unused row/container CSS from app. 2024-01-28 16:08:30 -08:00
Tim Abbott 25d7740b26 css: Remove dead Bootstrap CSS from app.
The only reference to any of these was in a comment.
2024-01-28 16:08:30 -08:00
Karl Stolley f07dae6b25 bootstrap: Fork CSS into app, portico copies.
This aims to reduce the cognitive overhead of doing Bootstrap CSS
cleanup by concerning contributors only with Zulip or the portico.
2024-01-28 15:07:36 -08:00
Pratik Chanda f4260cf40d stream_settings: Add stream "reset to default notifications" button.
This commit introduces a "reset to default notifications" button to
the personal panel in stream settings. On clicking, it unmutes the
current stream and resets all its notification configurations to
default user settings.

Fixes zulip#27624.
2024-01-28 14:32:45 -08:00
evykassirer 3975c508b5 topic_generator: Convert module to typescript. 2024-01-28 14:20:45 -08:00
evykassirer d969ac3764 reactions: Rename reaction_info to rendering_details.
When we convert to typescript, these variables
will be of type EmojiRenderingDetails. This is
a more clear name.
2024-01-28 14:17:15 -08:00
evykassirer 3208235e79 emoji: Remove number as possible type for emoji_code.
More details here:
https://github.com/zulip/zulip/pull/28375#issuecomment-1878073956
2024-01-28 14:17:15 -08:00
evykassirer 0e358b9f85 reactions: Always call update_user_fields with should_display_reactors.
This was wrong before. `update_user_fields` is called with
`should_display_reactors` everywhere else.
2024-01-28 14:17:15 -08:00
evykassirer 84038a9984 reactions: Fix typo. 2024-01-28 14:17:15 -08:00
evykassirer fc1bd590b6 reactions: Remove view namespace.
This will make a migration to typescript easier,
and was unnecessary extra complexity.
2024-01-28 14:17:15 -08:00
Sahil Batra 3fc2bccc21 bootstrap: Remove css for btn-link elements.
We currently use btn-link class only in buttons used for
changing email and password in account settings panel and
for we already bootstrap CSS rules for those so we can
safely remove the CSS rules in bootstrap-btn.css.
2024-01-26 09:10:09 -08:00
Sahil Batra 6b459c0ea4 invite: Re-add bootstrap CSS rules for btn-link elements.
This commit re-adds the bootstrap CSS rules for the specific
btn-link elements in invite modal to zulip.css. This is part
of the bootstrap removal project.
2024-01-26 09:10:09 -08:00
Lauryn Menard bfd9eec4b3 activity: Add totals row as sticky footer to activity charts.
Updates the total row for the installation and remote activity
charts to be in the table footer. Makes the footer class sticky
to the bottom of the view so that it is always visible on the
chart.

Also, updates the installation activity column for revenue to
be formatted as a dollar string, since this formatting was being
applied in the updated total row.
2024-01-26 09:04:39 -08:00
Tim Abbott 371dea3f0d css: Remove unused btn-info styles. 2024-01-25 18:35:38 -08:00
Tim Abbott ee9a9bfa98 css: Remove unused btn-block styles.
The (unfinished) two-factor UI isn't designed at all, so we can just
remove the classes from it.
2024-01-25 18:35:38 -08:00
Tim Abbott f04b54ff47 css: Remove unused boostrap nav-header styles. 2024-01-25 18:35:38 -08:00
Tim Abbott 4b6b1da83c bootstrap: Remove now-unused tabs JS component.
This was the last bootstrap.js feature, so we finally get to remove
the whole module.
2024-01-25 18:35:38 -08:00
Tim Abbott f105c6b12e css: Remove unused Bootstrap nav-tabs styles. 2024-01-25 18:35:38 -08:00
vighneshbhat9945 642cce1a30 settings: Remove extraneous background for export button.
Removed the div along it's css rules which was
responsible for extraneous background around the
'start export of public data' button.

Fixes: #28625.
2024-01-25 18:24:06 -08:00
Sayam Samal 222364733f emoji_picker: Restructure CSS related to the emoji picker.
This commit tries to improve the CSS related to the emoji picker by
restructuring relevant parts of `reactions.css` and `dark_theme.css`.

Via this commit, the redundant classes -- "reaction", "status-emoji",
"composition" are also removed from `emoji_popover_emoji.hbs`.

If needed, specific styling -- according to the type of emoji picker,
can now be applied using the `data-emoji-destination` attribute of the
`.emoji-picker-popover`.
2024-01-25 18:15:45 -08:00
Sayam Samal d0c111c809 emoji_picker: Fix status emoji picker inconsistencies.
Due to a logical bug in the `process_enter_while_filtering` function,
the `toggle_reaction` was being called when pressing enter while
filtering the emojis in the status emoji picker.

This commit fixes the above bug, while also adding some cleanups to the
`emoji_picker.js` by combining multiple click handlers and aggregating
all the logic related to an emoji being selected into a common function.

Fixes #28464.
2024-01-25 18:15:45 -08:00
vighneshbhat9945 6d6fa145cc
css: Make the height of compose buttons steady.
When any stream name includes some other language's letters is scrolled down in 
the recent views, the height of compose-controls bar would change.

Fix this by setting a precise line-height for these elements.

Fixes: #27837.
2024-01-25 15:16:00 -08:00
Sahil Batra 6781d06988 settings: Remove extraneous divider in account settings. 2024-01-25 14:28:48 -08:00
Sahil Batra 3d56f65df3 settings: Show the text about downloading config in "Active bots".
This commit moves the "Download config of all active outgoing
webhook bots in Zulip Botserver format." text to be shown in the
"Active bots" section since the text is relevant for active bots
only. This commit also updates the code to show the text only
if user has atleast one active outgoing webhook bot since the
text is relavant only for outgoing webhook bots.
2024-01-25 14:28:48 -08:00
Sahil Batra a6370fda68 settings: Do not use bootstrap tabs in bots panel.
This commit replaces the boostrap tabs with our own
tabs implementation from components.ts. This is part
of the bootstrap removal project.
2024-01-25 14:28:48 -08:00
N-Shar-ma 0003c3c1ef typeahead: Fix bug where typeahead showed momentarily on shift + tab.
Since the keyup event for keys including shift triggers the typeahead,
shift tabbing into the topic recipient field would show the typeahead
momentarily, which is distracting.

As we need typeahead to trigger on shift for certain use cases in the
compose box, but not in the topic recipient field, we now do not trigger
typeahead on shift keyup events in the topic recipient field.

Fixes: #24152.
2024-01-25 11:12:26 -08:00
N-Shar-ma e4258b56d5 hotkey: Introduce hotkey Alt+P to toggle preview for compose box.
On Mac, it's Option+P.

Fixes: #18471.
2024-01-25 10:51:25 -08:00
N-Shar-ma 972b4de7c4 hotkey: Correct Mac equivalent of Alt and handle exceptions separately.
Though the correct mapping for Alt in Mac is Option, we had so far been
mapping it to Command, since for the 2 pre-existing shortcuts that used
Alt, Command was the only key that worked on Mac. However, these are
exceptions.

Now we map Alt to Option, and handle the 2 exceptions separately, using
data attributes on those shortcut elements.

This is a prep commit for introducing a hotkey that uses Alt / Option.
2024-01-25 10:51:25 -08:00
N-Shar-ma 536ab78587 refactor: Extract new function `show_preview_area` for the compose box.
The code responsible for switching from edit mode to preview mode from
`compose_setup.js` is now extracted into a new function in `compose.js`,
to facilitate reuse.

This is a prep commit for introducing a hotkey to toggle between edit
and preview mode for the compose box.
2024-01-25 10:51:25 -08:00
Anders Kaseorg 118cfbea65 typeahead: Remove insecure default highlighter implementation.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-01-24 17:46:56 -08:00
Anders Kaseorg 5348bee0eb settings_playgrounds: Fix HTML injection in language typeahead.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-01-24 17:46:56 -08:00
evykassirer d7b02a699c pygments_data: Move data to typescript. 2024-01-24 17:06:03 -08:00
evykassirer bd6471f0e3 page_params: Add custom_profile_field_types. 2024-01-24 17:06:03 -08:00
evykassirer ebb1105e2f typeahead: Fix type of sorting_comparator. 2024-01-24 17:06:03 -08:00
Sahil Batra 866a610664 group_settings: Empty right panel based on the url hash.
This commit adds code to empty the right panel if hash is
changed to "#groups/your" or "#groups/all".
2024-01-24 14:01:47 -08:00
Sahil Batra a87de19aa7 groups_settings: Fix browser back button for groups overlay.
There is no problem in behavior of browser back button if we open
the group settings overlay using "#groups/your", "#groups/all" or
"#groups/new" url hash, but someone can directly go to a link with
"#groups" and in this case we want to fix the browser back button.

This commit replaces "#groups" entry with "#groups/your" which is the
default section opened, such that pressing back when on "#groups/your"
does not go to "#groups", which will then a form a cycle and instead
go back actually.
2024-01-24 14:01:47 -08:00
Sahil Batra 6e61077ab4 gear_menu: Open group settings overlay with "#groups/your" hash.
This commit fixes the bug in browser back button behavior when
opening the groups overlay from gear menu. The bug was caused
due to browser history containing both "#groups" and "#groups/your"
entries, which essentially resulted in a "#groups/your" -> "#groups"
-> "#groups/your" cycle and thus nothing happend on clicking
browser back button.

The case for a user manually typing "#groups" url would be handled
in next commit.
2024-01-24 14:01:47 -08:00
Sahil Batra baad78aafd groups_settings: Make "Cancel" button work in group creation form. 2024-01-24 14:01:47 -08:00
Pratik Chanda 8559032d3a help_menu: Fix help_menu message formatting overlay not opening.
This commit fixes the behaviour of message formatting overlay in
help menu not opening due to assertion error in rendered markdown
after changes from #28418.
2024-01-23 18:09:57 -08:00
Anders Kaseorg e9ea4280ab vdom: Fix types to avoid relying on unsound bivariance.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-01-23 12:13:41 -08:00
Aditya Kumar Kasaudhan 19f315cf4f settings: Rename 'display_settings' to 'preferences'.
Fixes part of #26874.
2024-01-23 10:11:44 -08:00
Aditya Kumar Kasaudhan 6cd165386a settings: Rename 'emoji-display-settings' to 'emoji-preferences'.
Fixes part of #26874.
2024-01-23 10:11:44 -08:00
Aditya Kumar Kasaudhan 61a10dfca0 settings: Rename 'display-settings' to 'preferences'.
This commit renames "display-settings-radio-choice-label" to "preferences-radio-choice-label".

Fixes part of #26874.
2024-01-23 10:11:44 -08:00
Lauryn Menard ccfcb34bea activity-css: Make activity charts header row sticky.
This will be applied to both the overall installation activity chart
as well as the associated remote, client, realm and user views.

Co-authored-by: Karl Stolley <karl@zulip.com>
2024-01-23 09:31:05 -08:00
Sahil Batra 9fa39ce71d stream_edit_subscribers: Remove unnecessary logging.
There is no need to log if the stream edit UI is not opened
when an event for updating subscribers list is received and
we should just return because this is not a bug.
We do the same in other places where we just return early
without logging because we do not need to make any updates.
2024-01-22 22:08:10 -08:00
Anders Kaseorg cacdae5a10 message_viewport: Remove needlessly complex make_dimen_wrapper.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-01-22 18:21:53 -08:00
Lalit 6f6795f607 ts: Migrate `message_viewport` to typescript.
Used function overloading for methods - `make_dimen_wrapper`
and `scrollTop`.
2024-01-22 16:29:23 -08:00
Lalit f2c700b6e1 message_viewport: Refactor `message_viewport_info` method.
Refactoring to avoid having an object of incomplete type i.e. `res`.
2024-01-22 16:29:23 -08:00
Lalit 82841a7b5f message_viewport: Remove unused parameter from `in_view` function. 2024-01-22 16:29:23 -08:00
Lalit d4a4e2df3a message_viewport: Modify parameters for dimension wrapper functions.
JQuery's `height` and `width` methods only takes one argument in case
we want to set height or width. The argument is of type `string` or
`number` or a function.

Refrence: https://api.jquery.com/height/#height-value.

Therefore, we can get rid of argument array and just accept a single
argument in the inner function in `make_dim_wrapper`.
2024-01-22 16:29:23 -08:00
Lalit 530f4fc763 message_viewport: Avoid having unbound methods.
Passing class methods such as `$.fn.height` as values is dangereous
because it removes type safety by failing to capture `this`.
eslint-rule: @typescript-eslint/unbound-method.

Hence, I fixed this rule by directly binding `$scroll_container`
to these methods before passing them as values to wrapper function.
2024-01-22 16:29:23 -08:00
Lalit 69294d5baf message_lists: Add type for `opts` parameter of `select_id` method. 2024-01-22 16:29:23 -08:00
ColeBurch 9917ffa220 settings: Rename four custom profile fields types.
This commit renames four custom profile fields types.

Fixes part of #28511.
2024-01-21 12:51:53 -08:00
Aman Agrawal abe6e5b807 personal_menu: Fix clicking on `Set status` not working.
Use `tabindex` instead of `href` to set focus on `a` tag.

Ideally, we should use `button` for these elements but since
we want to keep the pattern for these dropdowns same where some
`a` elements do have a valid `href`.
2024-01-21 12:06:53 -08:00
Varun Singh c0a0c0e834 scheduled_messages: Convert module to TypeScript. 2024-01-21 08:54:20 -08:00
Varun Singh ac42de07eb scheduled_messages_data: Convert object to Map. 2024-01-21 08:54:20 -08:00
Aditya Kumar Kasaudhan 80ea965408 settings: Rename display_settings_labels to preferences_settings_labels.
Fixes part of #26874.
2024-01-19 17:55:13 -08:00
evykassirer 1948cf15a4 rendered markdown: Assert data-user-group-id is always defined. 2024-01-19 17:54:07 -08:00
evykassirer 8473b9dd48 rendered_markdown: Throw error if stream_id_string is undefined. 2024-01-19 17:54:07 -08:00
evykassirer 1de36ec743 rendered_markdown: Convert module to typescript. 2024-01-19 17:54:07 -08:00
evykassirer 4c5f115a6e people: Remove string type for user_id.
Further discussion here:
https://github.com/zulip/zulip/pull/28418#discussion_r1442220867
2024-01-19 17:54:07 -08:00
evykassirer e4ba07dcf2 message_store: Only allow number for message_id. 2024-01-19 17:54:07 -08:00
evykassirer e986813943 emoji_picker: Don't allow toggling of user status emoji. 2024-01-19 17:54:06 -08:00
Tim Abbott e32468e97f compose: Simplify convert_mentions_to_silent_in_direct_messages.
The behavior to replace existing message content was leftover code
from a previous version of the mechanism, and not intended.
2024-01-19 14:56:55 -08:00
Tim Abbott ca591b49ca compose: Don't convert bot mentions to silent mentions.
This fixes an unintended consequence of the silent mention conversion
logic added in 4d1ade1f88, where bots
that looked for personal mentions would not process mentions in 1:1
DMs.
2024-01-19 14:56:55 -08:00
vighneshbhat9945 d9865e960d emoji_picker: Avoid exception in emoji_picker.
Added if-else condition to check whether the
'section_head_offsets[]' is empty or not.
If it is empty then 'currently_selected' is
coded as 'Popular' else it is assigned with
'section_head_offsets[0].section'.

Fixes #24776.
2024-01-19 11:17:09 -08:00
sayyedarib 9f509d4ab2 status_emoji_selector: Replace fa-smile with custom zulip-smile-icon.
Signed-off-by: sayyedarib <sayyedaribhussain4321@gmail.com>
2024-01-19 09:48:02 -08:00
sayyedarib d41ee3d3d8 user_status: Fix alignment of select-emoji icon of user-status modal.
use flex display justify-content for vertical alignment
instead of using offsets like "top". for horizontal
alignment of smiley-icon use text-align center.

Signed-off-by: sayyedarib <sayyedaribhussain4321@gmail.com>
2024-01-19 09:48:02 -08:00
Aman Agrawal a17f18f155 narrow: Fix message row partially visible on narrow.
This will prevent any message we want to select after narrowing
from being offscreen entirely or partially.

Steps to reproduce the bug:
* `./manage.py populate_db -n 3000 --max-topics=2`
* Narrow to a stream and scroll high up.
* Align two recipient bars together with nothing between them.
* Click on the first recipient bar after keeping the selected message
  on the second recipient bar.
* You will see that the selected message is not in view.
2024-01-19 09:36:19 -08:00
Aman Agrawal db10cca4a2 Revert "desktop_app: Close popover when clicking on "Plan management"."
This reverts commit 1f79e6294f.
No longer required after
70ba7cc042
2024-01-19 08:42:25 -08:00
Aman Agrawal febeeb5dac popover_menu: Fix popover not closed on clicking external links.
For example, gear menu was not closed after `Integrations` button
was clicked since we don't have an event handler which opens
`/integrations` in a new tab but we let the browser navigate user
to `/integrations` after clicking on `a href='/integrations'`.

There was no handler for hiding the popover after clicking on such
links, so this commit adds one.
2024-01-19 08:42:25 -08:00
Mateusz Mandera 1f79e6294f desktop_app: Close popover when clicking on "Plan management". 2024-01-18 15:57:51 -08:00
Aditya Kumar Kasaudhan 1ab4520c4e settings: Rename display-settings-form to preferences-settings-form.
Fixes part of #26874.
2024-01-18 13:39:57 -08:00