Add search_embed for bringing search iframes to other pages.
This commit is contained in:
parent
732c054075
commit
0c3ee6f2d2
6 changed files with 86 additions and 6 deletions
|
@ -452,6 +452,17 @@ def get_search_core():
|
|||
}
|
||||
return final_results
|
||||
|
||||
@site.route('/search_embed')
|
||||
def get_search_embed():
|
||||
search_results = get_search_core()
|
||||
response = common.render_template(
|
||||
request,
|
||||
'search_embed.html',
|
||||
results=search_results['results'],
|
||||
search_kwargs=search_results['search_kwargs'],
|
||||
)
|
||||
return response
|
||||
|
||||
@site.route('/search')
|
||||
def get_search_html():
|
||||
search_results = get_search_core()
|
||||
|
|
|
@ -15,6 +15,13 @@ input, select, textarea
|
|||
border-radius: 2px;
|
||||
}
|
||||
|
||||
iframe.embedded_search
|
||||
{
|
||||
width: 100%;
|
||||
max-height: 500px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.header_element:hover
|
||||
{
|
||||
background-color: var(--color_secondary);
|
||||
|
|
|
@ -165,6 +165,12 @@ function html_to_element(html)
|
|||
return template.content.firstElementChild;
|
||||
}
|
||||
|
||||
common.size_iframe_to_content =
|
||||
function size_iframe_to_content(iframe)
|
||||
{
|
||||
iframe.style.height = iframe.contentWindow.document.documentElement.scrollHeight + 'px';
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// HOOKS & ADD-ONS /////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
31
frontends/etiquette_flask/templates/search_embed.html
Normal file
31
frontends/etiquette_flask/templates/search_embed.html
Normal file
|
@ -0,0 +1,31 @@
|
|||
<!DOCTYPE html5>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="/static/css/common.css">
|
||||
<link rel="stylesheet" href="/static/css/etiquette.css">
|
||||
<link rel="stylesheet" href="/static/css/photo_card.css">
|
||||
{% if theme %}<link rel="stylesheet" href="/static/css/theme_{{theme}}.css">{% endif %}
|
||||
|
||||
<style>
|
||||
body
|
||||
{
|
||||
background-color: initial;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div>
|
||||
{% import "photo_card.html" as photo_card %}
|
||||
{% import "album_card.html" as album_card %}
|
||||
{% for result in results %}
|
||||
{% if result.__class__.__name__ == 'Photo' %}
|
||||
{{photo_card.create_photo_card(result, view=search_kwargs["view"])}}
|
||||
{% elif result.__class__.__name__ == 'Album' %}
|
||||
{{album_card.create_album_card(result, view=search_kwargs["view"])}}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -233,6 +233,18 @@ h2, h3
|
|||
</div>
|
||||
{% endif %} <!-- if synonyms -->
|
||||
{% endif %} <!-- if specific tag and include synonyms -->
|
||||
|
||||
{% if specific_tag %}
|
||||
<div id="hierarchy_recentphotos" class="panel">
|
||||
<h3><a href="/search?tag_musts={{specific_tag.name}}&orderby=tagged_at-desc">Recent photos</a></h3>
|
||||
<iframe
|
||||
class="embedded_search"
|
||||
src="/search_embed?tag_musts={{specific_tag.name}}&orderby=tagged_at-desc&yield_albums=no&limit=10"
|
||||
onload="return common.size_iframe_to_content(this);"
|
||||
>
|
||||
</iframe>
|
||||
</div>
|
||||
{% endif %} <!-- if specific tag -->
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -14,10 +14,15 @@
|
|||
<script src="/static/js/spinner.js"></script>
|
||||
|
||||
<style>
|
||||
h2, h3
|
||||
{
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
#content_body
|
||||
{
|
||||
/* overriding common.css here */
|
||||
display: block;
|
||||
grid-row-gap: 8px;
|
||||
grid-auto-rows: max-content;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
@ -26,10 +31,18 @@
|
|||
{{header.make_header(session=session)}}
|
||||
<div id="content_body">
|
||||
<div class="panel">
|
||||
<h2 id="display_name">{{user.display_name}}</h2>
|
||||
<p>ID: <a href="/userid/{{user.id}}">{{user.id}}</a></p>
|
||||
<p>User since <span title="{{user.created|int|timestamp_to_8601}}">{{user.created|timestamp_to_naturaldate}}.</span></p>
|
||||
<p><a href="/search?author={{user.username}}">Photos by {{user.display_name}}</a></p>
|
||||
<h2 id="display_name">{{user.display_name}}</h2>
|
||||
<p>ID: <a href="/userid/{{user.id}}">{{user.id}}</a></p>
|
||||
<p>User since <span title="{{user.created|int|timestamp_to_8601}}">{{user.created|timestamp_to_naturaldate}}.</span></p>
|
||||
</div>
|
||||
<div class="panel">
|
||||
<h3><a href="/search?author={{user.username}}">Photos by {{user.display_name}}</a></h3>
|
||||
<iframe
|
||||
class="embedded_search"
|
||||
src="/search_embed?author={{user.username}}&orderby=created-desc&yield_albums=no&limit=10"
|
||||
onload="return common.size_iframe_to_content(this);"
|
||||
>
|
||||
</iframe>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
|
Loading…
Reference in a new issue