Skip to content

Conversation

@stickz
Copy link
Collaborator

@stickz stickz commented Apr 25, 2025

No description provided.

koblack and others added 30 commits November 24, 2024 13:28
* Fix torrent deleted without confirmation

- This commit fixes an error that torrent(s) get deleted without
  confirmation, even if the option is checked in the options.
  Previously, the delete action worked as expected using the delete
  button in the top menu, asking for confirmation before taking
  actual action. However, using the "remove" option in the context
  menu or the `DEL` key on the keyboard would got the torrent(s)
  removed immediately. They were just not calling the correct
  remove function.
- Besides the correction of delete events handler, two other things
  were carried out by the way, although not on the scope of the
  entire app but just around the functions that were adjusted in
  this fix.
  1. Some ident related issues were picked out by the way, like
  mixing spaces with tabs on the same line.
  2. Documentations were added to some of the JS functions, according
  to my own understanding of the function. They might be incorrect,
  but can be polished while the project grows.

Co-authored-by: Jevenski C. Woodsmann <26022962+jevenski@users.noreply.github.com>
filedrop plugin: support dropped links
* fire change event for input

* fire change event for input

* env configuration

* trigger change for all user interaction on input

* more env config

* RU_ prefix env config

* RU_ prefix env config

---------

Co-authored-by: nelu <unzel@unzel.com>
Co-authored-by: nelu <nelu@github.com>
* Remove drag mask object

- Without the drag mask object, dialog windows can be moved around
  instantly during dragging the mouse.
- Move dir list frame dnd movement function to the _getdir plugin
  for separation.

* Set category list max width

* Set proper value for category list max width

* Fix lang file indent
- The tabs panel should be clean with only tabs, without anything
  else such buttons. This patch converts the clear log button to a
  rounded floating icon button on the bottom right corner of the
  log tab page, and simplifies the action of switching between
  detail tabs, without having to explicitly show/hiding the clear
  button by checking if we're switching to the log tab.
* Use bootstrap dropdown on recent trackers

- Get recent trackers and previous create torrent settings on plugin
  load, and update the dropdown menu immediately. This replaces
  previous mechanism of showing recent trackers with a context menu.
- Move some utility functions from `theWebUI` object to the plugin
  itself. This reduuces the size of `theWebUI` object, and avoids
  potential function naming conflicts.
- Return new data immediately with the `rtdelete` request. This saves
  the need for another request to fetch the new data after deleting
  some trackers from recent ones.

* Preserve white spaces between multiple trackers

- Trim trailing white spaces and preserve those in between from
  tracker list and last used list. This process is done from both
  front-end and back-end.
* Use flex layout on context menu items

- Split menu-item selection and sub-menu expansion icons from the
  background image, and use pseudo-elements for them.
- Use CSS variables on menu background and font color. This simplifies
  theme adaption process and reduces code duplication.
- Use inline base64 string for menu selection and expansion icons,
  replacing previous image urls. This saves a few requests for images
  and enhances performance by reducing load time.

* Various bug fixes for context menu

- Remove "Details..." option from torrent context menu.
- Fix submenu position.
- Adjust context menu display styles.

* Add 0.25rem top and bottom padding

---------

Co-authored-by: stickz <stickman002@mail.com>
- Change status bar position to static because height of the navbar,
  the main content and the status bar has been set to be calculated
  dynamically according to the window height.
- Define status bar border color and background color using css
  variables, with CSS gradient for background in use in some themes
  (Excel, Oblivion).
- Remove verbose utility class names on status bar.
- Remove unused outdated CSS rules.
- Set a max height on the collapsible navbar menu to fit in some
  extreme situations where one might have a screen with small height
  or a collapsible menu with a lot of buttons.
- Fix top menu collapsing when opening dialog windows on mobile.
- Fix top menu not collapsing when switching from mobile to desktop.
Adjust status bar and top menu
- This patch serves mainly as a clean-up for dialog window styles,
  with the aime of simplifying styles.
