kiwix::Suggestions::addFTSearchSuggestion()

This commit is contained in:
Veloman Yunkan 2022-11-10 14:11:37 +04:00
parent 51bd881211
commit 7a9780eb90
3 changed files with 31 additions and 16 deletions

View File

@ -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<Response> 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();

View File

@ -32,6 +32,7 @@
#endif
#include "tools/stringTools.h"
#include "server/i18n.h"
#include <map>
#include <sstream>
@ -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);
}

View File

@ -78,6 +78,9 @@ namespace kiwix
Suggestions();
void add(const zim::SuggestionItem& suggestion);
void addFTSearchSuggestion(const std::string& uiLang,
const std::string& query);
};
}