120 |
return join(" and ", @conditions); |
return join(" and ", @conditions); |
121 |
} |
} |
122 |
|
|
123 |
|
my $sort_def = { |
124 |
|
default => 'date_a', |
125 |
|
sql => { |
126 |
|
share_d => 'shares.name DESC', |
127 |
|
share_a => 'shares.name ASC', |
128 |
|
path_d => 'files.path DESC', |
129 |
|
path_a => 'files.path ASC', |
130 |
|
num_d => 'files.backupnum DESC', |
131 |
|
num_a => 'files.backupnum ASC', |
132 |
|
size_d => 'files.size DESC', |
133 |
|
size_a => 'files.size ASC', |
134 |
|
date_d => 'files.date DESC', |
135 |
|
date_a => 'files.date ASC', |
136 |
|
}, |
137 |
|
est => { |
138 |
|
share_d => 'sname STRD', |
139 |
|
share_a => 'sname STRA', |
140 |
|
path_d => 'filepath STRD', |
141 |
|
path_a => 'filepath STRA', |
142 |
|
num_d => 'backupnum NUMD', |
143 |
|
num_a => 'backupnum NUMA', |
144 |
|
size_d => 'size NUMD', |
145 |
|
size_a => 'size NUMA', |
146 |
|
date_d => 'date NUMD', |
147 |
|
date_a => 'date NUMA', |
148 |
|
} |
149 |
|
}; |
150 |
|
|
151 |
|
sub getSort($$) { |
152 |
|
my ($type, $sort_order) = @_; |
153 |
|
|
154 |
|
$sort_order ||= $sort_def->{'default'}; |
155 |
|
|
156 |
|
die "unknown type: $type" unless ($sort_def->{$type}); |
157 |
|
|
158 |
|
if (my $ret = $sort_def->{$type}->{$sort_order}) { |
159 |
|
return $ret; |
160 |
|
} else { |
161 |
|
# fallback to default sort order |
162 |
|
return $sort_def->{$type}->{ $sort_def->{'default'} }; |
163 |
|
} |
164 |
|
} |
165 |
|
|
166 |
sub getFiles($) { |
sub getFiles($) { |
167 |
my ($param) = @_; |
my ($param) = @_; |
193 |
my $where = getWhere($param); |
my $where = getWhere($param); |
194 |
$sql_where = " WHERE ". $where if ($where); |
$sql_where = " WHERE ". $where if ($where); |
195 |
|
|
196 |
|
my $order = getSort('sql', $param->{'sort'}); |
197 |
|
|
198 |
my $sql_order = qq{ |
my $sql_order = qq{ |
199 |
ORDER BY files.date |
ORDER BY $order |
200 |
LIMIT $on_page |
LIMIT $on_page |
201 |
OFFSET ? |
OFFSET ? |
202 |
}; |
}; |
295 |
|
|
296 |
# $cond->set_max( $offset + $on_page ); |
# $cond->set_max( $offset + $on_page ); |
297 |
$cond->set_options( $HyperEstraier::Condition::SURE ); |
$cond->set_options( $HyperEstraier::Condition::SURE ); |
298 |
$cond->set_order( 'date NUMA' ); |
$cond->set_order( getSort('est', $param->{'sort'} ) ); |
299 |
|
|
300 |
# get the result of search |
# get the result of search |
301 |
my @res; |
my @res; |
326 |
} |
} |
327 |
|
|
328 |
my $row; |
my $row; |
329 |
foreach my $c (qw/fid hname sname backupnum fiilename filepath date type size/) { |
foreach my $c (qw/fid hname sname backupnum filepath date type size/) { |
330 |
$row->{$c} = $doc->attr($c); |
$row->{$c} = $doc->attr($c); |
331 |
} |
} |
332 |
push @res, $row; |
push @res, $row; |
882 |
<table style="fview" width="100%" border="0" cellpadding="2" cellspacing="0"> |
<table style="fview" width="100%" border="0" cellpadding="2" cellspacing="0"> |
883 |
<tr class="fviewheader"> |
<tr class="fviewheader"> |
884 |
<td></td> |
<td></td> |
885 |
<td align="center">Share</td> |
}; |
886 |
<td align="center">Type and Name</td> |
|
887 |
<td align="center">#</td> |
my ($sort_what, $sort_dir) = split(/_/,$param->{'sort'},2); |
888 |
<td align="center">Size</td> |
|
889 |
<td align="center">Date</td> |
sub sort_header($$$) { |
890 |
|
my ($param, $display, $name) = @_; |
891 |
|
|
892 |
|
my $html = '<td align="center"'; |
893 |
|
if (lc($sort_what) eq lc($name)) { |
894 |
|
my $dir = lc($sort_dir); |
895 |
|
$dir =~ tr/ad/da/; |
896 |
|
$param->{'sort'} = $name . '_' . $dir; |
897 |
|
$html .= ' style="border: 1px solid #808080;"'; |
898 |
|
} else { |
899 |
|
$param->{'sort'} = $name . '_a'; |
900 |
|
} |
901 |
|
$html .= '<a href="' . page_uri($param) . '">' . $display . '</a></td>'; |
902 |
|
return $html; |
903 |
|
} |
904 |
|
|
905 |
|
$retHTML .= |
906 |
|
sort_header($param, 'Share', 'share') . |
907 |
|
sort_header($param, 'Type and Name', 'path') . |
908 |
|
sort_header($param, '#', 'num') . |
909 |
|
sort_header($param, 'Size', 'size') . |
910 |
|
sort_header($param, 'Date', 'date'); |
911 |
|
|
912 |
|
$retHTML .= qq{ |
913 |
<td align="center">Media</td> |
<td align="center">Media</td> |
914 |
</tr> |
</tr> |
915 |
}; |
}; |
1000 |
my $max_page = int( $results / $on_page ); |
my $max_page = int( $results / $on_page ); |
1001 |
my $page = 0; |
my $page = 0; |
1002 |
|
|
1003 |
sub page_link($$$) { |
sub page_uri($) { |
1004 |
my ($param,$page,$display) = @_; |
my $param = shift || die "no param?"; |
1005 |
|
|
1006 |
$param->{'offset'} = $page; |
my $uri = $MyURL; |
|
|
|
|
my $html = '<a href = "' . $MyURL; |
|
1007 |
my $del = '?'; |
my $del = '?'; |
1008 |
foreach my $k (keys %{ $param }) { |
foreach my $k (keys %{ $param }) { |
1009 |
if ($param->{$k}) { |
if ($param->{$k}) { |
1010 |
$html .= $del . $k . '=' . ${EscURI( $param->{$k} )}; |
$uri .= $del . $k . '=' . ${EscURI( $param->{$k} )}; |
1011 |
$del = '&'; |
$del = '&'; |
1012 |
} |
} |
1013 |
} |
} |
1014 |
$html .= '">' . $display . '</a>'; |
return $uri; |
1015 |
|
} |
1016 |
|
|
1017 |
|
sub page_link($$$) { |
1018 |
|
my ($param,$page,$display) = @_; |
1019 |
|
|
1020 |
|
$param->{'offset'} = $page if (defined($page)); |
1021 |
|
|
1022 |
|
my $html = '<a href = "' . page_uri($param) . '">' . $display . '</a>'; |
1023 |
} |
} |
1024 |
|
|
1025 |
$retHTML .= '<div style="text-align: center;">'; |
$retHTML .= '<div style="text-align: center;">'; |