43 protected $sourceData;
47 public function __construct($model)
49 assert(
'$model instanceof RedBeanModel || $model instanceof SearchForm');
50 $this->model = $model;
53 public function getModel()
58 public function setSourceData($sourceData)
60 assert(
'is_array($sourceData)');
61 $this->sourceData = $sourceData;
64 public function getSourceData()
66 if (isset($this->sourceData))
68 return $this->sourceData;
73 public function getDynamicSearchAttributes()
77 if ($dynamicSearchAttributes == null)
81 return $dynamicSearchAttributes;
84 public function getSanitizedDynamicSearchAttributes()
88 if ($dynamicSearchAttributes == null)
96 public function getDynamicStructure()
101 public function getAnyMixedAttributesScopeFromModel()
103 return $this->model->getAnyMixedAttributesScope();
106 public function getSelectedListAttributesFromModel()
108 if ($this->model->getListAttributesSelector() != null)
110 return $this->model->getListAttributesSelector()->getSelected();
114 public function getFilterByStarred()
119 public function getFilteredBy()
121 return SearchUtil::getFilteredByFromArray(get_class($this->model), $this->getSourceData());
124 public function hasKanbanBoard()
126 if ($this->model->getKanbanBoard() == null)
133 public function getKanbanBoard()
135 return $this->model->getKanbanBoard();
138 public function shouldClearStickyForKanbanBoard()
140 if ($this->model->getKanbanBoard() == null)
144 elseif ($this->model->getKanbanBoard()->getClearSticky())
151 public function getKanbanBoardGroupByAttributeVisibleValuesFromModel()
153 if ($this->model->getKanbanBoard() != null)
155 return $this->model->getKanbanBoard()->getGroupByAttributeVisibleValues();
159 public function getKanbanBoardSelectedThemeFromModel()
161 if ($this->model->getKanbanBoard() != null)
163 return $this->model->getKanbanBoard()->getSelectedTheme();
167 public function resolveSearchAttributesFromSourceData()
170 get_class($this->model),
171 $this->getSourceData());
174 public function resolveAnyMixedAttributesScopeForSearchModelFromSourceData()
177 get_class($this->model),
178 $this->getSourceData());
181 public function resolveSelectedListAttributesForSearchModelFromSourceData()
184 get_class($this->model),
185 $this->getSourceData());
188 public function resolveKanbanBoardOptionsForSearchModelFromSourceData()
191 get_class($this->model),
192 $this->getSourceData());
195 public function resolveSortAttributeFromSourceData($name)
197 assert(
'is_string($name)');
199 if ($sortAttribute == null)
201 if (!empty($this->model->sortAttribute))
203 $sortAttribute = $this->model->sortAttribute;
207 $sortAttribute = null;
211 return $sortAttribute;
214 public function resolveSortDescendingFromSourceData($name)
216 assert(
'is_string($name)');
218 if (!isset($sortDescending))
220 if (!empty($this->model->sortDescending))
222 $sortDescending =
true;
226 $sortDescending =
false;
229 return $sortDescending;
232 public function resolveFilterByStarredFromSourceData()
235 get_class($this->model),
236 $this->getSourceData());
239 public function resolveFilteredByFromSourceData()
241 SearchUtil::resolveFilteredByFromArray($this->model,
242 get_class($this->model),
243 $this->getSourceData());
static resolveSelectedListAttributesForSearchModelFromArray($searchModel, $getArrayName, $sourceData)
static sanitizeDynamicSearchAttributesByDesignerTypeForSavingModel(DynamicSearchForm $searchModel, $dynamicSearchAttributes)
static getDynamicSearchStructureFromArray($getArrayName, $sourceData)
static resolveKanbanBoardOptionsForSearchModelFromArray($searchModel, $getArrayName, $sourceData)
static getFilterByStarredFromArray($getArrayName, $sourceData)
static getDynamicSearchAttributesFromArray($getArrayName, $sourceData)
static resolveAnyMixedAttributesScopeForSearchModelFromArray($searchModel, $getArrayName, $sourceData)
static resolveFilterByStarredFromArray($searchModel, $getArrayName, $sourceData)
static resolveSearchAttributesFromArray($getArrayName, $formModelClassName, $sourceData)
static resolveSortAttributeFromArray($getArrayPrefixName, $sourceData)
static resolveSortDescendingFromArray($getArrayPrefixName, $sourceData)