{% set element = block.slots.getSlot('content') %}
{{ element.translated.config.htmlBefore.value|raw }}
<div class="col-12 wrapper-survey" data-cms-element-id="{{ element.id }}">
<link rel="stylesheet" href="{{ asset('bundles/grimmsurvey/static/css/survey.css', 'asset') }}" />
<script src="{{ asset('bundles/grimmsurvey/static/js/lib.js', 'asset') }}"></script>
<script src="{{ asset('bundles/grimmsurvey/static/js/showdown.min.js', 'asset') }}"></script>
<script type="text/javascript">
let surveyJson = {{ element.translated.config.contentHTML.value|raw }};
jQuery.noConflict();
(function ($) {
document.addEventListener('DOMContentLoaded', () => {
if (typeof surveyJson !== "undefined") {
Survey.StylesManager.applyTheme("modern");
var survey = new Survey.Model(surveyJson);
const converter = new showdown.Converter();
$("#survey-{{ element.id }}").Survey({
model: survey,
onComplete: (survey) => {
{% if element.translated.config.saveResults.value === true %}
let surveyData = survey.data;
surveyData._csrf_token = "{{sw_csrf("grimm.survey.submit", {"mode": "token"})}}";
surveyData.technicalName = "{{ element.translated.config.technicalName.value }}";
fetch("{{ path('grimm.survey.submit') }}", {
method: "POST",
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(surveyData)
}).then(res => {});
{% endif %}
},
onTextMarkdown: (survey, options) => {
let str = converter.makeHtml(options.text);
str = str.substring(3);
str = str.substring(0, str.length - 4);
options.html = str;
},
onAfterRenderSurvey: (survey) => {
let url = new URL(window.location)
let params = new URLSearchParams(url.search);
if(params.get('name')) {
let comment = survey.getQuestionByName('comment');
comment.value = "Hallo,\nich Interessiere mich für den Artikel: " + params.get('name') + '.';
let reason = survey.getQuestionByName('reason');
reason.value = "article";
}
}
});
}
});
})(jQuery);
</script>
<div id="survey-{{ element.id }}"></div>
</div>
{{ element.translated.config.htmlAfter.value|raw }}