- for (var i = 0; i < len; i++) {
- var e = f.elements[i];
- if (e.name != 'all' && e.name.substr(0, 3) == 'fcb') {
- if (check_all.checked) {
- if (e.checked) continue;
- var el = element_id("fss" + e.name.substr(3));
- var size = parseInt(el.value) || 0;
- debug('suma: '+suma+' size: '+size);
- if ((suma + size) < media_size) {
- suma += size;
- e.checked = true;
- } else {
- break;
- }
- } else {
- e.checked = false;
- }
+ my $file;
+
+ sub hilite_html($$) {
+ my ($html, $search) = @_;
+ $html =~ s#($search)#<b>$1</b>#gis;
+ return $html;
+ }
+
+ sub restore_link($$$$$$) {
+ my $type = shift;
+ my $action = 'RestoreFile';
+ $action = 'browse' if (lc($type) eq 'dir');
+ return sprintf(qq{<a href="?action=%s&host=%s&num=%d&share=%s&dir=%s">%s</a>}, $action, @_);
+ }
+
+ my $sth_archived;
+ my %archived_cache;
+
+ sub check_archived($$$) {
+ my ($host, $share, $num) = @_;
+
+ if (my $html = $archived_cache{"$host $share $num"}) {
+ return $html;
+ }
+
+ $sth_archived ||= $dbh->prepare(qq{
+ select
+ dvd_nr, note,
+ count(archive_burned.copy) as copies
+ from archive
+ inner join archive_burned on archive_burned.archive_id = archive.id
+ inner join archive_backup on archive.id = archive_backup.archive_id
+ inner join backups on backups.id = archive_backup.backup_id
+ inner join hosts on hosts.id = backups.hostid
+ inner join shares on shares.id = backups.shareid
+ where hosts.name = ? and shares.name = ? and backups.num = ?
+ group by dvd_nr, note
+ });
+
+ my @mediums;
+
+ $sth_archived->execute($host, $share, $num);
+ while (my $row = $sth_archived->fetchrow_hashref()) {
+ push @mediums, '<abbr title="' .
+ $row->{'note'} .
+ ' [' . $row->{'copies'} . ']' .
+ '">' .$row->{'dvd_nr'} .
+ '</abbr>';