added SearchHideShare regex to config
[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::Search;
11 use Data::Dumper;
12 use HTML::FillInForm;
13 use vars qw($Cgi %In $MyURL $User %Conf $TopDir $BinDir $bpc);
14
15 sub action() {
16         my $hosts_html = "";
17
18     
19         BackupPC::CGI::Lib::NewRequest();
20
21         foreach my $host ( BackupPC::Search::getShares ) {
22                 $hosts_html .= "<option value=" . $host->{'id'} . "> " . $host->{'share'} . " </option>\n";
23         }
24
25         sub date_from_to_html {
26                 my $name = shift || return;
27                 return qq{
28                         <input type="text" name="${name}_year_from" size="4">
29                         <input type="text" name="${name}_month_from" size="2">
30                         <input type="text" name="${name}_day_from" size="2">
31                         -
32                         <input type="text" name="${name}_year_to" size="4">
33                         <input type="text" name="${name}_month_to" size="2">
34                         <input type="text" name="${name}_day_to" size="2">
35                 };
36         }
37
38         my $form .= qq{
39 <form name="searchForm" method="GET" action="$MyURL">
40 <p>
41         Filename:
42         <input type="text" name="search_filename" size="50">
43         &nbsp;
44         on share
45         &nbsp;
46         <select name="search_share">$hosts_html</select>
47         &nbsp;show&nbsp;
48         <select name="burned">
49         <option value="">all</a>
50         <option value="burned">burned</a>
51         <option value="pending">pending</a>
52         </select>
53         files
54         &nbsp;&nbsp;&nbsp;
55         <input type="submit" value="Search">
56 </p>
57
58 <p style="color:gray;">
59         file(s) between:
60         } . date_from_to_html('search') . qq{
61         &nbsp;&nbsp;
62         backups between:
63         } . date_from_to_html('search_backup') . qq{
64         (yyyy-mm-dd)
65 </p>
66
67 <p style="color: gray;">
68         <input type="checkbox" name="use_hest"> use faster full-text search engine
69 </p>
70
71 <input type="hidden" value="search" name="action">
72 <input type="hidden" value="results" name="search_results">
73 </form>
74         };
75
76         my $html = eval(q{ ${h1("Search")}});
77
78         if ( !defined($In{search_results}) ) {
79                 $html .= eval(q{ ${h2("Search criteria")}});
80
81                 $html .= $form;
82         } else {
83                 $html .= eval(q{ ${h2("Search results")}});
84
85                 my $fif = new HTML::FillInForm;
86                 $html .= $fif->fill(scalarref => \$form, fdat => \%In);
87
88                 $html .= BackupPC::Search::displayGrid( \%In );
89         }
90
91         Header( eval("qq{$Lang->{Search_archive}}"), "", 1, "", $html );
92         Trailer();
93 }
94
95 1;