From 8f93a11e11a4e2bb6c909e80a8f54cbd55780bbb Mon Sep 17 00:00:00 2001 From: Grzegorz Sadowski Date: Wed, 20 Apr 2016 09:16:19 +0200 Subject: [PATCH] [Admin][ProductOption] Added product option grid configuration --- .../AdminBundle/Menu/MainMenuBuilder.php | 12 ++++++-- .../AdminBundle/Resources/config/grids.yml | 1 + .../Resources/config/grids/product_option.yml | 28 +++++++++++++++++++ .../AdminBundle/Resources/config/routing.yml | 3 ++ .../config/routing/product_option.yml | 16 +++++++++++ .../Resources/translations/messages.en.yml | 3 ++ .../ProductOption/Field/values.html.twig | 2 ++ .../views/ProductOption/_form.html.twig | 18 ++++++++++++ .../Resources/translations/messages.en.yml | 4 +++ .../Resources/views/Macro/values.html.twig | 7 +++++ 10 files changed, 91 insertions(+), 3 deletions(-) create mode 100644 src/Sylius/Bundle/AdminBundle/Resources/config/grids/product_option.yml create mode 100644 src/Sylius/Bundle/AdminBundle/Resources/config/routing/product_option.yml create mode 100644 src/Sylius/Bundle/AdminBundle/Resources/views/ProductOption/Field/values.html.twig create mode 100644 src/Sylius/Bundle/AdminBundle/Resources/views/ProductOption/_form.html.twig create mode 100644 src/Sylius/Bundle/UiBundle/Resources/views/Macro/values.html.twig 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 @@ +
+
+
+ {{ form_errors(form) }} + {{ form_row(form.code) }} +
+ {% for locale, translationForm in form.translations %} +

{{ locale|sylius_locale_name }}

+ {{ form_row(translationForm.name) }} + {% endfor %} +
+
+
+
+ {{ form_row(form.values) }} +
+ {{ form_rest(form) }} +
diff --git a/src/Sylius/Bundle/UiBundle/Resources/translations/messages.en.yml b/src/Sylius/Bundle/UiBundle/Resources/translations/messages.en.yml index 36ec931996..d1aaa77161 100644 --- a/src/Sylius/Bundle/UiBundle/Resources/translations/messages.en.yml +++ b/src/Sylius/Bundle/UiBundle/Resources/translations/messages.en.yml @@ -4,6 +4,8 @@ sylius: username: Username password: Password remember_me: Remember me + option: + presentation: Presentation ui: actions: Actions administration_panel_login: Administration panel login @@ -53,6 +55,7 @@ sylius: manage_customer: Manage customers manage_languages_available_in_the_store: Manage languages available in the store manage_payment_method: Manage payment methods + manage_product_option: Manage product option manage_shipping_destinations: Manage shipping destinations manage_shipping_methods_for_your_store: Manage shipping methods for your store manage_taxation_of_your_products: Manage taxation of your products @@ -81,4 +84,5 @@ sylius: status: Status success: Success tax_categories: Tax categories + values: Values yes: Yes diff --git a/src/Sylius/Bundle/UiBundle/Resources/views/Macro/values.html.twig b/src/Sylius/Bundle/UiBundle/Resources/views/Macro/values.html.twig new file mode 100644 index 0000000000..76dc1c7cfd --- /dev/null +++ b/src/Sylius/Bundle/UiBundle/Resources/views/Macro/values.html.twig @@ -0,0 +1,7 @@ +{% macro values(options) %} + {% for option in options %} + + {{ option.value }} + + {% endfor %} +{% endmacro %}