diff --git a/lib/WebGUI/Utility.pm b/lib/WebGUI/Utility.pm index 3cc8fa0e0..8f00c264a 100644 --- a/lib/WebGUI/Utility.pm +++ b/lib/WebGUI/Utility.pm @@ -60,7 +60,7 @@ sub round { # example: sortByColumn(columnToSort,columnLabel); sub sortByColumn { my ($output); - $output = 'get("paginateAfter") || 25; $url = WebGUI::URL::page(); - $output = $_[0]->displayTitle; + $url = WebGUI::URL::append($url,"all=$session{form}{all}") if ($session{form}{all}); + $url = WebGUI::URL::append($url,"atLeastOne=$session{form}{atLeastOne}") if ($session{form}{atLeastOne}); + $url = WebGUI::URL::append($url,"without=$session{form}{without}") if ($session{form}{without}); + $url = WebGUI::URL::append($url,"exactPhrase=$session{form}{exactPhrase}") if ($session{form}{exactPhrase}); + $url = WebGUI::URL::append($url,"numResults=$numResults"); + $columns = ''.sortByColumn("fileTitle",WebGUI::International::get(14,$namespace),$url). + ''.sortByColumn("briefSynopsis",WebGUI::International::get(15,$namespace),$url). + ''.sortByColumn("dateUploaded",WebGUI::International::get(16,$namespace),$url). + ''; + $url = WebGUI::URL::append($url,"sortDirection=$session{form}{sortDirection}") if ($session{form}{sortDirection}); + $url = WebGUI::URL::append($url,"sort=$session{form}{sort}") if ($session{form}{sort}); + $session{form}{sort} = "sequenceNumber" if ($session{form}{sort} eq ""); + $sql = "select * from DownloadManager_file where wobjectId=".$_[0]->get("wobjectId")." "; + $constraints = WebGUI::Search::buildConstraints([qw(fileTitle downloadFile alternateVersion1 alternateVersion2 briefSynopsis)]); + $sql .= " and ".$constraints if ($constraints ne ""); + $sql .= " order by $session{form}{sort} "; + $sql .= $session{form}{sortDirection}; + $output = $_[0]->displayTitle; $output .= $_[0]->description; - if ($session{var}{adminOn}) { - $output .= '

'.WebGUI::International::get(11,$namespace).'

'; - } - $searchForm = WebGUI::HTMLForm->new(1); - $searchForm->text("keyword",'',$session{form}{keyword}); - $searchForm->submit(WebGUI::International::get(170)); - $head = ''; - if ($session{form}{keyword} ne "") { - $search = " and (fileTitle like '%".$session{form}{keyword}. - "%' or downloadFile like '%".$session{form}{keyword}. - "%' or alternateVersion1 like '%".$session{form}{keyword}. - "%' or alternateVersion2 like '%".$session{form}{keyword}. - "%' or briefSynopsis like '%".$session{form}{keyword}."%') "; - $url = WebGUI::URL::append($url,"keyword=".$session{form}{keyword}); - } - if ($session{form}{sort} ne "") { - $sort = " order by ".$session{form}{sort}; - $url = WebGUI::URL::append($url,"sort=".$session{form}{sort}); + $output = $_[0]->processMacros($output); + if ($session{form}{search}) { + $output .= WebGUI::Search::form({search=>1}); } else { - $sort = " order by sequenceNumber"; + $head = ''; } - if ($session{form}{sortDirection} ne "") { - $sortDirection = $session{form}{sortDirection}; - $url = WebGUI::URL::append($url,"sortDirection=".$session{form}{sortDirection}); - } - $head .= ''; - $sth = WebGUI::SQL->read("select * from DownloadManager_file where wobjectId=".$_[0]->get("wobjectId")." $search $sort $sortDirection"); + $output .= '
'; + $head .= ''.WebGUI::International::get(364).''; + if ($session{var}{adminOn}) { + $head .= ' · '.WebGUI::International::get(11,$namespace).''; + } + $head .= '
'. - sortByColumn("fileTitle",WebGUI::International::get(14,$namespace)). - ''. - sortByColumn("briefSynopsis",WebGUI::International::get(15,$namespace)). - ''. - sortByColumn("dateUploaded",WebGUI::International::get(16,$namespace)). - '
'.$head.$columns; + $sth = WebGUI::SQL->read($sql); while (%download = $sth->hash) { if (WebGUI::Privilege::isInGroup($download{groupToView})) { $file = WebGUI::Attachment->new($download{downloadFile}, @@ -393,15 +391,13 @@ sub www_view { '&did='.$download{downloadId}).'">'.$download{fileTitle}.' · '. - $file->getType.'/'.$file->getSize.''; + '" border=0 width=16 height=16 align="middle">'.$file->getType.'/'.$file->getSize.''; if ($download{alternateVersion1}) { $alt1 = WebGUI::Attachment->new($download{alternateVersion1}, $_[0]->get("wobjectId"), $download{downloadId}); $row[$i] .= ' · '. + .'">'. $alt1->getType.'/'.$alt1->getSize.''; } if ($download{alternateVersion2}) { @@ -409,36 +405,26 @@ sub www_view { $_[0]->get("wobjectId"), $download{downloadId}); $row[$i] .= ' · '. + .'">'. $alt2->getType.'/'.$alt2->getSize.''; } $row[$i] .= ''. - ''. - ''; + $row[$i] .= $download{briefSynopsis}.''.''; $flag = 1; $i++; } } $sth->finish; - unless ($flag) { - $head .= ''; - } - $p = WebGUI::Paginator->new($url,\@row,$_[0]->get("paginateAfter")); - $output .= $searchForm->print if ($p->getNumberOfPages > 1); - $output .= $head; + $output .= '' unless ($flag); + $p = WebGUI::Paginator->new($url,\@row,$numResults); $output .= $p->getPage($session{form}{pn}); $output .= '
'; - if ($_[0]->get("displayThumbnails") - && isIn($file->getType, qw(gif jpeg jpg tif tiff png bmp))) { - $row[$i] .= ''; + if ($_[0]->get("displayThumbnails") && isIn($file->getType, qw(gif jpeg jpg tif tiff png bmp))) { + $row[$i] .= ''; } - $row[$i] .= $download{briefSynopsis}.''. - epochToHuman($download{dateUploaded},"%z").'
'. + epochToHuman($download{dateUploaded},"%z").'
'. - WebGUI::International::get(19,$namespace).'
'.WebGUI::International::get(19,$namespace).'
'; $output .= $p->getBarTraditional($session{form}{pn}); - return $_[0]->processMacros($output); + return $output; }