diff --git a/src/server/internalServer.cpp b/src/server/internalServer.cpp index 05c2d559c..8d1b5027a 100644 --- a/src/server/internalServer.cpp +++ b/src/server/internalServer.cpp @@ -447,6 +447,11 @@ std::string noSuchBookErrorMsg(const std::string& bookName) return "No such book: " + bookName; } +std::string noSearchResultsMsg() +{ + return "The fulltext search engine is not available for this content."; +} + } // unnamed namespace std::unique_ptr InternalServer::handle_suggest(const RequestContext& request) @@ -591,12 +596,12 @@ std::unique_ptr InternalServer::handle_search(const RequestContext& re } catch(std::runtime_error& e) { // Searcher->search will throw a runtime error if there is no valid xapian database to do the search. // (in case of zim file not containing a index) - auto data = get_default_data(); - data.set("pattern", encodeDiples(searchInfo.pattern)); - auto response = ContentResponse::build(*this, RESOURCE::templates::no_search_result_html, data, "text/html; charset=utf-8"); - response->set_code(MHD_HTTP_NOT_FOUND); - response->set_taskbar(searchInfo.bookName, archive.get()); - return std::move(response); + return HTTPErrorHtmlResponse(*this, request, MHD_HTTP_NOT_FOUND, + "Fulltext search unavailable", + "Not Found", + m_root + "/skin/search_results.css") + + noSearchResultsMsg() + + TaskbarInfo(searchInfo.bookName, archive.get()); } diff --git a/static/resources_list.txt b/static/resources_list.txt index 7444c48ae..15275ad19 100644 --- a/static/resources_list.txt +++ b/static/resources_list.txt @@ -34,7 +34,6 @@ skin/fonts/Roboto.ttf skin/block_external.js skin/search_results.css templates/search_result.html -templates/no_search_result.html templates/error.html templates/index.html templates/suggestion.json diff --git a/static/skin/search_results.css b/static/skin/search_results.css index 8fb0a84b1..9fc107e9c 100644 --- a/static/skin/search_results.css +++ b/static/skin/search_results.css @@ -18,7 +18,7 @@ a:hover { text-decoration: underline } -.header { +h1 { font-size: 120%; } diff --git a/static/templates/no_search_result.html b/static/templates/no_search_result.html deleted file mode 100644 index baa7aa2c7..000000000 --- a/static/templates/no_search_result.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - Fulltext search unavailable - - - -
Not found
-

- There is no article with the title "{{pattern}}" - and the fulltext search engine is not available for this content. -

- - diff --git a/test/server.cpp b/test/server.cpp index de36057cd..d4056dda0 100644 --- a/test/server.cpp +++ b/test/server.cpp @@ -686,6 +686,18 @@ TEST_F(ServerTest, 404WithBodyTesting) Cannot find content entry invalid-article

)" }, + + { /* url */ "/ROOT/search?content=poor&pattern=whatever", + expected_page_title=="Fulltext search unavailable" && + expected_css_url=="/ROOT/skin/search_results.css" && + book_name=="poor" && + book_title=="poor" && + expected_body==R"( +

Not Found

+

+ The fulltext search engine is not available for this content. +

+)" }, }; for ( const auto& t : testData ) {