transmission/web
Bheesham Persaud 614244bfae
fix(web): pressing the enter key now submits dialogs (#7036)
Dialogs by themselves aren't submitted when pressing the Enter key,
for that we need to add an event handler to the dialog itself.

One approach I tried was to add a form to the dialog. This worked, but
needed a CSS workaround to keep the buttons in the same order.

Tested with some other dialogs as well:

* edit labels; and
* set location.

References:

* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog#handling_the_return_value_from_the_dialog
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#formmethod
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#method

Fixes #6553
2024-10-21 19:13:42 -05:00
..
assets fix: make name and hash readable (#7014) 2024-08-22 18:04:45 -05:00
public_html chore: update generated transmission-web files (#6865) 2024-05-27 20:16:23 -05:00
src fix(web): pressing the enter key now submits dialogs (#7036) 2024-10-21 19:13:42 -05:00
.eslintrc.js build: use esbuild to bundle the web app (#6280) 2023-11-27 19:23:40 -06:00
.gitattributes feat: web client style (#2609) 2022-02-11 18:32:20 -06:00
.nvmrc [Web] Magnet link, Main window toolbar accessibility, ARM build fix, Dependencies update (#2586) 2022-02-09 10:28:48 -06:00
CMakeLists.txt build: use esbuild to bundle the web app (#6280) 2023-11-27 19:23:40 -06:00
README.md fix: update WebUI build instructions to use `dataurl` loader for images (#6430) 2023-12-24 07:53:57 -06:00
esbuild.mjs fix: esbuild load `svg` and `png` as `dataurl` type (#6409) 2023-12-23 10:32:38 -06:00
package-lock.json build: use esbuild to bundle the web app (#6280) 2023-11-27 19:23:40 -06:00
package.json build: use esbuild to bundle the web app (#6280) 2023-11-27 19:23:40 -06:00
package.json.buildonly build: use esbuild to bundle the web app (#6280) 2023-11-27 19:23:40 -06:00
prettier.config.js feat: web client refresh (#1476) 2020-10-23 20:04:25 -05:00
stylelint.config.js build: bump web client dev-dependencies (#5789) 2023-07-14 19:26:48 -05:00

README.md

Transmission Web Client

A web interface is built into all Transmission flavors, enabling them to be controlled remotely.

Notes for Packagers

Building Without Node

Transmission includes a prebuilt webapp bundle in its releases. This is done because it's not easy to install the bundling tools on all of the platforms that Transmission supports. Debian can't use this prebuilt bundle due to its (understandable) policies that require building from source. Unfortunately, building with node run build is also problematic because of some of package.json's devDependencies aren't available as Debian packages.

Follow these steps to build the webapp from source on Debian without Node:

$ sudo apt install rsass perl esbuild
$ cd transmission/web/
$ rsass assets/css/transmission-app.scss > assets/css/transmission-app.css
$ perl -p -i -e 's/transmission-app.scss/transmission-app.css/' src/main.js
$ esbuild \
  --allow-overwrite \
  --bundle \
  --legal-comments=external \
  --loader:.png=dataurl \
  --loader:.svg=dataurl \
  --minify \
  --outfile=public_html/transmission-app.js \
  src/main.js

Notes for Developers

$ npm install
$ npm run dev

Navigate to localhost:9000 to run the app.

When you use npm run dev, the bundler will stay running in the background and will rebuild transmission-app.js whenever you change and save a source file. When it's done, you can reload the page in your browser to see your changes in action.

Notes for Testers

Use this bookmarklet to anonymize your torrent names before submitting a screenshot:

javascript:void%20function(){const%20a=document.getElementsByClassName(%22torrent-name%22);for(const%20b%20of%20a)console.log(b),b.textContent=%22Lorem%20ipsum%20dolor%20sit%20amet.iso%22}();

Youll typically have about 3 seconds before the next batch of RPC updates overwrite the text content of any currently-downloading files.