From fd5dae0320f0c10bd99cfe04bf56d6bc83585164 Mon Sep 17 00:00:00 2001 From: vedatakd Date: Tue, 8 Sep 2020 19:34:22 +0300 Subject: [PATCH] add export users module --- .../visiosoft/profile-module/composer.json | 3 + .../resources/lang/en/button.php | 1 + .../Http/Controller/Admin/UsersController.php | 13 ++++ .../src/Profile/UsersExport.php | 65 +++++++++++++++++++ .../src/ProfileModuleServiceProvider.php | 23 +++++-- 5 files changed, 100 insertions(+), 5 deletions(-) create mode 100644 addons/default/visiosoft/profile-module/src/Http/Controller/Admin/UsersController.php create mode 100644 addons/default/visiosoft/profile-module/src/Profile/UsersExport.php diff --git a/addons/default/visiosoft/profile-module/composer.json b/addons/default/visiosoft/profile-module/composer.json index bd92ef038..9e60e3695 100644 --- a/addons/default/visiosoft/profile-module/composer.json +++ b/addons/default/visiosoft/profile-module/composer.json @@ -5,5 +5,8 @@ "psr-4": { "Visiosoft\\ProfileModule\\": "src/" } + }, + "require": { + "maatwebsite/excel": "*" } } diff --git a/addons/default/visiosoft/profile-module/resources/lang/en/button.php b/addons/default/visiosoft/profile-module/resources/lang/en/button.php index 24f21b7a2..bad086837 100644 --- a/addons/default/visiosoft/profile-module/resources/lang/en/button.php +++ b/addons/default/visiosoft/profile-module/resources/lang/en/button.php @@ -14,4 +14,5 @@ return [ 'go_user' => 'Go to User Detail', 'personal' => 'Personal', 'corporate' => 'Corporate', + 'export' => 'Export CSV', ]; diff --git a/addons/default/visiosoft/profile-module/src/Http/Controller/Admin/UsersController.php b/addons/default/visiosoft/profile-module/src/Http/Controller/Admin/UsersController.php new file mode 100644 index 000000000..d7d403317 --- /dev/null +++ b/addons/default/visiosoft/profile-module/src/Http/Controller/Admin/UsersController.php @@ -0,0 +1,13 @@ +email, + $user->username, + $user->first_name, + $user->last_name, + $user->display_name, + $user->ip_address, + $user->country_id, + $user->city, + $user->district, + $user->neighborhood, + $user->village, + $user->gsm_phone, + $user->land_phone, + $user->office_phone, + $user->phone_number, + $user->register_type, + $user->identification_number, + $user->created_at, + ]; + } + + public function headings(): array + { + return [ + 'email address', + 'username', + 'first_name', + 'last_name', + 'display_name', + 'ip_address', + 'country_id', + 'city', + 'district', + 'neighborhood', + 'village', + 'gsm_phone', + 'land_phone', + 'office_phone', + 'phone_number', + 'register_type', + 'identification_number', + 'created_at', + ]; + } +} diff --git a/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php b/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php index 023dc5658..3a1944cd1 100644 --- a/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php +++ b/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php @@ -1,6 +1,9 @@ 'visiosoft.module.profile::address_soft_delete', 'uses' => 'Visiosoft\ProfileModule\Http\Controller\AddressController@delete' ], + 'admin/users/export' => [ + 'as' => 'users::exportUsers', + 'uses' => 'Visiosoft\ProfileModule\Http\Controller\Admin\UsersController@exportUsers' + ], // Cache links @@ -183,7 +190,7 @@ class ProfileModuleServiceProvider extends AddonServiceProvider * @type array|null */ protected $aliases = [ - //'Example' => Visiosoft\ProfileModule\Example::class + 'Excel' => Excel::class, ]; /** @@ -218,7 +225,9 @@ class ProfileModuleServiceProvider extends AddonServiceProvider * * @type array|null */ - protected $providers = []; + protected $providers = [ + ExcelServiceProvider::class, + ]; /** * The addon view overrides. @@ -252,10 +261,14 @@ class ProfileModuleServiceProvider extends AddonServiceProvider /** * Boot the addon. */ - public function boot() + public function boot(AddonCollection $addonCollection) { - // Run extra post-boot registration logic here. - // Use method injection or commands to bring in services. + $slug = 'export'; + $section = [ + 'title' => 'visiosoft.module.profile::button.export', + 'href' => route('users::exportUsers'), + ]; + $addonCollection->get('anomaly.module.users')->addSection($slug, $section); } /**