Thomas Piccirello
4967f977c5
WebUI: Improve accuracy of trackers list
...
This PR fixes various accounting issues with the trackers list. Removing a torrent would not update the trackers list, nor would removing a tracker from a torrent. And removing a tracker with a shared host but unique url (e.g. example.com/1 and example.com/2) would erroneously remove the tracker's host from the list.
Closes #20053 .
Closes #20054 .
PR #20601 .
2024-03-29 15:43:49 +08:00
Thomas Piccirello
489bacd766
WebUI: Conditionally show filters sidebar
...
This fixes a bug where the filters sidebar would always be displayed when switching back to the Transfers tab.
Closes #19257 .
PR #20600 .
2024-03-26 12:41:47 +08:00
thalieht
5d1c249606
Use Start/Stop instead of Resume/Pause
...
PR #20532 .
---------
Co-authored-by: Vladimir Golovnev (Glassez) <glassez@yandex.ru>
2024-03-25 19:11:04 +03:00
HamletDuFromage
5c67c5a77d
Add regex toggle for WebUI torrent filtering
...
PR #20566 .
2024-03-24 13:44:57 +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
46e8ee50c8
Allow to set custom suffix to window title
...
This is to allow users to differentiate qbt instances when there are multiple running.
PR #20429 .
Closes #17905 .
2024-02-27 12:41:12 +08:00
Chocobo1
63c9b6388e
Rename to WebUI
...
PR #20428 .
2024-02-18 13:58:44 +08:00
Chocobo1
e31b553807
Stop sync requests after qbt has been shutdown
2024-02-14 03:38:09 +08:00
Chocobo1
16a91f26fb
Simplify code
2024-02-14 03:38:09 +08:00
Chocobo1
963a7faab8
Migrate to Cache for commonly used data
...
Previously it was abusing the `localStorage` and now it is storing data in memory (per session).
2024-02-14 03:38:09 +08:00
Chocobo1
d06d5b923a
Cache program preferences
...
So that qbt can just use the data from memory which is vastly faster than waiting for a response
over the net.
2024-02-14 03:38:09 +08:00
Chocobo1
f7e9ff0fb0
Clean up functions in global scope
2024-02-11 23:28:44 +08:00
Chocobo1
9b64d50660
Conditionally hide settings in Advanced Options
2024-02-11 23:28:44 +08:00
Chocobo1
9bfb447dd3
Improve WebUI responsiveness
...
This migrates Category and Tag to `Map` type from `Object` type. And done some algorithm and data structure optimization.
PR #20297 .
2024-01-27 22:04:39 +08:00
Chocobo1
00372dd559
Use natural sorting in WebUI
...
Also change case sensitivity to the default of 'sort' mode.
PR #20264 .
2024-01-15 13:12:36 +08:00
Chocobo1
6918316a3d
Switch to new method for checking own properties
...
The new method is an intended replacement for previous one as suggested by MDN:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwn
2024-01-15 13:12:12 +08:00
Chocobo1
2edb1a0765
Improve WebUI responsiveness
...
Related: #20249 .
2024-01-15 13:12:12 +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
Chocobo1
b67da4bebe
Use natural sort for categories
...
PR #19920 .
2023-11-12 17:11:39 +08:00
thalieht
30d9978c97
Add copy comment functionality to the torrent list's context menu
...
PR #19846 .
Closes #18890 .
2023-11-07 12:42:31 +03:00
xavier2k6
f067ab1692
WebUI: Add "Moving" filter to side panel
...
PR #19870 .
2023-11-06 16:23:59 +03:00
Bartu Özen
5db2c2c2be
WebUI: Fix incorrect subcategory sorting
...
PR #19833 .
Closes #19756 .
2023-11-02 11:35:42 +03:00
tearfur
2e87e6e0df
Use hostname instead of domain name in tracker filter list
...
Co-authored-by: Chocobo1 <Chocobo1@users.noreply.github.com>
PR #19062 .
Closes #19035 .
2023-06-05 14:57:37 +03:00
Chocobo1
83e6afcb71
Merge pull request #19069 from Chocobo1/sort
...
WebUI: use natural sort on tracker list
2023-06-04 12:52:29 +08:00
Raymond Ha
3ef8726083
WebUI: Set Connection status and Speed limits tooltips
...
PR #19052 .
Fixes #18958 .
2023-06-03 17:39:58 +03:00
Chocobo1
dad9157d84
Don't overwrite original variable
2023-06-02 18:12:01 +08:00
Chocobo1
5cea69472f
Use natural sort
2023-06-02 17:44:17 +08:00
ttys3
b1492bcd7d
WebUI: Show only hosts in tracker filter list
...
PR #18190 .
2023-06-02 17:36:33 +08:00
Bartu Özen
b55d4b1733
WebUI: Implement subcategories
...
PR #18740 .
2023-04-02 11:02:22 +03:00
Chocobo1
6a4bb5c1b7
Migrate away from unsafe function
...
MooTools More has CVE-2021-20088 and qbt is affected by it by using the
unsafe function call `String.parseQueryString()`, so migrate away from
it.
PR #18554 .
2023-02-15 13:59:21 +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
Fidel Selva
61dbb211c0
WebUI: Improve hotkeys
...
PR #18326 .
Fixes #18325 .
Fixes #14033 .
2023-01-06 22:17:15 +03:00
Chocobo1
3b9d68f344
WebUI: handle drag and drop events
...
This allows user to drag and drop .torrent files and URL links onto the
main window and will open the respective dialog.
Dropping folders are not supported due to technical reasons.
Closes #6038 .
2022-10-14 14:30:26 +08:00
Chocobo1
ca274635d5
Make WebUI images self-contained
2022-08-27 13:55:04 +08:00
Nowshed H. Imran
199d770e15
Implement new icon/color theme
...
Co-authored-by: xavier2k6 <42386382+xavier2k6@users.noreply.github.com>
2022-06-09 18:18:14 +06:00
Chocobo1
dbfd6a2368
WebUI: enforce coding style
...
Actually, not all of them but some that can be enforced by eslint.
The changes are made by eslint with minor manual tweaking.
PR #17046 .
2022-05-18 11:37:05 +08:00
An0n
11cfe38d1c
Fix WebUI crash due to missing tags from config
...
Tags can be missing from config but set inside .fastresume. May happen due to corrupted/deleted config.
Closes #11906 .
PR #16711 .
2022-03-26 11:56:18 +08:00
AbeniMatteo
baa8d2c326
Add option to toggle filters sidebar
...
PR #15409 .
2022-03-21 12:41:06 +08:00
Kevin Cox
37e6a9ebc2
Fix UI crash when torrent is in non-existent category.
...
This checks that `category_list[categoryHash].torrents` is truthy before dereferencing it. In some cases the API response will have a torrent in a category that doesn't exist resulting in the check to return `undefined` which is not `null`. This broadens the check so that it will create the category even if null.
PR #16432 .
2022-02-17 12:20:54 +08:00
Chocobo1
7c8eadfddf
Revert "WebUI: group trackers by hostname"
...
This functionality wasn't ever correctly implemented and couldn't be
done without considerable effort, so revert it for now.
This reverts commit 4ac25a50ed
.
PR #15542 .
2021-10-10 11:00:21 +08:00
Chocobo1
97a8d865dc
WebUI: revise hash function
...
In benchmark, using `Math.imul()` is about ~20% faster than floating
point multiplication.
PR #15475 .
2021-09-27 13:54:28 +08:00
Chocobo1
08f33d7e9e
Fix WebUI crash when tracker URL is invalid
...
Closes #15391 .
PR #15395 .
2021-08-31 11:53:42 +08:00
Mengyang Li
4ac25a50ed
WebUI: group trackers by hostname ( #15264 )
...
Closes #13608 .
2021-08-07 12:25:07 +08:00
AbeniMatteo
e5943b64c1
Add filter "Checking" to side panel ( #15166 )
2021-07-16 14:08:10 +03:00
Vladimir Golovnev
37f227ae74
Provide v1 and v2 infohashes in UI ( #15097 )
2021-06-25 20:44:23 +03:00
brvphoenix
bb9ca7f418
WebUI: Fix magnet url from the browser
2021-04-03 19:26:17 +08:00
Chocobo1
121ff2b7be
Apply code formatting
2021-03-26 00:27:52 +08:00
Chocobo1
5fe0e9395f
Don't use Object.prototypes builtins directly
...
See: https://eslint.org/docs/rules/no-prototype-builtins
2021-03-26 00:27:52 +08:00
Chocobo1
d46343fb9c
Add ability to use 'shift+delete' to delete torrents in WebUI
...
Closes #13827 .
2020-11-26 15:52:47 +08:00