From 2decdeb1944adf9d27ec42303445c5a372e5c890 Mon Sep 17 00:00:00 2001 From: jitendra Date: Fri, 14 Dec 2018 13:56:05 +0530 Subject: [PATCH] Removed event from menu, acl, config creation --- .../src/Config/product_form_accordians.php | 25 ++++ .../Webkul/Admin/src/ProductFormAccordian.php | 41 ------- .../src/Providers/AdminServiceProvider.php | 56 +++++++-- .../src/Providers/EventServiceProvider.php | 110 +----------------- .../views/configuration/field-type.blade.php | 2 +- packages/Webkul/Core/src/Tree.php | 34 +++++- .../src/Providers/ComposerServiceProvider.php | 6 + .../src/Providers/ShopServiceProvider.php | 34 ++---- .../src/Providers/UserServiceProvider.php | 18 --- 9 files changed, 121 insertions(+), 205 deletions(-) create mode 100644 packages/Webkul/Admin/src/Config/product_form_accordians.php delete mode 100644 packages/Webkul/Admin/src/ProductFormAccordian.php diff --git a/packages/Webkul/Admin/src/Config/product_form_accordians.php b/packages/Webkul/Admin/src/Config/product_form_accordians.php new file mode 100644 index 000000000..332edcc03 --- /dev/null +++ b/packages/Webkul/Admin/src/Config/product_form_accordians.php @@ -0,0 +1,25 @@ + 'inventories', + 'name' => 'Inventories', + 'view' => 'admin::catalog.products.accordians.inventories', + 'sort' => 1 + ], [ + 'key' => 'images', + 'name' => 'Images', + 'view' => 'admin::catalog.products.accordians.images', + 'sort' => 2 + ], [ + 'key' => 'categories', + 'name' => 'Categories', + 'view' => 'admin::catalog.products.accordians.categories', + 'sort' => 3 + ], [ + 'key' => 'variations', + 'name' => 'Variations', + 'view' => 'admin::catalog.products.accordians.variations', + 'sort' => 4 + ] +]; \ No newline at end of file diff --git a/packages/Webkul/Admin/src/ProductFormAccordian.php b/packages/Webkul/Admin/src/ProductFormAccordian.php deleted file mode 100644 index c116db403..000000000 --- a/packages/Webkul/Admin/src/ProductFormAccordian.php +++ /dev/null @@ -1,41 +0,0 @@ -items = core()->sortItems($accordian->items); - - return $accordian; - } - - /** - * Add a accordian item to the item stack - * - * @param string $key Dot seperated heirarchy - * @param string $name Text for the anchor - * @param string $view Blade file for accordian - * @param integer $sort Sorting index for the items - */ - public function add($key, $name, $view, $sort = 0) - { - array_push($this->items, [ - 'key' => $key, - 'name' => $name, - 'view' => $view, - 'sort' => $sort - ]); - } -} \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Providers/AdminServiceProvider.php b/packages/Webkul/Admin/src/Providers/AdminServiceProvider.php index 1388d4fac..9bed45648 100644 --- a/packages/Webkul/Admin/src/Providers/AdminServiceProvider.php +++ b/packages/Webkul/Admin/src/Providers/AdminServiceProvider.php @@ -3,15 +3,17 @@ namespace Webkul\Admin\Providers; use Illuminate\Support\ServiceProvider; -use Illuminate\Support\Facades\Event; -use Illuminate\Support\Facades\Blade; use Webkul\Admin\Providers\EventServiceProvider; use Illuminate\Contracts\Debug\ExceptionHandler; use Webkul\Admin\Exceptions\Handler; -use Illuminate\Foundation\AliasLoader; -use Webkul\Admin\Facades\Configuration as ConfigurationFacade; -use Webkul\Admin\Configuration; +use Webkul\Core\Tree; +/** + * Admin service provider + * + * @author Jitendra Singh + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ class AdminServiceProvider extends ServiceProvider { /** @@ -59,26 +61,54 @@ class AdminServiceProvider extends ServiceProvider protected function composeView() { view()->composer(['admin::catalog.products.create', 'admin::catalog.products.edit'], function ($view) { - $accordians = current(Event::fire('admin.catalog.products.accordian.create')); + $accordian = Tree::create(); - $view->with('form_accordians', $accordians); + foreach(config('product_form_accordians') as $item) { + $accordian->add($item); + } + + $accordian->items = core()->sortItems($accordian->items); + + $view->with('form_accordians', $accordian); }); view()->composer(['admin::layouts.nav-left', 'admin::layouts.nav-aside', 'admin::layouts.tabs'], function ($view) { - $menu = current(Event::fire('admin.menu.create')); + $tree = Tree::create(); - $menu->items = core()->sortItems($menu->items); + foreach(config('menu.admin') as $item) { + if (bouncer()->hasPermission($item['key'])) { + $tree->add($item, 'menu'); + } + } - $view->with('menu', $menu); + $tree->items = core()->sortItems($tree->items); + + $view->with('menu', $tree); }); view()->composer(['admin::layouts.nav-aside', 'admin::layouts.tabs', 'admin::configuration.index'], function ($view) { - $tree = current(Event::fire('admin.config.create')); + $tree = Tree::create(); + + foreach(config('core') as $item) { + $tree->add($item); + } $tree->items = core()->sortItems($tree->items); $view->with('config', $tree); }); + + view()->composer(['admin::users.roles.create', 'admin::users.roles.edit'], function ($view) { + $tree = Tree::create(); + + foreach(config('acl') as $item) { + $tree->add($item); + } + + $tree->items = core()->sortItems($tree->items); + + $view->with('acl', $tree); + }); } /** @@ -95,5 +125,9 @@ class AdminServiceProvider extends ServiceProvider $this->mergeConfigFrom( dirname(__DIR__) . '/Config/acl.php', 'acl' ); + + $this->mergeConfigFrom( + dirname(__DIR__) . '/Config/product_form_accordians.php', 'product_form_accordians' + ); } } \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Providers/EventServiceProvider.php b/packages/Webkul/Admin/src/Providers/EventServiceProvider.php index 83cd881d0..fe5fd56b6 100644 --- a/packages/Webkul/Admin/src/Providers/EventServiceProvider.php +++ b/packages/Webkul/Admin/src/Providers/EventServiceProvider.php @@ -4,10 +4,6 @@ namespace Webkul\Admin\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\Event; -use Illuminate\Support\Facades\View; -use Webkul\Ui\Menu; -use Webkul\Core\Tree; -use Webkul\Admin\ProductFormAccordian; class EventServiceProvider extends ServiceProvider { @@ -18,16 +14,6 @@ class EventServiceProvider extends ServiceProvider */ public function boot() { - $this->createAdminMenu(); - - $this->createAdminConfig(); - - $this->buildACL(); - - $this->registerACL(); - - $this->createProductFormAccordian(); - Event::listen('checkout.order.save.after', 'Webkul\Admin\Listeners\Order@sendNewOrderMail'); Event::listen('checkout.invoice.save.after', 'Webkul\Admin\Listeners\Order@sendNewInvoiceMail'); @@ -36,98 +22,4 @@ class EventServiceProvider extends ServiceProvider Event::listen('checkout.order.save.after', 'Webkul\Admin\Listeners\Order@updateProductInventory'); } - - /** - * This method fires an event for menu creation, any package can add their menu item by listening to the admin.menu.build event - * - * @return void - */ - public function createAdminMenu() - { - Event::listen('admin.menu.create', function () { - return Tree::create(function ($menu) { - Event::fire('admin.menu.build', $menu); - }); - }); - - Event::listen('admin.menu.build', function ($menu) { - foreach(config('menu.admin') as $item) { - if (bouncer()->hasPermission($item['key'])) { - $menu->add($item, 'menu'); - } - } - }); - } - - /** - * This method fires an event for config creation, any package can add their config item by listening to the admin.config.build event - * - * @return void - */ - public function createAdminConfig() - { - Event::listen('admin.config.create', function () { - return Tree::create(function ($tree) { - Event::fire('admin.config.build', $tree); - }); - }); - - Event::listen('admin.config.build', function ($config) { - foreach(config('core') as $item) { - $config->add($item); - } - }); - } - - /** - * Build route based ACL - * - * @return voidbuildACL - */ - public function buildACL() - { - Event::listen('admin.acl.build', function ($acl) { - foreach(config('acl') as $item) { - $acl->add($item); - } - }); - } - - /** - * Registers acl to entire application - * - * @return void - */ - public function registerACL() - { - $this->app->singleton('acl', function () { - return current(Event::fire('admin.acl.create')); - }); - - View::share('acl', app('acl')); - } - - /** - * This method fires an event for accordian creation, any package can add their accordian item by listening to the admin.catalog.products.accordian.build event - * - * @return void - */ - public function createProductFormAccordian() - { - Event::listen('admin.catalog.products.accordian.create', function() { - return ProductFormAccordian::create(function($accordian) { - Event::fire('admin.catalog.products.accordian.build', $accordian); - }); - }); - - Event::listen('admin.catalog.products.accordian.build', function($accordian) { - $accordian->add('inventories', 'Inventories', 'admin::catalog.products.accordians.inventories', 1); - - $accordian->add('images', 'Images', 'admin::catalog.products.accordians.images', 2); - - $accordian->add('categories', 'Categories', 'admin::catalog.products.accordians.categories', 3); - - $accordian->add('variations', 'Variations', 'admin::catalog.products.accordians.variations', 4); - }); - } -} +} \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Resources/views/configuration/field-type.blade.php b/packages/Webkul/Admin/src/Resources/views/configuration/field-type.blade.php index 76b17d35a..f0044c03e 100644 --- a/packages/Webkul/Admin/src/Resources/views/configuration/field-type.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/configuration/field-type.blade.php @@ -8,7 +8,7 @@ $validations = implode('|', array_filter($validations)); - $name = $field['title']; + $name = $field['name']; ?>