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