Chocobo1
dffd27a879
WebUI: prefer range based for loop
...
Using `entries()` can also save the work of manually handling the index variable.
PR #23182 .
2025-08-31 21:54:48 +08:00
Chocobo1
b851caa6b9
WebUI: use local preference class locally
2025-08-31 21:45:48 +08:00
Chocobo1
6ac0c5a8b8
WebUI: prefer for loop over Array.forEach method
...
The `for` loop can do everything `forEach` can and doesn't need a closure.
2025-08-27 22:19:16 +08:00
Chocobo1
96f0eebc4e
WebUI: switch to lightweight clipboard library
...
The new library [1] will opt to the modern Clipboard API [2] when it is available. It will
fallback to the old method otherwise.
The new library is also smaller and without any bloat.
Note that the line `module.exports` is required to be removed/commented out. This is the only
patch required.
[1] https://github.com/feross/clipboard-copy
[2] https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API
PR #22792 .
2025-05-31 17:55:10 +08:00
skomerko
411ca0f668
WebUI: Use native function for selecting elements by ID
2025-04-23 19:55:04 +02:00
bolshoytoster
0160aa28b6
WebUI: Don't update UI if the page is hidden
...
Currently, there is unnecessary CPU/network usage by the web UI when it's running in the background, this PR prevents it from refreshing in the background.
Closes #22565 .
PR #22567 .
2025-04-21 17:23:09 +08:00
tehcneko
b4a16f6464
WebUI: Optimize table performance with virtual list
...
Adding virtual list support to dynamic tables to improve performance on large lists, I observed a 100x performance improvement on rendering on a torrent table with 5000 torrents.
This optimization is disabled by default and can be enabled in options.
PR #22502 .
2025-04-20 17:18:26 +08:00
skomerko
f58d6ae984
WebUI: Make context menu target selectors more precise
2025-02-15 10:59:56 +01:00
Chocobo1
c622d50814
WebUI: use native API for accessing query string
...
PR #22141 .
2025-01-12 21:36:59 +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
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
f8aaea3476
WebUI: locate element faster
2024-11-27 16:17:57 +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
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
skomerko
c9c85eeb95
WebUI: Use event delegation to handle common table events
...
Event delegation is now used to handle basic table events.
2 minor fixes were added to match GUI behavior:
* Clicking on the table body deselects everything
* Table rows are now scrolled into view when using up/down arrows
PR #21829 .
2024-11-19 02:12:26 +08:00
Chocobo1
f73f31619d
WebUI: use native function to convert to numbers
...
Also replace `parseInt()` since `Number()` behavior is more intuitive.
PR #21831 .
2024-11-16 15:41:20 +08:00
Patrik Elfström
c9a55fce95
WebUI: Fix wrong log levels
...
Fixes bug where the first time visiting Execution Log view all log levels are deselected but log items with all levels are still displayed.
This requires you to select a log level and then deselect it to hide that log level.
PR #21812 .
2024-11-16 15:22:26 +08:00
Thomas Piccirello
dc30b9c2ec
WebUI: Improve table overflow handling
...
This PR relies on flexbox to ensure all WebUI tables are the correct height without overflowing. Table headers are now always visible and JS-based dynamic resizing is no longer needed.
PR #21652 .
2024-11-03 15:11:30 +08:00
Chocobo1
72cbc83569
WebUI: prefer arrow functions whenever applicable
...
Compared to plain function, arrow function is simpler to understand (without bindings to `this`, `arguments`, `super`) and to read.
Now, plain function will only be used when this object is required.
PR #21691 .
2024-11-01 04:17:41 +08:00
skomerko
0704049026
WebUI: Apply box-sizing reset
...
Box-sizing: border-box is now applied globally. A lot of tiny changes were made but they were necessary to correct resulting inconsistencies. Everything should be pretty much as it was with just some minor exceptions.
Looks like this PR also indirectly fixed #21414 .
PR #21464 .
2024-10-12 14:22:07 +08:00
Chocobo1
dc02a0fc56
WebUI: remove unused variables
...
PR #21432 .
2024-10-04 22:23:04 +08:00
skomerko
0e03e4f8a7
WebUI: Add colors to log table rows
2024-09-28 13:33:14 +02:00
skomerko
8b2d8f3afd
WebUI: Use Map instead of Mootools Hash in all dynamic tables
...
PR #21358 .
2024-09-28 15:46:16 +08:00
skomerko
e069fbc37f
WebUI: Add missing icons
...
This adds missing icons to WebUI (in tabs, buttons, etc.).
PR #21162 .
2024-08-17 13:38:44 +08:00
Chocobo1
9df3ee0de8
WebUI: use native property to set styles
2024-08-10 14:26:10 +08:00
skomerko
b67495464d
WebUI: Add ability to toggle alternating row colors in tables
2024-07-28 11:34:52 +02:00
Chocobo1
b75c42f850
WebUI: associate label to input fields
2024-07-19 17:47:34 +08:00
Chocobo1
c3b7dfa918
WebUI: omit closing on HTML void elements
...
https://developer.mozilla.org/en-US/docs/Glossary/Void_element#self-closing_tags :
>Self-closing tags (<tag />) do not exist in HTML.
2024-07-15 17:46:33 +08:00
Chocobo1
9feefc8144
WebUI: avoid redundant re-initialization
...
PR #21012 .
2024-07-12 15:00:36 +08:00
Chocobo1
9c26e5d4d6
WebUI: access attribute/property natively
...
It is now clearer to see what property is being accessed.
Previously mootools library would re-map attribute/property to another.
PR #21007 .
2024-07-12 14:06:59 +08:00
Chocobo1
bf4e0df386
WebUI: unify curly bracket usage
2024-06-07 02:51:35 +08:00
Chocobo1
64dfb7e122
WebUI: iterate over own properties only
2024-05-27 23:00:03 +08:00
Chocobo1
24a1537cdd
WebUI: prefer arrow function in callbacks
2024-05-27 22:57:28 +08:00
Chocobo1
55bff4f07a
WebUI: enforce usage of const whenever possible
2024-05-27 22:56:51 +08:00
Chocobo1
cb90b6769c
WebUI: enforce string quotes coding style
2024-05-27 22:50:17 +08:00
Chocobo1
15697f904d
Add a small delay before processing the key input of search boxes
...
PR #20465 .
Closes #20025 .
Closes #20235 .
2024-02-27 12:57:55 +08:00
Chocobo1
8ef99b336c
Remove 'no cache' directive for POST requests
...
The response for POST request is only cachable under a specific condition and
qbt doesn't use it.
https://developer.mozilla.org/en-US/docs/Glossary/Cacheable
2024-02-11 23:28:44 +08:00
d47081
9d90141c29
Add dark theme for WebUI
...
Closes #19844 .
PR #19901 .
---------
Co-authored-by: d47081 <localhost>
Co-authored-by: Chocobo1 <Chocobo1@users.noreply.github.com >
2023-12-12 12:23:40 +08:00
brvphoenix
9fde5634f1
Fix JS memory leak
...
The memory leak can be reproduced easily by opening two web pages of qbittorrent so that the WebUI pages are updated with full_update = true. If you have a large number of torrents, such as 100 torrents, you can observe a rapid increase in memory usage.
This is caused by the incorrect usage of dispose and empty methods in the js codes and none of them garbage collect the elements. If event listeners are added to the DOM elements, those DOM elements will not be garbage collected at all event if they are not referenced or out of the scope, which will cause memory leaks. If some elements are expected to be removed, the correct way is to use destroy method instead.
https://github.com/mootools/mootools-core/blob/master/Docs/Element/Element.md#element-method-dispose-elementdispose
https://github.com/mootools/mootools-core/blob/master/Docs/Element/Element.md#element-method-empty-elementempty
https://github.com/mootools/mootools-core/blob/master/Docs/Element/Element.md#element-method-destroy-elementdestroy
Closes #19034 .
PR #19969 .
2023-11-25 13:50:45 +08:00
Jimmy Axenhus
c4ed40b82f
Set property instead of set attribute
...
This commit resolves an issue with Safari not properly selecting an `<option>`.
Closes #17866 .
PR #19024 .
2023-08-03 13:34:24 +08:00
Chocobo1
6680fdda18
Fix typos
2023-06-26 16:45:44 +08:00
Chocobo1
eb875ac8c1
Add attributes explicitly
2023-03-28 22:20:37 +08:00
brvphoenix
0d376e7fd6
WebUI: Add log viewer
...
The javascript implementation of multi-select menu is from the source
https://github.com/PhilippeMarcMeyer/vanillaSelectBox . It is licensed
under the MIT License. Some minor fixes is made to pass the lint.
Co-authored-by: brvphoenix <30111323+brvphoenix@users.noreply.github.com >
Co-authored-by: ttyS3 <ttys3.rust@gmail.com >
PR #18290 .
2023-01-16 14:55:44 +03:00