diff options
| author | TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com> | 2021-03-19 20:32:27 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-03-19 20:32:27 +0000 |
| commit | 3286328de4cd64b48265b42333bfa67346b7a0b9 (patch) | |
| tree | 7753b2d62d1006dcf86b609c5c2cb24903bb4e6c | |
| parent | 5ec23df4602b64e0b3ba4b715e585b92bd2e3a77 (diff) | |
| parent | 977c34c0d72eacb07d5e51c537402fff6f4ae3fc (diff) | |
| download | invidious-3286328de4cd64b48265b42333bfa67346b7a0b9.tar.gz invidious-3286328de4cd64b48265b42333bfa67346b7a0b9.tar.bz2 invidious-3286328de4cd64b48265b42333bfa67346b7a0b9.zip | |
Merge pull request #1837 from syeopite/master
Enhance search filter UI for JS disabled users
| -rw-r--r-- | assets/css/default.css | 33 | ||||
| -rw-r--r-- | assets/js/search.js | 13 | ||||
| -rw-r--r-- | src/invidious/views/search.ecr | 178 |
3 files changed, 113 insertions, 111 deletions
diff --git a/assets/css/default.css b/assets/css/default.css index 793295d9..a76ecd48 100644 --- a/assets/css/default.css +++ b/assets/css/default.css @@ -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; -}
\ No newline at end of file + 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; +} diff --git a/assets/js/search.js b/assets/js/search.js deleted file mode 100644 index 36edd053..00000000 --- a/assets/js/search.js +++ /dev/null @@ -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;
\ No newline at end of file diff --git a/src/invidious/views/search.ecr b/src/invidious/views/search.ecr index 3fa9242b..fefc9fbb 100644 --- a/src/invidious/views/search.ecr +++ b/src/invidious/views/search.ecr @@ -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 %> - </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 %> +<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, "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>
\ No newline at end of file |
