/[BackupPC]/trunk/lib/BackupPC/SearchLib.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/BackupPC/SearchLib.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 53 by dpavlin, Sat Aug 20 17:19:48 2005 UTC revision 58 by dpavlin, Sun Aug 21 14:26:23 2005 UTC
# Line 7  use BackupPC::Attrib qw(:all); Line 7  use BackupPC::Attrib qw(:all);
7  use DBI;  use DBI;
8  use DateTime;  use DateTime;
9  use vars qw(%In $MyURL);  use vars qw(%In $MyURL);
10    use Time::HiRes qw/time/;
11    
12  my $on_page = 100;  my $on_page = 100;
13  my $pager_pages = 10;  my $pager_pages = 10;
# Line 98  sub getFiles($$) { Line 99  sub getFiles($$) {
99                  files.date                      AS date,                  files.date                      AS date,
100                  files.type                      AS filetype,                  files.type                      AS filetype,
101                  files.size                      AS size,                  files.size                      AS size,
102            };
103    
104            my $sql_dvd_cols = qq{
105                  dvds.name                       AS dvd                  dvds.name                       AS dvd
106          };          };
107    
# Line 106  sub getFiles($$) { Line 110  sub getFiles($$) {
110                          INNER JOIN shares       ON files.shareID=shares.ID                          INNER JOIN shares       ON files.shareID=shares.ID
111                          INNER JOIN hosts        ON hosts.ID = shares.hostID                          INNER JOIN hosts        ON hosts.ID = shares.hostID
112                          INNER JOIN backups      ON backups.num = files.backupNum and backups.hostID = hosts.ID                          INNER JOIN backups      ON backups.num = files.backupNum and backups.hostID = hosts.ID
113            };
114    
115            my $sql_dvd_from = qq{
116                          LEFT  JOIN dvds         ON dvds.ID = files.dvdid                          LEFT  JOIN dvds         ON dvds.ID = files.dvdid
117          };          };
118    
# Line 126  sub getFiles($$) { Line 133  sub getFiles($$) {
133    
134          my ($results) = $sth->fetchrow_array();          my ($results) = $sth->fetchrow_array();
135    
136          $sth = $dbh->prepare(qq{ select $sql_cols $sql_from $sql_where $sql_order });          $sth = $dbh->prepare(qq{ select $sql_cols $sql_dvd_cols $sql_from $sql_dvd_from $sql_where $sql_order });
137          $sth->execute( $offset );          $sth->execute( $offset );
138    
139          my @ret;          my @ret;
# Line 172  sub getBackupsNotBurned() { Line 179  sub getBackupsNotBurned() {
179                  files.dvdid     IS NULL                  files.dvdid     IS NULL
180          GROUP BY          GROUP BY
181                  backups.hostID, backups.num, hosts.id                  backups.hostID, backups.num, hosts.id
182            ORDER BY min(backups.date)
183          };          };
184          my $sth = $dbh->prepare( $sql );          my $sth = $dbh->prepare( $sql );
185          my @ret;          my @ret;
# Line 179  sub getBackupsNotBurned() { Line 187  sub getBackupsNotBurned() {
187    
188          while ( my $row = $sth->fetchrow_hashref() ) {                while ( my $row = $sth->fetchrow_hashref() ) {      
189                  push(@ret, {                  push(@ret, {
190                           'host'     => $row->{'host'},                           'host'         => $row->{'host'},
191                           'hostid'   => $row->{'hostid'},                           'hostid'       => $row->{'hostid'},
192                           'backupno' => $row->{'backupno'},                           'backupno'     => $row->{'backupno'},
193                           'type'     => $row->{'type'},                           'type'         => $row->{'type'},
194                           'date'     => $row->{'date'}                           'date'         => $row->{'date'},
195                             'age'          => sprintf("%0.1f", ( (time() - $row->{'date'}) / 86400 ) ),
196                         }                         }
197                  );                  );
198          }          }
# Line 228  EOF3 Line 237  EOF3
237          if ($addForm) {          if ($addForm) {
238              $retHTML .= "<td class=\"tableheader\"><input type=\"checkbox\" name=\"allFiles\" onClick=\"checkAll('allFiles');\"></td>";              $retHTML .= "<td class=\"tableheader\"><input type=\"checkbox\" name=\"allFiles\" onClick=\"checkAll('allFiles');\"></td>";
239          }          }
240          $retHTML .=  qq{<td class="tableheader">Host</td><td class="tableheader">Backup no</td><td class="tableheader">Type</td><td class="tableheader">date</td></tr>};          $retHTML .=  qq{
241                    <td class="tableheader">Host</td>
242                    <td class="tableheader">Backup no</td>
243                    <td class="tableheader">Type</td>
244                    <td class="tableheader">date</td>
245                    <td class="tableheader">age/days</td>
246                    </tr>
247            };
248    
249          my @backups = getBackupsNotBurned();          my @backups = getBackupsNotBurned();
250          my $backup;          my $backup;
251    
252          if ($addForm) {          if ($addForm) {
253                  $retHTML .= qq{<tr><td colspan=7 style="tableheader">                  $retHTML .= qq{
254                            <tr><td colspan=7 style="tableheader">
255                          <input type="submit" value="Burn selected backups on medium" name="submitBurner">                          <input type="submit" value="Burn selected backups on medium" name="submitBurner">
256                          </td></tr>};                          </td></tr>
257                    };
258          }          }
259    
260          foreach $backup(@backups) {          foreach $backup(@backups) {
# Line 245  EOF3 Line 263  EOF3
263                            
264                  $retHTML .= "<tr>";                  $retHTML .= "<tr>";
265                  if ($addForm) {                  if ($addForm) {
266                          $retHTML .= qq{<td class="fview"><input type="checkbox" name="fcb} .                          $retHTML .= '<td class="fview"><input type="checkbox" name="fcb' .
267                                  $backup->{'hostid'}."_".$backup->{'backupno'} .                                  $backup->{'hostid'}.'_'.$backup->{'backupno'} .
268                                  qq{" value="} . $backup->{'hostid'}."_".$backup->{'backupno'} .                                  '" value="' . $backup->{'hostid'}.'_'.$backup->{'backupno'} .
269                                  qq{"></td>};                                  '"></td>';
270                  }                            }          
271                            
272                  $retHTML .= '<td class="fviewborder">' . $backup->{'host'} . '</td>' .                  $retHTML .= '<td class="fviewborder">' . $backup->{'host'} . '</td>' .
273                          '<td class="fviewborder">' . $backup->{'backupno'} . '</td>' .                          '<td class="fviewborder">' . $backup->{'backupno'} . '</td>' .
274                          '<td class="fviewborder">' . $backup->{'type'} . '</td>' .                          '<td class="fviewborder">' . $backup->{'type'} . '</td>' .
275                          '<td class="fviewborder">' . epoch_to_iso( $backup->{'date'} ) . '<td>' .                          '<td class="fviewborder">' . epoch_to_iso( $backup->{'date'} ) . '</td>' .
276                            '<td class="fviewborder">' . $backup->{'age'} . '</td>' .
277                          '</tr>';                          '</tr>';
278          }          }
279    
# Line 277  sub displayGrid($$$$) { Line 296  sub displayGrid($$$$) {
296                  $retHTML .= qq{<input type="hidden" value="results" name="search_results">};                  $retHTML .= qq{<input type="hidden" value="results" name="search_results">};
297          }          }
298    
299            my $start_t = time();
300    
301          my ($results, $files) = getFiles($where, $offset);          my ($results, $files) = getFiles($where, $offset);
302    
303            my $dur_t = time() - $start_t;
304            my $dur = sprintf("%0.4fs", $dur_t);
305    
306          my ($from, $to) = (($offset * $on_page) + 1, ($offset * $on_page) + $on_page);          my ($from, $to) = (($offset * $on_page) + 1, ($offset * $on_page) + $on_page);
307    
308          $retHTML .= qq{          $retHTML .= qq{
309          <br/>Found $results files, showing $from - $to          <br/>Found <b>$results files</b> showing <b>$from - $to</b> (took $dur)
310          <table style="fview" width="100%">          <table style="fview" width="100%">
311                  <tr>                  <tr>
312                  <td class="tableheader">Share</td>                  <td class="tableheader">Share</td>

Legend:
Removed from v.53  
changed lines
  Added in v.58

  ViewVC Help
Powered by ViewVC 1.1.26