/[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 117 by dpavlin, Sun Sep 11 13:05:06 2005 UTC revision 127 by dpavlin, Thu Sep 22 09:27:17 2005 UTC
# Line 15  my $pager_pages = 10; Line 15  my $pager_pages = 10;
15  my $dsn = $Conf{SearchDSN};  my $dsn = $Conf{SearchDSN};
16  my $db_user = $Conf{SearchUser} || '';  my $db_user = $Conf{SearchUser} || '';
17    
18  my $index_path = $Conf{HyperEstraierIndex};  my $hest_index_path = $Conf{HyperEstraierIndex};
 if ($index_path) {  
         $index_path = $TopDir . '/' . $index_path;  
         $index_path =~ s#//#/#g;  
 }  
19    
20  my $dbh;  my $dbh;
21    
# Line 198  sub getFilesHyperEstraier($) { Line 194  sub getFilesHyperEstraier($) {
194          my $offset = $param->{'offset'} || 0;          my $offset = $param->{'offset'} || 0;
195          $offset *= $on_page;          $offset *= $on_page;
196    
197          die "no index_path?" unless ($index_path);          die "no index_path?" unless ($hest_index_path);
198    
199          use HyperEstraier;          use HyperEstraier;
200    
201          my ($index_path, $index_node_url) = getHyperEstraier_url($index_path);          my ($index_path, $index_node_url) = getHyperEstraier_url($hest_index_path);
202    
203          # open the database          # open the database
204          my $db;          my $db;
# Line 300  sub getGzipName($$$) Line 296  sub getGzipName($$$)
296  sub getBackupsNotBurned() {  sub getBackupsNotBurned() {
297    
298          my $dbh = get_dbh();          my $dbh = get_dbh();
299          my $sql = q{  
300          SELECT          my $sql = q{
301                  backups.hostID          AS hostid,                  SELECT
302                  min(hosts.name)         AS host,                          backups.hostID AS hostID,
303                  min(shares.name)        AS share,                          hosts.name AS host,
304                  backups.num             AS backupnum,                          shares.name AS share,
305                  min(backups.type)       AS type,                          backups.id AS backupnum,
306                  min(backups.date)       AS date,                          backups.type AS type,
307                  min(backups.size)       AS size                          backups.date AS date,
308          FROM files                          backups.size AS size
309                  INNER JOIN shares       ON files.shareID=shares.ID                  FROM backups
310                  INNER JOIN hosts        ON hosts.ID = shares.hostID                  INNER JOIN shares       ON backups.shareID=shares.ID
311                  INNER JOIN backups      ON backups.num = files.backupnum and backups.hostID = hosts.ID AND backups.shareID = shares.ID                  INNER JOIN hosts        ON backups.hostID = hosts.ID
312          GROUP BY                  LEFT OUTER JOIN archive_backup ON archive_backup.backup_id = backups.id AND archive_backup.backup_id IS NULL
313                  backups.hostID, backups.num, backups.shareid                  WHERE backups.size > 0
314          ORDER BY min(backups.date)                  GROUP BY
315                            backups.hostID,
316                            hosts.name,
317                            shares.name,
318                            backups.num,
319                            backups.shareid,
320                            backups.id,
321                            backups.type,
322                            backups.date,
323                            backups.size
324                    ORDER BY backups.date
325          };          };
326          my $sth = $dbh->prepare( $sql );          my $sth = $dbh->prepare( $sql );
327          my @ret;          my @ret;
# Line 334  sub getBackupsNotBurned() { Line 340  sub getBackupsNotBurned() {
340          return @ret;                return @ret;      
341  }  }
342    
343  sub displayBackupsGrid()  sub displayBackupsGrid() {
344    {  
345        my $retHTML = "";          my $retHTML .= q{
346                          <form id="forma" method="POST" action=};
347          $retHTML .= <<EOF3;                  $retHTML .= "\"".$MyURL."\"";
348  <script language="javascript" type="text/javascript">                  $retHTML .= q{?action=burn>
349            };
350    
351            $retHTML .= <<'EOF3';
352    <style>
353  <!--  <!--
354    
355      function checkAll(location)  div#fixedBox
356      {
357      position: absolute;
358      bottom: 1em;
359      left: 0.5em;
360      padding: 0.5em;
361      width: 10em;
362      background: #e0f0e0;
363      border: 1px solid #00ff00;
364      }
365    @media screen
366      {
367      div#fixedBox
368        {
369        position: fixed;
370        }
371      /* Don't do this at home */
372      * html
373        {
374        overflow-y: hidden;
375        }
376      * html body
377      {      {
378        for (var i=0;i<document.forma.elements.length;i++)      overflow-y: auto;
379        {      height: 100%;
380          var e = document.forma.elements[i];      padding: 0 1em 0 12em;
381          if ((e.checked || !e.checked) && e.name != \'all\') {      font-size: 100%;
             if (eval("document.forma."+location+".checked")) {  
                 e.checked = true;  
             } else {  
                 e.checked = false;  
             }  
         }  
       }  
382      }      }
383      * html div#fixedBox
384        {
385        position: absolute;  
386        }
387      /* All done. */
388      }
389    
390    -->
391    </style>
392    <script language="javascript" type="text/javascript">
393    <!--
394    
395    var debug_div = null;
396    
397    function debug(msg) {
398    //      return; // Disable debugging
399    
400            if (! debug_div) debug_div = document.getElementById('debug');
401    
402            // this will create debug div if it doesn't exist.
403            if (! debug_div) {
404                    debug_div = document.createElement('div');
405                    if (document.body) document.body.appendChild(debug_div);
406                    else debug_div = null;
407            }
408            if (debug_div) {
409                    debug_div.appendChild(document.createTextNode(msg));
410                    debug_div.appendChild(document.createElement("br"));
411            }
412    }
413    
414    
415    var element_id_cache = Array();
416    
417    function element_id(name,element) {
418            if (! element_id_cache[name]) {
419                    element_id_cache[name] = self.document.getElementById(name);
420            }
421            return element_id_cache[name];
422    }
423    
424    function checkAll(location) {
425            var len = element_id('forma').elements.length;
426            var check_all = element_id('allFiles');
427    
428            for (var i = 0; i < len; i++) {
429    
430                    var e = element_id('forma').elements[i];
431                    if ((e.checked || !e.checked) && e.name != 'all') {
432                            if (check_all.checked) {
433                                    e.checked = true;
434                            } else {
435                                    e.checked = false;
436                            }
437                    }
438            }
439    
440            sumiraj();
441    }
442        
443    function sumiraj(e) {
444            var suma = parseInt(element_id('forma').totalsize.value) || 0;
445            var len = element_id('forma').elements.length;
446            if (e) {
447                    var size = parseInt( element_id("fss" + e.name.substr(3)).value );
448                    if (e.checked) {
449                            suma += size;
450                    } else {
451                            suma -= size;
452                    }
453            } else {
454                    suma = 0;
455                    for (var i = 0; i < len; i++) {
456                            var e = element_id('forma').elements[i];
457                            if (e.name != 'all' && e.checked && e.name.substr(0,3) == 'fcb') {
458                                    var el = element_id("fss" + e.name.substr(3));
459                                    if (el && el.value) suma += parseInt(el.value) || 0;
460                            }
461                    }
462            }
463            element_id('forma').totalsize.value = suma;
464            debug('total size: '+suma);
465            return suma;
466    }
467    
468    if (!self.body) self.body = new Object();
469    self.onload = self.document.onload = self.body.onload = function() {
470            sumiraj();
471    }
472    
473  //-->  //-->
474  </script>        </script>
475    <div id="fixedBox">
476    
477    Size:
478    <input type="text" name="totalsize" size="7" readonly>
479    <br/>
480    Note:
481    <br/>
482    <textarea name="note" cols="10" rows="5">
483    </textarea>
484    <br/>
485    <input type="submit" value="Burn selected" name="submitBurner">
486    
487    </div>
488    <div id="debug" style="float: right; width: 10em; border: 1px #ff0000 solid; background-color: #ffe0e0; -moz-opacity: 0.7;">
489    no debug output yet
490    </div>
491  EOF3  EOF3
492          $retHTML .= q{          $retHTML .= q{
493                  <form name="forma" method="GET" action="$MyURL?action=burn">                          <input type="hidden" value="burn" name="action">
494                  <input type="hidden" value="burn" name="action">                          <input type="hidden" value="results" name="search_results">
495                  <input type="hidden" value="results" name="search_results">                          <table style="fview" border="0" cellspacing="0" cellpadding="2">
496                  <table style="fview" border="0" cellspacing="0" cellpadding="2">                          <tr class="tableheader">
497                  <tr class="tableheader">                          <td class="tableheader">
498                  <td class="tableheader">                                  <input type="checkbox" name="allFiles" id="allFiles" onClick="checkAll('allFiles');">
499                          <input type="checkbox" name="allFiles" onClick="checkAll('allFiles');">                          </td>
500                  </td>                          <td align="center">Share</td>
501                  <td align="center">Share</td>                          <td align="center">Backup no</td>
502                  <td align="center">Backup no</td>                          <td align="center">Type</td>
503                  <td align="center">Type</td>                          <td align="center">date</td>
504                  <td align="center">date</td>                          <td align="center">age/days</td>
505                  <td align="center">age/days</td>                          <td align="center">size/MB</td>
506                  <td align="center">size/MB</td>                          <td align="center">gzip size</td>
507                  <td align="center">gzip size</td>                          </tr>
508                  </tr>  
   
                 <tr><td colspan=7 style="tableheader">  
                 <input type="submit" value="Burn selected backups on medium" name="submitBurner">  
                 </td></tr>  
509          };          };
510    
511          my @color = (' bgcolor="#e0e0e0"', '');          my @color = (' bgcolor="#e0e0e0"', '');
# Line 394  EOF3 Line 520  EOF3
520                          $host = $backup->{'host'};                          $host = $backup->{'host'};
521                  }                  }
522                  my $ftype = "";                  my $ftype = "";
523                
524                  $retHTML .= "<tr" . $color[$i %2 ] . ">";                  $retHTML .=
525                  $retHTML .= '<td class="fview"><input type="checkbox" name="fcb' .                          '<tr' . $color[$i %2 ] . '>
526                                  $backup->{'hostid'}.'_'.$backup->{'backupnum'} .                          <td class="fview">';
527                                  '" value="' . $backup->{'hostid'}.'_'.$backup->{'backupnum'} .                  # FIXME
528                                  '"></td>';                  #$backup->{'fs_size'} = int($backup->{'size'} * 1024);
529                                if (($backup->{'fs_size'} || 0) > 0) {
530                            $retHTML .= '
531                            <input type="checkbox" name="fcb' .
532                            $backup->{'hostid'}.'_'.$backup->{'backupnum'} .
533                            '" value="' . $backup->{'hostid'}.'_'.$backup->{'backupnum'} .
534                            '" onClick="sumiraj(this);">';
535                    }
536                  $retHTML .=                  $retHTML .=
537                            '</td>' .
538                          '<td align="right">' . $backup->{'host'} . ':' . $backup->{'share'} . '</td>' .                          '<td align="right">' . $backup->{'host'} . ':' . $backup->{'share'} . '</td>' .
539                          '<td align="center">' . $backup->{'backupnum'} . '</td>' .                          '<td align="center">' . $backup->{'backupnum'} . '</td>' .
540                          '<td align="center">' . $backup->{'type'} . '</td>' .                          '<td align="center">' . $backup->{'type'} . '</td>' .
541                          '<td align="center">' . epoch_to_iso( $backup->{'date'} ) . '</td>' .                          '<td align="center">' . epoch_to_iso( $backup->{'date'} ) . '</td>' .
542                          '<td align="center">' . $backup->{'age'} . '</td>' .                          '<td align="center">' . $backup->{'age'} . '</td>' .
543                          '<td align="right">' . $backup->{'size'} . '</td>' .                          '<td align="right">' . $backup->{'size'} . '</td>' .
544                          '<td align="right">' . $backup->{'fs_size'} .'</td>' .                          '<td align="right">' . $backup->{'fs_size'} .
545                          "</tr>\n";                          '<input type="hidden" iD="fss'.$backup->{'hostid'}.'_'.$backup->{'backupnum'} . '" value="'. $backup->{'fs_size'} .'"></td>' .
   
546    
547                            "</tr>\n";
548          }          }
549    
550          $retHTML .= "</table>";          $retHTML .= "</table>";

Legend:
Removed from v.117  
changed lines
  Added in v.127

  ViewVC Help
Powered by ViewVC 1.1.26