コード例 #1
0
 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;
 }
コード例 #2
0
 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);
 }
コード例 #3
0
 protected function processSaveSearch($searchForm, $viewClassName)
 {
     $modelClassName = get_class($searchForm->model);
     $moduleClassName = $modelClassName::getModuleClassName();
     //Get sticky data here
     $stickySearchKey = $moduleClassName::getModuleLabelByTypeAndLanguage('Plural') . 'SearchView';
     $stickySearchData = StickySearchUtil::getDataByKey($stickySearchKey);
     $savedSearch = SavedSearchUtil::makeSavedSearchBySearchForm($searchForm, $viewClassName, $stickySearchData);
     if (!$savedSearch->save()) {
         throw new FailedToSaveModelException();
     }
     return $savedSearch;
 }