mirror of https://github.com/kiwix/libkiwix.git
Add widget endpoint
Adds an endpoint /widget to provide kiwix serve widget.
This commit is contained in:
parent
489dfc1123
commit
efe42c9bbe
|
@ -577,6 +577,9 @@ std::unique_ptr<Response> InternalServer::handle_request(const RequestContext& r
|
||||||
if (isEndpointUrl(url, "catch"))
|
if (isEndpointUrl(url, "catch"))
|
||||||
return handle_catch(request);
|
return handle_catch(request);
|
||||||
|
|
||||||
|
if (isEndpointUrl(url, "widget"))
|
||||||
|
return handle_widget(request);
|
||||||
|
|
||||||
std::string contentUrl = m_root + "/content" + url;
|
std::string contentUrl = m_root + "/content" + url;
|
||||||
const std::string query = request.get_query();
|
const std::string query = request.get_query();
|
||||||
if ( ! query.empty() )
|
if ( ! query.empty() )
|
||||||
|
@ -866,6 +869,11 @@ std::unique_ptr<Response> InternalServer::handle_random(const RequestContext& re
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::unique_ptr<Response> InternalServer::handle_widget(const RequestContext& request)
|
||||||
|
{
|
||||||
|
return ContentResponse::build(*this, RESOURCE::templates::widget_html, get_default_data(), "text/html; charset=utf-8", true);
|
||||||
|
}
|
||||||
|
|
||||||
std::unique_ptr<Response> InternalServer::handle_captured_external(const RequestContext& request)
|
std::unique_ptr<Response> InternalServer::handle_captured_external(const RequestContext& request)
|
||||||
{
|
{
|
||||||
std::string source = "";
|
std::string source = "";
|
||||||
|
|
|
@ -143,6 +143,7 @@ class InternalServer {
|
||||||
std::unique_ptr<Response> handle_content(const RequestContext& request);
|
std::unique_ptr<Response> handle_content(const RequestContext& request);
|
||||||
std::unique_ptr<Response> handle_raw(const RequestContext& request);
|
std::unique_ptr<Response> handle_raw(const RequestContext& request);
|
||||||
std::unique_ptr<Response> handle_locally_customized_resource(const RequestContext& request);
|
std::unique_ptr<Response> handle_locally_customized_resource(const RequestContext& request);
|
||||||
|
std::unique_ptr<Response> handle_widget(const RequestContext& request);
|
||||||
|
|
||||||
std::vector<std::string> search_catalog(const RequestContext& request,
|
std::vector<std::string> search_catalog(const RequestContext& request,
|
||||||
kiwix::OPDSDumper& opdsDumper);
|
kiwix::OPDSDumper& opdsDumper);
|
||||||
|
|
|
@ -9,6 +9,7 @@ skin/iso6391To3.js
|
||||||
skin/isotope.pkgd.min.js
|
skin/isotope.pkgd.min.js
|
||||||
skin/index.js
|
skin/index.js
|
||||||
skin/autoComplete.min.js
|
skin/autoComplete.min.js
|
||||||
|
skin/widget.js
|
||||||
skin/taskbar.css
|
skin/taskbar.css
|
||||||
skin/index.css
|
skin/index.css
|
||||||
skin/fonts/Poppins.ttf
|
skin/fonts/Poppins.ttf
|
||||||
|
@ -20,6 +21,7 @@ templates/search_result.xml
|
||||||
templates/error.html
|
templates/error.html
|
||||||
templates/error.xml
|
templates/error.xml
|
||||||
templates/index.html
|
templates/index.html
|
||||||
|
templates/widget.html
|
||||||
templates/suggestion.json
|
templates/suggestion.json
|
||||||
templates/head_taskbar.html
|
templates/head_taskbar.html
|
||||||
templates/taskbar_part.html
|
templates/taskbar_part.html
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
// To be updated
|
|
@ -0,0 +1,64 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
||||||
|
<title>Welcome to Kiwix Server</title>
|
||||||
|
<link
|
||||||
|
type="text/css"
|
||||||
|
href="{{root}}/skin/index.css?KIWIXCACHEID"
|
||||||
|
rel="Stylesheet"
|
||||||
|
/>
|
||||||
|
<style>
|
||||||
|
@font-face {
|
||||||
|
font-family: "poppins";
|
||||||
|
src: url("{{root}}/skin/fonts/Poppins.ttf?KIWIXCACHEID") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "roboto";
|
||||||
|
src: url("{{root}}/skin/fonts/Roboto.ttf?KIWIXCACHEID") format("truetype");
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script src="{{root}}/skin/isotope.pkgd.min.js?KIWIXCACHEID" defer></script>
|
||||||
|
<script src="{{root}}/skin/iso6391To3.js?KIWIXCACHEID"></script>
|
||||||
|
<script type="text/javascript" src="{{root}}/skin/index.js?KIWIXCACHEID" defer></script>
|
||||||
|
<script type="text/javascript" src="{{root}}/skin/widget.js?KIWIXCACHEID" defer></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class='kiwixNav'>
|
||||||
|
<div class="kiwixNav__filters">
|
||||||
|
<div class="kiwixNav__select">
|
||||||
|
<select name="lang" id="languageFilter" class='kiwixNav__kiwixFilter filter'>
|
||||||
|
<option value="" selected>All languages</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="kiwixNav__select">
|
||||||
|
<select name="category" id="categoryFilter" class='kiwixNav__kiwixFilter filter'>
|
||||||
|
<option value="" selected>All categories</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<form id='kiwixSearchForm' class='kiwixNav__SearchForm'>
|
||||||
|
<input type="text" name="q" placeholder="Search" id="searchFilter" class='kiwixSearch filter'>
|
||||||
|
<span class="kiwixButton tagFilterLabel"></span>
|
||||||
|
<input type="submit" class="kiwixButton kiwixButtonHover" value="Search"/>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="kiwixHomeBody">
|
||||||
|
<div class="book__list">
|
||||||
|
<h3 class="kiwixHomeBody__results"></h3>
|
||||||
|
</div>
|
||||||
|
<div id="fadeOut" class="fadeOut"></div>
|
||||||
|
</div>
|
||||||
|
<div class="loader" style="position: absolute; top: 50%"><div class="loader-spinner"></div></div>
|
||||||
|
<div id="kiwixfooter" class="kiwixfooter">Powered by <a href="https://kiwix.org">Kiwix</a></div>
|
||||||
|
</body>
|
||||||
|
<script>
|
||||||
|
function closeModal() {
|
||||||
|
for(modal of document.getElementsByClassName('modal-wrapper')) {
|
||||||
|
modal.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</html>
|
Loading…
Reference in New Issue