Refine survey template module layout
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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 @@
|
||||
<div class="survey-grid survey-list-grid">
|
||||
{% for survey in surveys %}
|
||||
<article class="survey-card survey-list-card">
|
||||
<div class="survey-list-card__head">
|
||||
<div class="survey-list-card__headline">
|
||||
<div class="survey-list-card__head{{ templatesOnly ? ' survey-list-card__head--template' : '' }}">
|
||||
<div class="survey-list-card__headline{{ templatesOnly ? ' survey-list-card__headline--template' : '' }}">
|
||||
<div class="survey-list-card__title-wrap">
|
||||
<h3>{{ survey.title|striptags|trim }}</h3>
|
||||
</div>
|
||||
<div class="survey-list-card__stats">
|
||||
<span class="survey-list-stat">{{ 'survey.list.questions'|trans({'%count%': survey.questionCount}) }}</span>
|
||||
{% if not templatesOnly %}
|
||||
<span class="survey-list-stat">{{ 'survey.list.participations'|trans({'%count%': survey.participationCount}) }}</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% if templatesOnly %}
|
||||
<div class="survey-list-card__head-actions survey-list-card__head-actions--template">
|
||||
<form method="post" class="survey-question-action-form">
|
||||
<input type="hidden" name="REQUEST_TOKEN" value="{{ contao.request_token }}">
|
||||
<input type="hidden" name="_survey_action" value="duplicate-survey">
|
||||
<input type="hidden" name="item_id" value="{{ survey.id }}">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token('duplicate-survey-' ~ survey.id) }}">
|
||||
<button class="survey-button secondary" onclick="return confirm('{{ 'survey.list.duplicate_confirm'|trans({'%title%': survey.title|striptags|trim})|e('js') }}');">{{ 'survey.list.duplicate'|trans }}</button>
|
||||
</form>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if not templatesOnly %}
|
||||
<div class="survey-list-card__footer">
|
||||
<div class="survey-button-row survey-list-card__actions">
|
||||
{% if not templatesOnly and survey.editUrl %}
|
||||
{% if survey.editUrl %}
|
||||
{% if survey.published %}
|
||||
<span class="survey-button primary is-disabled" aria-disabled="true">{{ 'survey.list.edit'|trans }}</span>
|
||||
{% else %}
|
||||
<a class="survey-button primary" href="{{ survey.editUrl }}">{{ 'survey.list.edit'|trans }}</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if not templatesOnly and survey.publicUrl and survey.published %}
|
||||
{% if survey.publicUrl and survey.published %}
|
||||
<a class="survey-button secondary" href="{{ survey.publicUrl }}" target="_blank" rel="noreferrer">{{ 'survey.list.public_view'|trans }}</a>
|
||||
{% endif %}
|
||||
{% if not templatesOnly and survey.draftUrl and not survey.published %}
|
||||
{% 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 not templatesOnly and survey.resultsUrl %}
|
||||
{% if survey.resultsUrl %}
|
||||
<a class="survey-button secondary" href="{{ survey.resultsUrl }}" target="_blank" rel="noreferrer">{{ 'survey.list.show_results'|trans }}</a>
|
||||
{% endif %}
|
||||
<form method="post" class="survey-question-action-form">
|
||||
@@ -69,7 +85,6 @@
|
||||
<input type="hidden" name="_token" value="{{ csrf_token('duplicate-survey-' ~ survey.id) }}">
|
||||
<button class="survey-button secondary" onclick="return confirm('{{ 'survey.list.duplicate_confirm'|trans({'%title%': survey.title|striptags|trim})|e('js') }}');">{{ 'survey.list.duplicate'|trans }}</button>
|
||||
</form>
|
||||
{% if not templatesOnly %}
|
||||
<form method="post" class="survey-question-action-form">
|
||||
<input type="hidden" name="REQUEST_TOKEN" value="{{ contao.request_token }}">
|
||||
<input type="hidden" name="_survey_action" value="delete-survey">
|
||||
@@ -77,10 +92,8 @@
|
||||
<input type="hidden" name="_token" value="{{ csrf_token('delete-survey-' ~ survey.id) }}">
|
||||
<button class="survey-button danger" onclick="return confirm('{{ 'survey.list.delete_confirm'|trans|e('js') }}') && confirm('{{ 'survey.list.delete_confirm_second'|trans|e('js') }}');">{{ 'survey.list.delete'|trans }}</button>
|
||||
</form>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% if not templatesOnly %}
|
||||
<div class="survey-list-card__head-actions">
|
||||
<form method="post" class="survey-list-publish-form">
|
||||
<input type="hidden" name="REQUEST_TOKEN" value="{{ contao.request_token }}">
|
||||
@@ -108,11 +121,13 @@
|
||||
<button type="submit" class="survey-visibility-dot{{ survey.isActive ? ' is-on' : '' }}" title="{{ survey.isActive ? 'survey.edit.deactivate_survey'|trans : 'survey.edit.activate_survey'|trans }}" aria-label="{{ survey.isActive ? 'survey.edit.deactivate_survey'|trans : 'survey.edit.activate_survey'|trans }}"></button>
|
||||
</form>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</article>
|
||||
{% else %}
|
||||
{% if not templatesOnly %}
|
||||
<div class="survey-card">{{ 'survey.list.empty'|trans }}</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user