experimental pager support in search
[BackupPC.git] / lib / BackupPC / CGI / SearchArchives.pm
1 ####################################################################
2 #  SearchArchives.pm - module for searching through archived files #
3 #                      via a sqlite database                       #
4 ####################################################################
5 package BackupPC::CGI::SearchArchives;
6
7
8 use strict;
9 use BackupPC::CGI::Lib qw(:all);
10 use BackupPC::SearchLib;
11 use Data::Dumper;
12 use vars qw($Cgi %In $MyURL $User %Conf $TopDir $BinDir $bpc);
13
14 sub action() {
15     my $cont = "";
16     my $host;
17     my @hosts;
18     my $hosts_html = "";
19
20     
21     BackupPC::CGI::Lib::NewRequest();
22
23     @hosts = BackupPC::SearchLib::getUnits();
24     if ( !defined($In{search_results}) ) {
25         foreach $host (@hosts) {
26             $hosts_html .=
27                 "<option value="
28               . $host->{'ID'} . "> "
29               . $host->{'name'}
30               . " </option>\n";
31         }
32         my $title = eval(q{ ${h1("Search")}});
33         my $subtitle = eval(q{ ${h2("Search criteria")}});
34
35         $cont .= <<ENDSTR;
36       
37       <form name="searchForm" method="GET" action="$MyURL">
38         $title
39         $subtitle
40         <table border="0">
41          <tr>
42           <td>
43             Share:
44           </td>
45           <td>
46             <select name="search_host">
47               $hosts_html
48             </select>
49           </td>
50          </tr>
51          <tr>
52           <td>
53             All file(s) between:
54           </td>
55           <td>
56             <table>
57               <tr>
58                 <td>
59                   Day
60                 </td>
61                 <td>
62                   <input type="text" name="search_day_from">
63                 </td>
64                 <td>
65                   Month
66                 </td>
67                 <td>
68                   <input type="text" name="search_month_from">
69                 </td>
70                 <td>
71                   Year
72                 </td>
73                 <td>
74                   <input type="text" name="search_year_from">
75                 </td>
76               </tr>
77               <tr>
78                 <td>
79                   Day
80                 </td>
81                 <td>
82                   <input type="text" name="search_day_to">
83                 </td>
84                 <td>
85                   Month
86                 </td>
87                 <td>
88                   <input type="text" name="search_month_to">
89                 </td>
90                 <td>
91                   Year
92                 </td>
93                 <td>
94                   <input type="text" name="search_year_to">
95                 </td>
96               </tr>     
97           
98             </table>      
99           </td>
100          </tr>
101          <tr>
102            <td>
103               All backups between:      
104            </td>
105            <td>
106              <table>
107               <tr>
108                <td>Day</td>
109                <td>Month</td>
110                <td>Year</td>
111               </tr>
112               <tr>
113                <td>
114                 <input type="text" name="search_backup_day_from">
115                </td>
116                <td>
117                 <input type="text" name="search_backup_month_from">
118                </td>
119                <td>
120                 <input type="text" name="search_backup_year_from">
121                </td>     
122               </tr>
123               <tr>
124                <td>
125                 <input type="text" name="search_backup_day_to">
126                </td>
127                <td>
128                 <input type="text" name="search_backup_month_to">
129                </td>
130                <td>
131                 <input type="text" name="search_backup_year_to">
132                </td>     
133               </tr>
134              </table>
135            </td>
136          </tr>
137          <tr>
138           <td>
139             Filename:
140           </td>
141           <td>
142             <input type="text" name="search_filename">
143           </td>
144          </tr>
145         </table>
146         <input type="submit" value="Search">
147         <input type="hidden" value="search" name="action">
148         <input type="hidden" value="results" name="search_results">
149       </form>      
150 ENDSTR
151     }
152     else {
153         $cont = eval(q{ ${h1("Search")}});
154         $cont .= eval(q{ ${h2("Search results")}});
155         my $result;
156         my $rows = "";
157
158         my $grid = BackupPC::SearchLib::displayGrid( BackupPC::SearchLib::getWhere(\%In), 1, $In{'offset'});
159         $cont .= $grid;                 
160     }
161     Header( eval("qq{$Lang->{Search_archive}}"), "", 1, "", $cont );
162     Trailer();
163 }
164
165 1;