/[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 4 by dpavlin, Wed Jun 22 19:22:51 2005 UTC revision 16 by dpavlin, Mon Jul 11 11:51:09 2005 UTC
# Line 10  use DBI; Line 10  use DBI;
10  sub getUnits() {  sub getUnits() {
11      my @ret = ();      my @ret = ();
12      my $tmp;      my $tmp;
13      my $dbh = DBI->connect( "dbi:SQLite:dbname=$Conf{SearchDB}",      my $dbh = DBI->connect( "dbi:SQLite:dbname=${TopDir}/$Conf{SearchDB}",
14          "", "", { RaiseError => 1, AutoCommit => 1 } );          "", "", { RaiseError => 1, AutoCommit => 1 } );
15      my $st =      my $st =
16        $dbh->prepare(        $dbh->prepare(
# Line 117  sub getWhere($) { Line 117  sub getWhere($) {
117      return $retSQL;      return $retSQL;
118  }  }
119    
120  sub getFiles($)  sub getFiles($$)
121    {    {
122        my ($where) = @_;        my ($where, $offset) = @_;
123                
124        my $dbh = DBI->connect( "dbi:SQLite:dbname=$Conf{SearchDB}",        
125          my $dbh = DBI->connect( "dbi:SQLite:dbname=${TopDir}/$Conf{SearchDB}",
126          "", "", { RaiseError => 1, AutoCommit => 1 } );          "", "", { RaiseError => 1, AutoCommit => 1 } );
127        my $sql =                  my $sql =          
128          q{            q{  
129                SELECT files.id                       AS fid,                  SELECT  files.id                        AS fid,
130                       hosts.name                     AS hname,                          hosts.name                      AS hname,
131                       shares.name                    AS sname,                          shares.name                     AS sname,
132                       shares.share                   AS sharename,                          shares.share                    AS sharename,
133                       backups.num                    AS backupNum,                          files.backupNum                 AS backupNum,
134                       files.name                     AS filename,                          files.name                      AS filename,
135                       files.path                     AS filepath,                          files.path                      AS filepath,
136                       shares.share||files.fullpath AS networkPath,                          shares.share||files.fullpath    AS networkPath,
137                       date(files.date, 'unixepoch', 'localtime') AS date,                          date(files.date, 'unixepoch', 'localtime') AS date,
138                       files.type                     AS filetype,                          files.type                      AS filetype,
139                       files.size                     AS size,                          files.size                      AS size,
140                       dvds.name                      AS dvd                          dvds.name                       AS dvd
141                    FROM                  FROM files
142                       files                          INNER JOIN shares       ON files.shareID=shares.ID
143                          INNER JOIN shares  ON files.shareID=shares.ID                          INNER JOIN hosts        ON hosts.ID = shares.hostID
144                          INNER JOIN hosts   ON hosts.ID = shares.hostID                          LEFT  JOIN dvds         ON dvds.ID = files.dvdid
                         INNER JOIN backups ON backups.hostID = hosts.ID  
                         LEFT  JOIN dvds    ON dvds.ID = files.dvdid  
                       
145            };            };
146    
147        if (defined($where) && $where ne "")        if (defined($where) && $where ne "")
# Line 151  sub getFiles($) Line 149  sub getFiles($)
149              $sql .= " WHERE ". $where;                    $sql .= " WHERE ". $where;      
150          }          }
151    
152          $sql .=
153            q{          
154                ORDER BY files.id
155                  LIMIT 100
156                  OFFSET ? * 100 + 1
157            };
158          
159          
160                
161        my $st = $dbh->prepare(        my $st = $dbh->prepare(
162            $sql            $sql
163            );                );    
164          if (!defined($offset) && $offset ne "")
165          {
166            $st->bind_param(1, $offset);
167          }
168          else
169          {
170            $st->bind_param(1,0);
171          }
172        $st->execute;        $st->execute;
173                
174        my @ret = ();        my @ret = ();
# Line 188  sub getFiles($) Line 201  sub getFiles($)
201    
202  sub getBackupsNotBurned()  sub getBackupsNotBurned()
203    {    {
204        my $dbh = DBI->connect( "dbi:SQLite:dbname=$Conf{SearchDB}",        my $dbh = DBI->connect( "dbi:SQLite:dbname=${TopDir}/$Conf{SearchDB}",
205          "", "", { RaiseError => 1, AutoCommit => 1 } );                "", "", { RaiseError => 1, AutoCommit => 1 } );      
206        my $sql = q{        my $sql = q{
207            SELECT            SELECT
# Line 307  EOF3 Line 320  EOF3
320        
321    }          }      
322    
323  sub displayGrid($$)  sub displayGrid($$$)
324    {    {
325        my ($where, $addForm) = @_;        my ($where, $addForm, $offset) = @_;
326        my $retHTML = "";        my $retHTML = "";
327                
328        if ($addForm)        if ($addForm)
329          {          {
330        $retHTML .= <<EOF3;                $retHTML .= q{<form name="forma" method="POST" action="}."$MyURL"."?action=search\"";
331  <script language="javascript" type="text/javascript">                $retHTML.= q{<input type="hidden" value="search" name="action">};
 <!--  
   
     function checkAll(location)  
     {  
       for (var i=0;i<document.forma.elements.length;i++)  
       {  
         var e = document.forma.elements[i];  
         if ((e.checked || !e.checked) && e.name != \'all\') {  
             if (eval("document.forma."+location+".checked")) {  
                 e.checked = true;  
             } else {  
                 e.checked = false;  
             }  
         }  
       }  
     }  
   
   
 //-->  
 </script>        
 EOF3  
               $retHTML .= q{<form name="forma" method="POST" action="}."$MyURL"."?action=burn\"";  
               $retHTML.= q{<input type="hidden" value="burn" name="action">};  
332                $retHTML .= q{<input type="hidden" value="results" name="search_results">};                $retHTML .= q{<input type="hidden" value="results" name="search_results">};
333          }          }
334        $retHTML .= "<table style=\"fview\">";        $retHTML .= "<table style=\"fview\">";
335        $retHTML .= "<tr> ";        $retHTML .= "<tr> ";
       if ($addForm)  
         {  
             $retHTML .= "<td class=\"tableheader\"><input type=\"checkbox\" name=\"allFiles\" onClick=\"checkAll('allFiles');\"></td>";  
         }  
336        $retHTML .=  "<td class=\"tableheader\">Host</td> <td class=\"tableheader\">Name</td> <td class=\"tableheader\">Type</td> <td class=\"tableheader\">backup no.</td> <td class=\"tableheader\">size</td> <td class=\"tableheader\">date</td>  <td class=\"tableheader\">Media</td></tr>";        $retHTML .=  "<td class=\"tableheader\">Host</td> <td class=\"tableheader\">Name</td> <td class=\"tableheader\">Type</td> <td class=\"tableheader\">backup no.</td> <td class=\"tableheader\">size</td> <td class=\"tableheader\">date</td>  <td class=\"tableheader\">Media</td></tr>";
337        my @files = getFiles($where);        my @files = getFiles($where, $offset);
338        my $file;        my $file;
339    
       if ($addForm)  
         {  
             $retHTML .= "<tr>";  
             $retHTML .= "<td colspan=7 style=\"tableheader\">";  
             $retHTML .= "<input type=\"submit\" value=\"Burn selected files on medium\" name=\"submitBurner\">";  
             $retHTML .= "</td>";  
             $retHTML .= "</tr>";  
               
         }  
340        foreach $file(@files)        foreach $file(@files)
341          {          {
342              my $ftype = "";              my $ftype = "";
# Line 373  EOF3 Line 350  EOF3
350                    $ftype = "file";                    $ftype = "file";
351                }                }
352              $retHTML .= "<tr>";              $retHTML .= "<tr>";
             if ($addForm)  
               {  
                   $retHTML .= "<td class=\"fview\"> <input type=\"checkbox\" name=\"fcb"  
                     .$file->{'id'}  
                   ."\" value=\"".$file->{'id'}."\"> </td>";  
               }      
               
353              $retHTML .= "<td class=\"fviewborder\">" . $file->{'hname'} ."</td>";              $retHTML .= "<td class=\"fviewborder\">" . $file->{'hname'} ."</td>";
354              $retHTML .= "<td class=\"fviewborder\">" . $file->{'fname'} . "</td>";              $retHTML .= "<td class=\"fviewborder\">" . $file->{'fname'} . "</td>";
355              $retHTML .= "<td class=\"fviewborder\">" . $ftype . "</td>";              $retHTML .= "<td class=\"fviewborder\">" . $ftype . "</td>";
# Line 390  EOF3 Line 360  EOF3
360              $retHTML .= "</tr>";              $retHTML .= "</tr>";
361          }          }
362        $retHTML .= "</table>";        $retHTML .= "</table>";
363        if ($addForm)  
364          
365    
366          $retHTML .= "<INPUT TYPE=\"hidden\" VALUE=\"\" NAME=\"offset\">";
367          for (my $ii = 1; $ii <= $#files; $ii++)
368          {
369              $retHTML .= "<a href = \"#\" onclick=\"document.forma.offset.value=$ii;document.forma.submit();\">$ii</a>";
370              if ($ii < $#files)
371                {
372                    $retHTML .= " | ";
373                }
374          }
375    
376    
377           if ($addForm)
378         {         {
379             $retHTML .= "</form>";             $retHTML .= "</form>";
380         }         }

Legend:
Removed from v.4  
changed lines
  Added in v.16

  ViewVC Help
Powered by ViewVC 1.1.26