Issue: Tags on morgue classes do not properly apply filters when clicked. They redirect to a route that Sidekiq does not service.
Steps to reproduce:
0. Create an app running Sidekiq.
0. Kill a job with a tag.
0. Click on the tag in the web UI.
0. Observe that the tag does not redirect to a route serviced by Sidekiq Rack app. Depending on how host app is configured, route will 404, redirect, or do something else as it falls through.
Root cause:
- It looks like Sidekiq Pro mounts the routes `/filter/dead` but the `display_tags` method links to `/filter/morgue`.
Notes:
- There might be other ways of fixing this problem, like change the `/filter/dead` to `/filter/morgue`.
Let me know if there's any other info needed or test cases we can provide!
* Improve dark Web UI
Add a lot more contrast to various UI elements. This is a lot more usable to my old eyes.
* Remove table-white
* More constrast fixes
* Unminify rickshaw graph CSS so we can maintain it
* Initial BiDi support for the Web UI
BiDi means the web app can serve both LTR and RTL languages at the same time.
1. Bootstrap-RTL overrides Bootstrap 3.3 styles for RTL clients
2. Application CSS was preprocessed thru rtlcss and then hand-trimmed to contain only RTL-specific directives.
3. Dashboard was tweaked to hardcode LTR for footer and polling gadget
* Vendor bootstrap-rtl.css
* Various RTL style fixes, need to flip all pull-* elements
* Upgrade Rickshaw to latest, remove dupe CSS
* Add Arabic language (credit to Milena Novakova)
Add Hebrew placeholder
Added dir attribute to html tag
* changes
* Clean up HTTP header generation, add Content-Language response header
* Use correct locale for hebrew
Migrate Sidekiq::Web a pure Rack application to avoid sinatra as
dependency. rack-protection is still needed.
The application is mounted on top of Rack::Builder, mantaining all of
the previous http interface.
Rack apps being used:
- Rack::File to serve assets
- Rack::Session::Cookie, the secret can be configured via
Sidekiq::Web.session_secret
- Rack::Protection, same as before when using sinatra
- Sidekiq::WebApplication, described below.
Sidekiq::WebApplication is a very simple rack application composed of a
Sidekiq::WebRouter and a Sidekiq::WebAction dispatcher. This terminology
was adopted to be able to mantain Sidekiq::Web as a Rack app.
The Router is heavily inspired on Rack::Router[0] (and in many parts
identical), however not being retrocompatible.
The Action is a wrapper to provide convenience, DRY code and maintain
the old interface.
I tried to mantain most of the old application structures so that
customizations and monkey-patches are easily adjustable or even
further work be done to enforce retrocompatibility.
Testing welcome!
0: https://github.com/pjb3/rack-router
No more massive numbers of Sidekiq::Extensions::DelayedClass jobs! Now you’ll see the underlying Class.method call instead so the UI is much more intuitive.
This might also be necessary for ActiveJob.