From bd66c8db2a64c84c60b4795c5fdf2b5805cba101 Mon Sep 17 00:00:00 2001 From: Maciej Kobus Date: Mon, 18 Dec 2017 11:17:59 +0100 Subject: [PATCH] EZP-28567: As an editor I want to be able to restore archived Content version --- ...admin.location.version.restore_archived.js | 24 +++++++++++++++++++ .../views/content/locationview.html.twig | 1 + .../views/content/tab/versions/tab.html.twig | 7 +++++- .../content/tab/versions/table.html.twig | 12 +++++++++- src/lib/Tab/LocationView/VersionsTab.php | 6 +++++ 5 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 src/bundle/Resources/public/js/scripts/admin.location.version.restore_archived.js diff --git a/src/bundle/Resources/public/js/scripts/admin.location.version.restore_archived.js b/src/bundle/Resources/public/js/scripts/admin.location.version.restore_archived.js new file mode 100644 index 0000000000..2f49151edb --- /dev/null +++ b/src/bundle/Resources/public/js/scripts/admin.location.version.restore_archived.js @@ -0,0 +1,24 @@ +(function (global, doc) { + const FORM_ARCHIVED_VERSION_RESTORE = 'form[name="archived_version_restore"]'; + const restoreArchivedVersion = (event) => { + const versionRestoreForm = doc.querySelector(FORM_ARCHIVED_VERSION_RESTORE); + const contentId = event.currentTarget.dataset.contentId; + const versionNo = event.currentTarget.dataset.versionNo; + const languageCode = event.currentTarget.dataset.languageCode; + const contentInfoInput = versionRestoreForm.querySelector('input[name="archived_version_restore[content_info]"]'); + const versionInfoContentInfoInput = versionRestoreForm.querySelector('input[name="archived_version_restore[version_info][content_info]"]'); + const versionInfoVersionNoInput = versionRestoreForm.querySelector('input[name="archived_version_restore[version_info][version_no]"]'); + const languageInput = versionRestoreForm.querySelector('#archived_version_restore_language_' + languageCode); + + event.preventDefault(); + + contentInfoInput.value = contentId; + versionInfoContentInfoInput.value = contentId; + versionInfoVersionNoInput.value = versionNo; + languageInput.setAttribute('checked', true); + + versionRestoreForm.submit(); + }; + + [...doc.querySelectorAll('.ez-btn--restore-archived-version')].forEach(button => button.addEventListener('click', restoreArchivedVersion, false)); +})(window, document); diff --git a/src/bundle/Resources/views/content/locationview.html.twig b/src/bundle/Resources/views/content/locationview.html.twig index 443c129408..ff66c97d87 100644 --- a/src/bundle/Resources/views/content/locationview.html.twig +++ b/src/bundle/Resources/views/content/locationview.html.twig @@ -90,6 +90,7 @@ 'bundles/ezplatformadminui/js/scripts/admin.location.visibility.js' 'bundles/ezplatformadminui/js/scripts/admin.location.update.js' 'bundles/ezplatformadminui/js/scripts/admin.location.add.translation.js' + 'bundles/ezplatformadminui/js/scripts/admin.location.version.restore_archived.js' 'bundles/ezplatformadminui/js/scripts/udw/move.js' 'bundles/ezplatformadminui/js/scripts/udw/copy.js' 'bundles/ezplatformadminui/js/scripts/udw/swap.js' diff --git a/src/bundle/Resources/views/content/tab/versions/tab.html.twig b/src/bundle/Resources/views/content/tab/versions/tab.html.twig index 75039f0779..8d9bb1eaf8 100644 --- a/src/bundle/Resources/views/content/tab/versions/tab.html.twig +++ b/src/bundle/Resources/views/content/tab/versions/tab.html.twig @@ -1,5 +1,6 @@ {% trans_default_domain 'locationview' %} {% import _self as tab %} +{% form_theme form_archived_version_restore '@EzPlatformAdminUi/parts/form/flat_widgets.html.twig' %} {% if draft_versions is not empty %}
@@ -34,7 +35,7 @@ {{ form_start(form_version_remove_archived, {'action': path('ezplatform.version.remove')}) }} {% include '@EzPlatformAdminUi/parts/table_header.html.twig' with { headerText: 'tab.versions.archived_versions'|trans()|desc('Archived versions'), tools: tab.table_header_tools(form_version_remove_archived) } %} {% if archived_versions is not empty %} - {{ include('@EzPlatformAdminUi/content/tab/versions/table.html.twig', { 'versions': archived_versions, 'form': form_version_remove_archived }) }} + {{ include('@EzPlatformAdminUi/content/tab/versions/table.html.twig', { 'versions': archived_versions, 'form': form_version_remove_archived, 'is_archived': true, 'form_archived_version_restore': form_archived_version_restore }) }} {% else %}

{{ 'tab.versions.no_permission'|trans()|desc('You don\'t have access to view the content item\'s versions') }} @@ -44,6 +45,10 @@

{% endif %} +{{ form_start(form_archived_version_restore, {'action': path('ezplatform.content.edit')}) }} +{{ form_widget(form_archived_version_restore.language, {'attr': {'hidden': 'hidden'}}) }} +{{ form_end(form_archived_version_restore) }} + {% macro table_header_tools(form) %}