[enh] oscar_template: improve result visualisation

* highlight parts of result
* add link to archiv.to
* fix little bugs
* add little icons
* change style of "show map" button
This commit is contained in:
Thomas Pointhuber 2014-11-03 10:39:47 +01:00
parent b2c976a5a3
commit 2e7723a6c1
10 changed files with 66 additions and 17 deletions

View File

@ -55,8 +55,8 @@
.leaflet-touch .leaflet-control-zoom-in{font-size:22px} .leaflet-touch .leaflet-control-zoom-in{font-size:22px}
.leaflet-touch .leaflet-control-zoom-out{font-size:24px} .leaflet-touch .leaflet-control-zoom-out{font-size:24px}
.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,0.4);background:#fff;border-radius:5px} .leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,0.4);background:#fff;border-radius:5px}
.leaflet-control-layers-toggle{background-image:url(images/layers.png);width:36px;height:36px} .leaflet-control-layers-toggle{background-image:url(../img/map/layers.png);width:36px;height:36px}
.leaflet-retina .leaflet-control-layers-toggle{background-image:url(images/layers-2x.png);background-size:26px 26px} .leaflet-retina .leaflet-control-layers-toggle{background-image:url(../img/map/layers-2x.png);background-size:26px 26px}
.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px} .leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}
.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none} .leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}
.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative} .leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}

View File

@ -3,11 +3,15 @@ body{margin-bottom:80px}
.footer{position:absolute;bottom:0;width:100%;height:60px} .footer{position:absolute;bottom:0;width:100%;height:60px}
input[type=checkbox]:checked~.label_hide_if_checked{display:none} input[type=checkbox]:checked~.label_hide_if_checked{display:none}
input[type=checkbox]:not(:checked)~.label_hide_if_not_checked{display:none} input[type=checkbox]:not(:checked)~.label_hide_if_not_checked{display:none}
.result_header{margin-bottom:5px;margin-top:20px}.result_header .favicon{margin-bottom:-3px}
.result_header a{vertical-align:bottom}.result_header a .highlight{font-weight:bold}
.result-content .highlight{font-weight:bold}
.result-default{clear:both} .result-default{clear:both}
.result-images{float:left !important} .result-images{float:left !important}
.img-thumbnail{margin:5px;max-height:128px;min-height:128px} .img-thumbnail{margin:5px;max-height:128px;min-height:128px}
.result-videos{clear:both} .result-videos{clear:both}
.result-torrents{clear:both} .result-torrents{clear:both}
.result-map{clear:both}
.suggestion_item{margin:2px 5px} .suggestion_item{margin:2px 5px}
.result_download{margin-right:5px} .result_download{margin-right:5px}
#pagination{margin-top:30px;padding-bottom:50px} #pagination{margin-top:30px;padding-bottom:50px}
@ -15,3 +19,4 @@ input[type=checkbox]:not(:checked)~.label_hide_if_not_checked{display:none}
.infobox .infobox_part:last-child{margin-bottom:0} .infobox .infobox_part:last-child{margin-bottom:0}
.search_categories{margin:10px 0;text-transform:capitalize} .search_categories{margin:10px 0;text-transform:capitalize}
.cursor-text{cursor:text !important} .cursor-text{cursor:text !important}
.cursor-pointer{cursor:pointer !important}

View File

@ -2,3 +2,7 @@
.cursor-text { .cursor-text {
cursor: text !important; cursor: text !important;
} }
.cursor-pointer {
cursor: pointer !important;
}

View File

