Mojolicious::Routes::Route::detour was deprecated in Mojolicious 8.67
and removed in Mojolicious 9
It was used in Koha::App::Plugin::RESTV1 to connect the "REST API"
Mojolicious app to the other Mojolicious apps (Koha::App::Intranet and
Koha::App::Opac), so it's only a problem when running Koha as a
Mojolicious app.
This patch makes use of the "partial" attribute instead, which does the
same thing.
Test plan:
1. Run `morbo bin/intranet`
2. Point your browser to what morbo says (should be localhost:3000)
3. Log in, and go to Administration » Libraries. This table uses the
REST API, so if you see data in it, that means the API (and the
patch) works
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
IO::Scalar is used in Koha::App::Plugin::CGIBinKoha to create a
filehandle tied to a scalar.
Perl has this feature built in since 5.8.0 so IO::Scalar is not needed
I'm not sure how to test this, since it should behave exactly the same
with or without the patch, but we can at least verify that it doesn't
introduce encoding issues.
Test plan:
1. Run `morbo bin/intranet`
2. Go to http://localhost:3000
3. Create a bibliographic record with some non-latin characters (try
emoji characters for instance). Verify that there is no visible
encoding issues.
4. Save this record as MARCXML and re-import it as a new record using
Tools » Stage MARC records for import. Verify that the new record has
no visible encoding issues
5. `git grep IO::Scalar` should not return any result
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
CGI::Compile calls CGI::initialize_globals before each request, which
resets PARAM_UTF8 to 0
We need to set it back to the correct value
This is the same trick used in debian/templates/plack.psgi
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This patch is a proof-of-concept of Koha as a Mojolicious application
This has several benefits:
- Development setup is easier. No need for apache or nginx. Just run
`morbo bin/intranet` or `morbo bin/opac` and go to
http://localhost:3000 (URL rewrites and static files are handled by
the app)
- apache2/nginx configuration is simpler too (an example of nginx
configuration is included in the patch)
- starman and plack middlewares can still be used for debug or gzip
compression for instance (see app.psgi)
- Using Test::Mojo we can test the whole application, as we do with the
REST API (which is a Mojolicious application too)
- It opens a way for converting CGI scripts into Mojolicious
controllers and actions (even if that's not possible at the moment
because of the authentication code)
It uses the same mechanism as Plack::App::CGIBin to deal with CGI
scripts, so it should be equivalent in terms of performance
How to test ?
- Run `morbo bin/intranet`, then go to http://localhost:3000/ and try to
find bugs. Check the REST API at http://localhost:3000/api/v1
- Run `morbo bin/opac`, then go to http://localhost:3000/ and try to
find bugs. Check the REST API at http://localhost:3000/api/v1
- Run `starman -l :5000 -l :5001` and verify that intranet
(http://localhost:5000) and opac (http://localhost:5001) work normally
- Read the code (and the comments), it's not very long
Signed-off-by: Jerome Charaoui <jcharaoui@cmaisonneuve.qc.ca>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>