Feature #42510
openEvaluate the option to add Stimulus as a Javascript framework
0%
Description
Stimulus is part of the Rails ecosystem, it does not have a huge footprint and the integration is quite minimal. Also, it can be integrated incrementally in our existing code base without any breaking change.
In the community, there are a series of components that can be used in order to slowly drop the jQuery UI (at least) dependency. I'm not saying that just replacing jQuery UI with Stimulus is enough, but I think it can make our life easier.
Below some examples:- https://www.stimulus-components.com/
- https://github.com/lazaronixon/css-zero: these components are a front-end starter, but they are depending on Stimulus as well where JS is required.
I made also a basic patch that integrates Stimulus and rewrite the existing functionality of copyTextToClipboard
in Stimulus.
Katsuya HIDAKA written in #42515:
This patch introduces "Stimulus":https://stimulus.hotwired.dev/, a JavaScript framework within the Rails ecosystem, and reimplements the partial quote feature added in #41294 using Stimulus. h3. Why introduce Stimulus? Here's why I propose introducing Stimulus: * The current frontend JavaScript is becoming too complex and harder to develop. application.js is getting large, and everything operates in the global scope. * It will make it easier to begin the migration from jQuery UI, which is no longer being developed. Stimulus helps create UI components in vanilla Rails, and many third-party components are also available. * Stimulus works well with Turbo, which is a strong candidate to replace the deprecated rails-ujs, making future adoption smoother. * Introducing a modern environment can revitalize Redmine development and simply make development more enjoyable. As a next step after introducing Stimulus, I plan to migrate the tooltip implementation to Stimulus to further reduce the dependency on jQuery UI. h3. Implementation * importmap-rails was also introduced to install Stimulus and its necessary libraries. * @bin/rails stimulus:install@ creates app/javascript/application.js by default. To avoid conflicts with the existing app/assets/application.js, I renamed the new file to main.js. * turndown, which is used for the partial quote feature, is now also installed via importmap-rails. * I confirmed that CI builds pass and all system tests are successful.
Files
Related issues
Updated by Katsuya HIDAKA 2 days ago
I strongly support the introduction of Stimulus. I have created #42515 to reimplement the existing quote reply functionality using Stimulus. I would appreciate your feedback.
Updated by Marius BĂLTEANU about 13 hours ago
- Related to Patch #42515: Introduce Stimulus and reimplement partial quote feature added
Updated by Marius BĂLTEANU about 12 hours ago
- File 0001-Introduce-Stimulus-to-facilitate-JavaScript-moderniz.patch 0001-Introduce-Stimulus-to-facilitate-JavaScript-moderniz.patch added
- Description updated (diff)
- Assignee set to Marius BĂLTEANU
- Target version set to Candidate for next major release
Katsuya HIDAKA, I've update the description of this issue with the one provided by you in #42515.
I'm in favour of this move, but being quite an important change, I would like to get feedback from Go MAEDA and someone from Plan.io (Holger Just). Once we decide to integrate this, we can move on to the tickets that rewrite existing functionality.
I've created a patch that only integrates Stimulus without any other change.
Updated by Marius BĂLTEANU about 12 hours ago
- Related to Patch #42521: Reimplement modal dialog with Stimulus added