From d7aad93e4f7f97b15357b8395eda2f482d5571f6 Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Fri, 31 Aug 2012 13:34:21 -0400 Subject: [PATCH] cc-4288. Added owner to query. --- airtime_mvc/application/models/Datatables.php | 18 ++++++++++-------- airtime_mvc/application/models/StoredFile.php | 14 +++++++++++--- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/airtime_mvc/application/models/Datatables.php b/airtime_mvc/application/models/Datatables.php index 993c17516..e6f1ec1d1 100644 --- a/airtime_mvc/application/models/Datatables.php +++ b/airtime_mvc/application/models/Datatables.php @@ -39,15 +39,17 @@ class Application_Model_Datatables /* * query used to return data for a paginated/searchable datatable. */ - public static function findEntries($con, $displayColumns, $fromTable, $data, $dataProp = "aaData") + public static function findEntries($con, $displayColumns, $fromTable, + $data, $dataProp = "aaData") { $librarySetting = Application_Model_Preference::getCurrentLibraryTableSetting(); + //$displayColumns[] = 'owner'; // map that maps original column position to db name $current2dbname = array(); // array of search terms - $orig2searchTerm= array(); - foreach ($data as $key=>$d) { + $orig2searchTerm = array(); + foreach ($data as $key => $d) { if (strstr($key, "mDataProp_")) { list($dump, $index) = explode("_", $key); $current2dbname[$index] = $d; @@ -82,6 +84,7 @@ class Application_Model_Datatables $sql = $selectorCount." FROM ".$fromTable; $sqlTotalRows = $sql; + if (isset($searchTerms)) { $searchCols = array(); for ($i = 0; $i < $data["iColumns"]; $i++) { @@ -135,8 +138,8 @@ class Application_Model_Datatables $sql .= " OFFSET ".$data["iDisplayStart"]." LIMIT ".$displayLength; } } - try { + $r = $con->query($sqlTotalRows); $totalRows = $r->fetchColumn(0); @@ -173,12 +176,11 @@ class Application_Model_Datatables } catch (Exception $e) { Logging::debug($e->getMessage()); } - return array( - "sEcho" => intval($data["sEcho"]), + "sEcho" => intval($data["sEcho"]), "iTotalDisplayRecords" => intval($totalDisplayRows), - "iTotalRecords" => intval($totalRows), - $dataProp => $results + "iTotalRecords" => intval($totalRows), + $dataProp => $results ); } } diff --git a/airtime_mvc/application/models/StoredFile.php b/airtime_mvc/application/models/StoredFile.php index 59f335c7a..319336941 100644 --- a/airtime_mvc/application/models/StoredFile.php +++ b/airtime_mvc/application/models/StoredFile.php @@ -635,9 +635,11 @@ class Application_Model_StoredFile $displayColumns = array("id", "track_title", "artist_name", "album_title", "genre", "length", "year", "utime", "mtime", "ftype", "track_number", "mood", "bpm", "composer", "info_url", "bit_rate", "sample_rate", "isrc_number", "encoded_by", "label", "copyright", "mime", - "language", "filepath" + "language", "filepath","owner" ); + //Logging::info($datatables); + $plSelect = array(); $blSelect = array(); $fileSelect = array(); @@ -647,7 +649,7 @@ class Application_Model_StoredFile if ($key === "id") { $plSelect[] = "PL.id AS ".$key; $blSelect[] = "BL.id AS ".$key; - $fileSelect[] = $key; + $fileSelect[] = "FILES.id AS $key"; $streamSelect[] = "ws.id AS ".$key; } elseif ($key === "track_title") { $plSelect[] = "name AS ".$key; @@ -664,6 +666,11 @@ class Application_Model_StoredFile $blSelect[] = "login AS ".$key; $fileSelect[] = $key; $streamSelect[] = "login AS ".$key; + } elseif ($key === "owner") { + $plSelect[] = "login AS ".$key; + $blSelect[] = "login AS ".$key; + $fileSelect[] = "sub.login AS $key"; + $streamSelect[] = "login AS ".$key; } //same columns in each table. else if (in_array($key, array("length", "utime", "mtime"))) { @@ -705,7 +712,8 @@ class Application_Model_StoredFile $plTable = "({$plSelect} FROM cc_playlist AS PL LEFT JOIN cc_subjs AS sub ON (sub.id = PL.creator_id))"; $blTable = "({$blSelect} FROM cc_block AS BL LEFT JOIN cc_subjs AS sub ON (sub.id = BL.creator_id))"; - $fileTable = "({$fileSelect} FROM cc_files AS FILES WHERE file_exists = 'TRUE')"; + $fileTable = "({$fileSelect} FROM cc_files AS FILES LEFT JOIN cc_subjs AS sub ON (sub.id = FILES.owner_id) WHERE file_exists = 'TRUE')"; + //$fileTable = "({$fileSelect} FROM cc_files AS FILES WHERE file_exists = 'TRUE')"; $streamTable = "({$streamSelect} FROM cc_webstream AS ws LEFT JOIN cc_subjs AS sub ON (sub.id = ws.creator_id))"; $unionTable = "({$plTable} UNION {$blTable} UNION {$fileTable} UNION {$streamTable}) AS RESULTS";