Commit graph

158 commits

Author SHA1 Message Date
skomerko
81509dfb65
WebUI: Improve filter lists
This PR adds following improvements: 
* Remove unused tracker entries while processing sync data
* Take into account filter selection & terms when performing 'Start/stop/delete' context actions in filter lists
  Now, only filtered torrents will be affected by them, just like in the GUI.
* Provide better feedback when performing 'Start/stop/delete' context actions in filter lists
  Small improvement over GUI - now these actions will be disabled if it's not possible to use them.
* Add context menu to status filter list
* Fix error when toggling filter title
  Fixup for small bug introduced in https://github.com/qbittorrent/qBittorrent/pull/21269

PR #21438.
2024-10-12 13:40:18 +08:00
skomerko
d8e24314ec
WebUI: Improve lookup performance when filtering by tracker
Torrent hashes in tracker list are now kept in sets instead of arrays.
PR #21405.
2024-09-30 18:13:45 +08: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
183c7c75b1
WebUI: Display DHT information in the Status bar only when DHT is enabled
GUI completely hides DHT information when DHT is disabled - now WebUI does the same thing.

Closes #18417.
PR #21339.
2024-09-22 14:06:25 +08:00
Thomas Piccirello
d2b2afad23
Support removing tracker from all torrents in WebUI/WebAPI
Closes #20661.
PR #21056.
2024-09-16 17:47:10 +08:00
skomerko
6df1f68ead
WebUI: Use Map instead of Mootools Hash in Torrents table
PR #21308.
2024-09-16 17:34:49 +08:00
skomerko
1b53fdf9ee
WebUI: Improve subcategories
Now they should fully match GUI behavior, please let me know if I missed something.
Still plenty of room to improve them further (e.g styling/CSS) but for now I wanted to keep the changes to the minimum.

Also included small tweaks to category context menu actions.

