Commit Graph

364 Commits

Author SHA1 Message Date
Daniil Fadeev
c5f6c00a81 popovers: Extract user info popovers into their own module.
The intent behind this commit is to tidy up how we handle user info
popovers. The first step is to move everything related to them into
its own module. This commit should not have any functional changes.
2023-09-13 11:49:08 -07:00
Aman Agrawal
6ef0753a51 inbox: Add new narrow. 2023-09-12 09:20:33 -07:00
Lalit Kumar Singh
5f74b9051e ts: Migrate user_topics.js to typescript. 2023-09-11 10:57:38 -07:00
Daniil Fadeev
7777c55b22 popovers: Extract user_group_popover into separate module.
This is a preparatory commit before we migrate `user_group_popover`
from Bootstrap to Tippy library.

The previous implementation was weirdly sharing the logic around
`current_message_info_popover_elem` with the user info popovers based
on a message; very likely an unfortunate latent bug caused by
copy/paste.

To address that, we need to add dedicated functions like
get_user_group_popover_items to avoid breaking keyboard navigation
with this extraction.
2023-09-11 10:26:50 -07:00
Lalit Kumar Singh
c47a18eb2b ts: Migrate realm_logo to TypeScript. 2023-09-09 18:30:43 -07:00
Lalit Kumar Singh
b8e0850aa1 ts: Migrate realm_icon to TypeScript. 2023-09-09 18:30:43 -07:00
Aman Agrawal
1305fe74b6 test-js-with-node: Remove deleted dropdown-list-widget module.
Fixes #25741
2023-09-09 18:22:25 -07:00
Lalit Kumar Singh
affdffdda5 ts: Migrate settings_emoji.js to TypeScript. 2023-09-08 13:09:34 -07:00
Lalit Kumar Singh
5c2ba6c8fa ts: Migrate avatar.js module to TypeScript. 2023-09-08 13:09:12 -07:00
evykassirer
3c16541eb4 recent: Rename recent_topics_util. 2023-09-08 07:36:33 -07:00
evykassirer
f8db06569f recent: Rename recent_topics_ui. 2023-09-08 07:36:33 -07:00
Lalit Kumar Singh
9a6f7f0ead ts: Migrate attachments_ui.js to typescript. 2023-09-07 17:54:48 -07:00
evykassirer
78f0dca269 narrow: Save blue box position and restore on navigation.
This saves the blue box position as state on the location
in brower history, with `history.replaceState`.

The position is restored when a narrow is activated.

Fixes #20066.
2023-08-23 13:40:26 -07:00
Junyao Chen
983c6b74ab ts: Migrate user_group_create_members_data.js to TypeScript. 2023-08-17 11:38:13 -07:00
Junyao Chen
6757c5a9f8 stats: Install @types/plotly.js for type check.
This is a prep commit for typescript migration for `stats.js`,
which used a third party module `plotly.js` that doesn't come
with types.
2023-08-17 11:35:00 -07:00
Junyao Chen
446aea41b3 ts: Migrate settings_ui.js to TypeScript. 2023-08-15 17:17:40 -07:00
Lalit Kumar Singh
a0cb034731 ts: Migrate spectators.js to typescript. 2023-08-15 09:58:17 -07:00
Lalit Kumar Singh
9b01872e8c ts: Migrate hash_util.js module to TypeScript. 2023-08-15 09:58:17 -07:00
Lalit
829caae189 ts: Migrate realm_playground to typescript. 2023-07-24 12:49:53 -07:00
Prakhar Pratyush
32b201d5e0 user_topics: Rename 'muted_topics_ui' to 'user_topics_ui'.
This commit renames the file 'muted_topics_ui.js' to
'user_topics_ui.js', as we also support visibility policies
other than MUTED.
2023-07-17 17:39:17 -07:00
AcKindle3
1aeab40779 ts: Convert stream_settings_containers.js to TypeScript.
Added assertion to enforce `sub` is not `undefined` and thus type
safe for the rest.
Added type annotation to function parameter and return value.
2023-07-17 17:24:15 -07:00
Lalit
c0c4c2e1e7 ts: Migrate message_overlay_ui to TypeScript. 2023-07-17 16:24:16 -07:00
Lalit
b51bdd33bb ts: Migrate list_widget to TypeScript. 2023-07-17 11:31:51 -07:00
xoldyckk
a062a82f06 ts: Migrate setup.js to typescript.
Also added global type definition for `get_offset_to_window`
helper function.
2023-07-10 13:49:26 -07:00
Lalit
ae6063807b ts: Convert poll_data to typescript.
Used zod schemas to validate inbound data types and removed some over
defensive code.
2023-07-06 16:21:52 -07:00
Lalit
13187ff8f6 ts: Convert web/src/billing module to TypeScript.
Converted all files inside `web/src/billing` to TypeScript.
2023-06-23 11:42:29 -07:00
Lalit
5744ed32e2 tippyjs: Extract compose_tooltips.js module. 2023-06-08 16:20:59 -07:00
Tim Abbott
e7c012c850 tippyjs: Extract message_list_tooltips module. 2023-06-08 16:20:59 -07:00
evykassirer
aa270bcef0 search: Remove support for experimental search pills.
This in-progress feature was started in 2018 and hasn't
been worked on much since. It's already in a broken state,
which makes it hard to iterate on the existing search bar
since it's hard to know how those changes will affect search
pills.

