/**
  * Overriding to implement the dedupe action for new contacts
  */
 public function actionSearchForDuplicateModels($attribute, $value)
 {
     assert('is_string($attribute)');
     assert('is_string($value)');
     $model = new Contact();
     $depudeRules = DedupeRulesFactory::createRulesByModel($model);
     $viewClassName = $depudeRules->getDedupeViewClassName();
     $searchResult = $depudeRules->searchForDuplicateModels($attribute, $value);
     if ($searchResult != null) {
         $summaryView = new $viewClassName($this->id, $this->module->id, $model, $searchResult['matchedModels']);
         $content = $summaryView->render();
         $message = $searchResult['message'];
         echo CJSON::encode(array('content' => $content, 'message' => $message));
     }
 }
 protected function resolveElementDuringFormLayoutRender(&$element)
 {
     if ($dedupeRules = DedupeRulesFactory::createRulesByModel($this->model)) {
         $dedupeRules->registerScriptForEditAndDetailsView($element);
     }
     parent::resolveElementDuringFormLayoutRender($element);
 }