public function GetFilterRowViewData() { $result = array(); $result['Columns'] = array(); $advancedSearch = $this->GetPage()->AdvancedSearchControl; $bands = $this->GetViewBands(); $isActionButtonPositionLeft = $bands[0]->GetName() == 'actions'; if ($advancedSearch && $this->GetFilterRowAvailable()) { foreach ($this->GetViewBands() as $band) { foreach ($band->GetColumns() as $column) { $searchColumnViewData = null; $columnName = $this->GetDataset()->IsLookupField($column->GetName()) ? $this->GetDataset()->IsLookupFieldNameByDisplayFieldName($column->GetName()) : $column->GetName(); $searchColumn = null; if ($column instanceof CustomDatasetFieldViewColumn || $column instanceof CustomFormatValueViewColumnDecorator || $column instanceof ImageViewColumn) { $searchColumn = $advancedSearch->FindSearchColumnByName($columnName); } if ($searchColumn) { $searchColumnViewData = array(); $searchColumnViewData['FieldName'] = $columnName; $searchColumnViewData['Value'] = $searchColumn->GetValue(); $searchColumnViewData['Attributes'] = ''; if ($column instanceof DateTimeViewColumn) { $searchColumnViewData['Attributes'] = 'data-calendar="true" ' . 'data-picker-first-day-of-week="' . GetFirstDayOfWeek() . '" '; } else { if ($searchColumn instanceof LookupSearchColumn) { $searchColumnViewData['Attributes'] = 'data-pg-typeahead="true" ' . 'data-pg-typeahead-handler="' . $searchColumn->GetHandlerName() . '" ' . 'data-post-value="' . $searchColumn->GetValue() . '"'; $searchColumnViewData['Value'] = $searchColumn->GetDisplayValue(); } } if ($searchColumn->IsFilterActive()) { $searchColumnViewData['CurrentOperator'] = SearchFilterOperator::GetOperatorByName($searchColumn->GetFilterIndex())->GetViewData($this->GetPage()->GetLocalizerCaptions()); } else { $defaultFilter = 'CONTAINS'; $availableFilterTypes = array_keys($searchColumn->GetAvailableFilterTypes()); if (count($availableFilterTypes) > 0) { $defaultFilter = $availableFilterTypes[0]; } $searchColumnViewData['CurrentOperator'] = SearchFilterOperator::GetOperatorByName($defaultFilter)->GetViewData($this->GetPage()->GetLocalizerCaptions()); } $searchColumnViewData['Operators'] = $searchColumn->GetAvailableFilterTypesViewData(); } $result['Columns'][$column->GetName()] = $searchColumnViewData; } } $tempArray = array(); $resetButtonPlacementColumnName = null; foreach ($this->GetViewBands() as $band) { foreach ($band->GetColumns() as $column) { $searchColumnViewData = null; $columnName = $this->GetDataset()->IsLookupField($column->GetName()) ? $this->GetDataset()->IsLookupFieldNameByDisplayFieldName($column->GetName()) : $column->GetName(); $searchColumn = null; if ($column instanceof CustomDatasetFieldViewColumn || $column instanceof CustomFormatValueViewColumnDecorator || $column instanceof ImageViewColumn) { $searchColumn = $advancedSearch->FindSearchColumnByName($columnName); } if ($searchColumn) { $tempArray[] = array('Name' => $columnName, 'IsPlacement' => false); } else { $tempArray[] = array('Name' => $columnName, 'IsPlacement' => true); } } } $resetButtonPlacementFound = false; for ($i = 0; $i < count($tempArray); $i++) { if (!$tempArray[$i]['IsPlacement'] && $i > 0) { $result['Columns'][$tempArray[$i - 1]['Name']]['ResetButtonPlacement'] = true; $result['Columns'][$tempArray[$i - 1]['Name']]['ResetButtonAlignment'] = $isActionButtonPositionLeft ? 'right' : 'left'; $resetButtonPlacementFound = true; break; } else { if (!$tempArray[$i]['IsPlacement']) { break; } } } if (!$resetButtonPlacementFound) { for ($i = count($tempArray) - 1; $i >= 0; $i--) { if (!$tempArray[$i]['IsPlacement'] && $i < count($tempArray) - 1) { $result['Columns'][$tempArray[$i + 1]['Name']]['ResetButtonPlacement'] = true; $result['Columns'][$tempArray[$i + 1]['Name']]['ResetButtonAlignment'] = $isActionButtonPositionLeft ? 'right' : 'left'; $resetButtonPlacementFound = true; break; } else { if (!$tempArray[$i]['IsPlacement']) { break; } } } } } return $result; }
public final function GetAvailableFilterTypesViewData() { $result = array(); foreach ($this->GetAvailableFilterTypes() as $filterName => $caption) { $result[] = SearchFilterOperator::GetOperatorByName($filterName)->GetViewData($this->localizerCaptions); } return $result; }