Thomas (Tom) Piccirello
4fa433a728
WebUI/WebAPI: Support downloading torrent via search plugin
...
This adds support for downloading a torrent via a search plugin's `download_torrent` function. This primarily affects torrents that use a private tracker requiring a login.
Closes #18334 .
PR #23163 .
2025-09-05 20:24:15 +08:00
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
2bd0965906
WebUI: remove redundant braces in switch statements
...
Braces are only required when there are variable/function declarations.
2025-08-27 22:19:16 +08:00
Chocobo1
acab056fe4
WebUI: disallow number literals with zero fractions or dangling dots
...
Javascript treats them all the same as `Number`.
2025-08-27 22:19:16 +08:00
Thomas Piccirello
02892d1250
WebUI: Add new Add Torrent experience
...
This PR uses the new APIs from #21015 to provide a WebUI Add Torrent experience more closely matching the GUI's.
New functionality:
- View torrent size, date, infohash, files, etc.
- Reprioritize and ignore files before adding
- Specify tags when adding torrent
- Specify save path for incomplete torrent
Closes #20557 , closes #10997 , closes #12499 , closes #14201 , closes #15071 , closes #15718 , closes #16207 .
PR #21645 .
2025-08-09 18:34:38 +08:00
Thomas Piccirello
c962a6b1d7
WebUI: Apply cache id to all loaded resources
...
This includes html files and js/css assets loaded via MooTools.
PR #22945 .
Closes #18712 .
2025-07-20 16:32:18 +08:00
Thomas Piccirello
5dfb51a8d2
WebUI: Add ability to refresh search
...
WebUI equivalent of #22122 . Refreshing maintains all existing filters.
PR #22805 .
2025-06-06 17:32:47 +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
bolshoytoster
a3d1ff0eb2
WebUI: Fix memory leak
...
See #22734 , there is a memory leak in the MooTools .destroy(), this replaces all uses of that with the browser native .remove().
This also overrides the MooTools Document.id function, which is used by $(id). The original function always allocates an ID to elements it selects, the override doesn't, and is also a little more efficient.
Closes #22734 .
PR #22754 .
---------
Co-authored-by: Chocobo1 <Chocobo1@users.noreply.github.com >
2025-05-25 15:41:52 +08:00
Chocobo1
eb82c9078d
WebUI: always provide event variable
...
This is unifying coding style and avoid wrong usages.
PR #22676 .
2025-05-13 00:11:00 +08:00
Chocobo1
ad4bdc0653
Merge pull request #22615 from Chocobo1/webui_eslint
...
* WebUI: disallow unnecessary semicolons
* WebUI: ensure consistent shorthand syntax
* WebUI: disallow async functions which have no await expression
* WebUI: remove unused variable
2025-04-28 20:20:57 +08:00
Chocobo1
70dbe9468a
WebUI: disallow unnecessary semicolons
2025-04-27 16:19:50 +08:00
skomerko
411ca0f668
WebUI: Use native function for selecting elements by ID
2025-04-23 19:55:04 +02: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
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
9c2e698514
WebUI: Replace getElements & getChildren
...
This PR further reduces Mootools usage.
PR #22220 .
2025-02-04 17:08:18 +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
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
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
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
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
skomerko
87644441ad
WebUI: Add context menu to search tabs
...
PR #21516 .
2024-10-07 22:04:29 +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
skomerko
8b2d8f3afd
WebUI: Use Map instead of Mootools Hash in all dynamic tables
...
PR #21358 .
2024-09-28 15:46:16 +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
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
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
9d87a813b2
Use enabled search plugins by default in WebUI
...
PR #20969 .
Closes #20558 .
2024-06-24 20:45:14 +03:00
Chocobo1
bf4e0df386
WebUI: unify curly bracket usage
2024-06-07 02:51:35 +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