Chocobo1
a9b54d94a0
Merge pull request #22282 from skomerko/webui-v51-fixes
...
WebUI v5.1 fixes
2025-02-21 20:44:42 +08:00
Chocobo1
955688c125
WebUI: replace rounding function from MooTools
...
The `round()` returning floating point number is not a good idea. This is due to floating point
representation is imprecise and sometimes it cannot faithfully represent a number, for example
`0.09 + 0.01 !== 0.1 `. Therefore, it should be avoided and/or utilize other function
to achieve the goal.
Also, improve `window.qBittorrent.Misc.toFixedPointString()` and add test cases.
PR #22281 .
2025-02-17 15:11:55 +08:00
skomerko
8c02bbb4bc
WebUI: Select next available search tab after closing last active tab with X button
2025-02-15 10:59:56 +01:00
skomerko
7e95375cec
WebUI: Fix unknown country flag path
2025-02-15 10:59:56 +01:00
skomerko
29201fa016
WebUI: Apply scrollbar style to context menu elements
2025-02-15 10:59:56 +01:00
skomerko
1a3d0f6fab
WebUI: Adjust context menu offsets in Search tab & Status filter list
2025-02-15 10:59:56 +01:00
skomerko
f58d6ae984
WebUI: Make context menu target selectors more precise
2025-02-15 10:59:56 +01:00
skomerko
7f0134108a
WebUI: Use classlist property to set cell class in trackers table
2025-02-15 10:59:53 +01:00
Chocobo1
38070c6eee
WebUI: use recommended function for checking NaN values
...
Also fix a few variable names along the way.
PR #22264 .
2025-02-12 15:11:54 +08:00
Chocobo1
b052ad0923
WebUI: inline redundant function
...
This also fix share ratio dialog which had been broken in recent cleanup.
PR #22252 .
2025-02-09 16:03:01 +08:00
Chocobo1
c65a68251e
WebUI: use native function when converting to numbers
...
PR #22246 .
2025-02-08 17:58:48 +08:00
skomerko
93925042dd
WebUI: Fix memory leak in context menus
...
This PR fixes a memory leak in context menus. Previously, for some reason, each menu retained references to its target elements without utilizing them further. Since the targets property was accessible/reachable from the root (window object), these references persisted even after the elements were removed from the DOM, preventing them from being garbage collected.
It's easily reproducible - just add a decent amount of torrents, switch between categories multiple times, then capture heap/detached elements snapshot in the Memory tab (Chrome dev tools). The number of detached elements will continue to increase after each category switch and they won't be cleaned up.
[More context](https://github.com/qbittorrent/qBittorrent/pull/22220/files#r1941137796 )
PR #22234 .
2025-02-08 17:51:21 +08:00
Maxime Thiebaut
4406a3f173
Add announce_port support
...
The `announce_port` setting permits to overwrite the port passed along to trackers as the `&port=` parameter. If left as the default, the listening port is used. This setting is only meant for very special cases where a seed's listening port differs from the effectively exposed port (e.g., through external NAT-PMP). See https://github.com/arvidn/libtorrent/pull/7771 for an example use-case.
This PR adds the relevant setting alongside the existing `announce_ip` setting.
PR #21692 .
2025-02-08 16:12:50 +08:00
skomerko
9c2e698514
WebUI: Replace getElements & getChildren
...
This PR further reduces Mootools usage.
PR #22220 .
2025-02-04 17:08:18 +08:00
skomerko
af65ddd012
WebUI: Allow to move state icon to name column in torrents table
...
PR #22118 .
2025-01-28 14:46:09 +08:00
Chocobo1
fe9dc131bc
WebUI: don't wrap regex literal in regex constructor
...
PR #22206 .
2025-01-28 00:33:04 +08:00
Chocobo1
dc8ac38494
WebUI: revise lint rules for css
...
Some rules are already covered by other tools, so remove them.
2025-01-24 23:58:13 +08:00
Chocobo1
f8c48349a1
WebUI: use native function for selecting elements
...
PR #22179 .
2025-01-20 23:36:11 +08:00
Chocobo1
1ee84033ec
WebUI: use template literals instead of string concatenation
...
PR #22177 .
2025-01-18 20:51:47 +08:00
Chocobo1
2cc7ec90a8
WebUI: add percentage sign for hsl components
...
This is a workaround to avoid confusing the stylelint checker (and probably some other checker
internally). They cannot accept the fact that the component can be `<number>` but instead
insist it should be `<percentage>`
Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/hsl#formal_syntax
Also, MDN recommended to use `hsl()` instead of `hsla()`.
From https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/hsl :
> Note: The hsla() functional notation is an alias for hsl(). They are
> exactly equivalent. It is recommended to use hsl().
PR #22154 .
2025-01-13 17:13:20 +08:00
Chocobo1
c622d50814
WebUI: use native API for accessing query string
...
PR #22141 .
2025-01-12 21:36:59 +08:00
Chocobo1
11991e62f5
WebUI: fix error when opening the same dialog twice
...
PR #22139 .
2025-01-12 21:18:41 +08:00
Thomas Piccirello
4fc36b9e99
Support fetching tracker list from URL
...
Trackers specified at the URL will be added to newly added public torrents.
This feature is adapted from qBittorrent-Enhanced-Edition to allow for automatically adding trackers retrieved from a URL. @ngosang's trackerlist repo is a good example, however I've opted not to include a default URL.
Partially addresses #14535 .
PR #21828 .
2025-01-08 14:51:09 +08:00
Chocobo1
d911928c59
WebUI: Remove unnecessary hashing
...
Now the containers support using string as key so the intermediate hashing/mapping to number
isn't needed now.
PR #22103 .
2025-01-06 18:53:18 +08:00
skomerko
6fe02895a8
WebUI: Remove redundant event listener
...
This PR removes broken event listener attached to RSS Rules table.
PR #22083 .
2024-12-31 21:43:39 +08:00
skomerko
395dbaa5c6
WebUI: Replace getElement with querySelector
...
All `getElement` instances (Mootools) were changed to `querySelector`.
PR #22082 .
2024-12-31 21:31:46 +08:00
Chocobo1
9c0475ebfa
WebUI: migrate to fetch API
...
This is the final part of it.
PR #22072 .
2024-12-29 15:44:28 +08:00
Chocobo1
7487cd7e6d
WebUI: disallow unnecessary quotes in property name
...
Those two forms are the same and from now on we enforce to one style.
PR #22051 .
2024-12-24 22:25:18 +08:00
skomerko
bbc3c2832f
WebUI: Use closest() to get parent element
...
All `getParent()` instances (Mootools) were changed to use `closest()` method:
https://developer.mozilla.org/en-US/docs/Web/API/Element/closest
PR #22048 .
2024-12-23 23:07:17 +08:00
Chocobo1
a841fe9320
WebUI: migrate to fetch API
...
And away from mootools.
PR #22037 .
2024-12-22 17:51:19 +08:00
Patrik Elfström
9709672b34
WebUI: Change filter inputs to type search
...
Changing input type from text to search for all search and filter inputs
to enable user to easily clear input.
This feature is yet to be implemented in Firefox.
See tracking bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1654288
Also fix search icon horizontal positioning and minor input box paddings.
Closes #15481 .
PR #22033 .
2024-12-22 17:19:03 +08:00
skomerko
14684c8c83
WebUI: Use vanilla JS to create elements
...
All elements are now created using createElement() method:
https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement
PR #21975 .
---------
Co-authored-by: Chocobo1 <Chocobo1@users.noreply.github.com >
2024-12-15 03:31:44 +08:00
skomerko
3fcc298539
WebUI: Add missing icon to 'Queue' context menu item
...
PR #21948 .
2024-12-08 16:27:14 +08:00
skomerko
7080f85b59
WebUI: Replace Mootools class list manipulation methods
...
All `addClass()`, `removeClass()` and `hasClass()` instances were changed to use `classList` equivalent:
https://developer.mozilla.org/en-US/docs/Web/API/Element/classList
PR #21946 .
---------
Co-authored-by: Chocobo1 <Chocobo1@users.noreply.github.com >
2024-12-08 16:12:57 +08:00
Chocobo1
2d1c4fc809
WebUI: use native event listeners for keyboard events
...
PR #21924 .
2024-12-02 13:41:19 +08:00
Chocobo1
e8d8de8f19
WebUI: fix window can not close regression
...
Fix up 1cd3c586c1 .
Fix up e1bd1038c0 .
PR #21919 .
2024-11-29 23:59:58 +08:00
Chocobo1
90aecfea02
WebUI improvements
...
WebUI improvements
2024-11-29 23:52:55 +08:00
skomerko
a85736fd27
WebUI: Set base background color
...
This PR ensures that the same base background color is used across different browsers (more consistent styling).
Context: https://github.com/qbittorrent/qBittorrent/pull/21498#issuecomment-2399929576
Used default Chrome colors: https://github.com/qbittorrent/qBittorrent/issues/21894#issuecomment-2494253459
PR #21914 .
2024-11-29 23:44:53 +08:00
skomerko
dafbcf8709
WebUI: Add colors to 'Status' column in Trackers table
...
PR #21820 .
2024-11-29 23:36:08 +08:00
Chocobo1
f8aaea3476
WebUI: locate element faster
2024-11-27 16:17:57 +08:00
Chocobo1
b84a51c76d
WebUI: revise Edit Category dialog button text
...
The generic "OK" is suitable for more scenarios.
2024-11-27 01:22:58 +08:00
Chocobo1
83b0dd3026
WebUI: fix checkbox initialization
...
Previously the checkbox had all options checked regardless of the stored
setting.
2024-11-27 01:12:13 +08:00
Chocobo1
ef5506321a
WebUI: fix invalid style
...
`initial` isn't applicable to `borderLeft`/`borderRight`.
2024-11-27 01:12:13 +08:00
Chocobo1
24d349ffba
WebUI: fix wrong event property
2024-11-27 01:12:13 +08:00
Chocobo1
2109e13746
WebUI: use proper event for handling text changes
2024-11-27 01:12:13 +08:00
Chocobo1
5eec0c0213
WebUI: use idiomatic string methods
2024-11-27 01:12:13 +08:00
Chocobo1
f34787e6ba
WebUI: use correct property for selecting child elements
...
`firstChild` will select the first `Node` which is often not intended (it should be
`Element` instead).
2024-11-27 01:12:12 +08:00
Chocobo1
72e033db79
WebUI: remove child elements directly
2024-11-26 00:43:58 +08:00
Chocobo1
e1bd1038c0
WebUI: simplify close window implementation
...
The caller site now take the responsibility to ensure the element is valid.
PR #21892 .
2024-11-26 00:40:05 +08:00
Chocobo1
b0fe6e6c59
WebUI: ensure cached info are initialized properly
...
PR #21893 .
2024-11-25 14:04:28 +08:00