private function makeDataCollectionAndResolveSavedSearch($searchModel, $stickySearchKey = null, $setSticky = true) { $dataCollection = new SearchAttributesDataCollection($searchModel); if ($searchModel instanceof SavedDynamicSearchForm) { $getData = GetUtil::getData(); if ($stickySearchKey != null && isset($getData['clearingSearch']) && $getData['clearingSearch']) { StickySearchUtil::clearDataByKey($stickySearchKey); } if ($stickySearchKey != null && null != ($stickySearchData = StickySearchUtil::getDataByKey($stickySearchKey))) { SavedSearchUtil::resolveSearchFormByStickyDataAndModel($stickySearchData, $searchModel); SavedSearchUtil::resolveSearchFormByStickySortData($getData, $searchModel, $stickySearchData); SearchUtil::resolveSearchFormByStickyFilterByStarredData($getData, $searchModel, $stickySearchData); $dataCollection = new SavedSearchAttributesDataCollection($searchModel); } else { SavedSearchUtil::resolveSearchFormByGetData($getData, $searchModel); if ($searchModel->savedSearchId != null) { $dataCollection = new SavedSearchAttributesDataCollection($searchModel); } } if ($stickySearchKey != null && ($setSticky || $searchModel->getKanbanBoard() != null && $searchModel->getKanbanBoard()->getClearSticky())) { if ($stickySearchData == null) { $stickySearchData = array(); } SavedSearchUtil::setDataByKeyAndDataCollection($stickySearchKey, $dataCollection, $stickySearchData); } $searchModel->loadSavedSearchUrl = Yii::app()->createUrl($this->getModule()->getId() . '/' . $this->getId() . '/list/'); } return $dataCollection; }
/** * @depends testMakeSavedSearchBySearchForm */ public function testResolveSearchFormByGetData() { $savedSearches = SavedSearch::getByName('myTest'); $this->assertEquals(1, count($savedSearches)); $getData = array('savedSearchId' => $savedSearches[0]->id, 'anyMixedAttributes' => 'a search', 'anyMixedAttributesScope' => 'some', 'dynamicStructure' => '1 or 5', 'dynamicClauses' => array('a', 'b'), SearchForm::SELECTED_LIST_ATTRIBUTES => array('aaaMember', 'aaaMember2')); $searchForm = new AAASavedDynamicSearchFormTestModel(new AAA()); $listAttributesSelector = new ListAttributesSelector('AListView', 'TestModule'); $searchForm->setListAttributesSelector($listAttributesSelector); $searchForm->setKanbanBoard(new KanbanBoard(new AAA(), 'industry')); SavedSearchUtil::resolveSearchFormByGetData($getData, $searchForm); $this->assertEquals('myTest', $searchForm->savedSearchName); $this->assertEquals('abcdef', $searchForm->anyMixedAttributes); $this->assertEquals('xyz', $searchForm->getAnyMixedAttributesScope()); $this->assertEquals('1 or 6', $searchForm->dynamicStructure); $this->assertEquals(array('a', 'b'), $searchForm->dynamicClauses); $this->assertEquals(array('aaaMember', 'aaaMember2'), $searchForm->getListAttributesSelector()->getSelected()); $this->assertEquals(array('c', 'd'), $searchForm->getKanbanBoard()->getGroupByAttributeVisibleValues()); $this->assertEquals('red', $searchForm->getKanbanBoard()->getSelectedTheme()); }