From ac54dc1d28f4d4790cb44df292fb8190e90d7395 Mon Sep 17 00:00:00 2001 From: Andre Lorbach Date: Wed, 2 Dec 2009 17:02:47 +0100 Subject: [PATCH] Added code to read custom filters from form data and store into DB --- src/admin/reports.php | 50 +++++++++++++++++++++++--- src/classes/reports/report.class.php | 4 +-- src/templates/admin/admin_reports.html | 2 +- 3 files changed, 48 insertions(+), 8 deletions(-) diff --git a/src/admin/reports.php b/src/admin/reports.php index cc1e5cb..87f2d60 100644 --- a/src/admin/reports.php +++ b/src/admin/reports.php @@ -395,7 +395,7 @@ if ( isset($_GET['op']) ) CreateOutputformatList( $content['outputFormat'] ); // Other settings ... TODO! - $content['customFilters'] = ""; +// $content['customFilters'] = ""; $content['outputTarget'] = ""; $content['scheduleSettings'] = ""; } @@ -829,10 +829,29 @@ if ( isset($_POST['op']) ) if ( isset($_POST['report_customcomment']) ) { $content['customComment'] = DB_RemoveBadChars($_POST['report_customcomment']); } else {$content['report_customcomment'] = ""; } if ( isset($_POST['report_filterString']) ) { $content['filterString'] = DB_RemoveBadChars($_POST['report_filterString']); } else {$content['report_filterString'] = ""; } if ( isset($_POST['outputFormat']) ) { $content['outputFormat'] = DB_RemoveBadChars($_POST['outputFormat']); } + + // Read Custom Filters + foreach ( $content['CUSTOMFILTERS'] as &$tmpCustomFilter ) + { + // Set fieldvalue if available from POST data + if ( isset($_POST[ $tmpCustomFilter['fieldname'] ]) ) { $tmpCustomFilter['fieldvalue'] = DB_RemoveBadChars($_POST[ $tmpCustomFilter['fieldname'] ]); } + } + // Read done, now build "customFilters" string! + $content['customFilters'] = ""; + foreach ( $content['CUSTOMFILTERS'] as $tmpCustomFilter ) + { + // Append comma if necessary + if (strlen($content['customFilters']) > 0) + $content['customFilters'] .= ", "; + + // Append customFilter! + $content['customFilters'] .= $tmpCustomFilter['fieldname'] . "=>" . $tmpCustomFilter['fieldvalue']; + } + // TODO! // customFilters, outputTarget, scheduleSettings - $content['customFilters'] = ""; +// $content['customFilters'] = ""; $content['outputTarget'] = ""; $content['scheduleSettings'] = ""; @@ -857,7 +876,7 @@ if ( isset($_POST['op']) ) // --- Now Verify Report Source! // Create tmpSavedReport! - $tmpSavedReport["SavedReportID"] = $content['customFilters']; + $tmpSavedReport["SavedReportID"] = 0; $tmpSavedReport["sourceid"] = $content['SourceID']; $tmpSavedReport["customTitle"] = $content['customTitle']; $tmpSavedReport["customComment"] = $content['customComment']; @@ -1048,12 +1067,32 @@ function InitCustomFilterDefinitions($myReport, $CustomFilterValues) // Include Custom language file if available $myReportObj->InitReportLanguageFile( $myReportObj->GetReportIncludePath() ); + // Parse and Split CustomFilterValues + if ( strlen($CustomFilterValues) > 0 ) + { + $tmpFilterValues = explode( ",", $CustomFilterValues ); + + //Loop through mappings + foreach ($tmpFilterValues as &$myFilterValue ) + { + // Split subvalues + $tmpArray = explode( "=>", $myFilterValue ); + + // Set into temporary array + $tmpfilterid = trim($tmpArray[0]); + $myFilterValues[$tmpfilterid] = trim($tmpArray[1]); + } + } + // Loop through filters $i = 0; // Help counter! foreach( $customFilterDefs as $filterID => $tmpCustomFilter ) { - // TODO Check if value is available in $CustomFilterValues - $szDefaultValue = $tmpCustomFilter['DefaultValue']; + // Check if value is available in $CustomFilterValues + if ( isset($myFilterValues[$filterID]) ) + $szDefaultValue = $myFilterValues[$filterID]; + else + $szDefaultValue = $tmpCustomFilter['DefaultValue']; // TODO Check MIN and MAX value! @@ -1065,6 +1104,7 @@ function InitCustomFilterDefinitions($myReport, $CustomFilterValues) $i++; // --- + // Add to Display Array of custom filters! $content['CUSTOMFILTERS'][] = array ( 'fieldname' => $filterID, 'fieldcaption' => $content[ $tmpCustomFilter['DisplayLangID'] ], diff --git a/src/classes/reports/report.class.php b/src/classes/reports/report.class.php index cf7f191..89607d8 100644 --- a/src/classes/reports/report.class.php +++ b/src/classes/reports/report.class.php @@ -235,8 +235,8 @@ abstract class Report { // Set new Outputtype $this->_customFilters = $newAdvancedOptions; - echo "TODO SetCustomFilters"; - exit; +// echo "TODO SetCustomFilters"; +// exit; } /* diff --git a/src/templates/admin/admin_reports.html b/src/templates/admin/admin_reports.html index 22b8e6a..3b6c381 100644 --- a/src/templates/admin/admin_reports.html +++ b/src/templates/admin/admin_reports.html @@ -224,7 +224,7 @@ {fieldcaption}
({fielddescription}) - +