diff --git a/src/server/internalServer.cpp b/src/server/internalServer.cpp index b787cb03f..a0236f3e6 100644 --- a/src/server/internalServer.cpp +++ b/src/server/internalServer.cpp @@ -628,6 +628,9 @@ std::unique_ptr InternalServer::handle_request(const RequestContext& r if (isEndpointUrl(url, "search")) return handle_search(request); + if (isEndpointUrl(url, "nojs")) + return handle_no_js(request); + if (isEndpointUrl(url, "suggest")) return handle_suggest(request); @@ -756,6 +759,19 @@ std::unique_ptr InternalServer::handle_viewer_settings(const RequestCo return ContentResponse::build(*this, RESOURCE::templates::viewer_settings_js, data, "application/javascript; charset=utf-8"); } +std::unique_ptr InternalServer::handle_no_js(const RequestContext& request) +{ + HTMLDumper htmlDumper(mp_library, mp_nameMapper); + htmlDumper.setRootLocation(m_root); + htmlDumper.setLibraryId(getLibraryId()); + return ContentResponse::build( + *this, + htmlDumper.dumpPlainHTML(), + "text/html; charset=utf-8" + ); +} + + namespace { diff --git a/src/server/internalServer.h b/src/server/internalServer.h index b852afa52..a9e0070c8 100644 --- a/src/server/internalServer.h +++ b/src/server/internalServer.h @@ -131,6 +131,7 @@ class InternalServer { std::unique_ptr handle_catalog_v2_entries(const RequestContext& request, bool partial); std::unique_ptr handle_catalog_v2_complete_entry(const RequestContext& request, const std::string& entryId); std::unique_ptr handle_catalog_v2_categories(const RequestContext& request); + std::unique_ptr handle_no_js(const RequestContext& request); std::unique_ptr handle_catalog_v2_languages(const RequestContext& request); std::unique_ptr handle_catalog_v2_illustration(const RequestContext& request); std::unique_ptr handle_search(const RequestContext& request);