78b4786a2f8fc50bfee765a69ce3dd09f2c87dec
[deb/packages.git] / templates / html / search.tmpl
1 [%- PROCESS 'config/archive_layout.tmpl' -%]
2 [%- keyword_str = search_keywords.join(' ');
3    keyword_esc = uri_escape(keyword_str);
4    keyword_enc = html_encode(keyword_str);
5
6    section_str = params.values.section.no_replace.join(', ');
7    section_esc = uri_escape(section_str);
8    section_enc = html_encode(section_str);
9
10    suite_str = params.values.suite.no_replace.join(', ');
11    suite_esc = uri_escape(suite_str);
12    suite_enc = html_encode(suite_str);
13
14    architectures_str = params.values.arch.no_replace.join(', ');
15    architectures_esc = uri_escape(architectures_str);
16    architectures_enc = html_encode(architectures_str);
17 -%]
18 [%- PROCESS 'html/head.tmpl'
19    title_tag = "Package Search Results -- $keyword_enc"
20    print_search_field = 'packages'
21    search_field_values = {
22         keywords => search_keywords.join(' '),
23         searchon => opts.searchon_form,
24         suite => params.values.suite.no_replace.join(','),
25         architectures => params.values.arch.no_replace.join(','),
26         sections => params.values.section.no_replace.join(','),
27     }
28    navigation = [ { name => 'Package Search Results' } ]
29 -%]
30
31 <div id="psearchsug">
32 [% UNLESS results %]
33         <p>You can try a different search on the <a href="[% searchformurl %]#search_packages">Packages search page</a>.</p>
34         
35         [% IF opts.searchon != "names" && opts.exact %]
36         <p>You have searched only for words exactly matching your keywords.
37         You can try to search <a href="[% make_search_url('',"keywords=$keyword_esc",'exact',0) %]">allowing subword matching</a>
38         [% END %]
39 [% END %]
40 [% IF opts.searchon == "names" && non_results %]
41 <p><a href="[% search_url %][% keyword_esc %]">[% non_results %]</a>
42 results have not been displayed due to the search parameters.</p>
43 [% END %]
44 </div>
45
46 [%- PROCESS 'html/messages.tmpl' -%]
47
48 <div id="psearchres">
49
50 [% suite_wording = suite_enc.match("^(default|all)$") ? "all suites" : "suite(s) <em>$suite_enc</em>";
51    section_wording = (section_enc == 'all') ? "all sections" : "section(s) <em>$section_enc</em>";
52    arch_wording = (architectures_enc == 'any') ? "all architectures" : "architecture(s) <em>$architectures_enc</em>";
53     IF opts.searchon == "names";
54         source_wording = opts.source ? "source packages" : "packages";
55         msg = "You have searched for $source_wording that names contain <em>$keyword_enc</em> in $suite_wording, $section_wording, and $arch_wording .";
56     ELSE;
57         exact_wording = opts.exact ? "" : " (including subword matching)";
58         msg = "You have searched for <em>$keyword_enc</em> in packages names and descriptions in $suite_wording, $section_wording, and $arch_wording$exact_wording .";
59     END %]
60 <p>[% msg %]
61
62 [% IF results %]
63 Found <strong>[% results %]</strong> matching packages.</p>
64 [% END %]
65
66 [% IF too_many_hits %]
67 [% IF opts.searchon != "names" %]
68 <p id="psearchtoomanyhits">Note that this only shows the best matches, sorted by relevance.
69 If the first few packages don't match what you searched for, try using more keywords or alternative
70 keywords.</p>
71 [% ELSE %]
72 <p id="psearchtoomanyhits">Your search was too wide so we will only display exact matches.
73 At least <em>[% too_many_hits %]</em> results have been omitted and will not be displayed.
74 Please consider using a longer keyword or more keywords.</p>
75 [% END; END %]
76
77 [% UNLESS results %]
78 <p id="psearchnoresult">Sorry, your search gave no results</p>
79 [% END %]
80
81 [% FOREACH categories %]
82   [% "<h2>$name</h2>" IF name %]
83
84 [% FOREACH packages %]
85   <h3>Package [% pkg %]</h3>
86   <ul>
87   [% FOREACH s IN suites;
88         suite = s.suite %]
89     <li class="[% suite %]"><a class="resultlink" href="[% make_url(pkg,'','suite',suite,'arch','','section','') %]">[% suite %]
90         [%- ' (' _ suite_aliases.$suite _ ')' IF suite_aliases.$suite %]</a>[% ' (' _ s.subsection _ ')' IF s.subsection %]: [% s.desc %]  [%- IF s.section != main_section %] [<strong class="pmarker">[% s.section %]</strong>][% END %]
91     [% FOREACH s.versions %]
92       <br>[% version %] [%- IF archive != main_archive %] [<strong class="pmarker">[% archive %]</strong>][% END %]: [% architectures.join(' ') %]
93     [% END %]
94     [% IF s.providers %]
95         <br>[% 'also ' IF s.versions.size > 0 %]provided by: [% FOREACH provider IN s.providers %]<a href="[% make_url(provider,'','suite',suite) %]">[% provider %]</a>[% ', ' UNLESS loop.last %][% END %]
96     [% END %]
97     </li>
98   [% END %]
99   </ul>
100 [% END %]
101
102 [% FOREACH src_packages %]
103   <h3>Source Package [% pkg %]</h3>
104   <ul>
105   [% FOREACH origins %]
106      [% origin = (archive == main_archive) ? suite : "$suite/$archive";
107         js_id = string2id("$pkg$suite$archive")  %]
108     <li><a class="resultlink" href="[% make_url(pkg,'','source','source','suite',origin,'section','','arch','') %]">[% origin %]</a> ([% subsection %]): [% version %]
109       [%- IF section %] [<strong class="pmarker">[% section %]</strong>][% END %]
110       [%- IF real_archive %] [<strong class="pmarker">[% real_archive %]</strong>][% END %]
111     <br>Binary packages: <span id="js_[% js_id %]" class="p_js_elem"></span> <span id="html_[% js_id %]" class="binaries">[% FOREACH binary IN binaries %]<a href="[% make_url(binary,'','source','','suite',suite,'archive',archive,'arch','','archive','') %]">[% binary %]</a>[% ', ' UNLESS loop.last %][% END %]</span>
112         [% IF binaries.size > 10 %]
113         <script type="text/javascript">init_toggle_elem("[% js_id %]","[% binaries.size %] binary packages")</script>
114         [% END %]
115     </li>
116   [% END %]
117   </ul>
118 [% END %]
119
120 [% END %]
121
122 [% IF skipped %]
123   <p><a href="[% make_search_url('',"keywords=$keyword_esc",'exact', 0) %]">[% skipped %]</a> results have not been displayed because you requested only exact matches.
124 [% END %]
125
126 </div>
127
128 [%- PROCESS 'html/foot.tmpl' -%]