@ -1,3 +1,27 @@
.result_header {
margin-bottom:5px;
margin-top:20px;
.favicon {
margin-bottom:-3px;
}
a {
vertical-align: bottom;
.highlight {
font-weight:bold;
}
}
}
.result-content {
.highlight {
font-weight:bold;
}
}
// default formating of results // default formating of results
.result-default { .result-default {
clear: both; clear: both;
@ -24,6 +48,11 @@
clear: both; clear: both;
} }
// map formating of results
.result-map {
clear: both;
}
// suggestion // suggestion
.suggestion_item { .suggestion_item {
margin: 2px 5px; margin: 2px 5px;

View File

@ -66,6 +66,6 @@
<script src="{{ url_for('static', filename='js/bootstrap.min.js') }}"></script> <script src="{{ url_for('static', filename='js/bootstrap.min.js') }}"></script>
{% if autocomplete %}<script src="{{ url_for('static', filename='js/typeahead.bundle.min.js') }}"></script>{% endif %} {% if autocomplete %}<script src="{{ url_for('static', filename='js/typeahead.bundle.min.js') }}"></script>{% endif %}
<script src="{{ url_for('static', filename='js/require-2.1.15.min.js') }}"></script> <script src="{{ url_for('static', filename='js/require-2.1.15.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/scripts.js') }}"></script>--> <script src="{{ url_for('static', filename='js/scripts.js') }}"></script>
</body> </body>
</html> </html>

View File

@ -1,8 +1,11 @@
<h3>{% if result['favicon'] %}<img width="32" height="32" class="favicon" src="static/{{ theme }}/img/icons/{{ result['favicon'] }}.png" /> {% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h3> {% from 'oscar/macros.html' import icon %}
<h4 class="result_header">{% if result['favicon'] %}<img width="32" height="32" class="favicon" src="static/{{ theme }}/img/icons/{{ result['favicon'] }}.png" /> {% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h4>
{% if result.publishedDate %}<time class="text-muted" datetime="{{ result.publishedDate }}" pubdate>{{ result.publishedDate }}</time>{% endif %} {% if result.publishedDate %}<time class="text-muted" datetime="{{ result.publishedDate }}" pubdate>{{ result.publishedDate }}</time>{% endif %}
<small><a class="text-info" href="https://web.archive.org/web/{{ result.pretty_url }}">{{ icon('link') }} {{ _('cached') }}</a></small>
{% if result.content %}<p>{{ result.content|safe }}</p>{% endif %} {% if result.content %}<p class="result-content">{{ result.content|safe }}</p>{% endif %}
<div class="clearfix"></div> <div class="clearfix"></div>

View File

@ -11,7 +11,7 @@
</div> </div>
<div class="modal-body"> <div class="modal-body">
<img class="img-responsive center-block" src="{{ result.img_src }}" alt="{{ result.title }}"> <img class="img-responsive center-block" src="{{ result.img_src }}" alt="{{ result.title }}">
{% if result.content %}<p>{{ result.content|safe }}</p>{% endif %} {% if result.content %}<p class="result-content">{{ result.content|safe }}</p>{% endif %}
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<div class="clearfix"></div> <div class="clearfix"></div>

View File

@ -1,12 +1,16 @@
<h3>{% if result['favicon'] %}<img width="32" height="32" class="favicon" src="static/{{ theme }}/img/icons/{{ result['favicon'] }}.png" /> {% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h3> {% from 'oscar/macros.html' import icon %}
<h4 class="result_header">{% if result['favicon'] %}<img width="32" height="32" class="favicon" src="static/{{ theme }}/img/icons/{{ result['favicon'] }}.png" /> {% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h4>
{% if result.publishedDate %}<time class="text-muted" datetime="{{ result.publishedDate }}" pubdate>{{ result.publishedDate }}</time>{% endif %} {% if result.publishedDate %}<time class="text-muted" datetime="{{ result.publishedDate }}" pubdate>{{ result.publishedDate }}</time>{% endif %}
<small><a class="text-info" href="https://web.archive.org/web/{{ result.pretty_url }}">{{ icon('link') }} {{ _('cached') }}</a></small>
{% if (result.latitude and result.longitude) or result.boundingbox %}
<small> &bull; <a class="text-info btn-collapse collapsed searx_init_map cursor-pointer" data-toggle="collapse" data-target="#result-map-{{ index }}" data-leaflet-target="osm-map-{{ index }}" data-map-lon="{{ result.longitude }}" data-map-lat="{{ result.latitude }}" {% if result.boundingbox %}data-map-boundingbox='{{ result.boundingbox|tojson|safe }}'{% endif %} {% if result.geojson %}data-map-geojson='{{ result.geojson|tojson|safe }}'{% endif %} data-btn-text-collapsed="{{ _('show map') }}" data-btn-text-not-collapsed="{{ _('hide map') }}">{{ icon('globe') }} {{ _('show map') }}</a></small>
{% endif %}
{% if result.content %}<p class="result-content">{{ result.content|safe }}</p>{% endif %}
{% if result.content %}<p>{{ result.content|safe }}</p>{% endif %} {% if (result.latitude and result.longitude) or result.boundingbox %}
{% if result.latitude and result.longitude %}
<button type="button" class="btn btn-default btn-collapse collapsed searx_init_map" data-toggle="collapse" data-target="#result-map-{{ index }}" data-leaflet-target="osm-map-{{ index }}" data-map-lon="{{ result.longitude }}" data-map-lat="{{ result.latitude }}" {% if result.boundingbox %}data-map-boundingbox='{{ result.boundingbox|tojson|safe }}'{% endif %} {% if result.geojson %}data-map-geojson='{{ result.geojson|tojson|safe }}'{% endif %} data-btn-text-collapsed="{{ _('Show Map') }}" data-btn-text-not-collapsed="{{ _('Hide Map') }}">{{ _('Show Map') }}</button>
<div class="collapse" id="result-map-{{ index }}"> <div class="collapse" id="result-map-{{ index }}">
<div style="height:300px; width:100%; margin: 10px 0;" id="osm-map-{{ index }}"></div> <div style="height:300px; width:100%; margin: 10px 0;" id="osm-map-{{ index }}"></div>
</div> </div>

View File

@ -1,14 +1,15 @@
{% from 'oscar/macros.html' import icon %} {% from 'oscar/macros.html' import icon %}
<h3>{% if result['favicon'] %}<img width="32" height="32" class="favicon" src="static/{{ theme }}/img/icons/{{ result['favicon'] }}.png" /> {% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h3> <h4 class="result_header">{% if result['favicon'] %}<img width="32" height="32" class="favicon" src="static/{{ theme }}/img/icons/{{ result['favicon'] }}.png" /> {% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h4>
{% if result.publishedDate %}<time class="text-muted" datetime="{{ result.publishedDate }}" pubdate>{{ result.publishedDate }}</time>{% endif %} {% if result.publishedDate %}<time class="text-muted" datetime="{{ result.publishedDate }}" pubdate>{{ result.publishedDate }}</time>{% endif %}
<small><a class="text-info" href="https://web.archive.org/web/{{ result.pretty_url }}">{{ icon('link') }} {{ _('cached') }}</a></small>
<p>{{ icon('transfer') }} {{ _('Seeder') }} <span class="badge">{{ result.seed }}</span>, {{ _('Leecher') }} <span class="badge">{{ result.leech }}</span></p> <p>{{ icon('transfer') }} {{ _('Seeder') }} <span class="badge">{{ result.seed }}</span>, {{ _('Leecher') }} <span class="badge">{{ result.leech }}</span></p>
<p><a href="{{ result.magnetlink }}" class="magnetlink">{{ icon('magnet') }} magnet link</a></p> <p><a href="{{ result.magnetlink }}" class="magnetlink">{{ icon('magnet') }} magnet link</a></p>
{% if result.content %}<p>{{ result.content|safe }}</p>{% endif %} {% if result.content %}<p class="result-content">{{ result.content|safe }}</p>{% endif %}
<div class="clearfix"></div> <div class="clearfix"></div>

View File

@ -1,11 +1,14 @@
<h3>{% if result['favicon'] %}<img width="32" height="32" class="favicon" src="static/{{ theme }}/img/icons/{{ result['favicon'] }}.png" /> {% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h3> {% from 'oscar/macros.html' import icon %}
<h4 class="result_header">{% if result['favicon'] %}<img width="32" height="32" class="favicon" src="static/{{ theme }}/img/icons/{{ result['favicon'] }}.png" /> {% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h4>
{% if result.publishedDate %}<time class="text-muted" datetime="{{ result.publishedDate }}" pubdate>{{ result.publishedDate }}</time>{% endif %} {% if result.publishedDate %}<time class="text-muted" datetime="{{ result.publishedDate }}" pubdate>{{ result.publishedDate }}</time>{% endif %}
<small><a class="text-info" href="https://web.archive.org/web/{{ result.pretty_url }}">{{ icon('link') }} {{ _('cached') }}</a></small>
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<img class="thumbnail col-xs-6 col-sm-4 col-md-4" src="{{ result.thumbnail|safe }}" /> <img class="thumbnail col-xs-6 col-sm-4 col-md-4" src="{{ result.thumbnail|safe }}" />
{% if result.content %}<p class="col-xs-12 col-sm-8 col-md-8">{{ result.content|safe }}</p>{% endif %} {% if result.content %}<p class="col-xs-12 col-sm-8 col-md-8 result-content">{{ result.content|safe }}</p>{% endif %}
</div> </div>
</div> </div>