public function testStickySearchByKeyWithSortDesc() { $dataArray = $this->getSearchDataForSort(); $dataCollection = $dataArray['dataCollection']; $savedSearch = $dataArray['savedSearch']; //Set the sort in $_GET to set the sticky key for it. $_GET['AAA_sort'] = 'aaaMember2.desc'; SavedSearchUtil::setDataByKeyAndDataCollection('abc', $dataCollection, array()); $stickyData = StickySearchUtil::getDataByKey('abc'); $compareData = array('dynamicClauses' => array('a', 'b'), 'dynamicStructure' => '1 and 5', 'anyMixedAttributes' => 'abcdef', 'anyMixedAttributesScope' => 'xyz', 'savedSearchId' => $savedSearch->id, SearchForm::SELECTED_LIST_ATTRIBUTES => array('aaaMember', 'aaaMember2'), 'sortAttribute' => 'aaaMember2', 'sortDescending' => true); $this->assertEquals($compareData, $stickyData); $searchModel = new AAASavedDynamicSearchFormTestModel(new AAA(false)); $listAttributesSelector = new ListAttributesSelector('AListView', 'TestModule'); $searchModel->setListAttributesSelector($listAttributesSelector); unset($_GET['AAA_sort']); SavedSearchUtil::resolveSearchFormByStickyDataAndModel($stickyData, $searchModel); $this->assertEquals('aaaMember2', $searchModel->sortAttribute); $this->assertNotNull($searchModel->sortDescending); }
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); SearchUtil::resolveSearchFormByStickyFilteredByData($getData, $searchModel, $stickySearchData); SearchUtil::resolveSearchFormByStickyFilteredByData($getData, $searchModel, $stickySearchData); $dataCollection = new SavedSearchAttributesDataCollection($searchModel); } else { SavedSearchUtil::resolveSearchFormByData($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; }