896 Commits

Author SHA1 Message Date
github-actions[bot]
4bf5c32a1f chore: update generated transmission-web files (#7863)
Co-authored-by: ckerr <70381+ckerr@users.noreply.github.com>
2025-12-09 18:10:04 -06:00
Charles Kerr
2cddbce459 chore: update package-lock.json (#7878)
resolve js-yaml CVE-2025-64718

This CVE does not affect Transmission users. We only use this package for running eslint checcks in CI.
2025-12-05 16:44:23 -06:00
Yat Ho
05aef3e787 refactor: unify quarks and strings to snake_case (#7108)
* refactor: change `leftUntilDone` to `left_until_done`

* refactor: change `magnetLink` to `magnet_link`

* refactor: change `manualAnnounceTime` to `manual_announce_time`

* refactor: change `maxConnectedPeers` to `max_connected_peers`

* refactor: change `metadataPercentComplete` to `metadata_percent_complete`

* refactor: change `peersConnected` to `peers_connected`

* refactor: change `peersFrom` to `peers_from`

* refactor: change `peersGettingFromUs` to `peers_getting_from_us`

* refactor: change `peersSendingToUs` to `peers_sending_to_us`

* refactor: change `percentComplete` to `percent_complete`

* refactor: change `percentDone` to `percent_done`

* refactor: change `pieceCount` to `piece_count`

* refactor: use quark when possible

* refactor: change `pieceSize` to `piece_size`

* refactor: change `primary-mime-type` to `primary_mime_type`

* refactor: change `rateDownload` to `rate_download`

* refactor: change `rateUpload` to `rate_upload`

* refactor: change `recheckProgress` to `recheck_progress`

* refactor: change `secondsDownloading` to `seconds_downloading`

* refactor: change `secondsSeeding` to `seconds_seeding`

* refactor: change `sizeWhenDone` to `size_when_done`

* refactor: change `startDate` to `start_date`

* refactor: change `trackerStats` to `tracker_stats`

* refactor: change `totalSize` to `total_size`

* refactor: change `torrentFile` to `torrent_file`

* refactor: change `uploadedEver` to `uploaded_ever`

* refactor: change `uploadRatio` to `upload_ratio`

* refactor: change `webseedsSendingToUs` to `webseeds_sending_to_us`

* refactor: change `bytesCompleted` to `bytes_completed`

* refactor: change `clientName` to `client_name`

* refactor: change `clientIsChoked` to `client_is_choked`

* refactor: change `clientIsInterested` to `client_is_interested`

* refactor: change `flagStr` to `flag_str`

* refactor: change `isDownloadingFrom` to `is_downloading_from`

* refactor: change `isEncrypted` to `is_encrypted`

* refactor: change `isIncoming` to `is_incoming`

* refactor: change `isUploadingTo` to `is_uploading_to`

* refactor: change `isUTP` to `is_utp`

* refactor: change `peerIsChoked` to `peer_is_choked`

* refactor: change `peerIsInterested` to `peer_is_interested`

* refactor: change `rateToClient` to `rate_to_client`

* refactor: change `rateToPeer` to `rate_to_peer`

* refactor: change `fromCache` to `from_cache`

* refactor: change `fromDht` to `from_dht`

* refactor: change `fromIncoming` to `from_incoming`

* refactor: change `fromLpd` to `from_lpd`

* refactor: change `fromLtep` to `from_ltep`

* refactor: change `fromPex` to `from_pex`

* refactor: change `fromTracker` to `from_tracker`

* refactor: change `announceState` to `announce_state`

* refactor: change `downloadCount` to `download_count`

* refactor: change `hasAnnounced` to `has_announced`

* refactor: change `hasScraped` to `has_scraped`

* refactor: change `isBackup` to `is_backup`

* refactor: change `lastAnnouncePeerCount` to `last_announce_peer_count`

* refactor: change `lastAnnounceResult` to `last_announce_result`

* refactor: change `lastAnnounceStartTime` to `last_announce_start_time`

* refactor: change `lastAnnounceSucceeded` to `last_announce_succeeded`

* refactor: change `lastAnnounceTime` to `last_announce_time`

* refactor: change `lastAnnounceTimedOut` to `last_announce_timed_out`

* refactor: change `lastScrapeResult` to `last_scrape_result`

* refactor: change `lastScrapeStartTime` to `last_scrape_start_time`

* refactor: change `lastScrapeSucceeded` to `last_scrape_succeeded`

* refactor: change `lastScrapeTime` to `last_scrape_time`

* refactor: change `lastScrapeTimedOut` to `last_scrape_timed_out`

* refactor: change `leecherCount` to `leecher_count`

* refactor: change `nextAnnounceTime` to `next_announce_time`

* refactor: change `nextScrapeTime` to `next_scrape_time`

* refactor: change `scrapeState` to `scrape_state`

* refactor: change `seederCount` to `seeder_count`

* refactor: change `torrent-added` to `torrent_added`

* refactor: change `torrent-duplicate` to `torrent_duplicate`

* refactor: change `torrent-remove` to `torrent_remove`

* refactor: change `delete-local-data` to `delete_local_data`

* refactor: change `torrent-rename-path` to `torrent_rename_path`

* refactor: change `alt-speed-down` to `alt_speed_down`

* refactor: convert `pref_toggle_entries` to quark array

* refactor: change `alt-speed-enabled` to `alt_speed_enabled`

* refactor: change `compact-view` to `compact_view`

* refactor: change `sort-reversed` to `sort_reversed`

* refactor: change `show-filterbar` to `show_filterbar`

* refactor: change `show-statusbar` to `show_statusbar`

* refactor: change `show-toolbar` to `show_toolbar`

* refactor: change `alt-speed-time-begin` to `alt_speed_time_begin`

* refactor: change `alt-speed-time-day` to `alt_speed_time_day`

* refactor: change `alt-speed-time-end` to `alt_speed_time_end`

* refactor: change `alt-speed-up` to `alt_speed_up`

* refactor: change `alt-speed-time-enabled` to `alt_speed_time_enabled`

* refactor: change `blocklist-enabled` to `blocklist_enabled`

* refactor: change `blocklist-size` to `blocklist_size`

* refactor: change `blocklist-url` to `blocklist_url`

* refactor: change `cache-size-mb` to `cache_size_mb`

* refactor: change `config-dir` to `config_dir`

* refactor: change `default-trackers` to `default_trackers`

* refactor: change `dht-enabled` to `dht_enabled`

* refactor: change `download-dir-free-space` to `download_dir_free_space`

* refactor: change `download-queue-enabled` to `download_queue_enabled`

* refactor: change `download-queue-size` to `download_queue_size`

* refactor: change `idle-seeding-limit-enabled` to `idle_seeding_limit_enabled`

* refactor: change `idle-seeding-limit` to `idle_seeding_limit`

* refactor: change `incomplete-dir-enabled` to `incomplete_dir_enabled`

* refactor: change `incomplete-dir` to `incomplete_dir`

* refactor: change `lpd-enabled` to `lpd_enabled`

* refactor: change `peer-limit-global` to `peer_limit_global`

* refactor: change `peer-limit-per-torrent` to `peer_limit_per_torrent`

* refactor: change `peer-port-random-on-start` to `peer_port_random_on_start`

* refactor: change `peer-port` to `peer_port`

* refactor: change `pex-enabled` to `pex_enabled`

* refactor: change `port-forwarding-enabled` to `port_forwarding_enabled`

* refactor: change `queue-stalled-enabled` to `queue_stalled_enabled`

* refactor: change `queue-stalled-minutes` to `queue_stalled_minutes`

* refactor: change `rename-partial-files` to `rename_partial_files`

* refactor: change `rpc-version-minimum` to `rpc_version_minimum`

* refactor: change `rpc-version-semver` to `rpc_version_semver`

* refactor: change `rpc-version` to `rpc_version`

* refactor: change `script-torrent-added-enabled` to `script_torrent_added_enabled`

* refactor: change `script-torrent-added-filename` to `script_torrent_added_filename`

* refactor: change `script-torrent-done-enabled` to `script_torrent_done_enabled`

* refactor: change `script-torrent-done-filename` to `script_torrent_done_filename`

* refactor: change `script-torrent-done-seeding-enabled` to `script_torrent_done_seeding_enabled`

* refactor: change `script-torrent-done-seeding-filename` to `script_torrent_done_seeding_filename`

* refactor: change `seed-queue-enabled` to `seed_queue_enabled`

* refactor: change `seed-queue-size` to `seed_queue_size`

* refactor: change `seedRatioLimited` to `seed_ratio_limited`

* refactor: change `session-id` to `session_id`

* refactor: change `speed-limit-down-enabled` to `speed_limit_down_enabled`

* refactor: change `speed-limit-down` to `speed_limit_down`

* refactor: change `speed-limit-up-enabled` to `speed_limit_up_enabled`

* refactor: change `speed-limit-up` to `speed_limit_up`

* refactor: change `start-added-torrents` to `start_added_torrents`

* refactor: change `trash-original-torrent-files` to `trash_original_torrent_files`

* refactor: change `utp-enabled` to `utp_enabled`

* refactor: change `tcp-enabled` to `tcp_enabled`

* docs: add missing docs for RPC `tcp_enabled`

* refactor: change `speed-units` to `speed_units`

* refactor: change `speed-bytes` to `speed_bytes`

* refactor: change `size-units` to `size_units`

* refactor: change `size-bytes` to `size_bytes`

* refactor: change `memory-units` to `memory_units`

* refactor: change `memory-bytes` to `memory_bytes`

* refactor: change `session-set` to `session_set`

* refactor: change `session-get` to `session_get`

* refactor: change `session-stats` to `session_stats`

* refactor: change `activeTorrentCount` to `active_torrent_count`

* refactor: change `downloadSpeed` to `download_speed`

* refactor: change `pausedTorrentCount` to `paused_torrent_count`

* refactor: change `torrentCount` to `torrent_count`

* refactor: change `uploadSpeed` to `upload_speed`

* refactor: change `cumulative-stats` to `cumulative_stats`

* refactor: change `current-stats` to `current_stats`

* refactor: change `uploadedBytes` and `uploaded-bytes` to `uploaded_bytes`

* refactor: change `downloadedBytes` and `downloaded-bytes` to `downloaded_bytes`

* refactor: change `filesAdded` and `files-added` to `files_added`

* refactor: change `sessionCount` and `session-count` to `session_count`

* refactor: change `secondsActive` and `seconds-active` to `seconds_active`

* refactor: change `blocklist-update` to `blocklist_update`

* refactor: change `port-test` to `port_test`

* refactor: change `session-close` to `session_close`

* refactor: change `queue-move-top` to `queue_move_top`

* refactor: change `queue-move-up` to `queue_move_up`

* refactor: change `queue-move-down` to `queue_move_down`

* refactor: change `queue-move-bottom` to `queue_move_bottom`

* refactor: change `free-space` to `free_space`

* refactor: change `group-set` to `group_set`

* refactor: change `group-get` to `group_get`

* refactor: change `announce-ip` to `announce_ip`

* refactor: change `announce-ip-enabled` to `announce_ip_enabled`

* refactor: change `upload-slots-per-torrent` to `upload_slots_per_torrent`

* refactor: change `trash-can-enabled` to `trash_can_enabled`

* refactor: change `watch-dir-enabled` to `watch_dir_enabled`

* refactor: change `watch-dir-force-generic` to `watch_dir_force_generic`

* refactor: change `watch-dir` to `watch_dir`

* refactor: change `message-level` to `message_level`

* refactor: change `scrape-paused-torrents-enabled` to `scrape_paused_torrents_enabled`

* refactor: change `torrent-added-verify-mode` to `torrent_added_verify_mode`

* refactor: change `sleep-per-seconds-during-verify` to `sleep_per_seconds_during_verify`

* refactor: change `bind-address-ipv4` to `bind_address_ipv4`

* refactor: change `bind-address-ipv6` to `bind_address_ipv6`

* refactor: change `peer-congestion-algorithm` to `peer_congestion_algorithm`

* refactor: change `peer-socket-tos` to `peer_socket_tos`

* refactor: change `peer-port-random-high` to `peer_port_random_high`

* refactor: change `peer-port-random-low` to `peer_port_random_low`

* refactor: change `anti-brute-force-enabled` to `anti_brute_force_enabled`

* refactor: change `rpc-authentication-required` to `rpc_authentication_required`

* refactor: change `rpc-bind-address` to `rpc_bind_address`

* refactor: change `rpc-enabled` to `rpc_enabled`

* refactor: change `rpc-host-whitelist` to `rpc_host_whitelist`

* refactor: change `rpc-host-whitelist-enabled` to `rpc_host_whitelist_enabled`

* refactor: change `rpc-password` to `rpc_password`

* refactor: change `rpc-port` to `rpc_port`

* refactor: change `rpc-socket-mode` to `rpc_socket_mode`

* refactor: change `rpc-url` to `rpc_url`

* refactor: change `rpc-username` to `rpc_username`

* refactor: change `rpc-whitelist` to `rpc_whitelist`

* refactor: change `rpc-whitelist-enabled` to `rpc_whitelist_enabled`

* refactor: change `ratio-limit-enabled` to `ratio_limit_enabled`

* refactor: change `ratio-limit` to `ratio_limit`

* refactor: change `show-options-window` to `show_options_window`

* refactor: change `open-dialog-dir` to `open_dialog_dir`

* refactor: change `inhibit-desktop-hibernation` to `inhibit_desktop_hibernation`

* refactor: change `show-notification-area-icon` to `show_notification_area_icon`

* refactor: change `start-minimized` to `start_minimized`

* refactor: change `torrent-added-notification-enabled` to `torrent_added_notification_enabled`

* refactor: change `anti-brute-force-threshold` to `anti_brute_force_threshold`

* refactor: change `torrent-complete-notification-enabled` to `torrent_complete_notification_enabled`

* refactor: change `prompt-before-exit` to `prompt_before_exit`

* refactor: change `sort-mode` to `sort_mode`

* refactor: change `statusbar-stats` to `statusbar_stats`

* refactor: change `show-extra-peer-details` to `show_extra_peer_details`

* refactor: change `show-backup-trackers` to `show_backup_trackers`

* refactor: change `blocklist-date` to `blocklist_date`

* refactor: change `blocklist-updates-enabled` to `blocklist_updates_enabled`

* refactor: change `main-window-layout-order` to `main_window_layout_order`

* refactor: change `main-window-height` to `main_window_height`

* refactor: change `main-window-width` to `main_window_width`

* refactor: change `main-window-x` to `main_window_x`

* refactor: change `main-window-y` to `main_window_y`

* refactor: change `filter-mode` to `filter_mode`

* refactor: change `filter-trackers` to `filter_trackers`

* refactor: change `filter-text` to `filter_text`

* refactor: change `remote-session-enabled` to `remote_session_enabled`

* refactor: change `remote-session-host` to `remote_session_host`

* refactor: change `remote-session-https` to `remote_session_https`

* refactor: change `remote-session-password` to `remote_session_password`

* refactor: change `remote-session-port` to `remote_session_port`

* refactor: change `remote-session-requres-authentication` to `remote_session_requires_authentication`

* refactor: change `remote-session-username` to `remote_session_username`

* refactor: change `torrent-complete-sound-command` to `torrent_complete_sound_command`

* refactor: change `torrent-complete-sound-enabled` to `torrent_complete_sound_enabled`

* refactor: change `user-has-given-informed-consent` to `user_has_given_informed_consent`

* refactor: change `read-clipboard` to `read_clipboard`

* refactor: change `details-window-height` to `details_window_height`

* refactor: change `details-window-width` to `details_window_width`

* refactor: change `main-window-is-maximized` to `main_window_is_maximized`

* refactor: change `port-is-open` to `port_is_open`

* refactor: change `show-tracker-scrapes` to `show_tracker_scrapes`

* refactor: change `max-peers` to `max_peers`

* refactor: change `peers2-6` to `peers2_6`

* refactor: change `seeding-time-seconds` to `seeding_time_seconds`

* refactor: change `downloading-time-seconds` to `downloading_time_seconds`

* refactor: change `ratio-mode` to `ratio_mode`

* refactor: change `idle-limit` to `idle_limit`

* refactor: change `idle-mode` to `idle_mode`

* refactor: change `speed-Bps` to `speed_Bps`

* refactor: change `use-global-speed-limit` to `use_global_speed_limit`

* refactor: change `use-speed-limit` to `use_speed_limit`

* chore: remove TODO comment

* docs: add upgrade instructions to `5.0.0`

* chore: bump rpc semver major version

* chore: housekeeping
2025-12-01 16:08:18 -06:00
github-actions[bot]
030b22f91c chore: update generated transmission-web files (#7860) 2025-11-30 11:50:48 -06:00
Yat Ho
1cb24a701b feat: new JSON-RPC 2.0 RPC API (#7269)
* feat: add enum for JSON-RPC error codes

* feat: new `tr_rpc_request_exec()` overload that accepts string

* feat: add JSON-RPC parse error handling

* feat: add logic for branching to JSON-RPC or legacy API

* feat: error codes for existing errors strings

* refactor: async handlers now take the done cb as parameter

* feat: support non-batch JSON-RPC requests

* feat: support batch JSON-RPC requests

* refactor: move JSON-RPC error codes to header

* test: new tests for JSON-RPC

* refactor(webui): use jsonrpc api

* docs: update docs for jsonrpc

* fix: clang-tidy warning

* perf: avoid copying callback in batch mode

* code review: don't commit to dropping old RPC

* chore: fix shadowed variable warnings
2025-11-30 10:04:40 -06:00
Mitch Livingston
147da72453 Revised Tahoe icon, including updated favicons, webclip icon, and document icon (#7836) 2025-11-19 20:54:18 -05:00
github-actions[bot]
2322a39c90 chore: update generated transmission-web files (#7812)
Co-authored-by: ckerr <70381+ckerr@users.noreply.github.com>
2025-11-14 09:56:43 -06:00
Rukario
2fa0b9ef6b feat: update & move turtle to own button on status bar of web app (#6940) 2025-11-13 20:24:29 -06:00
github-actions[bot]
bdbce644cf chore: update generated transmission-web files (#7806)
Co-authored-by: ckerr <70381+ckerr@users.noreply.github.com>
2025-11-12 18:33:53 -06:00
Rukario
26aba40529 feat: rename or copy name of individual file in web app (#7389) 2025-11-12 18:17:40 -06:00
github-actions[bot]
b449248fc8 chore: update generated transmission-web files (#7781)
Co-authored-by: ckerr <70381+ckerr@users.noreply.github.com>
2025-11-08 18:29:45 -06:00
Rukario
65d8dc69f1 feat: label mainwin buttons (#6985)
* feat: label mainwin buttons

* fix: trash icon semi-transparent lines overlap
2025-11-08 18:25:30 -06:00
github-actions[bot]
46cbe2b08f chore: update generated transmission-web files (#7777)
Co-authored-by: ckerr <70381+ckerr@users.noreply.github.com>
2025-11-08 07:52:46 -06:00
Rukario
b0b8902198 feat: inline delete prompt in remove dialog (#7000)
Co-authored-by: Yat Ho <lagoho7@gmail.com>
2025-11-08 07:21:14 -06:00
github-actions[bot]
418434a5f3 chore: update generated transmission-web files (#7726)
Co-authored-by: ckerr <70381+ckerr@users.noreply.github.com>
2025-11-05 14:51:54 -06:00
Charles Kerr
152e468e3a fix: filter-by-tracker failed after the tracker list changed (#7761) 2025-11-05 14:25:45 -06:00
Rukario
c35af04606 feat: revamped search bar for web client (#6948) 2025-11-05 14:21:50 -06:00
Rukario
90268076b8 refactor: clean up Flexbox style rules in CSS (#7358) 2025-11-03 12:26:37 -06:00
Rukario
7be9808ccd Privacy and error filter for web client (#6977)
Squashed all commits + co-authoring previous works

Co-authored-by: Derek Reiff <d@derekr.net>
Co-authored-by: Will Da Silva <will@willdasilva.xyz>
Co-authored-by: Yat Ho <46261767+tearfur@users.noreply.github.com>
2025-11-03 12:24:07 -06:00
Rukario
afdbfdbcda feat: viewport neutral layout and style for small viewports in web app (#7328)
* Update transmission-app.scss

* Update transmission-app.scss
2025-11-02 11:58:15 -06:00
Rukario
50e0ffb910 feat: tweak font size for web app (#7329) 2025-11-02 11:52:54 -06:00
Rukario
78c50747cc refactor: offload icons from HTMLdoc to JavaScript for icon deployment (#7277)
* Update index.html

* Update utils.js

* Update torrent-row.js

* Update transmission-app.scss

* Update transmission.js

* Freezing object with `Object.freeze`

Co-Authored-By: Yat Ho <lagoho7@gmail.com>

* Update torrent-row.js

* Update utils.js

* Prefers destructuring assignment over bracket notation accessor

Co-authored-by: Yat Ho <lagoho7@gmail.com>

---------

Co-authored-by: Yat Ho <lagoho7@gmail.com>
2025-11-02 11:52:22 -06:00
Rukario
1d0db31ae7 feat: submenu to group away context menu items (#7263)
* Update context-menu.js

* Update transmission-app.scss

* Update transmission-app.scss

* Update transmission-app.scss

* Update context-menu.js

* Update transmission-app.scss

* Update context-menu.js

* Update transmission-app.scss

* Update context-menu.js

* Update transmission-app.scss

* Update context-menu.js

* Update action-manager.js

* Update context-menu.js

* Update context-menu.js

* Update action-manager.js

* Update context-menu.js

* Update context-menu.js

* Update context-menu.js

* Update context-menu.js
2025-10-30 18:19:48 -05:00
Yat Ho
d31e77a494 chore: update transmission-web package (#7003)
* chore: update minor versions

* chore: bump to `style-loader@4`

major version change

* refactor: combine `#mainwin-toolbar:nth-last-child(2)` rule

* refactor: cleanup scss definitions

Notes: `.single-file` is no longer used in code

* chore: bump `esbuild-sass-plugin@3` `esbuild@0.25`

* chore: uninstall unused `stylelint-config-standard`

In fact, it was never used since added to `package.json`.

* chore: bump `stylelint@16` `stylelint-config-sass-guidelines@12`

* chore: bump `eslint@9` `eslint-plugin-sonarjs@1` `eslint-plugin-unicorn@61`

* chore: enable prettier for whole `transmission-web` package

* chore: bump `@primer/stylelint-config@13`

* chore: update minor versions

* build: remove lint config files from CMake dependency

* chore: bump minor versions

* chore: bump `eslint-plugin-sonarjs@3`

* ci: use `actions/setup-node@v4` to install Node.js

So that there's no risk of the OS package manager's Node.js version being too low.

Except in Alpine, which does not work with `actions/setup-node@v4`. Ref: https://github.com/actions/setup-node/issues/387

* chore: replace `lodash.isEqual` with `fast-deep-equal`

* chore: bump minor versions

* chore: re-generate package-lock.json

* chore: fix lint errors
2025-10-25 12:09:36 -05:00
Rukario
c885646d65 fix: also share grid-area: icon; across full-compact modes (#7356) 2025-10-15 19:19:15 -05:00
Rukario
b5a447eecd refactor: centralize checkbox creation in overflow-menu.js (#7369)
`overflow-menu.js` also sees a favor of using `htmlFor = id` over `setAttribute('for', id)` for binding label to element id.

Update transmission-app.scss
2025-10-15 18:45:35 -05:00
Rukario
d083ca1130 fix: display icon correctly for multi-file torrents in compact view (#7352)
* fix: display icon correctly for multi-file torrents in compact view

* refactor: clean up unused codes
2025-10-15 14:19:25 -05:00
wrrrzr
963085a00c Add accept torrent files in web (#7683)
* Add accept torrent files

* Update open-dialog.js

* Update open-dialog.js

---------

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2025-10-15 12:09:22 -05:00
Rukario
3fdbeea2b6 feat: update color for priority buttons in web app (#7651) 2025-10-14 12:21:32 -05:00
github-actions[bot]
828e82420c chore: update generated transmission-web files (#7075)
Co-authored-by: ckerr <70381+ckerr@users.noreply.github.com>
2025-10-14 12:20:12 -05:00
Yat Ho
d9a7c3ab94 chore: mark web files as generated (#7588) 2025-05-08 21:44:06 +01:00
Yat Ho
7b83c7d625 refactor: rename unreleased quarks to snake_case (#7483)
* refactor: rename `sequentialDownload` to `sequential_download`

* refactor: rename `beginPiece` to `begin_piece`

* refactor: rename `endPiece` to `end_piece`

* refactor: rename `ipProtocol` to `ip_protocol`

* refactor: rename `preferred-transport` to `preferred_transport`
2025-03-10 17:30:19 -05:00
Charles Kerr
40d73978f7 chore: update generated web files 2025-03-10 16:03:30 -05:00
Rukario
9ea7153ee4 feat: error rename alert message (#7394) 2025-03-04 19:29:52 -06:00
Rukario
43577e3df2 refactor: drop className .full in favor of :not(.compact) (#7354) 2025-03-04 08:21:23 -06:00
Yat Ho
3af627e725 fix(web): enable/disable textbox when session changed (#7346)
* fix(web): enable/disable textbox when session changed

* code review: only enable/disable textbox in response to session change
2024-12-30 12:38:12 -06:00
Rukario
4f88a660a2 fix: use grid CSS to resolve the inflating rows by long torrent names in compact view (#7336) 2024-12-30 11:59:41 -06:00
Rukario
0795e932bd refactor: pointer device listener code refinement (#7311) 2024-12-30 10:40:42 -06:00
Rukario
3842cec549 refactor: alternative x/y coords to account for zoomed in browser (#6945)
* Update transmission.js

* refactor: accommodate suggestions + alternative x/y coords

Thanks @tearfur!

Co-Authored-By: Yat Ho <46261767+tearfur@users.noreply.github.com>

---------

Co-authored-by: Yat Ho <46261767+tearfur@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2024-12-29 01:42:56 -06:00
Yat Ho
536fe4a6e1 fix(webui): dispatch close events when closing popups (#7340)
* fix: dispatch `close` event in statistics dialogue

* fix: properly dispatch `close` event in pref dialogue
2024-12-29 01:39:56 -06:00
Rukario
8cb527d428 Update transmission.js (#7310)
Co-authored-by: Yat Ho <lagoho7@gmail.com>
2024-12-26 12:51:47 -06:00
Rukario
698b4348a0 fix: close context menu with a click outside listener 2024-12-25 13:09:24 -06:00
Rukario
c3b48882b8 feat: remove per-torrent start/pause button from web client (#7292) 2024-12-25 13:08:20 -06:00
Rukario
713a96ffa1 feat: contract main area for inspector for large viewports (#7051) 2024-12-23 12:18:47 -06:00
Rukario
f2aeb11b07 feat: multiple popups in a hierarchy-like system (#7297) 2024-12-15 17:12:58 -06:00
Charles Kerr
d1dfed4588 chore: update generated web files 2024-12-12 16:11:24 -06:00
Rukario
57e4849cde refactor: softcode/consolidate strings in torrent-row.js, normal appendChild order for compact mode (#7285) 2024-12-12 15:17:30 -06:00
Yat Ho
8bca3f2e06 refactor: parse cookie pref values as their default values types (#7001)
* refactor: allow floating point values in web refresh rate

Co-authored-by: Rukario <kakashiru@yahoo.com>

* refactor: parse cookie pref according to default value type

* fixup! refactor: parse cookie pref according to default value type

---------

Co-authored-by: Rukario <kakashiru@yahoo.com>
2024-12-10 08:58:28 -06:00
Rukario
100e88826c fix: utilize gigabyte per second to conserve space and upload arrow clipping fix (#7279)
* Update transmission-app.scss

* Update formatter.js

* Update formatter.js
2024-12-08 21:44:18 -06:00
Rukario
a1befba4d8 Update torrent-row.js (#7245) 2024-11-18 09:30:21 -06:00