diff --git a/src/Sylius/Bundle/AdminBundle/Menu/MainMenuBuilder.php b/src/Sylius/Bundle/AdminBundle/Menu/MainMenuBuilder.php index 63db33f139..21b4699d91 100644 --- a/src/Sylius/Bundle/AdminBundle/Menu/MainMenuBuilder.php +++ b/src/Sylius/Bundle/AdminBundle/Menu/MainMenuBuilder.php @@ -40,10 +40,10 @@ final class MainMenuBuilder extends AbstractAdminMenuBuilder */ private function addConfigurationMenu(ItemInterface $menu) { - $this->configureConfigurationSubMenu($menu); $this->configureMarketingSubMenu($menu); $this->configureCustomersSubMenu($menu); $this->configureCatalogSubMenu($menu); + $this->configureConfigurationSubMenu($menu); } /** @@ -150,15 +150,21 @@ final class MainMenuBuilder extends AbstractAdminMenuBuilder */ private function configureCatalogSubMenu(ItemInterface $menu) { - $assortmentSubMenu = $menu + $catalogSubMenu = $menu ->addChild('catalog') ->setLabel('sylius.menu.admin.main.catalog.header') ; - $assortmentSubMenu + $catalogSubMenu ->addChild('attributes', ['route' => 'sylius_admin_product_attribute_index']) ->setLabel('sylius.menu.admin.main.catalog.attributes') ->setLabelAttribute('icon', 'cubes') ; + + $catalogSubMenu + ->addChild('product_options', ['route' => 'sylius_admin_product_option_index']) + ->setLabel('sylius.menu.admin.main.catalog.manage_product_options') + ->setLabelAttribute('icon', 'options') + ; } } diff --git a/src/Sylius/Bundle/AdminBundle/Resources/config/grids.yml b/src/Sylius/Bundle/AdminBundle/Resources/config/grids.yml index 57d4fb02e9..10de4d4ebd 100644 --- a/src/Sylius/Bundle/AdminBundle/Resources/config/grids.yml +++ b/src/Sylius/Bundle/AdminBundle/Resources/config/grids.yml @@ -6,6 +6,7 @@ imports: - { resource: "@SyliusAdminBundle/Resources/config/grids/locale.yml" } - { resource: "@SyliusAdminBundle/Resources/config/grids/payment_method.yml" } - { resource: "@SyliusAdminBundle/Resources/config/grids/product_attribute.yml" } + - { resource: "@SyliusAdminBundle/Resources/config/grids/product_option.yml" } - { resource: "@SyliusAdminBundle/Resources/config/grids/promotion.yml" } - { resource: "@SyliusAdminBundle/Resources/config/grids/shipping_method.yml" } - { resource: "@SyliusAdminBundle/Resources/config/grids/tax_category.yml" } diff --git a/src/Sylius/Bundle/AdminBundle/Resources/config/grids/product_option.yml b/src/Sylius/Bundle/AdminBundle/Resources/config/grids/product_option.yml new file mode 100644 index 0000000000..93b9282741 --- /dev/null +++ b/src/Sylius/Bundle/AdminBundle/Resources/config/grids/product_option.yml @@ -0,0 +1,28 @@ +sylius_grid: + grids: + sylius_admin_product_option: + driver: + name: doctrine/orm + options: + class: %sylius.model.product_option.class% + fields: + code: + type: string + label: sylius.ui.code + name: + type: string + label: sylius.ui.name + values: + type: twig + label: sylius.ui.values + options: + template: SyliusAdminBundle:ProductOption/Field:values.html.twig + actions: + main: + create: + type: create + item: + update: + type: update + delete: + type: delete diff --git a/src/Sylius/Bundle/AdminBundle/Resources/config/routing.yml b/src/Sylius/Bundle/AdminBundle/Resources/config/routing.yml index 888d2e0549..3353bba7c1 100644 --- a/src/Sylius/Bundle/AdminBundle/Resources/config/routing.yml +++ b/src/Sylius/Bundle/AdminBundle/Resources/config/routing.yml @@ -31,6 +31,9 @@ sylius_admin_payment_method: sylius_admin_attribute: resource: "@SyliusAdminBundle/Resources/config/routing/product_attribute.yml" +sylius_admin_product_option: + resource: "@SyliusAdminBundle/Resources/config/routing/product_option.yml" + sylius_admin_promotion: resource: "@SyliusAdminBundle/Resources/config/routing/promotion.yml" diff --git a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/product_option.yml b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/product_option.yml new file mode 100644 index 0000000000..d801b2f06c --- /dev/null +++ b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/product_option.yml @@ -0,0 +1,16 @@ +sylius_admin_product_option: + resource: | + alias: sylius.product_option + section: admin + templates: SyliusAdminBundle:Crud + except: ['show'] + redirect: update + grid: sylius_admin_product_option + vars: + all: + subheader: sylius.ui.manage_product_option + templates: + form: SyliusAdminBundle:ProductOption:_form.html.twig + index: + icon: options + type: sylius.resource diff --git a/src/Sylius/Bundle/AdminBundle/Resources/translations/messages.en.yml b/src/Sylius/Bundle/AdminBundle/Resources/translations/messages.en.yml index fb8e18641e..cb58936bfd 100644 --- a/src/Sylius/Bundle/AdminBundle/Resources/translations/messages.en.yml +++ b/src/Sylius/Bundle/AdminBundle/Resources/translations/messages.en.yml @@ -2,6 +2,9 @@ sylius: menu: admin: main: + catalog: + header: Catalog + manage_product_options: Manage options configuration: channels: Channels countries: Countries diff --git a/src/Sylius/Bundle/AdminBundle/Resources/views/ProductOption/Field/values.html.twig b/src/Sylius/Bundle/AdminBundle/Resources/views/ProductOption/Field/values.html.twig new file mode 100644 index 0000000000..c9328fcc0c --- /dev/null +++ b/src/Sylius/Bundle/AdminBundle/Resources/views/ProductOption/Field/values.html.twig @@ -0,0 +1,2 @@ +{% import '@SyliusUi/Macro/values.html.twig' as option %} +{{ option.values(data) }} diff --git a/src/Sylius/Bundle/AdminBundle/Resources/views/ProductOption/_form.html.twig b/src/Sylius/Bundle/AdminBundle/Resources/views/ProductOption/_form.html.twig new file mode 100644 index 0000000000..d54bbd74a3 --- /dev/null +++ b/src/Sylius/Bundle/AdminBundle/Resources/views/ProductOption/_form.html.twig @@ -0,0 +1,18 @@ +