diff --git a/contao/dca/tl_survey.php b/contao/dca/tl_survey.php index c322520..6b563a3 100644 --- a/contao/dca/tl_survey.php +++ b/contao/dca/tl_survey.php @@ -12,6 +12,7 @@ $GLOBALS['TL_DCA']['tl_survey'] = [ 'ctable' => ['tl_survey_content', 'tl_survey_condition', 'tl_survey_editor', 'tl_survey_submission'], 'enableVersioning' => true, 'onload_callback' => [ + [SurveyDcaListener::class, 'handleDuplicateSurveyAction'], [SurveyDcaListener::class, 'refreshSurveyBackendStateIndex'], ], 'onsubmit_callback' => [ @@ -69,6 +70,12 @@ $GLOBALS['TL_DCA']['tl_survey'] = [ 'primary' => true, 'button_callback' => [SurveyDcaListener::class, 'generatePublishedWarningButton'], ], + 'duplicateSurvey' => [ + 'label' => &$GLOBALS['TL_LANG']['tl_survey']['duplicateSurvey'], + 'href' => 'key=duplicateSurvey', + 'icon' => 'copy.svg', + 'button_callback' => [SurveyDcaListener::class, 'generateDuplicateSurveyButton'], + ], 'delete' => [ 'label' => ['Löschen', 'Eintrag wirklich löschen?'], 'href' => 'act=delete', diff --git a/contao/languages/de/tl_survey.php b/contao/languages/de/tl_survey.php index 92f51f5..e1c7a66 100644 --- a/contao/languages/de/tl_survey.php +++ b/contao/languages/de/tl_survey.php @@ -25,6 +25,9 @@ $GLOBALS['TL_LANG']['tl_survey']['assignedMembers'] = ['Zugewiesene Mitglieder', $GLOBALS['TL_LANG']['tl_survey']['assignedMembersFilter'] = ['Zugewiesene Benutzer', 'Filtert die Liste nach einem zugewiesenen Benutzer.']; $GLOBALS['TL_LANG']['tl_survey']['assignedMembersSummary'] = ['Zugewiesene Benutzer', 'Kommagetrennte Liste der zugewiesenen Benutzer.']; $GLOBALS['TL_LANG']['tl_survey']['copyPublicLink'] = ['Link kopieren', 'Den öffentlichen Link in die Zwischenablage kopieren']; +$GLOBALS['TL_LANG']['tl_survey']['duplicateSurvey'] = ['Duplizieren', 'Diese Umfrage mit allen Fragen duplizieren']; +$GLOBALS['TL_LANG']['tl_survey']['duplicateSurveyConfirm'] = 'Sind Sie sicher, dass Sie die Umfrage "%s" mit allen Fragen duplizieren wollen?'; +$GLOBALS['TL_LANG']['tl_survey']['duplicateSurveyDone'] = 'Die Umfrage "%s" wurde dupliziert.'; $GLOBALS['TL_LANG']['tl_survey']['showResults'] = ['Ergebnisse anzeigen', 'Die Ergebnisse dieser Umfrage im Frontend anzeigen']; $GLOBALS['TL_LANG']['tl_survey']['createdBy'] = ['Angelegt von', 'ID des erstellenden Mitglieds.']; $GLOBALS['TL_LANG']['tl_survey']['updatedBy'] = ['Aktualisiert von', 'ID des zuletzt bearbeitenden Mitglieds.']; diff --git a/contao/languages/en/tl_survey.php b/contao/languages/en/tl_survey.php index 7bf1b17..6e8a029 100644 --- a/contao/languages/en/tl_survey.php +++ b/contao/languages/en/tl_survey.php @@ -25,6 +25,9 @@ $GLOBALS['TL_LANG']['tl_survey']['assignedMembers'] = ['Assigned members', 'Choo $GLOBALS['TL_LANG']['tl_survey']['assignedMembersFilter'] = ['Assigned users', 'Filters the list by an assigned user.']; $GLOBALS['TL_LANG']['tl_survey']['assignedMembersSummary'] = ['Assigned users', 'Comma-separated list of assigned users.']; $GLOBALS['TL_LANG']['tl_survey']['copyPublicLink'] = ['Copy link', 'Copy the public link to the clipboard']; +$GLOBALS['TL_LANG']['tl_survey']['duplicateSurvey'] = ['Duplicate', 'Duplicate this survey with all questions']; +$GLOBALS['TL_LANG']['tl_survey']['duplicateSurveyConfirm'] = 'Are you sure you want to duplicate the survey "%s" with all questions?'; +$GLOBALS['TL_LANG']['tl_survey']['duplicateSurveyDone'] = 'The survey "%s" has been duplicated.'; $GLOBALS['TL_LANG']['tl_survey']['showResults'] = ['Show results', 'Display the results of this survey in the frontend']; $GLOBALS['TL_LANG']['tl_survey']['createdBy'] = ['Created by', 'ID of the creating member.']; $GLOBALS['TL_LANG']['tl_survey']['updatedBy'] = ['Updated by', 'ID of the member who last edited it.']; diff --git a/contao/templates/frontend/_survey_assets.html.twig b/contao/templates/frontend/_survey_assets.html.twig index d6f806c..80e18c0 100644 --- a/contao/templates/frontend/_survey_assets.html.twig +++ b/contao/templates/frontend/_survey_assets.html.twig @@ -326,10 +326,11 @@ .survey-list-card__footer { display: flex; - align-items: center; + align-items: baseline; justify-content: space-between; gap: 0.75rem; flex-wrap: wrap; + margin-top: .3em; } .survey-list-card__stats { @@ -409,29 +410,25 @@ } .survey-visibility-dot { - width: 2.2rem; - height: 2.2rem; + aspect-ratio: 1; + height: 42px; border-radius: 999px; - border: 1px solid rgba(162, 168, 180, 0.62); - background: #7f8793; + background: #a6adb7; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; - transition: background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease; + transition: background 0.18s ease; } .survey-visibility-dot.is-on { - background: #0a8378; - border-color: rgba(0, 174, 151, 0.68); - box-shadow: 0 0 0 0.18rem rgba(0, 174, 151, 0.14); + background: #0a832e; } .survey-button-row { display: flex; flex-wrap: wrap; gap: 0.5rem; - margin-top: 0.65rem; } .survey-button-row--form-actions { diff --git a/contao/templates/frontend/member_survey_list.html.twig b/contao/templates/frontend/member_survey_list.html.twig index a13648c..8da4cd8 100644 --- a/contao/templates/frontend/member_survey_list.html.twig +++ b/contao/templates/frontend/member_survey_list.html.twig @@ -61,6 +61,13 @@ {% if survey.resultsUrl %} {{ 'survey.list.show_results'|trans }} {% endif %} +