We do still want to add search pills eventually, and when
we work on that, we can refer to this diff to readd the
changes back.
2023-06-06 18:36:02 -07:00
Tim Abbott
713a64d415 message_scroll: Extract module message_feed_top_notices. 2023-06-05 21:57:35 -07:00
Lalit
38dd1de5b2 ts: Convert compose_textarea.js to TypeScript.
Added type definitions for `jquery-caret-plugin` third party package and
converted `compose_textarea.js` to TypeScript.
2023-05-25 17:33:18 -07:00
Lalit
7346ce98f3 ts: Convert emojisets to TypeScript.
Declared types for '*.png' modules and '!style-loader?*' modules in
`assets.d.ts` and used them in `emojisets.ts`.
2023-05-22 09:02:42 -07:00
Lalit
a2db6df826 ts: Convert deprecated_feature_notice module to TypeScript. 2023-05-18 08:52:26 -07:00
Lalit
a3f46957bc ts: Convert confirm_dialog module to TypeScript. 2023-05-18 08:44:30 -07:00
Daniil Fadeev
f2e627ba51 drafts: Move code handling keyboard navigation to a separate module.
The keyboard navigation that used to only work in drafts can now be
reused. This commit has moved the related functions to a separate
module.
2023-05-15 14:46:21 -07:00
Lalit
cab3a992c0 refactor: Extract message_feed_loading module from message_scroll.
This new module allows us to remove dependency on `message_scroll` in `fetch_status`
and hence allowing us to migrate it to TypeScript.
2023-05-14 11:24:31 -07:00
Lalit
ebaabc6b68 ts: Migrate feedback_widget to TypeScript.
This commit migrates `feedback_widget` module to TypeScript.
2023-05-10 14:31:42 -07:00
Aman Agrawal
a196b949f7 dropdown_widget: Implement dropdown widget using tippy.
This will soon replace DropdownListWidget.
2023-05-09 14:11:26 -07:00
evykassirer
9ea6eca253 compose: Move cursor to end of topic input after stream selection.
Fixes #25321.
2023-05-02 12:49:31 -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
Lalit
c7b8f0658b ts: Migrate scroll_util.js to TypeScript.
This commit migrates `scroll_util.js` to typescript. I made a helper
type `JQueryOrZJQuery` for the argument of `get_scroll_element` instead
of adding a `__zjquery` property to the global JQuery object because it
isn't being used anywhere outside of this function and hence it makes
sense to have a little helper type than to add the property to the global
object.
2023-04-27 09:00:13 -07:00
AcKindle3
de420f68a4 ts migration: Convert dark_theme.js to dark_theme.ts.
Add `void` type annotation to the return type of functions. The
rest of the file is not modified.
2023-04-26 15:40:23 -07:00
Lalit
b9223088f3 refactor: Move simplebar helper functions from ui to scroll_util.
This commit eliminates the `ui.js` module from the codebase by moving
all simplebar helper functions to the `scroll_util` module.
2023-04-26 12:59:08 -07:00
Lalit
e132a68193 refactor: Create compose_textarea and extracted related handlers from ui.js.
Created the new `compose_textarea` and moved event handlers for `#compose_textarea`
from `ui` to this new module so that it is now responsible for initializing event handlers
for compose_textarea instead of `ui` module.
2023-04-26 12:59:08 -07:00
sbansal1999
aad2f7c7c5 compose: Remove empty message warning border after closing.
Adding this made the line coverage of
"web/tests/lib/zjquery_element.js" equal to 100%, hence it
was required to remove it from the exempt files list.
2023-04-26 10:58:08 -07:00
Prakhar Pratyush
a079bb811b user_topics: Rename 'settings_muted_topics.js'.
This commit renames 'settings_muted_topics.js'
to 'settings_user_topics.js' because the file now
supports the settings for topics with any visibility_policy,
not just MUTED.

