dga_feedback-2.0.0/templates/dga-feedback-widget.html.twig

templates/dga-feedback-widget.html.twig
{# DGA Feedback Widget Template #}
{# Note: All texts are already translated in the Block class, so we don't need |t filter here #}
{% set texts = texts|default({}) %}
{% set question_text = texts.question_text|default("Was this page useful?") %}
{% set yes_button_text = texts.yes_button_text|default("Yes") %}
{% set no_button_text = texts.no_button_text|default("No") %}
{% set stats_text_template = texts.stats_text_template|default("@percentage% of users said Yes from @count Feedbacks") %}
{% set close_button_text = texts.close_button_text|default("Close") %}
{% set reasons_title = texts.reasons_title|default("Please tell us why") %}
{% set reasons_instruction = texts.reasons_instruction|default("you can select multiple options") %}
{% set feedback_label = texts.feedback_label|default("Feedback") %}
{% set feedback_placeholder = texts.feedback_placeholder|default("text placeholder") %}
{% set gender_label = texts.gender_label|default("I'm") %}
{% set gender_male = texts.gender_male|default("Male") %}
{% set gender_female = texts.gender_female|default("Female") %}
{% set submit_button_text = texts.submit_button_text|default("Submit") %}
{% set submitted_success_text = texts.submitted_success_text|default("Your feedback is submitted!") %}
{% set validation_yes_no = texts.validation_yes_no_required|default("Please select Yes or No first.") %}
{% set validation_reason_required = texts.validation_reason_required|default("Please select at least one reason") %}
{% set validation_reason_invalid = texts.validation_reason_invalid|default("At least one valid reason must be selected.") %}
{% set validation_feedback_required = texts.validation_feedback_required|default("Please provide feedback text") %}
{% set validation_gender_required = texts.validation_gender_required|default("Please select your gender") %}
{% set validation_submission_failed = texts.validation_submission_failed|default("Submission failed. Please try again.") %}
{% set validation_unknown_error = texts.validation_unknown_error|default("Unknown error") %}
{% set button_submitting_text = texts.button_submitting_text|default("Submitting...") %}

{# Parse reasons from config - split by newlines (already translated) #}
{% set reasons_yes_raw = texts.reasons_yes|default("Content is relevant\nIt was well written\nThe layout made it easy to read\nSomething else") %}
{% set reasons_no_raw = texts.reasons_no|default("Content is not relevant\nContent is not accurate\nContent is too long\nSomething else") %}
{# Split by newline - each reason on its own line #}
{% set reasons_yes_lines = reasons_yes_raw|split('\n') %}
{% set reasons_no_lines = reasons_no_raw|split('\n') %}
{% set reasons_yes_list = [] %}
{% set reasons_no_list = [] %}
{% for line in reasons_yes_lines %}
  {% if line|trim|length > 0 %}
    {% set reasons_yes_list = reasons_yes_list|merge([line|trim]) %}
  {% endif %}
{% endfor %}
{% for line in reasons_no_lines %}
  {% if line|trim|length > 0 %}
    {% set reasons_no_list = reasons_no_list|merge([line|trim]) %}
  {% endif %}
{% endfor %}

{# Format stats text #}
{% set stats_text = stats_text_template|replace({'@percentage': yes_percentage, '@count': total_count}) %}

<!-- DGA Feedback Module - Yes: {{ yes_percentage }}%, Total: {{ total_count }} -->
<div class="feedback-widget"
     data-feedback-widget
     data-initial-stats="{{ yes_percentage }}|{{ total_count }}"
     data-url="{{ url }}"
     data-entity-type="{{ entity_type|default('') }}"
     data-entity-id="{{ entity_id|default('') }}"
     data-reasons-yes="{{ reasons_yes_list|map(v => v|trim)|join('|') }}"
     data-reasons-no="{{ reasons_no_list|map(v => v|trim)|join('|') }}"
     data-validation-yes-no="{{ validation_yes_no|e('html_attr') }}"
     data-validation-reason-required="{{ validation_reason_required|e('html_attr') }}"
     data-validation-reason-invalid="{{ validation_reason_invalid|e('html_attr') }}"
     data-validation-feedback-required="{{ validation_feedback_required|e('html_attr') }}"
     data-validation-gender-required="{{ validation_gender_required|e('html_attr') }}"
     data-validation-submission-failed="{{ validation_submission_failed|e('html_attr') }}"
     data-validation-unknown-error="{{ validation_unknown_error|e('html_attr') }}"
     data-button-submitting="{{ button_submitting_text|e('html_attr') }}">
	<div class="fw-row-top">
		<div class="fw-status">
			<span class="fw-status-icon" aria-hidden="true" hidden>✔</span>
			<p class="fw-status-text" data-original-question="{{ question_text }}">{{ question_text }}</p>
			<div class="fw-actions" data-fw-actions>
				<button type="button" class="fw-btn fw-btn-primary" data-fw-yes>{{ yes_button_text }}</button>
				<button type="button" class="fw-btn fw-btn-primary" data-fw-no>{{ no_button_text }}</button>
			</div>
		</div>
		<div class="fw-stats">
			<p class="fw-small" data-fw-stats data-template="{{ stats_text_template|e('html_attr') }}">{{ stats_text }}</p>
			<button type="button" class="fw-btn fw-btn-subtle" data-fw-close hidden>
				{{ close_button_text }}
			</button>
		</div>
	</div>

	<div class="fw-questions" data-fw-questions hidden>
		<div class="fw-reasons">
			<h4 class="fw-title">
				{{ reasons_title }} <span class="fw-required" aria-label="{{ 'Required'|t }}">*</span>
				<span class="fw-muted">({{ reasons_instruction }})</span>
			</h4>
			<div class="fw-reasons-list" data-fw-reasons></div>
		</div>

		<div class="fw-textarea">
			<label for="fw-feedback" class="fw-label">{{ feedback_label }} <span class="fw-required" aria-label="{{ 'Required'|t }}">*</span></label>
			<textarea id="fw-feedback" class="fw-textarea-input" placeholder="{{ feedback_placeholder }}" data-fw-feedback></textarea>
		</div>

		<div class="fw-gender">
			<h4 class="fw-title-inline">{{ gender_label }} <span class="fw-required" aria-label="{{ 'Required'|t }}">*</span></h4>
			<label class="fw-radio">
				<input type="radio" name="fw-gender" value="male" data-fw-gender>
				<span>{{ gender_male }}</span>
			</label>
			<label class="fw-radio">
				<input type="radio" name="fw-gender" value="female" data-fw-gender>
				<span>{{ gender_female }}</span>
			</label>
		</div>

		<div class="fw-submit-row">
			<p class="fw-info">
				{# {{ "For more information you may review"|t }} #}
			</p>
			<button type="button" class="fw-btn fw-btn-primary" data-fw-submit>{{ submit_button_text }}</button>
		</div>
	</div>
</div>

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc