1e418619f1
Add the ability to search for specific comments within posts. Known issues: - Just like on reddit, this does not work with comment sorting. The sorting order is ignored during the search and changing the sorting order after the search does not change anything. I do not think we can fix this before reddit does, since in my understanding we rely on them for the sorting. However we could implement a default sorting method ourselves by taking the vector of comments returned from the search and sorting it manually. - The UI could be improved on mobile. On screens with a max width inferior to 480 pixels, the comment search bar is displayed below the comment sorting form. It would be great if we could make the search bar have the same width as the whole comment sorting form but I do not have the willpower to write any more css.
116 lines
4.5 KiB
HTML
116 lines
4.5 KiB
HTML
{% extends "base.html" %}
|
|
{% import "utils.html" as utils %}
|
|
|
|
{% block title %}Libreddit: search results - {{ params.q }}{% endblock %}
|
|
|
|
{% block subscriptions %}
|
|
{% call utils::sub_list("") %}
|
|
{% endblock %}
|
|
|
|
{% block content %}
|
|
<div id="column_one">
|
|
<form id="search_sort">
|
|
<input id="search" type="text" name="q" placeholder="Search" value="{{ params.q|safe }}" title="Search libreddit">
|
|
{% if sub != "" %}
|
|
<div id="inside">
|
|
<input type="checkbox" name="restrict_sr" id="restrict_sr" {% if params.restrict_sr != "" %}checked{% endif %}>
|
|
<label for="restrict_sr" class="search_label">in r/{{ sub }}</label>
|
|
</div>
|
|
{% endif %}
|
|
{% if params.typed == "sr_user" %}<input type="hidden" name="type" value="sr_user">{% endif %}
|
|
<select id="sort_options" name="sort" title="Sort results by">
|
|
{% call utils::options(params.sort, ["relevance", "hot", "top", "new", "comments"], "") %}
|
|
</select>{% if params.sort != "new" %}<select id="timeframe" name="t" title="Timeframe">
|
|
{% call utils::options(params.t, ["hour", "day", "week", "month", "year", "all"], "all") %}
|
|
</select>{% endif %}<button id="sort_submit" class="submit">
|
|
<svg width="15" viewBox="0 0 110 100" fill="none" stroke-width="10" stroke-linecap="round">
|
|
<path d="M20 50 H100" />
|
|
<path d="M75 15 L100 50 L75 85" />
|
|
→
|
|
</svg>
|
|
</button>
|
|
</form>
|
|
|
|
{% if !is_filtered %}
|
|
{% if subreddits.len() > 0 || params.typed == "sr_user" %}
|
|
<div id="search_subreddits">
|
|
{% if params.typed == "sr_user" %}
|
|
<a href="?q={{ params.q }}&sort={{ params.sort }}&t={{ params.t }}" class="search_subreddit" id="more_subreddits">← Back to post/comment results</a>
|
|
{% endif %}
|
|
{% for subreddit in subreddits %}
|
|
<a href="{{ subreddit.url }}" class="search_subreddit">
|
|
<div class="search_subreddit_left">{% if subreddit.icon != "" %}<img loading="lazy" src="{{ subreddit.icon|safe }}" alt="r/{{ subreddit.name }} icon">{% endif %}</div>
|
|
<div class="search_subreddit_right">
|
|
<p class="search_subreddit_header">
|
|
<span class="search_subreddit_name">r/{{ subreddit.name }}</span>
|
|
<span class="dot">•</span>
|
|
<span class="search_subreddit_members" title="{{ subreddit.subscribers.1 }} Members">{{ subreddit.subscribers.0 }} Members</span>
|
|
</p>
|
|
<p class="search_subreddit_description">{{ subreddit.description }}</p>
|
|
</div>
|
|
</a>
|
|
{% endfor %}
|
|
{% if params.typed != "sr_user" %}
|
|
<a href="?q={{ params.q }}&sort={{ params.sort }}&t={{ params.t }}&type=sr_user" class="search_subreddit" id="more_subreddits">More subreddit results →</a>
|
|
{% endif %}
|
|
</div>
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
{% if all_posts_hidden_nsfw %}
|
|
<span class="listing_warn">All posts are hidden because they are NSFW. Enable "Show NSFW posts" in settings to view.</span>
|
|
{% endif %}
|
|
|
|
{% if no_posts %}
|
|
<center>No posts were found.</center>
|
|
{% endif %}
|
|
|
|
{% if all_posts_filtered %}
|
|
<span class="listing_warn">(All content on this page has been filtered)</span>
|
|
{% else if is_filtered %}
|
|
<span class="listing_warn">(Content from r/{{ sub }} has been filtered)</span>
|
|
{% else if params.typed != "sr_user" %}
|
|
{% for post in posts %}
|
|
{% if post.flags.nsfw && prefs.show_nsfw != "on" %}
|
|
{% else if !post.title.is_empty() %}
|
|
{% call utils::post_in_list(post) %}
|
|
{% else %}
|
|
<div class="comment">
|
|
<div class="comment_left">
|
|
<p class="comment_score" title="{{ post.score.1 }}">{{ post.score.0 }}</p>
|
|
<div class="line"></div>
|
|
</div>
|
|
<details class="comment_right" open>
|
|
<summary class="comment_data">
|
|
<a class="comment_link" href="{{ post.permalink }}">COMMENT</a>
|
|
<span class="created" title="{{ post.created }}">{{ post.rel_time }}</span>
|
|
</summary>
|
|
<p class="comment_body">{{ post.body }}</p>
|
|
</details>
|
|
</div>
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if prefs.use_hls == "on" %}
|
|
<script src="/hls.min.js"></script>
|
|
<script src="/playHLSVideo.js"></script>
|
|
{% endif %}
|
|
|
|
{% if params.typed != "sr_user" %}
|
|
<footer>
|
|
{% if params.before != "" %}
|
|
<a href="?q={{ params.q|safe }}&restrict_sr={{ params.restrict_sr }}
|
|
&sort={{ params.sort }}&t={{ params.t }}
|
|
&before={{ params.before }}" accesskey="P">PREV</a>
|
|
{% endif %}
|
|
|
|
{% if params.after != "" %}
|
|
<a href="?q={{ params.q|safe }}&restrict_sr={{ params.restrict_sr }}
|
|
&sort={{ params.sort }}&t={{ params.t }}
|
|
&after={{ params.after }}" accesskey="N">NEXT</a>
|
|
{% endif %}
|
|
</footer>
|
|
{% endif %}
|
|
</div>
|
|
{% endblock %}
|