forked from midou/invidious
		
	Merge pull request #1837 from syeopite/master
Enhance search filter UI for JS disabled users
This commit is contained in:
		@@ -495,7 +495,8 @@ video.video-js {
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
.light-theme a:hover,
 | 
			
		||||
.light-theme a:active {
 | 
			
		||||
.light-theme a:active,
 | 
			
		||||
.light-theme summary:hover {
 | 
			
		||||
  color: #075A9E !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -521,7 +522,8 @@ video.video-js {
 | 
			
		||||
 | 
			
		||||
@media (prefers-color-scheme: light) {
 | 
			
		||||
  .no-theme a:hover,
 | 
			
		||||
  .no-theme a:active {
 | 
			
		||||
  .no-theme a:active,
 | 
			
		||||
  .no-theme summary:hover  {
 | 
			
		||||
    color: #075A9E !important;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@@ -551,7 +553,8 @@ video.video-js {
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
.dark-theme a:hover,
 | 
			
		||||
.dark-theme a:active {
 | 
			
		||||
.dark-theme a:active,
 | 
			
		||||
.dark-theme summary:hover {
 | 
			
		||||
  color: rgb(0, 182, 240);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -629,5 +632,25 @@ body.dark-theme {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#filters {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
  display: inline;
 | 
			
		||||
  margin-top: 15px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#filters > div {
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#filters > summary {
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  margin-bottom: 15px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#filters > summary::before {
 | 
			
		||||
  content: "[ + ]";
 | 
			
		||||
  font-size: 1.5em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#filters[open] > summary::before {
 | 
			
		||||
  content: "[ - ]";
 | 
			
		||||
  font-size: 1.5em;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +0,0 @@
 | 
			
		||||
function toggle_comments(event) {
 | 
			
		||||
    var target = event.target;
 | 
			
		||||
    var body = document.getElementById('filters');
 | 
			
		||||
    if (body.style.display === 'flex') {
 | 
			
		||||
        target.innerHTML = '[ + ]';
 | 
			
		||||
        body.style.display = 'none';
 | 
			
		||||
    } else {
 | 
			
		||||
        target.innerHTML = '[ - ]';
 | 
			
		||||
        body.style.display = 'flex';
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
document.getElementById('togglefilters').onclick = toggle_comments;
 | 
			
		||||
@@ -2,99 +2,92 @@
 | 
			
		||||
<title><%= search_query.not_nil!.size > 30 ? HTML.escape(query.not_nil![0,30].rstrip(".") + "...") : HTML.escape(query.not_nil!) %> - Invidious</title>
 | 
			
		||||
<% end %>
 | 
			
		||||
 | 
			
		||||
<h3>
 | 
			
		||||
    <a id="togglefilters" href="javascript:void(0)">[ + ]</a>
 | 
			
		||||
    <%= translate(locale, "filter") %>
 | 
			
		||||
</h3>
 | 
			
		||||
 | 
			
		||||
<noscript>
 | 
			
		||||
    <style>
 | 
			
		||||
        #filters {
 | 
			
		||||
            display: flex;
 | 
			
		||||
        }
 | 
			
		||||
    </style>
 | 
			
		||||
</noscript>
 | 
			
		||||
<div id="filters" class="pure-g h-box">
 | 
			
		||||
    <div class="pure-u-1-3 pure-u-md-1-5">
 | 
			
		||||
        <b><%= translate(locale, "date") %></b>
 | 
			
		||||
        <hr/>
 | 
			
		||||
        <% ["hour", "today", "week", "month", "year"].each do |date| %>
 | 
			
		||||
            <div class="pure-u-1 pure-md-1-5">
 | 
			
		||||
                <% if operator_hash.fetch("date", "all") == date %>
 | 
			
		||||
                    <b><%= translate(locale, date) %></b>
 | 
			
		||||
                <% else %>
 | 
			
		||||
                    <a href="/search?q=<%= HTML.escape(query.not_nil!.gsub(/ ?date:[a-z]+/, "") + " date:" + date) %>&page=<%= page %>">
 | 
			
		||||
                        <%= translate(locale, date) %>
 | 
			
		||||
                    </a>
 | 
			
		||||
                <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
        <% end %>
 | 
			
		||||
<details id="filters">
 | 
			
		||||
    <summary>
 | 
			
		||||
        <h3 style="display:inline"> <%= translate(locale, "filter") %> </h3>
 | 
			
		||||
    </summary>
 | 
			
		||||
    <div id="filters" class="pure-g h-box">
 | 
			
		||||
        <div class="pure-u-1-3 pure-u-md-1-5">
 | 
			
		||||
            <b><%= translate(locale, "date") %></b>
 | 
			
		||||
            <hr/>
 | 
			
		||||
            <% ["hour", "today", "week", "month", "year"].each do |date| %>
 | 
			
		||||
                <div class="pure-u-1 pure-md-1-5">
 | 
			
		||||
                    <% if operator_hash.fetch("date", "all") == date %>
 | 
			
		||||
                        <b><%= translate(locale, date) %></b>
 | 
			
		||||
                    <% else %>
 | 
			
		||||
                        <a href="/search?q=<%= HTML.escape(query.not_nil!.gsub(/ ?date:[a-z]+/, "") + " date:" + date) %>&page=<%= page %>">
 | 
			
		||||
                            <%= translate(locale, date) %>
 | 
			
		||||
                        </a>
 | 
			
		||||
                    <% end %>
 | 
			
		||||
                </div>
 | 
			
		||||
            <% end %>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="pure-u-1-3 pure-u-md-1-5">
 | 
			
		||||
            <b><%= translate(locale, "content_type") %></b>
 | 
			
		||||
            <hr/>
 | 
			
		||||
            <% ["video", "channel", "playlist", "movie", "show"].each do |content_type| %>
 | 
			
		||||
                <div class="pure-u-1 pure-md-1-5">
 | 
			
		||||
                    <% if operator_hash.fetch("content_type", "all") == content_type %>
 | 
			
		||||
                        <b><%= translate(locale, content_type) %></b>
 | 
			
		||||
                    <% else %>
 | 
			
		||||
                        <a href="/search?q=<%= HTML.escape(query.not_nil!.gsub(/ ?content_type:[a-z]+/, "") + " content_type:" + content_type) %>&page=<%= page %>">
 | 
			
		||||
                            <%= translate(locale, content_type) %>
 | 
			
		||||
                        </a>
 | 
			
		||||
                    <% end %>
 | 
			
		||||
                </div>
 | 
			
		||||
            <% end %>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="pure-u-1-3 pure-u-md-1-5">
 | 
			
		||||
            <b><%= translate(locale, "duration") %></b>
 | 
			
		||||
            <hr/>
 | 
			
		||||
            <% ["short", "long"].each do |duration| %>
 | 
			
		||||
                <div class="pure-u-1 pure-md-1-5">
 | 
			
		||||
                    <% if operator_hash.fetch("duration", "all") == duration %>
 | 
			
		||||
                        <b><%= translate(locale, duration) %></b>
 | 
			
		||||
                    <% else %>
 | 
			
		||||
                        <a href="/search?q=<%= HTML.escape(query.not_nil!.gsub(/ ?duration:[a-z]+/, "") + " duration:" + duration) %>&page=<%= page %>">
 | 
			
		||||
                            <%= translate(locale, duration) %>
 | 
			
		||||
                        </a>
 | 
			
		||||
                    <% end %>
 | 
			
		||||
                </div>
 | 
			
		||||
            <% end %>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="pure-u-1-3 pure-u-md-1-5">
 | 
			
		||||
            <b><%= translate(locale, "features") %></b>
 | 
			
		||||
            <hr/>
 | 
			
		||||
            <% ["hd", "subtitles", "creative_commons", "3d", "live", "purchased", "4k", "360", "location", "hdr"].each do |feature| %>
 | 
			
		||||
                <div class="pure-u-1 pure-md-1-5">
 | 
			
		||||
                    <% if operator_hash.fetch("features", "all").includes?(feature) %>
 | 
			
		||||
                        <b><%= translate(locale, feature) %></b>
 | 
			
		||||
                    <% elsif operator_hash.has_key?("features") %>
 | 
			
		||||
                        <a href="/search?q=<%= HTML.escape(query.not_nil!.gsub(/features:/, "features:" + feature + ",")) %>&page=<%= page %>">
 | 
			
		||||
                            <%= translate(locale, feature) %>
 | 
			
		||||
                        </a>
 | 
			
		||||
                    <% else %>
 | 
			
		||||
                        <a href="/search?q=<%= HTML.escape(query.not_nil! + " features:" + feature) %>&page=<%= page %>">
 | 
			
		||||
                            <%= translate(locale, feature) %>
 | 
			
		||||
                        </a>
 | 
			
		||||
                    <% end %>
 | 
			
		||||
                </div>
 | 
			
		||||
            <% end %>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="pure-u-1-3 pure-u-md-1-5">
 | 
			
		||||
            <b><%= translate(locale, "sort") %></b>
 | 
			
		||||
            <hr/>
 | 
			
		||||
            <% ["relevance", "rating", "date", "views"].each do |sort| %>
 | 
			
		||||
                <div class="pure-u-1 pure-md-1-5">
 | 
			
		||||
                    <% if operator_hash.fetch("sort", "relevance") == sort %>
 | 
			
		||||
                        <b><%= translate(locale, sort) %></b>
 | 
			
		||||
                    <% else %>
 | 
			
		||||
                        <a href="/search?q=<%= HTML.escape(query.not_nil!.gsub(/ ?sort:[a-z]+/, "") + " sort:" + sort) %>&page=<%= page %>">
 | 
			
		||||
                            <%= translate(locale, sort) %>
 | 
			
		||||
                        </a>
 | 
			
		||||
                    <% end %>
 | 
			
		||||
                </div>
 | 
			
		||||
            <% end %>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="pure-u-1-3 pure-u-md-1-5">
 | 
			
		||||
        <b><%= translate(locale, "content_type") %></b>
 | 
			
		||||
        <hr/>
 | 
			
		||||
        <% ["video", "channel", "playlist", "movie", "show"].each do |content_type| %>
 | 
			
		||||
            <div class="pure-u-1 pure-md-1-5">
 | 
			
		||||
                <% if operator_hash.fetch("content_type", "all") == content_type %>
 | 
			
		||||
                    <b><%= translate(locale, content_type) %></b>
 | 
			
		||||
                <% else %>
 | 
			
		||||
                    <a href="/search?q=<%= HTML.escape(query.not_nil!.gsub(/ ?content_type:[a-z]+/, "") + " content_type:" + content_type) %>&page=<%= page %>">
 | 
			
		||||
                        <%= translate(locale, content_type) %>
 | 
			
		||||
                    </a>
 | 
			
		||||
                <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
        <% end %>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="pure-u-1-3 pure-u-md-1-5">
 | 
			
		||||
        <b><%= translate(locale, "duration") %></b>
 | 
			
		||||
        <hr/>
 | 
			
		||||
        <% ["short", "long"].each do |duration| %>
 | 
			
		||||
            <div class="pure-u-1 pure-md-1-5">
 | 
			
		||||
                <% if operator_hash.fetch("duration", "all") == duration %>
 | 
			
		||||
                    <b><%= translate(locale, duration) %></b>
 | 
			
		||||
                <% else %>
 | 
			
		||||
                    <a href="/search?q=<%= HTML.escape(query.not_nil!.gsub(/ ?duration:[a-z]+/, "") + " duration:" + duration) %>&page=<%= page %>">
 | 
			
		||||
                        <%= translate(locale, duration) %>
 | 
			
		||||
                    </a>
 | 
			
		||||
                <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
        <% end %>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="pure-u-1-3 pure-u-md-1-5">
 | 
			
		||||
        <b><%= translate(locale, "features") %></b>
 | 
			
		||||
        <hr/>
 | 
			
		||||
        <% ["hd", "subtitles", "creative_commons", "3d", "live", "purchased", "4k", "360", "location", "hdr"].each do |feature| %>
 | 
			
		||||
            <div class="pure-u-1 pure-md-1-5">
 | 
			
		||||
                <% if operator_hash.fetch("features", "all").includes?(feature) %>
 | 
			
		||||
                    <b><%= translate(locale, feature) %></b>
 | 
			
		||||
                <% elsif operator_hash.has_key?("features") %>
 | 
			
		||||
                    <a href="/search?q=<%= HTML.escape(query.not_nil!.gsub(/features:/, "features:" + feature + ",")) %>&page=<%= page %>">
 | 
			
		||||
                        <%= translate(locale, feature) %>
 | 
			
		||||
                    </a>
 | 
			
		||||
                <% else %>
 | 
			
		||||
                    <a href="/search?q=<%= HTML.escape(query.not_nil! + " features:" + feature) %>&page=<%= page %>">
 | 
			
		||||
                        <%= translate(locale, feature) %>
 | 
			
		||||
                    </a>
 | 
			
		||||
                <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
        <% end %>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="pure-u-1-3 pure-u-md-1-5">
 | 
			
		||||
        <b><%= translate(locale, "sort") %></b>
 | 
			
		||||
        <hr/>
 | 
			
		||||
        <% ["relevance", "rating", "date", "views"].each do |sort| %>
 | 
			
		||||
            <div class="pure-u-1 pure-md-1-5">
 | 
			
		||||
                <% if operator_hash.fetch("sort", "relevance") == sort %>
 | 
			
		||||
                    <b><%= translate(locale, sort) %></b>
 | 
			
		||||
                <% else %>
 | 
			
		||||
                    <a href="/search?q=<%= HTML.escape(query.not_nil!.gsub(/ ?sort:[a-z]+/, "") + " sort:" + sort) %>&page=<%= page %>">
 | 
			
		||||
                        <%= translate(locale, sort) %>
 | 
			
		||||
                    </a>
 | 
			
		||||
                <% end %>
 | 
			
		||||
            </div>
 | 
			
		||||
        <% end %>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
</details>
 | 
			
		||||
 | 
			
		||||
<hr/>
 | 
			
		||||
 | 
			
		||||
@@ -141,4 +134,3 @@
 | 
			
		||||
        <% end %>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
<script src="/js/search.js?v=<%= ASSET_COMMIT %>"></script>
 | 
			
		||||
		Reference in New Issue
	
	Block a user