コード例 #1
0
 public function testMakeSavedSearchBySearchForm()
 {
     $searchForm = new AAASavedDynamicSearchFormTestModel(new AAA());
     $listAttributesSelector = new ListAttributesSelector('AListView', 'TestModule');
     $searchForm->setListAttributesSelector($listAttributesSelector);
     $searchForm->savedSearchName = 'myTest';
     $searchForm->dynamicStructure = '1 or 6';
     $searchForm->dynamicClauses = array('a', 'b');
     $searchForm->anyMixedAttributes = 'abcdef';
     $searchForm->setAnyMixedAttributesScope('xyz');
     $searchForm->getListAttributesSelector()->setSelected(array('aaaMember', 'aaaMember2'));
     $dataCollection = new SavedSearchAttributesDataCollection($searchForm);
     SavedSearchUtil::setDataByKeyAndDataCollection('abc', $dataCollection, array());
     $stickyData = StickySearchUtil::getDataByKey('abc');
     $kanbanBoard = new KanbanBoard(new AAA(), 'industry');
     $kanbanBoard->setGroupByAttributeVisibleValues(array('c', 'd'));
     $kanbanBoard->setSelectedTheme('red');
     $searchForm->setKanbanBoard($kanbanBoard);
     $savedSearch = SavedSearchUtil::makeSavedSearchBySearchForm($searchForm, 'someView', $stickyData);
     $this->assertTrue($savedSearch->id < 0);
     $unserializedData = unserialize($savedSearch->serializedData);
     $this->assertEquals('1 or 6', $unserializedData['dynamicStructure']);
     $this->assertEquals(array('c', 'd'), $unserializedData['groupByAttributeVisibleValues']);
     $this->assertEquals('red', $unserializedData['selectedTheme']);
     $saved = $savedSearch->save();
     $savedSearchId = $savedSearch->id;
     $searchForm->savedSearchId = $savedSearch->id;
     $this->assertTrue($saved);
     $this->assertEquals('myTest', $savedSearch->name);
     $dataCollection = new SavedSearchAttributesDataCollection($searchForm);
     SavedSearchUtil::setDataByKeyAndDataCollection('abc', $dataCollection, array());
     $stickyData = StickySearchUtil::getDataByKey('abc');
     $savedSearch = SavedSearchUtil::makeSavedSearchBySearchForm($searchForm, 'someView');
     $searchForm = new AAASavedDynamicSearchFormTestModel(new AAA());
     $searchForm->savedSearchId = $savedSearchId;
     $searchForm->savedSearchName = 'myTest';
     $savedSearch = SavedSearchUtil::makeSavedSearchBySearchForm($searchForm, 'someView');
     $unserializedData = unserialize($savedSearch->serializedData);
     $this->assertEquals($savedSearchId, $savedSearch->id);
     $this->assertTrue($savedSearch->id > 0);
     $savedSearch->forget();
 }
コード例 #2
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;
 }