From 99caf51af92dbd105935d993e6bb9aa2d68475a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Mummert?= Date: Mon, 8 Jun 2026 20:01:08 +0200 Subject: [PATCH] Refine survey template module layout --- .../frontend/_survey_assets.html.twig | 18 +++ .../frontend/member_survey_list.html.twig | 107 ++++++++++-------- .../MemberSurveyListController.php | 6 +- 3 files changed, 84 insertions(+), 47 deletions(-) diff --git a/contao/templates/frontend/_survey_assets.html.twig b/contao/templates/frontend/_survey_assets.html.twig index 0f6a3c9..774911c 100644 --- a/contao/templates/frontend/_survey_assets.html.twig +++ b/contao/templates/frontend/_survey_assets.html.twig @@ -287,6 +287,13 @@ align-items: center; } + .survey-list-card__head--template { + align-items: baseline; + justify-content: space-between; + flex-wrap: wrap; + gap: 0.75rem; + } + .survey-list-card__headline { display: flex; align-items: center; @@ -296,6 +303,12 @@ flex: 1 1 auto; } + .survey-list-card__headline--template { + align-items: baseline; + justify-content: flex-start; + flex: 1 1 auto; + } + .survey-list-card__title-wrap { min-width: 0; } @@ -323,6 +336,11 @@ margin-left: 1rem; } + .survey-list-card__head-actions--template { + align-items: baseline; + margin-left: auto; + } + .survey-list-card__footer { display: flex; align-items: baseline; diff --git a/contao/templates/frontend/member_survey_list.html.twig b/contao/templates/frontend/member_survey_list.html.twig index bc926f5..a157d28 100644 --- a/contao/templates/frontend/member_survey_list.html.twig +++ b/contao/templates/frontend/member_survey_list.html.twig @@ -1,7 +1,9 @@ {% trans_default_domain 'messages' %} {% include '@Survey/frontend/_survey_assets.html.twig' %} -{% include '@Survey/frontend/_survey_branding.html.twig' %} +{% if not templatesOnly|default(false) %} + {% include '@Survey/frontend/_survey_branding.html.twig' %} +{% endif %} {% set moduleHeadline = (headline is iterable ? headline.text|default('') : headline|default(''))|striptags|trim %} {% set templatesOnly = templatesOnly|default(false) %} @@ -33,33 +35,47 @@
{% for survey in surveys %}
-
-
+
+

{{ survey.title|striptags|trim }}

{{ 'survey.list.questions'|trans({'%count%': survey.questionCount}) }} - {{ 'survey.list.participations'|trans({'%count%': survey.participationCount}) }} + {% if not templatesOnly %} + {{ 'survey.list.participations'|trans({'%count%': survey.participationCount}) }} + {% endif %}
+ {% if templatesOnly %} +
+
+ + + + + +
+
+ {% endif %}
+ {% if not templatesOnly %} + {% endif %}
{% else %} -
{{ 'survey.list.empty'|trans }}
+ {% if not templatesOnly %} +
{{ 'survey.list.empty'|trans }}
+ {% endif %} {% endfor %}
{% endif %} diff --git a/src/Controller/FrontendModule/MemberSurveyListController.php b/src/Controller/FrontendModule/MemberSurveyListController.php index e700236..1017057 100644 --- a/src/Controller/FrontendModule/MemberSurveyListController.php +++ b/src/Controller/FrontendModule/MemberSurveyListController.php @@ -61,7 +61,7 @@ final class MemberSurveyListController extends AbstractFrontendModuleController 'id' => $surveyId, 'title' => (string) $survey['title'], 'description' => (string) ($survey['description'] ?? ''), - 'isTemplate' => !empty($survey['isTemplate']), + 'isTemplate' => !empty($survey['isTemplate']), 'isActive' => !empty($survey['isActive']), 'isLocked' => !empty($survey['isLocked']), 'published' => !empty($survey['published']), @@ -74,6 +74,10 @@ final class MemberSurveyListController extends AbstractFrontendModuleController ]; } + if ($templatesOnly && [] === $items) { + return new Response(''); + } + $template->set('loginRequired', false); $template->set('surveys', $items); $template->set('createUrl', !$templatesOnly && $editPage instanceof PageModel ? $this->generateContentUrl($editPage, ['create' => '1']) : null);