Пример #1
0
 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;
 }
Пример #2
0
 public final function GetAvailableFilterTypesViewData()
 {
     $result = array();
     foreach ($this->GetAvailableFilterTypes() as $filterName => $caption) {
         $result[] = SearchFilterOperator::GetOperatorByName($filterName)->GetViewData($this->localizerCaptions);
     }
     return $result;
 }