PR #21269.
2024-09-08 15:21:11 +08:00
skomerko
9d0fa213be
WebUI: Allow to display only hostname in the Tracker column
It is now possible to display only hostname in the Tracker column.
Closes #11357.
PR #21243.
2024-09-01 16:34:49 +08:00
skomerko
5b7c9d5725
WebUI: Filter list improvements
A couple of tweaks to make them a little bit better:
1. Make highlighting functions more consistent (this also fixes minuscule bug when no filter item in tracker list is highlighted due to a type mismatch)
2. Use [event delegation](https://javascript.info/event-delegation) to handle filter toggling & item selection
3. Other minor improvements (everything should work like it was previously)

PR #21191.
2024-08-25 14:23:35 +08:00
skomerko
39dd415d43
WebUI: Improve torrent deletion dialog
This PR improves torrent deletion dialog.

1. Now shows different message depending on the number of selected torrents
2. Visually pretty much inline with the GUI
3. Adjusts to content on load
4. Now uses XHR load method. Panels / windows loaded using this method become part of the current document so there is no need to import styles or scripts (they should load marginally faster now).

PR #21185.

---------

Co-authored-by: Chocobo1 <Chocobo1@users.noreply.github.com>
2024-08-25 14:11:36 +08:00
skomerko
fda797cb76
WebUI: Improve properties panel
It is now possible to expand & collapse it by clicking directly on tabs, just like in GUI.
In addition, collapse state is saved and applied on page load.
Fixed one minor bug and now files search input is properly hidden even when panel is collapsed.

PR #21209.
2024-08-24 14:09:10 +08:00
Chocobo1
29379232aa
WebUI: implement debounce behavior for resize events 2024-08-17 14:02:15 +08:00
Chocobo1
1179fc3de3
WebUI: prevent passing wrong parameter
The `event` object will be passed as the first parameter to the event handler. So wrap the
event handler with a closure to prevent `event` leaking to other functions.
2024-08-17 14:02:13 +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
skomerko
f5aa0bb126
WebUI: Always create generic filter items
PR #21188.
2024-08-15 20:36:38 +03:00
Chocobo1
d9667b5221
Merge pull request #21179 from Chocobo1/webui_style
WebUI: use native property to set styles
2024-08-12 15:08:26 +08:00
skomerko
04eb40376e
WebUI: Allow to filter torrent list by save path
This PR adds ability to filter torrent list by save path. Everything should work exactly like in GUI.

Closes #19393.
PR #21175.
2024-08-11 16:08:13 +08:00
Chocobo1
9df3ee0de8
WebUI: use native property to set styles 2024-08-10 14:26:10 +08:00
Chocobo1
5afeecbf18
WebUI: migrate away from inline HTML code
`innerHTML` &  `outerHTML` setter will more or less evaluate the value which could be used to
inject malicious code. So replace them with safer alternatives.

PR #21163.
2024-08-10 12:55:48 +08:00
skomerko
4570c0ef9e
WebUI: Clear trackerList on full update
Like other similar data structures, trackerList also need to be cleared in the event of a full sync update.

PR #21148.
2024-08-10 12:49:00 +08:00
skomerko
62c5f41f39
WebUI: Implement 'Auto hide zero status filters'
PR #21145.
2024-08-09 14:38:53 +08:00
Chocobo1
2d9e3b3330
WebUI: use native functions for event handling
PR #21147.
2024-08-07 22:00:54 +08:00
Chocobo1
49507ad670
Merge pull request #21123 from skomerko/webui-use-alternating-row-colors
WebUI: Add ability to toggle alternating row colors in tables
2024-08-04 17:16:01 +08:00
skomerko
b67495464d WebUI: Add ability to toggle alternating row colors in tables 2024-07-28 11:34:52 +02:00
Chocobo1
bf7e1516d5
WebUI: clear timer variable properly
In JS the timer handle pool is reused and therefore require careful handling of it.
2024-07-26 05:08:40 +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
Thomas Piccirello
c5fa05299b
WebUI: Fix preference name conflict
PR #20990.
2024-06-28 16:46:21 +08:00
Chocobo1
648dd9988d
WebUI: unify comment format 2024-06-11 02:17:10 +08:00
Chocobo1
bf4e0df386
WebUI: unify curly bracket usage 2024-06-07 02:51:35 +08:00
Chocobo1
1ba69be869
WebUI: add missing break 2024-05-27 23:02:19 +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
Thomas Piccirello
6d073771ca
WebUI: Restore previously used tab on load
This PR restores the users previously used tab (Transfer, Search, RSS, etc.) when the WebUI is reloaded.

PR #20705.
2024-05-27 20:51:02 +08:00
Chocobo1
6231208ddf
WebUI: add linting for regular expressions
And applies to following suggestions:
* Use case-insensitive flag `i`
* Use `\w` for matching characters
* Sort the regex flags
2024-05-04 15:01:03 +08:00
Chocobo1
1c7ecb7371
WebUI: migrate away from MooTools deprecated functions
https://mootools.net/core/docs/1.6.0/Core/Core#Deprecated-Functions
2024-04-21 16:55:30 +08:00
Chocobo1
4945ed576a
WebUI: enforce strict comparison operators 2024-04-21 16:44:15 +08:00
Chocobo1
d7cded54e4
WebUI: enforce parentheses around operators
PR #20696.
2024-04-15 12:50:07 +08:00
Thomas Piccirello
e697d40382
WebUI: Improve table scrolling and selection on mobile
This PR improves touch interaction with table rows that have a context menu. Previously, those rows couldn't be selected or scrolled on mobile. Additionally, this PR modifies the context menu to appear when the user removes their finger/touch, rather than the current behavior of appearing mid-touch. This allows us to only display the context menu if the user's finger remains on the same element, which should significantly reduce erroneous context menu triggering.

Closes #19819.
Closes #19820,
Closes #19823.
PR #20639.
2024-04-09 14:33:10 +08:00
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