- One major change is removing the old `--settings-background-color`
  variable. This change leaves an impact on some of the themes, which
  are Blue and Excel, where the settings dialog window had a different
  background color than other dialog windows. Some themes (Standard,
  Dark, DarkBetter, MaterialDesign) are unaffected because the
  background colors were already the same. Others (Acid and Oblivion)
  were slightly affected but almost unnoticeable because the previous
  color difference was subtle.
- Besides, it also removes a few excessive detail, such as the previous
  different colors on the four side of borders in MaterialDesign and
  Oblivion theme.
* Distribute WebUi space using flex layout

- Resize category list, torrent list table and torrent detail tabs
  using `flex-basis` property. This reduces the amount of JS doing
  resizing work and lets CSS take over the space distribution.
- Add a deprecation warning for the old `theWebUI.resizeTop(w, h)`
  method and suggest using the new simplified `theWebUI.resizeTop(h)`
  method.
- Fix an error that occurs when traffic graph is shrinked down to
  less than 1px high.

* Bug fixes for traffic graph resize

- Fix toggle torrent detail tab pages error.
- Fix incorrect traffic graph dimension when maximizing and unmaximize
  browser window.
- Fix torrent list height minor shifting issue.
…2825)

User agent sniffing was a bad idea. I think we should eventually
remove all of them so every browser runs the same code paths.
The problem with looking at browsers to implement workarounds for
their bugs, is that browsers are moving targets. The fix for a bug
20 years ago is more likely to cause of a separate bug today.
- Adjust s-table's `createRow()` method to use jQuery to create
  table rows. This is more readable than generating table rows
  with HTML strings.
- Rewrite `toggleColumn` to use jQuery's `toggle()` method to toggle
  table cell display and use jQuery's selector function to replace
  a for loop.
- Deprecate `calcSize()` method with a deprecation warning since we're
  unifying behaviors on different browsers. This method will be removed
  in the next major version update.
- The affected icons include the upload/download speed icons, the
  cpu load icon, the disk usage icon, and the port status icon set.
- Fix jQuery selector typo for check_port plugin.
- Fix port status icon position issue in MaterialDesign theme.
- Define category panel open icon with variables and base64
  strings. Transform  close icon with CSS `transform` property.
  This saves a few bytes for our users.
- Add animation to panel icon and list open/close.
- Remove obsolete panel method from Excel theme.
- Remove `rows` and `cols` properties from dxSTable class and define
  them using getter functions. Previously they need to be updated
  manually when adding or removing rows/columns. The new method
  extracts the up-to-date numbers directly from the rows/cols-data,
  so that the numbers don't need to be updated manually.
- Remove properties referring to various s-table parts and define
  getter functions to get a reference to them as well. This way the
  creation process of s-tables can be combined into one piece of
  code snippet with jQuery DOM creation functionality and thus making
  maintenance easier, instead of being scattered across many lines.
  The process can be further polished in the future, just so much for
  now to keep changes to a minimum.
* Use bootstrap list group on options window

- Use bootstrap list group component on settings navigation. As a
  side-effect, this introduces bootstrap's fade-in/-out effect
  when switching between different option pages.
- Implement the connecting lines in front of settings navigation
  items using pseudo-elements and reuse line styles and colors with
  variables. This simplifies the DOM structure and reduces code
  duplication.
- Extract default option pages creation and initialization from
  previous `makeContent()` function to `theOptionsWindow` object
  itself. This makes functions and methods co-located and easier to
  maintain, and reduces the size of the `makeContent()` function.
- Split options window controller in a separate JS file (options.js).

* Minor adjustments on options window

- Use getter function for current option page.
- Put checkboxes on the same row with it's corresponding label in
  advanced options page.
* Define s-table header styles using variables

- Define header background with CSS gradient or plain color.
- Control sorting icons using CSS class names.
- Define sorting icons with inline base64 strings and remove binary
  image files.

* Adjust s-table header styles

- Wrap texts in s-table headers with HTML `span`s, in order to apply
  styles to headers in the future.
