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(); }
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; }