Commit Graph

407 Commits

Author SHA1 Message Date
Hanabishi
631e873ff2 WebUI: fix preferences class name
Fixup for #21780. Account for changed preferences class name in the color scheme logic.

PR #21809.
2024-11-11 18:53:06 +08:00
skomerko
3ec645674a WebUI: Use modern class syntax to create LocalPreferences class
LocalPreferences class is now created using modern class syntax (minimal changes to remove Mootools bits). In addition, I removed redundant suffix from class name.

PR #21780.
2024-11-09 16:40:25 +08:00
skomerko
71f83cf9ba WebUI: Display torrent progress percentage in General tab
This PR adds torrent progress percentage next to pieces bar in General tab, as in the GUI.

PR #21756.
2024-11-09 16:03:20 +08:00
Hanabishi
06fe3e5fb0 WebUI: fix color scheme for iframes
Applies the color scheme for iframe dialogs.

Fixup for #21613.
PR #21750.
2024-11-09 16:02:28 +08:00
Thomas Piccirello
f89c4c32ed Display External IP Address in status bar
This change displays the last detected IPv4 and/or IPv6 address(es) in the GUI and WebUI's status bar. This does not yet handle systems with multiple addresses of the same type (e.g. multiple IPv6 addresses).

PR #21383.

---------

Co-authored-by: Odin Vex <44311901+OdinVex@users.noreply.github.com>
2024-11-09 15:58:13 +08:00
Patrik Elfström
c02f80cec5 WebUI: Hide context menu when clicking on a table row
This fixes a bug where the torrents table header menu
could not be closed by clicking on a table row.
This also fixes the same bug for other context menus.

PR #21731.
2024-11-04 19:09:51 +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
sledgehammer999
3aefc16c57 Webui: Add color scheme switcher
Closes #21600
2024-11-02 13:11:05 +02:00
Thomas Piccirello
8991d994c2 WebUI: Eliminate unnecessary torrents table updates
Only update the torrents table when torrents are added, edited, or removed.

PR #21656.
2024-11-01 04:34:17 +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
Thomas Piccirello
be3eefd8de WebUI: Fix displaying RSS panel on load
The required JS may not yet be loaded, resulting in an error when calling `window.qBittorrent.Rss.init()`.

Signed-off-by: Thomas Piccirello <thomas@piccirello.com>

PR #21689.
2024-10-28 14:06:52 +08:00
Thomas Piccirello
e0e61ffd02 WebUI: Support auto resizing table columns
Auto resize can be triggered by:
1. Double clicking the column's resize handle (its rightmost edge)
2. The table header's context menu

Closes #21627.
PR #21655.
2024-10-28 13:59:13 +08:00
Thomas Piccirello
c3c91be578 WebUI: Clear properties panel when torrent no longer selected
PR #21654.
2024-10-28 13:53:24 +08:00
skomerko
67b6cf5a6f WebUI: Don't sort rows with static trackers in Trackers table
Static trackers come before anything else so in this PR I made sure they are not moved when sorting Trackers table columns.

PR #21609.
2024-10-27 14:54:33 +08:00
Thomas Piccirello
e8dc6b3f73 WebUI: Show file filter when Content tab selected on load
This fixes a bug where the file filter is only shown when the Content tab is switched to. The filter is not being shown if the Content tab is already selected on page load (due to being previously selected).

PR #21657.
2024-10-26 03:28:01 +08:00
Hanabishi
dfe9daf25d WebUI: restore arrow keys table navigation
Fixup for #21007 and #21147. Table navigation with arrows (#15186) has been broken by that changes.
See https://github.com/qbittorrent/qBittorrent/pull/21007#discussion_r1807326166 and https://github.com/qbittorrent/qBittorrent/pull/21147#discussion_r1807361385 for details.
This PR restores the functionally.

PR #21640.
2024-10-26 03:14:36 +08:00
skomerko
5a0914e333 WebUI: Use modern class syntax in context menu classes
Context menu classes are now created using vanilla JS syntax (minimal changes to reduce MooTools bits).