- Modify mouse cursor type on `span` elements accordingly, allowing
  only those in the General and Log tab pages show text cursors.
- Increase padding on Y-axis for s-table cells.
- Resize columns in real time as user drags and moves header resizer.
- Fix column resizing separator display error.
- Disable column resizing and moving on touch devices.
- Control s-table alternate row color using CSS.
- Define odd row, even row, and active row background using variables.
- Define highlight row background using color filter with a brightness
  of 0.75 for MaterialDesign theme only.
- Remove another two properties from s-table class (`tHeadCols` and
  `tBodyCols`), and use JavaScript getter functions to fetch the
  equivelant object.
- Rewrite `moveColumn()` function to be more concise and readable.
- Fix header cell title in the drag-and-move object, which had the
  wrapping HTML tags around it.
This is not a library, it should be here for reproducibility
- Previously the modified event handler was attached separately to
  every single cell in s-table header. The new create method now
  attaches one handler to the entire header row and does the math
  to find out the index number of the currently targeted cell.
  This simplifies the creation of s-tables.
- In the process of s-table initialization, this event handler
  registration is also moved to the `dxSTable.assignEvent()` method.
* Drag and drop s-table header using DnD class

- Modify `DnD` class initialization method a bit, so that the object
  can be attached to an HTML element or an `id` identifier. This is
  a preparation for the following change.
- Merge header cell resizing and moving methods into one object,
  reusing ruTorrent's `DnD` utility class, and thus removes the
  `dxSTable.ColumnMove` object defined in the s-table module that
  did the same thing as the `DnD` class.
- Rearrange header row drag-and-drop event handling process. Resizing,
  moving, and sorting actions are distributed according to the position
  of mouse clicks and displacement of the mouse cursor.
- Remove obsolete properties from S-Table class (`dxSTable.cancelMove`
  and `dxSTable.cancelSort`).

* Use ternary operator for DnD init
* Merge stable head and body into one table

- Merge stable-head and stable-body into one HTML table, and thus
  removes the process to sync horizontal scroll position.
