diff --git a/searx/static/themes/oscar/css/logicodev-dark.css b/searx/static/themes/oscar/css/logicodev-dark.css index 732b70e64..99e9c2a22 100644 --- a/searx/static/themes/oscar/css/logicodev-dark.css +++ b/searx/static/themes/oscar/css/logicodev-dark.css @@ -324,6 +324,36 @@ input[type=checkbox]:not(:checked) + .label_hide_if_checked + .label_hide_if_not .infobox .infobox_part:last-child { margin-bottom: 0; } +.infobox .infobox_toggle { + width: 100%; + text-align: center; + margin-bottom: 0px; +} +.infobox .infobox_checkbox ~ .infobox_body { + max-height: 300px; + overflow: hidden; +} +.infobox .infobox_checkbox:checked ~ .infobox_body { + max-height: none; +} +.infobox .infobox_checkbox ~ .infobox_toggle .infobox_label_down { + display: block; +} +.infobox .infobox_checkbox ~ .infobox_toggle .infobox_label_up { + display: none; +} +.infobox .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_up { + display: block; +} +.infobox .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_down { + display: none; +} +.infobox .infobox_checkbox ~ .infobox_body img.infobox_part { + display: none; +} +.infobox .infobox_checkbox:checked ~ .infobox_body img.infobox_part { + display: block; +} .search_categories, #categories { text-transform: capitalize; diff --git a/searx/static/themes/oscar/css/logicodev-dark.min.css b/searx/static/themes/oscar/css/logicodev-dark.min.css index bd5d00d0c..04c3561b9 100644 Binary files a/searx/static/themes/oscar/css/logicodev-dark.min.css and b/searx/static/themes/oscar/css/logicodev-dark.min.css differ diff --git a/searx/static/themes/oscar/css/logicodev.css b/searx/static/themes/oscar/css/logicodev.css index 00dfe3e97..5d0a223a6 100644 --- a/searx/static/themes/oscar/css/logicodev.css +++ b/searx/static/themes/oscar/css/logicodev.css @@ -297,6 +297,36 @@ input[type=checkbox]:not(:checked) + .label_hide_if_checked + .label_hide_if_not .infobox .infobox_part:last-child { margin-bottom: 0; } +.infobox .infobox_toggle { + width: 100%; + text-align: center; + margin-bottom: 0px; +} +.infobox .infobox_checkbox ~ .infobox_body { + max-height: 300px; + overflow: hidden; +} +.infobox .infobox_checkbox:checked ~ .infobox_body { + max-height: none; +} +.infobox .infobox_checkbox ~ .infobox_toggle .infobox_label_down { + display: block; +} +.infobox .infobox_checkbox ~ .infobox_toggle .infobox_label_up { + display: none; +} +.infobox .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_up { + display: block; +} +.infobox .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_down { + display: none; +} +.infobox .infobox_checkbox ~ .infobox_body img.infobox_part { + display: none; +} +.infobox .infobox_checkbox:checked ~ .infobox_body img.infobox_part { + display: block; +} .search_categories, #categories { text-transform: capitalize; diff --git a/searx/static/themes/oscar/css/logicodev.min.css b/searx/static/themes/oscar/css/logicodev.min.css index c1f03d8a2..8c2bcdc5b 100644 Binary files a/searx/static/themes/oscar/css/logicodev.min.css and b/searx/static/themes/oscar/css/logicodev.min.css differ diff --git a/searx/static/themes/oscar/css/pointhi.css b/searx/static/themes/oscar/css/pointhi.css index 073d2c4f0..4cfecb70a 100644 --- a/searx/static/themes/oscar/css/pointhi.css +++ b/searx/static/themes/oscar/css/pointhi.css @@ -173,6 +173,36 @@ input[type=checkbox]:not(:checked) + .label_hide_if_checked + .label_hide_if_not text-overflow: ellipsis; display: block; } +.infobox .infobox_toggle { + width: 100%; + text-align: center; + margin-bottom: 0px; +} +.infobox .infobox_checkbox ~ .infobox_body { + max-height: 300px; + overflow: hidden; +} +.infobox .infobox_checkbox:checked ~ .infobox_body { + max-height: none; +} +.infobox .infobox_checkbox ~ .infobox_toggle .infobox_label_down { + display: block; +} +.infobox .infobox_checkbox ~ .infobox_toggle .infobox_label_up { + display: none; +} +.infobox .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_up { + display: block; +} +.infobox .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_down { + display: none; +} +.infobox .infobox_checkbox ~ .infobox_body img.infobox_part { + display: none; +} +.infobox .infobox_checkbox:checked ~ .infobox_body img.infobox_part { + display: block; +} .search_categories, #categories { text-transform: capitalize; diff --git a/searx/static/themes/oscar/css/pointhi.min.css b/searx/static/themes/oscar/css/pointhi.min.css index f6cc3d8d8..fae65aaf4 100644 Binary files a/searx/static/themes/oscar/css/pointhi.min.css and b/searx/static/themes/oscar/css/pointhi.min.css differ diff --git a/searx/static/themes/oscar/js/searx.js b/searx/static/themes/oscar/js/searx.js index 040d57bb1..543c7775c 100644 --- a/searx/static/themes/oscar/js/searx.js +++ b/searx/static/themes/oscar/js/searx.js @@ -204,6 +204,17 @@ $(document).ready(function(){ $(a.target).parent().attr("aria-selected", "true"); }); }); +;$(document).ready(function() { + // Hide infobox toggle if shrunk size already fits all content. + $('.infobox').each(function() { + var infobox_body = $(this).find('.infobox_body'); + var total_height = infobox_body.prop('scrollHeight') + infobox_body.find('img.infobox_part').height(); + var max_height = infobox_body.css('max-height').replace('px', ''); + if (total_height <= max_height) { + $(this).find('.infobox_toggle').hide(); + } + }); +}); ;/** * searx is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by diff --git a/searx/static/themes/oscar/js/searx.min.js b/searx/static/themes/oscar/js/searx.min.js index a6ba8b336..e2d751a19 100644 Binary files a/searx/static/themes/oscar/js/searx.min.js and b/searx/static/themes/oscar/js/searx.min.js differ diff --git a/searx/static/themes/oscar/js/searx_src/infobox.js b/searx/static/themes/oscar/js/searx_src/infobox.js new file mode 100644 index 000000000..0c80bf37b --- /dev/null +++ b/searx/static/themes/oscar/js/searx_src/infobox.js @@ -0,0 +1,11 @@ +$(document).ready(function() { + // Hide infobox toggle if shrunk size already fits all content. + $('.infobox').each(function() { + var infobox_body = $(this).find('.infobox_body'); + var total_height = infobox_body.prop('scrollHeight') + infobox_body.find('img.infobox_part').height(); + var max_height = infobox_body.css('max-height').replace('px', ''); + if (total_height <= max_height) { + $(this).find('.infobox_toggle').hide(); + } + }); +}); diff --git a/searx/static/themes/oscar/less/logicodev/infobox.less b/searx/static/themes/oscar/less/logicodev/infobox.less index 08a1d326e..e3582dffc 100644 --- a/searx/static/themes/oscar/less/logicodev/infobox.less +++ b/searx/static/themes/oscar/less/logicodev/infobox.less @@ -45,4 +45,43 @@ .infobox_part:last-child { margin-bottom: 0; } + + .infobox_toggle { + width: 100%; + text-align: center; + margin-bottom: 0px; + } + + // Shrink infobox size when toggle is off + .infobox_checkbox ~ .infobox_body { + max-height: 300px; + overflow: hidden; + } + .infobox_checkbox:checked ~ .infobox_body { + max-height: none; + } + + // Show toggle button as down when infobox is shrunk + .infobox_checkbox ~ .infobox_toggle .infobox_label_down { + display: block; + } + .infobox_checkbox ~ .infobox_toggle .infobox_label_up { + display: none; + } + + // Show toggle button as up when infobox is expanded + .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_up { + display: block; + } + .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_down { + display: none; + } + + // Hide main image when toggle is off + .infobox_checkbox ~ .infobox_body img.infobox_part { + display: none; + } + .infobox_checkbox:checked ~ .infobox_body img.infobox_part { + display: block; + } } diff --git a/searx/static/themes/oscar/less/pointhi/infobox.less b/searx/static/themes/oscar/less/pointhi/infobox.less index 226941706..e6a55e944 100644 --- a/searx/static/themes/oscar/less/pointhi/infobox.less +++ b/searx/static/themes/oscar/less/pointhi/infobox.less @@ -1,5 +1,6 @@ .infobox { - img{ + + img { max-height: 250px; } @@ -19,4 +20,43 @@ text-overflow: ellipsis; display: block; } + + .infobox_toggle { + width: 100%; + text-align: center; + margin-bottom: 0px; + } + + // Shrink infobox size when toggle is off + .infobox_checkbox ~ .infobox_body { + max-height: 300px; + overflow: hidden; + } + .infobox_checkbox:checked ~ .infobox_body { + max-height: none; + } + + // Show toggle button as down when infobox is shrunk + .infobox_checkbox ~ .infobox_toggle .infobox_label_down { + display: block; + } + .infobox_checkbox ~ .infobox_toggle .infobox_label_up { + display: none; + } + + // Show toggle button as up when infobox is expanded + .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_up { + display: block; + } + .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_down { + display: none; + } + + // Hide main image when toggle is off + .infobox_checkbox ~ .infobox_body img.infobox_part { + display: none; + } + .infobox_checkbox:checked ~ .infobox_body img.infobox_part { + display: block; + } } diff --git a/searx/templates/oscar/infobox.html b/searx/templates/oscar/infobox.html index 0c7a2e0a0..5ba4aa5f0 100644 --- a/searx/templates/oscar/infobox.html +++ b/searx/templates/oscar/infobox.html @@ -11,7 +11,8 @@ {% for u in infobox.urls %}{% if u.official %} {{ u.url }}{% endif %}{% endfor %} -
+ +
{% if infobox.img_src %}{% endif %} {% if infobox.content %}

{{ infobox.content | safe }}

{% endif %} @@ -45,4 +46,8 @@
{% endif %}
+