It also renames the corresponding test file.
2023-04-25 12:46:05 -07:00
AcKindle3
70b8eb3423 TS migration: Convert localstorage.js to localstorage.ts.
Added function parameter types, return type, and types of local
varaibles. Added a `null` check for `raw_data` before `JSON.parse`.
Created a type `FormData` and an export type `LocalStorage` to
imporve conciseness and clearity.

Type `LocalStorage` is exported because it might be used in other
files based on an observation that many files have imported `localstorage`.
2023-04-24 11:59:02 -07:00
evykassirer
0c706aeafc compose: Extract a compose_recipient module.
This helps reduce the amount of import cycles we have in the compose
code path following the migration to a fancier stream input.

`compose_closed_ui.initialize()` was moved further down in the
initialization order because it relies on the dropdown widget
to be defined.
2023-04-20 16:09:55 -07:00
Zixuan James Li
268f858f39 linkifier: Support URL templates for linkifiers.
This swaps out url_format_string from all of our APIs and replaces it
with url_template. Note that the documentation changes in the following
commits  will be squashed with this commit.

We change the "url_format" key to "url_template" for the
realm_linkifiers events in event_schema, along with updating
LinkifierDict. "url_template" is the name chosen to normalize
mixed usages of "url_format_string" and "url_format" throughout
the backend.

The markdown processor is updated to stop handling the format string
interpolation and delegate the task template expansion to the uri_template
library instead.

This change affects many test cases. We mostly just replace "%(name)s"
with "{name}", "url_format_string" with "url_template" to make sure that
they still pass. There are some test cases dedicated for testing "%"
escaping, which aren't relevant anymore and are subject to removal.
But for now we keep most of them as-is, and make sure that "%" is always
escaped since we do not use it for variable substitution any more.

Since url_format_string is not populated anymore, a migration is created
to remove this field entirely, and make url_template non-nullable since
we will always populate it. Note that it is possible to have
url_template being null after migration 0422 and before 0424, but
in practice, url_template will not be None after backfilling and the
backend now is always setting url_template.

With the removal of url_format_string, RealmFilter model will now be cleaned
with URL template checks, and the old checks for escapes are removed.

We also modified RealmFilter.clean to skip the validation when the
url_template is invalid. This avoids raising mulitple ValidationError's
when calling full_clean on a linkifier. But we might eventually want to
have a more centric approach to data validation instead of having
the same validation in both the clean method and the validator.

Fixes #23124.

Signed-off-by: Zixuan James Li <p359101898@gmail.com>
2023-04-19 12:20:49 -07:00
Aman Agrawal
043d54d170 scheduled_messages: Add overlay to display and edit them.
Fixes #20971
2023-04-17 16:59:25 -07:00