diff --git a/include/objectManager.php b/include/objectManager.php index 52dd687..4f9660e 100644 --- a/include/objectManager.php +++ b/include/objectManager.php @@ -532,14 +532,14 @@ class ObjectManager $oObject = new $this->sClass(); if(!method_exists($oObject, "objectGetItemsPerPage") || - $oObject->objectGetItemsPerPage() === FALSE) + $oObject->objectGetItemsPerPage($this->bIsQueue) === FALSE) { /* Do not enable the MultiPage controls */ $this->oMultiPage->MultiPage(FALSE); return; } - $aReturn = $oObject->objectGetItemsPerPage(); + $aReturn = $oObject->objectGetItemsPerPage($this->bIsQueue); $aItemsPerPage = $aReturn[0]; $iDefaultPerPage = $aReturn[1]; diff --git a/include/testData.php b/include/testData.php index ae29b5a..8f5b341 100644 --- a/include/testData.php +++ b/include/testData.php @@ -841,10 +841,24 @@ class testData{ return $oRow->count; } - function objectGetEntries($bQueued, $bRejected, $sOrderBy = "testingId") + function objectGetEntries($bQueued, $bRejected, $iRows = 0, $iStart = 0, $sOrderBy = "testingId") { $oTest = new testData(); $sQueued = objectManager::getQueueString($bQueued, $bRejected); + + $sLimit = ""; + + /* Should we add a limit clause to the query? */ + if($iRows || $iStart) + { + $sLimit = " LIMIT ?,?"; + + /* Selecting 0 rows makes no sense, so we assume the user wants to select all of them + after an offset given by iStart */ + if(!$iRows) + $iRows = testData::objectGetEntriesCount($bQueued, $bRejected); + } + if($bQueued && !$oTest->canEdit()) { if($bRejected) @@ -856,7 +870,7 @@ class testData{ AND testResults.submitterId = '?' AND - testResults.queued = '?' ORDER BY '?'"; + testResults.queued = '?' ORDER BY '?'$sLimit"; } else { $sQuery = "SELECT testResults.* FROM testResults, appVersion, @@ -881,10 +895,17 @@ class testData{ ) ) AND - testResults.queued = '?' ORDER BY '?'"; + testResults.queued = '?' ORDER BY '?'$sLimit"; + } + if($sLimit) + { + $hResult = query_parameters($sQuery, $_SESSION['current']->iUserId, + $sQueued, $sOrderBy, $iStart, $iRows); + } else + { + $hResult = query_parameters($sQuery, $_SESSION['current']->iUserId, + $sQueued, $sOrderBy); } - $hResult = query_parameters($sQuery, $_SESSION['current']->iUserId, - $sQueued, $sOrderBy); } else { $sQuery = "SELECT testResults.* FROM testResults, appVersion WHERE @@ -892,8 +913,11 @@ class testData{ AND appVersion.queued = 'false' AND - testResults.queued = '?' ORDER by '?'"; - $hResult = query_parameters($sQuery, $sQueued, $sOrderBy); + testResults.queued = '?' ORDER by '?'$sLimit"; + if($sLimit) + $hResult = query_parameters($sQuery, $sQueued, $sOrderBy, $iStart, $iRows); + else + $hResult = query_parameters($sQuery, $sQueued, $sOrderBy); } if(!$hResult) @@ -1037,6 +1061,16 @@ class testData{ { return FALSE; } + + function objectGetItemsPerPage($bQueued = false) + { + if($bQueued) + return FALSE; + + $aItemsPerPage = array(25, 50, 100, 200); + $iDefaultPerPage = 25; + return array($aItemsPerPage, $iDefaultPerPage); + } } ?> diff --git a/include/testData_queue.php b/include/testData_queue.php index 34459f5..014513a 100644 --- a/include/testData_queue.php +++ b/include/testData_queue.php @@ -122,9 +122,14 @@ class testData_queue $this->oTestData->objectDisplayAddItemHelp(); } - function objectGetEntries($bQueued, $bRejected) + function objectGetEntries($bQueued, $bRejected, $iRows = 0, $iStart = 0, $sOrderBy = "testingId") { - return $this->oTestData->objectGetEntries($bQueued, $bRejected); + return $this->oTestData->objectGetEntries($bQueued, $bRejected, $iRows, $iStart, $sOrderBy); + } + + function objectGetEntriesCount($bQueued, $bRejected) + { + return testData::objectGetEntriesCount($bQueued, $bRejected); } function objectGetHeader() @@ -168,6 +173,11 @@ class testData_queue { return testData::allowAnonymousSubmissions(); } + + function objectGetItemsPerPage($bQueued = false) + { + return testData::objectGetItemsPerPage($bQueued); + } } ?> diff --git a/include/vendor.php b/include/vendor.php index 60c850b..c87fda6 100644 --- a/include/vendor.php +++ b/include/vendor.php @@ -356,7 +356,7 @@ class Vendor { return $this->iVendorId; } - function objectGetItemsPerPage() + function objectGetItemsPerPage($bQueued = false) { $aItemsPerPage = array(25, 50, 100, 200); $iDefaultPerPage = 25;