diff --git a/addons/default/visiosoft/profile-module/migrations/2018_11_15_125011_visiosoft.module.profile__create_profile_fields.php b/addons/default/visiosoft/profile-module/migrations/2018_11_15_125011_visiosoft.module.profile__create_profile_fields.php index ec59c9816..782ddd11f 100644 --- a/addons/default/visiosoft/profile-module/migrations/2018_11_15_125011_visiosoft.module.profile__create_profile_fields.php +++ b/addons/default/visiosoft/profile-module/migrations/2018_11_15_125011_visiosoft.module.profile__create_profile_fields.php @@ -137,7 +137,8 @@ class VisiosoftModuleProfileCreateProfileFields extends Migration 'folders' => ['adv_listing_page'], 'mode' => 'select', ] - ] + ], + 'deleted_at' => 'anomaly.field_type.datetime' ]; } diff --git a/addons/default/visiosoft/profile-module/migrations/2018_11_17_112645_visiosoft.module.profile__create_adress_stream.php b/addons/default/visiosoft/profile-module/migrations/2018_11_17_112645_visiosoft.module.profile__create_adress_stream.php index dc2ae55da..acb72a223 100644 --- a/addons/default/visiosoft/profile-module/migrations/2018_11_17_112645_visiosoft.module.profile__create_adress_stream.php +++ b/addons/default/visiosoft/profile-module/migrations/2018_11_17_112645_visiosoft.module.profile__create_adress_stream.php @@ -13,7 +13,7 @@ class VisiosoftModuleProfileCreateAdressStream extends Migration protected $stream = [ 'slug' => 'adress', 'title_column' => 'id', - 'translatable' => true, + 'translatable' => false, 'trashable' => false, 'searchable' => false, 'sortable' => false, @@ -50,6 +50,7 @@ class VisiosoftModuleProfileCreateAdressStream extends Migration 'adress_gsm_phone' => [ 'required' => true, ], + 'deleted_at' ]; } diff --git a/addons/default/visiosoft/profile-module/resources/lang/en/field.php b/addons/default/visiosoft/profile-module/resources/lang/en/field.php index 15bca0078..71dc12d28 100644 --- a/addons/default/visiosoft/profile-module/resources/lang/en/field.php +++ b/addons/default/visiosoft/profile-module/resources/lang/en/field.php @@ -119,6 +119,9 @@ return [ 'edit' => [ 'name' => 'Edit' ], + 'delete' => [ + 'name' => 'Delete' + ], 'list' => [ 'name' => 'List' ], diff --git a/addons/default/visiosoft/profile-module/resources/views/address/list.twig b/addons/default/visiosoft/profile-module/resources/views/address/list.twig index f6422b2ca..084b6eb23 100644 --- a/addons/default/visiosoft/profile-module/resources/views/address/list.twig +++ b/addons/default/visiosoft/profile-module/resources/views/address/list.twig @@ -33,6 +33,12 @@ {{ trans("visiosoft.module.profile::field.edit.name") }} + + + {{ trans("visiosoft.module.profile::field.delete.name") }} + {% endfor %} diff --git a/addons/default/visiosoft/profile-module/src/Adress/AdressModel.php b/addons/default/visiosoft/profile-module/src/Adress/AdressModel.php index eabb1cc8d..36724c496 100644 --- a/addons/default/visiosoft/profile-module/src/Adress/AdressModel.php +++ b/addons/default/visiosoft/profile-module/src/Adress/AdressModel.php @@ -11,7 +11,7 @@ class AdressModel extends ProfileAdressEntryModel implements AdressInterface { return AdressModel::query(); } - return AdressModel::query()->where('id',$id); + return AdressModel::query()->where('id',$id)->whereNull('deleted_at'); } public function getAdressFirst($id) { @@ -20,12 +20,10 @@ class AdressModel extends ProfileAdressEntryModel implements AdressInterface public function getUserAdress($id = null) { - if($id != null) - { - return $this->query()->where('user_id',$id)->get(); + if ($id != null) { + return $this->query()->where('user_id',$id)->whereNull('deleted_at')->get(); } - return $this->query()->where('user_id',Auth::id())->get(); - + return $this->query()->where('user_id', Auth::id())->whereNull('deleted_at')->get(); } diff --git a/addons/default/visiosoft/profile-module/src/Http/Controller/MyProfileController.php b/addons/default/visiosoft/profile-module/src/Http/Controller/MyProfileController.php index 38c734670..9e50c3042 100644 --- a/addons/default/visiosoft/profile-module/src/Http/Controller/MyProfileController.php +++ b/addons/default/visiosoft/profile-module/src/Http/Controller/MyProfileController.php @@ -39,6 +39,7 @@ use Visiosoft\MessagesModule\Message\MessageModel; use Visiosoft\PackagesModule\Package\PackageModel; use Visiosoft\PackagesModule\User\UserModel; use Visiosoft\ProfileModule\Adress\AdressModel; +use Visiosoft\ProfileModule\Adress\Contract\AdressRepositoryInterface; use Visiosoft\ProfileModule\Adress\Form\AdressFormBuilder; use Visiosoft\ProfileModule\Profile\Contract\ProfileRepositoryInterface; use Visiosoft\ProfileModule\Profile\Form\ProfileFormBuilder; @@ -49,12 +50,16 @@ use Illuminate\Contracts\Events\Dispatcher; class MyProfileController extends PublicController { - public function __construct() + private $adressRepository; + + public function __construct(AdressRepositoryInterface $adressRepository) { parent::__construct(); if (!Auth::user()) { redirect('/login?redirect=' . url()->current())->send(); } + + $this->adressRepository = $adressRepository; } protected $user; @@ -169,6 +174,17 @@ class MyProfileController extends PublicController } } + public function adressSoftDelete($id) + { + $address = $this->adressRepository->find($id); + if ($address->user_id == Auth::id()) { + $address->update([ + 'deleted_at' => date('Y-m-d H:i:s') + ]); + } + return $this->redirect->back(); + } + public function adressUpdate(AdressFormBuilder $form, Request $request, $id) { $error = $form->build()->validate()->getFormErrors()->getMessages(); diff --git a/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php b/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php index f49c46b5f..293dd98ba 100644 --- a/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php +++ b/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php @@ -86,6 +86,10 @@ class ProfileModuleServiceProvider extends AddonServiceProvider 'as' => 'visiosoft.module.profile::address_edit', 'uses' => 'Visiosoft\ProfileModule\Http\Controller\MyProfileController@adressEdit' ], + 'profile/adress/soft-del/{id}' => [ + 'as' => 'visiosoft.module.profile::address_soft_delete', + 'uses' => 'Visiosoft\ProfileModule\Http\Controller\MyProfileController@adressSoftDelete' + ], /* Profile */ 'admin/profile' => 'Visiosoft\ProfileModule\Http\Controller\Admin\ProfileController@index',