PR #21598.
2024-10-19 16:32:20 +08:00
skomerko
7031c52d16 WebUI: Improve sort order in Status column
This commit adds custom compare function to Status column (same sort order as in the GUI).

Closes #15499.
PR #21570.
2024-10-19 16:25:30 +08:00
skomerko
cbcb46bcfb WebUI: Setup copy events only once
It is enough to set them up just once during initial load. Number of elements with copyToClipboard class is fixed - they are context menu items.

PR #21558.
2024-10-12 14:29:54 +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
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
Thomas Piccirello
b1fd61af3a WebUI: Handle folders when updating RSS feed url
Follow up to #21371 ([context](https://github.com/qbittorrent/qBittorrent/pull/21371#discussion_r1780908605)).

PR #21437.
2024-10-12 13:30:24 +08:00
skomerko
87644441ad WebUI: Add context menu to search tabs
PR #21516.
2024-10-07 22:04:29 +08:00
skomerko
4ff0687b94 WebUI: Add confirm dialog for Auto TMM
Just like in GUI, confirmation dialog shows up if it's possible to enable Auto TMM for any selected torrent. Right now it's not possible to properly test all cases in the WebUI because context menu completely hides TMM option when some torrents have it enabled and some not (no tri-state) - but that's something to add in another PR.

PR #21378.
2024-10-04 22:39:08 +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
449ca96e28 WebUI: Add 'Engine' column to Search table
This PR adds 'Engine' column to Search table.
I also fixed inconsistent naming and renamed 'Search engine' column to 'Engine URL'.

PR #21397.
2024-09-30 18:05:17 +08:00
Chocobo1
cebaedf485 WebUI: CSS/styling improvements
WebUI: CSS/styling improvements
2024-09-30 17:57:42 +08:00
Thomas Piccirello
6bbb7b71cd Add WebAPI/WebUI for managing cookies
Closes #21125.
PR #21340.
2024-09-30 17:13:25 +08:00
skomerko
5e3161a3f9 WebUI: Improve statistics window 2024-09-28 17:49:52 +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
Thomas Piccirello
81def39d8c WebUI: Support managing web seeds
Closes #8475.
PR #21055.
2024-09-28 15:37:36 +08:00
Thomas Piccirello
8a6207d3fc WebUI: Fix removing tracker URL with '|' character
Closes #19074.
PR #21346.
2024-09-22 14:22:52 +08:00
skomerko
c3224459db WebUI: Add 'Confirm torrent recheck' option
This PR adds setting & confirmation dialog for torrent recheck.

Closes #19557.
PR #21348.
2024-09-22 14:12:44 +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
d19f7b12d9 WebUI: Improve hash copy actions in context menu
This PR provides better feedback for hash context menu actions and now it is clearly shown if there is anything to copy.

PR #21321.
2024-09-16 17:41:14 +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
0ea35c54a3 WebUI: Improve torrent deletion
* Added 'Confirm when deleting torrents' option to the WebUI
* Confirm deletion dialog now uses MUI.Modal

PR #21289.
Closes #18345.
2024-09-13 22:28:02 +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
Chocobo1
0e63b83aed WebUI: do not follow anchor URL
Fix up 5afeecbf18.
PR #21283.
2024-09-06 15:31:26 +08:00
skomerko
f681e954c7 WebUI: Show country/region name next to its flag when 'Resolve peer countries' is enabled
PR #21278.
2024-09-06 15:23: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
98623b2cf7 WebUI: use passive event handlers
These kind of event handlers can be asynchronously dispatched, freeing up the main thread for
lag-free operation.
2024-08-17 14:03:51 +08:00
Chocobo1
29379232aa WebUI: implement debounce behavior for resize events 2024-08-17 14:02:15 +08:00
Chocobo1
0c580c3174 WebUI: remove redundant events
The base class already handle them.
Also optimize the base implementation a bit.
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