full functionality of media library now available using datatables, advanced search is not done.
This commit is contained in:
parent
a0ecbecf3b
commit
f6d270616a
4 changed files with 80 additions and 13 deletions
|
@ -1742,11 +1742,14 @@ class StoredFile {
|
|||
return $CC_CONFIG['accessDir']."/$p_token.$p_ext";
|
||||
}
|
||||
|
||||
public static function searchFiles($offset, $limit, $md=NULL, $order=NULL, $quick=false)
|
||||
public static function searchFiles($offset, $limit, $data)
|
||||
{
|
||||
global $CC_CONFIG, $CC_DBC, $g_metadata_xml_to_db_mapping;
|
||||
|
||||
$columnsDisplayed = array("id", "track_title", "artist_name", "album_title", "track_number", "length", "ftype");
|
||||
$columnsDisplayed = explode(",", $data["sColumns"]);
|
||||
|
||||
if($data["sSearch"] !== "")
|
||||
$searchTerms = explode(" ", $data["sSearch"]);
|
||||
|
||||
$plSelect = "SELECT ";
|
||||
$fileSelect = "SELECT ";
|
||||
|
@ -1788,14 +1791,67 @@ class StoredFile {
|
|||
|
||||
UNION
|
||||
|
||||
(".$fileSelect."id FROM ".$CC_CONFIG["filesTable"]." AS FILES)) AS RESULTS ";
|
||||
(".$fileSelect."id FROM ".$CC_CONFIG["filesTable"]." AS FILES)) AS RESULTS";
|
||||
|
||||
$sql = $selectorCount." ".$fromTable;
|
||||
$totalRows = $CC_DBC->getOne($sql);
|
||||
|
||||
// Where clause
|
||||
|
||||
if(isset($searchTerms)) {
|
||||
|
||||
$searchCols = array();
|
||||
|
||||
for($i=0; $i<$data["iColumns"]; $i++) {
|
||||
|
||||
if($data["bSearchable_".$i] == "true") {
|
||||
$searchCols[] = $columnsDisplayed[$i];
|
||||
}
|
||||
}
|
||||
|
||||
$outerCond = array();
|
||||
|
||||
foreach($searchTerms as $term) {
|
||||
|
||||
$innerCond = array();
|
||||
|
||||
foreach($searchCols as $col) {
|
||||
|
||||
$innerCond[] = "{$col}::text ILIKE '%{$term}%'";
|
||||
}
|
||||
|
||||
$outerCond[] = join(" OR ", $innerCond);
|
||||
}
|
||||
|
||||
$where = join(" AND ", $outerCond);
|
||||
|
||||
$sql = $selectorCount." ".$fromTable." WHERE ".$where;
|
||||
$totalDisplayRows = $CC_DBC->getOne($sql);
|
||||
}
|
||||
|
||||
// End Where clause
|
||||
|
||||
// Order By clause
|
||||
|
||||
$orderby = array();
|
||||
for($i=0; $i<$data["iSortingCols"]; $i++){
|
||||
$orderby[] = $columnsDisplayed[$data["iSortCol_".$i]]." ".$data["sSortDir_".$i];
|
||||
}
|
||||
$orderby[] = "id";
|
||||
$orderby = join("," , $orderby);
|
||||
|
||||
// End Order By clause
|
||||
|
||||
//ordered by integer as expected by datatables.
|
||||
$CC_DBC->setFetchMode(DB_FETCHMODE_ORDERED);
|
||||
$sql = $selectorRows." ".$fromTable." ORDER BY id OFFSET ".$offset." LIMIT ".$limit;
|
||||
|
||||
if(isset($where)) {
|
||||
$sql = $selectorRows." ".$fromTable." WHERE ".$where." ORDER BY ".$orderby." OFFSET ".$offset." LIMIT ".$limit;
|
||||
}
|
||||
else {
|
||||
$sql = $selectorRows." ".$fromTable." ORDER BY ".$orderby." OFFSET ".$offset." LIMIT ".$limit;
|
||||
}
|
||||
|
||||
$results = $CC_DBC->getAll($sql);
|
||||
//echo $results;
|
||||
//echo $sql;
|
||||
|
@ -1803,7 +1859,11 @@ class StoredFile {
|
|||
//put back to default fetch mode.
|
||||
$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC);
|
||||
|
||||
return array("iTotalDisplayRecords" => $totalRows, "iTotalRecords" => $totalRows, "aaData" => $results);
|
||||
if(!isset($totalDisplayRows)) {
|
||||
$totalDisplayRows = $totalRows;
|
||||
}
|
||||
|
||||
return array("iTotalDisplayRecords" => $totalDisplayRows, "iTotalRecords" => $totalRows, "aaData" => $results);
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue