distribution: Allow filtering by name

This commit is contained in:
Alexander Nicolaysen Sørnes
2008-11-25 20:25:17 +01:00
parent b804c9b7c1
commit 0294f01c3f

View File

@@ -495,15 +495,28 @@ class distribution {
$this->sUrl = $aValues['sUrl'];
}
function objectGetFilterInfo()
{
$oFilter = new FilterInterface();
$oFilter->AddFilterInfo('name', 'Name', array(FILTER_CONTAINS, FILTER_STARTS_WITH, FILTER_ENDS_WITH), FILTER_VALUES_NORMAL);
return $oFilter;
}
/* Get the total number of Distributions in the database */
function objectGetEntriesCount($sState)
function objectGetEntriesCount($sState, $oFilter = null)
{
/* Not implemented */
if($sState == 'rejected')
return FALSE;
$sWhereFilter = $oFilter ? $oFilter->getWhereClause() : '';
if($sWhereFilter)
$sWhereFilter = " AND $sWhereFilter";
$hResult = query_parameters("SELECT count(distributionId) as num_dists FROM
distributions WHERE state='?'",
distributions WHERE state='?' $sWhereFilter",
$sState);
if($hResult)
@@ -559,7 +572,7 @@ class distribution {
return 'name';
}
function objectGetEntries($sState, $iRows = 0, $iStart = 0, $sOrderBy = "name", $bAscending = TRUE)
function objectGetEntries($sState, $iRows = 0, $iStart = 0, $sOrderBy = "name", $bAscending = TRUE, $oFilter = null)
{
/* Not implemented */
if($sState == 'rejected')
@@ -574,10 +587,15 @@ class distribution {
/* If row limit is 0 we want to fetch all rows */
if(!$iRows)
$iRows = distribution::objectGetEntriesCount($sState);
$iRows = distribution::objectGetEntriesCount($sState, $oFilter);
$sWhereFilter = $oFilter ? $oFilter->getWhereClause() : '';
if($sWhereFilter)
$sWhereFilter = " AND $sWhereFilter";
$sQuery = "SELECT * FROM distributions
WHERE state = '?' ORDER BY $sOrderBy $sOrder LIMIT ?,?";
WHERE state = '?' $sWhereFilter ORDER BY $sOrderBy $sOrder LIMIT ?,?";
return query_parameters($sQuery, $sState,
$iStart, $iRows);