mirror of https://github.com/searxng/searxng.git
Merge pull request #793 from kvch/pics-modal
CSS modal window for image results
This commit is contained in:
commit
bff41987a4
|
@ -4,9 +4,13 @@ $(document).ready(function() {
|
||||||
if ($(document).height() - win.height() == win.scrollTop()) {
|
if ($(document).height() - win.height() == win.scrollTop()) {
|
||||||
var formData = $('#pagination form:last').serialize();
|
var formData = $('#pagination form:last').serialize();
|
||||||
if (formData) {
|
if (formData) {
|
||||||
|
var pageno = $('#pagination input[name=pageno]:last').attr('value');
|
||||||
$('#pagination').html('<div class="loading-spinner"></div>');
|
$('#pagination').html('<div class="loading-spinner"></div>');
|
||||||
$.post('./', formData, function (data) {
|
$.post('./', formData, function (data) {
|
||||||
|
var lastImageHref = $('.result-images:last a').attr('href');
|
||||||
var body = $(data);
|
var body = $(data);
|
||||||
|
$('a[href^="#open-modal"]:last').attr('href', '#open-modal-1-' + pageno);
|
||||||
|
body.find('.modal-image a:first').attr('href', lastImageHref);
|
||||||
$('#pagination').remove();
|
$('#pagination').remove();
|
||||||
$('#main_results').append('<hr/>');
|
$('#main_results').append('<hr/>');
|
||||||
$('#main_results').append(body.find('.result'));
|
$('#main_results').append(body.find('.result'));
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,61 @@
|
||||||
|
.modal-image {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
background: rgba(0,0,0,0.8);
|
||||||
|
z-index: 1000000001;
|
||||||
|
opacity:0 !important;
|
||||||
|
pointer-events: none;
|
||||||
|
|
||||||
|
button {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:target {
|
||||||
|
opacity: 1 !important;
|
||||||
|
pointer-events: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
& > div {
|
||||||
|
margin: 2% auto;
|
||||||
|
width: 97%;
|
||||||
|
background: @dim-gray;
|
||||||
|
border: @gray 0.1rem solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 769px) {
|
||||||
|
& > div {
|
||||||
|
max-width: 60.0rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.image-paging-left {
|
||||||
|
font-size: 2.2rem;
|
||||||
|
padding-right: 1.0rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image-paging-right {
|
||||||
|
font-size: 2.2rem;
|
||||||
|
padding-left: 1.2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image-container::before {
|
||||||
|
display: block;
|
||||||
|
min-width: 1.0rem;
|
||||||
|
max-width: 60.0rem;
|
||||||
|
min-height: 10.0rem;
|
||||||
|
height: 30.0rem;
|
||||||
|
content: "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-close {
|
||||||
|
position:fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
height: 100% !important;
|
||||||
|
width: 100% !important;
|
||||||
|
z-index: -1;
|
||||||
|
}
|
|
@ -19,3 +19,5 @@
|
||||||
@import "cursor.less";
|
@import "cursor.less";
|
||||||
|
|
||||||
@import "code.less";
|
@import "code.less";
|
||||||
|
|
||||||
|
@import "modal-pic.less";
|
||||||
|
|
|
@ -17,3 +17,7 @@
|
||||||
@import "code.less";
|
@import "code.less";
|
||||||
|
|
||||||
@import "navbar.less";
|
@import "navbar.less";
|
||||||
|
|
||||||
|
@import "../logicodev/variables.less";
|
||||||
|
|
||||||
|
@import "../logicodev/modal-pic.less";
|
||||||
|
|
|
@ -1,39 +1,54 @@
|
||||||
{% from 'oscar/macros.html' import draw_favicon %}
|
<a href="#open-modal-{{ index }}-{{ pageno }}">
|
||||||
|
<img src="{% if result.thumbnail_src %}{{ image_proxify(result.thumbnail_src) }}{% else %}{{ image_proxify(result.img_src) }}{% endif %}" alt="{{ result.title|striptags }}" title="{{ result.title|striptags }}" class="img-thumbnail" id="img-result-thumb-{{ index }}" />
|
||||||
<a href="{{ result.img_src }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} data-toggle="modal" data-target="#modal-{{ index }}-{{pageno}}">
|
|
||||||
<img src="{% if result.thumbnail_src %}{{ image_proxify(result.thumbnail_src) }}{% else %}{{ image_proxify(result.img_src) }}{% endif %}" alt="{{ result.title|striptags }}" title="{{ result.title|striptags }}" class="img-thumbnail">
|
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<div class="modal fade" id="modal-{{ index }}-{{ pageno }}" tabindex="-1" role="dialog" aria-hidden="true">
|
<style type="text/css" media="screen">
|
||||||
<div class="modal-dialog">
|
#open-modal-{{ index }}-{{ pageno }}:target .image-container::before {
|
||||||
<div class="modal-wrapper">
|
background: url({{ image_proxify(result.img_src)|safe }}) no-repeat center/contain;
|
||||||
<div class="modal-header">
|
}
|
||||||
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
</style>
|
||||||
<h4 class="modal-title">{% if result.engine~".png" in favicons %}{{ draw_favicon(result.engine) }} {% endif %}{{ result.title|striptags }}</h4>
|
|
||||||
</div>
|
<div id="open-modal-{{ index }}-{{ pageno }}" class="modal-image">
|
||||||
<div class="modal-body">
|
<div class="container modal-dialog">
|
||||||
<img class="img-responsive center-block" src="{% if result.thumbnail_src %}{{ image_proxify(result.thumbnail_src) }}{% else %}{{ image_proxify(result.img_src) }}{% endif %}" alt="{{ result.title|striptags }}">
|
|
||||||
{% if result.author %}<span class="photo-author">{{ result.author }}</span><br />{% endif %}
|
|
||||||
{% if result.content %}
|
|
||||||
<p class="result-content">
|
|
||||||
{{ result.content }}
|
|
||||||
</p>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<div class="clearfix"></div>
|
|
||||||
<span class="label label-default pull-right">{{ result.engine }}</span>
|
|
||||||
<p class="text-muted pull-left">{{ result.pretty_url }}</p>
|
|
||||||
<div class="clearfix"></div>
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-12 col-sm-12 col-xs-12 modal-header">
|
||||||
<a href="{{ result.img_src }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} class="btn btn-default">{{ _('Get image') }}</a>
|
<a {% if index != 1 %}href="#open-modal-{{ index-1 }}-{{ pageno }}"{% endif %}>
|
||||||
</div>
|
<span class="pull-left glyphicon glyphicon-chevron-left image-paging-left"></span>
|
||||||
<div class="col-md-6">
|
</a>
|
||||||
<a href="{{ result.url }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} class="btn btn-default">{{ _('View source') }}</a>
|
<a href="#open-modal-{{ index+1 }}-{{ pageno }}">
|
||||||
</div>
|
<span class="image-paging-right pull-right glyphicon glyphicon-chevron-right"></span>
|
||||||
|
</a>
|
||||||
|
<h4 class="modal-title image-title">{{ result.title|striptags }}</h4>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12 col-sm-12 col-xs-12 modal-body">
|
||||||
|
<a href="{{ result.img_src }}" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %}><div class="image-container"></div></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% if result.content %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12 hidden-sm hidden-xs modal-body">
|
||||||
|
<p class="result-content">{{ result.content|safe }}</p>
|
||||||
|
{% if result.author %}<span class="photo-author">{{ result.author }}</span><br />{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
<div class="modal-footer">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-10 col-xs-12">
|
||||||
|
<p class="text-muted pull-left">{{ result.pretty_url }}</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2 hidden-sm hidden-xs">
|
||||||
|
<span class="label label-default pull-right">{{ result.engine }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<a href="{{ result.url }}" class="btn btn-default">
|
||||||
|
{{ _('View source') }}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<a href="#img-result-thumb-{{ index }}-{{ pageno }}" class="modal-close"></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue