public function getCMSFields() { $fields = parent::getCMSFields(); $fields->removeByName('Content'); $fields->addFieldsToTab('Root.Main', $ddl = new DropdownField('SurveyTemplateID', 'Survey Template', SurveyTemplate::get()->filter(array('ClassName' => 'SurveyTemplate', 'Enabled' => true))->map('ID', 'Title'))); $ddl->setEmptyString('-- Select a Survey Template'); return $fields; }
public function getCMSFields() { $fields = parent::getCMSFields(); $templateList = SurveyTemplate::get()->filter(array('ClassName' => 'SurveyTemplate'))->sort('Title')->map()->toArray(); $templateSelect = DropdownField::create('TemplateID', 'Survey Template')->setSource($templateList); $fields->replaceField('TemplateID', $templateSelect); return $fields; }
/** * @return SurveyTemplate|null */ private function getCurrentSelectedSurveyTemplate() { $template_id = Session::get(sprintf("SurveyBuilder.%sStatistics.TemplateId", Session::get('SurveyBuilder.Statistics.ClassName'))); $template = null; if (!empty($template_id)) { $template = SurveyTemplate::get()->byID(intval($template_id)); if (!is_null($template) && $template->ClassName === 'EntitySurveyTemplate') { $template = EntitySurveyTemplate::get()->byID(intval($template_id)); } } return $template; }
public function init() { parent::init(); $script = ' var origin_fields = { "DeploymentSurvey" : [], "AppDevSurvey" : [], "Deployment" : [] }; '; foreach (DeploymentSurveyFields::toArray() as $key) { $script .= sprintf("origin_fields.DeploymentSurvey.push('%s');", $key); } foreach (AppDevSurveyFields::toArray() as $key) { $script .= sprintf("origin_fields.AppDevSurvey.push('%s');", $key); } foreach (DeploymentFields::toArray() as $key) { $script .= sprintf("origin_fields.Deployment.push('%s');", $key); } $path = ASSETS_PATH . "/survey.builder.origin.fields.js"; $custom_script_file = fopen($path, "w") or die("Unable to open file!"); fwrite($custom_script_file, $script); fclose($custom_script_file); Requirements::javascript('assets/survey.builder.origin.fields.js'); $templates = SurveyTemplate::get(); $script_data = 'var templates = {}; var origin_field_id = null;'; foreach ($templates as $template) { $steps = $template->Steps()->filter('ClassName', 'SurveyRegularStepTemplate'); $script_data .= "templates[{$template->ID}] = { questions : [] };"; $questions = array(); foreach ($steps as $step) { foreach ($step->getQuestions() as $question) { if ($question instanceof SurveyLiteralContentQuestionTemplate) { continue; } $questions[$question->ID] = $step->Name . ' -> ' . $question->Name; $script_data .= "templates[{$template->ID}].questions.push({ id: {$question->ID}, name: '{$step->Name} -> {$question->Name}'});"; } } } $path = ASSETS_PATH . "/templates.data.js"; $custom_script_file = fopen($path, "w") or die("Unable to open file!"); fwrite($custom_script_file, $script_data); fclose($custom_script_file); Requirements::javascript('assets/templates.data.js'); Requirements::javascript('survey_builder/js/active_records/new.datamodel.survey.migration.mapping.js'); }
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; }
public function getCMSFields() { $field = parent::getCMSFields(); $field->addFieldToTab('Root.Main', new HiddenField('TargetSurveyID', 'TargetSurveyID')); $survey_id = isset($_REQUEST['survey_template_id']) ? intval($_REQUEST['survey_template_id']) : $this->TargetSurveyID; $template = SurveyTemplate::get()->filter('ID', $survey_id)->first(); $steps = $template->Steps()->filter('ClassName', 'SurveyRegularStepTemplate'); $questions = array(); foreach ($steps as $step) { foreach ($step->getQuestions() as $question) { if ($question instanceof SurveyLiteralContentQuestionTemplate) { continue; } $questions[$question->ID] = $step->Name . ' -> ' . $question->Name; } } $field->addFieldToTab('Root.Main', new DropdownField('TargetFieldID', 'Target Field', $questions)); return $field; }
private function ViewStatisticsSurveyBuilder(SS_HTTPRequest $request, $action, $class_name) { Requirements::javascript('themes/openstack/javascript/sangria/sangria.page.view.statistics.surveybuilder.js'); Requirements::css('themes/openstack/css/sangria/sangria.page.view.statistics.surveybuilder.css'); $qid = $request->requestVar('qid'); $vid = $request->requestVar('vid'); $clear_filters = $request->requestVar('clear_filters'); $from = $request->requestVar('From'); $to = $request->requestVar('To'); $template_id = intval($request->requestVar('survey_template_id')); if (empty($template_id)) { $template = $this->SurveyBuilderSurveyTemplates($class_name)->last(); $template_id = $template->ID; } else { Session::clear(sprintf("SurveyBuilder.%sStatistics.Filters", $class_name)); Session::clear(sprintf("SurveyBuilder.%sStatistics.Filters_Questions", $class_name)); } Session::set(sprintf("SurveyBuilder.%sStatistics.TemplateId", $class_name), $template_id); if (!empty($clear_filters)) { Session::clear(sprintf("SurveyBuilder.%sStatistics.Filters", $class_name)); Session::clear(sprintf("SurveyBuilder.%sStatistics.Filters_Questions", $class_name)); return Controller::curr()->redirect(Controller::curr()->Link($action)); } else { if (empty($from) || empty($to)) { $template = SurveyTemplate::get()->byID(intval($template_id)); if ($class_name === 'EntitySurveyTemplate') { $template = $template->Parent(); } $from = date('Y/m/d H:i', strtotime($template->StartDate)); $to = date('Y/m/d H:i', strtotime($template->EndDate)); $query_str = sprintf("?From=%s&To=%s", $from, $to); return Controller::curr()->redirect(Controller::curr()->Link($action) . $query_str); } if (!empty($qid) && !empty($vid)) { $qid = intval($qid); $vid = is_int($vid) ? intval($vid) : $vid; $filters = Session::get(sprintf('SurveyBuilder.%sStatistics.Filters', $class_name)); $questions_filters = Session::get(sprintf('SurveyBuilder.%sStatistics.Filters_Questions', $class_name)); $filters .= sprintf("%s:%s,", $qid, $vid); $questions_filters .= sprintf("%s,", $qid); Session::set(sprintf("SurveyBuilder.%sStatistics.Filters", $class_name), $filters); Session::set(sprintf("SurveyBuilder.%sStatistics.Filters_Questions", $class_name), $questions_filters); $query_str = ''; if (!empty($from) && !empty($to)) { $query_str = sprintf("?From=%s&To=%s", $from, $to); } return Controller::curr()->redirect(Controller::curr()->Link($action) . $query_str); } } return $this->owner->Customise(array('ClassName' => $class_name, 'Action' => $action))->renderWith(array('SangriaPage_ViewStatisticsSurveyBuilder', 'SangriaPage', 'SangriaPage')); }
public static function getSurveys() { return SurveyTemplate::get()->filter('ClassName', 'SurveyTemplate'); }
function getSurveyTemplates() { $templates = SurveyTemplate::get('SurveyTemplate')->filter(array('ClassName' => 'SurveyTemplate')); return $templates; }