Refine survey editor workflow and publication handling

This commit is contained in:
Jürgen Mummert
2026-05-29 10:19:19 +02:00
parent 6bbded4181
commit 1174410c1b
40 changed files with 1121 additions and 335 deletions
@@ -35,31 +35,15 @@
<div class="survey-list-card__head">
<div class="survey-list-card__title-wrap">
<h3>{{ survey.title|striptags|trim }}</h3>
{% if survey.isLocked %}
<div class="survey-meta">
<div class="survey-meta">
<span class="survey-badge {{ survey.published ? 'success' : 'warning' }}">{{ survey.published ? 'survey.list.published'|trans : 'survey.list.draft'|trans }}</span>
{% if survey.published %}
<span class="survey-badge {{ survey.isActive ? 'success' : 'warning' }}">{{ survey.isActive ? 'survey.list.active'|trans : 'survey.list.inactive'|trans }}</span>
{% elseif survey.isLocked %}
<span class="survey-badge warning">{{ 'survey.list.locked'|trans }}</span>
</div>
{% endif %}
{% endif %}
</div>
</div>
<form method="post" class="survey-publish-toggle-form survey-list-card__toggle-form">
<input type="hidden" name="REQUEST_TOKEN" value="{{ contao.request_token }}">
<input type="hidden" name="_survey_action" value="toggle-published">
<input type="hidden" name="item_id" value="{{ survey.id }}">
<input type="hidden" name="_token" value="{{ csrf_token('toggle-published-' ~ survey.id) }}">
<button
type="submit"
class="survey-publish-toggle survey-publish-toggle--compact{{ survey.published ? ' is-on' : '' }}"
aria-pressed="{{ survey.published ? 'true' : 'false' }}"
>
<span class="survey-publish-toggle__track" aria-hidden="true">
<span class="survey-publish-toggle__thumb"></span>
</span>
<span class="survey-publish-toggle__copy">
<span class="survey-publish-toggle__label">{{ 'survey.edit.status'|trans }}</span>
<span class="survey-publish-toggle__value">{{ survey.published ? 'survey.list.published'|trans : 'survey.list.draft'|trans }}</span>
</span>
</button>
</form>
</div>
<div class="survey-meta survey-list-card__stats">
<span class="survey-badge neutral">{{ 'survey.list.questions'|trans({'%count%': survey.questionCount}) }}</span>
@@ -69,8 +53,13 @@
{% if survey.editUrl %}
<a class="survey-button primary" href="{{ survey.editUrl }}">{{ 'survey.list.edit'|trans }}</a>
{% endif %}
{% if survey.publicUrl %}
{% if survey.publicUrl and survey.published and survey.isActive %}
<a class="survey-button secondary" href="{{ survey.publicUrl }}" target="_blank" rel="noreferrer">{{ 'survey.list.public_view'|trans }}</a>
{% elseif survey.publicUrl %}
<span class="survey-button secondary is-disabled" aria-disabled="true">{{ 'survey.list.public_view'|trans }}</span>
{% endif %}
{% if survey.draftUrl and not survey.published %}
<a class="survey-button secondary" href="{{ survey.draftUrl }}" target="_blank" rel="noreferrer">{{ 'survey.list.draft_view'|trans }}</a>
{% endif %}
{% if survey.resultsUrl %}
<a class="survey-button secondary" href="{{ survey.resultsUrl }}" target="_blank" rel="noreferrer">{{ 'survey.list.show_results'|trans }}</a>