public function getCMSFields() { $field = parent::getCMSFields(); $origin_table = array('DeploymentSurvey' => 'DeploymentSurvey', 'AppDevSurvey' => 'AppDevSurvey'); if (isset($_REQUEST['entity_survey'])) { $origin_table = array('Deployment' => 'Deployment'); } $field->addFieldToTab('Root.Main', $ddl_origin_table = new DropdownField('OriginTable', 'OriginTable', $origin_table)); $ddl_origin_table->setEmptyString('-- select an origin table --'); $source = array(); if ($this->ID > 0) { switch ($this->OriginTable) { case 'DeploymentSurvey': $source = DeploymentSurveyFields::$fields; break; case 'AppDevSurvey': $source = AppDevSurveyFields::$fields; break; case 'Deployment': $source = DeploymentFields::$fields; break; } } $field->addFieldToTab('Root.Main', $ddl_origin_field = new DropdownField('OriginField', 'OriginField', $source)); $ddl_origin_field->setEmptyString('-- select an origin field --'); return $field; }
public function getCMSFields() { $field = parent::getCMSFields(); $origin_table = array('DeploymentSurvey' => 'DeploymentSurvey', 'AppDevSurvey' => 'AppDevSurvey'); if (isset($_REQUEST['entity_survey'])) { $origin_table = array('Deployment' => 'Deployment'); } $field->addFieldToTab('Root.Main', $ddl_origin_table = new DropdownField('OriginTable', 'OriginTable', $origin_table)); $ddl_origin_table->setEmptyString('-- select an origin table --'); $source = array(); if ($this->ID > 0) { switch ($this->OriginTable) { case 'DeploymentSurvey': $source = DeploymentSurveyFields::$fields; break; case 'AppDevSurvey': $source = AppDevSurveyFields::$fields; break; case 'Deployment': $source = DeploymentFields::$fields; break; } } $field->addFieldToTab('Root.Main', $ddl_origin_field = new DropdownField('OriginField', 'OriginField', $source)); $ddl_origin_field->setEmptyString('-- select an origin field --'); Requirements::javascript('survey_builder/js/active_records/old.datamodel.survey.migration.mapping.js'); return $field; }
public function validate() { $result = parent::validate(); if (intval($this->OriginSurveyID) <= 0) { $result->error('you need to specify a origin survey!'); } if (intval($this->OriginFieldID) <= 0) { $result->error('you need to specify a origin field!'); } $survey_id = isset($_REQUEST['survey_template_id']) ? intval($_REQUEST['survey_template_id']) : $this->TargetSurveyID; $current_template = SurveyTemplate::get()->byID($survey_id); $old_mapping = $current_template->MigrationMappings()->first(); if (!is_null($old_mapping) && intval($old_mapping->OriginSurveyID) !== intval($this->OriginSurveyID)) { $result->error('you need to specify the same origin survey for all your mappings'); } return $result; }