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',