diff --git a/src/BootstrapAdminUi/config/app/twig_hooks/common/update.php b/src/BootstrapAdminUi/config/app/twig_hooks/common/update.php new file mode 100644 index 00000000..2dc43580 --- /dev/null +++ b/src/BootstrapAdminUi/config/app/twig_hooks/common/update.php @@ -0,0 +1,60 @@ +extension('twig_hooks', [ + 'hooks' => [ + 'sylius_admin.common.update' => [ + 'sidebar' => [ + 'template' => '@SyliusBootstrapAdminUi/shared/crud/common/sidebar.html.twig', + ], + 'content' => [ + 'template' => '@SyliusBootstrapAdminUi/shared/crud/common/content.html.twig', + ], + ], + 'sylius_admin.common.update.content' => [ + 'header' => [ + 'template' => '@SyliusBootstrapAdminUi/shared/crud/common/content/header.html.twig', + ], + ], + 'sylius_admin.common.update.content.header' => [ + 'breadcrumbs' => [ + 'template' => '@SyliusBootstrapAdminUi/shared/crud/update/content/header/breadcrumbs.html.twig', + ], + 'title_block' => [ + 'template' => '@SyliusBootstrapAdminUi/shared/crud/common/content/header/title_block.html.twig', + ], + ], + 'sylius_admin.common.update.content.header.title_block' => [ + 'title' => [ + 'template' => '@SyliusBootstrapAdminUi/shared/crud/update/content/header/title_block/title.html.twig', + ], + 'actions' => [ + 'template' => '@SyliusBootstrapAdminUi/shared/crud/update/content/header/title_block/actions.html.twig', + ], + ], + 'sylius_admin.common.update.content.header.title_block.actions' => [ + 'cancel' => [ + 'template' => '@SyliusBootstrapAdminUi/shared/crud/common/content/header/title_block/actions/cancel.html.twig', + 'priority' => -200, + ], + 'update' => [ + 'template' => '@SyliusBootstrapAdminUi/shared/crud/common/content/header/title_block/actions/update.html.twig', + 'priority' => -300, + ], + ], + ], + ]); +}; diff --git a/src/BootstrapAdminUi/templates/shared/crud/common/content/header/title_block/actions/cancel.html.twig b/src/BootstrapAdminUi/templates/shared/crud/common/content/header/title_block/actions/cancel.html.twig index 0e212628..73694427 100644 --- a/src/BootstrapAdminUi/templates/shared/crud/common/content/header/title_block/actions/cancel.html.twig +++ b/src/BootstrapAdminUi/templates/shared/crud/common/content/header/title_block/actions/cancel.html.twig @@ -2,9 +2,14 @@ {% set configuration = hookable_metadata.context.configuration %} -{% set index_url = sylius_generate_redirect_path(app.request.headers.get('referer')|default(path( +{#{% set index_url = sylius_generate_redirect_path(app.request.headers.get('referer')|default(path(#} +{# configuration.vars.index.route.name|default(configuration.getRouteName('index')),#} +{# configuration.vars.index.route.parameters|default(configuration.vars.route.parameters|default({}))#} +{#))) %}#} + +{% set index_url = path( configuration.vars.index.route.name|default(configuration.getRouteName('index')), configuration.vars.index.route.parameters|default(configuration.vars.route.parameters|default({})) -))) %} +) %} {{ button.cancel(sylius_test_form_attribute('cancel-changes-button')|merge({ text: 'sylius.ui.cancel'|trans, url: index_url, class: 'btn' })) }} diff --git a/src/BootstrapAdminUi/templates/shared/crud/update/content/header/breadcrumbs.html.twig b/src/BootstrapAdminUi/templates/shared/crud/update/content/header/breadcrumbs.html.twig new file mode 100644 index 00000000..7c8fba12 --- /dev/null +++ b/src/BootstrapAdminUi/templates/shared/crud/update/content/header/breadcrumbs.html.twig @@ -0,0 +1,34 @@ +{% from '@SyliusBootstrapAdminUi/shared/helper/breadcrumbs.html.twig' import breadcrumbs %} + +{% set configuration = hookable_metadata.context.configuration %} +{% set resource = hookable_metadata.context.resource %} +{% set metadata = hookable_metadata.context.metadata %} + +{% set resource_index = metadata.applicationName~'.ui.'~metadata.pluralName %} +{% set index_url = path( + configuration.vars.index.route.name|default(configuration.getRouteName('index')), + configuration.vars.index.route.parameters|default(configuration.vars.route.parameters|default({})) +) %} + +{% set rendered_field_prefix = hookable_metadata.configuration.rendered_field_prefix|default(null) %} +{% set field_name = hookable_metadata.configuration.rendered_field|default('') %} +{% set rendered_field = rendered_field_prefix ~ (attribute(resource, field_name) is defined ? attribute(resource, field_name) : null) %} + +{% set resource_edit_name = rendered_field|default(resource.translations[app.locale].name|default(resource.code|default(resource.id))) %} +{% set show_route_name = configuration.vars.index.route.name|default(configuration.getRouteName('show')) %} + +{#{% if sylius_route_exists(show_route_name) %}#} +{# {% set show_url = path(show_route_name, { id: resource.id }) %}#} +{# {% set resource_edit = { name: resource_edit_name, url: show_url} %}#} +{#{% else %}#} + {% set resource_edit = { name: resource_edit_name, active: true} %} +{#{% endif %}#} + +{% set dashboard_path = hookable_metadata.context.routing.dashboard_path|default('/admin') %} + +{{ breadcrumbs([ + { name: 'sylius.ui.dashboard', url: dashboard_path, active: false }, + { name: resource_index, url: index_url, active: false }, + resource_edit, + { name: 'sylius.ui.edit'|trans, active: false } +]) }} diff --git a/src/BootstrapAdminUi/templates/shared/crud/update/content/header/title_block/actions.html.twig b/src/BootstrapAdminUi/templates/shared/crud/update/content/header/title_block/actions.html.twig new file mode 100644 index 00000000..66f800f5 --- /dev/null +++ b/src/BootstrapAdminUi/templates/shared/crud/update/content/header/title_block/actions.html.twig @@ -0,0 +1,7 @@ +{% import '@SyliusBootstrapAdminUi/shared/helper/button.html.twig' as button %} + +
+
+ {% hook 'actions' %} +
+
diff --git a/src/BootstrapAdminUi/templates/shared/crud/update/content/header/title_block/title.html.twig b/src/BootstrapAdminUi/templates/shared/crud/update/content/header/title_block/title.html.twig new file mode 100644 index 00000000..4b6d4535 --- /dev/null +++ b/src/BootstrapAdminUi/templates/shared/crud/update/content/header/title_block/title.html.twig @@ -0,0 +1,18 @@ +{% import '@SyliusBootstrapAdminUi/shared/helper/header.html.twig' as header %} + +{% if hookable_metadata.context.metadata is defined and hookable_metadata.context.configuration is defined %} + {% set configuration = hookable_metadata.context.configuration %} + {% set metadata = hookable_metadata.context.metadata %} + + {% set singular_name = hookable_metadata.configuration.resource_name|default(metadata.applicationName ~ '.ui.' ~ _context.metadata.name) %} + {% set header = hookable_metadata.configuration.header|default(null) %} +{% else %} + {% set singular_name = hookable_metadata.configuration.resource_name %} + {% set header = hookable_metadata.configuration.header %} +{% endif %} + +
+
+ {{ header.h1(header is not null ? header|trans : 'sylius.ui.edit'|trans ~ ' ' ~ singular_name|trans) }} +
+