- Fix table header split away from table body when scrolled to right
  end (#2794).
- Adjust internal styles of the s-table to fit the new table structure.

* Fix various bugs

- Fix move header display postion error.
- Fix table sorting on mobile screens.
- Fix tracker icon display issue
  (#2849).
The torrent add dialog #tadd remembers previous settings now to help
users avoid needing to set the same setting repeatedly.

Users also assume that default settings are always safe settings for
general usage, and click through without reviewing them.

A user who checks #randomize_hash for one torrent (deliberately or
otherwise), then is surprised that none of their torrents download
anymore, because #randomize_hash is still checked on all future
torrent additions.

Because users may legitimately want this setting to persist through
several subequent torrent adds, we don't want to remove persistence
for this field. But I think we should draw more attention to its
use, because accidental usage can cause the entire client to stop
functioning as expected (from a user perspective).
jevenski and others added 12 commits March 23, 2025 11:00
- Fix binding IP address maxlength limitation error.
- Fix dialog window header not bringing window to top error.
- Fix s-table row height inequality.
- Fix inconsistent s-table scrolling
  (#2847).
- make sure that contain trail slash
- add extra checks to system provided temp dirs detection
- add '/var/tmp' to system provided temp dirs
- add dir exist check and create for user provided and user profile temp dir
- add comments to code

This change is to be sure that setting $tempDirectory = '/tmp'; will not silently break installation.
these ids may not exist (eg canAddTorrentsWithResume = no)
* fix access.ini permissions

these ids may not exist (eg canAddTorrentsWithResume = no)

* Add 'canChangeTorrentOptions' permission

* Update getplugins.php

* Revert fixes for access.ini
@stickz stickz merged commit 1029e8a into master Apr 25, 2025
stickz added a commit to stickz/docker-rtorrent-rutorrent that referenced this pull request Apr 27, 2025
**Full Changelog**: Novik/ruTorrent@v5.1.7...v5.2.1

# ruTorrent v5.2.1
This is a critical hotfix to resolve breakage of RSS feeds. It's highly recommended to upgrade.
In addition, the white border is fixed on dark themes. A stopped state is also added to torrents.

## What's Changed
* Adding Stopped state by ranirahn in Novik/ruTorrent#2893
* Fix for broken RSS feeds break the rutorrent. by ranirahn in Novik/ruTorrent#2894
* Fix white border in dark themes by drrako in Novik/ruTorrent#2898

**Full Changelog**: Novik/ruTorrent@v5.2.0...v5.2.1

# ruTorrent v5.2.0 is now Stable
This is a release contains more mobile design improvements, performance improvements and various new features. It builds on progress made in ruTorrent `v5.1` toward mobile development. 

## Critical Improvement Summary

1. Torrents now have bigger font to make them easier to read.
2. There is no more drag mask when moving around dialog boxes.
3. Internet explorer is no longer supported. (Yes finally, we dropped it)
4. Various performance improvements to tables to improve responsiveness.
5. The clear log now has a bootstrap button in the bottom right corner.
6. Many other smaller improvements, bug fixes and new features.

## What's Changed
* Fix torrent deleted without confirmation by koblack in Novik/ruTorrent#2804
* filedrop plugin: support dropped links by pekman in Novik/ruTorrent#2806
* Remove drag mask object by jevenski in Novik/ruTorrent#2805
* Covert clear log to a floating button by jevenski in Novik/ruTorrent#2810
* Use bootstrap dropdown on recent trackers by jevenski in Novik/ruTorrent#2809
* Use flex layout on context menu items by jevenski in Novik/ruTorrent#2812
* Adjust status bar and top menu by jevenski in Novik/ruTorrent#2813
* Define dialog window colors using variables by jevenski in Novik/ruTorrent#2815
* Distribute WebUi space using flex layout by jevenski in Novik/ruTorrent#2826
* Remove Internet Explorer support, and some useragent sniffing hacks by anthonyryan1 in Novik/ruTorrent#2825
* Change various s-table methods by jevenski in Novik/ruTorrent#2821
* Define status bar icons using base64 strings by jevenski in Novik/ruTorrent#2833
* Animate category panel by jevenski in Novik/ruTorrent#2831
* Define getter functions on s-table by jevenski in Novik/ruTorrent#2830
* Use bootstrap list group on options window by jevenski in Novik/ruTorrent#2819
* Define s-table header styles using variables by jevenski in Novik/ruTorrent#2836
* Improve s-table column resizing by jevenski in Novik/ruTorrent#2837
* Control alternate row color using CSS by jevenski in Novik/ruTorrent#2841
* Improve move column function by jevenski in Novik/ruTorrent#2844
* Improve s-table header row hover event handler by jevenski in Novik/ruTorrent#2851
* Drag and drop s-table header using DnD class by jevenski in Novik/ruTorrent#2855
* Merge stable head and body into one table by jevenski in Novik/ruTorrent#2860
* Add danger color to #randomize_hash by anthonyryan1 in Novik/ruTorrent#2875
* Fix various bugs for v5.2 by jevenski in Novik/ruTorrent#2863
* Let rutracker_check ignore torrents with certain labels by drrako in Novik/ruTorrent#2866
* Add "::1" to localhost address list. by rozhuk-im in Novik/ruTorrent#2881
* Improve $tempDirectory handling: by rozhuk-im in Novik/ruTorrent#2880
* Diskspace option to display free bytes (new pull request against develop branch) by TheGoblinHero in Novik/ruTorrent#2890
* Add a permission to hide all torrent options by fffe in Novik/ruTorrent#2868
* Mark ruTorrent v5.2 as Stable by stickz in Novik/ruTorrent#2891

## New Contributors
* pekman made their first contribution in Novik/ruTorrent#2806
* rozhuk-im made their first contribution in Novik/ruTorrent#2881

**Full Changelog**: Novik/ruTorrent@v5.1.7...v5.2.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.