From 7a9780eb90f8d329c3ffc0831d24114010b7f731 Mon Sep 17 00:00:00 2001 From: Veloman Yunkan Date: Thu, 10 Nov 2022 14:11:37 +0400 Subject: [PATCH] kiwix::Suggestions::addFTSearchSuggestion() --- src/server/internalServer.cpp | 17 +---------------- src/tools/otherTools.cpp | 27 +++++++++++++++++++++++++++ src/tools/otherTools.h | 3 +++ 3 files changed, 31 insertions(+), 16 deletions(-) diff --git a/src/server/internalServer.cpp b/src/server/internalServer.cpp index 13b82a2b1..38ec37903 100644 --- a/src/server/internalServer.cpp +++ b/src/server/internalServer.cpp @@ -138,15 +138,6 @@ std::string renderUrl(const std::string& root, const std::string& urlTemplate) return url; } -std::string makeFulltextSearchSuggestion(const std::string& lang, const std::string& queryString) -{ - return i18n::expandParameterizedString(lang, "suggest-full-text-search", - { - {"SEARCH_TERMS", queryString} - } - ); -} - ParameterizedMessage noSuchBookErrorMsg(const std::string& bookName) { return ParameterizedMessage("no-such-book", { {"BOOK_NAME", bookName} }); @@ -717,13 +708,7 @@ std::unique_ptr InternalServer::handle_suggest(const RequestContext& r /* Propose the fulltext search if possible */ if (archive->hasFulltextIndex()) { - MustacheData result; - const auto lang = request.get_user_language(); - result.set("label", makeFulltextSearchSuggestion(lang, queryString)); - result.set("value", queryString + " "); - result.set("kind", "pattern"); - result.set("first", results.is_empty_list()); - results.push_back(result); + results.addFTSearchSuggestion(request.get_user_language(), queryString); } auto data = get_default_data(); diff --git a/src/tools/otherTools.cpp b/src/tools/otherTools.cpp index 82c80c9c3..282c604f1 100644 --- a/src/tools/otherTools.cpp +++ b/src/tools/otherTools.cpp @@ -32,6 +32,7 @@ #endif #include "tools/stringTools.h" +#include "server/i18n.h" #include #include @@ -328,6 +329,21 @@ std::string kiwix::render_template(const std::string& template_str, kainjow::mus return ss.str(); } +namespace +{ + +std::string makeFulltextSearchSuggestion(const std::string& lang, + const std::string& queryString) +{ + return kiwix::i18n::expandParameterizedString(lang, "suggest-full-text-search", + { + {"SEARCH_TERMS", queryString} + } + ); +} + +} // unnamed namespace + kiwix::Suggestions::Suggestions() : kainjow::mustache::data(kainjow::mustache::data::type::list) { @@ -348,3 +364,14 @@ void kiwix::Suggestions::add(const zim::SuggestionItem& suggestion) result.set("first", this->is_empty_list()); this->push_back(result); } + +void kiwix::Suggestions::addFTSearchSuggestion(const std::string& uiLang, + const std::string& queryString) +{ + kainjow::mustache::data result; + result.set("label", makeFulltextSearchSuggestion(uiLang, queryString)); + result.set("value", queryString + " "); + result.set("kind", "pattern"); + result.set("first", this->is_empty_list()); + this->push_back(result); +} diff --git a/src/tools/otherTools.h b/src/tools/otherTools.h index 80d9582a8..9316785d2 100644 --- a/src/tools/otherTools.h +++ b/src/tools/otherTools.h @@ -78,6 +78,9 @@ namespace kiwix Suggestions(); void add(const zim::SuggestionItem& suggestion); + + void addFTSearchSuggestion(const std::string& uiLang, + const std::string& query); }; }