/[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 211 by dpavlin, Sun Oct 16 10:57:55 2005 UTC revision 217 by dpavlin, Sun Oct 16 17:41:52 2005 UTC
# Line 121  sub getWhere($) { Line 121  sub getWhere($) {
121  }  }
122    
123  my $sort_def = {  my $sort_def = {
124          default => 'date_a',          search => {
125          sql => {                  default => 'date_a',
126                  share_d => 'shares.name DESC',                  sql => {
127                  share_a => 'shares.name ASC',                          share_d => 'shares.name DESC',
128                  path_d => 'files.path DESC',                          share_a => 'shares.name ASC',
129                  path_a => 'files.path ASC',                          path_d => 'files.path DESC',
130                  num_d => 'files.backupnum DESC',                          path_a => 'files.path ASC',
131                  num_a => 'files.backupnum ASC',                          num_d => 'files.backupnum DESC',
132                  size_d => 'files.size DESC',                          num_a => 'files.backupnum ASC',
133                  size_a => 'files.size ASC',                          size_d => 'files.size DESC',
134                  date_d => 'files.date DESC',                          size_a => 'files.size ASC',
135                  date_a => 'files.date ASC',                          date_d => 'files.date DESC',
136          },                          date_a => 'files.date ASC',
137          est => {                  },
138                  share_d => 'sname STRD',                  est => {
139                  share_a => 'sname STRA',                          share_d => 'sname STRD',
140                  path_d => 'filepath STRD',                          share_a => 'sname STRA',
141                  path_a => 'filepath STRA',                          path_d => 'filepath STRD',
142                  num_d => 'backupnum NUMD',                          path_a => 'filepath STRA',
143                  num_a => 'backupnum NUMA',                          num_d => 'backupnum NUMD',
144                  size_d => 'size NUMD',                          num_a => 'backupnum NUMA',
145                  size_a => 'size NUMA',                          size_d => 'size NUMD',
146                  date_d => 'date NUMD',                          size_a => 'size NUMA',
147                  date_a => 'date NUMA',                          date_d => 'date NUMD',
148                            date_a => 'date NUMA',
149                    }
150            }, burn => {
151                    default => 'date_a',
152                    sql => {
153                            share_d => 'share DESC',
154                            share_a => 'share ASC',
155                            num_d => 'backupnum DESC',
156                            num_a => 'backupnum ASC',
157                            date_d => 'date DESC',
158                            date_a => 'date ASC',
159                            age_d => 'age DESC',
160                            age_a => 'age ASC',
161                            size_d => 'size DESC',
162                            size_a => 'size ASC',
163                            incsize_d => 'inc_size DESC',
164                            incsize_a => 'inc_size ASC',
165                    }
166          }          }
167  };  };
168    
169  sub getSort($$) {  sub getSort($$$) {
170          my ($type, $sort_order) = @_;          my ($part,$type, $sort_order) = @_;
171    
172          $sort_order ||= $sort_def->{'default'};          die "unknown part: $part" unless ($sort_def->{$part});
173            die "unknown type: $type" unless ($sort_def->{$part}->{$type});
174    
175          die "unknown type: $type" unless ($sort_def->{$type});          $sort_order ||= $sort_def->{$part}->{'default'};
176    
177          if (my $ret = $sort_def->{$type}->{$sort_order}) {          if (my $ret = $sort_def->{$part}->{$type}->{$sort_order}) {
178                  return $ret;                  return $ret;
179          } else {          } else {
180                  # fallback to default sort order                  # fallback to default sort order
181                  return $sort_def->{$type}->{ $sort_def->{'default'} };                  return $sort_def->{$part}->{$type}->{ $sort_def->{$part}->{'default'} };
182          }          }
183  }  }
184    
# Line 193  sub getFiles($) { Line 212  sub getFiles($) {
212          my $where = getWhere($param);          my $where = getWhere($param);
213          $sql_where = " WHERE ". $where if ($where);          $sql_where = " WHERE ". $where if ($where);
214    
215          my $order = getSort('sql', $param->{'sort'});          my $order = getSort('search', 'sql', $param->{'sort'});
216    
217          my $sql_order = qq{          my $sql_order = qq{
218                  ORDER BY $order                  ORDER BY $order
# Line 295  sub getFilesHyperEstraier($) { Line 314  sub getFilesHyperEstraier($) {
314    
315  #       $cond->set_max( $offset + $on_page );  #       $cond->set_max( $offset + $on_page );
316          $cond->set_options( $HyperEstraier::Condition::SURE );          $cond->set_options( $HyperEstraier::Condition::SURE );
317          $cond->set_order( getSort('est', $param->{'sort'} ) );          $cond->set_order( getSort('search', 'est', $param->{'sort'} ) );
318    
319          # get the result of search          # get the result of search
320          my @res;          my @res;
# Line 399  sub getGzipSize($$) Line 418  sub getGzipSize($$)
418          );          );
419  }  }
420    
421  sub getBackupsNotBurned() {  sub getBackupsNotBurned($) {
422    
423            my $param = shift;
424          my $dbh = get_dbh();          my $dbh = get_dbh();
425    
426          my $sql = q{          my $order = getSort('burn', 'sql', $param->{'sort'});
427    
428    print STDERR "## sort=". ($param->{'sort'} || 'no sort param') . " burn sql order: $order\n";
429    
430            my $sql = qq{
431                  SELECT                  SELECT
432                          backups.hostID AS hostID,                          backups.hostID AS hostID,
433                          hosts.name AS host,                          hosts.name AS host,
# Line 411  sub getBackupsNotBurned() { Line 435  sub getBackupsNotBurned() {
435                          backups.num AS backupnum,                          backups.num AS backupnum,
436                          backups.type AS type,                          backups.type AS type,
437                          backups.date AS date,                          backups.date AS date,
438                            date_part('epoch',now()) - backups.date as age,
439                          backups.size AS size,                          backups.size AS size,
440                          backups.id AS id,                          backups.id AS id,
441                          backups.inc_size AS inc_size,                          backups.inc_size AS inc_size,
# Line 432  sub getBackupsNotBurned() { Line 457  sub getBackupsNotBurned() {
457                          backups.size,                          backups.size,
458                          backups.inc_size,                          backups.inc_size,
459                          backups.parts                          backups.parts
460                  ORDER BY backups.date                  ORDER BY $order
461          };          };
462          my $sth = $dbh->prepare( $sql );          my $sth = $dbh->prepare( $sql );
463          my @ret;          my @ret;
464          $sth->execute();          $sth->execute();
465    
466          while ( my $row = $sth->fetchrow_hashref() ) {          while ( my $row = $sth->fetchrow_hashref() ) {
467                  $row->{'age'} = sprintf("%0.1f", ( (time() - $row->{'date'}) / 86400 ) );                  $row->{'age'} = sprintf("%0.1f", ( $row->{'age'} / 86400 ) );
468                    #$row->{'age'} = sprintf("%0.1f", ( (time() - $row->{'date'}) / 86400 ) );
469                  $row->{'size'} = sprintf("%0.2f", $row->{'size'} / 1024 / 1024);                  $row->{'size'} = sprintf("%0.2f", $row->{'size'} / 1024 / 1024);
470    
471                  # do some cluster calculation (approximate) and convert to kB                  # do some cluster calculation (approximate) and convert to kB
# Line 450  sub getBackupsNotBurned() { Line 476  sub getBackupsNotBurned() {
476          return @ret;                return @ret;      
477  }  }
478    
479  sub displayBackupsGrid() {  sub displayBackupsGrid($) {
480    
481            my $param = shift;
482    
483          my $retHTML .= q{          my $retHTML .= q{
484                  <form id="forma" method="POST" action="}.$MyURL.q{?action=burn">                  <form id="forma" method="POST" action="}.$MyURL.q{?action=burn">
# Line 785  EOF3 Line 813  EOF3
813                          <td class="tableheader">                          <td class="tableheader">
814                                  <input type="checkbox" name="allFiles" id="allFiles" onClick="checkAll('allFiles');">                                  <input type="checkbox" name="allFiles" id="allFiles" onClick="checkAll('allFiles');">
815                          </td>                          </td>
816                          <td align="center">Share</td>          } .
817                          <td align="center">Backup no</td>                  sort_header($param, 'Share', 'share', 'center') .
818                    sort_header($param, '#', 'num', 'center') .
819            qq{
820                          <td align="center">Type</td>                          <td align="center">Type</td>
821                          <td align="center">date</td>          } .
822                          <td align="center">age/days</td>                  sort_header($param, 'Date', 'date', 'center') .
823                          <td align="center">size/MB</td>                  sort_header($param, 'Age/days', 'age', 'center') .
824                          <td align="center">gzip size/kB</td>                  sort_header($param, 'Size/Mb', 'size', 'center') .
825                    sort_header($param, 'gzip size/Kb', 'incsize', 'center') .
826            qq{
827                          </tr>                          </tr>
   
828          };          };
829    
830          my @color = (' bgcolor="#e0e0e0"', '');          my @color = (' bgcolor="#e0e0e0"', '');
# Line 801  EOF3 Line 832  EOF3
832          my $i = 0;          my $i = 0;
833          my $host = '';          my $host = '';
834    
835          foreach my $backup ( getBackupsNotBurned() ) {          foreach my $backup ( getBackupsNotBurned($param) ) {
836    
837                  if ($host ne $backup->{'host'}) {                  if ($host ne $backup->{'host'}) {
838                          $i++;                          $i++;
# Line 884  sub displayGrid($) { Line 915  sub displayGrid($) {
915                  <td></td>                  <td></td>
916          };          };
917    
918          my ($sort_what, $sort_dir) = split(/_/,$param->{'sort'},2);          sub sort_header($$$$) {
919                    my ($param, $display, $name, $align) = @_;
920    
921          sub sort_header($$$) {                  my ($sort_what, $sort_dir) = split(/_/,$param->{'sort'},2);
                 my ($param, $display, $name) = @_;  
922    
923                  my $html = '<td align="center"';                  my $old_sort = $param->{'sort'};
924    
925                    my $html = qq{<td align="$align"};
926                  if (lc($sort_what) eq lc($name)) {                  if (lc($sort_what) eq lc($name)) {
927                          my $dir = lc($sort_dir);                          my $dir = lc($sort_dir);
928                          $dir =~ tr/ad/da/;                          $dir =~ tr/ad/da/;
# Line 899  sub displayGrid($) { Line 932  sub displayGrid($) {
932                          $param->{'sort'} = $name . '_a';                          $param->{'sort'} = $name . '_a';
933                  }                  }
934                  $html .= '<a href="' . page_uri($param) . '">' . $display . '</a></td>';                  $html .= '<a href="' . page_uri($param) . '">' . $display . '</a></td>';
935                    $param->{'sort'} = $old_sort;
936    
937                  return $html;                  return $html;
938          }          }
939    
940          $retHTML .=          $retHTML .=
941                  sort_header($param, 'Share', 'share') .                  sort_header($param, 'Share', 'share', 'center') .
942                  sort_header($param, 'Type and Name', 'path') .                  sort_header($param, 'Type and Name', 'path', 'center') .
943                  sort_header($param, '#', 'num') .                  sort_header($param, '#', 'num', 'center') .
944                  sort_header($param, 'Size', 'size') .                  sort_header($param, 'Size', 'size', 'center') .
945                  sort_header($param, 'Date', 'date');                  sort_header($param, 'Date', 'date', 'center');
946    
947          $retHTML .= qq{          $retHTML .= qq{
948                  <td align="center">Media</td>                  <td align="center">Media</td>

Legend:
Removed from v.211  
changed lines
  Added in v.217

  ViewVC Help
Powered by ViewVC 1.1.26