WebUI: migrate to fetch API
[qBittorrent.git] / src / webui / www / private / views / search.html
blob187586c90ff893af30908b8ccef6080f8d0d9e60
1 <style>
2 #searchPattern {
3 width: 300px;
4 background-image: url("images/edit-find.svg");
5 background-repeat: no-repeat;
6 background-size: 1.5em;
7 background-position: 3px;
8 border: 1px solid var(--color-border-default);
9 border-radius: 3px;
10 padding: 0 4px 0 25px;
13 #categorySelect {
14 width: 150px;
17 #pluginsSelect {
18 width: 150px;
21 #searchResultsNoPlugins,
22 #searchResultsNoSearches {
23 height: calc(100% - 110px);
25 table {
26 height: 100%;
27 width: 100%;
28 text-align: center;
32 #searchResultsFilters {
33 height: 40px;
34 padding-top: 10px;
35 overflow: auto;
38 #searchInNameFilter {
39 width: 160px;
40 margin-right: 20px;
43 #searchMinSeedsFilter,
44 #searchMaxSeedsFilter,
45 #searchMinSizeFilter,
46 #searchMaxSizeFilter {
47 width: 5em;
50 #manageSearchPlugins {
51 float: right;
54 #searchResultsGranularFilters {
55 display: none;
58 #searchResultsGranularFiltersWarning {
59 vertical-align: bottom;
60 margin-left: 10px;
63 #manageSearchPlugins,
64 #startSearchButton {
65 padding: 3px 6px;
68 #startSearchButton img,
69 #manageSearchPlugins img {
70 margin: 0 5px -3px 0;
73 @media (min-width: 1060px) {
74 #searchResultsGranularFilters {
75 display: inline-block;
78 #searchResultsGranularFiltersWarning {
79 display: none;
82 #searchPattern {
83 width: 500px;
87 </style>
89 <div id="searchResults">
90 <div style="overflow: hidden; height: 60px;">
91 <div style="display: flex; flex-wrap: wrap; gap: 5px; margin: 20px 0 10px 0; height: 24px;">
92 <input type="search" id="searchPattern" class="searchInputField" placeholder="QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]" aria-label="QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]" autocorrect="off" autocomplete="off" autocapitalize="none" oninput="qBittorrent.Search.onSearchPatternChanged()">
93 <select id="categorySelect" class="searchInputField" aria-label="QBT_TR(Select category)QBT_TR[CONTEXT=SearchEngineWidget]" onchange="qBittorrent.Search.categorySelected()"></select>
94 <select id="pluginsSelect" class="searchInputField" aria-label="QBT_TR(Select plugins)QBT_TR[CONTEXT=SearchEngineWidget]" onchange="qBittorrent.Search.pluginSelected()"></select>
95 <button type="button" id="startSearchButton" class="searchInputField" onclick="qBittorrent.Search.startStopSearch()">
96 <img src="images/edit-find.svg" alt="QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]" width="16" height="16">QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]
97 </button>
98 </div>
99 </div>
101 <div id="searchResultsNoPlugins">
102 <table>
103 <tbody>
104 <tr>
105 <td>
106 QBT_TR(There aren't any search plugins installed.)QBT_TR[CONTEXT=SearchEngineWidget]
107 <br>
108 QBT_TR(Click the "Search plugins..." button at the bottom right of the window to install some.)QBT_TR[CONTEXT=SearchEngineWidget]
109 </td>
110 </tr>
111 </tbody>
112 </table>
113 <span></span>
114 </div>
116 <div id="searchResultsNoSearches" class="invisible">
117 <table>
118 <tbody>
119 <tr>
120 <td>
121 QBT_TR(Start a search above.)QBT_TR[CONTEXT=SearchEngineWidget]
122 </td>
123 </tr>
124 </tbody>
125 </table>
126 <span></span>
127 </div>
129 <div id="searchTabsToolbar" class="toolbarTabs invisible" style="border-bottom: 1px solid var(--color-border-default);">
130 <ul id="searchTabs" class="tab-menu"></ul>
131 <div class="clear"></div>
132 </div>
134 <div id="searchResultsFilters" class="invisible">
135 <input type="search" id="searchInNameFilter" placeholder="QBT_TR(Filter)QBT_TR[CONTEXT=SearchEngineWidget]" aria-label="QBT_TR(Filter)QBT_TR[CONTEXT=SearchEngineWidget]" autocorrect="off" autocapitalize="none">
137 <span>QBT_TR(Results)QBT_TR[CONTEXT=SearchEngineWidget] (QBT_TR(showing)QBT_TR[CONTEXT=SearchEngineWidget] <span id="numSearchResultsVisible" class="numSearchResults">0</span> QBT_TR(out of)QBT_TR[CONTEXT=SearchEngineWidget] <span id="numSearchResultsTotal" class="numSearchResults">0</span>):</span>
139 <div style="display: inline-block; float: right;">
140 <label for="searchInTorrentName" style="margin-left: 15px;">QBT_TR(Search in:)QBT_TR[CONTEXT=SearchEngineWidget]</label>
141 <select id="searchInTorrentName" onchange="qBittorrent.Search.searchInTorrentName()">
142 <option value="names">QBT_TR(Torrent names only)QBT_TR[CONTEXT=SearchEngineWidget]</option>
143 <option value="everywhere">QBT_TR(Everywhere)QBT_TR[CONTEXT=SearchEngineWidget]</option>
144 </select>
146 <img id="searchResultsGranularFiltersWarning" src="images/dialog-warning.svg" title="QBT_TR(Increase window width to display additional filters)QBT_TR[CONTEXT=SearchEngineWidget]" alt="QBT_TR(Warning)QBT_TR[CONTEXT=SearchEngineWidget]" width="24" height="24">
148 <div id="searchResultsGranularFilters">
149 <label for="searchMinSeedsFilter" style="margin-left: 15px;">QBT_TR(Seeds:)QBT_TR[CONTEXT=SearchEngineWidget]</label>
150 <input type="number" min="0" max="1000" id="searchMinSeedsFilter" value="0" onchange="qBittorrent.Search.searchSeedsFilterChanged()">
151 <label for="searchMaxSeedsFilter">QBT_TR(to)QBT_TR[CONTEXT=SearchEngineWidget]</label>
152 <input type="number" min="0" max="1000" id="searchMaxSeedsFilter" value="0" onchange="qBittorrent.Search.searchSeedsFilterChanged()">
154 <label for="searchMinSizeFilter" style="margin-left: 15px;">QBT_TR(Size:)QBT_TR[CONTEXT=SearchEngineWidget]</label>
155 <input type="number" min="0" max="1000" step=".01" value="0.00" id="searchMinSizeFilter" onchange="qBittorrent.Search.searchSizeFilterChanged()">
156 <select id="searchMinSizePrefix" onchange="qBittorrent.Search.searchSizeFilterPrefixChanged()" aria-label="QBT_TR(Min size prefix)QBT_TR[CONTEXT=SearchEngineWidget]">
157 <option value="0">QBT_TR(B)QBT_TR[CONTEXT=misc]</option>
158 <option value="1">QBT_TR(KiB)QBT_TR[CONTEXT=misc]</option>
159 <option value="2" selected>QBT_TR(MiB)QBT_TR[CONTEXT=misc]</option>
160 <option value="3">QBT_TR(GiB)QBT_TR[CONTEXT=misc]</option>
161 <option value="4">QBT_TR(TiB)QBT_TR[CONTEXT=misc]</option>
162 <option value="5">QBT_TR(PiB)QBT_TR[CONTEXT=misc]</option>
163 <option value="6">QBT_TR(EiB)QBT_TR[CONTEXT=misc]</option>
164 </select>
165 <label for="searchMaxSizeFilter">QBT_TR(to)QBT_TR[CONTEXT=SearchEngineWidget]</label>
166 <input type="number" min="0" max="1000" step=".01" value="0.00" id="searchMaxSizeFilter" onchange="qBittorrent.Search.searchSizeFilterChanged()">
167 <select id="searchMaxSizePrefix" onchange="qBittorrent.Search.searchSizeFilterPrefixChanged()" aria-label="QBT_TR(Max size prefix)QBT_TR[CONTEXT=SearchEngineWidget]">
168 <option value="0">QBT_TR(B)QBT_TR[CONTEXT=misc]</option>
169 <option value="1">QBT_TR(KiB)QBT_TR[CONTEXT=misc]</option>
170 <option value="2">QBT_TR(MiB)QBT_TR[CONTEXT=misc]</option>
171 <option value="3" selected>QBT_TR(GiB)QBT_TR[CONTEXT=misc]</option>
172 <option value="4">QBT_TR(TiB)QBT_TR[CONTEXT=misc]</option>
173 <option value="5">QBT_TR(PiB)QBT_TR[CONTEXT=misc]</option>
174 <option value="6">QBT_TR(EiB)QBT_TR[CONTEXT=misc]</option>
175 </select>
176 </div>
177 </div>
178 </div>
180 <div id="searchResultsTableContainer" class="invisible">
181 <div id="searchResultsTableFixedHeaderDiv" class="dynamicTableFixedHeaderDiv">
182 <table class="dynamicTable unselectable" style="position:relative;">
183 <thead>
184 <tr class="dynamicTableHeader"></tr>
185 </thead>
186 </table>
187 </div>
188 <div id="searchResultsTableDiv" class="dynamicTableDiv">
189 <table class="dynamicTable unselectable">
190 <thead>
191 <tr class="dynamicTableHeader"></tr>
192 </thead>
193 <tbody></tbody>
194 </table>
195 </div>
196 </div>
198 <div style="height: 30px; padding-top: 10px;">
199 <button type="button" id="manageSearchPlugins" onclick="qBittorrent.Search.manageSearchPlugins()">
200 <img alt="QBT_TR(Search plugins...)QBT_TR[CONTEXT=SearchEngineWidget]" src="images/plugins.svg" width="16" height="16">QBT_TR(Search plugins...)QBT_TR[CONTEXT=SearchEngineWidget]
201 </button>
202 </div>
203 </div>
205 <ul id="searchResultsTableMenu" class="contextMenu">
206 <li><a href="#Download"><img src="images/downloading.svg" alt="QBT_TR(Download)QBT_TR[CONTEXT=SearchJobWidget]"> QBT_TR(Download)QBT_TR[CONTEXT=SearchJobWidget]</a></li>
207 <li class="separator"><a href="#OpenDescriptionUrl"><img src="images/application-url.svg" alt="QBT_TR(Open description page)QBT_TR[CONTEXT=SearchJobWidget]"> QBT_TR(Open description page)QBT_TR[CONTEXT=SearchJobWidget]</a></li>
208 <li>
209 <a href="#" class="arrow-right"><img src="images/edit-copy.svg" alt="QBT_TR(Copy)QBT_TR[CONTEXT=SearchJobWidget]"> QBT_TR(Copy)QBT_TR[CONTEXT=SearchJobWidget]</a>
210 <ul>
211 <li><a href="#" id="copySearchTorrentName" class="copySearchDataToClipboard"><img src="images/name.svg" alt="QBT_TR(Name)QBT_TR[CONTEXT=SearchJobWidget]"> QBT_TR(Name)QBT_TR[CONTEXT=SearchJobWidget]</a></li>
212 <li><a href="#" id="copySearchTorrentDownloadLink" class="copySearchDataToClipboard"><img src="images/insert-link.svg" alt="QBT_TR(Download link)QBT_TR[CONTEXT=SearchJobWidget]"> QBT_TR(Download link)QBT_TR[CONTEXT=SearchJobWidget]</a></li>
213 <li><a href="#" id="copySearchTorrentDescriptionUrl" class="copySearchDataToClipboard"><img src="images/application-url.svg" alt="QBT_TR(Description page URL)QBT_TR[CONTEXT=SearchJobWidget]"> QBT_TR(Description page URL)QBT_TR[CONTEXT=SearchJobWidget]</a></li>
214 </ul>
215 </li>
216 </ul>
217 <ul id="searchResultsTabsMenu" class="contextMenu">
218 <li><a href="#closeTab">QBT_TR(Close tab)QBT_TR[CONTEXT=SearchJobWidget]</a></li>
219 <li><a href="#closeAllTabs">QBT_TR(Close all tabs)QBT_TR[CONTEXT=SearchJobWidget]</a></li>
220 </ul>